IK Rig 에셋
IK Rig 에셋은 두 캐릭터가 애니메이션과 관련 에셋(애니메이션 블루프린트, 포즈 등)을 공유할 때 주로 사용된다.
이 에셋에는 캐릭터의 IK(Inverse Kinetic)정보도 세팅 할 수 있도록 되어 있다.(무릎이 앞으로 꺾여선 안된다든지 하는 정보). 이 정보는 게임에 직접 영향을 주는 정보는 아니다.
게임 플레이에 실제로 영향을 주는 IK 정보는 컨트롤릭에 따로 세팅되며, 애님 그래프에서 컨트롤릭 노드를 통해 사용된다.
현재로서 IK Rig안의 IK 정보는 리타켓팅(교류)할 때 참고 할 자료로만 쓰이고 있다.
다만 애니메이션 블루프린트(ABP)에서 컨트롤릭을 노드로 사용하듯
IK Rig도 노드화 시킬 수 있는데 아직 범용적으로 사용되지는 않고 있다. (느린듯 싶다)
마네킹 IK Rig
이제 애니메이션을 교류하기 마네킹과 기디언의 IK Rig 에셋 필요한데 마네킹은 IK Rig 에셋이 이미 있긴 하다.
Content 폴더 -> Characters 폴더 -> Mannequins 폴더 ->Rigs 폴더 -> IK_Mannequin 에셋 오픈

에셋창 오른쪽 IK Retargeting 탭을 보면
spine_01번 뼈부터 spin_05번 뼈까지 “Spine”라는 이름의 부분입니다 라는 정의가 있다, 뷰포트에 옅은 색의 뼈들.
뷰포트에 뼈가 보이는 이유 뷰포트 메뉴 Character -> bone -> All Hierarchy 가 선택 되어있기 때문
그런데 IK Rig도 사실 잘 안쓴다.
언리얼 5.4부터 리타겟팅이 필요할때, 에디터는 그에 맞는 IK Rig를 자동으로 생성해준다.
이를 Auto Retargeting이라며 우리도 이를 사용할 것이다.
하지만 IK Rig 안에 든 내용은 알고 있을 필요가 있다.
퀸의 리타게터를 하나만 만들어보자.
IK_Rig
Content 폴더 -> Characters 폴더 -> Mannequins 폴더 -> Meshes 폴더 -> SKM_Quinn 우클릭(뼈구조가 같은 SKM_Manny를 선택해도 됨) -> Create -> IK Rig 선택

에셋이름은 IK_Quinn으로 바꾸자.

오픈하면 IK_Retargeting 탭이 비어있는게 보인다.
리타겟(Retarget) 루트
보통 캐릭터의 최상위 뼈는 골반뼈(pelvis, hip)이거나 root본(보통 양발사이 바닥에 위치)이다.
여기서 쓰일 리타겟 루트는 꼭 root일 필요는 없다. 그 보단 팔다리의 중심인 골반(pelvis, hip)을 많이 쓴다.
하열하키(Hierarchy)에서 pelvis 우클릭 -> Set Retarget Root

Quinn’s Root Chain
보통 IK Retargeting 탭에 신체부위들을(뼈묶음들, Retarget Chain) 등록할때, root본부터 한다.
리타겟 루트보다 상위 뼈지만 실제 root본의 정보도 필요하긴 한것.
root 본 우클릭 -> New Retarget Chain -> Add Chain

Goal 또는 IK Goal
위 화면 Retarget Chain(뼈묶음들)을 만들때 보이는 Goal 항목은 IK 세팅의 일환이다. 차후 포스팅에서 다룬다.
이는 (앞서 말했듯) 애니메이션을 리타겟팅(retargting)할때만 활용되는 IK 정보이다.
간단하게 설명하자면 hand_l 등 손, 발쪽 뼈를 우클릭해서 IK Goal이란걸 만들 수 있다
“hand_l 우클릭” 으로 만든 IK Goal을 왼팔 Retarget Chain 만들때 (upperarm_l, lowerarm_l, hand_l) Goal 항목에 설정 할 수 있다.
해당 IK Goal 골이 움직일 때 따라 움직여야 하는 세개의 본이 정의되는 셈
Quinn’s Other Chains
spine_01 부터 spine_05까지 선택(Shift 키나 Ctrl키로 중복 선택 가능) -> 우클릭 -> New Retarget Chain -> Add Chain
체인을 만들 땐 꼭 필요한 뼈들만 골라서 선택하자. 캐릭터간에 안맞는 뼈들은 각자가 알아서 해야된다.
기디언의 경우 옷깃이 흔들리는 연출을 위해 옷깃에 뼈가 박혀있다.
twist라는 단어가 들어간 뼈들도 여기선 불필요하다.
이는 손목 등 특정 관절이 과도하게 회전했을 때 주변 살(메시)들이 찌그러지는 것을 막기 위해 회전량을 나눠가지는 뼈들.
주요 뼈들이 아니기에 캐릭터마다 다를 수 있다.

다른 체인들도 아래의 정의에 맞춰서 등록하자.
이때 우리가 설정할 Chain Name설정에 주의를 기울이자. 비슷한 작업을 기디언도 해야 되는데 체인 이름이 같으면 좋다.
세팅하는데 따라야하는 절대 규칙은 없다. 그냥 두 캐릭터의 비슷한 부위를 적절히 맵핑시켜주면 된다.
- Root : root
- Spine : spine_01 ~ spine_05
- Head : neck_01, neck_02, head
- LeftClavicle : clavicle_l
- RightClavicle : clavicle_r
- LeftArm : upperarm_l, lowerarm_l, hand_l
- RightArm : upperarm_r, lowerarm_r, hand_r
- LeftIndex : index_01_l ~ index_03_l
- LeftMiddle : middle_01_l ~ middle_03_l
- LeftPinky : pinky_01_l ~ pinky_03_l
- LeftRing : ring_01_l ~ ring_03_l
- LeftThumb : thumb_01_l ~ thumb_03_r
- RightIndex : index_01_r, index_02_r, index_03_r
- RightMiddle : middle_01_r ~ middle_03_r
- RightPinky : pinky_01_r ~ pinky_03_r
- RightRing : ring_01_r ~ ring_03_r
- LeftThumb : thumb_01_l ~ thumb_03_r
- LeftLeg : thigh_l, calf_l, foot_l, ball_l
- RightLeg : thigh_r, calf_r, foot_r, ball_r

쓰진 않겠지만 언리얼이 이와 비슷한 리타겟터를 생성하면 그것이 무엇인지 파악하기 쉬울것이다.