[Unity] Mixamo로 캐릭터 Animation 적용하기
현재 개발중인 3D Top뷰 러너 게임의 Player Animation을 Mixamo를 이용해 적용해보았다.
Mixamo에서는 다양한 Animation들을 제공해주는데
Spine이 심어져있는 캐릭터에 Animation을 적용해줄 수 있다.
원하는 애니메이션을 선택한 후 DownLoad를 누르면 다음과 같이 창이 뜨는데 다음과 같이 설정하고 다운로드 하자.
Format | FBX Binary (.fbx) | Unity는 Binary 형식이 안정적으로 잘 작동함 |
Skin | Without Skin | 이미 모델(캐릭터)을 Unity에 따로 쓰고 있으므로 메시 없이 본 정보만 필요함 |
Frames per Second | 30 | 일반적인 게임 애니메이션 FPS. Unity 기본 FPS와도 잘 맞음 |
Keyframe Reduction | None | 편집 시 모든 프레임이 존재해야 제어가 쉬움 (불필요한 최적화 제거) |
다운로드 후 fbx 파일을 열어보면 애니메이션 클립이 있는데, 이 파일은 Read-Only 파일이기 때문에 바로 가져오면 적용이 되지 않고, Without Skin으로 가져왔기 때문에 현재 가지고 있는 Player의 spine과 호환이 되게 설정을 해주어야 한다.
다운받은 파일을 누른 후 Inspector창을 보면 Model, Rig, Animation, Materials 등을 설정할 수 있는데, Rig 탭으로 이동해서
Animation Type을 Humanoid, Avatar Definition을 Create From This Model로 바꾼 후 Apply한다.
Apply 하게되면 다음과 같이 Avatar가 하나 더 생기게 된다.
이제 mixamo.com 클립을 Animator에 드래그 드롭으로 적용해주면 되는데, Missing! 이 뜬다면 한번 더 작업을 해주어야 한다.
Player를 확인해 보면 Fxb파일로 플레이어를 받아온 경우 Animator에 Avatar세팅까지 보통 되어있을 텐데, 본인이 가져온 파일은 프리펩으로 되어있는 파일을 가져와서 Avatar도 다시 설정해주어야 한다.
Package Manager에서 FBX Exporter를 Istall 해준 후,
Hierarchy 창에 배치된 Player를 우클릭 후 Export를 눌러주면 Fxb파일로 추출된다.
해당 파일을 눌러 이전에 했던 것 처럼 Rig 탭에서 Animation Type을 Humanoid, Avatar Deginition을 Create From This Model로 설정해준 후 기존 프리팹으로 되어있던 Player를 FXB파일로 대체된 플레이어로 바꾸어 Scene에 배치해주면 끝!
Mixamo 애니메이션 중 대부분은 실제 위치/회전 데이터를 포함하고 있어서, 재생하면 캐릭터가 애니메이션에 포함된 위치/방향으로 움직여버리기 때문에 Animator에서 Apply Root Motion은 꼭 꺼주어야 한다.
파일을 깔끔하게 관리하고 싶다면, 해당 믹사모 클립을 복사 후 Animation 폴더에 옮겨 이름을 변경해주어도 된다.
디테일은 수정이 필요하겠지만, 모션 자체는 잘 적용되는 모습이다.
만약 Animation 재생 시 위치가 원하는 위치로 설정되어있지 않다면
Maximo fxb파일로 이동해서 상세 설정을 해주도록 하자.