Unity는 풍부하고 정교한 애니메이션 시스템을 탑재하고 있습니다. ’Mecanim’이라고도 하는 이 시스템은 다음을 제공합니다.
Unity 애니메이션 시스템은 애니메이션 클립의 개념에 기반하고 있으며, 특정 오브젝트의 포지션과 각도, 기타 프로퍼티가 시간이 지남에 따라 어떻게 변화해야 하는지에 대한 정보를 포함하고 있습니다. 각 클립을 선형적인 특징을 가지는 하나의 기록 공간이라고 생각할 수 있습니다. 외부 소스 애니메이션 클립은 아티스트와 애니메이터에 의해 Max나 Maya 등의 타사 툴을 통해 생성하거나 모션 캡쳐 스튜디오에서 촬영된 것, 또는 기타 소스로 만들어집니다.
애니메이션 클립은 애니메이터 컨트롤러 라는 구조화된 플로우차트와 같은 시스템으로 정리됩니다. 애니메이터 컨트롤러는 현재 어떤 클립이 재생되어야 하는지, 또한 애니메이션이 어떤 시점에서 변화하거나 블렌드되어야 하는지를 파악하는 “상태 머신” 역할을 합니다.
아주 간단한 애니메이터 컨트롤러라면 하나 또는 두 개의 클립만 포함할 수 있습니다. 예를 들어, 회전과 바운싱(튕김)의 세기를 조절하는 것과, 정확한 타이밍에 문을 여닫는 애니메이션이 됩니다. 좀더 고급 애니메이터 컨트롤러라면 메인 캐릭터의 모든 움직임을 위한 휴머노이드 애니메이션이 수십 개 포함되어 있으며 플레이어가 씬 안에서 움직일 때 부드러운 움직임을 표현할 수 있도록 여러 개의 클립을 동시에 블렌딩할 수 있습니다.
Unity의 애니메이션 시스템은 휴머노이드 캐릭터를 위한 많은 특수 기능을 탑재하고 있습니다. 이러한 기능을 이용함으로써 소스에 상관없이(예: 모션 캡처, 에셋 스토어, 기타 타사 애니메이션 라이브러리) 자신의 캐릭터 모델에 휴머노이드 애니메이션을 리타게팅 하거나 머슬 정의를 조정할 수 있습니다. 이러한 특수 기능은 시스템에 휴머노이드 캐릭터가 공통의 내부 포맷으로 매핑되는 Unity의 아바타 시스템에 의해 가능합니다.
애니메이션 클립, 애니메이터 컨트롤러, 아바타는 모두 Animator 컴포넌트를 통해 게임 오브젝트와 연결됩니다. 이 컴포넌트는 하나의 애니메이터 컨트롤러 및 (필요한 경우에는)이 모델의 아바타에 대한 레퍼런스를 가지고 있습니다. 애니메이터 컨트롤러도 마찬가지로 사용하고 있는 애니메이션 클립에 대한 레퍼런스를 가지고 있습니다.
위 다이어그램은 다음의 내용을 보여주고 있습니다.
Unity 애니메이션 시스템(“메카님”이라고 함)에는 다양한 개념과 용어가 포함됩니다. 용어의 의미를 확인하려면 애니메이션 용어집을 참조하십시오.
대부분의 상황에서 메카님의 사용이 권장되지만, Unity에서는 Unity 4 이전부터 있던 레거시 애니메이션 시스템을 유지해오고 있습니다. Unity 4 이전에 만들어진 오래된 콘텐츠를 다루는 경우, 레거시 애니메이션 시스템을 사용해야 할 수 있습니다. 레거시 애니메이션 시스템에 대한 자세한 내용은 여기를 참조하십시오.