캐릭터 모드
Unity로 가져올 수 있는 캐릭터 모델이라면 Warudo에 임포트할 수 있어요! 여기에는 FBX 모델이나 VRChat 아바타도 포함되죠. VRM 모델을 사용하더라도, 캐릭터 모드를 만들면 커스텀 셰이더를 추가하거나 Dynamic Bone과 Magica Cloth 같은 더 나은 물리 컴포넌트를 적용하는 등의 이점이 있어요.
설정
1단계: 모델 준비
먼저 캐릭터 모델을 모딩 프로젝트에 임포트하세요. 모델은 Animator 컴포넌트가 있는 휴머노이드 모델이어야 해요. 만약 모델에 Animator 컴포넌트가 없다면, 모델 임포트 설정에서 Animation Type을 Humanoid로 설정한 후 Apply를 클릭하세요.
만약 FBX 모델을 사용 중이라면, 모델 임포트 설정에서 R/W Enabled가 체크되어 있는지 확인하세요.
2단계: 캐릭터 설정
씬에 캐릭터를 배치하고 선택하세요. 메뉴 바에서 Warudo → Setup Character... 를 선택하세요. Setup Character 창에서 Setup selected GameObject as character mod를 선택하세요:
Character라는 이름의 프리팹이 모드 폴더에 생성된 것을 확인할 수 있을 거예요:
캐릭터의 뼈대가 꼬이거나 비틀어진 것을 발견했거나 모델의 전후 상태에서 시각적인 차이가 있다면, 뼈대 정상화 섹션을 참고하세요.
3단계: 모드 내보내기
Warudo → Build Mod를 선택하고, 생성된 .warudo
파일이 Characters
데이터 폴더에 들어갔는지 확인하세요.
스케일링
Warudo에서는 Character → Transform → Scale 속성을 사용해 캐릭터의 크기를 조정할 수 있어요. 하지만 이렇게 하면 래그돌, IK, 또는 몇몇 모션 캡처 시스템 (예: Leap Motion)과의 호환성이 깨질 수 있어요. 캐릭터의 크기를 조정해야 할 경우, Unity나 Warudo에 모델을 임포트하기 전에 3D 모델링 소프트웨어에서 미리 조정하는 것을 권장해요.
서드파티 컴포넌트
Warudo에는 캐릭터 모드에서 사용할 수 있는 몇 가지 서드파티 컴포넌트가 포함되어 있어요. 자주 사용하는 컴포넌트는 다음과 같아요:
- VRM VRM Spring Bones, VRM Spring Bone Colliders와 같은 컴포넌트
- Animation Rigging Rotation Constraint 같은 컴포넌트
- Dynamic Bone 1.3.2
- VRC PhysBones (런타임에 자동으로 Dynamic Bone으로 변환됨)
- Magica Cloth 1.12.11
- Magica Cloth 2 2.6.0
Dynamic Bone과 Magica Cloth는 Warudo SDK에 포함되어 있지 않으므로 해당 Unity 패키지를 직접 임포트해야 해요.
Warudo는 모드에 C# 스크립트를 포함할 수 있기 때문에, 다른 서드파티 Unity 컴포넌트도 사 용할 수 있어요! 하지만 커스텀 C# 스크립트 섹션에서 설명한 제한 사항을 참고해야 해요.
애니메이션
캐릭터에 머리 색깔 변경이나 날개 퍼덕임과 같은 커스텀 애니메이션을 추가하고 싶을 수 있어요. 애니메이션의 성격에 따라 다음 방법 중 하나를 사용할 수 있어요:
- 애니메이션이 인체 뼈대만 제어하는 경우: 캐릭터 애니메이션 모드를 생성하고 Warudo의 캐릭터 애니메이션 노드나 Character → Overlaying Animations를 사용해 재생하세요. Unity
.anim
원본 파일을CharacterAnimations
폴더에 직접 넣어서 사용할 수도 있습니다. - 애니메이션이 재질 속성을 제어하는 경우: Warudo의 캐릭터 표현 시스템 (Character → Expressions)을 사용하세요.
- 애니메이션 뼈대가 아닌 변형을 제어하는 경우: Animator 컴포넌트에 애니메이터 컨트롤러를 추가하고, Warudo 내장 애니메이터 컨트롤러 노드를 사용하여 Animator 매개변수를 제어하세요.
VRChat 모델을 재사용하는 경우, 모델과 함께 제공되는 Animator Controller를 그대로 사용할 수도 있어요. 하지만 처음 두 가지 방법이 Warudo의 모션 캡처 및 애니메이션 시스템과 더 잘 통합되기 때문에 이 방법들을 권장해요.
뼈대 정상화
뼈대 정상화는 모델의 뼈대가 T-포즈에서 회전 값이 0이 되도록 보장하는 과정이에요. 모델을 Unity로 가져와서 1. 모델이 T-포즈 상태인지, 2. 모든 뼈대 변환의 회전 값이 (0, 0, 0)인지 확인한 후 Warudo SDK를 사용해 캐릭터를 설정할 수 있어요. Setup Character 창에서도 뼈대가 정상화되지 않은 경우 경고가 표시돼요:
캐릭터 설정 후 뼈대가 비틀린다면 모델의 뼈대가 정상화되지 않고 Warudo SDK가 모델을 손상시키지 않고 자동으로 뼈대를 정상화하는데 실패했을 가능성이 높아요. 이런 경우 두 가지 해결책이 있어요:
수동 정상화
캐릭터를 직접 모델링한 경우, FBX 모델을 Unity에 가져오기 전에 수동으로 뼈대를 정상화하는 것을 추천해요.
Blender나 Maya 같은 모델링 도구에서 뼈대를 정상화하는 여 러 방법이 있지만, 가장 검증된 방법은 FBX 모델에서 VRM 모델을 생성한 후, VRM 모델을 Unity로 가져오는 거예요. VRM 모델은 뼈대가 정상화된 상태임이 보장되기 때문에 Warudo SDK로 캐릭터 설정을 한 후에도 뼈대가 비틀리지 않을 거예요. 다만, 이 방법의 단점은 FBX 모델을 수정할 때마다 VRM 모델을 새로 생성해야 한다는 점이에요.
Blender 사용자인 경우, Cats의 Set Rest Pose 옵션을 사용해 수동으로 뼈대를 정상화할 수 있어요. FBX를 내보낼 때는 다음 설정을 사용해야 해요:
Credit: @Kana_Fuyuko
Blender에 내장된 FBX 내보내기 기능은 올바른 뼈대 회전 값을 내보내지 못하는 문제가 알려져 있어요. 만약 이 방법이 잘 작동하지 않는다면 Better FBX Importer & Exporter (추천)나 Cats와 같은 서드파티 애드온을 사용해 FBX 모델을 내보내는 것을 시도해 볼 수 있어요.
Denormalized Avatar Exporter 사용
[Denormalized Avatar Exporter]는 @vr_hai가 개발한 Unity 패키지로, VRChat용으로 제작된 아바타를 Warudo와 같은 VTubing 앱에서도 사용할 수 있도록 내보낼 수 있어요. 하지만 VRChat 모델이 아니더라도 정상화되지 않은 뼈대 문제를 해결하는 데 사용할 수 있어요.
캐릭터를 직접 모델링하지 않았고, 뼈대 정상화 문제로 어려움을 겪고 있다면 이 툴을 사용하는 것을 추천해요. 자세한 내용은 공식 문서를 참고하세요.