SlideShare ist ein Scribd-Unternehmen logo
1 von 34
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
감사합니다.

Weitere ähnliche Inhalte

Was ist angesagt?

Intro to VR with Unreal Engine
Intro to VR with Unreal Engine   Intro to VR with Unreal Engine
Intro to VR with Unreal Engine Unreal Engine
 
Unreal Open Day 2017 UE4 for Mobile: The Future of High Quality Mobile Games
Unreal Open Day 2017 UE4 for Mobile: The Future of High Quality Mobile GamesUnreal Open Day 2017 UE4 for Mobile: The Future of High Quality Mobile Games
Unreal Open Day 2017 UE4 for Mobile: The Future of High Quality Mobile GamesEpic Games China
 
Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기JP Jung
 
iPhoneでリアルタイムマルチプレイを実現!Photon Network Engine
iPhoneでリアルタイムマルチプレイを実現!Photon Network EngineiPhoneでリアルタイムマルチプレイを実現!Photon Network Engine
iPhoneでリアルタイムマルチプレイを実現!Photon Network EngineGMO GlobalSign Holdings K.K.
 
CEDEC2017 アーティストのためのリアルタイムシェーダー学習法
CEDEC2017 アーティストのためのリアルタイムシェーダー学習法CEDEC2017 アーティストのためのリアルタイムシェーダー学習法
CEDEC2017 アーティストのためのリアルタイムシェーダー学習法小林 信行
 
VRM-VCIが広げるVR世界間ポータビリティ
VRM-VCIが広げるVR世界間ポータビリティVRM-VCIが広げるVR世界間ポータビリティ
VRM-VCIが広げるVR世界間ポータビリティVirtualCast, Inc.
 
Unity 3D
Unity 3DUnity 3D
Unity 3Dgema123
 
Introduction to Unity3D and Building your First Game
Introduction to Unity3D and Building your First GameIntroduction to Unity3D and Building your First Game
Introduction to Unity3D and Building your First GameSarah Sexton
 
わからないまま使っている?UE4 の AI の基本的なこと
わからないまま使っている?UE4 の AI の基本的なことわからないまま使っている?UE4 の AI の基本的なこと
わからないまま使っている?UE4 の AI の基本的なことrarihoma
 
[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리KyeongWon Koo
 
ゆるゆるUE4ネットワーク入門
ゆるゆるUE4ネットワーク入門ゆるゆるUE4ネットワーク入門
ゆるゆるUE4ネットワーク入門ssuser221848
 
ノンプログラミングで始めるAR (HoloLens 2 / ARCore / ARKit) 開発 with MRTK
ノンプログラミングで始めるAR (HoloLens 2 / ARCore / ARKit) 開発 with MRTK ノンプログラミングで始めるAR (HoloLens 2 / ARCore / ARKit) 開発 with MRTK
ノンプログラミングで始めるAR (HoloLens 2 / ARCore / ARKit) 開発 with MRTK Takashi Yoshinaga
 
고대특강 게임 프로그래머의 소양
고대특강   게임 프로그래머의 소양고대특강   게임 프로그래머의 소양
고대특강 게임 프로그래머의 소양Jubok Kim
 
UnityのクラッシュをBacktraceでデバッグしよう!
UnityのクラッシュをBacktraceでデバッグしよう!UnityのクラッシュをBacktraceでデバッグしよう!
UnityのクラッシュをBacktraceでデバッグしよう!Unity Technologies Japan K.K.
 
【Unity道場】初心者には初心者の戦い方がある!スキルがなくても付け焼き刃で戦う小手先テクニック
【Unity道場】初心者には初心者の戦い方がある!スキルがなくても付け焼き刃で戦う小手先テクニック【Unity道場】初心者には初心者の戦い方がある!スキルがなくても付け焼き刃で戦う小手先テクニック
【Unity道場】初心者には初心者の戦い方がある!スキルがなくても付け焼き刃で戦う小手先テクニックUnity Technologies Japan K.K.
 
知って得するUnity エディタ拡張編
知って得するUnity エディタ拡張編知って得するUnity エディタ拡張編
知って得するUnity エディタ拡張編Shota Baba
 
[IGC 2016] 실전시나리오라이팅 - PD가 원하면 나는 쓴다
[IGC 2016] 실전시나리오라이팅 - PD가 원하면 나는 쓴다[IGC 2016] 실전시나리오라이팅 - PD가 원하면 나는 쓴다
[IGC 2016] 실전시나리오라이팅 - PD가 원하면 나는 쓴다Hwang Sang Hun
 
UE4 Garbage Collection
UE4 Garbage CollectionUE4 Garbage Collection
UE4 Garbage CollectionQooJuice
 

Was ist angesagt? (20)

Intro to VR with Unreal Engine
Intro to VR with Unreal Engine   Intro to VR with Unreal Engine
Intro to VR with Unreal Engine
 
Unreal Open Day 2017 UE4 for Mobile: The Future of High Quality Mobile Games
Unreal Open Day 2017 UE4 for Mobile: The Future of High Quality Mobile GamesUnreal Open Day 2017 UE4 for Mobile: The Future of High Quality Mobile Games
Unreal Open Day 2017 UE4 for Mobile: The Future of High Quality Mobile Games
 
Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기
 
iPhoneでリアルタイムマルチプレイを実現!Photon Network Engine
iPhoneでリアルタイムマルチプレイを実現!Photon Network EngineiPhoneでリアルタイムマルチプレイを実現!Photon Network Engine
iPhoneでリアルタイムマルチプレイを実現!Photon Network Engine
 
CEDEC2017 アーティストのためのリアルタイムシェーダー学習法
CEDEC2017 アーティストのためのリアルタイムシェーダー学習法CEDEC2017 アーティストのためのリアルタイムシェーダー学習法
CEDEC2017 アーティストのためのリアルタイムシェーダー学習法
 
全部知ってたらTwinmotionマスター!TwinmotionのぷちTips・テクニック
全部知ってたらTwinmotionマスター!TwinmotionのぷちTips・テクニック全部知ってたらTwinmotionマスター!TwinmotionのぷちTips・テクニック
全部知ってたらTwinmotionマスター!TwinmotionのぷちTips・テクニック
 
VRM-VCIが広げるVR世界間ポータビリティ
VRM-VCIが広げるVR世界間ポータビリティVRM-VCIが広げるVR世界間ポータビリティ
VRM-VCIが広げるVR世界間ポータビリティ
 
Unity 3D
Unity 3DUnity 3D
Unity 3D
 
Introduction to Unity3D and Building your First Game
Introduction to Unity3D and Building your First GameIntroduction to Unity3D and Building your First Game
Introduction to Unity3D and Building your First Game
 
わからないまま使っている?UE4 の AI の基本的なこと
わからないまま使っている?UE4 の AI の基本的なことわからないまま使っている?UE4 の AI の基本的なこと
わからないまま使っている?UE4 の AI の基本的なこと
 
[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리
 
ゆるゆるUE4ネットワーク入門
ゆるゆるUE4ネットワーク入門ゆるゆるUE4ネットワーク入門
ゆるゆるUE4ネットワーク入門
 
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 1
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 1Unreal Engine 5 早期アクセスの注目機能総おさらい Part 1
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 1
 
ノンプログラミングで始めるAR (HoloLens 2 / ARCore / ARKit) 開発 with MRTK
ノンプログラミングで始めるAR (HoloLens 2 / ARCore / ARKit) 開発 with MRTK ノンプログラミングで始めるAR (HoloLens 2 / ARCore / ARKit) 開発 with MRTK
ノンプログラミングで始めるAR (HoloLens 2 / ARCore / ARKit) 開発 with MRTK
 
고대특강 게임 프로그래머의 소양
고대특강   게임 프로그래머의 소양고대특강   게임 프로그래머의 소양
고대특강 게임 프로그래머의 소양
 
UnityのクラッシュをBacktraceでデバッグしよう!
UnityのクラッシュをBacktraceでデバッグしよう!UnityのクラッシュをBacktraceでデバッグしよう!
UnityのクラッシュをBacktraceでデバッグしよう!
 
【Unity道場】初心者には初心者の戦い方がある!スキルがなくても付け焼き刃で戦う小手先テクニック
【Unity道場】初心者には初心者の戦い方がある!スキルがなくても付け焼き刃で戦う小手先テクニック【Unity道場】初心者には初心者の戦い方がある!スキルがなくても付け焼き刃で戦う小手先テクニック
【Unity道場】初心者には初心者の戦い方がある!スキルがなくても付け焼き刃で戦う小手先テクニック
 
知って得するUnity エディタ拡張編
知って得するUnity エディタ拡張編知って得するUnity エディタ拡張編
知って得するUnity エディタ拡張編
 
[IGC 2016] 실전시나리오라이팅 - PD가 원하면 나는 쓴다
[IGC 2016] 실전시나리오라이팅 - PD가 원하면 나는 쓴다[IGC 2016] 실전시나리오라이팅 - PD가 원하면 나는 쓴다
[IGC 2016] 실전시나리오라이팅 - PD가 원하면 나는 쓴다
 
UE4 Garbage Collection
UE4 Garbage CollectionUE4 Garbage Collection
UE4 Garbage Collection
 

Mehr von TonyCms

Unreal_SubSystem.pptx
Unreal_SubSystem.pptxUnreal_SubSystem.pptx
Unreal_SubSystem.pptxTonyCms
 
Unreal_GameAbilitySystem.pptx
Unreal_GameAbilitySystem.pptxUnreal_GameAbilitySystem.pptx
Unreal_GameAbilitySystem.pptxTonyCms
 
AAA게임_UI_최적화_및_빌드하기.pptx
AAA게임_UI_최적화_및_빌드하기.pptxAAA게임_UI_최적화_및_빌드하기.pptx
AAA게임_UI_최적화_및_빌드하기.pptxTonyCms
 
Unreal python
Unreal pythonUnreal python
Unreal pythonTonyCms
 
Effective cpp
Effective cppEffective cpp
Effective cppTonyCms
 
Unreal animation system
Unreal animation systemUnreal animation system
Unreal animation systemTonyCms
 
Cpp에서 활용해보는 Lambda식
Cpp에서 활용해보는 Lambda식Cpp에서 활용해보는 Lambda식
Cpp에서 활용해보는 Lambda식TonyCms
 
About matinee
About matineeAbout matinee
About matineeTonyCms
 
GameInstance에 대해서 알아보자
GameInstance에 대해서 알아보자GameInstance에 대해서 알아보자
GameInstance에 대해서 알아보자TonyCms
 
읽기 좋은 코드가 좋은 코드다.
읽기 좋은 코드가 좋은 코드다.읽기 좋은 코드가 좋은 코드다.
읽기 좋은 코드가 좋은 코드다.TonyCms
 
Cascade Shadow Map
Cascade Shadow MapCascade Shadow Map
Cascade Shadow MapTonyCms
 

Mehr von TonyCms (11)

Unreal_SubSystem.pptx
Unreal_SubSystem.pptxUnreal_SubSystem.pptx
Unreal_SubSystem.pptx
 
Unreal_GameAbilitySystem.pptx
Unreal_GameAbilitySystem.pptxUnreal_GameAbilitySystem.pptx
Unreal_GameAbilitySystem.pptx
 
AAA게임_UI_최적화_및_빌드하기.pptx
AAA게임_UI_최적화_및_빌드하기.pptxAAA게임_UI_최적화_및_빌드하기.pptx
AAA게임_UI_최적화_및_빌드하기.pptx
 
Unreal python
Unreal pythonUnreal python
Unreal python
 
Effective cpp
Effective cppEffective cpp
Effective cpp
 
Unreal animation system
Unreal animation systemUnreal animation system
Unreal animation system
 
Cpp에서 활용해보는 Lambda식
Cpp에서 활용해보는 Lambda식Cpp에서 활용해보는 Lambda식
Cpp에서 활용해보는 Lambda식
 
About matinee
About matineeAbout matinee
About matinee
 
GameInstance에 대해서 알아보자
GameInstance에 대해서 알아보자GameInstance에 대해서 알아보자
GameInstance에 대해서 알아보자
 
읽기 좋은 코드가 좋은 코드다.
읽기 좋은 코드가 좋은 코드다.읽기 좋은 코드가 좋은 코드다.
읽기 좋은 코드가 좋은 코드다.
 
Cascade Shadow Map
Cascade Shadow MapCascade Shadow Map
Cascade Shadow Map
 

Unreal perception