AI 모션 캡처 데이터를 3D 캐릭터 애니메이션으로 리깅하는 방법: Plask·DeepMotion 실전 파이프라인
Plask·DeepMotion의 모션 캡처 데이터를 Blender 리그에 리타기팅하는 방법을 정리한다. FBX 등 지원 형식 확인, 본 매핑, 좌표계, 루트 모션, 발 접지 보정과 Unity·Unreal 내보내기를 다룬다.

핵심 요약
Plask와 DeepMotion은 애니메이션 데이터의 FBX 내보내기를 지원하며, 서비스와 시점에 따라 GLB·BVH 등 다른 형식도 제공한다(Plask 내보내기 문서, DeepMotion Animate 3D 문서). 실제 출력에는 선택한 내보내기 옵션이 반영되므로, Blender에서 스켈레톤과 애니메이션이 포함됐는지 먼저 확인하고 대상 캐릭터 리그로 리타기팅한다. 핵심은 본 이름이 아니라 휴머노이드 관절의 대응 관계, 레스트 포즈, 좌표계, 루트 모션 처리를 일관되게 맞추는 것이다.
영상 기반 추정 결과에는 촬영 조건과 처리 설정에 따라 발 미끄러짐이나 관절 떨림이 남을 수 있다. 리타기팅 뒤 루트와 접점 구간을 우선 검토하는 것은 작업 순서의 한 예이며, 보정량과 게임 사용 가능성은 실제 클립에서 확인해야 한다.
AI 모션 캡처 데이터는 어떤 형태로 3D 리그에 들어오는가?
AI 모션 캡처 서비스는 영상에서 추정한 움직임을 애니메이션 데이터로 내보낸다. FBX를 선택했다면 다음 항목을 확인한다. 실제 포함 요소는 서비스, 리그, 내보내기 옵션에 따라 다르다.
| 요소 | 역할 | 확인할 점 |
|---|---|---|
| Skeleton | 관절 계층 구조 | Hips 또는 Root가 최상위인지 확인 |
| Animation Curves | 프레임별 위치·회전 키 | 프레임레이트와 키 간격 확인 |
| Mesh | 내보내기에 포함될 수 있는 메시 | 대상 게임 캐릭터에 필요한지 확인 |
| Root Transform | 캐릭터 전체 이동값 | In-place인지 이동 모션인지 확인 |
캡처 데이터와 게임 캐릭터 리그는 본 이름과 계층이 다를 수 있다. 예를 들어 캡처 파일의 LeftUpLeg는 캐릭터 리그의 thigh_l와 의미는 같지만 이름이 다르다. 리타기팅은 이처럼 서로 다른 본을 같은 인체 관절로 대응시키는 작업이다.

Plask·DeepMotion 모션을 리깅하기 전에 무엇을 맞춰야 할까?
1. 대상 캐릭터의 레스트 포즈를 확인한다
대상 캐릭터는 보통 T 포즈 또는 A 포즈로 제작된다. 캡처 스켈레톤과 대상 리그의 시작 자세가 크게 다르면 어깨가 올라가거나 팔이 비틀어진다.
다음은 리타기팅을 시작할 때 점검할 수 있는 기준이다.
- 캡처 스켈레톤과 캐릭터를 같은 정면 방향으로 둔다.
- 양쪽 팔, 다리, 척추가 가능한 한 비슷한 중립 자세가 되도록 맞춘다.
- 캐릭터 메시의 레스트 포즈 자체를 바꾸기보다 리타기팅 도구의 포즈 오프셋으로 차이를 보정한다.
T 포즈와 A 포즈의 차이는 어깨와 팔의 초기 회전에 영향을 줄 수 있다. 팔이 아래로 처지거나 손목이 돌아간다면, 상완(UpperArm)의 기준 회전을 먼저 확인하는 방법을 시험하고 결과에 따라 보정한다.
2. 좌표계와 스케일을 통일한다
Blender는 Z축이 위인 좌표계를 사용한다. Unity의 FBX 임포터는 다른 축 체계에서 가져오는 에셋의 축 변환 설정을 제공하며, Unreal Engine은 Z축 위쪽과 기본 길이 단위 센티미터를 사용한다. 임포트 후 캐릭터가 눕거나 이동 거리가 예상과 다르면 애니메이션 본 키뿐 아니라 축 변환과 단위 설정도 확인한다.
| 항목 | Blender 작업 기준 | 엔진 반입 시 확인 |
|---|---|---|
| Up Axis | Z | Unity는 Y, Unreal은 Z |
| 단위 | 미터 기준으로 일관성 유지 | Unreal은 센티미터 환산 확인 |
| 정면 축 | 캐릭터의 로컬 전방을 고정 | 모델과 애니메이션이 같은 방향인지 확인 |
| Scale | 내보내기 전에 의도한 스케일 확인 | Import Scale을 포함해 변환 설정을 일관되게 적용 |
3. 루트 모션 정책을 먼저 결정한다
걷기, 달리기처럼 이동하는 모션에는 두 가지 방식이 있다.
- In-place: 제자리에서 다리만 움직이고 실제 이동은 게임 코드가 담당한다.
- Root motion:
Root또는Hips의 이동 곡선을 엔진이 읽어 캐릭터를 움직인다.
네트워크 이동, 충돌, 입력 기반 가속을 직접 제어하는 게임이라면 In-place가 단순할 수 있다. 반대로 근접 공격, 처형, 파쿠르처럼 애니메이션 이동 궤적을 캐릭터 이동에 반영하고 싶다면 Root motion을 시험할 수 있다. 두 정책을 섞을 때는 상태별 이동 권한을 정해 애니메이션과 게임 코드가 같은 이동을 중복 적용하지 않는지 확인한다.
Blender에서 AI 모션 캡처 FBX를 캐릭터 리그로 리타기팅하는 방법
간단한 리그는 Blender의 본 제약과 베이크 기능을 조합해 리타기팅할 수 있다. 반복 작업이 많다면 Rokoko Retargeting, Auto-Rig Pro 같은 별도 도구도 검토할 수 있다. 각 도구의 매핑과 좌표 처리 방식은 서로 다를 수 있으므로 결과를 비교한다.
Step 1. 원본 모션과 대상 캐릭터를 불러온다
File > Import > FBX로 Plask 또는 DeepMotion FBX를 불러온다.- 대상 캐릭터 FBX 또는 glTF를 불러온다.
- Outliner에서 원본 Armature와 대상 Armature를 구분하기 쉬운 이름으로 바꾼다.
- 두 Armature의 크기와 정면 방향을 Object Mode에서 확인한다.
이 단계에서는 메시가 아니라 Armature를 중심으로 본다. 원본 서비스의 메시가 함께 들어왔다면 최종 내보내기 전에 제외해도 된다.
Step 2. 인체 관절을 1:1로 매핑한다
우선 몸통과 팔다리의 큰 관절을 연결한다. 손가락이나 보조 본은 나중에 처리해도 된다.
| 인체 관절 | 일반적인 원본 본 이름 | 대상 리그에서 찾을 이름 예시 |
|---|---|---|
| 골반 | Hips | pelvis, hips |
| 척추 | Spine, Spine1 | spine_01, spine_02 |
| 머리 | Head | head |
| 상완 | LeftArm | upperarm_l |
| 하완 | LeftForeArm | lowerarm_l |
| 허벅지 | LeftUpLeg | thigh_l |
| 종아리 | LeftLeg | calf_l |
| 발 | LeftFoot | foot_l |
Blender에서 대상 리그의 Pose Mode로 전환하고 대상 본에 Copy Rotation 제약을 추가한다. 대상 본은 원본 스켈레톤의 대응 본을 대상으로 참조한다. 골반처럼 이동값이 필요한 본에는 Copy Location을 추가할 수 있다. 단, 부모에 연결된 본에는 이 제약이 효과가 없을 수 있으므로 연결 상태와 대상 공간을 확인하고, 필요한 경우 루트나 상위 본을 제어한다.
관절 회전은 보통 사원수(Quaternion)로 저장하거나 변환된다. 두 회전을 합성하는 개념은 다음과 같이 표현할 수 있다.
여기서 q_source는 캡처 회전이고 q_offset은 기준 포즈 보정 회전이다. 식은 두 회전이 같은 좌표 공간에 표현되고 오프셋을 소스 회전 앞에 적용한다는 한 가지 규약을 가정한다. 좌표 공간이나 곱셈 규약이 다르면 순서와 변환식도 달라지므로, 실제 Blender 리그의 본 공간에서 테스트한다. 팔이 일정한 각도만큼 계속 틀어진다면 키프레임을 일일이 돌리기보다 보정 포즈를 조정하는 편이 관리하기 쉽다.
Step 3. 제약 결과를 키프레임으로 베이크한다
- 타임라인의 시작·끝 프레임을 원본 모션 범위에 맞춘다.
- 대상 Armature를 선택하고 Pose Mode에서 필요한 본을 모두 선택한다.
Pose > Animation > Bake Action을 실행한다.Visual Keying을 켜서 제약이 계산한 최종 변환값을 저장한다.- 베이크가 끝나면 원본 Armature 연결과 제약을 제거하거나 비활성화한다.
FBX 내보내기에서 Blender 제약 설정이 대상 프로그램에서도 그대로 동작한다고 가정하지 않는다. Blender FBX 내보내기에는 평가된 애니메이션을 키로 굽는 옵션이 있다. 이 절차의 Bake Action은 결과를 Blender 안에서 별도 Action으로 확인하고 관리하려는 경우에 쓸 수 있으며, 모든 FBX 내보내기 전에 반드시 실행해야 하는 단계는 아니다.
발 미끄러짐과 관절 떨림은 왜 발생하는가?
캡처 영상과 처리 설정에 따라 발이 가려지거나 카메라가 흔들릴 때 관절 추정이 불안정해질 수 있다. 출력에 발 고정이나 접지 보정이 포함되는지는 서비스와 설정별로 다르므로, 내보낸 애니메이션에서 접지 구간을 확인하고 필요한 경우 IK로 보정한다.
발 미끄러짐은 보통 다음 원인 중 하나다.
- 골반의 수평 이동과 발의 접지 프레임이 맞지 않는다.
- 원본 영상에서 발이 화면 밖으로 나가거나 다른 물체에 가려진다.
- 프레임레이트 변환 과정에서 키가 재샘플링된다.
- 캐릭터의 다리 길이와 원본 스켈레톤의 비율이 다르다.
보정은 모든 키를 부드럽게 만드는 것보다 접점 구간을 정확히 고정하는 데 집중한다.
- 걷기 모션에서 발바닥이 바닥에 닿아 있는 프레임 구간을 찾는다.
- 해당 구간의 발 IK 컨트롤러 또는 발 본 위치를 고정한다.
- 골반 높이와 무릎 각도를 조정해 다리 길이 문제를 해결한다.
- Graph Editor에서 발이 떠나는 전후 구간만 곡선을 완만하게 다듬는다.

Unity와 Unreal Engine으로 내보낼 때 확인할 항목
Unity Humanoid 리그 설정
휴머노이드 캐릭터라면 Unity 2022.3 FBX Import Settings의 Rig 탭에서 Animation Type을 Humanoid로 설정하고 Avatar Configure에서 매핑을 확인할 수 있다. Unity가 요구하는 휴머노이드 매핑이 유효해야 Humanoid 리타기팅을 사용할 수 있다.
- 이동을 코드로 처리하는 클립이라면
Root Transform Position (XZ)의Bake Into Pose설정을 검토하고, Preview 결과를 확인한다. - 원본 이동을 사용하면 Animator의 Apply Root Motion과 클립의 루트 설정을 함께 확인한다.
- 루프 모션은 첫 프레임과 마지막 프레임의 발 위치가 자연스럽게 이어지는지 Preview에서 확인한다.
Unreal Engine 스켈레톤 설정
Unreal Engine에서는 캐릭터 Skeletal Mesh가 사용하는 Skeleton에 애니메이션을 연결하는 방식을 우선 고려한다. 다른 Skeleton의 모션은 양쪽 IK Rig와 IK Retargeter를 설정해 대상 Skeleton으로 리타기팅할 수 있다.
- Source와 Target IK Rig에 pelvis, spine, arm, leg 체인을 정의한다.
- Target Retarget Pose에서 A 포즈·T 포즈 차이를 보정한다.
- 이동 애니메이션은 Root Bone의 이동이 실제로 필요한지 확인한다.
- 발 접지 품질이 중요하면 Control Rig 또는 Full Body IK로 런타임 보정을 추가한다.
자주 묻는 질문 (FAQ)
AI 모션 캡처 FBX의 본 이름을 캐릭터와 똑같이 바꿔야 하나요?
아니다. 리타기팅 도구나 엔진의 휴머노이드 매핑을 사용하면 이름이 달라도 된다. 다만 의미가 같은 관절을 빠짐없이 대응시키고 좌우가 뒤바뀌지 않게 해야 한다.
걷기 애니메이션은 Root motion과 In-place 중 무엇이 더 좋은가요?
캐릭터 이동을 코드와 네트워크 동기화로 제어한다면 In-place가 작업 흐름에 더 잘 맞을 수 있다. 공격 동작의 이동 궤적을 캐릭터 이동에 반영하려면 Root motion을 비교해 볼 수 있다. 어느 쪽이 적합한지는 충돌·네트워크·애니메이션 테스트로 정한다.
AI 모션 캡처만으로 손가락과 표정까지 완성할 수 있나요?
손가락과 얼굴 데이터의 지원 범위와 결과 품질은 입력 영상과 서비스 설정에 따라 다르다. 필요한 데이터가 실제 출력에 있는지 확인하고, 중요한 제스처와 표정은 별도 캡처나 수동 보정을 검토한다.
정리
AI 모션 캡처 리깅의 순서는 단순하다. 원본 FBX 확인 → 레스트 포즈·축·스케일 정렬 → 인체 관절 매핑 → 키프레임 베이크 → 발 접지와 루트 모션 보정 → 엔진 임포트 검증 순서로 처리하면 된다.
처음에는 골반·척추·팔·다리의 큰 관절과 발 접지를 먼저 확인하는 작업 순서를 시험할 수 있다. 게임에서 반복 재생할 애니메이션은 Blender 프리뷰와 엔진 내 루프를 모두 확인한다.
참고 자료
- Plask Export 문서
- DeepMotion Animate 3D 문서
- DeepMotion 발 고정 설정
- DeepMotion 손 추적 안내
- DeepMotion 얼굴 추적 사양
- Blender 4.5 FBX 내보내기
- Blender 4.5 Copy Rotation 제약
- Blender 4.0 Copy Location 제약
- Blender 4.4 Bake Action
- Rokoko의 Blender 통합 및 리타기팅
- Auto-Rig Pro Remap 도구
- Unity 2022.3 Rig 탭
- Unity 2022.3 Root Motion 설정
- Unity 2022.3 FBX 모델 임포트 설정
- Unity 2022.3 Vector3.up
- Unreal Engine IK Rig 및 Retargeting
- Unreal Engine 좌표계
- Unreal Engine 단위



