애니메이션 상태
개요
애니메이션 상태는 HFSM의 결정에 따라 이동 및 회전을 실행합니다. 즉, HFSM은 무엇 이 필요한 작업(예: X 지점으로 이동, 적 Y를 살펴보기)을 결정하고 애니메이션 상태는 방법 을 통해 취해진 결정을 달성합니다.
애니메이션 상태는 에셋입니다. AI 에이전트는 AIConfig
에서 여러 가지 다른 애니메이션 상태를 구성할 수 있지만 한 번에 하나의 활성 애니메이션 상태만 구성할 수 있습니다.
애니메이션 상태 간 전환은 AI
컴포넌트에서 수행되며 현재 특정 NavMesh 링크를 통과하는 것과 관련이 있습니다. 기존 스위칭 메커니즘을 새로 추가하거나 확장할 수 있습니다(부분 메서드 구현에 대해서 AI.User.cs
참조).
애니메이션 상태 이동
기본 애니메이션 상태는 이동
입니다. 이름에서 알 수 있듯이 NavMesh에서 에이전트를 이동하는 데 사용되며 표준 회전 동작을 수행합니다. 이 에셋에 대해 대시 점프를 켤 수 있으므로 특정 상황에서 에이전트가 걷기 대신 점프를 수행하여 이동 속도를 높일 수 있습니다.
Jump 애니메이션 상태
NavMesh 에이전트가 Jump 링크를 통과할 때 Jump
애니메이션 상태가 활성화되며, NavMesh Links 섹션에서 점프 링크에 대한 자세한 내용을 확인할 수 있습니다. 이 애니메이션 상태는 에이전트에서 필요로 하는 특수한 이동 동작이 필요합니다.
- 기하 구조의 가장자리를 향해 실행됩니다(현재 에이전트 위치와 링크 시작 사이의 일정한 거리를 가정함).
- 점프 그리고,
- 반대쪽으로 향합니다.
에이전트가 착륙한 후 Jump
애니메이션 상태가 종료되고 기본(Move
) 애니메이션 상태로 전환됩니다.
JumpPad 애니메이션 상태
Jump
상태와 유사하지만 이번에는 에이전트가 다음을 수행해야 합니다.
- 미리 정의된 위치인
JumpPad
에 도달 JumpPad
가 활성화될 때까지 대기JumpPad
목적지를 향해 밀기
이를 통해 AI는 긴 JumpPad
점프를 수행할 수 있습니다.
Drop 애니메이션 상태
드롭 링크를 통과할 때 활성화되는 간단한 애니메이션 상태 - NavMesh 링크 섹션에서 드롭 링크에 대한 자세한 내용을 확인할 수 있습니다.
가능한 확장 예제
다음은 FPS 템플릿에서 구현되지 않은 애니메이션 상태의 몇 가지 예입니다:
Fly
: 드론 및 기타 지상 요원들은 NavMesh 경로 찾기를 참조용으로 사용할 수 있지만, 이동 동작은 다릅니다. 즉, 커팅, 천장 기준의 상하 이동 등RocketJump
: 로켓 점프를 성공적으로 수행하기 위해 실행되어야 하는 매우 구체적인 행동입니다.WallJump
: NavMesh가 아닌 사용자 정의 데이터 집합(예: 벽에 배치된 점)을 사용하여 이동을 계산하는 특정 유형의 적.