Найти в Дзене
Unreal Engine - это просто

Создание базовой ИИ системы патрулирования для NPC в Unreal Engine

Весь код, связанный с базовым патрулированием неигровых персонажей, мы разместим в Event Graph нашего собственного класса AI Controller. Для создания примера выберем стандартный проект Unreal Engine, ориентированный на вид от третьего лица. **Предварительные шаги:**
1. Создадим новый класс, который будет отвечать за управление искусственным интеллектом, — «AI Controller».
2. Подключим созданный нами пользовательский AI Controller к стандартному классу персонажа «BP_ThirdPersonCharacter».
3. Переместим объект персонажа «BP_ThirdPersonCharacter» на игровой уровень.
4. Для навигации ИИ добавим на игровой уровень специальную навигационную сетку «Nav Mesh Bounds Volume». Теперь, когда все подготовительные этапы завершены, можно приступить к написанию кода в Event Graph AI Controller. 1) Код будет расположен в событии «Event On Possess». Это событие активируется, когда контроллер ИИ получает контроль над персонажем (Pawn). 2) Ключевым элементом нашего кода является функция «AI Move To», кото

Весь код, связанный с базовым патрулированием неигровых персонажей, мы разместим в Event Graph нашего собственного класса AI Controller. Для создания примера выберем стандартный проект Unreal Engine, ориентированный на вид от третьего лица.

**Предварительные шаги:**
1. Создадим новый класс, который будет отвечать за управление искусственным интеллектом, — «AI Controller».
2. Подключим созданный нами пользовательский AI Controller к стандартному классу персонажа «BP_ThirdPersonCharacter».
3. Переместим объект персонажа «BP_ThirdPersonCharacter» на игровой уровень.
4. Для навигации ИИ добавим на игровой уровень специальную навигационную сетку «Nav Mesh Bounds Volume».

Теперь, когда все подготовительные этапы завершены, можно приступить к написанию кода в Event Graph AI Controller.

1) Код будет расположен в событии «Event On Possess». Это событие активируется, когда контроллер ИИ получает контроль над персонажем (Pawn).

2) Ключевым элементом нашего кода является функция «AI Move To», которая отвечает за перемещение заданного Pawn в указанные координаты. Эта функция имеет три выходных пина, из которых нам потребуются только два: «On Success» (в случае успеха при перемещении) и «On Fail» (в случае неудачи).

К этим двум пинам подключим функцию «Delay» с параметром «Duration = 1». Это создаст задержку выполнения последующего кода на одну секунду. После задержки снова передадим процесс в функцию «AI Move To», что обеспечит непрерывный цикл работы.

3) Теперь необходимо настроить входные параметры для функции «AI Move To». Первым параметром, который мы настроим будет «Pawn». В него мы передадим объект нашего персонажа NPC, которого хотим переместить — то есть, текущий контролируемый Pawn. Для получения информации о нём воспользуемся нодой «Get Controlled Pawn». Эта нода вернёт нам объект нашего контролируемого персонажа. Затем передадим этот объект в первый входящий параметр функции «AI Move To».

4) Следующим шагом нам необходимо получить текущие координаты нашего персонажа. Для этого мы можем использовать две функции в связке:
- функцию «Get Controlled Pawn», которая возвращает нам информацию о текущем игровом персонаже, управляемом искусственным интеллектом (AI Controller).
- и вторую функцию «Get Actor Location», которая как раз и предоставит нам необходимые координаты местоположения нашего NPC.

5) Наконец, создадим новые случайные координаты для перемещения NPC. Для этого воспользуемся функцией «Get Random Reachable Point in Radius». В качестве входных данных для неё передадим координаты местоположения, полученные в пункте 4. Как я уже упоминал ранее, эти координаты представляют собой текущие координаты NPC.

Функция «Get Random Reachable Point in Radius» отвечает за вычисление новых координат для NPC, исходя из координат, указанных в четвёртом пункте, но в пределах заданного радиуса. Радиус задаётся во втором параметре — «Radius». В нашем случае радиус будет составлять 1000 пунктов. Полученные новые координаты будут переданы в параметр «Destination» функции «AI Move To» в качестве новой цели для перемещения Pawn.

Таким образом, функция «AI Move To» будет случайным образом перемещать NPC в новое место, каждый раз выбирая новые координаты в пределах радиуса в 1000 единиц от его текущего местоположения.

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

-2

* Подробный разбор класса Контроллера ИИ со всеми его настройками, функциями, практикой и примерами Вы можете изучить в нашей статье:
Unreal Engine AI Controller

*

*

*