Как устроен искусственный интеллект персонажей в стелс-играх — на примере Hitman

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


Игры серии Hitman — это песочницы, где игрок взаимодействует с большими локациями, наполненными кучей интерактивных событий и NPC. Чтобы поддерживать погружение, В IO Interactive продумали глубокую систему поведения ИИ, благодаря которой неигровые персонажи реалистично реагируют на все изменения на уровне.

Мы выбрали главное из большого разбора Томми Томпсона, автора YouTube-канала AI and Games — блогер рассказал о том, как устроен искусственный интеллект персонажей в последних частях серии.

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

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

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

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

Три самых известных «службы» в Hitman называются «Маскировка» (Disquise), «Смерть» (Deadbody) и Hitman. Первая работает, когда Агент 47 носит чей-то костюм, а NPC делают вывод, выглядит ли игрок подозрительно или нет. Вторая отвечает за то, что все ИИ в пределах небольшого расстояния узнают о нахождении трупа. Третья же собирает все данные, известные об игроке — например, выдал ли он себя, или где он последний раз засветился.

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

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

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

Граждане могут обладать разной информацией и в зависимости от неё по-разному реагировать — что хорошо видно на уровне в Париже из Hitman 2016 года. Приглашённые гости обратят на вас внимание, если ваши действия будут уж слишком вызывающими, в то время как персонал (особенно тот, что окружает цель) может вас заподозрить куда быстрее.

«Охрана» же куда острее реагирует на некоторые чрезвычайные события, вроде нахождения трупов, людей без сознания или прочих объектов, которые лежат не на своём месте. Также она может организовать поимку игрока.

После того, как ИИ выбрал необходимые цели, может произойти следующее: либо NPC начинают действовать самостоятельно (например, решают уйти в другую локацию или начинают взаимодействовать с каким-либо предметом), либо они присоединяются к «ситуациям», где несколько персонажей объединены в одну группу поведения.

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

Как уже было сказано ранее, впервые современное древо поведения появилась в Hitman Absolution. В Hitman 2016 года её модифицировали, и одним из главных нововведений стали роли VIP (Целей) и телохранителей — целая подсистема внутри древа, со своими принципами работы.

Её создали из-за того, что в новых частях разработчики захотели продумать специфичные взаимодействия Цели и «охраны» — однако это было невозможно в рамках старой системы. Всё из-за того, что по факту ИИ не знали о существовании друг друга и действовали лишь в рамках своих поведенческих настроек. Да, в Hitman есть «ситуации», где персонажи объединяются ради общей цели — но они не контактируют и не обмениваются данными друг с другом, а лишь полагаются на «сенсоры» и «службы».

Потому в IO создали отдельный тип ИИ. VIP — это вариация «граждан», в то время как телохранитель — «охраны». Они знают о существовании друг друга: Телохранители всегда следуют за VIP и стабильно проверяют, в каком состоянии они находятся. Сами VIP же научились «командовать» другими ИИ: например, они могут приказать остановиться, остаться за дверью, проследовать дальше или что-то проверить.

Так в том числе объясняется одна из условностей: игрок рискует, убивая Цель на глазах у телохранителей, зато если VIP попросит охранников, чтобы они оставили его одного, у главного героя открывается окно для убийства.

Более того, телохранители стабильно проверяют состояние VIP. Если Цель уже довольно долго сидит в своей комнате, ИИ охраны войдёт внутрь (или туда, где было последнее известное местоположение), чтобы узнать, всё ли в порядке. В случае, если никто не может найти VIP, телохранители начинают поиск — и к ним подключается остальная охрана.

Когда Цель находят живой и невредимой, ситуация вновь становится «нормальной», и все начинают вести себя как обычно. Если же Цель мертва, начинаются поиски игрока — а если она без сознания или под угрозой, то включается сценарий эвакуации VIP.

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

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

Стоит отметить, что в последних двух частях из-за увеличения масштабов уровней в IO не смогли не обойтись без LODding-system, или level-of-detail (уровня детализации). В локации могут существовать 300 NPC, у каждого из которых активно поведенческое древо — однако, чтобы не нагружать процессор, чем дальше ИИ от игрока, тем реже обновляются их базы знаний.

В конце ролика Томпсон подвёл итоги — по его мнению, в последних частях Hitman одна из самых комплексных систем искусственного интеллекта в играх.

В общем, Hitman — одна из самых продуманных игр, которые я когда-либо рассматривал. В ней большое количество отлично настроенных и оптимизированных систем управления NPC — при этом производительность не падает. Это стандарт для размера и масштабов реагирующих в реальном времени ИИ — и, надеюсь, в будущем во франшизе IO Interactive всё будет ещё интереснее.

Томми Томпсон

ведущий AI and Games


Источник: dtf.ru

Комментарии: