스터디 후기
Animation Retargeting을 통해 기존 애니메이션을 다양한 캐릭터에 적용하는 방법을 배웠고, 이는 애니메이션 리소스를 효율적으로 활용할 수 있었다. 변환하면서 캐릭터의 스켈레톤 구조에 맞춰 애니메이션을 자동으로 변환하는 과정이 처음이라 복잡했지만, 결과적으로는 흥미로웠다.
Control Rig를 통해서는 실시간으로 캐릭터의 애니메이션을 조정할 수 있는 방법을 배웠다. 이를 통해 개인적인 필요에 맞춰 애니메이션을 세밀하게 조정할 수 있어 유용하다는 생각이 든다.
1. Animation Retargeting
1) Animation Retargeting 이란
- 특정 모델에 적용된 애니메이션을 다른 모델에 적용할 수 있도록 연결해주는 작업
- Sequencer에서 Skeletal Mesh 애니메이션 트랙에 뜨는 것들은 이 메쉬를 타겟팅 하고 있는 것
- 수정의 개념이 아닌 복제의 개념(기존에 타겟팅 하는 메쉬와 새로 타겟팅 하는 메쉬 모두 사용할 수 있음)
2) 사용 이유
- 애니메이션 대상의 변경, Mesh의 길이가 달라도 그것에 맞춰 애니메이션 적용
- 세 개의 체형이 서로 다른 캐릭터의 비율에 맞는 본의 길이에 맞춰주어야 함(표준 캐릭터 / 작고 다부진 캐릭터 / 크고 홀쭉한 캐릭터)
- 표준 캐릭터에 맞춰진 애니메이션은 본의 길이가 그대로 유지되어 캐릭터가 늘어나거나 줄어듦
- Retargeting을 하면 표준 캐릭터의 본을 기준으로 비율 차이를 계산해 캐릭터에 애니메이션이 제대로 적용되도록 함
3) Retargeting 방법
IK Rig 설정
Retarget Chain : 특정 부위의 뼈 칩함을 하나의 Chain으로 연결한 Group으로 설정
Full Body IK : 관절 움직임의 범위, 각도 제한
- 원본에서 타겟으로(모캡데이터 → 메타휴먼) 서로 연결될 수 있는 장치를 마련
- 양 쪽 모두에 설정해주기(모캡데이터 / 메타휴먼)
- Skeletal Mesh가 포함된 모캡데이터 폴더 내에 IK Rig 추가하고, 이름 바꾸기(IKR_MoCap)
- IKR_MoCap 파일을 더블클릭해서 Skeletal Mesh에 모캡 데이터 Skeletal Mesh를 넣기
- 메타휴먼 폴더에도 IK_Rig 파일을 생성하고 파일명은 IKR_MH
- 편집창에 들어가서 메타휴먼 캐릭터 데이터 중 스켈레탈 메쉬 데이터(바디 데이터) 찾기
- 모션캡쳐 스켈레탈 메쉬(IKR_MoCap)의 편집창으로 가서 Character → Bones → All Hierarchy이 본이 모두 보이도록 하고 사이즈는 0.5 정도로 설정
- 메타휴먼 바디 스켈레탈 메쉬(IKR_MH)에도 똑같이 적용하고 사이즈는 0.2로 설정
3-1) Retarget Chain
- 리타겟 체인의 기준으로 참고할 마네킹 리그 파일(IK_Mannequin) 열기
- 리타겟을 위해서는 그룹으로 묶어 대응시켜야 함
- 리타겟 루트 설정하기
- 모캡데이터(IKR_MoCap)은 Skeleton_Hip을, 메타휴먼(IKR_MH)은 Pelvis를 Set Retarget Root
- 루트 셋팅 후에는 모캡데이터와 메타휴먼 모두 New Regarget Chain 설정
- 그대로 Add Chain을 하여 리타겟을 위한 장치 추가 완료
- 모캡데이터에는 마네키과는 다르게 Head_End가 있음
- Head Retarget Chain 해주고 Head_End는 비워두는 것이 일반적
- 메타휴먼에서 Clavicle은 Arm으로 이름을 바꿔주기
- 모캡데이터에서는 Metacarpel을 빼고 작업
- 모캡과 메타휴먼 번갈아가면서 하나씩 추가해 다음과 같이 최종 설정
- 연결을 위한 사전 준비는 마쳤고, 이제 연결할 것
- 기준을 소스에서 타겟으로 (모캡데이터 → 메타휴먼)
- 모캡데이터 폴더에서 우클릭 → Retargeting → IK Retargeter
- 편집창에서 Source IKRig Asset → IKR_Mocap / Target IKRg Asset → IKR_MH로 넣기
- Retarget Chain에서 이름을 잘 설정했다면 알아서 잘 맵핑됨
- 메타휴먼의 포즈도 T 포즈로 맞춰야 함
- 새로운 포즈를 만들기. 이름은 MH_TPose
Auto Align은 UE5.4에서 새롭게 나온 기능으로, Align All Bones를 선택해 T포즈를 잡아주면 동작이 더 잘나옴
- 메타휴먼에 Retarget을 위해 하기 순서대로 Export Selected Animations
- 메타휴먼에 Retarget한 애니메이션 적용하기
3-2) Full Body IK
- Mannequin을 기준으로 다음과 같은 Full Body IK 를 만들자
- 소스인 IKR_MoCap의 Skeleton Hips에 Full Body IK 적용
- 여기서의 Add New Solver는 뼈의 움직임을 계산하는 것
- Missing Root Bone 이라는 경고창이 뜸
- 제일 위에 있는 본이 루트가 되어야 함
- Set Root Bone on Selectred Solver를 누르니 Missing goals로 문구가 바뀜
- Hip 본은 Root본도 되고, Full Body IK를 추가할 본도 됨
- 다시 우클릭 Add Settings to Seleted Bone을 누르면 우측과 같이 Full Body IK bone settings가 생김
- LeftShoulder, LeftForeArm도 똑같이 Add Settings to Seleted Bone
- Lefthand에 Add Settings to Seleted Bone을 하고 New IK goal → Assign goal
- IK Bone Setting은 삭제해도 됨
- 오른쪽도 똑같이 설정하기
- 어깨가 모두 활성화 되도록 하기
- Skeleton_Spine을 우클릭 Set Root Bone, Skeleton_Hips도 다시 Set Root Bone
- 왼쪽 / 오른쪽 다리도 다음과 같이 Set Bone 설정
- LeftToeBase / RightToeBase에는 Set Bone 후 New IK bone 지정해 Set Bone레이어 (초록)를 그대로 두거나 삭제
- Full Body IK bone settings 레이어의 Stiffness로 움직임의 한계값을 지정하자
- Hips와 LeftShoulder는 다음과 같이 값을 0.95로 지정
- 팔 관절은 파란색(Z축)을 중심으로 움직임
- LeftForeArm의 Full Body IK bone settings에서 Limits X와 Y축은 Locked, Use Perferred Angles 체크
- Preferred Angles Z축 -90
- 오른쪽도 똑같이 하지만 Preferred Angles z축 90
- 다리를 진행하자
- 이 IKR_MoCap은 왼쪽 무릎 관절(Left Leg)는 X축을 중심으로 접혀야 함
- X축은 Free / Y축과 Z축은 Locked하고, Use Preferred Angles 체크 후 X축 90
- Rotation Stiffness 0.85
- 오른쪽 다리도 똑같이 진행
4) Auto Retargeting
- 소스에서 타겟으로
- ActorCore의 Animations 파일에서 Animation Sequence 파일 우클릭 후 Retarget Animations 선택
- 오류가 생기면 어쩔 수 없이 위의 방법으로 Retargeting
- 모캡데이터 → Mixamo의 경우는 잘 됨
- 모캡데이터 우클릭 후 Retarget Animations 선택
- 타겟인 Mixamo 폴더에 Export
2. Control Rig
- 애니메이션에서 마음에 들지 않는 부분이 있을 때, 다시 작업하려고 하면 시간과 비용의 문제가 생김
- 직접 Editing 하는 방법이 Control Rig
- Character Animation을 생성하고 편집할 수 있도록 하는 기능
- IK, FK 기반으로 작업이 가능함
방법 2가지
- Animation Cut 편집 / Edit → Split Section (간단)
- Animation을 Bake 한 뒤에 모션 편집
- Track(전체 편집, 간격 편집) : Motion 길이 편집
- Controller : 모션의 형태, Pose 편집
- Curve Editor
1) Animation을 Bake한 뒤에 모션 편집
- 애니메이션은 직접 편집은 불가
- 언리얼 엔진에서 편집용으로 변환 → Bake (Control Rig 용으로 Bake)
- 플레이 헤드를 0으로 놓고 Skeletal Mesh 우클릭 Bake to Control Rig → Create
- 모두 각 움직임에 대한 키프레임들이 생김 → 트윈 애니메이션이 아닌 프레임 바이 프레임 애니메이션(셀 애니메이션)
- 원래 있던 애니메이션 트랙은 Is Active가 꺼져 비활성화 됨 → Transform과 함께 지워도 상관 없음
Track : 애니메이션 늘이기
- 키 프레임을 잡고 뒤로 밀어 간격 조정하기
- 생각보다는 자연스러운 슬로우 모션을 만들 수있음
Controller : 레이어를 추가해서 변경
- 애니메이션 Bake 한 것에 +를 눌러 Addictive 눌러 추가 트랙 생성(Absolute는 현재 트랙에 생성하는 것)
- 움직임 키프레임을 추가해서 Controller로 움직임을 조정
- Controller를 누를 때 불필요한 하위 레이어들이 펼쳐지는 것을 방지하기 위해 Auto Expand Nodes on Selection을 끄기
- 각 부위의 컨트롤 리그 몇 가지를 Shift로 동시 선택
- 한 포즈를 저장할 수 있는 기능으로, Animation Mode로 들어가 Pose 선택 후 Create Pose
- 포즈가 저장되고, 썸네일을 누르면 편집창이 뜸
- Select Controls를 누르면 지정한 포즈들이 선택됨
- Key는 키프레임을 만들고, Mirror는 반대쪽에도 같은 포즈를 만들어줌
- Paste Pose로 저장된 포즈 적용
- 한 팔에 두 가지 포즈를 만들고 Mirror로 양 쪽에 두 가지 포즈가 적용되도록 하면 쉽게 반복 포즈 변경 가능
Curve
- 움직임의 강도를 조절하기 위해 모든 프레임을 선택하고, 체크한 아이콘 클릭
- 파형의 높낮이가 달라짐
'4. 언리얼 엔진(Unreal Engine) 공부 > Unreal Engine [이론]' 카테고리의 다른 글
18. [UE5] 동영상 Material 만들기 (0) | 2024.10.02 |
---|---|
17. [UE5] Soket, Merge (0) | 2024.10.01 |
15. [UE5] Character Animation Asset, 외부 파일 캐릭터 모션 적용(Mannequin, Metahuman, Mixamo, ActorCore, Motion Capture) (3) | 2024.09.24 |
14. [UE5] Sequence, Spawnable Camera, New Binding, Rendering (0) | 2024.09.12 |
13. [UE5] Camera, Camera Animation, Handheld (0) | 2024.09.11 |