16. [UE5] Animation Retargeting, Control Rig

2024. 9. 24. 18:22·4. 언리얼 엔진(Unreal Engine) 공부/Unreal Engine 5
스터디 후기
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가지
  1. Animation Cut 편집 / Edit → Split Section (간단)
  2. 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 5' 카테고리의 다른 글

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
'4. 언리얼 엔진(Unreal Engine) 공부/Unreal Engine 5' 카테고리의 다른 글
  • 18. [UE5] 동영상 Material 만들기
  • 17. [UE5] Soket, Merge
  • 15. [UE5] Character Animation Asset, 외부 파일 캐릭터 모션 적용(Mannequin, Metahuman, Mixamo, ActorCore, Motion Capture)
  • 14. [UE5] Sequence, Spawnable Camera, New Binding, Rendering
스농이
스농이
2024.07.22부터의 기록
  • 스농이
    3D 비주얼 아티스트 성장일지
    스농이
  • 전체
    오늘
    어제
    • 3D 비주얼 아티스트 공부 기록 (78)
      • 1. 콘텐츠 기획 공부 (7)
        • 콘텐츠 기획 [이론] (3)
        • 콘텐츠 기획 [실습] (4)
      • 2. 3D 렌더링 및 생성형 AI 공부 (7)
        • VRED (2)
        • Stable Diffusion & Blender (2)
        • Midjourney & GPT4o (3)
      • 3. 후디니(Houdini) 공부 (16)
        • Houdini [이론] (8)
        • Houdini [실습] (8)
      • 4. 언리얼 엔진(Unreal Engine) 공부 (33)
        • Unreal Engine 5 (26)
        • Automotive Animation 스터디 [기.. (5)
        • Automotive Cinematic 스터디 [심.. (2)
      • 2. 블렌더(Blender) 공부 (15)
        • 지오메트리 노드 [이론] (3)
        • 지오메트리 노드 [실습] (2)
        • Blender [이론 및 실습] (10)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
스농이
16. [UE5] Animation Retargeting, Control Rig
상단으로

티스토리툴바