Динамический звук в разрушаемых уровнях Rainbow Six: Siege
Меня зовут Луи Филипп Дион (Louis Philippe Dion), я звукорежиссёр Rainbow Six: Siege, работаю в Ubisoft уже семь лет. Прежде я занимался звуковым оформлением в Prince of Persia и Splinter Cell. Также я работал продакт-менеджером собственного звукового движка компании Ubisoft.
До прихода в игровую индустрию я работал звукооператором на съёмках нескольких сериалов и фильмов. На досуге я, сколько себя помню, занимался музыкой, воспитывая к себе любовь к синтезаторам, гитарам, да и вообще ко всему, что может производить звук.
Проявляя большой интерес к техническим аспектам звука, я с энтузиазмом перешёл в индустрию игр. Я чувствовал, что, по сравнению с телевидением и кино, игры предлагают более широкий простор для инноваций и технологических прорывов. Сейчас мы только едва коснулись потенциала интерактивного звука, сведения в реальном времени и новых алгоритмов позиционирования, и мне очень интересно, что преподнесёт нам будущее.
Динамическое распространение звука в разрушаемом окружении
С распространением звука связаны три базовых аспекта физики: отражение (когда звук отскакивает от поверхностей), поглощение (когда звук проходит сквозь поверхность, но лишается некоторых частот) и дифракция (когда звук огибает объекты). Ваш слух ежедневно отмечает эти явления. В реальной жизни за предполагаемое положение источника звука отвечает множество других факторов, но я сосредоточусь именно на физике распространения звука и о том, как мы её имитируем.
Главной инновацией в Siege было обильное использование дифракции – мы для этого используем термин «обструкция». С помощью стратегического размещения на карте «узлов распространения» мы могли высчитывать простейший путь звука от источника к слушателю. Простота пути зависит от нескольких факторов, а именно, от длины пути, общей величины огибаемых углов и штрафов на степень разрушения на определённых узлах.
Например, если стена не повреждена, узел внутри неё не учитывается алгоритмом (бесконечный штраф). А вот если в ней дыра, узел будет доступен для выбора пути распространения. Затем мы виртуально смещаем источник звука в соответствии с направлением таких путей, что в конечном итоге и выступает аналогом дифракции.
Также мы применяем несколько стратегий для симуляции поглощения, называя это «окклюзией». В зависимости от источника, мы либо проигрываем заранее подготовленную приглушённую версию звука (например, шаги на верхнем этаже) или же проигрываем звук напрямую от источника с фильтрацией частот в реальном времени. Второй вариант увеличивает нагрузку на процессор, так что он преимущественно зарезервирован для звуков оружия. В реальной жизни можно одновременно услышать поглощённую и отклонённую версию звука, и мы тоже комбинируем их, давая больше информации о реальном местонахождении источника.
Наконец, для отражения (по нашей терминологии «реверберации») мы используем импульсный ревербератор. Это специальный ревербератор, «сканирующий» акустические свойства настоящей комнаты, и затем проигрывающий в ней звуки из нашей игры. На мой взгляд, этот метод на световые годы вперёд обгоняет традиционные параметрические ревербераторы – по крайней мере, для симуляционных целей. Единственный минус в том, что из-за нагрузки на процессор мы не можем применять его в большом количестве случаев. Для обхода этого ограничения мы «привязываем» реверберацию к оружию и проигрываем её обратно в направлении этого оружия, что предоставляет игроку более точную информацию о местонахождении противника.
Для чего это всё?
Разрушаемое окружение было главной трудностью во время разработки системы распространения звука. Одно дело вести звук по кратчайшему пути, и совсем другое, когда уровень изменяется во время игры – таким мы прежде никогда не занимались. Было непросто сохранять высокое качество звука, не забывая при этом о производительности. Мы поместили несколько узлов в разрушаемое окружение, и они оставались закрытыми до повреждения объекта. Мы раз за разом экспериментировали с разным количеством возможных путей распространения, пока не нащупали золотую середину между точностью и быстродействием.
Что интересно, модификаторы распространения звука работают не только в одну сторону: узлы могут как открываться, так и закрываться. Баррикадируясь и усиливая стены, игроки тоже меняют путь распространения звука. Такие преграды не обязательно должны полностью закрывать узел – в зависимости от свойств материала (дерево, стекло, бетон и т.д.), звук всё ещё может проходить насквозь, но с определённым штрафом. К примеру, деревянные и металлические баррикады имеют разные настройки приглушения звука.
С таким уровнем разрушаемости, как в Siege, случилась бы катастрофа, положись мы лишь на окклюзию без использования обструкции. Окклюзия в таком случае была бы слишком мощным «валлхаком». Играя за защиту, можно было бы просто разрушить как можно больше стен и прислушиваться, где именно идут атакующие – у них бы не было и шанса. Мы пытаемся сохранять максимальную точность звука, но симуляция «реальной физики» ещё и добавляет в игру дополнительный слой догадок о местонахождении противника, что уравнивает обе стороны. Конечно, в некоторых ситуациях этот момент может сильно расстроить, но такова и реальная жизнь.
Я не хочу сказать, что мы не стараемся улучшать свой алгоритм. Мы любим читать отзывы на Reddit, где игроки в ярости описывают ситуации с нечестным, по их мнению, использованием распространения звука. Для нас это бесценно, и мы определённо будет учитывать подобные отзывы в последующих доработках.
Слышимость действий игрока
Бесшумность и бездействие являются ключевыми принципами игры, и даже с трёхминутным таймером раунда игроки предпочитают прислушиваться к соперникам. На самом деле, ещё только приступая к разработке, мы подумывали, что игровое окружение будет звучать довольно неинтересно. Тихо выжидать в спальне пригородного домика – это вам не сражение в гуще боя и не космическая схватка, верно?
На тот момент в игру были добавлены ещё не все звуки, а система их распространения находилась лишь в ранней стадии разработки. Но когда все кусочки паззла стали потихоньку собираться воедино, мы поняли, что способны добиться кое-чего посерьёзнее «поддельного напряжения». Угроза, которую вы слышите, реальна и направляется к вам. Отказавшись от тяжёлого эмбиента, мы смогли и повысить тревожность атмосферы, и создать простор для предоставления игрокам более точной информации о противнике.
Особое внимание мы уделили звукам перемещения, позволяющим просто прислушиваться, чтобы понять местонахождение врага – по звуковым подсказкам вполне можно определить вес, броню и скорость оперативника. Баррикады, гаджеты и прочие устройства также снабжены специфическими звуками.
Звуки, что издаёт игровой персонаж, усилены по двум важным причинам: во-первых, игрок понимает, что сильно шумит и что это может его выдать; во-вторых, это даёт понять, что необходимо замедлиться, если хочешь прислушаться. Это основа дизайна звука в Siege: передвигаясь медленнее и прислушиваясь к окружению, можно собрать больше информации и сыграть лучше.
Итоги
Начиная работу над проектом, мы стремились к созданию тревожной атмосферы. На каком-то моменте мы добавляли для этого музыку и эффекты, но, как уже было сказано, лучшей идеей было использование самих игроков в качестве источников звука. Так что все «поддельные» звуки мы убрали, сосредоточившись на том, что действительно имеет значение.
Сегодня, спустя немалое время, всё это выглядит очевидным, но я вижу, что редкие игры отказываются от классического искусственного напряжения атмосферы. Избавление от эффектов, как по мне, придало Siege отличительное звучание, которое не только приятно на слух, но и во многом влияет на игровой процесс.