SSUNBORI Archive

3d Generalist를 꿈꾸는 Modeler ssunbori 입니다. 생성형 ai, 모델링 툴, 게임 엔진을 주로 공부하고 있습니다.

Artstation 자세히보기

UNITY/BLENDER-UNITY

[Blender] FBX로 내보낸 캐릭터의 재질이 이상해 보일 때

ssunbori 2023. 9. 1. 14:00

목차

     

    이슈

    이전 캐릭터는 부위별로 메쉬가 나뉘어진 캐릭터+Armature 형태로 Shift를 누르고 함께 선택한 뒤, FBX로 내보내 Unity에서 불러왔었다. 이 캐릭터는 Unity에 잘 올라갔고, 재질도 문제없이 깔끔했었다. 이후 캐릭터 리깅+애니메이팅을 수정하고 다시 업로드했더니 재질이 이상하게 보이는 현상이 나타났다.

    분명 똑같은 Texture와 UV를 사용했는데, 재질이 다르게 보이는 현상이 생긴 것이다.

    기존 캐릭터 vs 재질이 이상해진 캐릭터

    이슈 발생 과정

    1. Game Rig와 Control Rig를 나눠 Game Rig 속 뼈의 Constraint를 Control Rig의 각 뼈로 설정해 연결
      (이때 Game Rig는 Flat Hierarchy였음)
    2. Control Rig 애니메이팅 후 Game Rig에 베이킹(Game Rig의 Constraint는 따로 지우지 않았음)
    3. 부위별로 나뉜 캐릭터 메쉬와 Game Rig를 함께 선택 후 FBX 파일로 Export
      (애니메이션 베이킹 O, 선택한 오브젝트만 Export)
    4. 유니티에서 FBX 파일 업로드

    시도한 방법

    기존(멀쩡한) FBX 파일에서 재질을 추출하여 적용

    기존의 FBX파일에서 재질을 선택하고 Extract From Prefab > 이 재질을 이상해진 모델에 적용

    재질을 추출해 사용해봤지만, 같은 텍스쳐+UV를 사용한 모델이라 달라지는 게 없었다.

    캐릭터+Armature과 애니메이션을 따로 Export(내보낼 때 Animation Bake 설정 해제) - 실패

    Armature에 Bake한 애니메이션이 원인인가 싶어 FBX export 설정에서 Animation Bake를 해제해보았다.

    Animation이 없는 FBX모델에 같은 Rig로 만든 Animation을 Animation Controller로 연결해주려고 했는데, 달라지는 건 없었다. 애니메이션은 잘 재생되었지만, 재질은 변하지 않았다.

    캐릭터 메쉬들을 한 덩어리로 합치기 - 성공

    캐릭터 메쉬가 나뉜게 문제인가 싶어서 Blender 로 다시 넘어가서 모델들을 함께 선택 > Ctrl+J를 눌러 합쳐줬다.

    한덩어리가 된 캐릭터 메쉬+Armature 형태로 내보냈고, Bake Animation은 해제했다.
    (애니메이션을 베이크해도 잘 불러와진다)

    애니메이션은 Animation Controller로 불러왔다. Animation도 잘 재생되었다.

    결론

    정확한 원인은 파악하지 못했지만, 한번 모델들을 합치니 오류 없이 기존의 재질을 적용할 수 있었다.

    테스트해보니 저런 식으로 재질이 이상해졌다면 모델들을 한번 합쳐주면 해결할 수 있다. 만약 캐릭터 메쉬를 부위별로 분리해야 한다면, 한 덩어리로 합쳤다가 필요한 부분들을 다시 나눠 내보내면 오류 없이 텍스쳐가 잘 적용된다.