Как работает ИИ в Final Fantasy XV

Краткое описание основных систем.

Разработчик ИИ из Square Enix Юитиро Миякэ на GDC 2018 выступил с докладом о работе искусственного интеллекта в Final Fantasy XV. Он рассказал, какие техники используются в игре, чтобы оживить персонажей, а также описал внутренние системы, которые отвечают за все действия NPC. Мы выбрали из выступления главное.

По словам Миякэ, в Final Fantasy XV в работе ИИ участвуют три главных компонента: мета-ИИ, который отвечает за все события, связанные с NPC; ИИ персонажа, который контролирует как одиночное поведение, так и групповое; а также навигационный ИИ, который отвечает за сбор информации.

Мета-ИИ — это «режиссёр» игры, который учитывает контекст происходящего и настраивает поведение NPC в соответствии с ситуацией. Например, если игрок попадает в серьёзную передрягу, то именно мета-ИИ отвечает за то, чтобы к герою на помощь пришёл его компаньон.

При создании ИИ персонажа большое значение имеет анимация — за каждым действием закреплено своё движение, поэтому разработчикам было важно сделать так, чтобы переходы между ними выглядели естественно и корректно. Фактически, авторам игры пришлось искать способ совместить анимацию и ИИ.

Для этого они взяли промежуточный слой — тело, которое связывает два этих аспекта. При этом за каждое звено этой системы отвечали разные специалисты: ИИ — геймдизайнеры, тело — программисты, анимация — аниматоры.

Как работает ИИ в Final Fantasy XV

Искусственный интеллект в игре — это динамическая структура, которая получает информацию из игрового мира и выдаёт действие, соответствующее ситуации. Когда ИИ получает информацию, запускается процесс, состоящий из трёх этапов: распознавание, принятие решения, совершение действия.

Получение информации происходит так же, как и в реальном мире — у ИИ есть специальные сенсоры, которые позволяют анализировать окружение.

​Это визуальный сенсор одного из монстров: если герой попадёт в синюю зону, то существо «увидит» его
​Это визуальный сенсор одного из монстров: если герой попадёт в синюю зону, то существо «увидит» его
Таблица, в которой прописаны условия того, как NPC реагирует на разные цели, если видит их
Таблица, в которой прописаны условия того, как NPC реагирует на разные цели, если видит их

Обычно принятие решений — сложный процесс, но в играх оно упрощено до семи простых алгоритмов. Например, в основе rule-based ИИ лежит система правил — при выполнении определённого условия выполняется соответствующее действие. А behaviour-based ИИ основывается на дереве поведения, в котором последовательно размещены действия персонажа, которые выполняются в зависимости от условий. Этот подход отличается тем, что он позволяет плавно адаптировать поведение.

В state-based ИИ главную роль играют состояния — например, состояние персонажа меняется при смене состояния мира. Конечные автоматы позволяют непрерывно контролировать каждый шаг персонажа.

Из конечных автоматов можно создать иерархичную систему 
Из конечных автоматов можно создать иерархичную систему 

Разработчики Final Fantasy XV решили использовать преимущества разных подходов, поэтому создали гибридную систему, соединив конечные автоматы и дерево поведения.

​Диаграмма, на которой изображена гибридная система
​Диаграмма, на которой изображена гибридная система

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

Как работает ИИ в Final Fantasy XV

Зачастую ИИ приходится решать сразу несколько задач одновременно, поэтому он использует параллельное мышление, чтобы совместить разные действия. Другая особенность ИИ в Final Fantasy XV заключается в том, что общая логика поведения может быть присуща сразу множеству монстров. Но при определённых условиях это общее поведение заменяется на то, что соответствует конкретному типу противников.

После принятия решения ИИ начинает движение в игровом мире. Чтобы передвигаться по карте, ИИ использует навигационную сетку, которая растянута на весь игровой мир. Также она содержит информацию для передвижения NPC любых размеров.

​Можно увидеть, что nav-mesh также содержит информацию о переходах между разными по высоте уровнями
​Можно увидеть, что nav-mesh также содержит информацию о переходах между разными по высоте уровнями

Для эффективного использования способностей персонажей, с учётом особенностей ландшафта и в реальном времени, применяется Point Query System. Её суть заключается в том, что ИИ оценивает пространство вокруг цели, высчитывает все возможные позиции, а затем подбирает точку, с которой можно эффективнее всего применить способность.

Сперва есть конкретная ситуация, которую анализирует ИИ: он создаёт точки вокруг; убирает те, что не подходят из-за ландшафта и слишком большого расстояния до цели; убирает точки, находящиеся слишком близко к напарникам; а затем находит нужную позицию
Сперва есть конкретная ситуация, которую анализирует ИИ: он создаёт точки вокруг; убирает те, что не подходят из-за ландшафта и слишком большого расстояния до цели; убирает точки, находящиеся слишком близко к напарникам; а затем находит нужную позицию

PQS применяется для выполнения разных задач: для поиска позиции атаки монстров, союзников; поиска места для начала разговора с напарником или спауна противников.

Например, для поиска места диалога с напарником используются все три компонента системы: мета-ИИ, ИИ персонажа и система навигации.

​Мета-ИИ даёт задачу искусственному интеллекту персонажа найти точку для диалога с помощью навигационной системы
​Мета-ИИ даёт задачу искусственному интеллекту персонажа найти точку для диалога с помощью навигационной системы

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

​Пример поиска свободного пути
​Пример поиска свободного пути

Для адекватной атаки монстра ИИ анализирует положение игрока в пространстве и подбирает нужное движение — у каждой атаки есть своя зона поражения, и если герой попадает в неё, то противник применяет соответствующий удар.

63
16 комментариев