[Unreal_블루프린트]#31-3_Environmental Querying System(EQS)
Unreal 블루프린트 개발 중 "Behavior Tree" 구현을 진행합니다.
"블루 프린트" 활용에 대한 내용입니다.
Goal
- BTService_Around : AI의 상태에 따라서, Behavior Key(상태 열거형) 값을 변경합니다.
- BTService_StrafeAround : Behavior Key::Strafe 일 때, 실행되는 BTService입니다.
- BTService_StrafeAround::GetStrafeQuery는 AI : Player의 거리에 따라서 EnvQuery_Left or Right 수행 여부 결정
- GetStrafeQuery 함수의 반환 EnvQuery를 최종적으로 실행시킵니다.
BTService_Around
1. 블루프린트 노드
- AI의 공격 범위에 Player가 속하지 않는 경우 Behavior Key 값은 StrafeAround로 설정됩니다.
EnvQuery_StrafeLeft & EnvQuery_StrafeRight
- 각각의 EnvQuery를 만드는 과정과 세부 구현은 위 링크를 참조해주세요!
1. EnvQuery_StrafeLeft
1. EnvQuery_StrafeRight
BTService_StrafeAround
1. Get Strafe Query 함수
- AI 기준 오른쪽 방향벡터와 AI -> Player 벡터의 내적을 통해 "Strafe" 방향을 결정하고 해당 EnvQuery를 반환합니다.
2. Strafe Around 커스텀 이벤트
- 이벤트 바인딩 : 결과 값에 따른 Delegate(대리자) 함수를 호출합니다.
- AI Move To : AI 객체를 지정 위치로 이동시킵니다.
3. Receive Activation AI 이벤트
- Player를 인식한 상태에서, Focal Point를 Player로 설정하고 Player 기준으로 StrafeAround를 수행합니다.
* Receive Deactivation Ai는 생략합니다. Activation의 반대 기능을 수행하면 되겠죠?
4. Receive Tick AI 이벤트
결과 화면
1. Behavior Tree
2. 결과 영상
'게임개발 > Unreal 블루프린트' 카테고리의 다른 글
[Unreal_블루프린트]#32_AI Patrolling Path using Spline (0) | 2022.10.11 |
---|---|
[Unreal_블루프린트]#31-2_Environmental Querying System(EQS), EnvQueryContext (0) | 2022.10.10 |
[Unreal_블루프린트]#31-1_Environmental Querying System(EQS), Grid (0) | 2022.10.05 |
[Unreal_블루프린트]#30_Behavior Tree, Tracing (1) | 2022.10.05 |
[Unreal_블루프린트]#29_Multiple Damage Problem (0) | 2022.09.29 |