지난 포스트에서는 MetaHuman을 제작하고, Mannequin과 Mixamo 애니메이션을 Retarget해 Level Sequence에 적용하는 과정까지 정리했다.
이번에는 적용된 애니메이션 위에 무기를 부착하고, 장면 중간에 무기를 놓거나 던지는 연출을 추가했다.
이어서 Sequencer Attach Track과 Socket을 이용해 무기·안경·운동화를 Level Sequence 또는 MetaHuman Blueprint에 부착하는 방법도 살펴봤다.
Idle 애니메이션을 MetaHuman에 적용하고 블렌딩하기
먼저 Idle 상태의 애니메이션을 MetaHuman에 맞게 Retarget했다.

Retarget한 애니메이션을 Level Sequence의 Body Animation Track에 추가한 뒤, 지난 시간에 작업한 애니메이션과 일부 구간이 겹치도록 배치했다.

두 Animation Section을 겹치면 겹친 구간을 기준으로 자동 블렌드가 생성된다.
블렌드 구간이 너무 짧으면 자세가 갑자기 바뀌고, 너무 길면 두 애니메이션이 오랫동안 섞이면서 힘이 빠진 움직임처럼 보일 수 있다.

무기 부착 및 분리하기: Parent Constraint
기존 애니메이션 위에 Layered Control Rig 추가하기
Idle 애니메이션을 적용한 뒤, 이전에 제거했던 MetaHuman Body Control Rig을 다시 추가했다.
Body 트랙의 + 버튼을 누르고 Control Rig - Layered를 활성화한 뒤, MetaHuman_ControlRig를 선택했다.

Layered Control Rig을 사용하면 Animation Sequence를 Control Rig으로 Bake하지 않고도 기존 애니메이션 위에서 손과 팔의 자세를 수정할 수 있다.


일반 Control Rig이 기존 포즈를 덮어쓸 수 있는 것과 달리, Layered Control Rig은 기존 애니메이션의 결과를 바탕으로 추가 보정을 적용한다.
양팔을 FK에서 IK 방식으로 변경하기
무기를 잡으려면 양손의 위치가 무기를 기준으로 안정적으로 유지되어야 한다.
MetaHuman Control Rig 트랙에서 팔과 관련된 FK/IK Switch를 찾아 양팔을 IK 방식으로 변경했다.
arm_l_fk_ik_switch
arm_r_fk_ik_switch

FK는 어깨부터 팔꿈치와 손목을 차례로 회전해 자세를 만드는 데 적합하다.
반면 IK는 손의 위치를 먼저 정하면 팔꿈치와 어깨가 그 위치에 맞춰 계산되기 때문에, 손을 무기나 소품에 고정해야 하는 작업에 유리하다.
이 단계에서 팔이 갑자기 다른 방향으로 꺾인다면 IK Switch 값뿐만 아니라 손 IK Control의 위치와 팔꿈치 Pole Control도 함께 확인해야 한다.
Snapper의 Parent Constraint로 무기를 손에 부착하기
레벨에 무기 Static Mesh를 배치한 뒤 Level Sequence에 추가했다.

이후 Animation Mode로 전환하고 Snapper를 선택했다.

Constraints 항목의 + 버튼을 누른 뒤 Parent를 선택했다.

Parent Constraint는 자녀 오브젝트가 부모 오브젝트의 위치·회전·스케일 등 Transform을 따라가도록 만드는 기능이다.
이번 작업에서는 다음과 같이 지정하고 Snap Animation으로 적용했다.
Children: 무기 Static Mesh
Parent: hand_r_ik_ctrl

먼저 무기를 자녀로 지정하고, 뷰포트에서 MetaHuman의 오른손 IK Control인 hand_r_ik_ctrl을 선택했다.
Constraint가 생성되면 Animation 패널에 다음과 같은 관계가 표시된다.
hand_r_ik_ctrl ← 무기 Static Mesh


손에 맞게 무기의 위치와 각도 조정하기
Constraint를 추가하면 무기가 손 IK Control을 따라 움직이지만, 무기 손잡이와 손바닥의 위치까지 자동으로 맞춰지는 것은 아니다.
무기의 Transform을 조절해 손잡이가 손 안에 들어오도록 위치와 각도를 수정했다.

손가락이 방아쇠나 손잡이와 정확히 맞아야 할 때는 무기를 이동시키는 것만으로 해결하기보다 손가락 Control을 추가로 조정하는 편이 자연스럽다.

Constraint 키로 무기를 손에서 분리하기
무기를 손에 부착한 다음에는 장면 중간에 무기를 놓거나 던지는 연출을 만들었다.
Animation Mode의 Constraints 항목에서 생성한 Parent Constraint 오른쪽에 있는 활성 키 버튼을 눌렀다.

Constraint가 활성화된 상태에서 버튼을 누르면 현재 프레임에 비활성 키가 추가된다.

이 프레임 이전에는 무기가 손을 따라가고, 이후에는 손의 영향을 받지 않는다.


언리얼은 Constraint 상태가 전환될 때 무기가 갑자기 다른 위치로 튀지 않도록 현재 월드 위치를 유지하는 보정 키도 함께 생성한다.
분리된 무기에 이동 키 추가하기
Constraint를 비활성화하면 무기는 손에서 분리되지만, 자동으로 움직이지는 않는다.
무기를 앞으로 던지는 연출을 만들기 위해 분리된 이후 프레임으로 이동한 다음 무기의 위치와 회전을 변경하고 Transform 키를 추가했다.
Constraint 활성 → 손을 따라감
Constraint 비활성 → 손에서 분리
Transform 키 → 지정한 경로로 이동
위치 커브는 Linear로 변경해 일정한 속도로 앞으로 이동하도록 설정했다.

최종적으로 아래와 같은 애니메이션이 재생된다.

Gimbal Lock & 회전 보간 문제
무기를 회전시키는 과정에서는 회전축이 예상과 다르게 뒤틀리거나, 의도하지 않은 방향으로 회전하는 문제가 나타날 수 있다.
이러한 현상은 Euler 회전의 축 정렬, Gimbal Lock 또는 키프레임 사이의 보간 경로로 인해 발생할 수 있다.
Gimbal Lock은 Euler 회전에서 두 회전축이 같은 방향으로 겹치면서, 세 개의 회전 자유도 중 하나를 제대로 제어하지 못하게 되는 현상이다.
이 경우 그래프를 Linear로 변경하더라도 문제가 해결되지 않을 수 있다.
Linear는 시간에 따른 값의 변화만 바꾸며, X·Y·Z 축으로 분리된 Euler 회전 구조 자체는 유지하기 때문이다.
실무에서는 다음 방법을 먼저 확인한다.
- 물체의 로컬 축 정리
- 회전을 가능한 한 하나의 주축에 집중
- 회전 중간에 추가 키 배치
- Euler Filter 적용
- 회전용 부모 Actor 또는 Scene Component 사용
- Quaternion Interpolation 사용
Unreal Engine은 X축이 전방, Y축이 오른쪽, Z축이 위쪽인 좌수 Z-Up 좌표계를 사용한다.
다만 특정 물체를 반드시 X축으로 회전해야 Gimbal Lock이 방지되는 것은 아니다.
실제로 사용할 축은 해당 모델의 로컬 축과 원하는 회전 방향을 기준으로 정해야 한다.
Quaternion Interpolation 사용하기
Euler 회전으로 문제가 해결되지 않는 경우 Quaternion Interpolation을 사용할 수 있다.
Quaternion은 X·Y·Z 회전값을 각각 보간하는 대신 두 방향 사이의 회전을 하나의 회전 경로로 계산한다.
이 방식은 Gimbal Lock을 피하는 데 유리하지만 항상 가장 짧은 회전 경로를 선택한다.
따라서 220도 회전시키려는 물체가 반대 방향으로 140도 회전하는 것처럼 보일 수 있다.
Quaternion을 적용한 뒤 회전이 느려 보인다면 계산 성능 문제라기보다 회전 경로와 키프레임 간격이 달라졌을 가능성이 높다.
이 경우 중간 키를 추가하거나 키의 간격을 줄여 속도를 다시 조절한다.
액세서리 부착하기
새 Level Sequence에 MetaHuman 애니메이션 추가하기
새로운 Level Sequence를 생성하고 MetaHuman을 추가했다.
이번에는 Animation Sequence를 직접 사용할 예정이었기 때문에 기존 Body Control Rig은 제거했다.

Idle 애니메이션과 앞으로 걸어가는 애니메이션을 Body Animation Track에 추가하고, 두 Section을 살짝 겹쳐 자연스럽게 이어지도록 블렌딩했다.

Allow Incompatible Skeletons 사용 시 주의점
애니메이션 선택 창에서 원하는 애니메이션이 보이지 않을 경우 View Options의 Allow Incompatible Skeletons를 활성화할 수 있다.

이 설정은 호환되지 않는 Skeleton용 애니메이션까지 선택 목록에 표시하는 기능이다.
자동으로 Retarget하는 기능은 아니다.
Skeleton 구조와 Bone 이름이 거의 동일하면 재생될 수 있지만, 구조나 체형 차이가 크면 다음과 같은 문제가 발생할 수 있다.
- 팔과 다리 방향이 어긋남
- 손과 발이 비정상적으로 늘어남
- Root Motion 방향이 달라짐
- 일부 Bone이 움직이지 않음
최종 작업에 사용할 애니메이션이라면 IK Retargeter로 정식 Retarget하는 편이 안전하다.
빠르게 동작을 확인해야 하는 프리비주얼 단계에서는 편리하지만, 목록에 보인다는 것과 정상적으로 호환된다는 것은 구분해야 한다.
무기 부착하기: Sequencer Attach Track
이번에는 Control Rig Constraint 대신 Sequencer의 Attach Track을 이용해 무기를 손에 부착했다.
무기 Static Mesh를 레벨에 배치한 후 Level Sequence에 추가한다.


무기 트랙의 + 버튼을 누르고 Attach - BP_MetaHuman 항목을 선택한다.

이후 나타나는 창에서 Skeletal Mesh Component를 선택한 뒤, hand_r을 검색하고 오른손 Bone을 지정했다.


설정이 완료되면 Attach Section이 활성화된 구간 동안 무기가 MetaHuman의 오른손을 따라간다.


이 방법은 Control Rig을 직접 조작할 필요 없이 특정 Bone이나 Socket에 빠르게 부착할 수 있다는 장점이 있다.
Sequencer Attach & Parent Constraint 차이
두 방법 모두 무기를 손에 붙일 수 있지만 사용 목적이 조금 다르다.
| Sequencer Attach | Parent Constraint | |
| 부모 대상 | Actor, Component, Bone, Socket | Actor, Control Rig Control 등 |
| 설정 난이도 | 비교적 간단 | 상대적으로 세밀함 |
| 잡기·놓기 | Attach Section 범위로 제어 | 활성 키로 제어 |
| 손 IK와 연동 | Bone 기준 부착에 적합 | IK Control을 부모로 사용 가능 |
| 추천 용도 | 단순 장비 부착 | 복잡한 손 연기와 소품 전달 |
단순히 총을 계속 들고 걷는 장면이라면 Attach Track이 편리하고, 총을 집고 내려놓는 손 연기가 포함된다면 Constraint가 더 유연하다.
무기 부착 지점 만들기: Bone Socket
특정 Level Sequence에 한정하지 않고 MetaHuman Blueprint 자체에 무기를 부착하려면 Bone에 Socket을 생성하는 방식을 사용할 수 있다.
MetaHuman Blueprint에서 Body를 선택하고 연결된 Skeletal Mesh를 열었다.



Skeleton Tree에서 오른손 Bone인 hand_r을 찾은 다음 우클릭하고 Add Socket을 선택했다.


생성한 Socket의 이름은 용도를 알아보기 쉽도록 다음과 같이 지정했다.
hand_r_gun

Socket은 Bone을 따라 움직이면서도 별도의 상대 위치·회전·크기 오프셋을 저장할 수 있다.
무기 위치 맞추기: Add Preview Asset
생성한 hand_r_gun Socket을 우클릭하고 Add Preview Asset을 선택했다.

목록에서 부착할 무기 Static Mesh를 선택하면 Skeleton Editor의 미리보기 화면에 무기가 나타난다.

Socket의 위치, 회전, 크기를 조정해 손 안에 무기가 들어오도록 맞췄다.

Add Preview Asset은 실제 무기를 Blueprint에 추가하는 기능이 아니다.
Socket의 위치를 확인하기 위한 미리보기 기능이므로 대략적인 오프셋을 잡는 용도로 사용한다.
Blueprint에 추가한 뒤 애니메이션을 적용한 상태에서 한 번 더 세부 위치를 조정하는 편이 안정적이다.
MetaHuman Blueprint에 무기 컴포넌트 추가하기
부착할 무기 Static Mesh를 선택한 상태에서 MetaHuman Blueprint를 열고 Add를 눌러 Static Mesh Component를 추가했다.


추가한 무기 컴포넌트를 Body Skeletal Mesh Component의 자녀로 배치했다.

아직 Parent Socket을 지정하지 않았다면 무기는 Blueprint 원점이나 캐릭터 아래쪽에 나타날 수 있다.


무기 컴포넌트의 Details 패널에서 Parent Socket을 찾고 앞에서 만든 hand_r_gun을 지정하면, Skeleton Editor에서 미리 맞춘 위치를 기준으로 무기가 오른손에 부착된다.


MetaHuman Blueprint 수정이 끝나면 왼쪽 상단의 Compile을 눌러 변경 사항을 반영한 뒤 Save로 저장한다.

애니메이션을 적용한 상태에서 위치 다시 확인하기
Reference Pose에서는 무기가 손에 잘 맞아도 실제 애니메이션을 적용하면 손목이 꺾이거나 손가락과 총이 겹칠 수 있다.

Body의 Animation Mode를 Use Animation Asset으로 변경하고 확인할 Animation Sequence를 지정했다.

애니메이션을 특정 프레임에 멈춘 상태에서 다음 항목을 확인했다.
- 총 손잡이가 손바닥 중앙에 있는지
- 검지가 방아쇠 근처에 있는지
- 손목이 과도하게 꺾이지 않는지
- 총열이 팔이나 몸을 통과하지 않는지
- 왼손을 추가로 배치할 공간이 있는지


Socket에서 대략적인 위치를 잡고, 실제 애니메이션 상태에서 최종 오프셋을 확인하는 두 단계 방식이 작업하기 편했다.
안경을 Socket에 부착하기
안경도 같은 방식으로 부착할 수 있다.
MetaHuman의 머리 움직임을 따라가는 Skeletal Mesh Component에서 head Bone을 찾고 Socket을 추가한다.



head_sunglass
생성한 Socket에 Add Preview Asset으로 액세서리를 추가해 대략적인 위치를 맞춘다.


이후 MetaHuman Blueprint에 액세서리 Static Mesh Component를 추가하고, 해당 Skeletal Mesh Component의 자녀로 배치한 뒤 Parent Socket을 지정한다.



모자와 안경은 얼굴과 가까이 있기 때문에 정면뿐 아니라 측면에서도 위치를 확인해야 한다.
특히 안경은 콧등과 귀 주변에서 쉽게 파고들기 때문에 여러 각도에서 확인하는 과정이 필요하다.

Socket을 이용한 액세서리 부착과 별개로, MetaHuman Blueprint에서는 기본 의상에 적용된 Material Instance의 색상도 변경할 수 있다.
MetaHuman 기본 의상 색상 변경하기
MetaHuman Blueprint에서 상의 또는 하의 Skeletal Mesh Component를 선택하면 적용된 Material 또는 Material Instance를 확인할 수 있다.

이번 작업에서 사용한 의상은 상의와 하의 Material이 별도로 구성되어 있었다.
해당 Material Instance의 Diffuse Color 또는 유사한 색상 파라미터를 변경해 의상 색상을 수정했다.


다만 Material Parameter의 이름과 구성은 의상 에셋마다 다를 수 있다.
일부 에셋은 색상 파라미터가 노출되어 있지 않거나, 패턴·마스크·원단 색상이 별도의 파라미터로 나뉘어 있을 수 있다.
색상만 바꾸려는 경우에는 원본 Material을 직접 수정하기보다, 해당 캐릭터용으로 복제한 Material Instance를 사용하는 편이 다른 캐릭터나 의상에 영향을 줄 가능성을 줄일 수 있다.
운동화를 Socket에 부착하기
마지막으로 한 쌍으로 구성된 운동화 Static Mesh를 왼쪽과 오른쪽으로 분리해 각각 발 Socket에 부착했다.
운동화 Static Mesh를 좌우로 분리하기
먼저 원본 Static Mesh를 복제해 왼발용과 오른발용 에셋을 만들었다.

각 에셋을 레벨에 배치한 뒤 Modeling Mode로 전환하고, Model - Plane Cut을 이용해 한쪽 신발만 남기고 반대쪽을 제거했다.
왼발용 Mesh: 왼쪽 신발만 유지
오른발용 Mesh: 오른쪽 신발만 유지





원본 에셋을 바로 수정하면 다시 되돌리기 어렵기 때문에, 좌우 분리 작업 전에는 반드시 복제본을 만들어두는 편이 좋다.
양발에 Socket 추가하기
MetaHuman의 발 Bone에 각각 Socket을 추가했다.
foot_l_shoe
foot_r_shoe

각 Socket에 Add Preview Asset으로 해당 신발을 추가하고 위치·회전·크기를 조정했다.

한쪽 신발의 위치가 맞았다고 해서 반대쪽에 같은 값을 그대로 사용할 수 있는 것은 아니다.
모델의 Pivot과 좌우 대칭 상태에 따라 회전 방향이나 위치값이 달라질 수 있으므로 양쪽을 각각 확인해야 한다.
이후 MetaHuman Blueprint에 왼발용과 오른발용 Static Mesh Component를 추가하고 각 Socket을 Parent Socket으로 지정한다.



Static Mesh 신발 사용 시 주의점
Static Mesh를 발 Socket에 부착하는 방식은 빠르고 간단하지만 신발 자체가 Bone에 따라 변형되지는 않는다.
따라서 발목을 크게 굽히거나 발가락이 움직이는 애니메이션에서는 신발과 발이 분리되어 보이거나 서로 겹칠 수 있다.
이 방식은 다음 상황에 적합하다.
- 카메라에서 발이 멀리 보이는 장면
- 발목 움직임이 크지 않은 애니메이션
- 짧은 시네마틱 또는 프리비주얼
- 빠르게 디자인을 확인하는 테스트
캐릭터가 뛰거나 앉는 등 발목 변형이 큰 장면이라면 Skeletal Mesh 신발이나 정식 의상 워크플로우를 고려하는 것이 좋다.

이번 작업에서 사용한 부착 방식 정리
이번 작업에서는 같은 Static Mesh라도 목적에 따라 서로 다른 부착 방식을 사용했다.
- 손으로 무기를 잡았다가 놓기: Parent Constraint
- 특정 Level Sequence에서 무기를 계속 들기: Sequencer Attach Track
- 캐릭터 Blueprint에 무기를 상시 부착: Bone Socket
- 모자와 안경 부착: head Bone에 생성한 Socket
- 운동화 부착: foot Bone에 생성한 Socket
부착 방법을 선택할 때는 단순히 가장 익숙한 방식을 사용하는 것보다, 장면 중 부착 상태가 바뀌는지와 다른 Level Sequence에서도 계속 유지되어야 하는지를 먼저 판단해야 한다.
이번 포스트에서는 MetaHuman 애니메이션 위에 Layered Control Rig을 추가하고, IK Control과 Parent Constraint를 이용해 무기를 손에 부착했다.
Constraint 활성 키를 이용하면 원하는 시점에 무기를 손에서 분리할 수 있으며, 이후 Transform 키를 추가해 무기를 던지는 연출도 만들 수 있다.
또한 Sequencer Attach Track과 Bone Socket을 이용해 무기·모자·안경·운동화처럼 목적이 다른 액세서리를 부착하는 방법도 살펴봤다.
세 방식은 비슷하게 보이지만 적용 범위가 다르다.
특정 장면의 연출인지, 캐릭터에 항상 포함되는 장비인지, 애니메이션 중 부모가 바뀌어야 하는지를 구분하면 보다 관리하기 쉬운 방식을 선택할 수 있다.
'3D Video Production > Unreal Engine (5.6.1)' 카테고리의 다른 글
| UE 5.6 MetaHuman 제작 및 애니메이션 적용: Control Rig, Retarget, Mixamo (0) | 2026.07.16 |
|---|---|
| UE 5.6 Height Map & Mask로 Landscape 만들기 (0) | 2026.07.15 |
| UE 5.6 Landscape 기초: 지형 생성부터 Material Paint, Water까지 (0) | 2026.07.14 |
| UE 5.6 Landscape & Foliage 사용법 및 Alembic Import (0) | 2026.07.13 |
| UE 5.6 버스 정류장 씬 제작: 시네마스코프 & Foliage 적용하기 (0) | 2026.07.11 |