Rig 폴더

언리얼 Third Person 템플릿의 Content/Characters/Mannequins/Rig 폴더에는 기본 캐릭터(마네킹)와 관련해서 부가적인 설정 파일들이 들어있으며 아래와 같다
컨트롤 리그
“CR_”로 시작하는 파일들. 애니메이션 후처리에 사용
마네킹의 목이 너무 많이 돌아가거나, 팔꿈치가 반대로 접히 현상에 대해 회전량에 상한을 두는 설정 등
캐릭터가 경사진 곳에 서있을 경우 한쪽발을 올려주는 IK(Inverse Kinetic)설정과 로직등에 사용
후처리 에니메이션 블루프린트
“ABP_”로 시작하는 파일들 후처리에 사용
캐릭터의 기본 블루프린트에 등록되어 사용되고 동적으로 교체될수 있는 메인 에니메이션 블루프린트와 달리 후처리 에니메이션은 스켈렉탈 메쉬(타일이나 벽돌과 달리 뼈까지 담겨 있는 3D모델, 마네킹 캐릭터의 본 모델)에 정적으로 등록되어 에니메이션 동작시 항상 동작한다.
매프레임 Poses 폴더에 있는 보정 설정들을 이용해, 캐릭터가 매순간 어색하게 보이지 않도록 관절 하나하나를 보정해준다.
Poses 폴더
손목, 팔꿈치, 무릎 등 캐릭터의 각 관절 움직임에 대해 고려할 상세 설정내용(포즈 에셋)과 그에 따른 에니메이션
예를 들어 캐릭터가 ‘만세를 했을때는 팔만(upper arm) 위쪽각도로 쭉 올릴것이 아니라, 어깨도 조금 움직여 줘라’등의 설정
음료수에 꼽혀있는 일반 빨때를 생각해보자 이것이 너무 꺽여 있으면 꺽인부위가 납작해 질것이다. 이것을 회전해서 꼬으면(Twisting) 꼬인 부위도 납작해진다. 캐릭터의 관절이 과도하게 움직였을때 이런현상이 나타나며 이는 게임과 에니메이션의 완성도를 떨어트린다.
뼈가 과도하게 꼬였을때(Twisted)는 회전한 그 본에 모든 회전량을 다주기보다 주변 본들을 적당히 같이 회전시키면 된다.
심하게 접혔을때는 역시 주변 뼈들을 이용해 이를 완화하거나, 3D Max, Maya등 아트웍 툴을 이용해 보정한 에니메이션을 써야 한다(Morphing)
IK 리그
“IK_”로 시작하는 파일 Inverse Kinetic을 위한 설정
Inverse Kinetic설정은 인간형 캐릭터의 경우 보통 손끝이나 발끝이 Inverse Kinetic의 가장 중요한 고려사항이 된다.
경사진 언덕에 있을 경우 그에 맞춰 발끝을 조금 올려주는 처리나, 문을 열기 위해 문고리에 손을 대야하는 처리의 경우 손과 발 끝이 월드의 특정한 위치에 있어야 한다.
솔버(Solve)라는 개념을 이용해 이를 설정한다. 솔버의 타겟은 손이나 발 끝이 될수 있고, 솔버의 루트는 어깨나 골반 근처가 될 수 있다.
솔버 타겟의 위치가(예를 들어 손끝) 정해지면 솔버 루트(예를 들어 어깨)부터 타겟까지의 뼈들의 절절한 위치를 선정해줘야 한다. 이 선정을 위해 각 뼈들은 선호하는 각도나 절대 허용되서는 안되는 각도(팔꿈치가 뒤로 접힌다던지)등을 설정할 필요가 있다.
사실 게임이 플레이 되는 동적인 상황에서 이런 설정은 대게 컨트롤 리그 (“CR_”로 시작되는 파일)를 사용해 에니메이션 블루프린트가 동적으로 제어한다. IK_Rig 설정 역시 최신 버전에서는 동적으로 게임 플레이에 반영될 수 있으나(IK Rig 노드) 최신 업데이트라 그런지 널리 쓰이지 않는 느낌,
때문에 IK_Rig 설정은 모델을 리타겟 할 때 주로 사용된다.
IK 리타게터
사전에 설정된 IK 리그를 이용해 특정 모델의 에니메이션 동작들을 다른 모델로 이전시켜준다.
우리는 우리의 마네킹이 단순히 서있고 뛰기보다, 때리고 맞고, 황당해하고, 웃고, 춤추길 바란다. 이 모든 에니메이션 에셋을 하나하나 만드는 일은 비효율적이다.
언리얼에서는 막시모(Maximo)라는 사이트를 통해 인간형 캐릭터에 대한 다양한 애니메이션을 공식적으로 지원해주고 있다.
하지만 막시모의 애니메이션들의 뼈구조는 기본 마네킹 캐릭터의 뼈구조와 다르다. 이를 위해 IK 리그파일에서 캐릭터 A의 어떤뼈(나 뼈묶음이)가 캐릭터 B의 어떤뼈(나 뼈묶음)과 매치하는지 설정해준다.
이후 원하는 애니메이션을 우리가 원하는 캐릭터의 애니메이션으로 트랜스폼 해준다.