Упражнение. Использование реверберации для добавления расстояния в пространственный звук
В предыдущем модуле вы добавили пространственное звучание, чтобы придать звуку направление. В этом модуле вы научитесь добавлять эффект реверберации, чтобы добавить ощущение расстояния в звучании.
Добавление группы микшера и эффекта реверберации
Из учебного пособия по настройке пространственного звука по нажатию на кнопку мы узнали, как добавить микшер. Микшер включает одну группу по умолчанию — master. Поскольку мы хотим применить к некоторым звукам только эффект реверберации, добавим вторую группу для этих звуков. Чтобы добавить группу, щелкните правой кнопкой мыши группу master в аудиомикшере, выберите команду Добавить дочернюю группу и укажите подходящее имя, например, Эффекты в помещении:
Каждая группа имеет собственный набор эффектов. Чтобы добавить действие в новую группу, нажмите кнопку Добавить... в новой группе и выберите пункт Реверберация SFX:
В специальной терминологии звукорежиссеров оригинальный звук без реверберации называется «прямым», а звук после фильтрации с помощью фильтра реверберации называется «обработанным». Оба сигнала отправляются на аудиовыход, и их относительные сильные стороны в этом миксе называются миксом прямого/обработанного сигнала. Микс прямого/обработанного сигнала существенно влияет на ощущение расстояния.
В результате Реверберация SFX включает элементы управления для корректировки микса прямого/обработанного сигнала в эффекте. Учитывая, что подключаемый модуль Microsoft Spatializer обрабатывает прямой сигнал, мы будем использовать реверберацию SFX только для обработанного сигнала. На панели инспектора Реверберация SFX:
- Задайте для свойства Прямой сигнал самое низкое значение (-10000 МБ).
- Настройте для параметра Свойство помещение самое высокое значение (0 мБ)
Остальные параметры определяют характеристики эмуляции помещения. В частности, параметр Время ослабления связан с восприятием размера помещения.
Включение реверберации при воспроизведении видео
Для включения реверберации в источнике звука необходимо выполнить два действия.
- Маршрутизация источника звука в соответствующую группу
- Настройка подключаемого модуля Microsoft Spatializer для передачи звука в группу для обработки
В следующих шагах вы настроите сценарий для управления маршрутизацией аудиоданных и добавите сценарий управления, доступный в подключаемом модуле Microsoft Spatializer для передачи данных в реверберацию.
Выберите Quad в разделе «Иерархия», нажмите Добавить компонент в окне инспектора и добавьте Уровень эффекта в помещении при отправке (сценарий):
Примечание
Если не включена функция Уровень эффекта в помещении при отправке в подключаемом модуле Microsoft Spatializer, он не будет отправлять звук обратно в подсистему аудиозаписи Unity для обработки эффектов.
Компонент Уровень эффекта в помещении при отправке включает управление графами, которое задает уровень звука, отправляемого в подсистему аудиозаписи Unity для обработки реверберации. Чтобы открыть управление графами, щелкните Уровень эффекта в помещении при отправке. Щелкните и перетащите зеленую кривую вниз, чтобы задать уровень около-30 дБ:
Затем удалите комментарии из 4 строк с комментариями в сценарии SpatializeOnOff. Теперь сценарий будет выглядеть следующим образом:
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Audio; [RequireComponent(typeof(AudioSource))] public class SpatializeOnOff : MonoBehaviour { public GameObject ButtonTextObject; public AudioMixerGroup RoomEffectGroup; public AudioMixerGroup MasterGroup; private AudioSource m_SourceObject; private bool m_IsSpatialized; private TMPro.TextMeshPro m_TextMeshPro; public void Start() { m_SourceObject = gameObject.GetComponent<AudioSource>(); m_TextMeshPro = ButtonTextObject.GetComponent<TMPro.TextMeshPro>(); SetSpatialized(); } public void SwapSpatialization() { if (m_IsSpatialized) { SetStereo(); } else { SetSpatialized(); } } private void SetSpatialized() { m_IsSpatialized = true; m_SourceObject.spatialBlend = 1; m_TextMeshPro.SetText("Set Stereo"); m_SourceObject.outputAudioMixerGroup = RoomEffectGroup; } private void SetStereo() { m_IsSpatialized = false; m_SourceObject.spatialBlend = 0; m_TextMeshPro.SetText("Set Spatialized"); m_SourceObject.outputAudioMixerGroup = MasterGroup; } }
После того, как эти строки будут раскомментированы, в инспектор сценария SpatializeOnOff будут добавлены два свойства. Назначьте их в окне "Инспектор" компонента SpatializeOnOff в Quad.
Если объект Quad по-прежнему выбран в иерархии, в окне инспектора выберите компонент Сценарий SpatializeOnOff, а затем:
- Задайте для свойства Группа эффектов комнаты новую группу микшеров эффектов комнаты
- Задайте для свойства Основная группа основную группу микшеров
Нужна помощь? Обратитесь к руководству по устранению неполадок или предоставьте отзыв, сообщив о конкретной проблеме.