Unity의 애니메이션 레이어 (Animation Layers)
Unity에서 애니메이션 레이어를 사용하면 서로 다른 신체 부위에 대한 복잡한 상태 머신을 관리할 수 있습니다. 이 문서에서는 애니메이션 레이어의 기본 개념과 활용 예를 설명합니다.
애니메이션 레이어란?
애니메이션 레이어는 Animator Controller의 일부로, 다양한 움직임을 제어할 수 있도록 여러 개의 레이어를 사용하는 기능입니다. 예를 들어, 하체 레이어는 뛰거나 걷는 애니메이션을, 상체 레이어는 오브젝트를 던지거나 사격하는 애니메이션을 담당할 수 있습니다.
애니메이션 레이어 관리
Animator Controller의 좌측 상단에 위치한 Layers Widget에서 애니메이션 레이어를 관리할 수 있습니다. 여기서 레이어의 설정을 조정할 수 있습니다.
레이어 설정
- 블렌딩 타입: 애니메이션이 적용되는 방식을 선택합니다.
- Override: 새 레이어의 애니메이션이 아래 레이어의 애니메이션을 덮어씌웁니다.
- Additive: 아래 레이어의 애니메이션에 새 레이어의 애니메이션을 추가합니다. 애디티브 블렌딩이 제대로 작동하려면 추가 레이어의 애니메이션이 아래 레이어와 동일한 프로퍼티를 가져야 합니다.
- 마스크(Mask): 애니메이션을 적용할 신체 부위를 정의합니다. 예를 들어, 캐릭터가 걷거나 뛰는 동시에 오직 상체의 던지는 애니메이션을 재생하는 경우, 상체 마스크를 사용하여 해당 레이어에 적용할 수 있습니다.
레이어 동기화
동일한 상태 머신을 여러 레이어에서 재사용하기 위해 동기화를 설정할 수 있습니다. 예를 들어 "부상" 상태와 "건강" 상태의 애니메이션을 분리하고 싶다면, 원하는 레이어에서 동기화(Sync) 체크박스를 활성화하여 설정할 수 있습니다. 이를 통해 같은 상태 머신 구조를 유지하면서 각 레이어에서 다른 애니메이션 클립을 사용할 수 있습니다.
타이밍 조정
가중치에 따라 애니메이션 재생 시간을 조절할 수 있는 옵션도 있습니다. 타이밍(Timing) 체크박스가 선택된 경우, 각 애니메이션의 재생 시간이 가중치에 따라 조정됩니다.
활용 예제
예제 1: 캐릭터의 상체와 하체 애니메이션을 분리하기
- 상체와 하체를 따로 애니메이션 레이어로 나누어 각 레이어에 적절한 마스크를 적용합니다.
- 하체 레이어에서는 걷기와 뛰기 애니메이션을, 상체 레이어에서는 던지기 애니메이션을 설정합니다.
예제 2: 부상 상태의 애니메이션을 동기화하기
- '부상' 상태의 레이어를 추가하고, 이 레이어에서 동기화를 활성화합니다.
- 각 상태의 애니메이션을 변경하여, 부상 상태에서는 다른 애니메이션 클립을 사용할 수 있도록 설정합니다.
결론
Unity의 애니메이션 레이어는 다양한 캐릭터 애니메이션을 더욱 유연하고 효율적으로 관리할 수 있게 해 줍니다. 이 기능을 활용하면 복잡한 움직임을 보다 쉽게 구현할 수 있습니다.