본문 바로가기
프로그래밍/Unreal Engine

[UE] 언리얼 엔진 - 애니메이션 스테이트 머신

by Sik.K 2023. 11. 16.

[UE] 언리얼 엔진 - 애니메이션 (tistory.com)

 

[UE] 언리얼 엔진 - 애니메이션

3차원 환경에서 애니메이션은 기본적으로 키프레임 애니메이션으로 이뤄져 있다. [Graphics] 키프레임 애니메이션 (tistory.com) [Graphics] 키프레임 애니메이션 키프레임 애니메이션이란, 컴퓨터 그래

eunsikk.tistory.com

 

언리얼에서 애니메이션을 만들 때, 애니메이션 블루프린트를 사용한다고 했다. 내부 구조는 현재 재생 중인 애니메이션을 최종 모션에 출력하는 형태로 이뤄져 있다.

 

그렇다면 여러 애니메이션을 연결해서 상황 별로 사용하고 싶을 땐 어떻게 할까?

 

그럴 때는 애니메이션 스테이트 머신을 사용한다.

 


 

 

애니메이션 스테이트 머신

 

 

FSM이라는 것이 있다. 유한 상태 기계라는 말인데 객체가 가질 수 있는 상태를 구분하고, 그 상태에 맞는 행동을 하게 하는 구조이다.

 

애니메이션 스테이트 머신은 이 FSM과 유사하다. 입력 지점에서 시작해서 애니메이션 블루프린트의 값을 검사하고 특정 상태에 맞게 애니메이션을 출력한다.

 

 

애니메이션 스테이트 머신 생성

 

 

새롭게 생성된 스테이트 머신은 엔트리라는 진입점에서 애니메이션을 시작한다.

 

애니메이션 스테이트 머신 엔트리

 

애니메이션의 시작점은 이곳이라는 말이다. 여기서 원하는 애니메이션 에셋을 테이블에 올리면 노드로 변환이 되고, 엔트리에서 시작하는 경로를 만들어 주면 된다.

 

 

애니메이션 스테이트 머신 화면

 

 

이렇게 만들어진 애니메이션 스테이트 머신은 각 상태를 오갈 수 있는 조건이 있다. 가령 위 사진에서 1d는 1차원 블렌드 스페이스를 의미한다. 블렌드 스페이스는 추후에 포스팅하겠지만, 현재 1d에서 Unarmed_JumpStart로 향하는 화살표는 상태의 전환 가능 방향을 가리킨다.

 

저 화살표 내부에는 어떤 조건에서 애니메이션이 변환 가능한지에 대한 조건문이 들어가 있고 그 내용은 다음과 같다.

 

상태 변환 조건

 

In Air는 애니메이션 블루프린트에서 사용하는 변수의 이름이고, 해당 변수의 값에 따라 다음 애니메이션으로 전환이 정해진다.

 

이처럼 일반적인 FSM과 같은 애니메이션 스테이트 머신은 상태에 따른 애니메이션의 적용 가능이라는 점에서 편리한 기능이다. 다만 완벽한 기능은 아니기 때문에 다음으로 포스팅 할, 블렌드 스페이스, 애니메이션 몽타주, 애니메이션 캐싱, 애님 노티파이 등의 기능이 더 들어가야 보완이 된다.

댓글