©2020, XYZ School. Все права защищены.
Content Oriented Web
Make great presentations, longreads, and landing pages, as well as photo stories, blogs, lookbooks, and all other kinds of content oriented projects.
XYZ Media

Как устроен ИИ в стелс-играх — на примере Splinter Cell: Blacklist

Создание искусственного интеллекта в стелс-играх обычно требует уникального подхода. В отличие от большинства экшенов или шутеров, в стелс-играх значительно чаще нужно наблюдать за поведением противников со стороны, а также постоянно ими манипулировать. Хорошие игры жанра заставляют игрока не только изучать эту систему, но и влиять на нее.

В этом материале мы расскажем, как разработчики создают интересные модели восприятия у NPC — на примере Tom Clancy's Splinter Cell: Blacklist. Для этого мы изучили статьи и лекции разработчиков (1,2,3,4).

Автор: Денис Дудушкин
Творческие задачи разработчиков

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

Во-вторых, по словам ведущего аниматора игры, разработчики стремились создать «самый насыщенный и большой Splinter Cell в истории». Это также вынуждало специалистов по ИИ создавать более интересные паттерны поведения противников, чтобы они не наскучили к концу игры.
Разработчики сформировали три ключевых принципа, которым должен соответствовать каждый элемент игры: честность, постоянство обратной связи, а также иллюзия умственной активности у NPC. Несмотря на кажущуюся логичность, эти принципы нередко конфликтуют друг с другом.

Кажется, что для «справедливого» игрового процесса реакция противников должна быть универсальной, вне зависимости от контекста. Но тогда бы получались ситуации, которые выглядят нечестно с точки зрения игрока. Например, если визуальный конус противника не учитывал бы укрытия, то Сэма Фишера замечали гораздо чаще: их зона покрытия зачастую очень условна, а спрятавшегося за машиной героя на самом деле хорошо видно.
С иллюзией разумности NPC всё ещё сложнее. Умный противник может обойти героя или действовать неочевидным образом. Это уместно в экшенах, вынуждающих героя постоянно менять тактику — например, в The Last of Us, где обнаружение не приводит к проигрышу, а, наоборот, создаёт интересный игровой опыт. В Blacklist же одна из опций прохождения — «чистый» стелс, в котором подобные случайности, приводящие к обнаружению, неуместны.

Мартин Уолш, глава департамента AI, Ubisoft Toronto:

«Противники должны демонстрировать интеллект. Если они кажутся тупыми, игрок не получит удовольствия от победы над ними. Но вот что интересно: «не быть тупым» не обязательно означает «быть умным». На самом деле, это значит «всегда быть правдоподобным».

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

Во время прохождения стелс-боевиков игроки чаще всего анализируют именно поле зрения противников. Как правило, разработчики реализуют его в виде примитивного конуса. С давних времён эта форма зарекомендовала себя как простая, но эффективная. Поэтому даже сегодня в большинстве игр жанра можно встретить именно конусовидное восприятие.

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

Также у врагов сзади есть два небольших «крыла» зрения. По словам Мартина Уолша, они имитируют «шестое чувство» противников, то есть ощущение, когда человек буквально чувствует, что кто-то крадётся у него прямо за спиной.
Высота фигуры восприятия также выбрана неслучайно. Геймдизайнерам нужно было, чтобы Фишера не замечали, когда он находится над противниками. Эта высота всегда статична, так как она служила важной метрикой для левел-дизайнеров.

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

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

Восприятие окружающей среды

NPC воспринимают мир игры не так, как игрок. Вместо сложного комплексного пространства у них есть лишь невидимая для игрока сетка, — навигационный меш, то есть область, по которой они могут перемещаться. На эту сетку наносятся важные для ИИ объекты — укрытия, ящики с патронами или актуальная позиция игрока. Во многих играх NPC не понимают логики пространства, ведь им это зачастую не нужно.
Но в Blacklist всё иначе. Здесь противникам нужно понимать, что, к примеру, у определенной комнаты есть 2 выхода, а также помнить о том, был ли включен свет в помещении. Чтобы имитировать это знание, Ubisoft Toronto использовала систему TEAS, которую придумали ещё во время разработки Conviction. Она состоит из двух элементов.

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

Второй — группа автоматически сгенерированных точек, которые делятся на две связанные категории. Позиционные выделяют конкретные места каждого отдельного участка, а точки проходов располагаются на пересечении локаций.
Такая простая в реализации система оказалась очень эффективной: NPC могут быстро и уверенно искать Фишера в разных локациях, ориентируясь по точкам. К тому же TEAS позволяет генерировать и более интересные модели поведения. Например, если игрок загнал себя в тупик и оказался в комнате с единственным выходом, противник узнает об этом, ориентируясь на только одну точку пересечения локаций. Поэтому он сможет не штурмовать помещение, а просто перекрыть герою единственный выход из комнаты.

С интерактивными объектами ИИ работает ещё проще. Когда игрок изменяет состояние какого-либо объекта — например, открывает дверь или выключает свет, — система создаёт временное «важное» событие для интеллекта противников. Если за определённое время NPC визуально заметит изменение, он пойдёт проверять, всё ли в порядке.

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

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

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

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

Чтобы игрок лучше понимал мотивацию и цели противников, NPC проговаривают большинство своих мыслей вслух — такие реплики называются «лаем». Они помогают игроку быстрее усваивать паттерны поведения противников. «Лай» встречается в большинстве современных игр, но в Blacklist он разделён на три категории.
В первую попадают подробные и специфические фразы. Например: «Кажется, я слышал шаги». Во вторую категорию попадают более общие фразы, которые используются в идентичном контексте: например, «Кажется, я там кого-то слышу». Наконец, в третью входят совсем обобщённые предложения: «Кажется, там кто-то есть» или простое «Хм».

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

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

Скажем, в миссии на складе на улице льёт проливной дождь. Если попробовать отвлечь противника свистом или шумовой гранатой на открытой местности, то он сначала спишет всё на ливень. И лишь на второй раз он пойдет смотреть, что произошло. Более того, если в этой миссии отвлечь противников во время диалога, то они так же контекстно отреагируют на шум. Похожие детали встречаются и в других заданиях.
Понравилась статья?
ХОЧЕШЬ ПОЛУЧАТЬ ЛУЧШИЕ СТАТЬИ
ОТ XYZ РАЗ В НЕДЕЛЮ?
Подпишись на рассылку XYZ
Нажимая на кнопку, вы соглашаетесь с условиями обработки данных