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