Version: 2022.1
언어: 한국어
블렌드 셰이프를 사용한 작업
휴머노이드 애니메이션 리타게팅

애니메이터 오버라이드 컨트롤러

애니메이터 오버라이드 컨트롤러는 원본의 애니메이터 컨트롤러를 확장하는 에셋으로 사용된 특정 애니메이션을 대체하지만 원본 구조, 파라미터와 로직을 유지합니다.

이를 통해 여러 배리언트의 동일한 기본 상태 머신을 만들 수 있습니다. 하지만 각각 다른 애니메이션 세트를 이용합니다. 예를 들어, 게임상에서 다양한 NPC 타입이 있지만 각 타입(고블린, 오거, 엘프 등)은 걷기, 대기, 앉기 등 동작에서 고유의 애니메이션을 가집니다.

모든 NPC 타입을 위한 로직을 가진 하나의 “베이스” 애니메이터 컨트롤러를 만들어서 각 타입의 오버라이드를 작성할 수 있으며 이를 각각의 애니메이션 파일에 연결할 수 있습니다.

이를 시연하기 위해 대표적인 애니메이터 컨트롤러 에셋을 살펴보겠습니다.

다음은 간단한 상태 머신을 담고 있는 애니메이터 컨트롤러를 나타내며 여기에는 다음과 같이 생긴 네 방향 블렌드 트리 조절 애니메이션과 대기 상태 에니메이션을 포함하고 있습니다.

이 일반 NPC 상태 머신을 확장하여 오거 타입 캐릭터에만 적용되는 고유 애니메이션을 사용하려면, 애니메이터 오버라이드 컨트롤러를 생성하고 해당 오거의 애니메이션 클립을 원래 애니메이션 클립의 대체 항목으로 놓으면 됩니다.오거는 느리고 무겁고 더 근육질적인 움직임으로 대기하고 이동하는 다른 방식을 가질 수 있습니다.하지만 애니메이터 오버라이드 컨트롤러를 사용하면 움직임 상태 간 전환 및 블렌딩 방법에 대한 기본 로직을 서로 다른 애니메이션 세트를 가진 여러 캐릭터 간에 공유할 수 있으므로 스테이트 머신을 직접 빌드하고 수정하는 데 필요한 작업을 줄일 수 있습니다.

새 애니메이터 오버라이드 컨트롤러를 만드려면 에셋(Assets) -> 생성(Create) 메뉴를 사용하거나 프로젝트 뷰의 생성(Create) 버튼에서 애니메이터 오버라이드 컨트롤러를 선택합니다.

애니메이터 오버라이드 컨트롤러는 애니메이터 컨트롤러와 비슷한 아이콘을 가지고 있지만, 전자는 아이콘 구석에 “플러스” 기호가 있고 후자는 “재생” 기호가 있습니다.

아이콘 비교: 애니메이터 컨트롤러와 애니메이터 오버라이드 컨트롤러 에셋 아이콘을 나란히 놓고 비교
아이콘 비교: 애니메이터 컨트롤러와 애니메이터 오버라이드 컨트롤러 에셋 아이콘을 나란히 놓고 비교

인스펙터에서 새 애니메이터 오버라이드 컨트롤러를 선택할 때, 처음에는 애니메이터 컨트롤러가 할당되지 않은 상태이며 아래와 같은 모습입니다.

애니메이터 컨트롤러가 할당되지 않은 애니메이터 오버라이드 컨트롤러
애니메이터 컨트롤러가 할당되지 않은 애니메이터 오버라이드 컨트롤러

오버라이드 컨트롤러를 사용하기 위해서는 원본 컨트롤러 에셋을 인스펙터의 새로운 오버라이드 컨트롤러에 할당해야 합니다. 이렇게 하면 원본 컨트롤러에 사용된 모든 애니메이션이 오버라이드 컨트롤러의 인스펙터 목록상에 나타납니다.

기존 컨트롤러를 애니메이터 오버라이드 컨트롤러의 인스펙터로 드래그
기존 컨트롤러를 애니메이터 오버라이드 컨트롤러의 인스펙터로 드래그

다음으로 원본 애니메이션 클립을 오버라이드 하기 위해 새로운 애니메이션을 할당합니다. 이 예제에서 모든 애니메이션 클립은 “오거” 버전으로 오버라이드 되었습니다.

새로운 클립이 할당된 오버라이드 컨트롤러
새로운 클립이 할당된 오버라이드 컨트롤러

오버라이드 컨트롤러는 이제부터 애니메이터 컨트롤러로서 오거 캐릭터의 게임 오브젝트의 Animator 컴포넌트에 사용될 수 있습니다. 이는 원본 애니메이터 컨트롤러와 동일한 로직을 사용하지만 원본 대신 새롭게 할당된 애니메이션을 재생합니다.

Animator 컴포넌트에서 게임 오브젝트에 사용 중인 오버라이드 컨트롤러
Animator 컴포넌트에서 게임 오브젝트에 사용 중인 오버라이드 컨트롤러
블렌드 셰이프를 사용한 작업
휴머노이드 애니메이션 리타게팅