적이 단순히 쫓아오는 AI를 구현해봤고 이번에는 적이 일정 범위 안에서 보기, 듣기, 데미지로 플레이어를 인지하고 반응하는 AI를 구현할 것이다.
AIC에서 AIPerception 컴포넌트를 추가한다.
디테일에서 감지 환결성정배열을 추가하여 시야, 듣기, 데미지 3개를 선택하고 각 범위를 조정한다.
AI 디버깅 모드에서 보는 적 AI 인지의 범위이다. 노랑색이 듣기, 초록색이 시야, 빨강이 데미지이다. 저 범위에서 상호작용할 시 적이 인지한다.
Enum을 추가하여 위와 같이 None, Sight, Hearing, Damage를 만든다.
AIC_Controller에서 CanSenseActor 함수를 만든다. AIPerception에서 감지한 인지들을 Select로 구분하여 위에서 만든 배열값과 비교하여 구분하는 함수이다.
AIPerception에서 Perception이벤트 업데이트 시 함수를 추가한다. 인지된 감각이 Sight, Hear, Damage인지를 구분하여 그에 따른 각각의 반응을 따로 함수화 하였다.
적이 소리에 반응하게 만들기 위해 플레이어에 소리를 만드는 F키와 데미지를 주는 X키를 할당하였다. 소리를 발생시킬 때 이미터를 추가하여 불꽃이 발생하도록 하였다.
적이 시야로 인지했을 때 공격을 하도록 설정하였다.
적이 듣기로 인지했을 때 소리가 발생한 지역으로 이동하도록 설정하였다.
적이 데미지를 입었을 때 공격을 하도록 설정하였다.
적이 범위 밖에서 소리를 인지하지 못하고 범위 안에서는 반응하고 공격상태로 전환되는 것을 볼 수 있다.
'언리얼 - 게임 개발' 카테고리의 다른 글
첫 게임 개발(8) _ 적과 오버랩시 데미지 (0) | 2024.06.21 |
---|---|
첫 게임 개발 (7) _ 플레이어의 공격 적 AI에 전달하기 (0) | 2024.06.21 |
첫 게임 개발 (5) _ 적 공격 AI구현 (0) | 2024.06.19 |
첫 게임 개발 (4) _ 적 이동경로 AI구현 (0) | 2024.06.19 |
첫 게임 개발 (3) _ 넉백 및 패배시 애니메이션 구현 (1) | 2024.06.18 |