CCDIK(Cyclic Coordinate Descent Inverse Kinematics, 순환 좌표 하강 역운동학) 애니메이션 블루프린트 노드는 경량 IK 솔버로 본 체인을 이펙터 위치(Effector Location) 로 구동할 때 사용됩니다. CCDIK 노드는 FABRIK 노드와 유사하지만, CCDIK는 본의 회전을 제한하려는 경우 유용하게 쓰일 수 있는 각 컨스트레인트를 정의하는 기능을 제공합니다.
여기서 CCDIK 노드는 애님 그래프 에서 선택되고 이펙터 위치 는 뷰포트 창의 디버그 이동 툴로 조작됩니다.
이펙터 위치 가 변경되면 빨간색 디버그 라인으로 하이라이트된 선택한 본 체인이 팁 본 을 이펙터 위치 와 일치하도록 이동합니다. 이펙터 위치 에 다이내믹 벡터 변수를 사용하고 회전 컨스트레인트를 적용하면 이 노드를 사용해서 스켈레탈 메시를 다이내믹하게 조정하여 게임 월드에서 캐릭터와 오브젝트의 상호작용을 연결할 수 있습니다.
알파(Alpha) 값 또는 핀을 사용하여 생성된 출력 포즈에 적용된 솔브 모션의 각도를 제어할 수 있습니다. 값이 1 이면 생성된 출력 포즈를 온전히 사용하며 값이 0 이면 소스 포즈를 출력합니다.
설정
이 예시 워크플로에서 CCDIK 노드는 게임 월드에서 버튼을 누르도록 캐릭터의 손가락을 다이내믹하게 조정하는 데 사용됩니다.
CCDIK 노드는 컴포넌트 스페이스(Component Space) 안에서 작동하므로, 캐릭터의 애니메이션 블루프린트 안에서 노드를 구현하려면 스페이스 변환이 발생해야 합니다.
애니메이션 블루프린트에 CCDIK 노드를 추가한 다음 애님 그래프 에서 노드를 선택하여 디테일 패널을 엽니다.
디테일 패널에서 체인 끝의 본이 될 팁 본(Tip Bone) 과 로컬 루트 본에 대한 조정을 연결할 루트 본(Root Bone) 을 선택할 수 있습니다. 이 예시에서 팁 본 은 캐릭터의 왼쪽 검지(index_03_l)로 설정하고 루트 본(Root Bone) 은 캐릭터의 왼쪽 어깨(clavical_l)로 설정합니다.
이펙터 위치 스페이스(Effector Location Space) 를 월드 스페이스(World Space) 로 설정하여 레벨의 이펙터 위치 벡터 변수를 계산합니다.
회전 제한 활성화(Enable Rotation Limit) 프로퍼티를 토글하여 회전 제한을 활성화하고 조인트별 회전 제한(Rotation Limit Per Joints) 프로퍼티 섹션에서 조정할 수 있습니다. 인덱스(Index) 는 로컬 루트 본(Root Bone) 과 팁 본(Tip Bone) 사이의 스켈레톤의 각 조인트에 채워집니다. 이러한 회전을 조정하면 원하지 않는 지오메트리가 겹치거나 캐릭터 조인트가 과도하게 확장되는 것을 방지할 수 있습니다.
CCDIK 노드는 이제 루트 본(Root Bone) 의 컨스트레인트 및 회전 컨스트레인트에서 이펙터 위치(Effector Location) 의 위치와 일치하도록 팁 본(Tip Bone) 을 조정하여 캐릭터가 다이내믹하게 모든 각도 또는 높이에서 버튼과 인터랙트합니다.
프로퍼티 레퍼런스
여기에서 CCDIK 노드 프로퍼티의 레퍼런스를 확인할 수 있습니다.
| 프로퍼티 | 설명 |
|---|---|
| 이펙터 위치(Effector Location) | 기본적으로 이 프로퍼티는 애님 그래프(AnimGraph) 노드에 핀으로 표시됩니다. 이 프로퍼티 값은 해결할 때 선택한 팁 본(Tip Bone) 을 조정하는 타깃 포인트입니다. |
| 이펙터 위치 공간(Effector Location Space) | 이펙터 위치(Effector Location) 에서 사용하는 레퍼런스 공간 프레임입니다. |
| 이펙터 대상(Effector Target) | 이펙터 위치 공간(Effector Location Space) 이 본(Bone) 이면, 이 프로퍼티에서 타깃 본을 정의할 수 있습니다. |
| 팁 본(Tip Bone) | 이펙터 위치(Effector Location) 에 맞게 조정할 스켈레탈 메시에서 본을 선택합니다. |
| 루트 본(Root Bone) | 스켈레탈 메시에서 본을 선택해서 체인을 끝내고 체인 모션을 로컬 루트 포인트에 고정합니다. |
| 정밀도(Precision) | 여기에서 이펙터 위치(Effector Location) 와 일치하도록 팁 본(Tip Bone) 조정에 대한 허용치 수준을 설정할 수 있습니다. 기본값은 1이며 가장 일반적으로 프로젝트에 가장 적합합니다. 더 정밀하게 조정하기 위해 이 값을 높일 수도 있고, 이 값을 낮춰서 정밀도를 낮출 수도 있습니다. |
| 최대 반복작업(Max Iterations) | 여기에서 노드가 수행할 수 있는 해결 반복작업의 최대치를 설정할 수 있습니다. 값이 높을수록 퍼포먼스가 떨어지지만 더 정확한 값을 계산할 수 있고, 값이 낮을수록 프로젝트 퍼포먼스는 향상되지만 정밀도는 높지 않습니다. 디폴트값은 10이며, 많은 프로젝트에 적합합니다. |
| 끝에서부터 시작(Start from Tail) | 활성화되면 체인의 디버그 드로가 팁 본(Tip Bone) 에서 시작해서 루트 본(Root Bone) 에서 종료됩니다. |
| 회전 제한 활성화(Enable Rotation Limit) | 활성화되면 노드가 조인트별 회전 제한(Rotation Limit Per Joints) 프로퍼티의 인덱스(Index) 값을 기반으로 체인의 각 조인트 회전을 제한합니다. |
| 조인트별 회전 제한(Rotation Limit Per Joints) | 여기에서 체인의 팁 본(Tip Bone) 과 루트 본(Root Bone) 사이의 각 조인트에 대한 회전 제한을 정의할 수 있습니다. 시작 인덱스(Index) 는 팁 본(Tip Bone) 에 직접 연결된 조인트에 적용되며 루트 본(Root Bone) 에 인접한 조인트까지 순차적으로 체인을 작동합니다. |
버튼 블루프린트 레퍼런스
여기에서 버튼 시연을 생성하는 데 사용된 버튼 블루프린트, 캐릭터 블루프린트 및 캐릭터의 애니메이션 블루프린트를 참조할 수 있습니다.

버튼 액터 블루프린트 | 캐릭터 블루프린트 | 캐릭터 애니메이션 블루프린트