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