1. 개발 현황
1. Blend State 제작
- 'Direction', 'Speed'에 따라 Animation이 Blend 되도록 설정
2. Animation 동작 추가
- '기본 모션'과 '무기 착용 모션' 간 선택 로직 추가
3. EQS(Environment Queries System) 제작
3.1. EQS_Strafe
- 플레이어 반경 순회 선택 로직
3.2. EQS_FindCover
- 지형 탐색 로직
3.3. EQS_Context_AttackTarget (Parent Class: Env Query Context Blueprint Base)
- EQS 동작 시 타겟 전달 로직
4. Behavior Tree 내 EQS 활용
4.1. Behavior Tree Task 추가
4.1.1. BTT_MoveToIdealRange
- Parameter로 설정한 Player 주변 반경으로 이동
4.2. Behavior Tree Decorator 추가
4.2.1. BTD_IsWithinIdealRange
- Target과 거리 측정
4.3. Tree 내 로직 추가
4.3.1. Strafe
- 'EQS_Strafe' 활용, 플레이어 주변 맴도는 로직 구현
4.3.2. FindCover
- 'EQS_FindCover' 활용, 주변 지형과 상호작용하는 로직 구현
2. 상세 개발 내용
1. Blend State 제작
- 'Direction', 'Speed'에 따라 Animation이 Blend 되도록 설정
2. Animation 동작 추가
- '기본 모션'과 '무기 착용 모션' 간 선택 로직 추가
1) 'Direction' & 'IsFocusingTarget' value update logic 추가
2) 'Idle', 'Walk/Run' State 내 Animation 동작 방식 추가
3. EQS(Environment Queries System) 제작
3.1. EQS_Strafe
- 플레이어 반경 순회 선택 로직
3.2. EQS_FindCover
- 지형 탐색 로직
3.3. EQS_Context_AttackTarget (Parent Class: Env Query Context Blueprint Base)
- EQS 동작 시 타겟 전달 로직
- 탐색 예시 1: Circle 방식 (1 & 3번 방식 조합)
- 탐색 예시 2: Grid 방식 (동작 예시)
- 탐색 예시 3: Grid와 Pathfinding & Trace & Distance 조합 방식 (2 & 3번 방식 조합)
4. Behavior Tree 내 EQS 활용
4.1. Behavior Tree Task 추가
4.1.1. BTT_MoveToIdealRange
- Parameter로 설정한 Player 주변 반경으로 이동
4.2. Behavior Tree Decorator 추가
4.2.1. BTD_IsWithinIdealRange
- Target과 거리 측정
- 방법 1: Controller와 거리 비교
- 방법 2: BlackBoard에 저장된 값 응용
4.3. Tree 내 로직 추가
4.3.1. Strafe
- 'EQS_Strafe' 활용, 플레이어 주변 맴도는 로직 구현
- 활용 예시
4.3.2. FindCover
- 'EQS_FindCover' 활용, 주변 지형과 상호작용하는 로직 구현
+) 현재 Tree 구조
3. TODO
- Enemy Type
4. 참고자료
https://docs.unrealengine.com/4.27/en-US/PythonAPI/class/EnvQueryContext_BlueprintBase.html
unreal.EnvQueryContext_BlueprintBase — Unreal Python 4.27 (Experimental) documentation
resulting_location_set (Array(Vector)):
docs.unrealengine.com
EQS Node Reference: Contexts
Describes how Contexts are used within Tests and Generators in the EQS system.
docs.unrealengine.com
https://www.youtube.com/watch?v=Oy_LojjRiWo&list=PLNwKK6OwH7eW1n49TW6-FmiZhqRn97cRy&index=4
'--------게임만들기-------- > |Unreal|' 카테고리의 다른 글
[Unreal] Day 11 - 반복 개발 (2) | 2024.06.30 |
---|---|
[Unreal] Day 10 - Enemy AI (Enemy Type) (0) | 2024.06.29 |
[Unreal] Day 8 - Enemy AI (Perception 구현) (0) | 2024.06.25 |
[Unreal] Day 7 - Black Board & Behavior Tree State 구현 (0) | 2024.06.25 |
[Unreal] Day 6 - AI, Patrol Route 구현 (패트롤) (0) | 2024.06.23 |