[UE5] State Machine

kkado·2024년 4월 21일
0

UE5

목록 보기
37/63
post-thumbnail

State machine (상태 기계)는 컴퓨터 프로그램뿐만 아니라 전자 논리회로를 설계하는 데 쓰이는 모델이다.

이 모델의 특징은 여러 개의 상태 (state)가 존재한다는 것이며, 유한 개가 있을 수 있고 무한 개가 있을 수 있지만 실생활 또는 게임 내에서는 대부분 유한 개의 상태를 가지기 때문에 유한 상태 기계 (Finite State Machine) 이 일반적이다.

그리고 모델 내에서 한 번에는 반드시 하나의 상태만을 가져야 한다. 상태를 여러 개 가지거나 어떤 상태도 가지지 않을 수는 없다. 그리고 상태 간에 전환되는 것을 전이, Transition이라고 한다.

지하철 개찰구의 동작을 간단하게 State machine으로 나타낸 것이며 보통 이렇게 state를 표시하고 화살표로써 전이를 표시한다.


State Machine in UE

언리얼엔진에는 캐릭터의 상태에 따라 다양한 애니메이션을 적용하는 데 State machine을 사용할 수 있도록 내장 기능이 존재한다. 애니메이션 블루프린트에서 State machine을 손쉽게 만들 수 있다.

우클릭으로 State를 만들 수 있고, Entry는 루트의 역할을 한다. 특정한 state에 연결함으로써 초기 상태를 설정할 수 있다. State끼리 드래그를 통해 서로 이어주면 전이를 설정할 수 있다. A -> B 라고 하면 현재 상태가 A일때 어떤 조건이 만족되면 B로 전이된다는 것을 설정할 수 있다.

화살표를 더블클릭하여 간단히 전이 조건을 설정할 수 있다.

State를 더블클릭하면 이 상태일 때 어떤 애니메이션을 적용할 지에 대한 output animation pose를 설정할 수 있으며, aniamtion graph를 구성하듯이 똑같이 구성할 수 있다.


Character movement -> Is Falling 함수를 통해서 캐릭터가 공중에 떠 있는지 정보를 통해 IsAirborne 변수를 컨트롤할 수 있고, 이를 이용해서 서 있는 애니메이션과 점프 애니메이션 간의 전환을 통해 점프할 때 자연스러운 애니메이션을 구현할 수 있다.

profile
베이비 게임 개발자

0개의 댓글