언리얼 기초 26 컨트롤 릭 (1)

컨트롤 릭

언리언 Third Person 템플릿을 플레이 시킨후 화면처럼 마네킹 캐릭터를 경사진 곳으로 가보자

한쪽 발이 내려가는 것을 볼 수 있다.

플레이를 끄고, 이 마네킹이 사용하는 애님그래프를 열자

컨텐츠 브라우저 -> Characters 폴더 -> Mannequins 폴더 -> Animations 폴더 -> ABP_Many 더블클릭 -> 애님그래프(AnimGraph) 오픈

화면속 여자 마네킹의 이름은 Quinn이지만 이 캐릭터가 사용하는 에니메이션 블루프린트 ABP_Quinn은 ABP_Manny를 그대로 상속받고 있다, ABP_Manny의 애님그래프가 곧 ABP_Quinn의 애님그래프.

애님그래프의 데이터흐름을 화면처럼 컨트롤릭을 제외해 보자.

위 화면처럼 선을 연결 후 -> Compile -> Save

왼쪽 다리가 다리가 더이상 내려가지 않고 공중에 떠있다.

해당 컨트롤릭 노드는 이 발 높이 처리를 위한 노드인 것, 이런 처리는 애니메이션만으로 구현할수 없다. 경사의 방향과 각도가 너무 다양하기에 그에 따른 모든 애니메이션을 만들수 없는 것

애니메이션 처리 과정에서 현재 플레이 중인 에니메이션의 특정 포즈가 정해지면 우린 이를 매순간 후처리를 통해 가공해줘야 한다. 이는 컨트롤릭 에셋이 수행 하는 가장 중요한 역할이다.

바꾼 설정은 원복하자.

해당 컨트롤릭 노드가 사용하는 컨트롤릭 에셋은 CR_Mannequin_BasicFootIK이다.

이 에셋은 컨텐츠 브라우저 -> Characters -> Mannequins -> Rigs 폴더에 있다

Inverse Kinematics(IK)

캐릭터의 발을 경사에 맞춰 내려주고 들어주는 기법은 어려운 기법에 속한다.

화면 좌측을 보면 뼈들이 계층구조(Hierarchy, 트리구조)를 가지고 있는게 보인다.

그 중 골반뼈(Pelvis)는 Root 본(bone) 바로 아래 있을 만큼 매우 높은 계층에 있다.

정해진 애니메이션 포즈를 만들기 위해 골반뼈가 움직이면 하위에 있는 모든 뼈들은 이 뼈와 상대적인 위치와 각도를 유지하기 위해 같이 움직인다.

골반뼈의 움직임이 끝나면 첫번째 등뼈(Spine_01)가 자유롭게 회전하며 정해진 포즈를 만든다, 첫번째 등뼈 하위의 모든 뼈들은 이번엔 이 뼈와 상대적인 위치와 각도를 유지하기 위해 다시 움직인다.

이렇게 어깨가 움직이고 팔이 움직이고 손목과 손가락들이 움직인다. 다리도 마찬가지

계층 상위에 있는 뼈부터 자세가 정해지는 이런 프로세스에서는 최하위 계층에 속하는 발뼈를 움직여 봐야 정강이뼈나 허벅지뼈가 따라 움직이지 않는다.

설령 상위 뼈들이 따라 움직일 수 있다 하더라도, 무릎 관절이 앞으로 꺾여야 할지 뒤로 꺾여야 할지 옆으로 꺾여야 할지 알 수 없다.

이런 끔찍한 상황을 방지하기 위한 사전 설정은 Rigs 폴더안 두 파일에 되어있다.

  • CR_Mannequin_Body 컨트롤릭 에셋, 마네킹이 애니메이션을 만들거나 편집할 때 사용
  • IK_Mannequin IK릭 에셋, 다른 캐릭터 매쉬에서 마네킹 애니메이션을 받거나, 보내는 작업(리타게팅 작업)에 사용

CR_Mannequin_Body는 마네킹 캐릭터 스켈렉탈 메쉬(마네킹의 주 아트 리소스)의 Default Animation Rig 항목에 등록 되어있다.

참고로 이렇게 등록되어 있더라도 CR_Mannequin_Body가 실제 게임 플레이에 영향을 주진 않는다.

이 두 파일은 주로 마네킹이 사용할 애니메이션을 만들거나, 가공, 리타게팅 할때(다른 캐릭터와 애니메이션 교류) 해당 캐릭터의 관절 구조를 고려하기 위해 쓰인다.

사실 애니메이션이 동작이 끔찍하지 않으면 캐릭터는 끔찍 할일이 없다.

물론 CR_Mannequin_BasicFootIK 파일은 위처럼 발의 고저차를 조율하기 위해 실시간으로 쓰이고 있다.

이렇게 컨트롤릭 타입이나 IK릭 타입의 에셋은 애니메이션 블루프린트에서 노드를 통해(Controll Rig 노드나 IK Rig 노드) 게임 플레이에 직접적으로 활용될 수도 있다.

후처리 애니메이션 블루프린트

사실 컨트롤릭(이나 IK릭)의 실시간 처리는 무거운 처리이므로 사용을 최소화 할 필요가 있다.

그래서 마네킹 캐릭터는 CR_Mannequin_Body 에셋 설정을 매프레임 캐릭터 동작에 적용하기 보다

상대적으로 가벼운 Pose 에셋이라는 걸 활용한다.

이 포즈(Pose) 에셋은 후처리용 애니메이션 블루프린트의 Pose Driver 노드를 통해 마네킹에 활용되고 있다

마네킹의 후처리용 애니메이션 블루프린트(ABP_Manny_PostProcess, ABP_Quinn_PostProcess)는 마네킹의 스켈렉탈 메쉬(3D모델의 메인 형상)에 화면처럼 등록되어 있다.

이는 실시간으로 반영된다, 매프레임 메인 에니메이션 블루프린트의 처리가 끝난후 같이 처리된다.

우측 붉은 아이콘이 포즈 에셋이고 각 관절마다 구워져있다.

화면 중앙 하단에는 마네킹의 왼쪽 종아리뼈(calf_l)관절의 포즈 정보로서, 무릎이 50도, 120도 90도로 꺾였을 때 권장되는 메쉬 형상이 디테일하게 정의되어있다. 이런 포즈 에셋을 만들 때 관련 컨트롤릭이 활용됐음은 자명하다.

후처리 과정은 매프래임 메인 에니메이션 블루프린트에서 만들어지는 캐릭터의 애니메이션 동작을 이런 권장 형상들과 적절히 섞어서 더 자연스럽게 만드는게 목적이다.

차후 자세히 알아보자

Leave a Comment