Unreal Engine/게임클래스 - 언리얼엔진 기초

[16강] Animation Retargeting - 문제해결

whereareyoung 2023. 9. 6. 10:45

강사님이 알려주신 방법이 Git 을 통해 배포된 Blender Plugin 을 통해 Mixamo 애니메이션을 Unreal Engine 으로 컨버트 해 사용하는 거였는데 발 부분에 애니메이션이 jittering 되는 문제가 있었다. 

 

최근 몸이 좋지않아 몇주 보내다가 내가 찾은 해결법은 다른 컨버터를 사용하는 것이였다. 

강사님의 방법과 비교했을때의 장단점은 이하이다. 

 

장점

1. 블렌더를 다운받을 필요가 없다.

2. Git 을 다운받고, 플러그인 사용법을 익힐 필요가 없다. 

3. 전용 프로그램이라 포즈 과장, fps, 속도등을 변경가능하다.

(내가 사용할 부분만 대충 봤지만 기능이 훨씬 풍부하다)

 

단점

1. 컨버터 프로그램을 다운받고 사용법을 익혀야 한다. 

2. 한번에 4개씩만 변환이 가능한 듯 해 보인다. 

 

 

Mixamo animation to Unreal Engine 

1. mixamo 에서 다음과 같은 설정으로 애니메이션을 다운로드 받는다. 

 

1) In Place 

InPlace 토글을 활성화 해 주는 것을 잊었을 경우, 언리얼에서 Root Motion > Enabled Root Motion 토글을 활성화 해 해결할 수 있다. 하지만 파일이 깔끔한 것이 좋으니 잊지않고 눌러주는것이 좋다. 

 

2) Format : FBX Binary(.fbx)

미국에서 그래픽 공부를 할 시절 교수님이 자기가 작업 기록을 읽어야 하기 때문에 꼭 ASCII 파일로 저장하라고 하셔서 늘 그래왔는데 왜 그래야하는지는 늘 미스테리였다.

한국의 개발 잘하시는 교수님과 기회가 생겨 혹시 ASCII 와 Binary 파일의 차이를 아실까 여쭤봤는데 ASCII는 읽을 수 있기 때문에 내부 기밀 유출 요소가 있어서 제작시에는 ASCII로 하고 외부에 배포할때는 비밀화된 Binary로 한다는 답변을  받았다. (NC의 엔진 개발 파트에서 일하셨던 분의 답변입니다.)

 

강의에서 블렌더 플러그인 통한 프로그램은 ASCII 는 거절하고 Binary 만 받아들이던데 혹시 이 프로그램도 그럴까 겁나서 Binary 로 하는게 좋을것 같다는 판단에 저는 이렇게 설정했고, 결과적으로 성공적이였는데

른 포멧 으로 다운로드 했을 경우 위험부담이 있을 것 같다.

 

3) Without Skin, 30fps, none 

Skin 있음으로 체크하면 지금 다루는 컨버터에서는 거절당한다.

Frame 은 높은 사양의 게임을 제작하는 것이 아니기 때문에 적당한 30fps 으로 했는데, Keyframe Reduction 의 경우 제가 사용하는 프로그램에서 none으로 하는것이 가장 최적화 된 결과물을 얻을 수 있다고 명시되어 있어 따랐다. 

 

2. 다음사이트에서 컨버터 프로그램을 다운로드 받는다. (Password : terribilis)
https://terribilisstudio.fr/?section=MC 

우측의 노란버튼, Direct Download 를 눌러 다운받을 수 있다. 

 

3. 프로그램 실행 시 이런 창이 뜨는데, "Enter the conversion process" 버튼을 눌러준다. 

그러고 나면 아래와 같은 창이 뜨는데 Mixamo 사용법, Unreal 캐릭터등을 볼 수 있다.

 

 

Mixamo에 안 익숙하거나 사이트 켜기 귀찮으신 분들은 살펴보시면 좋지만, 이미 애니메이션을 다 구한 상황이라면 접근할 이유가 없다. 

스크롤 다운을 해야 사용할 메뉴가 나온다. 

 

 

1) "Open the folder with original animations" 클릭 후 이 폴더에는 mixamo 에서 다운로드 받은 파일을 넣어준다. 

 

2) "Open the folder with converted animation" 폴더에는 컨버트 버튼을 누른 후 컨버트 완료된 파일이 들어간다.

 

4. 다음은 제가 컨버트할 애니메이션 목록인데, 개인적으로 언리얼 강의 강사님이 하신 그대로 하고싶어서 네이밍 까지 그대로 가져왔다. 시도해 본 결과 이 프로그램에서는 한번에 4개씩만 컨버트가 가능했었다. 

 

5. "Open the folder with original animations" 폴더에 walk 네개 넣어주었다.

 

6. 그러면 업로드한 애니메이션들이 주르륵 뜨는데, 되지 않았을 경우 조금 대기하면 정상적으로 진행된다. 

4가지 업로드 한 파일이 잘 들어간 것을 확인한 후 밑에 "Click here to convert the animations" 눌러주면 된다 

 

** 참고 : 네임스페이스 기능도 들어있습니다 

네이밍 추가로 뒤에 다는건데, 기본이 ".UE" 로 되어있다. 이 기능을 비활성화시키고 싶을 경우 delet 하여 지워주면 된다. 

 

"Click here to convert the animations" 를 누르면 4/4 에서 변환이 완료되어 0/4가 되는것을 확인 할 수 있다. 

 

7. "Animations Converted" 에 파일이 업로드 된 걸 확인한 후, 다음과 같이 "Open the folder with converted animation" 를 눌러주면 된다. 

 

"OutgoingFbx" 파일에 컨버트 완료된 파일이 들어간 것을 확인할 수 있다. 

 

개인적으로 Mixamo_Result 라는 파일에 결과물을 옮겨서 관리하고 있는데, 원하는 곳에 옮긴 후 언리얼으로 불러오면 된다.

 

그리고 아마 jittering 오류가 발생했었던 이유같은데 없는 데이터를 억지로 이어붙이려고 하다가 팅기는 오류가 있었던 것 같다.

 

이하는 제가 시도한 방법을 요약한 영상입니다. 플레이어가 정상적으로 걷게되어 기쁜 날입니다 ~ 

https://youtu.be/7Ii5Q-6QrjI