
애니메이션 · 약 3분
점프·낙하·착지 전이와 State Alias 정리
Entry와 Alias의 역할을 구분하고, 공중 상태와 애니메이션 완료 조건을 명시적으로 설계합니다.
Wolfgadeok · 업데이트
Entry는 매 프레임 처음부터 도는 시작점이 아니다
상태 머신의 Entry는 초기 진입 상태를 정하는 연결이다. 매 프레임 반드시 Entry부터 모든 상태를 순회하며 포즈를 다시 선택한다고 이해하면 잘못된 모델이 된다. 상태 머신은 활성 상태와 전이 조건을 기반으로 동작하며, 재초기화나 다시 관련성을 얻는 상황에는 별도의 설정도 영향을 줄 수 있다.
점프 구성을 볼 때는 지상 이동, 점프 시작, 공중 반복, 착지처럼 역할을 나누어 읽는다. 이것은 흔한 설계 예시이지 반드시 이 네 상태를 써야 하는 엔진 규칙은 아니다. 짧은 게임이나 다른 이동 방식에서는 더 단순한 구성도 가능하다.
공중 상태와 점프 시작을 구분한다
IsFalling이 참이라는 것은 Character Movement가 낙하 이동 모드에 있다는 뜻이다. 버튼을 눌러 상승하는 중과 절벽에서 떨어지는 중을 모두 포함할 수 있다. 그러므로 IsFalling 하나만 보고 항상 점프 시작 시퀀스를 재생하면 떨어지는 상황에서도 위로 도약하는 모션이 나올 수 있다.
상승 속도나 점프 시작 사실 등 게임의 필요한 정보를 추가해 시작 동작과 공중 반복을 구분한다. 착지는 지면으로 돌아왔다는 사실과 착지 애니메이션의 재생 완료라는 두 조건을 나누어 다룬다. 공중 상태를 단순히 키 입력으로 바꾸지 않는다.

빈 전이 그래프는 자동 완료의 뜻이 아니다
전이 그래프에 조건이 보이지 않는다고 애니메이션이 끝날 때 자동으로 전이되는 것은 아니다. 자동 전이 관련 옵션이 켜져 있는지, 전이 결과가 어떻게 설정되어 있는지, 남은 재생 시간 조건이 있는지를 실제로 확인해야 한다. 화면이 비어 보인다는 이유만으로 동작을 추론하지 않는다.
- Jump → Fall 또는 Land → Move 전이를 선택하고 Details의 자동 전이 설정을 확인한다.
- 자동 전이를 사용하지 않는다면 해당 시퀀스의 남은 시간 등 명시적인 완료 조건을 구성한다.
- 착지 전에 점프 시퀀스가 끝나는 경우와, 시퀀스가 끝나기 전에 낮은 지형에 착지하는 경우를 각각 시험한다.
- 반복 시퀀스와 단발 시퀀스의 Loop 설정을 확인한다. 끝나야 하는 동작이 반복되도록 되어 있지 않은지 본다.
- 전이 블렌드가 동작의 중요한 순간을 잘라 내거나 착지 반응을 지나치게 지연하지 않는지 확인한다.
State Alias는 공유 전이를 정리한다
Locomotion과 Land에서 모두 같은 공중 상태로 갈 수 있다면 State Alias로 출발 상태를 묶어 공통 전이를 표현할 수 있다. Alias 자체가 새로운 애니메이션을 재생하는 상태는 아니다. 어떤 상태를 대표하도록 체크했는지와 그 Alias에서 나가는 전이를 함께 읽어야 한다.
공유한 전이는 조건과 전이 설정도 공유한다. 특정 출발 상태만 다른 블렌드 시간이나 다른 조건이 필요하다면 억지로 하나의 Alias에 묶지 말고 별도 전이를 둔다. Global Alias는 나중에 추가한 상태까지 영향을 받을 수 있으므로 죽음·피격 같은 예외 상태에서 예상치 못한 탈출이 일어나지 않는지 특히 점검한다.
