DevRookie
Unreal
Engine
Perception
2020.02.29
By TonyChoiMS
AI Perception
Sight Perception
Hering Perception
Damage Perception
여담 & 참고자료
Index
01
02
03
04
05
AI Perception
왜 Perception을 선택했는가?
지각 (Perception)
- 자극에 대응하는 차별 반응의 일종
주로, 센서(눈, 귀 등)에 의한 정보의 취득, 가공, 재구성
- 지각은 환경 내의 사물을 인지하는 일
* 무엇인가의 존재를 발견(Detection)하는 단계.
그것이 무엇인지를 명확하게 알게(Recognition)되는 단계까지 포함.
감각 신호의 외부 원인에 대해 추론하는 것까지를 포함.
Perception란?01
5
감각 (Sensation)
- 자극에 의해 생기는 의식의 체험
1. 외부로부터 받아들이는 감각의 종류 : 촉각, 후각, 미각, 청각, 시각(오감)
- AI Perception Properties
- AI Sight Perception
- AI Hering Perception
- AI Damage Perception
- AI Prediction
- AI Team
- AI Touch
Perception란?01
6
언리얼 엔진에서는 AI가 실항할 로직에 대한 결정을 내리는 데 사
용할 수 있는 도구들이 있습니다.
1. Behavior Tree (Blackboard)
2. EQS (Environment Query System)
3. AI Perception
AI Perception01
4
- 인공지능이 다양한 행동을 취하기 위해선 각각의 상황에
맞는 알림을 줄 수 있어야 하는데, 이 때 사용되는 것 중 하나
가 AI Perception입니다.
- AI Perception은 Player Controller가 없는 Actor가 특정
행동을 하는데 필요한 자극(Perception)을 제공하여 더 생동감
있는 AI를 제작하기 위해 도움을 주는 AI Controller Actor에
존재하는 컴포넌트(Component) 입니다.
AI Perception01
4
Sight Perception
시야 지각
Sight Perception02
8
Sight Perception이란?
- AI 캐릭터가 Level에 있는 특정 액터를 ‘보는’ 행위를 가리킵니다.(시각)
- 여기서 특정 액터란, Sense에 있는 파라미터 값에 따라 조건이 충족
되는 액터를 말합니다.
- 액터가 AI의 시력 반경에 들어가면, PerceptionSystem에서 업데이트
신호를 보내고 발견한 해당 액터를 알려줍니다.
Sight Perception02
10
AI Controller를 상속받는
블루프린트 생성
Sight Perception02
11
Sight Perception02
12
이전에 생성한 AIController를 상속
받은 BP에 AIPerception 컴포넌트를
추가합니다.
Sight Perception02
13
Sight Perception02
14
Implementation : 구현 Sense
Sight Radius : 시야 최대 반경
Lose Sight Radius : 시야 상실 반경
PeripheralVisionHalfAngleDegrees :
주변 시야 각도
Detection by Affiliation : 센스를 발동할 소속 선
택.
Sight Perception02
15
Auto Success Range from Last Seen
Location : 마지막 보인 위치로부터 자동 성공 거
리
Max Age : 센스에서 받은 자극이 잊혀지는데 걸
리는 최대 시간.
Starts Enabled : 활성화 시 시작
Dominant Sense : 우세 센스 지정
Perception Events02
16
OnPerceptionUpdated : Perception System에
등록된 모든 Actor들에게 이벤트 신호를 보냄.
액터 배열을 반환합니다.
OnTargetPerceptionUpdated : Perception
System이 업데이트를 알리는 (단일)액터와 AI
Stimulus 구조체를 반환(추가 정보를 검색)
OnComponentActivated : Perception 컴포넌
트가 Active 상태가 되었을 때 호출되는 이벤트
OnComponentDeactivated : Perception 컴포
넌트가 Deactive 상태가 되었을 때 호출되는 이
벤트
Sight Perception02
17
최초 BeginPlay 이벤트에서 현재 컨트롤중인
Pawn을 변수에 저장합니다.
Sight Perception02
18
팀 정보를 받아와서 피아 식별을 시도합니다.
Sight Perception02
19
적군일 경우 장비 장착을 한 뒤 타겟이 될 Actor를 지정해서 해당 위치로
이동합니다.
Sight Perception02
20
Perception(자극) 이벤트를 발생 시킬
Actor에 AIPerception Stimuli Source 컴
포넌트를 생성합니다.
여기서 Actor는 플레이어가 컨트롤 하는
캐릭터가 될 것입니다.
Sight Perception02
21
Stimuli Source Component
소유 액터에게 Perception System 내 지
정된 센스에 대한 자극 소스로 등록
(Register for sense) 또는 해제
(Unregister from sense)하는 방법을 제
공.
Sight Perception02
22
해당 Actor가 AI의 시야에 들어왔을 때
OnTargetPerceptionUpdated 이벤트를
발생시킬 수 있도록
AI Perception Stimuli Source의 디테일
패널에서 Register as Source for Sense
배열에 AISence_Sight를 추가해서
Sight Perception02
23
OnTargetPerceptionUpdated에서는
AIStimulus에 대한 정보도 받아 올 수 있
기 때문에 디테일한 AI 설계를 위해서 필
요할 경우 사용할 수 있습니다.
Sight Perception02
24
Hering Perception
청각 지각
Hearing Perception03
26
Hearing Perception의 경우는 PerceptionSystem에서 제
공하는 Make Noise함수를 호출해줘야 Hearing
Perception을 업데이트 할 수 있습니다.
Hearing Perception03
27
AI Hearing 센스는 Report Noise Event에 의해 생성 된 사운드를
감지하는 데 사용할 수 있습니다.
Damage Perception
피해 지각
Damage Perception04
29
AI가 Event Any Damage, Event Point Damage 또는
Event Radial Damage 와 같은 손상 이벤트에 반응하게 하는 Sense.
여담05
30
게임이 실행되는 동안 ` 키를 누른 다음 숫자 4키를 눌러 인식 정보
를 표시하면 AI 디버깅 도구를 사용하여 AI 인식을 디버깅 할 수 있습니
다.
여담05
31
물론 C++ 로도 구현 가능합니다.
여담05
32
물론 C++ 로도 구현 가능합니다.
참고자료05
33
https://docs.unrealengine.com/en-
US/Engine/ArtificialIntelligence/AIPerception/index.html
- 언리얼 엔진 공식 문서
https://www.youtube.com/channel/UClb6Jh9EBV7a_Nm52Ipll_Q
- 유투브 채널 CodeLikeMe
https://www.tomlooman.com/
- Tom Looman UE Udemy 코스
마무리05
34
감사합니다.

Unreal perception