Как сделать ползунок громкости unity

Обновлено: 08.07.2024

Эта страница содержит ссылки на ресурсы для пространственного звука в Unity.

Параметры спатиализер

Параметры спатиализер для приложений смешанной реальности включают:

  • Unity предоставляет спатиализер MS хртф в составе дополнительного пакета Windows Mixed Reality .
    • Работает на ЦП в архитектуре с одним источником с более высоким значением.
    • предоставляется для обеспечения обратной совместимости с исходными приложениями HoloLens.
    • Использует более экономичную архитектуру с несколькими источниками.
    • Перегружается на аппаратный ускоритель на HoloLens 2.

    Для новых приложений мы рекомендуем использовать Microsoft спатиализер.

    Включить пространственность

    используйте NuGet для Unity , чтобы установить microsoft. спатиалаудио. спатиализер. Unity , и выберите microsoft спатиализер в параметрах звука проекта. Затем сделайте следующее:

    • Присоединение звукового источника к объекту в иерархии
    • Установите флажок " включить пространственность "
    • Переместить ползунок пространственного смешения в "1"
    • Убедитесь, что на рабочей станции разработчика включен Пространственный звук.
      • Щелкните значок тома на панели задач правой кнопкой мыши и убедитесь, что для пространственного звука задано значение, отличное от "Выкл.".
      • выберите Windows Sonic для наушников , чтобы получить лучшее представление о том, что вы слышите HoloLens 2.

      Дополнительные сведения см. в разделе:

      Затухание, связанное с расстоянием

      По умолчанию Unity на основе расстояния Decay имеет минимальное расстояние в 1 метра и максимальное расстояние 500 метров с логарифмической роллоффой. Эти параметры могут работать в вашем сценарии, или вы обнаружите, что источники слишком быстро или слишком медленные. Дополнительные сведения см. в разделе:

        для рекомендуемых параметров.
      • В документации по источнику аудио в Unity приведены инструкции по установке этих кривых.

      Переглагол

      По умолчанию Microsoft спатиализер отключает эффекты после спатиализер. Для включения переглагола и других эффектов для пространственных источников:

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

      Примеры пространственных звуков Unity

      Примеры пространственного звука в Unity см. в следующих статьях:

      Следующий этап разработки

      Если вы пойдете из процесса разработки Unity, который мы собрали, то будете изучать основные строительные блоки в смешанной реальности. Отсюда вы можете перейти к следующему стандартному блоку:

      Всем привет! Меня зовут Илья, я из команды TinyPlay. Мы разрабатываем хоррор от первого лица для ПК и XBox Series. Сейчас мы участвуем в конкурсе IndieCup S'21, где вошли в финал в категории Best Audio. В этой статье хотел бы поделиться тем, как мы работаем с аудио. Надеюсь, для вас эта статья будет полезной.

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

      - Окружающая среда и все что с ней связано (листва, ветер, скрипы деревьев, ворот и пр.);

      - Звуки противников (атака, получение урона, обнаружение, смерть);

      - Звуки шагов для каждой из поверхностей (в общей сложности более 200 звуков под разные физические материалы);

      - Хоррор-звуки (вызываемые по триггерам);

      - Оружие (стрельба, перезарядка и пр.);

      - Звуки коллизий для физических объектов;

      - Звуки эффектов (взрывы, попадания, искры и пр.);

      - Атмосферная фоновая музыка;

      - Экшн музыка для определенных сцен;

      - Озвучка героев на разных языках;

      - Озвучка коммутаторов и другая озвучка;

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

      Для достижения плавных переходов, различных звуковых областей и работе с компрессией - мы используем стандартный микшер Unity. Для плавных переходов - DOTween.

      Пример того, как плавно переходит музыка в игре:

      isSwitchingMusic = true; MasterMixer.DOSetFloat("MainMusic", -80f, 2f); MasterMixer.DOSetFloat("SecondMusic", 0f, 2f);

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

      Пример работы с обнаружением материала террэйна:

      У нас используется плеер на основе эвентов анимаций, но вы сделать по-другому. Выше описан класс для определения материала террайна. Используя его - можно сопоставить поверхность со звуками.

      Мы перебрали несколько вариантов работы с объемным и главное физически-обоснованым звуком. Мы попробовали Steam Audio, FMOD, Microsoft Acoustics и др.

      В итоге наш выбор пал на FMOD + Dolby Atmos + Microsoft Acousitcs. Почему не Steam Audio? Ну, мы получали непредвиденные вылеты в билдах на Windows со стороны их библиотеки, которые не могли отладить.

      Для чего мы все это используем?

      1) Для автоматического просчета распространения звука в окружающей среде, с учетом её геометрии, материалов и отражаемой способности (каждый объект в игре настраивается отдельно);

      2) Для пространственной обработки аудио при помощи HRTF. В связке с Dolby Atmos звук получается максимально естественным.

      Как это работает?

      Система учитывает пространственное положение звука, источник его приема, угол и десятки других параметров для корректного восприятия, как в наушниках, так и на 5.1 системах.

      Помимо этого, система при помощи рейтрейсинга (трассировки лучей в реальном времени) пробрасывает лучи для определения коллизий и отражений, применимых к звуковым волнам. Для снижения нагрузки эти расчеты производятся на GPU + звук запекается (аналогично Light Probes, но для звука).

      Запекать звук на сцене с тысячами 3D моделей и миллионами полигонов достаточно долго, поэтому мы используем облачные вычисления от Azure. Благо у Microsoft есть отличный инструмент на виртуальных машинах, предназначенный для этого - Azure Batch

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

      Посмотреть пример того, как все работает вкупе можно здесь (на озвучку главного героя не обращайте внимания, мы её уже заменили, но пока не публиковали):


      В какой-то момент каждый разработчик игры задумывается… а почему так тихо?

      Если ваша игра не построена вокруг звукового сопровождения, как, например, Osu!, Guitar Hero или Hotline Miami, то вы вполне можете оказаться в ситуации, когда ваши игра уже почти готова, и тут вы понимаете: “Что-то не так”. Через пару минут размышлений оказывается что в игре нет звука =) Многие редко задумываются о такой важной части игры, и не удивительно, что могут вспомнить о ней в самый последний момент. Так что давайте поговорим немного о звуке.

      Звук в Unity

      Звуковые ассеты в Unity называются AudioClip , а их воспроизведение крутится вокруг двух компонентов AudioListener и AudioSource . AudioListener - это компонент, который ведёт себя как микрофон, он улавливает все звуки на сцене и проигрывает их через динамик. AudioSource - отвечает за проигрывание звука на сцене.

      Соответственно, для того чтобы в игре был звук, необходимо добавить в какой-либо объект на сцене, компонент AudioListener , и обычно таким объектом становится камера. Нужно заметить, что нельзя добавлять больше одного листенера. А также необходимо добавить для всех воспроизводящих звук объектов компоненты AudioSource .

      Можно разделить работу со звуком на три группы:

      • Фоновая музыка - её добавление мы рассмотрим в этой статьи
      • Звуки UI - приемлемым подходом будет добавление в необходимые UI элементы компонентов AudioSource , а их проигрывание привязать к UI эвентам этих элементов
      • Звуки в окружающем пространстве - эта группа несколько сложнее UI элементов, т.к. требует дополнительных механизмов накладывания звуков на динамические объекты, т.к. весь диапазон возможных звуков может быть довольно большим и их перечисление заранее довольно проблематичным. Работа с этой группой требует отдельного механизма и отдельной статьи =)

      Задача

      Добавить механизм проигрывания фоновой музыки. Несколько треков должны проигрываться друг за другом, с возможным добавлением задержки между ними. Предусмотреть возможность заглушения звука (допустим, для проигрывания рекламы).

      Реализация

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

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

      Заключение

      Приведённая реализация демонстрирует довольно низкий порог входа в работу со звуком в Unity. На базовом уровне система довольно проста, однако, при необходимости, можно использовать более продвинутые компоненты по смешиванию звуков и наложению эффектов(например, изменение звука двигателя при въезде в тоннель), также распространено использование сторонних библиотек. Возвращаясь к нашей реализации, можно выделить функционал, который хотелось бы добавить: возможность запуска трека по id, остановку и перезапуск, рандомизацию и хоть каждый такой запрос не является чем-то сложным, всё вместе это выходит за рамки статьи для начального ознакомления, так что оставим это на будущее. Пока! =)

      Как создать источник воспроизведения звука в Unity

      Как добавить музыку в Unity

      • приобрести ее за деньги с гарантией, что она уникальна;

      • заказать у знакомых музыкантов звуковое сопровождение вашей игры;

      • воспользоваться бесплатными аудиобанками;

      • запишите мелодию самостоятельно.

      • найти подходящую песню на специальных ресурсах, где она распространяется с открытой лицензией;

      • поискать музыкантов-любителей, которые не прочь запечатлеть свое творчество в вашей игре;

      • либо , опять же, все можно сделать самостоятельно.

      Заключение

      Мы будем очень благодарны

      если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.

      Читайте также: