![]() |
![]() |
![]() |
|||||
![]() |
Искусственный интеллект Horizon Zero Dawn: индивидуальное поведение |
||||||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2019-03-01 13:18 В первой части исследования ИИ Horizon Zero Dawn я рассказал, как игра создаёт стада управляемых искусственным интеллектом животных-машин. Для этого требуется сложная система иерархии агентов, в которой каждая машина может принимать решения о том, как вести себя, пользуясь планировщиком сети иерархических задач, а групповые агенты совместно назначают машинам роли и обязанности как частям стада. Всё это является частью системы под названием «The Collective», которая поддерживает экосистему всех машин в мире, когда пользователь находится в игре.
![]() Сенсоры и движение Для начала давайте рассмотрим сенсоры, используемые машинами для запуска реакций ИИ, а также узнаем, как анимация привязана к общему процессу выполнения их поведений. Машина может использовать значительное количество уникальных сенсоров: визуальные сенсоры, например, глаз «рыскаря», радар и сенсоры присутствия у «долгоногов», сенсоры слуха, улавливающие звуки далёких взрывов и бросков камней вблизи, а также способность чувствовать игроков, касающихся машины. У каждой машины есть набор этих сенсоров, откалиброванных собственными значениями чувствительности, благодаря чему подобраться, например, к «рыскарю» или «жвачнику» довольно просто, а «ловчего» поймать гораздо сложнее. ![]() Каждый ИИ-персонаж, будь то машина или человек, способен обрабатывать и интерпретировать сенсорные данные разным образом, поэтому определённая информация может игнорироваться одними персонажами, в то время как другие должным образом реагируют на неё. На самом деле, в зависимости от силы сенсора в машине она может снижать получаемый от сенсорного события объём данных, который она может считать. Это позволяет управлять эмерджентными свойствами игры, чтобы каждый тип персонажей мог реагировать на информацию своим, уникальным образом. Если ИИ должен выполнить основанное на этих сенсорных данных действие, то нам всё равно нужно сделать так, чтобы оно выглядело реалистично. Поэтому когда машина решает предпринять какое-то действие, например, перемещение в новую локацию, исследование источника беспокойства или нападение на игрока, существует проблема анимирования выполнения этих действий как можно более реалистичным способом. Анимация этих машин — очень сложная задача: они должны одновременно и выглядеть, как и живые прообразы, и иметь отчётливое машиноподобное поведение. Для этого необходимо, чтобы и навигационные, и боевые системы учитывали расстояние, которое должна пройти машина, а анимационный тулчейн должен подстраивать корневые кости анимаций и смешивать их в соответствии с воспринимаемым расстоянием и временем перемещения. ![]() Навигация Есть ещё одна серьёзная задача, о которой я ещё не говорил — навигация. Задача перемещения машин по миру очень сложна, существует большое разнообразие уникальных типов врагов, и все они имеют разный размер и форму. Поэтому они должны перемещаться по рельефу естественным для них образом. Кроме того, они должны распознавать изменения в локальной геометрии и адаптироваться к ним или просто игнорировать, в зависимости от типа машины. Для этого необходим широко используемый инструмент ИИ под названием navigation mesh (навигационный меш). Navmesh хранит в себе информацию о том, как конкретный персонаж может двигаться по карте на основании того, что для него в мире считается препятствиями. Хотя мы и можем вычислять всё это в процессе выполнения игры, такие данные обычно встраиваются или «запекаются» до выпуска игры и при необходимости загружаются в память. ![]() ![]() Движение по воздуху Хотя этот тулчейн навигации справляется с наземными машинами всех размеров и форм, он совершенно не работает для тех, кто летает в воздухе. Неигровые персонажи, перемещающиеся по воздуху, не только должны учитывать ближайшие препятствия, чтобы не сталкиваться с деревьями или обрывами, но и обязаны знать высоту окружающей их геометрии. Мир Horizon Zero Dawn полон холмов, лесов, скал и крутых горных подъёмов… Два типа летающих машин, «коршун» и «буревестник», должны знать, как перемещаться по воздуху таким образом, чтобы можно было взлетать, перемещаться по маршрутам патрулирования, приземляться, а также снижаться и при необходимости нападать на игрока. Для этого в игре есть не только наземная система навигационных мешей, но и полностью отдельная система для воздуха. ![]() ![]() ![]() Взлёты и приземления используют отдельную систему, взаимодействующую с навигацией полёта и наземным навигационным мешем: она ищет на меше подходящие позиции, на которые можно приземлиться (обычно это точки немного выше над землёй, чем локальное среднее), а затем подбирают углы и скорость. Приземлившись, машина использует наземный navmesh, соответствующий её размеру. Тот же принцип на самом деле применяется и при падении, только в этом случае единственные подходящие позиции приземления основываются на текущем курсе машины, и хотя крушение выглядит менее грациозно, на самом деле оно использует те же инструменты. Специально запрограммированным граничным случаем здесь является атака пикированием «буревестника». «Буревестник» кружит над игроком, а затем падает вниз по направлению к текущей позиции игрока. Он использует те же системы, но гораздо более драматичным образом. Однако здесь есть ещё одна хитрость: кружась над игроком, «буревестник» часто ждёт перед атакой, пока не закроет солнце. Возможно, играя в игру, вы это замечали, и это сделано намеренно. При тестировании ИИ «буревестника» отдел QA заметил, что он периодически закрывает игроку солнце, и это делает его атаку более дизориентирующей, потому что во время пикирования свет сдвигается и ослепляет игрока. Тогда это происходило полностью случайно, но затем отдел разработки ИИ решил, что это должно происходить чаще. ![]() В заключение Horizon Zero Dawn создаёт уникальный игровой процесс; мир, наполненный механической жизнью, становится местом, где разворачивается история Элой и тайн её прошлого. Искусственный интеллект и геймплейные системы машин — важнейший аспект создания этого исследуемого игроками апокалиптического будущего. Это была масштабная работа для команды из 10 людей, занявшая несколько лет разработки. Создание систем ИИ подобного масштаба, хорошо работающих в играх с огромным открытым миром, становится всё более сложной задачей. Поэтому сообществу разработчиков игр жизненно необходимо делиться своим опытом с остальными. Справочные материалы
Источник: habr.com ![]() Комментарии: |
||||||