IK 릭과 IK 리타기터를 활용하여 Mixamo의 XBot애니메이션을 UE5 Quinn으로 변환하기

YH J·2024년 1월 6일
0

UE5 C++

목록 보기
9/10
post-thumbnail

5.1버전 기준으로 작성한 글입니다.
IK 릭과 IK 리타기터를 활용해서 Mixamo의 XBot을 UE5 Quinn과 연동시켜놓고
Mixamo의 애니메이션들을 간편하게 변환시켜 사용하기 위한 방법입니다.
한번 만들어두면 그 후로는 쉽게 변환시킬 수 있습니다.
특히 루트모션을 가져오기 위한 방법으로 작성한 글입니다.

1. XBot 다운받기

Mixamo사이트 : 링크텍스트
로그인 후 상단 왼쪽의 Character 탭 누르기
-> 검색창에 XBot 검색
-> 빨간색의 XBot 클릭 후 무언가 창이 뜨면 Use This Character 누르기
-> 오른쪽 상단의 Download 누르기 ( 건드리는 것 없이 다운로드 바로 누르기 )

2. XBot에 Root본 추가하기

링크텍스트
XBot에는 기본적으로 Root본이 없다. 그래서 루트 모션을 사용할 수 없다.
Blender의 Mixamo Converter를 활용해서 XBot에 Root를 추가해준다.

3. XBot 임포트 하기

콘텐츠 브라우저에 관리하기 편하게 XBot 폴더를 하나 만들어두고 거기에 다운받은 XBot.fbx 파일 끌어다 넣기

FBX 임포트 옵션이 나오는데 애니메이션의 애니메이션 임포트만 체크를 해제한 후 모두 임포트를 누르면 된다.

Blender를 활용해서 Root를 잘 추가했다면 Skeletal의 구조가 이렇게 된다.

4. XBot의 IK 릭 만들기

콘텐츠 브라우저에서 우클릭 -> 애니메이션 -> IK 릭 -> IK 릭 을 선택하면 스켈레탈 메시 선택창이 뜨는데 임포트한 XBot 스켈레탈 메시를 선택해준다.

이런 창이 뜬다.
왼쪽의 뼈 구조에서 Hips를 우클릭 -> 리타깃 루트 설정 을 해준다.
리타깃의 기준이 되는 루트 본 설정이다. 보통 Pelvis( XBot은 Hips )를 기준으로하는것을 언리얼에서 권장한다.
이제 리타깃 체인 설정을 해주어야 한다.
일단 Root를 우클릭 -> 선택된 본에서 신규 리타깃 체인 생성 -> 이름은 Root
목표를 추가할까요? 창이 뜨면 목표 없음을 선택하면 된다.
Hips를 우클릭 -> 리타깃 체인 생성 -> 이름은 Pelvis ( UE5 Quinn의 IK 릭과 이름을 동일하게 하기위해서 Pelvis 사용 )
Spine, Spine1, Spine2 를 묶어서 체인생성, 이름은 Spine
Neck, Head -> Head
RightShoulder -> RightClavicle
RightArm, RightForeArm, RightHand -> RightArm
손가락은
RightHandThumb1 ~ 4 -> RightThumb 이런식으로 Thumb, Index, Middle, Ring, Pinky까지 묶기
왼쪽 어깨부터 손가락 까지 같은 방식으로 묶기
다리는
RightUpLeg, RightLeg, RightFoot, RightToeBase 까지 묶어서 RightLeg. 왼쪽도 똑같이 묶기

이렇게 체인들이 완성된다.

오른쪽 아래 IK 리타기팅 창에도 이렇게 뜬다.

5. Quinn의 IK 릭 만들기

똑같이 IK 릭 생성 -> Quinn 메시 선택해서 IK 릭을 만든다.
구조가 조금 다른데 겹치는 부분의 체인만 생성하면 된다.
일단 Pelvis를 리타깃 루트로 설정해주고 사진과 같이 체인들을 생성하면 된다.

Arm의 체인 생성시 사이에 껴있는 본들이 많아서 생성 창이 여러번 뜨는데
당황하지 말고 전부 만든 뒤 숫자가 없는 원본을 제외한 Arm들은 다 지운 후 원본에서
끝 본을 hand_l, r로 설정해주면 된다.
혹은
오른쪽 아래 IK리타기팅 메뉴에서 새 체인 추가 -> 이름은 LeftArm, RightArm
으로 한 뒤 만들어진 체인에서 시작본을 upperarm_l, r 끝 본을 hand__l, r로 설정해주면 된다.

6. IK 리타게터 만들기

콘텐츠 브라우저 우클릭 -> 애니메이션 -> IK 릭 -> IK 리타기터 생성 -> IK_XBot 선택
리타기터 창이 뜬다.

일단 본 구조를 보기위해 캐릭터 -> 본 그리기 -> 본 그리기 크기를 1.0~2.0으로 조정해주고 모든 계층구조를 선택해준다.

그 후 오른쪽의 디테일 창에서 타깃 IK 릭 에셋에 5에서 만들어준 Quinn의 IK 릭을 선택해준다.

이런식으로 겹쳐서 나오게 되는데 디테일 창의 타깃 메시 오프셋의 X값을 조정해주면 옆으로 옮길 수 있다.
XBot은 T포즈, Quinn은 A포즈로 설정되어 있다.
타깃이 되는 Quinn을 TPose로 만들어주어야 한다.

왼쪽창에서 타깃을 선택하고 편집 모드를 누르면 편집을 할 수 있다.
upperarm, lowerarm을 적절히 조절해서 TPose로 맞춰준다.
맞춘 포즈는 생성 -> 현재 복제 를 통해 새 리타깃 포즈로 저장해둘 수 있다.

7. 애니메이션 리타깃 하기

Mixamo의 왼쪽 상단의 Animation 선택 -> 검색창에 Sword and Shield Attack 검색 -> 2번째 애니메이션 회전하면서 앞으로 나아가면서 베는 모션 클릭 -> 다운로드 ( 다른건 건들지 말고 skin 부분만 without skin을 선택해준다. )
루트모션을 위해 Blender에서 XBot을 바꿔준 것 처럼 똑같이 애니메이션도 같은 과정을 적용시켜준다.
그리고 임포트 하는데

스켈레톤을 XBot으로 설정해주고 메시임포트는 체크 해제한 뒤 모두 임포트를 한다.

그러면 리타기터의 오른쪽 아래 에셋 브라우저에 애니메이션이 뜨게되고 더블클릭하면 미리보기를 할 수 있다.

리타깃 목표인 Quinn은 루트가 고정되어 있고, 발도 떠있는 모습을 보여준다.
하나씩 고쳐나가자.

루트모션 적용시키기는

https://velog.io/@jimojjing/UE5IK-Retargeting-%EB%A3%A8%ED%8A%B8-%EB%AA%A8%EC%85%98-%EB%A3%A8%ED%8A%B8%EB%AA%A8%EC%85%98-%EB%A6%AC%ED%83%80%EA%B2%9F%ED%8C%85-%ED%95%98%EA%B8%B0
더 쉽고 좋은 방법을 찾아서 다음 글에 작성하였습니다.

8. 루트모션 적용시키기

오른쪽 아래 체인 매핑 탭에서 Root를 클릭하면 위와같은 디테일 창이 뜨는데
여기서 FK -> 트랜슬레이션 모드를 Globally Scaled로 선택해준다.

이러면 이제 루트모션에 따라 똑같이 움직인다.

9. 발이 뜨는 문제 해결하기

이 문제는 소스 IK 릭과 타깃 IK릭의 크기가 차이가 나서 그런것인데
Pelvis를 루트로 리타깃 하기 떄문이다.
이는 공식문서에도 나와있는 IK 목표 ( target IK goal ) 와 솔브 기능을 사용해서 해결할 수 있다.
먼저 타깃이되는 Quinn의 IK 릭에 들어간다.
hand_l 우클릭 -> 새 IK 목표 -> 풀 바디 IK 솔브 추가 -> 목표 할당
을 하면 IK목표가 생성된다. hand_r에도 추가
그리고 Leg의 끝인 ball_r, ball_l에도 추가해준다.
그 후 왼쪽 아래 솔버 스택을 보면 풀 바디 IK 루트 본이 없습니다. 로 되어있다.
이걸 클릭한 상태로 계층구조의 root를 우클릭 -> 선택된 솔버에 루트 본 설정 을 눌러주면 솔버의 root본이 설정된다.

그러면 솔버가 풀 바디 IK로 되어 있다.
이제 다시 리타기터로 가서 애니메이션을 재생해보면 그대로다.
블렌드 수치를 조정해주어야하기 때문이다.

오른쪽 아래 체인 매핑에서 RightLeg를 클릭하면 위의 디테일창이 나오는데
IK -> 소스에 블렌드 수치를 1.0으로 조정해준다.
LeftLeg도 똑같이 해주면

이제 발이 땅에 잘붙어서 동작하게 된다. 하지만 ball의 위치를 강제로 조정해주는것이므로 그만큼 무릎이 덜 굽혀지게된다.
hand에 만든 IK 목표의 경우 알맞게 조절하면 되는데 1.0으로 하면 손의 위치를 맞추기 위해 그만큼 팔과 어깨를 낮추고 늘리게되므로 적당히 조정해서 쓰면된다.

10. 익스포트 하기

오른쪽 아래 에셋 브라우저에서 원하는 애니메이션 선택후 선택된 애니메이션 익스포트 를 눌러서 원하는 위치에 저장하면 애니메이션이 생성된다.

profile
게임 개발자 지망생

0개의 댓글