콘텐츠로 바로가기

Forward & Inverse Kinematics

관절 계층 구조의 회전 수치로부터 최종 위치를 산출하는 순기구학(FK)과, 목표 지점에 손과 발을 맞추기 위해 관절 각도를 역산하는 역기구학(IK) 기술을 다룹니다.

sys.entry
M

Me

hyunyoun's Blog

posts6 min read

1. Overview

순방향 및 역방향 기구학(Forward & Inverse Kinematics, KIN)은 뼈대(Skeleton)로 구성된 디지털 생명체의 물리적 포즈를 수학적으로 정의하고 제어하는 '다관절 좌표 물리학'입니다.

학습자는 루트 관절에서 말단까지 수리적으로 행렬을 곱해나가는 **순기구학(FK)**과, 말단 장치(EndEnd-effectoreffector)의 목표 좌표로부터 상위 관절들의 최적 수치를 물리적으로 역산하는 역기구학(IK) 기제를 배옵니다. 특히, 수렴 해를 찾기 위한 Jacobian 행렬 연산과 CCD(Cyclic Coordinate Descent) 알고리즘의 수리적 수순을 익힙니다. 이를 통해 단순히 애니메이션 파일 재생을 넘어, 지면의 굴곡에 맞춰 발을 딛는 등 물리 환경에 실시간 반응하는 하이엔드 캐릭터 애니메이션 역량을 확보합니다.

2. Scope & Boundaries

In-Scope

  • FK Transformation Math: 관절 수치 계층을 상속받아 전구 관절의 물리 좌표를 확정하는 기어 역학
  • IK Solver Mechanics: 복수의 해(MultipleMultiple SolutionsSolutions) 중 물리적으로 가장 자연스러운 수치를 선택하는 법
  • Joint Constraint Physics: 관절이 꺾일 수 있는 물리적 각도 수치를 수리적으로 제한(Clamping)
  • Hierarchical Bone Dynamics: 뼈대 수치 정보의 트리 구조 관리 및 물리적 리깅(RiggingRigging) 동기화
  • Analytical vs Numerical IK: 수학적 공식에 의한 즉각적 해와 반복 연산에 의한 수리적 근사 해 대조

Out-of-Scope

  • 캐릭터의 외형을 조형하는 3D 스컬핑 과정 (아트 영역)
  • 로봇 공학에서의 실제 하드웨어 모터 토크 및 전력 계산 (메카트로닉스 영역)

Boundaries

  • KIN vs. Keyframe Animation: 키프레임 애니메이션(12-03-02)이 '고정된 시간차 데이터'에 집중한다면, KIN은 '실시간 물리 좌표 목표값에 대응하는 즉각적 수치 계산'이라는 동적 생성 모델에 집중하여 구분합니다.

3. Counterexample

  • 단순히 "관절 돌리기"라 설명하는 것은 KIN 학습이 아닙니다. 왜 관절의 개수가 늘어날수록 IK의 수리적 해를 구하는 비용이 지수적으로 증가하는지 증명할 수 있어야 하며, 짐벌 락(Gimball Lock) 현상을 방지하기 위해 왜 오일러 각이 아닌 쿼터니언(Quaternion) 수치를 사용해야 하는지 논증하지 못한다면 기구학 공학의 본질을 이해하지 못한 것입니다.

4. Prerequisites

  • Vector Mathematics (Basic): 04-XX-XX의 삼각함수 및 3D 벡터 수리 물리 이해가 필수입니다.
  • Scene Graph & Spatial Data Structures (Recommended): 12-06-02의 계층적 변환 행렬 이해가 권합됩니다.

5. Learning Map

  1. Skeleton Logic: 관절과 뼈의 물리적 위계 구조를 수리적으로 정의하는 법을 배웁니다.
  2. The Forward Flow: 관절 각도 수치를 입력하여 손끝의 물리 좌표를 정확히 예측합니다.
  3. The Inverse Challenge: 손끝의 위치를 고정하고 팔의 수리적 꺾임 각도들을 역으로 추출합니다.
  4. Environmental Reaction: 울퉁불퉁한 물리 지형이나 움직이는 물체를 능숙하게 잡아내는 하이엔드 애니메이션을 완성합니다.

6. Learning Topics

Basic

Core: 순기구학의 수리적 기초 (Forward Kinematics)

  • Why to Learn: 캐릭터의 포즈를 결정하는 가장 직관적이고 근본적인 수치 계산 방식을 이해하기 위해서입니다.
  • What to Learn:
    • Local Rotation Values: 각 관절의 물리적 회전 수치 정의
    • Global Position Accumulation: 부모 관절로부터 누적된 수리 행렬 곱셈
    • Euler vs Quaternion: 회전 수치 표현 방식의 물리적 장단점
  • How to Learn:
    • 2개의 뼈대가 연결된 로봇 팔 모델에서 각도 수치를 입력하며 말단 좌표가 수리적으로 일치하는지 실습
    • Gprolog 같은 논리 엔진 혹은 행렬 계산기를 통해 누적 변환 수치를 물리 검증
  • Implement: 각도 리스트를 받아 말단 물리 좌표를 출력하는 기초 FK_Solver_Module

Core: 역기구학과 목표 추적 (Inverse Kinematics)

  • Why to Learn: 캐릭터가 특정 물리 지점을 정확히 가리키거나 짚게 만들기 위한 수리적 해결책이 필요하기 때문입니다.
  • What to Learn:
    • The End-Effector Concept: 움직여야 할 물리적 최종 목적지 설정
    • Analytical IK for 2-Bones: 2절 링크의 수리적 삼각함수 해법
    • CCD Algorithm logic: 말단에서 루트 방향으로 관절을 조금씩 수리 보정하는 기법
  • How to Learn:
    • 마우스 좌표를 물리적 목표로 설정하고, 2D 팔 모델이 수리적으로 따라오게 만드는 실습
    • 목표가 물리적으로 도달 불가능한 수치(OutOut-ofof-reachreach)일 때, 수리 알고리즘의 발산(Infinity) 방지 훈련
  • Implement: CCD 수법을 활용하여 목표 좌표에 점진적으로 물리 정렬하는 Incremental_IK_Engine

Practical

Core: 제약 조건과 FABRIK (Advanced Solvers)

  • Why to Learn: 관절이 기괴하게 꺾이는 물리적 오류를 방지하고 더 빠른 수리 수렴 성능을 확보하기 위해서입니다.
  • What to Learn:
    • Degree of Freedom (DOF): 관절의 물리적 가동 축 수치 제어
    • Joint Limits Dynamics: 인체 물리 구조에 수렴하는 수리적 각도 제한
    • FABRIK Algorithm: 전/후방 물리 전파를 통한 고성능 수치 기구학
  • How to Learn:
    • 팔꿈치가 반대로 꺾이지 않도록 수리적 Clamping 수치를 주입하고 물리적 자연스러움 분석 실습
    • FABRIKJacobian 방식의 초당 수리 연산 횟수(OPSOPS)를 물리 대조하여 효율성 입증 훈련
  • Implement: 거리 비례 수치를 활용하여 뼈대 길이를 유지하며 목표에 물리 도달하는 FABRIK_Controller

Advanced

Core: 풀바디 IK와 물리적 반응 (Full-body Governance)

  • Why to Learn: 손 하나를 움직일 때 어깨와 허리의 수치까지 연쇄적으로 반응하는 하이엔드 전신 리액션을 구현하기 위함입니다.
  • What to Learn:
    • Center of Mass (COM) Tracking: 무게 중심 수치 유지를 위한 전신 수리 보정
    • Foot Placement Logic: 경사로에서의 발 물리 접지 수리 최적화
    • Physical interaction Sync: 캐릭터가 무거운 물리 물체를 들 때의 수치적 하중 분산
  • How to Learn:
    • 계단 환경에서 캐릭터의 양발 물리 좌표가 수리적으로 지면과 동기화되는 전신 IK 시스템 구축 실습
    • Ragdoll Blending 기술을 적용하여 실시간 물리 반응과 수리 애니메이션을 하이엔드로 결합하는 프로젝트
  • Implement: 지면의 법선 수치에 따라 발목과 무릎의 수리 각도를 실시간 보정하는 Terrain_Adaptive_Animation_Agent

7. Terminology

Term (EN / ko, abbr) 1문장 정의 단계(기본/권장/실무/심화) 역할/맥락 관련 개념 유사/대비/함께 사용 오해 포인트 Evidence(Primary/Secondary/Industry) Flags(core)
Forward Kinematics 상위 관절의 회전 수치를 기반으로 하위 관절과 말단의 물리적 위치를 산출하는 순차적 계산법입니다. 기본 기초 역학 Rotation / Position IK 각도로 위치 구함 P1:CS2023 core
Inverse Kinematics 말단의 목표 물리 좌표를 달성하기 위해 필요한 상위 관절들의 수리적 회전 수치를 역산하는 기술입니다. 기본 대응 역학 End-effector / Target FK 위치로 각도 구함 P1:CS2023 core
Quaternion 3D 회전을 물리적 왜곡(짐벌 락) 없이 표현하기 위해 4개의 수치 성분을 사용하는 수리 체계입니다. 추천 회전 표현 Euler Angles / Axis Matrix 4차원 복소수임 Industry core
Rigging 3D 모델의 물리적 표면과 가상의 수리적 뼈대를 연결하여 움직일 수 있는 상태로 만드는 과정입니다. 실무 구조 정의 Skinning / Bone Modeling 뼈대 심기임 Industry core

8. References

Primary

Secondary

  • [FABRIK: A fast, iterative solver...] Aristidou - The seminal algorithm paper.
  • [Real-time Character Animation] various - Practical game kinematics.

Industry

  • [Unreal Engine: Control Rig & IK Rig] — Industrial high-end implementation standards.
  • [Unity: Animation Rigging & LookAt Logic] — Practical engine use-cases.

9. Final Checklist

Primary

  • 캐릭터의 '뼈대 계층'을 따라 월드 물리 좌표를 수리적으로 산출(FK)할 수 있는가? (P1)
  • 복관절 구조에서 특정 목표물을 향한 수리적 최적 각도(IK)를 알고리즘으로 도출할 수 있는 가? (P1)

Secondary

  • '쿼터니언' 수치가 왜 3D 애니메이션의 물리적 **보간(InterpolationInterpolation)**에서 오일러 각보다 우월한지 논증 가능한가?
  • Foot Placement 수치 오차로 인해 캐릭터의 발이 물리적 지면을 파고드는 현상을 수리적으로 예방할 수 있는 가?

Industry

  • 실무 애니메이션 검수 시, IK 리소스의 CPU 연산 점유 수치를 분석하여 실시간 엔진 예산안을 제안할 수 있는 가? (SFIA)
  • Constraint Solvers 수치를 튜닝하여 캐릭터의 관절이 물리 하드웨어의 한계 수치를 넘지 않도록 가이드할 수 있는 가?