공부 기록

[UE4] AI Perception 사용 방법 본문

Unreal/Blueprint

[UE4] AI Perception 사용 방법

혜멘 2022. 5. 26. 11:51

AI Perception 이란?

인공지능이 특정 감각을 통해 사물을 인지할 수 있도록 하는 기능으로, 각각의 Sense를 통해 Enemy(ex. 플레이어) 혹은 일반 오브젝트를 감지할 수 있다. 사용 방법은 아래 이어서 설명하도록 하겠다.

 

#1 AI Controller에 AI Perception 컴포넌트 추가

사물을 감지할 AI 캐릭터의 컨트롤러에 AIPerception 컴포넌트를 추가해준다.

이때 폰이 아니라 컨트롤러에 추가해주는 것을 잊지 말자.

 

 

#2 AI Perception 디테일 설정

Sense Config 

  • Sight : AI의 시야에 들어오는 사물 인지
  • Hearing : 소리를 내는 사물 인지
  • Touch : 충돌한 사물을 인지
  • Damage : 대미지를 입힌 물체를 인지
  • Predicton : 상대 플레이어의 위치를 예측한 값을 인지
  • Team : 같은 팀원을 인지 (?)

Dominant Sense

  •  여러개의 Sense를 이용해 인지할 경우 가장 우선이 되는 Sense를 설정

 

 

Detection by Affiliation

  • 어떤 유형을 감지할 것 인지 설정, 복수 선택 가능
  • Enemies : 서로 다른 Team을 감지. 팀은 컨트롤러에 의해 조종되는 폰에만 설정 가능하며 디폴트는 NoTeam 임
  • Neutrals : 디폴트 상태의 모든 Source를 감지
  • Frendlies : 같은 Team을 감지 (안써봐서 정확하진 않음)

 

#3 인지할 사물에 AIPerceptionStimuliSource 컴포넌트 추가

Stimuli 컴포넌트를 가지고 있어야만 AI Perception에 의해 감지될 수 있다.

이 컴포넌트는 감지될 액터에 바로 붙여주면 된다.

 

 

#4 AIPerceptionStimuliSource 디테일 설정

Auto Register as Source 를 활성화하여 AI가 감지할 수 있는 Source로 동작하게 하고, (BP에서 원하는 타이밍에 동작핳 수 있도록 하는 함수도 있는 듯 하다) 컴포넌트가 부착된 액터가 AI의 어떤 Sense를 통해 감지될 것 인지 또한 정해준다.

 

시야를 통해 감지될 예정

 

 

이렇게 하면 Get Perceived Actors 등의 함수를 통해 현재 AI에 감지된 액터 배열을 얻을 수 있다!

아래는 비헤이비어 트리의 Task 에서 AI Perception 기능을 활용하는 예시이다. 현재 감지된 액터 중 더 가까운 것을 Target 으로 설정하는 방식 등으로 활용할 수 있다.

 

 

 

 

Comments