애니메이션 2
애니메이터 컨트롤러의 스테이트 머신
애니메이터 컨트롤러 = 스테이트 머신 + 애니메이션 클립
애니메이터는 컴포넌트가 아닌 '애셋'이다. 따라서 게임 오브젝트에 직접 적용할 수 없고 애니메이터의 프로퍼티에 있는 애니메이터 컨트롤러로 링크를 설정해 사용한다.
애니메이터를 만들고 애니메이터 컴포넌트에 연결하는 방법
◎ 스테이트 머신
스테이트 머신은 동작 표현 방법의 하나이다. FSM(유한 상태 머신)이라 불리는 모델을 바탕으로 기호를 사용해 동작을 표현할 수 있는 것이 큰 특징이다. 유니티에선 애니메이션 동작의 표현을 위해 스테이트 머신을 사용한다.
Animator 창에서는 표현된 상태를 잇는 화살표 기호로 상태간의 트랜지션, 즉 전이를 표현한다.
컨트롤러를 만들면 처음 시작은 Entry이며 이 상태에서 빈 Empty State를 추가하면 Entry -> New State 사이의 화살표가 생긴다
스테이트 인스펙터 창 기능
Motion : 애니메이션 클립
Speed : 재생 속도 (1.0이 기본 속도)
Multiplier : 재생 속도에 애니메이션 파라미터의 값을 곱한다.
Mirror : 애니메이션의 좌우 반전
Cycle Offset : 반복 재생 시키는 경우의 시작 위치 (재생 시간의 비율은 0과 1사이)
Foot IK : 스테이트 안에 IK 계산에서 발이 땅에 붙도록 자동 보정
Write Defaults : 스테이트를 시작할 때 키 없는 프로퍼티에 기본값을 설정
◎ 애니메이션 클립
애니메이션 클립은 컴포넌트가 아닌 애셋이다. 따라서 단독으로는 다룰 수 없다.
State의 인스펙터에 애니메이션 클립 애셋으로 링크를 연결해 그 스테이트의 상태일 때 애니메이션 클립이 재생되는 구조이다.
애니메이션 클립을 해당 State에 적용하는 방법은 간단하다. hierarchy 창에서 해당 animation 클립을 드래그앤 드랍으로 Motion에 넣어주면 된다.
아니면 아직 스테이트를 생성하지 않은 경우에는 Animator 창에서 오른쪽 버튼을 클릭해서 [From Selected Clip]을 선택하면 애니메이션 클립이 연결된 State를 생성할 수 있다.
애니메이션 재생을 현재 Idle 상태에서 걷기로 바꾸고 싶다면 Idle 스테이트에서 Walk 스테이트로 화살표(트랜지션)를 이어준다.
참고 자료;
유니티 게임 프로그래밍 바이블 (김은철, 유세라 옮김 ; 위키북스)
'Engine > UNITY' 카테고리의 다른 글
[Unity] 유니티의 렌더 파이프라인 (Render Pipeline) (0) | 2021.10.08 |
---|---|
[유니티 그래픽스 최적화 스타트업] 렌더링 파이프라인 (0) | 2021.09.13 |
[Unity] 애니메이션 1 <애니메이터 컨트롤러> (0) | 2021.04.25 |
[Unity] Timer 만들기 (2) - 버튼 이미지 (0) | 2021.03.14 |
[Unity] Timer 만들기 (1) - Text로 시간 표현 / Button (0) | 2020.07.02 |