Version: 2019.2
애니메이션 전환
플레이어블 API

애니메이션 FAQ

일반적인 질문

“메카님”은 무엇입니까?

메카님은 Unity에 통합된 애니메이션 소프트웨어의 이름입니다. Unity 4.x 시리즈 초기 단계에서 메카님은 특히 인간형 캐릭터 애니메이션 제작에 주안점을 두고 있었으며, 목적에 적합한 특징있는 기능을 많이 갖추고 있습니다. 메카님은 Unity의 이전 애니메이션 시스템(현재는 레거시 시스템)과는 별개입니다.

메카님에는 인간형 애니메이션 리타게팅, 근육 제어, 상태 머신 시스템 등이 포함되어 있습니다. “Mecanim”이라는 이름은 프랑스어로 “사람”을 의미하는 “Mec”에서 비롯되었습니다. 메카님으로 인간형 캐릭터만 수행할 수 있었던 때에는, 비인간형 캐릭터와 다른 키프레임 기반의 애니메이션이 필요한 게임 오브젝트를 애니메이션으로 만들기 위해서 레거시 애니메이션 시스템을 사용했습니다.

그러나 이후에, Unity는 메카님을 개발하고 확장해왔으며 나머지 애니메이션 시스템과 통합하여 프로젝트의 모든 애니메이션 작업에 사용될 수 있도록 했습니다. 이런 이유로 “메카님”이 끝나고 나머지 애니메이션 시스템이 시작되는 시점을 확실하게 구별하기가 어렵습니다. 이런 이유로 문서의 레퍼런스와 커뮤니티 전반에서 “메카님”에 대한 언급을 보게 되는 것입니다. 이제는 단순히 메인 애니메이션 시스템을 가리키는 말로 사용됩니다.

Animation 컴포넌트와 Animator 컴포넌트의 차이는 무엇입니까?

Animation 컴포넌트는 레거시 애니메이션 시스템의 애니메이션에 사용된 이전 컴포넌트입니다. Unity에 아직 남아있는 이유는 이전 버전과의 호환성 때문이므로, 새 프로젝트에 사용해서는 안 됩니다. 대신 최신 Animator 컴포넌트를 사용합니다.

왼쪽: 이전 레거시 Animation 컴포넌트. 오른쪽: 현재 시스템의 Animator 컴포넌트
왼쪽: 이전 레거시 “Animation” 컴포넌트. 오른쪽: 현재 시스템의 “Animator” 컴포넌트

애니메이션 창과 애니메이터 창의 차이는 무엇입니까?

애니메이션 창으로 Unity 안에서 애니메이션 클립을 생성하거나 편집할 수 있습니다. 창을 통해 인스펙터에서 편집할 수 있는 거의 모든 프로퍼티를 애니메이션화할 수 있습니다. 게임 오브젝트 위치, 머티리얼 컬러, 광원의 밝기, 소리 크기, 스크립트의 임의 값까지 애니메이션화할 수 있습니다.

애니메이터 창에서는 상태 컴퓨터라고 불리는 플로차트와 비슷한 시스템을 사용하여 애니메이션 클립 에셋을 정리할 수 있습니다.

두 창은 현재 애니메이션 시스템의 일부이며, 레거시 시스템이 아닙니다.

그렇다면 Animation 컴포넌트는 레거시지만 애니메이션 창은 현재 시스템의 일부입니까?

그렇습니다.

레거시 애니메이션 시스템을 캐릭터 애니메이션에 사용하고 있습니다. 대신에 현재 애니메이션 시스템(메카님)을 사용해야 합니까?

일반적으로는 그렇게 해야 합니다. 레거시 애니메이션 시스템은 과거 프로젝트와 같이 이전 버전과의 호환성을 위해서만 존재하며 현재의 애니메이션 시스템과 비교하면 매우 제한된 기능 밖에 없습니다. 단지 과거의 프로젝트를 이전 시스템에서 작성하는 경우에만 레거시 애니메이션 시스템을 사용해야 합니다.

임포트

왜 임포트한 메시가 Animator 컴포넌트를 가지고 있는 것입니까?

Unity는 임포트한 파일이 타임라인 안에 애니메이션을 가지고 있는 경우 임포트할 때 Animation 컴포넌트를 더합니다. 리그 탭의 임포트 설정에서 “애니메이션 타입”을 None 으로 설정하여 에셋의 임포트 설정을 수정할 수 있습니다. 필요하다면 여러 파일을 한꺼번에 처리할 수 있습니다.

레이어

레이어의 순서는 중요합니까?

그렇습니다. 레이어는 맨 위에서 아래로 순서대로 평가됩니다. 오버라이드 로 설정된 레이어는 항상 이전 순서의 레이어를 오버라이드합니다(마스크가 있으면 그 마스크에 따릅니다).

베이스 레이어의 가중치 값은 항상 1로 해야합니까? 아니면 또 다른 레이어가 사용되고 있을 때는 0으로 설정해야 합니까?

기본 레이어의 가중치는 항상 1이며 오버라이드 레이어가 기본 레이어를 완전히 오버라이드합니다.

컨트롤러에서 이름 문자열을 사용하지 않고 변수 값을 얻는 방법이 있습니까?

정수를 사용하여 상태 및 파라미터를 식별할 수 있습니다. Animator.StringToHash 함수를 사용하여 정수 식별자 값을 얻으십시오. 예:

runState = Animator.StringToHash("Base Layer.Run");
animator.SetBool(runState, false);

동기화 레이어 상태의 길이와 베이스 레이어 상태의 길이가 다르면 어떻게 됩니까?

레이어의 길이가 다르다면 비동기화됩니다. 타이밍 옵션을 활성화하면 현재 레이어와 소스 레이어의 타이밍을 강제로 맞출 수 있습니다.

아바타 마스크

왼발과 오른발, 왼손과 오른손 이외의 AvatarIKGoals를 만드는 방법이 있습니까?

네, 무릎과 팔꿈치 IK가 지원됩니다.

어떤 트랜스폼이 아바타 마스크의 일부인지 정의할 수 있습니까?

네, 일반 클립에서 어떤 변환 애니메이션을 임포트했는지 정의할 수 있습니다. 휴머노이드 클립의 경우 모든 인간형 트랜스폼은 항상 임포트되며 추가 변화를 정의할 수 있습니다.

애니메이션 커브

커브가 없는 애니메이션에 커브가 포함된 애니메이션을 어떻게 블렌드할 수 있습니까?

커브가 있는 애니메이션과 커브가 없는 애니메이션이 있는 경우, Unity는 커브에 연결된 파라미터의 기본값을 사용하여 블렌드합니다. 파라미터에 기본값을 설정할 수 있으며, 커브 파라미터가 있는 상태와 커브 파라미터가 없는 상태를 커브 값과 기본 파라미터 값 사이로 블렌드합니다. 파라미터의 기본값을 설정하려면 라이브링크 내부가 아니라 애니메이터 툴 창에서 값을 설정해야 합니다.

애니메이션 전환
플레이어블 API