개발일지

07-24~ 25 Enemy Golem, C++, EliteEnemy Base화 중

ksw8596 2024. 7. 25. 17:12

Controller를 나눔 (Elite Enemy Tree, Enemy Tree)

-> 트리가 다르게 적용되기 때문이다.

FEnemyCharacterBase.cpp

 

Rise

-> Stop이 켜져있는경우 행동트리에서 실행되도록 하는 함수

 

FEnemyCharacterBase.cpp

 

- OnHealthChanged함수에서 AISense_Damage를 받아와 Player가 데미지를 주었을 때 감지하도록 설정

- bStop을 추가하여 Stop상태인지 체크

-> Stop은 Enemy가 움직이지 않은 Enemy, 건물형 Enemy같은 경우를 만들기 위해 사용한다.

FData.h
FEnemyAIController.cpp

AIController OnPossess

- Enemy가 Stop상태일경우 Stop상태를 실행

 

FEnemyAIController.cpp

 

AIContoller

-상태 변경 값들을 함수로 변경

 

FEnemyAIController.cpp

 

AIController

- PerceptionSystem에 DamageConfig를 추가

- 각각의 System을 함수로 하여 값을 받아오게 설정

 

BT_EliteEnemy

Run Tree를 통해서 서브트리를 생성하여 정리하였다.

 

- Elite이상 Enemy부터는 Stopping을 추가

- Attacking부분에 가만히있는 몬스터가 깨어나는 효과를 주기위해 Rise를 추가

 

BT_SubTree_Elite_MeleeAttack

 

EliteMeleeEnemy

- SkillAttack 추가

- RandomFloat 추가

 

FBTS_RandomFloat.cpp

 

RandomFloat 추가

-> 0~1사이의 값을 랜덤하게 1초마다 갱신하고 Blackboard안 RandomKey안에 들어가게끔 만들었다.

 

 

BT_SubTree_Elite_RangeAttack

EliteRangeEnemy

- SkillAttack 추가

- Distance에 따른 공격 추가

- EQS 노드 제거

 

 

FBTT_ClearFocus.cpp

 

ClearFocus 추가

-> AIController에 부여된 Focus를 초기화 해준다.