Как NPC в играх могут быть частью эмбиента
Когда мы говорим о звуке “окружения” в игре, мы представляем звуки ветра, шум города или сверчков (если мы на природе). А часто ли мы обращаем внимание на голоса NPC в играх?

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

Hitman World of Assassination
Начнем мы с Hitman World of Assassination.

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

Бьёрн Джакобсен (саунд-дизайнер серии Hitman) в своих видео описывает систему “фейковой толпы”. Проблема была в том, что им нужно было озвучить сотни персонажей на разных языках: итальянский, английский, арабский, немецкий и др. (и не привязывать их к лицевой анимации). Но тратить ресурсы (финансовые и технические) на запись и встраивание сотен диалогов для озвучивания толпы не позволительная роскошь.

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

В обычном гугл-переводчике они получили перевод простых бытовых фраз на разных языках, далее силами 4-5 человек они были записаны в студии. Получился набор слов и фраз, который не имел смыслового значения, но давал представление о языке говоривших.

Далее они настроили их воспроизведение в рандомном порядке для групп из 2, 3 и более человек. В игре просчитывается кол-во человек, стоящих в группе и для каждой из них воспроизводится свой диалог.
Перемещаясь по локации, мы постоянно находимся в “звуковом поле” таких диалогов, которые создают нужный фон (находимся мы в Бурдж-Халифе в ОАЭ или на гоночном треке в Майами).

Красота реализации таких диалогов кроется автоматизации их громкости (и др. параметров). Есть несколько уровней воспроизведения по мере приближения к группе:

  • до 25 (к примеру) вообще ничего не слышно.
  • далее, по мере приближения сухой сигнал диалога усиливается, уровень реверберации уменьшается;
  • в пределах от 3 до 7 метров мы слышим полноценный диалог с небольшим эхо;
  • от 3 до 1 метра громкость снижается так, что при подходе вплотную диалог полностью затихал (это необходимо, чтобы замаскировать отсутствие привязки к лицевой анимации). Эффект погружения не ломается, потому что по отношению к другой группе мы находимся на расстоянии в 10-15 метров и все равно слышим общий гул разговоров.

Таким образом, мы всегда включены в атмосферу толпы, при этом толпа не давит на игрока, оставляя пространство для игрового процесса. По сути такая система - это точно продуманная декорация, которая отлично справляется с эстетической и информационной функциями.

Assassin's Creed: Unity
Далее у нас идет пример посложнее: здесь уже открытый мир в Assassin's Creed: Unity.

В серии игр про ассасинов всегда были масштабные локации: исторические города, копии реальных зданий (в масштабе 1:1), огромные пространства с возможностью вертикального исследования. Население этих городов обычно не привлекало много внимания с технической стороны. Но в 2014 году вышла Unity, посвященная парижской революции XIX века. Здесь население - это не просто визуальный фон, а уровневая интерактивная система с AI, которая живёт независимо от игрока. Оно стало живой частью города, включающей в себя до 5 000 NPC одновременно на экране.
Из документации и выступлений ясно, что технически для реализации толпы NPC используются три уровня:

  • Low-res bulk — низкополигональные визуальные герои с простыми анимациями, минимальной логикой;
  • Puppet bulk — визуально детальнее, но без возможности взаимодействия;
  • Autonomous bulk — полноценные NPC с AI и активным поведением.

Эта многослойная LOD-система позволяет плавно переключаться от «массы» толпы к интерактивным персонажам, когда игрок приближается к ним. Переключение происходит незаметно для игрока в зависимости от дистанции.

  • Low-res bulk используется на дальней дистанции (обычно более ~40 м от игрока), когда детализация не важна;
  • Puppet bulk — промежуточный слой, оформляет переход к детализированным NPC без резких визуальных скачков;
  • Autonomous bulk — активные агенты, которые появляются ближе всего к игроку (т.е. он уже в зоне, где нужно полноценное AI-поведение).
доклад с описанием уровней LOD

То есть ключевой триггер переключения — это позиция игрока относительно NPC/группы. О реализации звука в игре описаний очень мало. Поэтому будем опираться на игровой опыт и логику интерактивного аудио.

Звучание городских прохожих удивляет своей натуральностью, живостью и бесшовностью. Хотя в игре мы слышим одиночные реплики персонажей, шум толпы - это отдельный слой “гур-гур”, который регулируется параметром дистанции.
Определить четкие границы, где заканчивается одна толпа и начинается другая, сложно (это еще раз подчеркивает высокое качество проработки). Но при целенаправленном и длительном прослушивании это возможно. Сперва определим, какие бывают варианты звучания в зависимости от плотности, затем перейдем к другим параметрам.

1) Объём. Кол-во NPC может меняться от зоны к зоне. Очевидно, что кол-во - это один из основных параметров управления всей системой. От неё будет зависеть и насыщенность звука (маленькая улица будет отличаться характеру от площади перед Нотр-Дам).
2) Дистанция. Как известно из докладов, на дальней дистанции NPC представлены массой, они становятся более детализированными по мере приближения. Мы также слышим это в игре: на удаленном расстоянии звучит общий фон (однородный, размытый в пространстве), на средней дистанции он меняется уже на более детальный (шире по панораме, слышно больше высоких частот), вблизи к герою звучат уже читаемые фразы.

Такой подход объясняется еще и оптимизацией: нам не нужно озвучивать одновременно все 30 000 жителей города, по мере продвижения одни замолкают, другие начинают звучать. Смысл в том, что эта динамика происходит постоянно, создавая иллюзию бесшовности.
3) Плотность. Отличие может быть еще и в том, насколько сильно насыщена конкретная локация. Маленькие и средние по плотности слои звучат на протяжении целых улиц, а вот большие скопления звучат как отдельный источник звука. То есть в рамках средней по объему улицы мы слышим только ее фон, но, если эта улица ведет к площади со скоплением прохожих, то задолго до нее мы будем слышать эту толпу (громкую, активную). По мере приближения гул будет нарастать, мы точно будем слышать, где источник звука. Но, когда окажемся внутри, панорама станет широкой, шум толпы окружит нас полностью.
4) Высота. Исследование мира может быть вертикальным. С крыши улица звучит более однородно, это связано также и с увеличением дистанции. Но помимо фильтрации высоких частот при возвышении мы слышим, как у гула толпы появляется эхо, и также становится слышно ветер, птиц и гудение города в целом.

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

Звучание толпы в Unity - это лишь один из множества элементов эмбиента (помимо отдельных голосов и шума города), который погружает в атмосферу революционного Парижа. Просто идти по улице и слушать город доставляет удовольствие. Однозначно, это пример качественного подхода к озвучиванию NPC.
Days Gone
Толпа как “живой” объект есть и в других жанрах. Например, орда зомби в Days Gone.

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

Поэтому при анализе мы будем опираться на знания о психоакустике и свой опыт в интерактивном аудио.

Задача у разработчиков стояла непростая:
  • реализовать динамическую систему звука орды;
  • избежать перегрузки информацией;
  • создать ощущение страха.
Техническая реализация:
Что точно известно из документов и лекций, орда - это отдельная система геймплея, а не просто 100+ фрикеров в одном месте (их численность может доходить до 500 объектов). В целях оптимизации толпа разделена на кластеры по различным параметрам, а сами фрикеры - это всего 8 базовых моделей зомби (которые рандомизированы по высоте, пропорциям и анимациям).

Учитывая эту инф-ию и то, что одновременное создание 500 инстансов - это гарантированная просадка производительности, мы можем предположить, что звук также разделен на группы, так им легче управлять и меньше нагрузка.

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

Так как мозг человека быстро вычисляет звуковые паттерны и повторения, принцип процедурной генерации используется также и в гейм-аудио. Вместо того, чтобы внедрить 3 длинных дорожки крика зомби, мы делим каждую на 5 более мелких частей и получаем уже 15 семплов. Далее рандомно будем изменять их по высоте и длительности и получим более 100 различных семплов. Таким образом, мы снижаем нагрузку на железо и в разы повышаем качество звука.

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

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

Все вместе создает ощущение живой массы, при этом не перегружая игрока информацией, а систему - вычислениями.

А что с чувством страха?

Страх возникает не от громкости или мерзости голосов, а от непредсказуемости, невозможности выделить лидера угрозы, да и в целом иногда локализовать её источник.
Используя принципы, близкие к описанным Энди Фарнеллом в Designing Sound (2010), аудиосистема формирует ощущение массы как процесса — непредсказуемого, плохо локализуемого и постоянно изменяющегося. Мозг игрока не может выделить источник угрозы, оценить её дистанцию или масштаб, что приводит к устойчивому состоянию тревоги ещё до визуального контакта.
Первое, с чем мы сталкиваемся при приближении к толпе, это звук орды до визуального контакта с ней. Off-screen sound: мозг сразу дорисовывает самое страшное...
Второй механизм возникновения страха связан с неопределенностью и потерей контроля: толпа как процесс, а не объект. Игрок интуитивно ищет в звуке опору.  Но, что происходит с ордой? Очень быстро фрикеров становится много. Повторы отдельных элементов скрываются внутри плотной текстуры (увеличивается плотность спектра (рисунок), случайные крики нарушают возможность предсказания, а отсутствие ведущего источника лишает слух устойчивого фокуса. В результате мозг перестаёт воспринимать отдельные звуки как объекты и начинает воспринимать толпу как непрерывный, изменяющийся процесс, а не как сумму отдельных источников.

Третий механизм - низкочастотная энергия без конкретного источника. Один из кластеров, на которые делится орда - это дальняя от героя масса зомби (толпа настолько большая, что всегда есть удаленная от нас группа фрикеров). Она звучит обезличенно, без деталей, как сплошной низкочастотный гул.

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

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

Таким образом, если герой стоит на месте и смотрит на толпу, то мы слышим ближний ряд фрикеров с небольшой детализацией и громкостью, также слышим общий гул массы. Чтобы убежать, герой разворачивается и камера перемещается ближе к толпе, сразу слышно, как отдельные крики и всплески стали отчетливее и громче. Поворачиваться спиной совсем не хочется, но это необходимо для выживания. Учитывая, что мы часто крутим камерой, чтобы оглядеться или отстреляться, мы все время находимся в таких “качелях” (угроза то далеко, то близко).


Подведем итог
Звук игры (в частности окружения) - это не просто птички или ветер. Он состоит из множества элементов, звучащих в симбиозе, или сменяющих друг друга. Теперь мы узнали, что NPC (в виде толпы прохожих или орды зомби) могут быть таким же элементом окружения и к тому же “живым” элементом. Их звук также наполняет мир игры, который не стоит недооценивать.

Автор статьи: Юрий Стрельчук
Авторское онлайн обучение
по работе со звуком
Помогу стать профессиональным звукорежиссером,
саунд-дизайнером,
чтобы работать со звуком в кино,
рекламе и играх.