Rotation
개요
AIRotation
은 FPS 게임의 복잡해 보이는 동작을 시뮬레이션하는 데 사용되는 컴포넌트입니다. 기본적인 목표는 플레이어가 1인칭 뷰(예: 킬 카메라 또는 리플레이)에서 AI 에이전트의 플레이 스타일을 볼 때에도 해당 에이전트의 룩 동작을 기반으로 즉시 인식하지 못하도록 실제 룩 동작을 에뮬레이트하는 것입니다.
물리 스프링 모델은 회전을 구동하고 인간과 같은 행동을 만드는 데 사용됩니다. AIRotation
업데이트는 애니메이션 상태 내에서 호출됩니다. 스프링 모델은 성능 효율적입니다. Quantum에서 고정된 델타 시간 덕분에 스프링 파라미터는 시뮬레이션 시작 시 한 번만 계산되고 회전 업데이트는 몇 가지 곱셈으로만 이루어집니다. 스프링 설정을 조정하면 편안한 모바일 회전부터 PC 플레이어의 하드코어 회전까지 다양한 모양 동작이 발생합니다. AIConfig
에서 AIRotation
관련 설정을 조정할 수 있습니다.
실행 흐름
AIRotation
동작의 실행 흐름은 다음과 같습니다.
- 대상 회전이 현재 회전 유형에 따라 선택됩니다.
- 목표 회전은 분산 매개변수 및 검색 동작의 한계 내에서 무작위화됩니다.
- 목표 회전은 모든 틱마다 스프링 모델에 공급되며, 그러면 해당 틱에 대해 수행할 실제 회전이 반환됩니다.
- 목표 회전이 주기적으로 재계산되므로 동일한 정적 대상을 장시간 바라보더라도 외관이 완전히 일정하지 않습니다.
타입
몇 가지의 회전 타입이 지원됩니다:
Target
: 블랙보드에서Target
으로 설정된 객체를 확인합니다. 속도 예측이 가능하므로 봇이 목표 속도를 기준으로 목표보다 먼저 조준합니다.Forward
: 이동 속도의 방향을 봅니다. 봇이 경로를 따르고 있고PredictForwardLook
이 활성화되어 있는 경우, 봇은 코너를 돌기 전에 앞을 볼 수 있습니다.Search
:Forward
와 동일하지만 에이전트는 지정된 검색 각도를 기준으로 왼쪽과 오른쪽을 봅니다.Point
: 블랙보드에서FocusPoint
로 설정된 포인트를 봅니다.Direction
: 블랙보드에서FocusDirection
으로 설정된 방향을 봅니다.Destination
: 블랙보드에서Destination
로 설정된 지점을 봅니다.SearchDiretion
:Direction
과 같지만 검색 동작이 있습니다.