목차
문제상황
팀프로젝트로 유니티 에셋 스토어에서 구매한 에셋을 블렌더로 불러와서, Mesh 수정(UV, WeightPainting)을 하고 다시 Unity로 내보내니 Animator를 붙여서 다시 실행했을 때 메쉬가 뒤집혀 보이는 현상이 발생했다.
의심해본 원인
- FBX > Blender로 Import할 때 Axis 값에 문제가 있어서
- FBX > Blender로 Import할 때 Animation 데이터도 함께 불러와서
- FBX > Blender로 Import한 Armature의 뼈 축에 문제가 있어서
- FBX > Blender로 Import한 Armature 일부가 연결되어 있지 않아서(일부는 Armature의 뼈가 아니라 Empty 좌표로 불러와짐)
- FBX > Blender로 Import한 Armature의 일부 뼈가 뒤집혀 있어서
- Unity 에디터에 있는 메쉬의 Vertex Group과 FBX로 불러온 메쉬의 Vertex Group이 달라서
- Blender > Unity 로 Export할 때 Axis 값에 문제가 있어서
- 메쉬의 Weight 값에 문제가 있어서
- Unity Inspector 창에서 Axis값 혹은 Unit Size 설정에 문제가 있어서
별의별 의심을 하고 이리 저리 만져가며 Import, Export를 반복했지만 그나마 괜찮게 불러와진 경우도 애니메이션을 재생해 보면 엉덩이와 골반쪽 뼈가 뒤집힌 것 같은 모습이 되었다.
해결방법
유튜브와 구글을 열심히 뒤져 나와 비슷한 질문을 발견했다. 답변도 달려있었는데, 요약하자면 Armature의 뼈들에 초기 위치값이 없어서 제대로 된 Pose가 설정되지 못한다는 것. 이를 해결하기 위해서는 Armature의 각 뼈들에 Keyframe을 추가하면 된다고 한다. 나는 에셋을 불러올 때 Empty 좌표에도 Keyframe이 있어서 이것도 그대로 유지하면서 내보냈다.
임시 Keyframe을 길게 넣으면(기존 에셋은 1부터 100프레임까지 적용되어 있었음) Unity로 불러와서 Animation을 재생했을 때 애니메이션 재생 전에 그만큼 딜레이가 생겨서, 1프레임에만 가짜 포즈를 적용해주었다.
내보낸 FBX에 Animator 컴포넌트를 붙여 재생해 보니 에셋과 동일하게 잘 재생이 되는 모습을 확인할 수 있었다.
'UNITY > BLENDER-UNITY' 카테고리의 다른 글
[Unity] Unity에서 FBX로 파일 내보내기 (0) | 2024.03.04 |
---|---|
[Blender] FBX로 내보낸 캐릭터의 재질이 이상해 보일 때 (1) | 2023.09.01 |
[Blender-Unity] Generic Rig를 이용해 캐릭터 아바타 생성하기 (0) | 2023.08.31 |
[Blender-Unity] FBX 파일 내보내기/업로드 프로세스 (0) | 2023.04.26 |
[최적화] Occlusion Culling 하는 방법, 이유 (0) | 2023.04.23 |