background top icon
background center wave icon
background filled rhombus icon
background two lines icon
background stroke rhombus icon

Скачать "Урок 10 | Unreal Engine 4 / 5 Искусственный интеллект - Зрение и Слух ИИ / AI Perception"

input logo icon
Теги видео
|

Теги видео

cyberstars
игра
ue4
unreal engine 4
unreal engine 5
ue5
unreal engine 5 уроки
unreal engine
unreal engine 4 уроки
уроки unreal engine
unreal engine ии
ai
ии
искусственный интеллект
ai perception
ue4 ai perception
ai perception ue4
artificial intelligence
как создать игру
создание игр
программирование
unreal engine 5 early access
unreal engine уроки
blueprint
blueprints
зрение
слух
Субтитры
|

Субтитры

subtitles menu arrow
  • enАнглийский
Скачать
00:00:00
приветствую разработчики на связи кибер
00:00:03
stars entertainment это 10 урок из серии
00:00:05
искусственный интеллект в unreal engine
00:00:08
в котором мы разберем восприятие у
00:00:09
искусственного интеллекта ой ой
00:00:11
perception
00:00:12
затронем зрение и слух в этом уроке мы
00:00:16
подробно изучим что такое ой ой
00:00:17
perception и как он устроен сперва
00:00:20
рассмотрим такие органы чувств как
00:00:22
зрение а затем слух
00:00:26
и затем используя ой perception также
00:00:29
создадим by her three логику где бот
00:00:32
будет бегать за нами как только заметит
00:00:34
и на последок разберем как сделать так
00:00:37
чтобы бог мог видеть все объекты на
00:00:39
сцене не только других персонажей
00:00:41
давайте приступим органы восприятия
00:00:55
такие как зрение или слух
00:00:57
неотъемлемая часть продвинутого
00:00:59
искусственного интеллекта какие способы
00:01:02
зондирования окружения нам известны
00:01:04
первом уроке мы делали так чтобы вот
00:01:06
прощупывал пространство перед собой с
00:01:08
помощью луча light рейс когда луч
00:01:11
сталкивался с препятствием перед собой
00:01:12
бот понимал что впереди что то есть и
00:01:15
также получал информацию об этом объекте
00:01:17
и расстояние до него и чтобы прощупывать
00:01:20
местность не только перед собой
00:01:21
необходимо выстреливать большое
00:01:23
количество лучей это не очень годится
00:01:25
для сложных систем line trace можно
00:01:27
отнести к зрению но это более
00:01:29
примитивный способ чтобы избежать
00:01:30
столкновения
00:01:31
во втором уроке мы изучили навигационную
00:01:34
сетку на в меж bounce вольем благодаря
00:01:37
ей уже не нужно прощупывать окружение
00:01:38
вокруг себя ведь на в меж заранее
00:01:40
просчитывает окружение и вот спокойно
00:01:42
может перемещаться в рамках
00:01:44
навигационной сетки заранее понимаю куда
00:01:46
можно дойти а куда нельзя в девятом
00:01:49
уроке мы разобрали проверку с помощью
00:01:50
декоратора кончик кончик можно отнести к
00:01:53
зрению это такой конус который проверяет
00:01:55
попал ли указанный объект в его диапазон
00:01:58
и самую продвинутую систему зондирование
00:02:00
pawn сенсинг мы затронули в седьмом
00:02:03
уроки pawn сенсинг включает в себя
00:02:05
зрение и слух и зрение может реагировать
00:02:07
на другие полны а слух наш ум но не в
00:02:12
виде аудиофайлов
00:02:13
а виде специального шума который
00:02:15
производится с помощью функции
00:02:17
майк нойз в компонентах источника шума
00:02:20
например в персонаже должен
00:02:22
присутствовать парной
00:02:24
emitter и уже к нему присоединять майк
00:02:26
нойз все перечисленные способы
00:02:28
зондирования являются более простыми и
00:02:31
помимо них в движке unreal engine
00:02:33
есть более продвинутый модуль восприятия
00:02:36
это ай-ай perception что дословно
00:02:38
переводится восприятие искусственного
00:02:40
интеллекта и прежде чем приступить к
00:02:43
изучению и ой perception я с нуля
00:02:45
подготовлю необходимые ассеты
00:02:47
для дальнейшей работы я создам новую
00:02:50
папку ой ой 10 создам и я и контроллер с
00:02:57
названием и я и контроллер 10 и создам
00:03:00
бота за основу которого возьму нашего
00:03:02
грол у персонажа напомню находится в
00:03:04
папке ферт sntp было принц
00:03:09
[музыка]
00:03:12
назову его ой ой чёрт 10 как всегда
00:03:16
уберу в нем всю логику его камеру
00:03:21
также камера бум это такой штатив для
00:03:24
камеры чтобы когда камера приближается к
00:03:26
стенке не проходила сквозь нее и также
00:03:29
беру павлин сенсинг тот что мы проходили
00:03:31
в седьмом уроки в настройках класс
00:03:34
дефолт выставлю наш ой ой контроллер с
00:03:38
компилирую и выставлю бота на сцену
00:03:42
также не забудем что на сцене должен
00:03:44
присутствовать на в меж bounce вольем
00:03:46
растянуты по всей карте это
00:03:48
навигационная сетка у меня на сцене он
00:03:50
уже установлен достаточно нажать клавишу
00:03:53
пи на клавиатуре и навигационная сетка
00:03:55
по светится зеленым но все необходимая
00:03:58
связка с этого готово можем приступить к
00:04:00
изучению и ой perception создавать его
00:04:02
можно как в по вне бота так и в самом ой
00:04:05
ой контроллере но лучше это делать в
00:04:08
этой контроллере создается эй perception
00:04:10
путем добавления специального компонента
00:04:12
в левом верхнем углу в окне компонент
00:04:15
нажимаем от компонент поиски просто
00:04:17
вписываем ой ой
00:04:18
и здесь высветится и ой perception и ой
00:04:21
ой perception steam light source его еще
00:04:23
мы успеем разобрать но сейчас выбираем и
00:04:26
ой perception
00:04:27
он появился в компонентах под чертой это
00:04:30
означает что он не будет располагаться
00:04:31
на сцене а будет работать как механика
00:04:33
фоновом режиме
00:04:34
скомпилируем и разберем ее perception
00:04:37
выбрав его в компонентах его настройки
00:04:39
отобразятся в панели details основные
00:04:42
параметры находится во вкладке ой ой
00:04:44
perception sense конфиг это и есть орган
00:04:46
чувства восприятие здесь большая
00:04:48
разновидность этих органов восприятия и
00:04:51
здесь они называются стимулами но или
00:04:53
чувство чтобы добавить орган восприятия
00:04:56
то есть стимул жмем плюсик в массиве
00:04:59
вот он появился под индексом ноль и
00:05:01
правее мы выбираем разновидность стимула
00:05:04
в виде конфига это может быть зрение и
00:05:06
слух и так далее эти конфиге также можно
00:05:08
расширять то есть создавать свои при своем нашему
00:05:11
боту зрения
00:05:12
для этого необходимо взять и ой сайт
00:05:14
конфиг раскрываем перечень его
00:05:16
параметров
00:05:19
здесь пока ничего не трогаем а просто
00:05:21
активируем его чтобы наглядно проверить
00:05:23
его работу для этого раскрываем вкладку
00:05:25
detection б апельсин обнаружение по
00:05:28
принадлежности
00:05:29
здесь отмечаем галочками на кого
00:05:31
реагировать и на мест на врагов
00:05:33
new trolls нейтральных и friendlies на
00:05:36
дружественных наш персонаж в игре за
00:05:38
которого мы играем по умолчанию является
00:05:40
нейтральным поэтому отмечаем галочкой
00:05:43
но для тестирования также можем отметить
00:05:45
все галочки скомпилируем и посмотрим как
00:05:47
это работает и чтобы визуально
00:05:50
отобразить
00:05:51
ой ой perception нам нужно включить
00:05:53
дэбак это клавиш апостроф на не также
00:05:55
может располагаться
00:05:56
русская буква а не забудьте
00:05:58
переключиться на английскую раскладку
00:05:59
это тоже может повлиять
00:06:01
здесь помощью кнопки tab мы можем
00:06:04
перейти в спектр свободная камера
00:06:07
повторное нажатие tab возвращает нас в
00:06:09
персонажа и с помощью клавиш то нам поди
00:06:12
от нуля до четырех мы отображаем
00:06:13
различный дебаг здесь также верхнем
00:06:15
левом углу написано какая цифра к чему
00:06:18
относится 0 это на в меж навигационная
00:06:20
сетка единица ой ой
00:06:23
общая информация двойка тоби кивер 3
00:06:26
если бы fever 3 подключен то выводится
00:06:28
его задачи и борт ключи тройка и q & as
00:06:31
in warm and carry систем и четверка это
00:06:34
ай-ай perception нажимаем кнопку четыре
00:06:36
и зрение бот отображено зелеными линиями
00:06:39
сейчас у него угол обзора стоит 180
00:06:41
градусов это по 90 градусов с обеих
00:06:43
сторон по направлению и как только мы
00:06:46
попадаем в его поле зрения
00:06:48
я и perception отмечает то что заметил
00:06:50
зеленой сферой в до баги также подписано
00:06:53
у какого стимула какой цвет сферы после
00:06:58
того как мы покидаем поле зрения эта
00:07:00
сфера остается в том месте где мы
00:07:02
последний раз были замечены
00:07:10
и от неё уже тянется черная линия если
00:07:17
нажав tab перейти в спектр
00:07:19
то мы как бы переселяемся с персонажа в
00:07:21
свободную камеру которую я и protection
00:07:23
также определяет уже как второй объект и
00:07:26
если залететь за спину боту то видно что
00:07:29
его вертикальный угол обзора тоже 90
00:07:31
градусов как работает зрение и ой
00:07:34
perception мы разобрали теперь
00:07:36
рассмотрим его настройки возвращаемся в
00:07:38
ой ой контроллер кликаем по компоненту и
00:07:40
ой perception а первый параметр
00:07:42
implementation
00:07:44
это то что стимулирует органы чувств
00:07:46
если вы создадите свой источник стимулов
00:07:48
например зрения или слуха то вы можете
00:07:50
выбрать его здесь пишутся они на си плюс
00:07:52
плюс
00:07:53
и можно создать bluprint который
00:07:55
наследуется от класса и essence
00:07:56
но поскольку у нас такого нету то здесь
00:07:59
мы можем выбрать лишь то что по
00:08:00
умолчанию который соответствует своему
00:08:02
конфигу далее идет сайт радиус это
00:08:05
радиус видимости то есть если что-то
00:08:07
попадает в пределы этого радиуса то она
00:08:09
становится видимым и следующий параметр
00:08:11
лу сайт радиус это радиус в пределах
00:08:13
которого искусственный интеллект не
00:08:15
теряет нас из виду но или какой-то
00:08:16
другой объект если мы попали в пределы
00:08:20
этого радиуса бот нас не может заметить
00:08:22
а лишь замечает когда мы попали в
00:08:24
пределы радиуса сайт радиус и когда мы
00:08:26
покидаем сайт радиус и входим в лу сайт
00:08:28
радиус tobot просто помнить что мы были
00:08:31
в пределах этого радиуса этот радиус
00:08:33
должен быть больше и следующий параметр
00:08:35
по реферал vision халхин-гол degrees
00:08:37
это половина угла обзора то есть это
00:08:39
угол по левую и правую стороны
00:08:41
направлении то есть если мы хотим чтобы
00:08:44
периферийное зрение бота было 90
00:08:46
градусов здесь ставим 45 теперь уменьшим
00:08:49
сайт радиус до 1000 юнитов юнит равен
00:08:52
сантиметру илу сайт радиус выставим 1500
00:08:56
и посмотрим на это все наглядно
00:09:00
запускаем игру включаем дебаг переходим
00:09:03
спектер с помощи tab нажимаем кнопку
00:09:05
четыре на нам поди внешняя розовая
00:09:08
окружность и to lose sight радиус
00:09:10
внутренняя зеленая окружность это просто
00:09:12
сайт радиус и также видим что угол
00:09:15
обзора стал 90 градусов по 45 градусов с
00:09:18
обеих сторон
00:09:20
[музыка]
00:09:24
влетая в его области зрения он нас сразу
00:09:27
же определяет и если залететь за спину
00:09:30
бота то видно что область в которой он
00:09:32
нас потерял из виду
00:09:33
составляет также 45 градусов от
00:09:35
направления но по вертикали то есть если
00:09:38
мы ставим угол обзора
00:09:39
45 градусов то помимо горизонтального
00:09:41
периферийного зрения это также
00:09:43
отражается и на вертикальном и на
00:09:46
удалении вот нас теряет из вида в вертикальной
00:09:49
плоскости таким образом получается если
00:09:52
представить зону видимости то она будет
00:09:53
форме столба или цилиндра такого радиуса
00:09:56
которому укажем в сайт радиус и теперь
00:09:59
наглядно взглянем как работают лу сайт
00:10:01
радиус и сайт радиус для этого перенесем
00:10:03
бота в другое место чтобы отчетливо было
00:10:05
видно сайт радиус сейчас приближаюсь к
00:10:07
боту мы входим в лу сайт радиус пока что
00:10:10
будет нас не замечает но замечает как
00:10:13
только мы входим в сайт радиус это
00:10:15
внутренняя окружность
00:10:18
[музыка]
00:10:21
теперь покидаем сайт радиус бот нас всё
00:10:24
еще видит и перестает видеть после того
00:10:25
как мы покидаем лу сайт радиус теперь вы
00:10:28
понимаете почему сайт радиус всегда
00:10:31
должен быть больше конечно же это только
00:10:33
работает в пределах видимости бота
00:10:39
движемся дальше параметр макс эйч это то
00:10:42
сколько по времени бот способен помнить
00:10:44
то место в котором последний раз был
00:10:46
замечен игрок сейчас здесь стоит 0 вот с
00:10:50
помощью и ой perception не способен
00:10:52
видеть за препятствиями
00:10:53
поэтому как только мы забегаем за
00:10:54
препятствия наша сфера остается в том
00:10:56
месте где мы последний раз были замечены
00:10:58
бот потерял нас из виду и сразу же пошёл
00:11:00
отсчёт времени
00:11:01
то сколько прошло времени с того момента
00:11:03
как бот нас потерял
00:11:05
[музыка]
00:11:11
поменяем макс эйч но например на 5
00:11:13
секунд забегаем за препятствия и по
00:11:18
истечению 5 секунд это сфера исчезает
00:11:20
бог помнит то место в котором мы
00:11:22
последний раз были замечены 5 секунд и
00:11:24
потом забывает про нас это точно также
00:11:27
работает если мы покидаем его поле
00:11:29
зрения
00:11:31
авто секс с range from lasts in
00:11:34
locations это диапазон в пределах которого объект
00:11:36
попавший в поле зрения считается
00:11:38
замеченным в том месте где последний раз
00:11:40
был замечен объект по умолчанию здесь
00:11:42
стоит минус 1 и как только мы попадаем в
00:11:45
поле зрения бота
00:11:46
зеленая сфера символизирующая о том что
00:11:48
мы были замечены постоянно следует за
00:11:50
нами если мы зайдем за спину боту то по
00:11:52
истечении 5 секунд это параметр макс эйч
00:11:54
он забудет про нас теперь меняем фото
00:11:59
секса с range с -1 на примерно 200
00:12:03
и смотрите как только мы входим в поле
00:12:06
зрения бот нас замечает но сфера не
00:12:08
следует за нами бог просто помнить что
00:12:10
мы находимся рядом с этой сферой в
00:12:12
диапазоне 200 юнитов и как видите эйч по
00:12:14
нулям потому что он нас не потерял из
00:12:17
виду эта сфера как будто
00:12:18
примагничивается через каждые 200 юнитов
00:12:20
словно к сетке и смотрите если мы выйдем
00:12:22
из поля зрения и при этом не будем
00:12:24
покидать диапазон 200 юнитов от этой
00:12:26
сферы бот все еще не теряет нас из виду
00:12:28
видите речь по нулям он понимает что мы
00:12:31
находимся у него за спиной где-то в
00:12:33
пределах 200 юнитов
00:12:34
соответственно как только мы
00:12:35
преодолеваем этот порог 200 юнитов
00:12:37
проходит пять секунд
00:12:39
макс edge и о нас теряет из виду
00:12:41
обратите внимание как только мы
00:12:42
возвращаемся в поле зрения та сфера
00:12:44
появляется в том месте в котором исчезла
00:12:47
даже если спрятаться в укрытие и не
00:12:50
отходить на 200 юнитов
00:12:51
от того места в котором мы последний раз
00:12:53
были замечены tobot также не будет
00:12:55
терять нас изведу видите речь по нулям
00:12:59
point of view backward офсет
00:13:01
это от ступы зоны видимости назад
00:13:04
поставим 200 видим что этот конус на 200
00:13:10
юнитов сдвинулся за спину бота вернем
00:13:14
обратно на ноль и следующий параметр нир
00:13:17
клиппинг радиус это тот радиус вокруг
00:13:18
бота в котором он не видит поставим
00:13:21
здесь также 200 юнитов
00:13:24
и как видно зону видимости сместилась на
00:13:27
200 юнитов вперед от бота
00:13:29
таким образом получается что у нас не
00:13:31
видит перед носом а только на удалении
00:13:32
200 юнитов
00:13:34
вернем обратно на ноль и галочка старца
00:13:37
на и был запустить в активированном виде
00:13:39
если я убрать то зрение не будет
00:13:41
работать это также можно отключить через
00:13:43
bluprint д бокала это цвет сферы как alter
00:13:56
section способен видеть и настройки
00:13:58
зрения мы разобрали теперь посмотрим как
00:14:00
создавать логику при обнаружении в самом
00:14:03
низу настроек компонента ой perception
00:14:05
располагаются события и вмт первые три
00:14:08
практически не отличаются давайте
00:14:10
вызовем их эти события сработают при обновлении
00:14:16
стимулов ой ой perception или так
00:14:18
сказать при стимуляции органов чувств и
00:14:21
все они будут срабатывать один раз как
00:14:23
бот нас заметил и еще раз когда потерял
00:14:25
из виду
00:14:26
event он protection апдейт от при
00:14:28
срабатывании возвращает всех актеров
00:14:30
которых заметил здесь возвращается
00:14:32
массив данных
00:14:33
выведем его через массив возьмем и рэй
00:14:36
for each лук и через принц string
00:14:41
выведем имена тех кого бот заметил get
00:14:44
display name
00:14:45
возвращает имя не будем запускать дэбак
00:14:50
чтобы он не прикрывал принц string
00:14:52
забегая в поле зрения мы через принц
00:14:54
string получаем свое имя и вновь
00:14:55
получаем свое имя когда покидаем поле
00:14:57
зрения то есть событие он perception
00:14:59
апдейт сработала когда мы зашли поля
00:15:02
зрения и снова сработало когда вышли
00:15:04
снова забегаем в поле зрения поскольку у
00:15:06
нас не включен дэбак мы через так не
00:15:08
можем включить spectator но можем
00:15:09
сделать это по-другому нажав на : или на
00:15:12
русскую клавишу же мы также можем
00:15:14
включить spectator и смотрите принц
00:15:16
string выводит имя наши specter камеры
00:15:24
идем дальше он таргет perception апдейт
00:15:27
это при срабатывании возвращает того
00:15:29
актера которого заметил и информацию о
00:15:32
стимуле то есть он просто пшена в этот
00:15:34
срабатывает один раз и выводит всех кого
00:15:36
заметил через массив оон таргет
00:15:38
perception апдейт срабатывает каждый раз
00:15:40
при новом обнаружение и выводит того
00:15:42
кого заметил стимул с мы получаем
00:15:45
структуру данных мы можем ее разбить с
00:15:47
помощью сплит либо через break
00:15:55
[музыка]
00:15:57
речь возвращает то сколько прошло
00:16:00
времени с момента обнаружения но
00:16:02
поскольку иван таргет апдейт от
00:16:03
вызывается сразу же как мы были замечены
00:16:05
то здесь обычно возвращается 0
00:16:08
expiration эйч это сколько я и может
00:16:10
помнить о том объекте который потерял из
00:16:13
виду это то что мы задаем в параметре
00:16:17
макс edge стимулов локейшн
00:16:20
это координаты того кто был замечен в
00:16:22
данном случае это наш игрок ресивер
00:16:25
локейшн это координаты того кто
00:16:26
наблюдает в данном случае это наш бот
00:16:28
так это любой геймплей так относящиеся к
00:16:32
стимулам и секс с вали sens это булевой
00:16:35
переменной a true или false true это
00:16:36
когда нас заметили а фолз когда потеряли
00:16:38
из виду давайте то выведем через принц
00:16:40
string сделала время принц тренинга 5
00:16:47
секунд из дублирую принц string семь раз
00:16:49
ровно столько сколько выходов в брейки
00:16:51
и начну выводить снизу
00:17:04
теперь соединим логику
00:17:07
[музыка]
00:17:09
и не забудем отключить 1 i want теперь
00:17:14
можем взглянуть вот если приложить моду
00:17:18
break the станет более наглядней
00:17:20
сперва идут координаты нашего игрока
00:17:22
затем бота и внизу true и при выходе
00:17:25
внизу будет фолз и он таргет perception
00:17:32
info апдейт
00:17:33
при обновлении возвращает информацию
00:17:36
сделаем проект здесь идет таргета иди и
00:17:38
таргет ссылка на замечены porn
00:17:40
здесь также есть тема лаз который также
00:17:43
можно разбить и получить ту же
00:17:45
информацию что из предыдущего иван то мы
00:17:52
видим таргет и таргитай де
00:18:03
также не забудем отключить предыдущий
00:18:05
event
00:18:09
здесь таргет возвращает того кого мы
00:18:12
заметили и его айди рассмотрим последние
00:18:18
два события и последние события это на
00:18:24
активацию и dice активацию данного
00:18:26
компонента
00:18:27
interception если взять его переменную
00:18:29
щелкнув по ней мы также можем добавлять
00:18:32
события и чтобы активировать или
00:18:34
деактивировать вытягиваем из нее функции
00:18:37
активы и
00:18:38
и леди акте light
00:18:43
также есть функция сет active
00:18:48
для активации ставим галочку new актива
00:18:50
it и галочки раз от означает обновить
00:18:53
при повторном вызове то есть если бы их
00:18:55
не было функция актива id или deactivate
00:18:58
не сработало повторно
00:18:59
теперь прикрепим ее perception коби
00:19:02
fever 3 но это условно мы просто будем
00:19:05
передавать координаты нашего игрока
00:19:07
обнаружены с помощью
00:19:09
perception в black board и затем by
00:19:11
heather 3 с помощью задачи муфту бот
00:19:13
будет двигаться к этим координатам
00:19:14
blackboard создам blackboard
00:19:16
назову baby perception создам ключ
00:19:22
объект с названием player но здесь один
00:19:25
нюанс
00:19:26
задача муфту и может двигаться ключу
00:19:28
типа object
00:19:29
а только к вектору объект это не всегда
00:19:32
то что можно расположить на сцене
00:19:33
поэтому раскрываем вкладку кей type of
00:19:37
bass класс выбираем эктор теперь создам
00:19:44
by heather 3 с названием бить и
00:19:46
perception
00:19:47
открывая его и ранее созданный black
00:19:50
board подключился к нему автоматически
00:19:52
вытягиваю sequence и затем муфту задачам
00:19:58
of the blackboard ки
00:19:59
выберу player теперь перехожу в
00:20:03
контроллер здесь уберу все не нужное я
00:20:06
ставлю он таргет просто пишу наб д этот
00:20:08
и теперь как-то при обнаружении нашего
00:20:12
игрока эктора нужно поместить его в
00:20:14
black board
00:20:15
пишем в контекстном меню blackboard
00:20:16
здесь во вкладке
00:20:18
а есть get back барт и также ниже дворе
00:20:21
я был с ней также есть get blackboard
00:20:23
виде переменной по сути мы можем брать
00:20:26
какие эту функцию
00:20:27
так и переменную и из неё вытягиваем сет
00:20:30
волею as object object воли помещаем
00:20:35
эктора которого заметили с помощью
00:20:37
и perception так же присоединяем эту
00:20:40
функцию на ивент апдейта и в кино им нам
00:20:43
нужно поместить имя нашего ключа
00:20:45
он называется player мы тянем прямиком
00:20:50
из этого pin по запросу string string to
00:20:52
name
00:20:54
и здесь пишем имя нашего ключа
00:20:58
собственно куда помещаем ссылку на
00:21:00
нашего игрока и затем by heather 3 с
00:21:03
помощью задачи муфта мы будем двигаться
00:21:05
ключу плеер котором собственно и
00:21:07
находится ссылка на нашего игрока и
00:21:09
напоследок подключим behavior track а и
00:21:12
контроллеру на событие иван бегин play
00:21:14
берем функцию ранга fever 3 и выбираем
00:21:18
наше дерево бить и perception все готово
00:21:22
не забудим скомпилировать также запустим
00:21:25
вбок и не забудем чтобы бог мог
00:21:29
передвигаться на сцене должен
00:21:31
присутствовать на в меж также в депо
00:21:33
гибели ver 3 мы видим что срабатывает
00:21:34
задача муфту
00:21:35
но поскольку в ней нету данных куда
00:21:37
бежать то есть наш игрок пока что не
00:21:39
записался в blackboard ключ player
00:21:41
talbot стоит на месте попадаем в поле
00:21:43
зрение бота и он начинает молниеносно
00:21:46
нас преследовать попытаемся оторваться
00:21:47
от него также надо не забывать что макса
00:21:49
и стоит на 5 секунд поэтому здесь как ни
00:21:51
крути убежать от него у нас не получится
00:21:53
заведем его на рампу даже спрыгнул с неё
00:21:57
он спрыгивать за нами попробуем схитрить
00:22:01
и перепрыгнуть пролет но бог снова бежит
00:22:05
к нам но что он скажет на это перед
00:22:08
другими на куб и сразу же слезем с него
00:22:10
он застрял и не смотря на то что в
00:22:14
данный момент мы стоим за спиной бота
00:22:15
перейдем в by heather 3 при запуске игры
00:22:18
видно что срабатывает задача муфту
00:22:23
поэтому на задачу муфту лучу повесить
00:22:25
декоратор blackboard bass кондишен эта
00:22:28
проверка помещены ли какие-то данные
00:22:30
заданный blackboard ключ это является
00:22:32
условием этого декоратора декоратор это
00:22:34
проверка и если эти условия были не
00:22:36
соблюдены то задача муфту не сработает
00:22:39
выберем в декораторы black board ключ
00:22:41
который будем проверять это плеер и
00:22:43
теперь видите если запустить игру с
00:22:45
помощью горячих клавиш alt + p то
00:22:48
поскольку мы не попадаем в поле зрения
00:22:49
бота
00:22:50
этот ключ пустой и задача муфту не
00:22:52
срабатывает теперь перейдем в этой
00:22:55
контроллер и ключ плеер лучше записывать
00:22:58
тогда когда бот нас заметил
00:23:00
а у нас получается что он записывает
00:23:02
ключ просто при срабатывании апдейт от
00:23:04
то есть когда мы попадаем в поле зрения
00:23:06
и также когда выходим из поля зрения
00:23:09
поэтому из ивентов да этот вытянем
00:23:11
branch его легко можно найти по запросу
00:23:13
ив его кондишен присоединим секс с воли
00:23:16
sense сделаем такую логику когда мы
00:23:20
заходим в поле зрения
00:23:22
наш игрок записывается в backward ключ а
00:23:25
когда уходим удаляется из него мэтта
00:23:28
могли бы сделать так просто сдублировать
00:23:30
функцию сет value as object и fob
00:23:36
чувство лью просто ничего не задавать у
00:23:38
нас ключ типа объект с базовым классом
00:23:41
эктор и даже если в него ничего не
00:23:44
записывать он все равно будет считаться
00:23:45
заполненным хотя это тоже сработает но
00:23:48
лучше сделать по-другому поэтому на фолс
00:23:51
повесим функцию clear волею вытянем ее
00:23:54
есть благ борт переменной и здесь также
00:23:57
в кейна им задаем имя ключа помимо
00:24:00
string name
00:24:01
мы можем это делать помощью майкл и
00:24:03
troll name
00:24:07
особо разницы здесь нет соединим этот
00:24:09
фарс и попробуем убежать от бота
00:24:12
спрятавшись за его поле зрения если
00:24:15
включить бак ой ой perception на
00:24:16
четверку и behavior 3 на двойку здесь
00:24:19
также показано какие задачи срабатывают
00:24:21
посмотрим на дэбак blackboard
00:24:23
видно что в ключе плеер ничего нет
00:24:25
[музыка]
00:24:28
и теперь чтобы уйти из его поля зрения
00:24:30
можем просто перепрыгнуть ему через
00:24:32
голову видим плеер нан теперь посмотрите
00:24:41
как работает бихи ver 3
00:24:42
через бак как только у нас теряет из
00:24:46
виду behavior 3 перестает выполнять
00:24:48
задачу муфту и находится в режиме
00:24:51
ожидания
00:24:52
[музыка]
00:24:57
итак зрение мы разобрали теперь
00:25:00
переходим к слуху просто в компоненте и
00:25:02
ой perception добавляем новый стимул
00:25:04
этих стимулов может быть большое
00:25:06
количество но мы добавим 1 и в списке
00:25:10
конфигов выбираем а я hearing конфиг под
00:25:13
индексом 0 у нас было зрение и теперь
00:25:16
под индексом 1 слух раскрываем и во
00:25:20
вкладку sens и здесь параметры firing
00:25:23
range это диапазон слышимости то есть на каком
00:25:25
расстоянии слышит бог тоже самое как и
00:25:27
со зрением и здесь не жил healing range
00:25:30
это диапазон в котором бог может слышать
00:25:32
слабый шум
00:25:33
этот параметр не обязательно ставить он
00:25:35
больше нужен для дебага но я для
00:25:38
наглядности поставлю четыре тысячи и
00:25:40
также дать экшн афеллай шин поставим
00:25:42
галочку детектив рэнди лес чтобы бог мог
00:25:44
слышать нашего игрока остальные
00:25:47
настройки такие же как и со зрением
00:25:49
отключим предыдущую логику чтобы болт не
00:25:51
бегал за нами чтобы слышать шум
00:25:54
необходимо его издавать но здесь не
00:25:56
любой шум подойдет шум виде аудио файлов
00:25:58
на подобе музыки или звуковых эффектов
00:26:00
который воспроизводится например с
00:26:02
помощью функций play sound не подходит
00:26:04
нужен специальный шум который генерирует
00:26:07
функция майк нойз loudness это громкость
00:26:10
шума обычно здесь стоит единица но и
00:26:13
снести гейдер это тот кто вас производит
00:26:15
шум поскольку мы находимся в был прийти а я
00:26:17
и контроллера который присоединен к боту
00:26:20
то получается бот будет генерировать
00:26:21
этот шум а нам нужно чтобы генерировал
00:26:23
наш игрок
00:26:24
поэтому сюда подсоединим ссылку на
00:26:25
нашего игрока get player полны далее из
00:26:28
нашего игрока получаем его локацию get
00:26:30
actor locations
00:26:31
и присоединяем в но из локейшн макс
00:26:36
раньше-то диапазон слышимости по типу
00:26:38
того что мы выставляли в настройках
00:26:40
стимула слуха если здесь оставить 0 то
00:26:44
распознавания шума будет в рамках
00:26:46
hearing range если функция майк но из
00:26:48
макс раньше поставить например 1000 той
00:26:50
шум будет распознаваться в радиусе 1000
00:26:52
юнитов но все равно в пределах hearing
00:26:54
range
00:26:55
если здесь макс раньше поставить больше
00:26:58
например 4000 то он все равно будет в
00:27:00
рамках firing range
00:27:02
поэтому значение max range лучше делать
00:27:04
меньше либо равным значению firing range
00:27:07
макс раньше умножается на громкость
00:27:09
loudness значение макс раньше следует
00:27:11
выставлять если вы хотите как-то
00:27:12
отделить
00:27:13
по уровню шума источники шума например
00:27:16
если этот тихий бросок камня
00:27:17
соответственно его сложно услышать
00:27:19
thomaxs раньше можно поставить
00:27:21
500 например а если это взрыв гранаты
00:27:23
или выстрел лучше поставить 0
00:27:26
и тогда этот шум будет слышен во всем
00:27:28
пределе слышимости hearing ренч но
00:27:30
логичнее будет издавать шум то есть
00:27:32
вызвать функцию майк но из из того
00:27:33
объекта который его издает сделаем это в
00:27:36
нашем персонаже располагается он контент
00:27:39
тверк пирсинг bp
00:27:40
был принц third-person картер здесь
00:27:44
логика нашего персонажа и здесь по
00:27:47
запросу майк нас есть две функции просто
00:27:49
майк нойз и майк но и спавн они особо не
00:27:53
отличаются
00:27:54
оной из maker как и в норильске гейдер
00:27:56
мы присоединяем ссылку на источник шума
00:27:58
на какой-то павлин и функций по в майк
00:28:01
нойз ладно стоит по нулям
00:28:03
теперь сделаем так чтобы при нажатии на
00:28:05
цифру 1 на клавиатуре
00:28:06
мы издавали шум в контекстном меню впишу
00:28:09
единицу
00:28:11
теперь активирую input и do fclose
00:28:14
дефолт и здесь во вкладке им put out a
00:28:18
recipe им под выбираю player 0 это наш
00:28:20
игрок соответственно player 1 player 2 это
00:28:23
если несколько игроков ходы но если
00:28:27
степей 3 но из локейшн оставляем пустыми
00:28:29
и самом низу так пишу любой так например
00:28:32
maytag с компилирую передав ой ой
00:28:35
контроллер и здесь на события он торгует
00:28:37
perception апдейт от через принц string
00:28:39
в виду так соответственно при получении
00:28:42
этого тега мы можем сортировать то что
00:28:44
услышали или заметили
00:28:45
но или при любом срабатывание стимула
00:28:50
здесь просто можем с помощью excel
00:28:52
сравнивать какое-то слово с другим
00:28:54
словом
00:28:55
и потом делать branch
00:29:01
запусками грузы богам здесь баги
00:29:04
появился новый стимул и он подписан и
00:29:05
желтым цветом и также появились две
00:29:08
новые окружности внешняя голубая
00:29:10
it allows firing range и внутренняя
00:29:12
желтая это hearing range заходим желтую
00:29:15
окружность нажимаем единицу и бот нас
00:29:17
услышал появилась желтая сфера
00:29:21
[музыка]
00:29:23
сейчас неоднократно нажимаю кнопку 1 и
00:29:26
забегая в поле зрения бота
00:29:28
теперь темно-зеленая сфера символизирует
00:29:30
а зрение отмечать там где мы были
00:29:32
замечены и желтое где были услышаны и
00:29:34
если отключить дебаг в зоне слышимости
00:29:36
при нажатии кнопки 1 через принц string
00:29:39
мы получаем тот те которые оставили
00:29:41
функции майк нойз и зрение не было
00:29:43
никакого т.к.
00:29:44
также теги можно использовать для
00:29:46
определения того кто был замечен свой
00:29:48
или чужой
00:29:49
функцию майк 0 случаю присоединять к
00:29:51
анимации например на каждый шаг или
00:29:54
например если вы кинули камень то при
00:29:55
столкновении этого камня можно
00:29:57
воспроизвести звуковой эффект и так же
00:29:59
майк нойз для бота и здесь важная деталь
00:30:03
получается что при срабатывании любого
00:30:05
стимула не важно будь то зрение или слух
00:30:07
срабатывает одно из этих событий то есть
00:30:10
срабатывание любого из стимулов
00:30:11
считается обновлением а при обновлении
00:30:13
срабатывают и в interception апдейт от
00:30:15
вне зависимости от стимула но как их
00:30:18
разделять можно конечно добавить еще
00:30:22
один эй perception и например в одном
00:30:24
сделать слух а в другом зрение
00:30:30
таким образом на каждый perception
00:30:32
получится свой выделенный иван
00:30:34
perception апдейт от на один вешать
00:30:37
логику на зрение она другой на слух либо
00:30:40
можно поступить другим способом
00:30:42
уберем 2 ой ой perception контекстное
00:30:46
меню переходим во вкладку ой ой
00:30:48
функция относящиеся к perception
00:30:49
вынесены в отдельный раздел с таким же
00:30:51
названием perception эти функции мы
00:30:54
разберем в следующем уроке
00:30:55
берем функцию гиацинт class for стимулов
00:30:59
она возвращает какой стимул был
00:31:01
задействован и соединяем выход стимула с
00:31:07
соответствующим входом этой функции
00:31:10
получаем имя гид display name и можно
00:31:15
ориентироваться как-то по имени либо
00:31:17
давайте выведем это через принц string
00:31:21
[музыка]
00:31:25
отключим дэбак заходим зону слышимости
00:31:29
нажимаем единицу и получаем имя нашего
00:31:32
стимула и при заходе в область видимости
00:31:37
получаем имя конфига зрение
00:31:39
он же стимул чтобы разделять логику для
00:31:42
чувств через get дисплей ней можно
00:31:44
получить название стимула то чувство
00:31:46
которое было задействовано и здесь через
00:31:49
excel определяет по названию какой
00:31:51
стимул сработал затем делать branch
00:31:54
[музыка]
00:31:57
помимо зрения и слуха здесь еще есть
00:31:59
idem adsense конфиг с этим стимулом бот
00:32:02
реагирует на урон ой prediction sense
00:32:04
конфиг предсказывает где будет игрок или
00:32:06
какой-то другой павлин через пару секунд
00:32:08
берет как бы на упреждение я этим sense
00:32:11
конфиг сообщает о том что поблизости
00:32:13
есть кто то есть дружественной команды
00:32:15
это для обмена информацией между
00:32:17
несколькими ботами и ой ой touch конфиг
00:32:20
на прикосновение и в самом низу
00:32:23
sens здесь мы выбираем какое стимулов
00:32:25
будет доминирующей той самый важный если
00:32:28
мы выберем зрение tobot в первую очередь
00:32:29
будет реагировать на зрение и напоследок
00:32:35
как я говорил вначале затронем и ой
00:32:37
perception steam light source этот
00:32:39
компонент дает владеющему им эктору
00:32:41
способ автоматически регистрировать себя
00:32:43
в качестве источника раздражителя
00:32:46
стимула в системе восприятия ой ой
00:32:48
perception его также можно назвать
00:32:50
источник стимулов например вы подбираете
00:32:53
какой-то объект на сцене и он будет
00:32:55
зарегистрирован отдельно рассмотрим на
00:32:57
простом примере наш бот видит только
00:33:00
полны
00:33:01
у они видят остальные объекты на карте
00:33:02
перенесу на сцену куб из панели place
00:33:05
actors раздела basic поставлю его перед
00:33:09
ботом видите вот его не замечает только
00:33:14
нас теперь сделаем так чтобы бог замечал
00:33:16
этого вектора
00:33:17
этот куб выбираем его на сцене проверив
00:33:21
панели details жмем от компонент и
00:33:23
выбираем interception steam light source
00:33:27
[музыка]
00:33:29
регистра source for senses добавляем
00:33:32
источник стимула поскольку мы работаем
00:33:35
со зрением то чтобы бот замечал выберем
00:33:37
хсн сайт и чтобы автоматически быть
00:33:39
зарегистрированным поставим галочку аута
00:33:41
регистр a source
00:33:42
[музыка]
00:33:45
как видим теперь бот обнаружил этот куб
00:33:47
этот компонент
00:33:49
я perception стимула и source также
00:33:51
можно добавлять в компоненты bluprint of
00:33:53
мы также можем создавать
00:33:55
sense конфиге стимулы и источники
00:33:58
стимулов было принц bluprint класс пишем
00:34:01
в поиске ой ой sens берем и а essence
00:34:04
bluprint это был принят источника стимулов назову
00:34:08
его mai sunt source теперь возьму и я
00:34:11
essence конфиг bluprint это сам стимул
00:34:14
назову его ума essence config
00:34:17
[музыка]
00:34:23
и теперь смотрите май sensors это наш
00:34:26
стимул для саморегистрации так сказать в
00:34:29
perception а мой сын sconfig это стимул для самого
00:34:35
этой perception
00:34:38
это шаблон для создания своего стимула и
00:34:42
2 то шаблон для создания источника
00:34:45
стимулов эти оба bluprint а наследуется
00:34:47
от класса и essence рассматривать мы их
00:34:49
не будем если перейти в
00:34:51
и контроллер где находится interception
00:34:54
то в sens
00:34:56
мы можем обнаружить все источники
00:34:57
стимулов в том числе и наш если добавить
00:35:00
новый стимул то что мы создали мой сын
00:35:02
sconfig то в его implementation
00:35:05
мы выбираем источник стимула
00:35:07
раздражитель как помним это был мой
00:35:09
sensors если вам интересна подобная тема
00:35:12
или все курсы в целом то вы можете
00:35:14
поддержать проект
00:35:15
все необходимые ссылки под видео ну а
00:35:17
теперь можем приступать к следующему
00:35:19
уроку
00:35:21
[музыка]

Описание:

Это 10 урок из серии Искусственный интеллект в игровом движке Unreal Engine В этом уроке мы начинаем разбирать органы чувств/восприятия - AI Perception. Сперва изучим как работает AI Perception и затем подробно разберем Зрение для искусственного интеллекта - AI Sense Sight Config. Затем слух - AI Sense Hearing Config. Создадим на базе AI Perception логику Behavior Tree где бот будет бегать за игроком после тога как заметит. И на последок рассмотрим как сделать так что бы бот мог видеть не только Pawn нашего игрока, но и другие объекты Actor на сцене. Разовый донат https://new.donatepay.ru/@cyberstars Patreon - https://www.patreon.com/cyberstars Discord - https://discord.com/invite/z8t2uSWCBq Google Play - https://play.google.com/store/apps/dev?id=8243028543036659870 Facebook - https://www.facebook.com/unsupportedbrowser Instagram - https://www.facebook.com/unsupportedbrowser ВКонтакте - https://vk.com/cyberstars_entertainment

Готовим варианты загрузки

popular icon
Популярные
hd icon
HD видео
audio icon
Только звук
total icon
Все форматы
* — Если видео проигрывается в новой вкладке, перейдите в неё, а затем кликните по видео правой кнопкой мыши и выберите пункт "Сохранить видео как..."
** — Ссылка предназначенная для онлайн воспроизведения в специализированных плеерах

Вопросы о скачивании видео

mobile menu iconКак можно скачать видео "Урок 10 | Unreal Engine 4 / 5 Искусственный интеллект - Зрение и Слух ИИ / AI Perception"?mobile menu icon

  • Сайт http://unidownloader.com/ — лучший способ скачать видео или отдельно аудиодорожку, если хочется обойтись без установки программ и расширений. Расширение UDL Helper — удобная кнопка, которая органично встраивается на сайты YouTube, Instagram и OK.ru для быстрого скачивания контента.

  • Программа UDL Client (для Windows) — самое мощное решение, поддерживающее более 900 сайтов, социальных сетей и видеохостингов, а также любое качество видео, которое доступно в источнике.

  • UDL Lite — представляет собой удобный доступ к сайту с мобильного устройства. С его помощью вы можете легко скачивать видео прямо на смартфон.

mobile menu iconКакой формат видео "Урок 10 | Unreal Engine 4 / 5 Искусственный интеллект - Зрение и Слух ИИ / AI Perception" выбрать?mobile menu icon

  • Наилучшее качество имеют форматы FullHD (1080p), 2K (1440p), 4K (2160p) и 8K (4320p). Чем больше разрешение вашего экрана, тем выше должно быть качество видео. Однако следует учесть и другие факторы: скорость скачивания, количество свободного места, а также производительность устройства при воспроизведении.

mobile menu iconПочему компьютер зависает при загрузке видео "Урок 10 | Unreal Engine 4 / 5 Искусственный интеллект - Зрение и Слух ИИ / AI Perception"?mobile menu icon

  • Полностью зависать браузер/компьютер не должен! Если это произошло, просьба сообщить об этом, указав ссылку на видео. Иногда видео нельзя скачать напрямую в подходящем формате, поэтому мы добавили возможность конвертации файла в нужный формат. В отдельных случаях этот процесс может активно использовать ресурсы компьютера.

mobile menu iconКак скачать видео "Урок 10 | Unreal Engine 4 / 5 Искусственный интеллект - Зрение и Слух ИИ / AI Perception" на телефон?mobile menu icon

  • Вы можете скачать видео на свой смартфон с помощью сайта или pwa-приложения UDL Lite. Также есть возможность отправить ссылку на скачивание через QR-код с помощью расширения UDL Helper.

mobile menu iconКак скачать аудиодорожку (музыку) в MP3 "Урок 10 | Unreal Engine 4 / 5 Искусственный интеллект - Зрение и Слух ИИ / AI Perception"?mobile menu icon

  • Самый удобный способ — воспользоваться программой UDL Client, которая поддерживает конвертацию видео в формат MP3. В некоторых случаях MP3 можно скачать и через расширение UDL Helper.

mobile menu iconКак сохранить кадр из видео "Урок 10 | Unreal Engine 4 / 5 Искусственный интеллект - Зрение и Слух ИИ / AI Perception"?mobile menu icon

  • Эта функция доступна в расширении UDL Helper. Убедитесь, что в настройках отмечен пункт «Отображать кнопку сохранения скриншота из видео». В правом нижнем углу плеера левее иконки «Настройки» должна появиться иконка камеры, по нажатию на которую текущий кадр из видео будет сохранён на ваш компьютер в формате JPEG.

mobile menu iconСколько это всё стоит?mobile menu icon

  • Нисколько. Наши сервисы абсолютно бесплатны для всех пользователей. Здесь нет PRO подписок, нет ограничений на количество или максимальную длину скачиваемого видео.