Использование реверберации для добавления эффекта расстояния пространственному звукуUsing reverb to add distance to spatial audio

ЗадачиObjectives

В предыдущих главах мы добавили пространственность для звуков, чтобы дать им представление о направлении.In previous chapters, we added spatialization to sounds to give them a sense of direction. В этой 5-й главе мы добавим действие с переглаголом, чтобы дать звуковое представление о расстоянии.In this 5th chapter, we'll add a reverb effect to give sounds a sense of distance. Наши цели:Our objectives are to:

  • Улучшение наблюдаемого расстояния источников звука путем добавления переглаголаImprove perceived distance of sound sources by adding reverb
  • Управление воспринимаемым расстоянием звука с помощью расстояния прослушивателя к голограммеControl perceived distance of the sound using the listener's distance to the hologram

Добавление группы микшера и действия по передействиюAdd a mixer group and a reverb effect

В главе 2мы добавили микшер.In Chapter 2, we added a mixer. Микшер включает одну группу по умолчанию — master.The mixer includes one Group by default called Master. Так как мы хотим применить к некоторым звукам только переглаголные эффекты, добавим вторую группу для этих звуков.Because we'll only want to apply a reverb effect to some sounds, let's add a second Group for those sounds. Чтобы добавить группу, щелкните правой кнопкой мыши главную группу в микшере аудио и выберите Добавить дочернюю группу:To add a Group, right click on the Master group in the Audio Mixer and choose Add child group:

Добавить дочернюю группу

В этом примере мы назвали новую группу "воздействие на комнату".In this example, we've named the new group "Room Effect".

Каждая Группа имеет собственный набор эффектов.Each Group has its own set of effects. Чтобы добавить действие в новую группу, нажмите кнопку Добавить... в новой группе и выберите пункт перекоманда SFX:Add a reverb effect to the new group by clicking Add... on the new group, and choosing SFX Reverb:

Добавление переглагола SFX

В терминологии «звук» оригинал, унревербератедный звук называется « _сухой_», а звук после фильтрации с помощью фильтра перезапуска называется «защелка ».In audio terminology, the original, unreverberated audio is called the dry path, and the audio after filtering with the reverb filter is called the wet path. Оба пути отправляются в выходные данные, и их относительные сильные стороны в этом сочетании называются набором задолженности /сухой.Both paths are sent to the audio output, and their relative strengths in this mixture is called the wet/dry mix. Завлажный или сухой набор сильно влияет на смысл расстояния.The wet/dry mix strongly affects the sense of distance.

В результате переглагола SFX включены элементы управления для корректировки затронутого или сухой набора.The SFX Reverb includes controls to adjust the wet/dry mix within the effect. Так как подключаемый модуль Microsoft спатиализер обрабатывает сухой путь, мы будем использовать переработку SFX только для пути с осторожностью.Because the Microsoft Spatializer plugin handles the dry path, we'll be using the SFX Reverb only for the wet path. На панели инспектора переглагола SFX:On the Inspector pane of your SFX Reverb:

  • Задайте для свойства уровень сухой (-10000 МБ) значение наименьшее.Set the Dry Level property to the lowest setting (-10000 mB)
  • Задайте для свойства комнаты наибольшее значение (0 МБ).Set the Room property to the highest setting (0 mB)

После внесения этих изменений панель инспектора в параметре SFX будет выглядеть следующим образом:After these changes, the Inspector pane of the SFX Reverb will look like this:

Свойства переглагола SFX

Другие параметры управляют имитацией комнаты.The other settings control the feel of the simulated room. В частности, время Decay связано с наблюдаемым размером комнаты.In particular, Decay Time is related to perceived room size.

Включение переглагола при воспроизведении видеоEnable reverb on the video playback

Для включения переглагола в источнике звука необходимо выполнить два действия.There are two steps to enable reverb on an audio source:

  • Маршрутизация источника звука в соответствующую группуRoute the Audio Source to the appropriate Group
  • Настройка подключаемого модуля Microsoft спатиализер для передачи звука в группу для обработкиSet the Microsoft Spatializer plugin to pass audio into the Group for processing

На следующих шагах мы назовем наш сценарий для управления маршрутизацией аудио и подключим сценарий управления, предоставляемый с подключаемым модулем Microsoft спатиализер , для передачи данных в переглагол.In the following steps, we'll adjust our script to control the audio routing, and attach a control script provided with the Microsoft Spatializer plugin to feed data into the reverb.

На панели инспектора для четырех нажмите кнопку Добавить компонент и добавьте сценарий уровня отправки "действие комнаты ":On the Inspector pane for the Quad, click Add Component and add the Room Effect Send Level script:

Добавить скрипт уровня отправки

Примечание

Если вы не включите уровень отправки "воздействие на комнату " в подключаемом модуле Microsoft спатиализер , он не отправляет звук обратно в подсистему аудиозаписи Unity для обработки эффектов.Unless you enable Room Effect Send Level feature of the Microsoft Spatializer plugin, it doesn't send any audio back to the Unity audio engine for effect processing.

Компонент уровня отправки "эффекты комнаты " включает элемент управления "график", который задает уровень звука, отправляемого в подсистему аудиозаписи Unity для обработки в виде переглагола.The Room Effect Send Level component includes a graph control that sets the level of the audio sent to the Unity audio engine for reverb processing. Щелкните и перетащите кривую вниз, чтобы установить уровень около-30dB:Click and drag the curve downwards to set the level to about -30dB:

Настройка кривой реглагола

Затем раскомментируйте 4 строки с комментариями в сценарии спатиализеонофф .Next, uncomment the 4 commented lines in the SpatializeOnOff script. Теперь сценарий будет выглядеть следующим образом:The script will now look like this:

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;
    }

}

Раскомментируя эти строки, добавляет два свойства на панель инспектора для скрипта.Uncommenting these lines adds two properties to the Inspector pane for the script. Чтобы задать их, на панели инспектора в компоненте Спатиализе on of четыре:To set these, on the Inspector pane of the Spatialize On Off component of the Quad:

  • Установка свойства группы эффектов комнаты в новую группу микшеров эффектов комнатыSet the Room Effect Group property to your new Room Effect mixer group
  • Задание свойства главной группы для главной группы микшераSet the Master Group property to the Master mixer group

После этих изменений свойства Спатиализе On Off будут выглядеть следующим образом:After these changes, the Spatialize On Off properties will look like this:

Спатиализе On Off

Дальнейшие действияNext steps

Попробуйте приложение в HoloLens 2 или в редакторе Unity.Try out your app on a HoloLens 2 or in the Unity editor. Теперь, когда вы намерены нажать кнопку в приложении, чтобы активировать пространственность, сценарий направит звук видео в группу эффектов комнаты, чтобы добавить переглагол.Now, when touching the button in the app to activate spatialization, the script will route the video's audio to the Room Effect Group to add reverb. При переключении на стерео вы направите звук в главную группу и не добавите команду.When switching to stereo, it will route the audio to the Master group, and avoid adding reverb.

Вы завершили учебники по пространственному звуку HoloLens 2 для Unity.You've completed the HoloLens 2 spatial audio tutorials for Unity. Поздравляем!Congratulations!