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

[15강] Animation Retargeting - 1

whereareyoung 2023. 8. 18. 13:41

15~16강을 통해서는 전투 시스템을 다룰 예정인데 플레이어가 칼을 빼고 넣는 애니메이션을 연출 해 볼 것이다.

애니메이션 어셋은 "Mixamo (https://www.mixamo.com)" 웹사이트를 통해 구할 예정이다. 

 

Retargeting 

캐릭터 어셋에 따라 내부 skeleton 구조와 명칭이 다르지만, Retargeting 과정을 통해 전환하여 사용할 수 있다. 이 과정을 이해한다면, 다양한 자료를 변환하여 자유롭게 제작에 사용할 수 있다.

   ex. 어떤 파일은 시작 bone 파일의 이름이 Root 이고 어떤것은 Hips 이다. 

 

1. "Combat" 맵 생성 및 정리 

   1) Collision 맵을 복사해 Combat 맵을 생성한다.

 

   2) 스타트 맵 다음과 같이 변경

이제부터 새로운 맵에서 주로 작업할 예정이기 때문에 Startup Map을 "Combat" 으로 바꾸어준다.

 

   3) 이전에 Collision 으로 작업했던 파일들을 다 지워준다. 

         - "BP_03" 부터 "BP_06" 까지 테스트를 위해 맵에 올려두었던 블루프린트들 

         - 폭발 효과를 연출하기 위해 생성했던 큐브들 

위 과정을 마치면 월드 아웃라이너에 캐릭터와 배경, 기본 조명 등만 남아 있는 것을 확인할 수 있다. 

 

2. "Mixamo (https://www.mixamo.com)" 에서 파일 다운로드 

   1) Unreal "_Mixamo", "_Mixamo_Result" 폴더 만들기

언리얼 폴더(나의 경우 "Basic") 하단에 "_Mixamo", "_Mixamo_Result" 파일을 생성한다. 

   -  _Mixamo : 원본 등을 컨버트 전에 임시로 저장하기 위해 보관하는 용도 

   - _Mixamo_Result : 컨버트 완료된 애니메이션 파일들을 저장하는 용도 

 

   2) Mixamo 웹사이트에서 "ybot" 을 다운로드 하고 "_Mixamo" 폴더에 넣어주기 

표준 모델을 불러와 뼈를 맞춰주고 애니메이션을 불러오는 과정을 진행 할 것인데, 표준 모델으로는 "ybot" 이 적합하다고 판단되어 선정되었다. 

 

3. "Blender(http://blender.org)" 다운로드 

Retargeting 과정에서 사용할 플러그인이 최신버전을 지원하지 않기 때문에 2.82 버전을 다운로드 한다. 

(https://download.blender.org/release/Blender2.82/)

   - msi (설치파일) 로 바로 다운 받아도 되고, zip 압축 파일로 다운로드 받아도 된다. 

 

4. mixamo converter blender 2.8 다운로드

다운로드 받은 파일을 "_Mixamo" 에 임시로 넣어준다. 

이 플러그인은 Blender 에 사용될 예정인데, Blender 에서 폴더를 찾을 때 한글지원이 안되기 때문에 불편할 수 있어 경로에 한글파일이 있으면 좋지 않다. 

 

5. Blender 작업 

   1) Editer > Preference > Add-ons > Install > 아까 다운받은 플러그인 (mixamo_converter-master) > 토글 활성화 

 

   2) 아웃라이너, 하이라키 역할을 하는 듯 보이는 Scene Collection 옆에 작은 화살표를 클릭한 상태로 옆으로 끌면 다음과같이 Mixamo 창이 생성되어 있다. 

 

Advanced Option 를 누르고 데이터를 넣어 준다. 

   - Hip Name : Hips

   - Remove Namespaces : 비활성화

   - Use Unreal Engine bone names : 사용 

   - Input Path : 어디에 파일이 있느냐 지정 - "_mixamo" (전에 사용ㅎㅆ던 압ㅊ축파일은 삭제하여도 됨 )

   - out phtpath : 어디에 넣을건지 지정 "Maximo result "

**** 다음 16강에서 다룰 예정인데 강사님이 Ignore Leaf Bones (손가락 등 처리) 체크하는 것을 잊으셨다. 원래는 해야한다. 

 

* Hips : Retargeting 을 해야하는 주요 이유중에 하나가 Skeleton 의 네이밍을 맞춰주는건데, 파일에 따라 어떤 것은 시작 bone 이 Root, 어떤것은 Hips 등 다 다르다. 컨버터 과정을 통해 기본 뼈대를 "ybot" 의 Skeleton Startbone 으로 되어있는 Hips 으로 맞춰주기 위해 넣어주는 것이다.  


6. 언리얼 작업

   1) 콘텐츠 > Character > Mixamo 폴더를 생성한다. 

 

   2) Import - "_Maximo result "

혹시 모르니 다음과 같이 Convert Scene Unit 토글을 활성화 후 모두 임포트 

(fbx 파일을 불러올 때 Unreal 4크기로 맞춰주는 옵션인데, 불러온 파일의 크기가 깨질 수 있어 이를 방지하기 위함)

 

   3) 임포트 된 파일 확인하기

ybot 의 skeleton 정보를 살펴보면 Hips 였던 네이밍이 root 로 변경되는 등 적합하게 컨버트 된 것을 확인할 수 있다. 

 

7. Skel_Mannequin의 가상 포지션 만들기 

기존 파일의 포즈와 불러온 파일의 포즈를 맞춰주어야 하는데, 언리얼 파일은 A포즈로 되어있고 ybot 은 T포즈로 되어있다. 따라서 가상포지션을 만들어 디폴트 상태로 저장해 두어야 애니메이션이 적합하게 작동된다. 

 

   1) UpperArm_L, UpperArm_R 값 변경 (y 50)

   2) lowerarm_l, lowerarm_r 값 변경 (z -20), (y -10) 

 

"Skel_Mannequin" > 창 > 리타킷 매니저 켜기 

 

포즈 변경 누르고 -  포즈변경 - 현재 포즈 사용 

   * 정상적으로 적용되었다면 포즈숨김 / 포즈보기로 전환하며 원본포즈와 바뀐 포즈를 확인 가능하다. 

 

8. ybot skeleton 설정 

   1) ybot skeleton > preview Scene setting > 에셋에 적용

 

   2) ybot skeleton의 릭셋업 해주기

ybot skeleton > 릭 선택 > 인간형 릭 선택 

상단의 과정을 마치면 ybot 리깅을 기반으로 maximo 에서 애니메이션을 가져다 쓸 수 있게 된다.

 

8. 파일 다운로드 

ybot 캐릭터를 선택하고, "sword and shield idle" 검색, 다운로드 후 "_mixamo" 파일에 옮겨주어야 한다. 

애니메이션 데이터만 가져올 것이기 때문에 without skin 옵션으로 다운로드 하여야 한다. 

(이전에 작업합 ybot fbx 파일은 임포트 완료 하였으니 지워주어도 된다.)

 

9. 다운로드 받은 애니메이션 파일을 Blendar 에서 변환

   1) Blendar 에서 전에 작업했던 것과 같은 방식으로 지정하고 "Batch Convert" 를 눌러준다. 

앞으로 애니메이션을 변환시켜서 불러올때는 이 방법을 계속해서 사용할 예정이다. 

 

   2) Unreal > 콘텐츠 > Character > Mixamo > 임포트 

      * Impost Mesh 토글을 비활성화 하는 것이 좋다.  (어자피 데이터 안들어있음)

 

   3) 불러온 애니메이션 > 애님 에셋 리타깃 > 애님 에셋 복제 후 리타깃 

 

   4) [소스] 에 있는 원본 데이터를 확인하고, [타깃] 에 좌측 Mannequin 을 클릭해 넣어줄 파일을 선택한다.

 

   5) 변경 누르고 캐릭터 > 애니메이션 파일에 저장 

 

   6) 리타깃 버튼 클릭 후 Animation 폴더에서 복제한 애니메이션 확인해보기

 

이전에 들었었지만, 직접 성공적으로 수행 해보게 되어 기쁘다.

다음시간에 과정정리 한번 더 해보고, 작업에 필요한 파일들을 더 불러올 예정이다.