Научная статья на тему 'ПРОЦЕСС РАЗРАБОТКИ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА СРЕДСТВАМИ ВИЗУАЛЬНОГО ПРОГРАММИРОВАНИЯ'

ПРОЦЕСС РАЗРАБОТКИ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА СРЕДСТВАМИ ВИЗУАЛЬНОГО ПРОГРАММИРОВАНИЯ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
244
67
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ИГРА / ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ / ВИЗУАЛЬНОЕ ПРОГРАММИРОВАНИЕ / UNREAL ENGINE / ПЕРСОНАЖ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Неретин В. М., Арсентьев Д. А.

Сегодня уже никого не удивить искусственным интеллектом, так как он является неотъемлемой частью почти каждой игры. Существуют целые книги, посвященные написанию искусственного интеллекта для игр. В основном, в книгах представлена информация для языков программирования. В статье приводится процесс создания искусственного интеллекта для игр визуальными инструментами.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Неретин В. М., Арсентьев Д. А.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «ПРОЦЕСС РАЗРАБОТКИ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА СРЕДСТВАМИ ВИЗУАЛЬНОГО ПРОГРАММИРОВАНИЯ»

1. Создание нового персонажа класса Character. Новый персонаж получает имя BPAI.

2. Выставление на сцену. Для того чтобы искусственный интеллект правильно функционировал, нам необходимо растянуть Nav Mesh Bounds Volume по всей площади, по которой ИИ может передвигаться. Найти его можно во вкладке Modes.

Modes World Outlmer г? Content Brows?

,-«» / * v Щ

Recently Placed

Visual Effects

^i;* Lightmass Character Indirect Deti

#1 Lightmass Importance Volume

Mesh Merge Culling vp!wi id

Nav Mesh Bounds Volume

All classes Nav Modifier Volume

§ Pain Causing Volume '¿I Physics Volume

Post Process volume

Рис. 1. Выставление сцены

3. Для управления ИИ создаем контроллер класса AIController и называем его C_AI. Заходим в контроллер и добавляем компонент AIPerception.

• Г- Components

+Add Component * ß

* C^AI (self)

%TransformComponent (Inherited)

PathFollowingComponent (Inherited)

ActionsComp (Inherited)

; Alperceptlon

Рис.2. Добавление компонента AlPerception

Этот компонент позволяет управлять «органами чувств» ИИ. В его свойствах

добавляем 2 сенсора: Sight Config и Hearing Config.

В Class Defaults объекта ИИ меняем контроллер на только что созданный CAI.

187

Заходим в Blueprint персонажа, добавляем компонент AIPerceptionStimuliSource и выставляем ему следующие настройки:

AIPerceptionStimuliSource Al Perception

Ало Register as Source Q

* Register as Source for Senses 2 Array elements + ® "Э

!! 0 шшшшя P X ~ 1

l яшмпяврд p * - -э

Рис.3. Настройки AIPerceptionStimuliSource

Данный компонент нужен для того, чтобы ИИ мог воспринимать игрока.

По нажатию кнопки Q игрок будет издавать звук, на который ИИ будет идти.

Система Behaviour Tree позволяет указывать, что должен делать ИИ в зависимости от параметров, которые хранятся в Blackboard. Для того чтобы описывать, как ИИ должен делать, используются Behaviour Tree Tasks.

Сначала создается Behaviour Tree и называется BT_AI. Далее создается Blackboard и называется её BBAI. После этого в Behaviour Tree в качестве доски с данными автоматически проставляется BBAI. В BBAI создаются переменные:

- CanSeePlayer(Bool) - проверяет, видит ли ИИ игрока;

- TargetLocation(Vector) - хранит координаты позиции, куда нужно идти.

Логика Behaviour Tree начинается с Root и идёт слева направо.

Далее добавляются 2 состояния: когда ИИ видит игрока и когда ИИ не видит игрока.

Selector - выбирает действие пока оно успешно выполняется.

Sequence - выполняет действия, пока одно из них не провалится.

Для того чтобы добавить условия, используется Decorator. Он позволяет менять требуемое значение переменной для выполнения условия. При нажатии на ПКМ по Sequence добавляется Blackboard Decorator.

"" Seque"'"D

Sequence

Toggle breakpoint '- Add breakpoint

д| Delete

Cut '-fa Copy im Duplicate Break Linkis)

Blackboard

Check Garneplay Tags on Aclor

Compare BHEntnes

Composite

ccndittonal Loop

cone check

Cooldown

Do es Path Eni st

Force Success

Is at Locatton

Is BBEntry Of Class

Keep in Corte

loop

Set Tag cooldown Tag Cooldown

Рис. 4. Добавление Blackboard Decorator

Теперь необходимо указать ИИ, что делать в случае, когда он видит или не видит игрока. Если ИИ видит, он должен получать и следовать к местоположению игрока. Если ИИ не видит игрока, он должен следовать к Target Location. То есть, пока не будет услышан звук, ИИ не сдвинется с места, потому что Target Location не будет меняться.

Для реализации сопровождения игрока необходимо создать новый Task, с названием его BTT_ChasePlayer и прописать преследование игрока.

Все в правильной последовательности подключается к Behaviour Tree.

Итоговый вариант будет выглядеть так:

к пост

»ttj'

J

Рис.5. Итоговый вариант

Теперь необходимо запустить Behaviour Tree в AIController. Когда ИИ видит или слышит игрока, компоненту AlPerception поступают сигналы, которые расписывают на выполняемые действия.

Когда компоненту AlPerception поступает сигнал о воздействии, необходимо взять информацию о поступивших сигналах и обновить переменные в Behaviour Tree.

Таким образом, с помощью системы Behaviour Tree можно с лёгкостью манипулировать поведением ИИ в зависимости от потребностей. Она также позволяет отслеживать состояние ИИ, на какой ветке происходит логика, значения переменных в Blackboard. Дополнительным плюсом может являться то, что эта система избавляет от лишней логики Blueprint персонажа. Взглянув на неё, даже необученный человек может понять, как работает ИИ.

Список литературы:

Портал издательской группы «ЭКСМО» [Электронный ресурс]. URL: https://eksmo.ru/book/izuchaem-unreal-engine-4-za-24-chasa-ITD965340/ (дата обращения 28.12.2019).

Туториал по Unreal Engine. Часть 2: Blueprints [Электронный ресурс]. URL: https://habr.com/ru/post/344446/ (дата обращения 28.12.2019).

Unreal Engine: официальный сайт [Электронный ресурс]. URL: https://docs.unrealengine.com/en-US/Engine/Blueprints/index.html (дата обращения 28.12.2019).

УДК 004.4'27

Погодин М.Д.

студент

Московский политехнический университет (Россия, г. Москва)

Унгуряну Д.

студент

Московский политехнический университет (Россия, г. Москва)

Арсентьев Д.А.

к.т.н., доцент кафедры «Информатика и информационные технологии»

Московский политехнический университет (Россия, г. Москва)

СРАВНЕНИЕ BLUEPRINT VISUAL SCRIPTING В UNREAL ENGINE И VISUAL SCRIPTING В UNITY

Аннотация: в статье рассматривается возможности визуального программирования для создания игр. В процессе написания статьи были проанализированы возможности визуального программирования в Unreal Engine и Unity.

Ключевые слова: разработка игр, визуально программирование, среда разработки, Unreal Engine, Unity.

Многим начинающим GameDev разработчикам предоставляется трудный выбор между множеством игровых движков. Решение зависит от того, с какими языками они лучше всего знакомы, какие игры они собираются разрабатывать, и на какие платформы больше всего ориентированы.

i Надоели баннеры? Вы всегда можете отключить рекламу.