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

https://docs.unrealengine.com/4.27/en-US/InteractiveExperiences/ArtificialIntelligence/EQS/EQSNodeReference/EQSNodeReferenceContexts/

 

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

1. 개발 현황

1. Perception 구현

1.1. AI Perception 추가 (AIC_Enemy_Base)

1.2. Perception Updated 시 Event 추가

- HandleSensedSight

- HandleSensedSound

- HandleSensedDamage

1.3. Black Board 내 변수 추가

- State (Enum)

- Point Of Interest (Vector)

1.4 Behavior Tree 내 State 추가

- Investigating State

 

2. 상세 개발 내용

1. Perception 구현

1.1 AI Perception 추가 (AIC_Enemy_Base)

1.2 Perception Updated 시 Event 추가

- HandleSensedSight

- HandleSensedSound

- HandleSensedDamage

 

1.3. Black Board 내 변수 추가

- State (Enum)

- Point Of Interest (Vector)

응용 예시는 HandleSensedSound 함수 참고

1.4 Behavior Tree 내 State 추가

- Investigating State

- 전체 동작

 

3. TODO

- Environment Query System(EQS) 추가

 

4. 참고자료

https://www.youtube.com/watch?v=gsyZdKYAT_4&list=PLNwKK6OwH7eW1n49TW6-FmiZhqRn97cRy&index=3

1. 개발 현황

1. 가속 동작오류 개선 (BP_Enemy_Base)

2. Behavior Tree State 추가

3. Sword 소환 및 제거 (BP_Enemy_Base)

4. Behavior Tree 관리 (BT_Enemy_Base)

2. 상세 개발 내용

1. 가속 동작오류 개선 (BP_Enemy_Base)

Use Fixed Braking Distance for Paths 옵션을 disable하여, Path간 가속도로 인한 딜레이를 줄임

2. Behavior Tree State 추가

 

3. Sword 소환 및 제거 (BP_Enemy_Base)

4. Behavior Tree 관리 (BT_Enemy_Base)

 

- 테스트

 

3. TODO

- Perception

https://www.youtube.com/watch?v=gsyZdKYAT_4

4. 참고자료

- Patrolling & States

https://www.youtube.com/watch?v=WFV5IewGks8&t=965s

+ Recent posts