Найти в Дзене

Введение в AI (UE4/UE5)

Здравствуйте
С данной статьи начинается, по большей части, гайд, связанный с разработкой искусственного интеллекта на движке Unreal Engine. В данный момент я пользуюсь UE5, но большинство функций присутствует и в версии UE4. Так как это первая статья, я решил описать основные компоненты, которые будут использоваться AI (artificial intelligent), или же просто ИИ. Самым первым компонентом, с которого всё и начинается, является AI Controller. Следуя из названия можно понять, что это "мозг" ИИ (насколько бы интересно это не звучало). Существует два вида контроллеров: простой(подходит для actor'ов, которых будет крайне мало, почти в единичном количестве (почему - объясню позже)) и контроллер толпы (DetourCrowdController). Я рекомендую использовать контроллер толпы, если вы хотите, чтобы ИИ было больше чем 5 на уровне. Причина проста. В случае обычного контроллера, ИИ не будет волновать кто рядом, помешает ему кто-то при передвижении до требуемой точки. Это будет вызывать некоторые проблемы

Здравствуйте
С данной статьи начинается, по большей части, гайд, связанный с разработкой искусственного интеллекта на движке Unreal Engine. В данный момент я пользуюсь UE5, но большинство функций присутствует и в версии UE4.

Так как это первая статья, я решил описать основные компоненты, которые будут использоваться AI (artificial intelligent), или же просто ИИ.

Самым первым компонентом, с которого всё и начинается, является AI Controller. Следуя из названия можно понять, что это "мозг" ИИ (насколько бы интересно это не звучало). Существует два вида контроллеров: простой(подходит для actor'ов, которых будет крайне мало, почти в единичном количестве (почему - объясню позже)) и контроллер толпы (DetourCrowdController).

Я рекомендую использовать контроллер толпы, если вы хотите, чтобы ИИ было больше чем 5 на уровне. Причина проста. В случае обычного контроллера, ИИ не будет волновать кто рядом, помешает ему кто-то при передвижении до требуемой точки. Это будет вызывать некоторые проблемы, т.к. противники начнут толкаться, и большинство из них не смогут дойти в точку назначения.

Работа обычного AI Controller
Работа обычного AI Controller

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

-2

Для контроллеров также существует дополнительный элементы AISense. Из названия можно понять, что он добавляет чувства. Из основных (т.е. то что по моему мнению используется наиболее часто) можно выделить Hearing (слух) и Sight (Зрение). Но о их работе я расскажу в других статьях.

Другой, или лучше будет сказать, другие элементы, требуемые для правильной работы ИИ это древо поведения (Behaviour Tree) и доска (Blackboard).

Записал я их в один пункт, так как они взаимосвязаны, и друг без друга работать не смогут.
Первый элемент, как понятно из названия, является "Древом" в котором каждая из ветвей приводит к какому-то действию, которые ИИ исполнит. А доска служит для хранения различных значений, или данных. В некоторых случаях одна доска, может быть использована для нескольких деревьев, так что это не критично.

Внешний вид древа поведения
Внешний вид древа поведения
Внешний вид доски (Blackboard)
Внешний вид доски (Blackboard)

Задания в древе выполняются слева направо. Ну или можно посмотреть по числам, которые расположены в верхнем правом углу таска(task)
В древе поведения могут присутствовать как основные функции (Sequence - последовательность выполнения; Controller - выполняется одна из ветвей до тех пор пока не будет получен успешный вывод; и Simple Parallel - используется, когда во время выполнения одного таска, должен выполнятся и другой) так и таски.
Из-за тасков ИИ и выполняет какие-либо действия, начиная от ходьбы, и заканчивая проигрыванием звука. В UE присутствуют готовые таски, но они очень просты, и я бы не советовал их использовать при создании ИИ, который должен уметь не только ходить, но и выполнять другие действия. Так что можно создавать и свои собственные таски, но об этом я расскажу в другой статье.

Помимо тасков могут присутствовать decoration(декорации) и services(я называю это сервисом). Первые используются для "улучшения" таска, либо проведения каких-либо условий (например Blackboard может проверять наличие значения), а второй элемент похож на таск внутри таска. То есть, он выполнятся в самом начале перед таском. Единственное место где я успел его использовать - для нахождения случайной точки, чтобы ИИ туда последовал.

Из всего вышеперечисленного можно создать следующую картину взаимодействия элементов при создании ИИ:

Древо работы ИИ
Древо работы ИИ

По большей части, это всё, что можно посчитать основным при создании противников, и просто ИИ в Unreal Engine, так что в следующей статье я буду уже объяснять саму работу.

Благодарю за внимание.