3D Video Production/Unreal Engine (5.6.1)

UE 5.6 MetaHuman: Facial Animation과 Chaos Cloth, Mixamo Auto Rigging

보별 2026. 9. 14. 16:17
반응형

지난 MetaHuman 제작 포스트에 이어 이번에는 캐릭터가 실제로 움직일 수 있도록 Skeletal Mesh와 Animation, 의상 Simulation을 연결하는 과정을 진행했다.

이번 포스트는 크게 세 부분으로 나눌 수 있다.

첫 번째는 일반 영상 파일을 MetaHuman의 얼굴 표정 Animation으로 변환하는 과정이고, 두 번째는 Marvelous Designer 계열의 의상을 Unreal Engine의 Chaos Cloth로 움직이게 만드는 과정이다.
마지막으로 Mixamo를 이용해 Bone이 없는 캐릭터에 자동으로 Rig를 생성하는 방법도 확인했다.

특히 이번 과정에서는 단순히 메뉴를 따라가는 것보다 Skeleton, Skin Weight, Physics Asset, Cloth Simulation이 각각 어떤 역할을 하는지 구분하는 것이 중요했다.

 

MetaHuman의 Skeletal Mesh와 Rig 구조

먼저 Skeletal Mesh부터 다시 정리할 필요가 있다.

Skeletal Mesh는 움직이는 캐릭터에 사용하는 Mesh로, 일반적으로 Mesh와 Skeleton, Skin Weight가 함께 구성된다.

Skeleton의 Bone이 움직이면 Skin Weight에 따라 주변 Vertex들이 함께 변형되면서 캐릭터가 움직이게 된다.

MetaHuman은 일반적인 캐릭터보다 Rig 구조가 훨씬 세밀하다.

특히 얼굴에는 많은 Joint가 사용되고, RigLogic을 통해 얼굴의 표정 값이 여러 Joint와 Vertex Deformation으로 변환된다.
Body 역시 Helper Joint와 Corrective 시스템을 이용해 어깨나 팔처럼 회전할 때 형태가 쉽게 무너지는 부분을 보정한다.

그래서 손이나 팔을 움직였을 때 한 Bone 주변만 딱딱하게 회전하는 것이 아니라, 주변 팔뚝이나 어깨 형태까지 비교적 자연스럽게 변형된다.

실제로 MetaHuman을 다뤄보면 일반적인 무료 캐릭터보다 Skeleton 구조가 상당히 복잡한 이유를 움직임에서 바로 확인할 수 있다.

 

영상 파일로 MetaHuman 표정 Animation 만들기

이번에는 직접 촬영한 일반 영상 파일을 이용해 MetaHuman의 Facial Animation을 생성했다.

MetaHuman Animator는 영상을 바로 Animation으로 사용하는 것이 아니라, 영상 Ingest → Capture Data 생성 → Performance 분석 → Animation Export 과정을 거친다.

영상 촬영 시 주의사항

표정 추출의 품질은 원본 영상 품질에 크게 영향을 받는다.

카메라는 가능하면 삼각대나 고정된 위치에 두고 촬영하는 것이 좋다.
얼굴 촬영에서는 얼굴이 화면에서 충분히 크게 보여야 하며, 얼굴 특징이 가려지지 않아야 한다.

안경이나 선글라스는 벗고, 긴 앞머리가 눈썹이나 눈을 가린다면 머리를 올려주는 것이 좋다.
Epic의 MetaHuman Animator 가이드에서도 안경, 긴 머리, 손이나 기타 물체가 얼굴을 가리는 상황을 피하도록 권장한다.

조명 역시 얼굴에 강한 그림자가 생기기보다는 전체적으로 고르게 들어오는 편이 좋다.

촬영할 때 약간의 준비를 해두는 것만으로도 나중에 Solve 결과를 반복해서 수정해야 하는 시간을 상당히 줄일 수 있다.

Live Link Hub의 Capture Manager에서 영상 불러오기

Unreal Engine 상단 메뉴에서 Tools - Live Link Hub를 실행한다.

Live Link Hub가 열리면 좌측 상단의 작업 방식을 Capture Manager로 변경하고, 그다음 Add Device로 Mono Video Ingest를 추가한다.

Device Details의 Take Directory에는 원본 Facial 영상이 들어 있는 폴더를 지정한다.

Capture Manager는 지정한 폴더와 하위 폴더에서 영상을 검색하기 때문에, 같은 폴더에 관계없는 영상이 많으면 모두 표시될 수 있다.
따라서 Facial Capture 작업용 폴더를 따로 만들어 사용하는 편이 관리하기 편하다.

사용할 영상을 선택한 다음 Add to Queue를 누르면 오른쪽 Jobs List에 작업이 등록된다.

Start를 누르면 영상 Ingest가 시작되고 완료되면 Progress가 100%가 된다.

여기서 중요한 점은 아직 Facial Animation이 만들어진 것이 아니라는 것이다.

이 단계에서는 원본 영상을 Unreal에서 분석할 수 있는 데이터 형태로 변환하고 있는 단계다.

Capture Manager가 생성하는 에셋

Ingest가 끝나면 Content의 CaptureManager/Imports 아래에 관련 에셋이 생성된다.

위 이미지에서는 세 가지 에셋을 확인할 수 있다.

  • CD_man_facial_1 : Capture Data
  • IS_V_video_man_facial_1 : Img Media Source
  • SW_audio_man_facial_1 : Sound Wave

여기서 가장 중요한 것은 CD_* 형태의 Capture Data다.

MetaHuman Performance는 이 Capture Data를 입력으로 받아 영상과 Audio 데이터를 분석한다.

Img Media Source는 영상이 Ingest되면서 만들어진 Image Sequence를 Unreal에서 재생하기 위한 Media Source이고, Sound Wave에는 영상의 Audio가 들어간다.

따라서 Capture Manager의 Start는 Animation 생성 단계라기보다 원본 데이터를 Animation 분석용 Source Asset으로 준비하는 과정으로 보는 것이 정확하다.

MetaHuman Performance에서 표정 분석하기

Content Browser에서 우클릭 - MetaHuman - MetaHuman Performance를 생성한다.

MetaHuman Performance를 열고 Details에서 다음 항목을 지정한다.

  • Input Type: Monocular Footage
  • Footage Capture Data: Capture Manager에서 생성한 CD_* Capture Data
  • Visualization Mesh: 표정을 확인할 MetaHuman의 Face Skeletal Mesh
  • Head Movement Mode: Disabled

왼쪽 Image Review에는 촬영한 사람의 원본 영상이 표시되고, 오른쪽 A/B Viewport에는 MetaHuman이 표시된다.

이번 작업에서는 얼굴 표정만 사용하고 영상 속 실제 고개 움직임은 사용하지 않았기 때문에 Head Movement Mode를 Disabled로 설정했다.

설정을 마친 뒤 상단의 Process를 실행한다.

Process가 완료되면 MetaHuman Preview에서 원본 영상에 맞춰 눈, 입, 볼 등의 표정이 움직이는 것을 확인할 수 있다.

이 단계의 결과는 아직 프로젝트에 독립적인 Animation Sequence로 생성된 것은 아니다.
MetaHuman Performance 내부에 Solve된 결과가 만들어진 상태다.

결과를 직접 비교해보면 단순 Lip Sync가 아니라 얼굴 전체의 작은 표정 변화까지 분석된다는 점이 눈에 띈다.

Facial Animation을 Animation Sequence로 출력하기

Process가 정상적으로 완료됐다면 상단의 Export Animation을 선택한다.

이 단계에서 실제 Animation Sequence가 생성된다.

그다음 MetaHuman이 들어 있는 Level Sequence를 열고 Face Track을 확인한다.

기존 Face Control Rig를 사용할 필요가 없다면 제거한 뒤, Face에 Animation Track을 추가하고 방금 Export한 Facial Animation을 넣는다.

이제 Level Sequence를 재생하면 캐릭터의 Body Animation과 별도로 얼굴에 촬영 영상에서 생성한 표정 Animation이 적용된다.

Body와 Face가 별도의 Track으로 관리된다는 구조를 알아두면 이후 캐릭터 Animation을 수정할 때 훨씬 이해하기 쉽다.

영상과 Audio 싱크가 맞지 않는 경우

Ingest 이후 영상 Preview와 Audio가 조금씩 어긋난다면 우선 원본 영상의 FPS와 생성된 Img Media Source의 FPS가 동일한지 확인한다.

Img Media Source에는 Frame Rate Override가 있다.

이 값은 Image Sequence의 기본 Frame Rate를 다른 Frame Rate로 Override하는 기능이다.

예를 들어 원본 영상이 30fps인데 Image Sequence가 24fps로 해석되면 시간이 지나면서 영상과 Audio의 시간 차이가 점점 커질 수 있다.

이 경우 Frame Rate Override를 실제 원본 Frame Rate에 맞춰준다.

따라서 이 값은 Audio를 눈대중으로 맞추기 위한 보정값이라기보다 Image Sequence가 잘못된 FPS로 해석될 때 올바른 FPS를 지정하는 값으로 이해하는 것이 좋다.

 

Marvelous Designer 의상을 MetaHuman에 적용하기

이번 작업에서는 Marvelous Designer에서 의상을 직접 제작하거나 수정하는 작업까지 진행하지는 않았다.

대신 Marvelous Designer에서 제작된 의상이 어떤 과정을 거쳐 MetaHuman용 Chaos Cloth가 되는지를 확인하고, 준비된 의상 파일을 언리얼 엔진에서 실제로 설정했다.

Marvelous Designer는 2D Pattern을 기반으로 실제 천처럼 Simulation하면서 의상을 제작할 수 있기 때문에 자연스러운 주름과 옷 형태를 만드는 데 강점이 있다.

이번 작업은 Chaos Cloth Asset을 직접 설정하는 방식으로 진행했다.

의상 제작을 위한 MetaHuman 준비

이번 의상은 Ada의 체형을 기준으로 제작된 데이터였기 때문에 새로운 MetaHuman Character를 생성하고 Preset을 Ada로 설정했다.

이번 작에서는 외부 의상을 적용하고 Body와 Cloth의 상태를 확인하기 쉽도록 MetaHuman의 기본 의상을 제거하고 Underwear만 남긴 상태에서 진행했다.

의상을 입히기 전 상태에서 Create Full Rig를 실행하고, Download Texture Source는 4K로 설정했다.

MetaHuman Blueprint를 보면 Face와 Body가 각각 별개의 Skeletal Mesh로 구성되어 있다.

하지만 Marvelous Designer에서 Avatar로 사용하려면 머리와 몸이 연결된 하나의 캐릭터가 편하기 때문에 MetaHuman Character에서 Export Combined Skel Mesh를 사용해 Head와 Body가 결합된 Skeletal Mesh를 출력한다.

이 데이터를 FBX로 Export해 Marvelous Designer에서 의상을 맞추고 수정하는 흐름이다.

이번 작업에서는 이 Marvelous Designer 편집 과정은 생략하고 이미 준비된 의상 데이터를 사용했다.

참고로 Marvelous Designer에서 Simulation까지 끝낸 결과를 Geometry Cache 형태로 가져오는 Alembic 방식과, 오늘처럼 언리얼의 Chaos Cloth가 실시간으로 Simulation하도록 데이터를 가져오는 방식은 서로 다른 Workflow다.

이 구분을 모르고 보면 USD와 Alembic이 같은 역할처럼 느껴지기 쉬운데, 실제로는 언리얼에서 어디까지 Simulation할 것인지에 따라 역할이 달라진다.

Chaos Cloth Asset 생성하기

Content Browser의 빈 곳에서 우클릭 - Physics - Cloth Asset을 생성한다.

Cloth Asset을 만들면 실제 Cloth Asset과 함께 Dataflow Graph를 관리하는 Dataflow Asset이 생성된다.

Chaos Cloth의 새로운 Cloth Asset Workflow에서는 이 Dataflow Graph 안에서 Mesh Import, Skin Weight, Weight Map, Collision 등의 처리 과정을 노드 형태로 연결한다.

즉 Cloth Asset은 단순한 Mesh가 아니라 의상이 어떻게 생성되고 Simulation될지를 정의한 데이터 구조라고 이해하면 된다.

ClothAssetTerminal의 LOD 정리

Dataflow의 마지막에는 ClothAssetTerminal 노드가 있다.

기본 상태에서는 여러 Cloth LOD를 연결할 수 있도록 Option Pin이 존재한다.

이번 작업에서는 하나의 LOD만 사용할 것이기 때문에 LOD 1과 LOD 2 연결을 제거했다.

불필요한 Pin을 우클릭하고 Remove Option Pin을 선택한다.

정리한 뒤에는 Collection Lods[0]만 ClothAssetTerminal에 연결되어 있고 LOD 1에 사용하던 Remesh와 Solver Config 경로는 사용하지 않는 상태가 된다.

이것은 이번 작업을 단순하게 만들기 위한 설정이다.

실제 게임 캐릭터처럼 거리에 따라 Cloth Simulation 품질을 변경해야 하는 경우에는 여러 Cloth LOD를 활용할 수 있으므로 LOD 1과 2는 항상 제거해야 한다고 이해하면 안 된다.

USD Import로 의상 불러오기

Dataflow의 USDImport 노드를 선택한 뒤 Node Details의 USD File에 준비된 의상 USD 파일을 지정했다.

정상적으로 Import되면 Cloth Editor에서 의상의 2D Panel 구조와 3D 의상을 확인할 수 있다.

Marvelous Designer처럼 Pattern 기반으로 만들어진 의상 데이터를 사용할 때는 이 구조를 통해 Cloth Simulation용 Mesh를 준비할 수 있다.

여기까지는 의상을 언리얼 안으로 가져온 단계이고, 아직 MetaHuman Skeleton을 따라 움직이는 상태는 아니다.

Transfer Skin Weights

다음으로 TransferSkinWeights 노드를 설정한다.

Skeletal Mesh에는 앞에서 준비한 MetaHuman의 Skeletal Mesh를 지정하고, Render Mesh Transfer Source 역시 Skeletal Mesh로 설정한다.

Transfer Skin Weights의 역할은 원본 MetaHuman Skeletal Mesh의 Skinning Weight를 Cloth Mesh로 전달하는 것이다.

즉 팔이나 허리 Bone이 움직였을 때 옷 역시 해당 Bone의 움직임을 기본적으로 따라가게 된다.

그 위에 Chaos Simulation이 추가되면서 옷자락이나 느슨한 부분만 물리적으로 흔들리는 구조가 된다.

캐릭터 Animation을 따라가는 움직임과 천의 Simulation 움직임이 겹쳐 있다는 점이 이번 Cloth Workflow를 이해하는 핵심이었다.

Weight Map으로 옷이 움직일 영역 지정하기

Chaos Cloth에서는 모든 Vertex를 똑같이 자유롭게 움직이게 하면 안 된다.

허리나 어깨처럼 몸에 붙어 있어야 하는 곳까지 자유롭게 움직이면 옷이 흘러내리거나 형태가 쉽게 무너질 수 있다.

그래서 Max Distance Weight Map을 이용한다.

위 이미지에서는 의상의 위쪽은 어둡게 고정되어 있고 아래쪽으로 갈수록 흰색 영역이 넓어지는 형태를 확인할 수 있다.

Max Distance는 해당 Vertex가 Animation으로 결정된 원래 위치에서 얼마나 멀리 이동할 수 있는지 결정한다.

Max Distance Weight Map은 0~1 범위의 Weight 값을 사용한다.
일반적인 흑백 표시에서는 어두운 영역이 0에 가까운 낮은 Weight, 밝거나 흰색에 가까운 영역이 1에 가까운 높은 Weight를 의미한다.
다만 여기서 1은 실제 이동 거리 1cm를 의미하는 것이 아니라, 설정된 Low/High Max Distance 사이를 보간하기 위한 Weight 값이다.

0에 가까우면 Animation Position을 거의 그대로 따라가고, Weight 값이 높아질수록 설정된 Max Distance 범위 안에서 Chaos Solver의 영향을 더 크게 받아 움직일 수 있다.

따라서 치맛단처럼 크게 흔들려야 하는 부분에는 높은 값을 주고, 허리처럼 고정되어야 하는 부분은 낮게 설정한다.

경계가 너무 갑자기 나뉘면 움직임도 부자연스러워질 수 있으므로 Brush Mode를 Smooth로 바꾸고 경계를 부드럽게 칠해준다.

2D Pattern만 보지 말고 3D View에서도 Weight가 어느 위치에 적용되는지 확인한 뒤 Accept를 눌러 적용한다.

실제로 Cloth Weight Painting은 값 자체보다 고정 영역에서 Simulation 영역으로 넘어가는 경계를 얼마나 자연스럽게 만드는지가 더 중요하게 느껴졌다.

Physics Asset으로 캐릭터와 옷 충돌시키기

다음 단계는 캐릭터와 Cloth 사이의 Collision이다.

MetaHuman Skeletal Mesh에는 Physics Asset이 존재한다.

신체 주변에 여러 개의 Capsule, Box 형태가 배치되어 있는데, 이것들이 Physics Body다.

Physics Asset은 Skeletal Mesh에 물리 및 Collision 정보를 제공하는 에셋으로, Bone을 따라 움직이는 여러 단순 Collision Shape로 캐릭터의 형태를 근사한다.

따라서 실제 피부 Mesh를 그대로 Collision으로 계산하는 방식과는 다르다.

Dataflow의 SetPhysicsAsset 노드에서 MetaHuman의 Physics Asset을 지정한다.

SetPhysicsAsset 노드는 Cloth Simulation Mesh가 충돌할 Physics Asset을 설정하는 역할을 한다.

이를 통해 치마가 다리나 몸통을 아무 제한 없이 통과하는 것을 줄일 수 있다.

Physics Asset을 실제로 보면 왜 Cloth가 특정 동작에서 피부와 완전히 정확하게 맞지 않을 수 있는지도 이해하기 쉽다.
실제 몸 형태가 아니라 Capsule과 Box로 근사하기 때문이다.

Cloth Simulation Preview

설정이 어느 정도 끝났다면 Cloth Asset의 Preview Details에서 테스트할 수 있다.

Skeletal Mesh Asset에 MetaHuman Skeletal Mesh를 넣고 Animation Asset에는 테스트할 Animation을 지정한다.

Preview를 재생하면 캐릭터가 움직이는 동안 치마가 실제로 흔들리는 모습을 확인할 수 있다.

Preview 단계에서 문제가 생긴다면 Level에 배치한 이후 수정하기보다 여기서 Skin Weight, Max Distance, Physics Asset을 하나씩 확인하는 편이 문제 원인을 찾기 쉽다.

MetaHuman Blueprint에 Chaos Cloth Component 추가하기

Cloth Asset 설정이 끝났다면 MetaHuman Blueprint를 연다.

먼저 Components 패널에서 LODSync를 선택하고 Details의 LOD - Num LODs를 1로 설정했다.

Num LODs는 LODSync가 관리하는 MetaHuman Component들이 사용할 수 있는 최대 LOD 수를 결정하는 값이다.

이번 작업에서는 하나의 LOD만 사용하도록 1로 제한했다.

그다음 Chaos Cloth Component를 추가하고 Body의 자식 Component로 배치한 뒤, Cloth Component의 Asset에는 앞에서 만든 Cloth Asset을 지정한다.

Chaos Cloth Component는 Cloth Asset을 Runtime에서 Simulation하는 Component이며 Simulation Enable과 Editor Simulation 등의 관련 속성이 존재한다.

Body 자식으로 배치함으로써 MetaHuman의 Transform과 Animation 흐름을 함께 따라가게 된다.

이제 Blueprint를 Level에 배치하고 Level Sequence에 추가한다.

Body에 기존 Control Rig가 있다면 작업 목적에 따라 제거한 뒤 춤추는 Animation을 추가했다.

Editor에서 Simulation을 실행한 상태로 Level Sequence를 재생하면 캐릭터의 움직임을 따라 Cloth가 흔들린다.

렌더 과정에서도 Cloth Simulation이 평가되지만 처음부터 천이 안정된 상태라고 가정하면 안 된다.
특히 Movie Render Queue에서는 Cloth Physics가 안정될 시간을 확보하기 위해 Engine Warm Up Count를 사용하는 방법이 있다.

반투명으로 보이는 Cloth Material 수정

이번 의상은 투명 표현이 필요한 재질이 아니지만 Material이 Translucent로 설정되어 있어 캐릭터의 Body가 안쪽에서 비쳐 보였다.

따라서 Material의 Blend Mode를 Opaque로 변경했다.

성능 측면에서도 Translucent Material은 투명한 Surface가 겹칠수록 Overdraw가 발생할 수 있으므로, 일반적인 불투명 의상이라면 불필요하게 Translucent를 사용할 필요가 없다.

Cloth 사이로 Body가 튀어나오는 문제

Chaos Cloth를 실제 Animation에 적용해보니 또 다른 문제가 나타났는데, 특정 자세에서 다리나 몸통 일부가 치마 밖으로 튀어나왔다.

Physics Asset이 있어도 Collision은 실제 Body Mesh와 완전히 동일하지 않고, 빠른 움직임이나 Cloth 설정에 따라 관통이 발생할 수 있다.

Collision이나 Cloth 설정을 더 세밀하게 조절하는 방법도 있지만, 이번 의상처럼 치마 안쪽의 신체가 어떤 상황에서도 보이지 않는다면 가려지는 Body 자체를 줄이거나 제거하는 방법도 효과적이다.

Body를 안쪽으로 줄이기: Vertex Sculpting

MetaHuman Skeletal Mesh를 열고 Skeletal Mesh Editing Tool을 이용한다.

Deform - Vertex Sculpting으로 이동하여, Sculpting Smooth를 이용해 옷을 뚫고 나오는 Body 표면을 안쪽으로 줄여준다.

이렇게 하면 신체 표면과 Cloth 사이에 여유 공간이 생겨 가벼운 관통은 줄일 수 있다.

다만 이것만으로 해결되지 않거나 의상에 완전히 가려지는 부분이라면 Mesh 자체를 제거하는 방법을 사용할 수 있다.

Poly Group으로 가려지는 신체 제거하기

먼저 Skin - Paint Poly Group을 이용해 제거할 영역을 별도의 Poly Group으로 지정한다.

이번 캐릭터에서는 긴 치마에 완전히 가려지는 허리 아래부터 정강이 근처까지를 별도 영역으로 만들었다.

그다음 Model - Edit Poly Group에서 해당 Poly Group을 선택하고 Delete Face를 사용한다.

불필요한 Body Mesh가 사라지면서 Animation 중 Cloth를 뚫고 튀어나오던 신체도 더 이상 보이지 않는다.

이 방식은 매우 확실하지만 Mesh를 직접 변경하는 방법이므로 다른 의상으로 갈아입을 캐릭터라면 원본을 복사해두는 것이 안전하다.

의상 아래에서 절대로 보이지 않는 영역이라면 오히려 Collision 값을 계속 조절하는 것보다 이런 방식이 제작 시간을 크게 줄여주는 경우도 있다.

MetaHuman 기본 언더웨어 숨기기

MetaHuman Body에는 기본 Underwear 표현이 들어 있다.

Rig가 생성된 MetaHuman Character에서는 일부 Materials 편집 기능이 비활성화되므로 먼저 Remove Rig를 실행한다.

그다음 Materials - Skin - Show Top Underwear를 비활성화하면 상의 Underwear를 숨길 수 있다.

 

Mixamo에서 Auto Rigging하기

마지막으로 Mixamo의 Auto Rigging 기능을 확인했다.

Mixamo를 이용하면 직접 제작한 Humanoid Character에 Skeleton이 없는 경우에도 비교적 간단하게 Rig를 생성할 수 있다.

Adobe 공식 가이드에서도 custom 3D Character를 업로드해 Auto Rigging할 수 있으며 FBX, OBJ, ZIP 형식을 지원한다.

기존 Rig 제거하기

이번 작업에서는 Mixamo에서 T-Pose 캐릭터를 하나 다운로드해 다시 Auto Rigging하는 방식으로 작업했다.

먼저 C4D에서 다운로드한 캐릭터를 연다.

기존에 들어 있는 Bone, Skin, Weight 관련 데이터를 제거한다.

이 상태에서 모델을 FBX로 Export한다.

Auto Rigging의 목적이 새로운 Skeleton과 Skin Weight를 생성하는 것이기 때문에 기존 Rig 데이터가 남아 있는 상태로 다시 처리하기보다는 깨끗한 Mesh 상태로 준비하는 것이 좋다.

Mixamo에 캐릭터 업로드하기

Mixamo에서 Upload Character를 선택하고 방금 출력한 FBX를 업로드한다.

캐릭터가 화면에 표시되면 정면을 바라보는 T-Pose가 되도록 방향을 확인한다.

Mixamo Auto Rigger는 기본적으로 휴머노이드 캐릭터를 대상으로 하며, 지나치게 비대칭인 Pose나 큰 날개·꼬리·별도 Props가 있는 경우에는 Auto Rigging 품질이 떨어질 수 있다.
Adobe 역시 중립 Pose, 깨끗한 Mesh, 구분 가능한 머리·몸·팔·다리 구조를 권장한다.

관절 Marker 지정하기

Auto-Rigger 화면에서 캐릭터의 주요 관절 위치를 지정한다.

이번 화면에서는 다음 Marker를 확인할 수 있다.

  • Chin
  • Wrists
  • Elbows
  • Knees
  • Groin

좌우 대칭 캐릭터라면 Use Symmetry를 활성화하면 한쪽 Marker를 움직였을 때 반대쪽도 대응해서 움직인다.

각 Marker를 실제 관절 중심에 최대한 정확하게 배치한 뒤 NEXT를 누르면 Auto Rigging이 시작된다.

Rigging이 완료되면 Mixamo Animation을 적용해 팔과 다리, 손 등이 자연스럽게 움직이는지 확인한다.

관절이 비틀리거나 팔꿈치·무릎이 이상하게 꺾인다면 완료된 결과를 억지로 수정하기보다 Auto-Rigging 단계로 돌아가 Marker 위치부터 다시 잡는 것이 좋다.

Auto Rigging을 직접 해보면 Rig를 자동으로 만들어준다는 것보다, 결국 사람이 지정하는 몇 개의 기준점이 최종 Skinning 품질에 상당한 영향을 준다는 점이 더 중요하게 느껴진다.

 

이번 포스트에서는 MetaHuman을 제작하는 단계를 넘어 실제 캐릭터 제작 Pipeline에서 자주 등장하는 Animation, Cloth Simulation, Auto Rigging을 한 번에 연결해봤다.

영상 기반 Facial Animation에서는 Capture Manager와 MetaHuman Performance의 역할을 구분하는 것이 중요했고, Chaos Cloth에서는 Skin Weight, Max Distance, Physics Asset이 서로 다른 역할을 담당한다는 점이 핵심이었다.

또한 Simulation만으로 모든 Cloth 관통 문제를 해결하려 하기보다 의상에 완전히 가려지는 Body Mesh를 정리하는 것처럼 실제 제작 상황에 맞는 방법을 선택할 수도 있었다.

Mixamo Auto Rigging까지 연결해서 보면 결국 이번 포스트 전체는 하나의 공통 흐름으로 정리할 수 있다.

Mesh에 Skeleton을 만들고, Animation을 전달하고, 캐릭터와 의상을 함께 움직이게 한 뒤 필요한 부분에 Physics Simulation을 더하는 과정이다.

각 기능을 따로 외우는 것보다 이 관계를 이해해두는 편이 이후 MetaHuman이나 일반 Skeletal Mesh 캐릭터를 다룰 때 훨씬 도움이 될 것 같다.