Пример использования пространственного звука в RoboRaid

В этой статье описываются проблемы, с которыми команда Microsoft HoloLens experience столкнулась при создании звука для шутера roboRaid смешанной реальности от первого лица.

Технология

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

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

Сопутствующие ресурсы

Создание пространственного звука для приложений HoloLens настолько новое и уникальное, что проблемы трудно решить, так как нет предыдущих проектов, на которые можно ссылаться. Мы надеемся, что эти примеры проблем со звуком, с которыми мы столкнулись при создании RoboRaid, помогут вам при создании аудио для собственных приложений.

Помните о налогообложении ЦП

Пространственный звук может быть требовательным к ЦП. Для напряженной работы, такой как RoboRaid, было важно сохранить количество экземпляров пространственного звука до восьми в любой момент времени. Обычно это было так же просто, как установить ограничение экземпляров для различных звуковых событий. Все экземпляры, которые происходят после достижения ограничения, будут уничтожены. Например, когда дроны порождения, их крики ограничены тремя экземплярами в любой момент времени. Учитывая только около четырех дронов может породить сразу, три крика много, так как нет никакого способа ваш мозг может отслеживать, что многие похожие звуки событий. Это освобождает ресурсы для других пространственных звуковых событий, таких как вражеские взрывы или враги готовятся стрелять.

Вознаграждение успешного ухищривание

Уворавая механика является одним из самых важных игровых механик в RoboRaid, а также то, что мы чувствовали, было действительно уникальным для holoLens опыт. Таким образом, мы хотели сделать успешные ухищривание очень полезным для игрока. Мы получили Допплер "whizz-by", чтобы показаться убедительным довольно рано в разработке. Изначально я планировал использовать цикл и управлять им в режиме реального времени, используя громкость, шаг и фильтр. Реализация этого процесса будет очень сложной. Перед фиксацией ресурсов для создания этого мы создали дешевый прототип, используя ресурс с эффектом Допплера, запеченный в, чтобы узнать, как он себя чувствует. Наш талантливый разработчик сделал это так, что этот свисток актив будет играть назад ровно 0,7 секунды, прежде чем снаряд пройдет мимо уха игрока и результаты чувствовали себя удивительным! Нет необходимости говорить, что мы бросили более сложное решение и реализовали прототип.

(Дополнительные сведения о создании звукового ресурса со встроенным эффектом Допплера см. в разделе 100 Whooshes за 2 минуты.)
Успешное уворывание от вражеского снаряда вознаграждает игрока с удовлетворяющим свистом звуком.

Канав неэффективные звуки

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

Обмен данными о попадании

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

Игроки, очевидно, ничего не почувствуют, когда они получают удар, поэтому мы должны были найти способ убедить игрока, что что-то плохое случилось с ними. В обычных играх вы можете увидеть анимацию, которая позволяет узнать, что ваш персонаж принял удар, или экран может мигать красным цветом, а ваш персонаж может немного хрюкать. Так как эти типы подсказок не работают в смешанной реальности, мы решили объединить визуальный сигнал с преувеличенным звуком, указывающим на то, что вы нанесли ущерб. Я создал большой звук, и сделал его настолько заметным в миксе, что он уканул все вниз. Затем, чтобы сделать его еще больше, мы добавили короткий предупреждающий звук, как будто ядерная субна тонет.
Когда игрок получает удар в RoboRaid, он видит визуальный сигнал, но также получает преувеличенный звуковой сигнал, который говорит им, что они взяли повреждения.

Получение большого звука из небольших динамиков

Динамики HoloLens небольшие и легкие в соответствии с потребностями устройства, поэтому вы не можете ожидать, что вы будете слышать слишком много низкого уровня. Подобно разработке для смартфонов или портативных игровых устройств, звуковые дизайнеры и композиторы должны помнить о частоте содержимого их аудио. Я всегда дизайн звуки или пишу музыку с полным диапазоном частот, потому что ношение наушников является вариантом для пользователей. Тем не менее, чтобы обеспечить совместимость с динамиками HoloLens, я иногда запускаю тест, помещая EQ в master любой DAW, в которую я работаю. Параметр EQ состоит из фильтра с высоким уровнем передачи около 600 Гц до 700 Гц (не слишком крутой) и фильтра с низким уровнем передачи на уровне около 10 000 Гц (крутой). Это должно дать вам приблизительное представление о том, как ваши звуки будут воспроизводиться на устройстве.

Если вы полагаетесь на бас, чтобы дать ощущение изменения аккорда в вашей музыке, вы можете обнаружить, что ваша музыка полностью теряет чувство корня при применении этой настройки EQ. Чтобы исправить это, я добавил еще один слой к басу, который является на одну октаву выше (с некоторыми богатыми гармониками) и смешал его, чтобы получить чувство корня назад. Иногда использование искажения для усиления гармоник даст достаточное содержание частоты в верхнем диапазоне, чтобы заставить наш мозг думать, что есть что-то под ним. Это справедливо для SFX, таких как удары, взрывы или звуки для особых моментов, таких как супер атаки босса. Вы действительно не можете полагаться на низкий уровень, чтобы дать игроку чувство влияния или веса. Как и в случае с музыкой, использование искажения, чтобы дать некоторый хруст определенно помогло.

Выделяя звуковые подсказки

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

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

Чтобы звук RoboRaid был таким большим, как он может на устройстве, мы должны были уменьшить динамический диапазон всего опыта и широко использовали утки, создав четкую иерархию важности для различных типов звуков. Я устанавливаю значение ducking от -2 дБ до -6 дБ в зависимости от важности. Я лично не люблю очевидные утки в играх, поэтому я потратил много времени на настройку затухания в / из времени и количество затухания объема. Мы настроили отдельные автобусы для пространственного звука, непространственного звука, VO и сухой автобус без реверберации для музыки. Затем мы создали высокоприоритетные, критические и некритичные автобусы, чтобы ресурсы были настроены для перехода на соответствующие автобусы.

Я надеюсь, аудио профессионалы там будет иметь столько же удовольствия и волнения, работая над своими собственными приложениями, как я сделал, работая на RoboRaid. Я не могу ждать, чтобы увидеть (и услышать!), что талантливые люди за пределами Майкрософт придумать для HoloLens.

Попробуйте сами

Один из трюков, который я обнаружил, чтобы некоторые события (такие как взрывы) звук "больше", как они заполняют комнату, был в том, чтобы создать моно актив для пространственного звука и смешивать его с двухмерным стерео активом, который будет воспроизводиться в 3D. Это требует некоторой настройки, так как наличие слишком большого объема информации в стереоконтенте приведет к уменьшению направленности моно-ресурсов. Тем не менее, получение баланса правильно приведет к огромным звукам, которые заставить игроков повернуть головы в правильном направлении.

Вы можете опробовать большие звуки самостоятельно, используя аудиоматериалы ниже:

Ситуация 1

  1. Скачайте roboraid_enemy_explo_mono.wav и настройте воспроизведение через пространственный звук и назначьте его событию.
  2. Скачайте roboraid_enemy_explo_stereo.wav и установите для воспроизведения в двухd стерео и назначьте тому же событию, что и выше. Так как эти ресурсы нормализованы в Unity, уменьшайте объем обоих ресурсов, чтобы они не обрезались.
  3. Воспроизведение обоих звуков вместе. Двигайте голову вокруг, чтобы почувствовать, как пространственно это звучит.

Ситуация 2

  1. Скачайте roboraid_enemy_explo_summed.wav и настройте для воспроизведения пространственного звука и назначения событию.
  2. Воспроизвести этот ресурс сам по себе, а затем сравните его с событием из сценария 1.
  3. Попробуйте использовать другой баланс моно- и стереофайлов.

См. также раздел