Глаза охотника: как ИИ в Horizon Zero Dawn воспринимает окружение

Сложная система навигации и отдельные карты авиамаршрутов.

Каждый робот в Horizon Zero Dawn имеет собственную систему сенсоров, которые помогают ему реагировать на происходящее, передвигаться по земле, по воздуху и так далее. При этом, поведение машин тесно связано с анимациями, которые позволяют сделать их движения угрожающими и реалистичными.

Автор блога AI and Games Томми Томпсон опубликовал вторую часть разбора принципов функционирования ИИ в Horizon Zero Dawn. На этот раз он рассказал про системы, которые помогают каждой отдельной машине выстраивать своё поведение в зависимости от окружающих условий. Мы выбрали из материала главное.

Глаза охотника: как ИИ в Horizon Zero Dawn воспринимает окружение

Сенсоры и передвижение

Существует значительное количество уникальных датчиков, которые могут использовать машины: глаз Watcher; радары и датчики приближения Longlegs; слуховые датчики, которые улавливают всё от взрывов на большом расстоянии до бросков камня; способность ощущать столкновение с игроком. У всех роботов есть набор этих сенсоров, каждый из которых откалиброван по-разному. Благодаря этому, например, легче подкрасться к Watcher или Grazer, но намного сложнее застать врасплох Stalker.

Глаза охотника: как ИИ в Horizon Zero Dawn воспринимает окружение

Традиционная сенсорная система позволяет ИИ реагировать на происходящее, и они либо «видят» и «слышат», либо ничего не делают. Но на самом деле сенсорные системы содержат гораздо больше нюансов. Это достигается с помощью блоков данных, которые прикрепляются к объектам, и могут вызывать раздражение в одном из датчиков машины. К раздражителям относится игрок, NPC, камни, стрелы и другие машины.

Эти данные сообщают получателю — роботу, который что-то обнаружил, — информацию о том, что он нашёл. Следовательно, машины и NPC могут различить мёртвое тело и стрелу, которая пронеслась мимо их головы. Это также гарантирует, что они не обнаружат героя, который прячется в высокой траве.

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

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

А для противников в Horizon Zero Dawn — это особенная проблема, потому что они должны вести себя одновременно и как роботы, и как животные. Для этого важно, чтобы навигационная и боевая системы обращали внимание на расстояние, которое машина пройдёт, и учитывали набор инструментов анимации, который регулирует её визуализацию.

Зона триггера для активации анимации атаки
Зона триггера для активации анимации атаки

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

Навигация

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

Навигационная сетка для наземного робота
Навигационная сетка для наземного робота

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

Следовательно, люди могут перемещаться по маленькой сетке наряду с Watchers, в то время как у Thunderjaw и ему подобных есть своя навигационная сетка. Ещё есть две дополнительные навигационные сетки: одна для плавающих машин, таких как Snapmaw, а также уникальная сетка, которая гарантирует, что машины стоят в подходящих местах, если игрок пытается залезть на них.

Более крупные животные имеют отдельные навигационные сетки
Более крупные животные имеют отдельные навигационные сетки

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

Как упоминалось в первой части, патрули активно избегают высокой растительности, но они будут проходить через неё при необходимости. А небольшие скалы и деревья могут стать непреодолимыми препятствиями для всех, кроме Behemoths, Rockbreakers и Thunderjaws. Эти звери могут разбивать камни на части и выкорчёвывать деревья при условии, что они находятся в состоянии гнева или преследуют игрока. В других обстоятельствах они будут относиться к ним так же, как к любому другому препятствию.

Перемещение по воздуху

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

В мире Horizon Zero Dawn можно найти холмы, леса, скалы и крутые горные подъёмы. Glinthawk и Stormbird должны хорошо ориентироваться в воздухе: взлетать, следовать по маршруту патрулирования, приземляться, а также пикировать и атаковать игрока. Для всего этого, существует отдельная навигационная система в воздухе.

Система навигации в воздухе использует методы Mip Map для хранения карты высот с различными уровнями детализации
Система навигации в воздухе использует методы Mip Map для хранения карты высот с различными уровнями детализации

Это оказалось испытанием для команды, которая создавала ИИ. Используемая техника называется — «иерархическое планирование пути по картам MIP». MIP Mapping — это метод, используемый в компьютерной графике, который направлен на уменьшение необходимого объёма памяти за счёт смены разрешения одних и тех же текстур или изображений. Он идеально подходит для управления уровнем детализации в играх, потому что объекты на расстоянии нескольких сотен метров всё ещё видны, но используют меньше памяти, чем те, которые находятся прямо перед пользователем.

Когда машина летит над землёй, ей не нужно точно знать локальную геометрию локаций, в которой она окажется через минуту, но необходимо знать всё вокруг на случай, если ей понадобится приземлиться. Система планирования траектории для летающих машин использует MIP Mapping для отображения высот локальной геометрии. Когда происходит передвижение сверху вниз, карта становится всё более сложной и реалистичной. Уровень 3 — это простая и абстрактная модель, а карта уровня 0 — довольно точная.

Данные о высоте на разных уровнях Mip Map и рассчитанные траектории полёта
Данные о высоте на разных уровнях Mip Map и рассчитанные траектории полёта

Как и навигационная сетка, MIP-карты создаются в моменты, когда это необходимо для расчёта полёта в пределах фиксированной области. Когда роботу нужно лететь в какое-то место, ИИ использует алгоритм поиска A* по самому высокому уровню Mip Map, благодаря чему вычисляет простейшую траекторию по грубой версии геометрии. А* делает взлёт и преодоление препятствий более ресурсоёмкими, поэтому машины чаще облетают горы, а не пролетают над ними.

Каждый раз, когда ИИ активирует алгоритм A*, он имеет только фиксированное количество итераций, поэтому, как только траектория построена на самой простой MIP-карте (известной как уровень 3), он проверяет вычисленный путь на картах уровня 1 и 0. Такая система создана для реалистичного и более точного воспроизведения передвижения. Кроме того, он сглаживает путь так, чтобы избежать крутых поворотов.

Эта система работает очень хорошо, учитывая, что любая машина, находящаяся в воздухе, всегда имеет план полёта. Но у такого подхода есть одно ограничение: учитывая, что система функционирует на основе понятия максимальной высоты определённого региона карты, роботы не могут летать под мостами или скалами.

Глаза охотника: как ИИ в Horizon Zero Dawn воспринимает окружение

С помощью наземной навигационной сетки и воздушных MIP-карт летающие машины могут затем координировать атаки, приземления и так далее. Роботы, которые парят над игроком во время атаки, всё ещё используют заранее рассчитанный план полёта, только они не обязательно строго соблюдают траекторию.

Для взлёта и посадки используется особая система, которая взаимодействует с навигационной сеткой и воздушными MIP-картами. Обычно для приземления она ищет точки, находящиеся чуть выше средней высоты на поверхности, а затем высчитывает правильный угол и скорость. На земле машина использует навигационную сетку, соответствующую её размеру. При падении используется тот же инструмент.

Отдельно стоит отметить атаку Stormbird: машина сперва кружит над игроком, а затем пикирует прямо на его позицию. Но главная особенность заключается в том, что робот во время атаки пытается затмить собой солнце. Враг часто может долго кружить в ожидании подходящих условий. Изначально такое поведение было создано непреднамеренно, но во время тестов оказалось, что резкая смена освещения ещё больше дезориентирует пользователя, поэтому разработчики решили оставить это в игре.

Глаза охотника: как ИИ в Horizon Zero Dawn воспринимает окружение

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

137137
40 комментариев

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

38
Ответить

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

2
Ответить

Но по умолчанию Horizon просто целую панель управления показывает.

Ответить

Давайте уже вторую часть делайте блеат!

23
Ответить

да делают уже, к релизу пс5 доделают

6
Ответить
Комментарий удалён модератором

Лол, один из лучших сюжетов за последние годы, фасттравел есть сразу почти, трав хватает всегда, роботов убивать по сюжетке не надо массово ни разу. Персонажи - не огонь, согласен. Но ты играл вообще?) Бред какой-то говоришь из головы

44
Ответить