В первая часть исследования искусственного интеллекта Горизонт: Ноль Рассвета Я объяснил, как в игре создаются стада животных-машин, управляемых ИИ.
Для этого требуется сложная система иерархии агентов, в которой каждая машина может принимать решения о том, как вести себя, с помощью иерархического сетевого планировщика задач, а групповые агенты сотрудничают, чтобы назначить роли и обязанности машинам как частям стада.
Все это часть системы под названием «Коллектив», которая поддерживает экосистему всех автомобилей в мире, пока пользователь находится в игре.
В этой заключительной статье мы более подробно рассмотрим системы, которые отдельные машины могут использовать в рамках своего базового поведения.
К ним относятся сенсорные системы, навигация для наземных и летающих транспортных средств, а также тесная связь между поведением искусственного интеллекта и системами анимации, обеспечивающая опасное, но в то же время реалистичное поведение каждого транспортного средства.
Датчики и движение Во-первых, давайте посмотрим на датчики, которые машины используют для запуска реакций ИИ, и на то, как анимация связана с общим процессом выполнения их действий.
Машина может использовать значительное количество уникальных датчиков: визуальные датчики, например, глаза.
"рыцарь" , радары и датчики присутствия "длинноногий" , слуховые датчики, улавливающие звуки далеких взрывов и бросков камней поблизости, а также способность ощущать прикосновение игроков к машине.
В каждом автомобиле имеется набор этих датчиков, откалиброванных по своим значениям чувствительности, благодаря чему они могут приблизиться, например, к «Я бродяга» или "для жвачных животных" довольно просто, но "охотник" гораздо сложнее поймать.
Традиционная сенсорная система может только отслеживать события, происходящие вокруг ИИ, и «видеть»/«слышать» их, но на самом деле сенсорная система гораздо более тонкая.
Они используют пакеты информации, прикрепленные к объектам, которые могут вызвать раздражение на одном из датчиков машин: такими объектами могут быть игрок, другие NPC, камни, летящие стрелы, другие машины и природа.
Эти данные сообщают получателю (машине, которая что-то почувствовала) информацию о том, что она обнаружила, и о ее состоянии.
Поэтому машины, как и человеческие NPC, могут понять разницу между трупом, лежащим перед ними, и стрелой, просвистевшей мимо их головы; кроме того, это позволяет сделать так, чтобы игрок, прячущийся в высокой траве или за деревьями, не был заметен — машины получают информацию о том, что в этом состоянии он невидим.
Каждый персонаж ИИ, будь то машина или человек, способен обрабатывать и интерпретировать сенсорные данные по-разному, поэтому определенная информация может игнорироваться некоторыми персонажами, в то время как другие реагируют на нее соответствующим образом.
Фактически, в зависимости от мощности датчика в машине, это может уменьшить объем данных, которые он может считать из события датчика.
Это позволяет вам управлять возникающими свойствами игры, чтобы каждый тип персонажей мог реагировать на информацию по-своему.
Если ИИ должен выполнять действие на основе этих сенсорных данных, то нам все равно нужно, чтобы оно выглядело реалистично.
Поэтому, когда машина решает предпринять действие, например переехать в новое место, исследовать помехи или атаковать игрока, возникает задача максимально реалистично анимировать эти действия.
Анимировать эти машины — очень сложная задача: они должны выглядеть как живые прототипы и иметь отчетливо машинное поведение.
Для этого необходимо, чтобы как навигационная, так и боевая системы учитывали расстояние, которое должно пройти транспортное средство, а набор инструментов анимации должен корректировать корневые кости анимации и смешивать их в соответствии с воспринимаемым расстоянием и временем движения.
Это гарантирует, что независимо от расстояния и скорости движения транспортного средства оно сможет запустить анимацию, перейти к основному поведению, а затем правильно и в нужное время смешать их.
Это важно для таких действий, как бег к определенной точке, когда машине нужно не только замедлиться, но и остановиться в нужной точке.
Но особенно это важно в бою.
Многие анимации, используемые для атак, имеют две отдельные последовательности: «взмах», сигнализирующий о начале атаки, за которым следует последующее действие, наносящее урон.
В Горизонт: Ноль Рассвета метод, аналогичный тому, о котором я рассказывал в статье про ИИ-игры РОК : система отслеживает текущее движение транспортного средства, смешивает анимацию движения или атаки, чтобы добраться до нужных мест, а затем следит за тем, чтобы транспортное средство завершило или остановилось точно в конце.
Навигация Есть еще одна серьезная задача, о которой я еще не говорил – навигация.
Задача перемещения автомобилей по миру очень сложна: существует множество уникальных типов врагов, разных размеров и форм.
Поэтому они должны передвигаться по местности естественным для них способом.
Кроме того, они должны распознавать изменения локальной геометрии и адаптироваться к ним или просто игнорировать их, в зависимости от типа машины.
Для этого требуется широко используемый инструмент искусственного интеллекта, называемый навигационной сеткой.
Navmesh хранит информацию о том, как конкретный персонаж может передвигаться по карте, исходя из того, что для него считается препятствиями в мире.
Хотя мы можем вычислить все это во время работы игры, такие данные обычно записываются или записываются до выпуска игры и загружаются в память по мере необходимости.
Учитывая, что карта Горизонт: Ноль Рассвета огромен и в конкретный момент времени требуются только отдельные его сегменты (ИИ активен и движется только рядом с игроком), навигационная сетка создается во время выполнения игры, но только в непосредственной близости от игрока.
Но самое интересное, что используется не одна навмеша, а шесть! Четыре из них обеспечивают движение персонажа в зависимости от размера объекта: маленький, средний, большой или огромный.
Поэтому люди и марсоходы могут передвигаться по мелкой сетке, а у машин вроде «Громозева» навсетка практически полностью принадлежит им.
Кроме того, есть две дополнительные навмеши: одна для плавающих машин, например, для «снапзубов», а также уникальная сетка, заставляющая машины стоять в удобных местах на случай, если игрок попытается на них залезть.
В каждом из этих случаев препятствия могут блокировать или изменять структуру навигационных сеток, а система пересчитывает изменения в реальном времени, чтобы движущиеся препятствия (и даже другие автомобили) могли влиять на возможность перемещения по пространству.
Интересно здесь то, что препятствия могут иметь разные свойства, а могут быть совершенно непроходимыми или просто нежелательными для перемещения — но это сильно зависит от состояния ИИ поведения автомобиля.
Как указано в Части 1, однажды созданные активные патрульные машины избегают растительности, в которой можно спрятаться, но при исследовании близлежащих источников беспокойства трава по-прежнему нежелательна, и машина все равно может проехать через нее, если это необходимо.
Тот же принцип применим к небольшим камням и деревьям: это непроходимые объекты, за исключением крупных транспортных средств, таких как "бегемоты" , «кусатели камней» И "Громозевы" .
Эти монстры могут ломать камни и выкорчевывать деревья, но только если они злятся или преследуют игрока.
Находясь в состоянии иного поведения, эти машины воспринимают такие препятствия, как любые другие.
Воздушное путешествие Хотя эта цепочка навигационных инструментов работает с наземными транспортными средствами всех размеров и форм, она совершенно не работает для тех, кто находится в воздухе.
NPC, перемещающиеся по воздуху, должны не только знать о ближайших препятствиях, чтобы избежать столкновения с деревьями или скалами, но также должны знать высоту геометрии вокруг них.
Мир Horizon Zero Dawn полон холмов, лесов, скал и крутых подъемов.
Два типа летающих машин.
"летающий змей" И "буревестник" , должны уметь передвигаться по воздуху таким образом, чтобы иметь возможность взлетать, ориентироваться по маршрутам патрулирования, приземляться, а также снижаться и при необходимости атаковать игрока.
Для этого в игре предусмотрена не только наземная навигационная сетка, но и совершенно отдельная система для воздушной навигации.
Его создание оказалось непростой задачей для отдела разработки игры по искусственному интеллекту.
Он использовал технику, называемую иерархическим планированием пути по картам MIP. MIP-текстурирование — это метод, используемый в компьютерной графике.
направленный на минимизацию объема памяти, занимаемой текстурой или изображением.
Для этого создается набор одинаковых изображений с постепенно уменьшающимся разрешением.
Такое решение идеально подходит для управления уровнем детализации в играх: объекты в сотнях метров от игрока видны, но используют меньше текстурной памяти, чем те, что расположены рядом с игроком и используют максимальное качество.
Этот подход был применен к навигации, потому что, когда машина летит по маршруту, проложенному в мире, ей не нужно с полной точностью знать локальную геометрию того, где она будет через минуту, но ей необходимо знать местоположение Землю перед тем, как она вот-вот приземлится.
Система планирования пути для самолетов использует текстурирование MIP для создания карты высот локальной геометрии, структуры данных, которая сообщает нам высоту в заданной позиции x/y в мире.
MIP-текстуры имеют четыре уровня, и по мере приближения к земле они становятся более сложными и реалистичными.
Уровень 3 — это простая и абстрактная модель, а текстура уровня 0 — довольно точная карта высот мира.
Во многом так же, как и навигационные сетки, мип-текстуры создаются во время выполнения игры и по мере необходимости: при полете в пределах определенной области машине не нужно знать данные о высоте всего мира.
Когда им нужно перелететь в другое место, ИИ навигации полета запускает алгоритм поиска A* на mip-текстуре самого высокого уровня, то есть он вычисляет простейшую версию траектории полета на основе приблизительной версии геометрии.
Алгоритм A* делает полет над препятствиями и под ними более затратным, чем облет их, поэтому автомобили чаще зависают возле гор и скал, чем пролетают над ними.
Каждый раз, когда система вызывает алгоритм A*, она имеет лишь ограниченное количество итераций, поэтому после расчета пути из простейшей mip-текстуры (уровень 3) она берет определенный сегмент рассчитанного пути, а затем улучшает его путем заимствования данные с уровней 1 и 0. чтобы сделать их более реалистичными и соответствующими геометрии.
Он также сглаживает маршруты, устраняя крутые уклоны и резкие повороты, делая их более реалистичными.
Эта система работает очень хорошо, любой летательный аппарат в воздухе всегда имеет план полета (даже когда он плохой), и при необходимости может улучшить его, многократно вызывая алгоритм поиска, чтобы путь становился все более естественным.
Кроме того, это эффективное использование памяти, но у этого подхода есть один недостаток — так как он основан на максимальной высоте заданной области карты.
машины не могут пролетать под мостами или каменными арками, но чаще всего игрок этого не замечает.
Благодаря наземной навигационной сетке и воздушным мип-текстурам летающие машины могут координировать атаки, приземления, пикирующие атаки и даже падать на землю в соответствии с геометрией.
Транспортные средства, зависающие над игроком во время атаки, по-прежнему используют заранее рассчитанный план полета, но не обязательно движутся по этому пути и воспроизводят соответствующую анимацию.
Скорость транспортного средства привязана к его режиму (полет, зависание или зависание), поэтому они могут реалистично кружить вокруг игрока, используя один и тот же инструмент навигации.
При взлете и посадке используется отдельная система, которая взаимодействует с полетной и наземной навигационной сеткой: она ищет подходящие позиции на сетке для приземления (обычно точки немного выше над землей, чем в среднем по местности), а затем выбирает углы и скорости.
При приземлении транспортное средство использует наземную навигационную сетку, соответствующую его размеру.
Тот же принцип на самом деле применяется при столкновении, только в этом случае единственные подходящие позиции для приземления основаны на текущем курсе автомобиля, и хотя столкновение выглядит менее изящным, на самом деле используются те же инструменты.
Специально запрограммированным крайним случаем является атака с пикирования.
"буревестник" .
«Буревестник» кружится над игроком, а затем падает вниз к текущей позиции игрока.
Он использует те же системы, но гораздо более драматичным образом.
Однако здесь есть еще одна хитрость: кружа над игроком, «буревестник» часто дожидается, пока солнце закроется, прежде чем атаковать.
Возможно, вы заметили это во время игры, и это сделано намеренно.
При тестировании ИИ "буревестник" QA заметил, что он периодически блокирует солнце игрока, и это делает его атаку более дезориентирующей, поскольку свет смещается во время пикирования и ослепляет игрока.
В то время это было совершенно случайно, но затем команда разработчиков ИИ решила, что это должно происходить чаще.
Окончательно
Horizon Zero Dawn создает уникальный игровой процесс; Мир, наполненный механической жизнью, становится местом, где разворачивается история Лойи и тайны ее прошлого.
Искусственный интеллект и машинные игровые системы являются важнейшими аспектами создания этого апокалиптического будущего, доступного для исследования игроками.
Это было масштабное мероприятие для команды из 10 человек, на разработку ушло несколько лет. Создание систем искусственного интеллекта такого масштаба, которые хорошо работают в играх с огромными открытыми мирами, становится все более сложной задачей.
Поэтому крайне важно, чтобы сообщество разработчиков игр делилось своим опытом с другими.
Справочные материалы
- Джулиан Бертелинг, 2018. «За пределами Killzone: создание новых систем искусственного интеллекта для Horizon Zero Dawn», КРИ 2018.
- Арьен Бейдж, 2017. «ИИ Horizon Zero Dawn» ,Игра AI Север 2017.
- Воутер Йоземанс, 2017. «Возврат ИИ обратно в воздух: навигация по воздушному пространству Horizon Zero Dawn» Игра ИИ Север 2017
-
Ценность Трекера Ip-Адресов
19 Oct, 24 -
Ошибка Ie С Расчетом Разницы Дат, Javascript
19 Oct, 24 -
Ecola Кукуруза 27W Премиум, Не Трогай Меня
19 Oct, 24 -
Топ-50 Достойных Сайтов На Livestreet
19 Oct, 24 -
Если Вы Используете Виртуальный Хостинг, То:
19 Oct, 24 -
Социальная Услуга В Банке Из-Под Кофе
19 Oct, 24