컨트롤릭 Full Body IK
마네킹의 CR_Mannequin_BasicFootIK 컨트롤릭의 마지막 스텝인 스텝5에서는 앞서 구한 발의 높이 값을 바탕으로 언리얼의 Full Body IK 노드에게 관련 뼈들의 위치 보정을 부탁하고 있다.

화면 좌측 Get Transform – Bone 노드는 앞서 맞춰놓은 IK_foot_L, IK_foot_R의 위치값을 Get하고 있으며 이를 Full Body IK 노드에서 실제 발뼈인 foot_l, foot_r에 적용시켜주고 있다.
Full Body IK노드는 이제 해당 발의 위치에 맞추어 정강이뼈, 허벅지뼈, 골반뼈 등을 적절히 움직여 줄것이다.
이 Full Body IK노드를 사용하기 위해서 추가로 플러그인을 설치해야 하는데 언리얼의 Third Person 템플릿을 사용할 경우 이미 설치 되어있다.
Edit -> Plugins -> Full로 검색

Full Body IK 노드에 보이는 핀들에는 아래와 같은 것들이 있다.
- Effector 손, 발등, 관절의 끝단, IK 처리를 통해 뼈들의 전체 위치를 보정할때 이런 보정의 계기가 되는 부분은 이런 몸의 끝 부분인 경우가 많다.
- Position Alpha, Rotation Alpha IK본의 위치와 실제 뼈의 정보를 몇대 몇으로 섞을건지에 대한 설정
- Bone Settings 뼈들중 어깨뼈나, 골반뼈는 팔꿈치, 무릎에 비해 덜움직이는게 자연스러우며 너무 과도하게 꺽여선 안된다. 이런 설정을 위한 옵션들
- Excluded Bone 해당 IK처리에 배제되어야 할 뼈들 목록
- Iteration IK처리를 할때 한번의 모든뼈들의 위치를 적절하게 배치하기 보다 변형을 여러번 시도를 해서 그중 가장 적합한 위치를 선별한다. Iteration값은 몇번 시도할것인지. 20번이면 그렇게 무거운 처리는 아니라고 한다.
Full Body IK 노드의 한계
위에 보이는 Full Body IK노드의 Root Behavior 핀을 Free로 바꾸고 플레이 해보면 아래의 상황이 발생한다.

Full Body IK는 왼쪽다리를 올리기 위해 전체 바디를 최소한으로 움직이려 하는데 이 때문에 골반위의 상체가 움직이지 않았다. 그래서 기울어 진것
설정은 원복하자. Pin To Input 옵션은 이 컨트롤릭에 들어온 포즈의 IK Root위치는(Pelvis) 움직이거나 회전하지 않는다는 뜻
Full Body IK는 이외에도 다양한 부작용이 있다.

팔꿈치나 무릎을 굽히는게 더자연스러운 움직임이라는 설정이 이 플러그인 상에는 없기 때문.

이를 해결하기 위해 Full Body IK 노드에는 Bons Settings 옵션을 통해 아래와 같은 조율을 할 수 있다.
- 특정 뼈의 회전값을 제한
- 특정 뼈의 선호하는 회전 방향을 설정
- 무릎이나 팔꿈치 발목 뼈보다 골반, 어깨 뼈가 덜 움직이도록 Stiffness 설정
마네킹 캐릭터는 이런 설정이 하나도 되어있지 않음에도 자연스러운 움직임이 가능하다.
이는 마네킹의 스켈렉톤 메쉬(마네킹의 본 형상)에 등록되어있는 후처리용 애니메이션 블루프린트(ABP_Manny_PostProcess)에서 애니메이션이 캐릭터의 움직임을 다듬어주고 있기 때문으로 보인다(포즈 에셋을 활용, 차후 포스팅)