Unreal IK/FK

주찬환·2025년 1월 3일

Unreal

목록 보기
11/12
post-thumbnail

IK와 FK

Inverse Kinemetics와 Forward Kinematics의 약자로 모두 자연스러운 애니메이션을 위해서 본을 움직이는 운동학이다.
위의 사진과 같이 계단과 같은 지형에서 발이 계단의 높이에 맞게 붙이거나 손이 무기의 정확한 위치에 가서 붙도록 조정해주기 위해서 사용된다.

  • FK : FK는 자신의 루트 본에서부터 말단의 본까지 순방향으로 계산해오는 것을 말한한다. 계산이 단순하지만 정확한 지점에 맞추기 어려워 여러가지 지형이나 물체에 대응하기 어렵다.
  • IK : 목표지점에서부터 역방향으로 계산하여 본들의 위치를 맞춰가는 방식으로 다양한 환경에서 사용하기 용이하지만 계산량이 많아 과도하게 사용하면 퍼포먼스가 떨어질 수 있다.

언리얼 IK의 종류

TwoBone IK

  • 세 개의 본(관절), 두개의 스켈레톤(본과 본사이 간격)으로 이루어진 본(관절)체인에서 사용할 수 있는 IK다.
  • 작동 방식 :
  1. 목표지점을 정하고 두 스켈레톤의 길이와 시작 본과 목표까지의 거리를 코사인 법칙을 이용하여 조인트 타겟(포인트)의 굽힘 각도를 계산한다.
  2. 구한 조인트 타겟의 굽힘 각도를 아크탄젠트를 이용하여 시작 본의 회전을 보정한다.
  3. 보정한 값을 각 각 시작본과 조인트 타겟에 적용하여 목표위치에 닿도록 한다.
  • 문제점 : 만약 스텔레톤의 길이를 합친 값보다 시작 본부터 목표지점까지의 거리가 클 경우 어색해질수 있기 때문에 최대 거리를 제한하는 것이 중요하다.
  • 사용 예시 : 목표 위치에 맞추는 IK로 주로 지형에 맞게 발의 위치를 자연스럽게 두거나 팔의 위치를 자연스럽게 보정하는 기능에 자주 쓰인다.
  • 단점 : 두 개의 본에만 적용이 가능하여 관절이 많은 구조나 손가락 같은 복잡한 구조에서는 사용이 불가능하다.

FABR IK

  • 다수의 본을 사용하여 부드러운 IK를 구현하는 알고리즘으로 엔드 이펙터와 솔버 사이의 본 들을 반복적으로 계산하여 자연스럽게 본들을 배치하는 IK이다.
  • 작동방식 : Backward단계에서 엔드 이펙터를 목표위치에 옮기고, 상위 관절들의 위치를 이에맞게 보정한다. Forward단계에서 루트 위치를 고정한채로 다시 관절을 목표 방향으로 보정한다. 이 과정을 반복하여 원하는 위치에 맞게 수렴하면 종료된다.
  • 장점 : 여러번 보정의 결과를 거치기 때문에 움직이 자연스럽고 적절하게 사용하면 연산 속도와 보정결과의 균형이 좋아 런타임에서 사용하기에도 적합하다.
  • 단점 : 연산이 너무 많이 반복되면 성능이 떨어 질 수 있다.

CCD

  • 다수의 관절을 가진 본 구조에서 엔드 이펙터가 목표에 도달하도록 각 관절을 순차적으로 회전 시키는 방식
  • 작동 방식 : 목표위치와 엔드 이펙터 사이의 거리를 계산하고 엔드 이펙터가 목표에 가가워지도록 각관절을 회전시켜 최종적으로 목표에 가깝게 보정한다.
  • 장점 : 벡터회전을 기반으로 계산하여 빠르게 계산이 가능하고 관절이 여러개여도 사용가능하다.
  • 단점 : 당장 자신(관절)의 최적의 회전만 계산하여 전체적인 움직임에서는 어색해지는 지역 최적해 상황이 발생할 수 있고 움직임이 연속적인 프레임에서 다른 IK에 비해서 튀는 현상이 나타날 수 있다.

FullBody IK

  • 게임 개발에서 전신의 관절의 자연스러운 움직임을 구현할 수 있도록 하는 프로시저럴 애니메이션의 핵심 기술이다.
  • 프로시저럴 애니메이션(Procedural Animation) : 미리 제작된 애니메이션 클립을 단순 재생하지 않고 런타임에서 실시간으로 알고리즘이나 수학적 계산을 통해 캐릭터의 움직임을 동적으로 생성하는 기법입니다. 다양한 변수에 즉각적으로 반응하는 애니메이션을 구현할 때 주로 사용됩니다
profile
게임 개발자가 되고 싶습니다! #Unreal #C++

0개의 댓글