IK는 Inverse Kinematics(역운동학)의 약자다.
손, 발, 꼬리 끝 같은 말단 Bone의 위치를 먼저 정하고, 그 위치에 맞게 중간 Bone들이 자동으로 회전하게 만든다.
flowchart LR
A[Hand Target] --> B[LowerArm 계산]
B --> C[UpperArm 계산]
게임 애니메이션은 대부분 미리 만들어진 Animation Clip을 재생한다.
하지만 실제 게임 월드는 항상 애니메이션 제작 환경과 다르다.
IK는 애니메이션을 런타임 환경에 맞게 보정하는 기술이다.
IK 사용
Unreal에서는 Animation Blueprint의 AnimGraph에서 IK 노드를 사용한다.
flowchart LR
A[Animation Sequence] --> B[State Machine]
B --> C[Blend]
C --> D[IK Node]
D --> E[Output Pose]
IK는 보통 최종 Pose 출력 직전에 배치한다.
기본 애니메이션이 먼저 계산된 뒤, 그 결과를 IK로 보정한다.
Two Bone IK
가장 기본적인 IK 노드
팔이나 다리처럼 Bone이 2개로 구성된 체인에 사용한다.
flowchart LR
A[Thigh / UpperArm] --> B[Calf / LowerArm]
B --> C[Foot / Hand]
| 항목 | 설명 |
|---|---|
| 대상 | 팔, 다리 |
| 체인 길이 | 보통 2 Bone |
| 예시 | 손을 무기 위치에 맞추기, 발을 바닥에 맞추기 |
| 주요 값 | Effector Location, Joint Target |
주요 개념
| 개념 | 설명 |
|---|---|
| IK Bone | IK를 적용할 말단 Bone |
| Effector Location | 손/발이 도달해야 하는 목표 위치 |
| Joint Target | 팔꿈치/무릎이 어느 방향으로 꺾일지 결정 |
| Alpha | IK 적용 강도 |
예를 들어 발 IK에서는 Effector Location을 바닥 Trace 결과 위치로 넣고, 다리 Bone이 그 위치에 맞게 접히도록 만든다.
FABRIK
FABRIK은 여러 Bone으로 이루어진 체인을 목표 위치에 맞추는 IK 방식이다.
| 항목 | 설명 |
|---|---|
| 대상 | 여러 Bone 체인 |
| 예시 | 꼬리, 목, 척추, 촉수, 로프 |
| 장점 | 긴 체인에 적용하기 좋음 |
| 단점 | 세밀한 제어가 필요할 수 있음 |
CCD IK
CCD IK는 목표 위치에 도달할 때까지 각 관절을 반복적으로 회전시키는 방식이다.
| 항목 | 설명 |
|---|---|
| 대상 | 여러 Bone 체인 |
| 특징 | 계산이 직관적이고 범용적 |
| 예시 | 손, 발, 꼬리, 기계 관절 |
| 단점 | 반복 계산이 많으면 비용 증가 |
CCD IK는 FABRIK과 비슷하게 여러 Bone 체인에 사용할 수 있다.
Control Rig IK
Control Rig는 Animation Blueprint보다 더 고급 방식으로 Rig를 제어할 수 있는 시스템이다.
| 항목 | 설명 |
|---|---|
| 위치 | Control Rig Asset |
| 용도 | 런타임/에디터 리깅 제어 |
| 장점 | 복잡한 IK, 보정, 절차적 애니메이션 구성 가능 |
| 사용 예 | 발 IK, 손 IK, 꼬리, 무기 잡기, 컷신 |
Control Rig에서는 Bone, Control, IK Solver를 그래프 형태로 구성할 수 있다.
flowchart LR
A[Control] --> B[IK Solver]
B --> C[Bone Transform]
C --> D[Final Pose]
복잡한 절차적 애니메이션이나 에디터에서 직접 조정 가능한 Rig를 만들 때 적합하다.
IK Rig / IK Retargeter
UE5에서는 IK Rig와 IK Retargeter를 통해 서로 다른 Skeleton 간 애니메이션을 리타겟할 수 있다.
| 시스템 | 역할 |
|---|---|
| IK Rig | Skeleton의 IK 체인 정의 |
| IK Retargeter | 다른 Skeleton으로 애니메이션 변환 |
| Retarget Pose | 두 Skeleton의 기준 포즈 차이 보정 |
| Chain Mapping | 팔, 다리, 척추 같은 체인 매핑 |
flowchart LR
A[Source Skeleton] --> B[IK Rig]
B --> C[IK Retargeter]
C --> D[Target Skeleton]
예를 들어 인간 캐릭터 애니메이션을 고양이형 캐릭터나 다른 비율의 캐릭터에 적용하려면 IK Retargeter를 사용한다.
Foot IK
Foot IK는 캐릭터 발을 지형에 맞추는 가장 흔한 IK 사용 예다.
flowchart TD
A[발 위치 기준 Trace] --> B[바닥 Hit 확인]
B --> C[Hit Location 저장]
C --> D[발 Effector 위치 계산]
D --> E[Two Bone IK 적용]
E --> F[Pelvis 높이 보정]
F --> G[최종 Pose]
Hand IK
Hand IK는 손을 특정 위치에 정확히 맞추기 위해 사용한다.
| 사용 상황 | 설명 |
|---|---|
| 양손 무기 | 왼손을 총열이나 손잡이에 고정 |
| 벽 짚기 | 손을 벽 표면에 맞춤 |
| 아이템 잡기 | 손을 아이템 위치에 맞춤 |
| 문 열기 | 손을 손잡이에 맞춤 |
Look At / Aim IK
Look At은 머리, 목, 척추가 목표 방향을 바라보도록 회전시키는 보정이다.
| 사용 상황 | 설명 |
|---|---|
| NPC가 플레이어 바라보기 | 머리/상체 회전 |
| 조준 | 상체와 팔 방향 보정 |
| 대화 | 상대 캐릭터를 바라봄 |
| 감지 | 시선 방향 표현 |
Aim Offset과 IK를 함께 사용하면 조준 방향을 자연스럽게 만들 수 있다.
flowchart LR
A[Camera / Target Direction] --> B[Aim Offset]
B --> C[Spine Rotation]
C --> D[Hand IK]
D --> E[Final Pose]
IK Alpha
IK Alpha는 IK 적용 강도다.
| Alpha | 결과 |
|---|---|
| 0.0 | IK 적용 안 함 |
| 0.5 | 기본 애니메이션과 IK 절반 혼합 |
| 1.0 | IK 완전 적용 |
IK는 항상 1로 고정하는 것보다 상황에 따라 Blend하는 것이 좋다.
| 상황 | Alpha |
|---|---|
| 지상 이동 | 1.0 |
| 점프 / 낙하 | 0.0 |
| 공격 모션 중 | 0.0 ~ 0.5 |
| 벽 짚기 | 1.0 |
| 손 위치 보정 | 0.5 ~ 1.0 |
| 애니메이션 우선 상황 | 0.0 |
IK 구현 흐름
flowchart TD
A[기본 애니메이션 재생] --> B[필요한 Target 계산]
B --> C[Trace / Socket / Target 위치 획득]
C --> D[Effector Location 계산]
D --> E[Joint Target 계산]
E --> F[IK Node 적용]
F --> G[Alpha로 Blend]
G --> H[Output Pose]
| 단계 | 설명 |
|---|---|
| 기본 애니메이션 재생 | FK 기반 Animation Clip 재생 |
| Target 계산 | 발바닥, 손잡이, 벽, 목표 지점 계산 |
| Trace / Socket 사용 | 월드 정보 또는 장착 무기 정보 획득 |
| Effector 계산 | 말단 Bone이 도달할 위치 |
| Joint Target 계산 | 무릎/팔꿈치 방향 |
| IK 적용 | Two Bone IK, FABRIK, CCD, Control Rig |
| Alpha Blend | 상황에 따라 적용 강도 조절 |
IK의 한계
IK는 애니메이션을 대체하는 기술이 아니다.
기본 모션이 어색하면 IK를 적용해도 자연스럽게 보이기 어렵다.
| 한계 | 설명 |
|---|---|
| 기본 Pose 품질 의존 | 원본 애니메이션이 좋아야 결과도 좋음 |
| 과한 보정 문제 | 팔/다리가 비정상적으로 늘어나거나 꺾일 수 있음 |
| 성능 비용 | 많은 Bone에 복잡한 IK를 적용하면 비용 증가 |
| 관절 제어 필요 | 무릎, 팔꿈치 방향이 틀어질 수 있음 |
| 상황별 Blend 필요 | 점프, 공격, 피격 중에는 IK를 줄여야 함 |
요약
| 개념 | 요약 |
|---|---|
| IK | 말단 Bone 위치를 기준으로 중간 Bone을 역산하는 방식 |
| FK | 부모 Bone 회전을 기준으로 자식 Bone이 따라가는 방식 |
| Two Bone IK | 팔, 다리처럼 2 Bone 체인에 적합 |
| FABRIK | 꼬리, 척추처럼 여러 Bone 체인에 적합 |
| CCD IK | 반복 회전 기반의 범용 IK |
| Control Rig | 복잡한 절차적 리깅과 런타임 보정에 적합 |
| IK Rig | Skeleton의 IK 체인을 정의 |
| IK Retargeter | 서로 다른 Skeleton 간 애니메이션 리타겟 |
| Foot IK | 발을 지형에 맞추는 대표적인 IK |
| Hand IK | 손을 무기, 벽, 오브젝트 위치에 맞추는 IK |
| IK Alpha | IK 적용 강도 |
'TIL' 카테고리의 다른 글
| UE Preload (0) | 2026.07.16 |
|---|---|
| LevelDataAssetGenerator 수정 (0) | 2026.07.15 |
| WorldContextObject (0) | 2026.07.10 |
| Clean Code (0) | 2026.06.09 |
| Unreal EQS(Environment Query System) (0) | 2026.06.08 |