언리얼 - 게임 개발

첫 게임 개발 (7) _ 플레이어의 공격 적 AI에 전달하기

earth-star 2024. 6. 21. 00:49

적이 공격을 당해도 감지(시야, 소리, 데미지) 되지 않으면 공격하지 않고 그대로 순찰루트를 도는 것을 공격 받을 때도 공격상태로 돌입하도록 바꾸고 적이 죽은 뒤 일정 시간 후 사라지도록 구현을 해 볼 것이다.
 

 
AIC에 적이 Defeated 되었을 때 만든 이벤트 디스패처를 바인드하여 블랙보드에 State를 Dead로 할당시킨다.

 
BTT_Destroy Task를 만들어 액터를 파괴하는 일을 할당한다.

 
블랙보드 조건을 달고 State가 Dead가 되었을 때 5초가 기다린 뒤 Destroy Task를 불러 액터를 파괴한다.

 
적이 공격받았음을 전달하는 과정에서 좀 헤맸는데 지난번에 플레이어의 X키에 적에게 데미지를 주기위해서 Report Damage Event를 사용하였음을 생각하고 이를 이용하여 해결 할 수 있었다.
위와 같이 적이 데미지를 입었을 때 공격상태로 돌입하게 만들기 위해서 BP_Player의 공격에 Report Damage Event를 추가하여 적이 공격받았음을 인지하도록 한다.

적이 공격받았을 때 공격상태로 바뀌는 모습

 

적이 죽고 일정 시간 후 사라지는 모습

 
추가로 전까지 적을 임시로 플레이어와 같은 캐릭터를 사용하였는데 이번에 새로 에셋을 구해서 적용하였다.
잘 동작함을 볼 수 있다.

다음으로는 체력과 같은 UI 구현을 해 볼 것이다.