컨트롤 릭의 풀 바디 인버스 키네마틱(FBIK) 기능을 사용하여 컨트롤 릭에서 고도의 컨트롤 및 유연성을 갖춘 릭을 구성할 수 있습니다. 전반적인 솔버 메서드는 위치 기반 IK(Position Based IK) 프레임워크에 빌드되어 더 빠른 릭 퍼포먼스, 본별 세팅, 선호 각도, 스쿼시 또는 스트레치 등을 지원합니다. FBIK는 지면 정렬, 팔을 뻗는 행동 등 컨트롤 릭 내의 프로시저럴 조정 툴로 작동하도록 설계됐습니다.
이 문서에서는 FBIK 노드 생성 방법 및 이 노드의 다양한 기능을 개괄적으로 살펴봅니다.
전제조건
- FBIK는 컨트롤 릭 그래프 내의 노드이므로 컨트롤 릭 에디터에 대해 알고 있어야 합니다.
-
FullBodyIK 플러그인을 활성화해야 합니다. 이를 수행하려면 언리얼 에디터 메뉴 바에서 편집(Edit) > 플러그인(Plugins) 으로 이동하여 FullBodyIK 를 찾습니다. 플러그인을 활성화하고 에디터를 재시작합니다.
- 캐릭터에 대한 컨트롤 릭 에셋을 생성했으며 컨트롤을 생성하는 방법을 알고 있어야 합니다. 생성 방법에 대한 정보는 컨트롤 릭 퀵스타트 페이지를 참조하세요.
생성 및 설정
FBIK 기능을 사용하려면 컨트롤 릭 내에서 FBIK 노드를 생성한 다음 본 및 이펙터를 적절한 핀에 할당하면 됩니다.
먼저 컨트롤 릭 그래프를 우클릭하고 컨텍스트 메뉴에서 계층구조(Hierarchy) > 풀 바디 IK(Full Body IK) 를 선택합니다. 이렇게 하면 풀 바디 IK 노드가 생성됩니다. 노드를 정방향 솔브 노드에 연결합니다.
릭 그래프 설정
다음으로, 풀 바디 IK 노드에 루트(Root) 본 프로퍼티를 설정합니다. 일반적인 풀 바디 설정에서 이는 보통 둔부 또는 골반 본입니다.
FBIK 시스템에 대해 선택한 컨트롤을 생성 및 추가합니다. 일반적으로 이 컨트롤은 영향을 미치고자 하는 사지에 해당되며, 체인의 주요 끝 본을 기반으로 합니다. 이 예시에서는 머리, 손, 발에 대해 컨트롤이 생성됩니다.
이펙터 설정
그래프에 추가된 각 컨트롤에 대한 이펙터 핀을 추가해야 합니다. 이를 위해서는 이펙터(Effectors) 프로퍼티 옆의 추가(Add)(+) 버튼을 클릭합니다. 이펙터는 각 컨트롤마다 생성되어야 합니다.
이펙터 엔트리 하나를 펼치면 프로퍼티가 표시됩니다. 각 이펙터 내에서 컨트롤에 대한 해당 본(Bone) 값을 설정한 다음 해당되는 Get Transform 노드에서 트랜스폼 핀을 연결합니다.
모든 이펙터와 컨트롤이 연결될 때까지 같은 방식으로 각 이펙터를 해당되는 Get Transform 노드에 연결합니다.
설정 결과
이제 캐릭터에 대한 기본 FBIK 설정이 완료되었습니다. 컨트롤 릭 뷰포트 내 컨트롤을 조작하여 결과를 볼 수 있습니다.
본 세팅
설정에 따라, 기본 FBIK 행동이 의도대로 이뤄지지 않을 수 있습니다. 이는 특정 본 세팅이 활성화되지 않았기 때문일 수 있습니다. 본 세팅(Bone Settings) 은 풀 바디 IK 노드 내의 프로퍼티이며, FBIK가 영향을 미치고 있는 각 본의 행동을 제어하는 데 사용됩니다.
본 세팅 옆의 추가(+) 버튼을 클릭한 다음 본 프로퍼티에서 영향을 미치고자 하는 본을 지정하여 풀 바디 IK 노드에 본 세팅을 추가합니다. 각 본 세팅은 단일 본에만 영향을 미치므로 릭에서 발생하는 구체적인 문제에 따라 다수의 본 세팅을 추가해야 할 수도 있습니다.
휴머노이드 예시에서 다음과 같은 문제가 나타납니다.
-
둔부가 너무 과도하게 회전 및 이동합니다.
-
다리가 충분히 굽혀지지 않고 경직된 모습을 보입니다.
-
발목이 너무 위로 회전하여 부자연스러운 포즈가 됩니다.
본 세팅 을 사용하여 이러한 문제를 해결하고 선호하는 IK 설정을 지원할 수 있습니다.
회전 및 위치 경직도
회전(Rotation) 및 위치 경직도(Position Stiffness) 프로퍼티는 IK 체인에서 얼마나 많은 본이 컨트롤 및 이펙터의 영향을 받는지를 제어하는 데 사용됩니다. 이러한 프로퍼티를 사용하여 골반 본이 컨트롤의 움직임에 의해 영향을 받는 정도를 변경합니다. 0 값은 완전히 자유로운 움직임이 되며, 1 값은 본의 움직임을 완전히 고정합니다.
휴머노이드 예시에서는 골반 본이 본 세팅으로 지정되었고 0.8 이 회전 및 위치 경직도 값으로 설정됐습니다. 이 경우에는 어느 정도의 움직임이 선호됩니다.
선호 각도
선호 각도는 특정 축을 따라 회전하는 조인트의 우선 순위 지정하여 이펙터에 닿도록 하는 데 사용됩니다. 휴머노이드 예시에서는 선호 각도를 사용해 다리 및 무릎의 경직도 문제를 해결합니다.
본 세팅의 하단 부근에 선호 각도(Preferred Angles) 프로퍼티가 있습니다. 선호 각도를 사용하려면 선호 각도 사용(Use Preferred Angles) 을 활성화해야 합니다.
선호 각도 프로퍼티는 캐릭터 타입 및 조인트 구조에 따라 지정합니다. 이 예시에서는 마네킹의 무릎이 Z축(Z axis) 을 따라 양의 방향으로 구부러져야 하므로 45 값을 Z 프로퍼티에 설정해야 합니다.
제한
제한(Limits) 은 IK 체인을 따르는 본 축의 회전 범위를 제한하거나 완전히 고정하는 데 사용됩니다. 이 세팅은 경직도와 선호 각도 프로퍼티 사이에 있습니다.
각 축에는 다음과 같은 제한 세팅이 있습니다.
- 자유(Free) 는 본의 자유로운 움직임을 허용합니다.
- 제한됨(Limited) 은 지정된 범위 내의 움직임만 허용합니다. 이 항목을 선택하면 최대/최소(Min/Max) 프로퍼티를 사용하여 움직임의 범위를 정의합니다.
- 고정됨(Locked) 은 해당 축을 따라 이루어지는 움직임을 비활성화합니다.
이 휴머노이드 예시에서는 이러한 제한을 사용하여 부자연스러운 발목 회전 문제를 바로잡을 수 있습니다. -70 값을 최소 Z 로, 70 값을 최대 Z 로 설정하고 Z 축을 제한됨 으로 설정합니다.
본 제외하기
릭의 요구 사항에 따라 FBIK 솔브에서 본을 제외해야 하는 경우도 있습니다. 이는 부자연스러운 포즈를 바로잡거나 FBIK 행동을 단순화할 때 유용합니다.
오로지 본 세팅을 사용하여 본을 완전히 경직되게 만들거나 고정하기보다는 본을 제외하는 것이 권장됩니다.
본을 제외하려면 제외된 본(Excluded Bones) 옆의 추가(+) 버튼을 클릭한 다음 드롭다운 메뉴에서 제외할 본을 선택합니다.
노드 레퍼런스
다음은 풀 바디 IK 노드의 모든 핀과 세팅 목록입니다.
이름 | 설명 |
---|---|
루트 | FBIK 체인의 루트 본입니다. |
본 | IK 체인의 엔드포인트 본이며 컨트롤에 대응합니다. |
트랜스폼 | 엔드포인트 본을 제어하는 데 사용되는 트랜스폼입니다. 일반적으로 엔드포인트 본과 동일한 트랜스폼 정보를 공유하는 컨트롤과 연결된 Get Transform 노드에 의해 제공됩니다. |
오프셋 알파(Offset Alpha) | 이 프로퍼티는 이펙터 또는 본이 타깃 트랜스폼에 닿는 능력에 가중치를 적용합니다. 1 로 설정하면 이펙터가 타깃 트랜스폼에 닿기 위해 최대로 작동합니다. 0 으로 설정하면 이펙터가 입력 포즈를 유지합니다. |
세기 알파(Strength Alpha) | 이 프로퍼티는 이펙터가 IK 체인에 미치는 영향력의 세기를 결정합니다. 0 으로 설정하면 이펙터가 체인을 끌어당기지 않으며 다른 이펙터가 우선순위를 갖습니다. |
본 | 이 세팅을 적용하도록 지정된 본입니다. 이펙터 와 루트 사이 계층구조 내의 모든 본이 대상이 될 수 있습니다. |
회전/위치 경직도 | 본의 회전 또는 이동 프로퍼티에 적용할 경직도의 크기입니다. 값이 0 이면 자유로운 움직임을 허용하며, 값이 1 이면 본이 완전히 고정됩니다. |
XYZ 제한 세팅(XYZ Limit Setting) | 선택된 본의 축에서 허용되는 움직임의 유형입니다.
|
최대/최소 XYZ(Min/Max XYZ) | 제한됨 이 제한 세팅 으로 설정되는 경우, 최대/최소 XYZ 프로퍼티를 사용해 허용되는 움직임 범위를 지정합니다. |
선호 각도 사용 | 선호 각도 사용을 활성화합니다. |
선호 각도 | 체인이 압축될 때 본이 각 축에서 얼마나 회전하는지 지정합니다. |
반복작업(Iterations) | 이펙터가 원하는 목표 위치에 수렴될 때까지 이 값을 높입니다. 이 값을 높이면 FBIK 체인의 CPU 비용도 높아집니다. 경직도 외에도 높은 질량 배수(Mass Multiplier) 및 회전 제한 또한 수렴율에 영향을 미치므로 이 값을 더 조정해야 할 수도 있습니다. |
질량 배수(Mass Multiplier) | 본이 회전 및 이동에 저항하는 정도에 영향을 미치는 글로벌 값입니다. 일반적인 값 범위는 0.0 ~ 5.0 이며 0.0 은 완전히 느슨하고 5.0 은 굉장히 경직됩니다. 질량 배수 값이 높아질수록 수렴을 달성하기 위한 반복작업 수도 더 많아집니다. |
스트레치 허용(Allow Stretch) | 활성화하면 본이 이펙터에 닿기 위해 IK 체인을 따라 이동합니다. 위치 경직도 값이 이 결과에 영향을 미치며, 경직도가 높아지면 스트레치는 줄어듭니다. |
핀 루트(Pin Root) | 활성화하면 루트 본의 이동이 원본 포즈에 고정됩니다. 회전은 계속 영향을 받습니다. |
드로 스케일(Draw Scale) | 디버그 라인의 크기를 제어하는 배수입니다. |
드로 디버그(Draw Debug) | 활성화하면 이 FBIK 노드에 대한 IK 체인을 따라 영향을 받는 모든 본이 표시됩니다. |