KoreanFoodie's Study

#11-4 : 캐릭터 애니메이터 컨트롤러 와 애니메이터 (FSM) 본문

카테고리 없음

#11-4 : 캐릭터 애니메이터 컨트롤러 와 애니메이터 (FSM)

GoldGiver 2022. 7. 10. 17:23

플레이어 캐릭터 애니메이션 설정하기

특정 동작을 할 때 특정 애니메이션이 재생되도록 하는 기능은 애니메이터 컨트롤러와 애니메이터를 통해 가능하다.

먼저 애니메이터 컨트롤러를 생성하자. Project 창에서 생성 가능하다.

애니메이터 창으로 이동해 보자.

이전에 만든 애니메이션 클립들이 뜨게 된다.

특정 동작을 기본 상태로 정의하고 싶을 때는 Set as Layer Default State 로 설정하면 된다.

우클릭 후 Make Transition 을 통해 상태를 전이시킬 수 있다. Any State 상태에서 전환을 할 경우, 특정 조건을 만족하면 무조건 특정 상태로 전이가 된다. Exit 의 경우 상태 머신의 동작이 종료되는 출구를 의미한다.

 

전이가 언제 발동될지의 조건은 애니메이터 컨트롤러의 파라미터를 사용해서 구성하면 된다.

Grounded 는 Bool 로, Dead 는 Trigger 로 설정했다.

Trigger 타입은 특정 값을 할당할 수 없고 트리거를 Set 또는 발동(Invoke) 하는 방식으로 사용한다. Set 을 하면 즉시 true 가 되고 곧바로 false 가 되도록 구현되어 있다.

실습을 위해 Run -> Die 로 Transition 을 하나 만들었다.

HasExitTime 의 경우, 전환 될때 현재 재생 중인 애니메이션 클립이 끝날 때까지를 기다리는지를 결정하는 값이다. 또한 Transition Duration 값을 주면 전환이 부드럽게 이루어질 수 있다. (블렌딩)

마지막으로, Contidionts 값을 조절하여 전환 조건을 설정하면 된다.

 

이제 코드로 이동하자.

현재 상태를 다음과 같이 설정하면 완료된다!

// Animator 선언
private Animator animator;

....

// Update 등의 함수에서 애니메이터 변수 설정
animator.SetBool("Grounded", true);

// 트리거의 경우 SetTrigger 활용
animator.SetTrigger("Die");

 

Comments