[1] Animation Model Type
유니티의 Animation System 은 두가지 타입의 모델을 다룬다.
1. Humanoid model
실제 인간의 골격과 비슷한 모델. 최소 15개의 뼈를 포함하는 구조
(참고: Importing a model with humanoid animations)
2. Generic model
휴머노이드 빼고 모든 모델.
(참고: Importing a model with non-humanoid (generic) animations)
이렇게 Humanoid 모델만 따로 나눠논 이유는 휴머노이드 애니메이션 리타게팅 때문이다.
휴머노이드 애니메이션 리타게팅은 유니티 애니메이션 시스템의 가장 강력한 기능 중 하나로 동일한 애니메이션 세트를 다양한 캐릭터 모델에 적용할 수 있게 해준다.
(리타게팅은 모델의 골격 구조 사이에 연관성을 제공하기 때문에 아바타가 설정된 휴머노이드 모델에만 적용 가능하다.)
[2] Animation Clip
애니메이션 클립은 걷기(Walk), 점프(Jump) 같은 각각의 독립적인 모션을 의미한다.
# 만드는 법
유니티 에디터 내에서 애니메이션 클립을 만들 수 도 있고 Max, Maya, Blender 등 외부 프로그램에서 만들어서 import 할 수 도 있다.
외부 프로그램에서 만드는게 좀 더 복잡한 애니메이션을 만들 수 있기 때문에 유니티에서는 보통 2D, UI 같은 간단한 애니메이션만 만든다고 한다.
참고
# 애니메이션 클립 살펴보기
유니티에 서 제공하는 Newbie & Friends 패키지를 열어보면 Animation Clip을 볼 수 있다.
모델을 선택하면 Inspector 창에서 Rig, Animation, Material 같은 정보를 볼 수 있다
Rig > Animation Type이 Humanoid 인 모델들은 Animation 탭에 아무것도 안나오지만
Rig > Animation Type이 Humanoid가 아니라 Generic인 모델들은
Animation 탭에서 Animation Clip이 추가되어있는 것을 볼 수 있다.
휴머노이드 타입으로 리깅된 3D 모델은 체형이 달라도 애니메이션 클립이 호환될 수 있다.
캐릭터는 Newbie & Friends 패키지 에 있는 Boy 를 사용하지만 애니메이션은 StarterAsset 패키지에 있는 ThirdPerson 애니메이션을 사용해주고 있다.
[3] Animator
Animator 컴포넌트는 Scene에 있는 GameObject에 animation을 assign하고 싶을 때 사용하는 컴포넌트다.
Newbie & Friends 패키지 의 프리팹을 선택해보면
Animator 컴포넌트가 붙어있는 것을 볼 수 있다.
Animator 컴포넌트는 AnimatorController와 Avatar를 설정해줄 수 있는 필드를 가지고 있다.
[4] Animator Controller
Animator Controller 는 여러 애니메이션 클립과 애니메이션 전환을 배치하고 관리할 수 있게 해준다.
다양한 애니메이션이 있고 특정 condition이 발생하면 애니메이션을 스위칭하는 것은 일반적인데, 예를들어 스페이스바가 눌릴 때마다 walk Animation Clip 에서 jump Animation Clip으로 스위칭한다.
애니메이터 컨트롤러에는 사용되는 애니메이션 클립에 대한 참조가 있으며 State Machine를 사용하여 다양한 애니메이션 클립과 이들 사이의 전환을 관리한다.
하나의 Animation Clip만 가지고 있더라도 GameObject에서 사용하려면 꼭 Animator 컨트롤러에 배치해야 한다. GameObject를 animating 시키기 시작하면 (Animation Window를 사용하거나 GameObject에 Animation Clip을 붙이거나 해서) 유니티는 자동으로 Animator Controller를 만든다.
Animator Controller 를 직접 만들고 싶다면, Project window 를 우클릭하고 Create > Animator Controller 하면 된다.
아주 간단한 애니메이터 컨트롤러라면 하나 또는 두 개의 클립을 포함하지만 좀더 고급 애니메이터 컨트롤러라면 메인 캐릭터의 모든 움직임을 위한 휴머노이드 애니메이션이 수십 개 포함되어 있으며 플레이어가 씬 안에서 움직일 때 부드러운 움직임을 표현할 수 있도록 여러 개의 클립을 동시에 블렌딩할 수 있다.
[5] Avatar
유니티의 휴머노이드 모델은 리타게팅, 머슬 정의 와 같은 특수한 기능을 가지는데, 이런 특수한 기능은 휴머노이드 캐릭터를 공통 내부 포맷(common internal format)으로 매핑시키는 Unity의 Avatar 시스템이 있기 때문에 가능한 것이다.
리깅된 캐릭터 모델은 고유의 골격 구조를 가지고 있으며, 그것이 Unity의 일반적인 아바타 포맷에 매핑된다.
이 매핑은 임포트된 캐릭터 모델의 일부로서 아바타 에셋 형식으로 저장된다.
모델의 Rig > Avatar Definition을 보면 Create From This Model로 되어있다
아바타 에셋을 선택하고 Inspector 창에서 Configure Avatar 를 눌러보면
뼈대 매핑을 볼 수 있다.
[6] Avatar Mask
아바타 마스크 는 특정 신체 부위에만 애니메이션을 적용하고 싶을 때 사용한다.
아바타 마스크는 Asset 창이나 프로젝트 창에서 Create > Avatar Mask를 눌러서 만들 수 있다.
마스킹할 부위를 정의할 수 있는데, 초록색은 애니메이션을 적용할 부위, 빨간색은 적용하지 않을 부위다.
[Unity] Animation Clip, Animator, Animator Controller, Avatar (tistory.com)
'게임엔진 > Unity' 카테고리의 다른 글
[Unity] Sprite (스프라이트) 개념 (0) | 2023.08.04 |
---|---|
[Unity] 2D 카메라 범위 제한하기 (0) | 2023.08.03 |
[Unity] 애니메이션 (Animation, Animator, Legacy, Mecanim) (0) | 2023.07.31 |
[Unity] 애니메이터 컨트롤러의 파라미터 조절하기 (0) | 2023.07.31 |
[Unity] 스프라이트 시퀀스 애니메이션 (0) | 2023.07.31 |