5. Usar o reverb para adicionar distância ao áudio espacial5. Using reverb to add distance to spatial audio

Visão geralOverview

No tutorial anterior, você adicionou a espacialização dos sons para dar a eles uma ideia de direção neste tutorial. você adicionará um efeito de reverberação para dar aos sons uma sensação de distância.In previous tutorial, you have added spatialization for the sounds to give them a sense of direction in this tutorial you'll add a reverb effect to give sounds a sense of distance.

ObjetivosObjectives

  • Melhore a distância percebida de fontes de som adicionando o reverberar.Improve perceived distance of sound sources by adding reverb.
  • Controle a distância percebida do som usando a distância do ouvinte para o holograma.Control perceived distance of the sound using the listener's distance to the hologram.

Adicionar um grupo de mixers e um efeito de reverberaçãoAdd a mixer group and a reverb effect

No tutorial de sons de interação do botão espacial, adicionamos um mixer.In Spatializing button interaction sounds Tutorial, we added a mixer. O mixer inclui um grupo por padrão chamado Master.The mixer includes one Group by default called Master. Como só desejamos aplicar um efeito de reverberação a alguns sons, vamos adicionar um segundo grupo para esses sons.Because we'll only want to apply a reverb effect to some sounds, let's add a second Group for those sounds. Para adicionar um grupo, clique com o botão direito do mouse no grupo mestre no mixer de áudio escolha Adicionar grupo filho e forneça um nome adequado para o exemplo de efeito de sala:To add a Group, right click on the Master group in the Audio Mixer choose Add child group and give suitable name for example Room Effect:

Adicionar grupo filho

Cada grupo tem seu próprio conjunto de efeitos.Each Group has its own set of effects. Adicione um efeito de reverberação ao novo grupo clicando em Adicionar... no novo grupo e escolhendo o reverberar de SFX:Add a reverb effect to the new group by clicking Add... on the new group, and choosing SFX Reverb:

Adicionar reverbo SFX

Na terminologia de áudio, o áudio unreverberated original é chamado de caminho seco, e o áudio após a filtragem com o filtro de reverberação é chamado de caminho úmida.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. Ambos os caminhos são enviados para a saída de áudio, e seus pontos fortes relativos nessa mistura são chamados de mistura úmida/seca.Both paths are sent to the audio output, and their relative strengths in this mixture is called the wet/dry mix. A mistura úmida/seca afeta fortemente a sensação de distância.The wet/dry mix strongly affects the sense of distance.

O inverbo SFX inclui controles para ajustar a mistura úmida/seca dentro do efeito.The SFX Reverb includes controls to adjust the wet/dry mix within the effect. Como o plug-in Spatializer da Microsoft trata o caminho seco, usaremos o único verbo SFX somente para o caminho úmida.Because the Microsoft Spatializer plugin handles the dry path, we'll be using the SFX Reverb only for the wet path. No painel Inspetor de seu reverbo SFX:On the Inspector pane of your SFX Reverb:

  • Definir a propriedade de nível seco para a configuração mais baixa (-10000 MB)Set the Dry Level property to the lowest setting (-10000 mB)
  • Definir a Propriedade Room como a configuração mais alta (0 MB)Set the Room property to the highest setting (0 mB)

Propriedades de reverberação SFX

As outras configurações controlam a sensação da sala simulada.The other settings control the feel of the simulated room. Em particular, o tempo de decaimento está relacionado ao tamanho de sala percebido.In particular, Decay Time is related to perceived room size.

Habilitar reverberação na reprodução de vídeoEnable reverb on the video playback

Há duas etapas para habilitar o reverberador em uma fonte de áudio:There are two steps to enable reverb on an audio source:

  • Rotear a fonte de áudio para o grupo apropriadoRoute the Audio Source to the appropriate Group
  • Defina o plug-in Microsoft Spatializer para passar áudio para o grupo para processamentoSet the Microsoft Spatializer plugin to pass audio into the Group for processing

Nas etapas a seguir, você ajustará o script para controlar o roteamento de áudio e anexará um script de controle fornecido com o plug-in do Microsoft Spatializer para alimentar dados no reverbo.In the following steps, you will adjust the script to control the audio routing, and attach a control script provided with the Microsoft Spatializer plugin to feed data into the reverb.

Com o Quad selecionado na hierarquia, clique em Adicionar componente na janela Inspetor e adicione o nível de envio de efeito Room (script):With the Quad selected in the Hierarchy click Add Component On the Inspector window and add the Room Effect Send Level(Script):

Adicionar script de nível de envio

Observação

A menos que você habilite o recurso de nível de envio de efeito Room do plug-in do Microsoft Spatializer , ele não envia nenhum áudio de volta para o mecanismo de áudio do Unity para processamento de efeito.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.

O componente de nível de envio de efeito Room inclui um controle de gráfico que define o nível do áudio enviado ao mecanismo de áudio do Unity para o processamento de reverberação.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. Para abrir o controle de gráfico, clique no nível de envio de efeito de sala.To open the graph control, click on the Room Effect Send Level. Clique e arraste a curva verde para baixo para definir o nível como About-30dB:Click and drag the green curve downwards to set the level to about -30dB:

Ajustar curva de reverberação

Em seguida, remova os comentários das 4 linhas comentadas no script SpatializeOnOff .Next, uncomment the 4 commented lines in the SpatializeOnOff script. O script agora terá esta aparência: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;
    }

}

Depois que essas linhas são desmarcadas, elas adicionam duas propriedades ao inspetor do script SpatializeOnOff.Once these lines are Uncommented it adds two properties to the Inspector of the SpatializeOnOff script. atribua-os na janela Inspetor do componente SpatializeOnOff do Quad.assign these on the Inspector window of SpatializeOnOff component of the Quad.

Com o quad Object ainda selecionado na hierarquia, na janela do Inspetor, localize o componente de script SpatializeOnOff e:With the Quad object still selected in the Hierarchy , in the Inspector window locate the SpatializeOnOff Script component and :

  • Defina a propriedade grupo de efeitos da sala como o novo grupo do mixer de efeito RoomSet the Room Effect Group property to your new Room Effect mixer group
  • Definir a propriedade do grupo mestre como o grupo do mixer mestreSet the Master Group property to the Master mixer group

Espacial eslongada estendida

ParabénsCongratulations

Você concluiu os tutoriais de áudio espacial 2 do HoloLens para o Unity.You've completed the HoloLens 2 spatial audio tutorials for Unity. Experimente o aplicativo em um HoloLens 2 ou Unity.Try out the app on a HoloLens 2 or Unity. Quando você clica no botão no aplicativo para ativar a espacialização, o script roteará o áudio do vídeo para o grupo de efeitos da sala para adicionar o reverberador.When you click the button in the app to activate spatialization, the script will route the video's audio to the Room Effect Group to add reverb. Ao alternar para o estéreo, ele encaminhará o áudio para o grupo mestre e evitará adicionar o reverberador.When switching to stereo, it will route the audio to the Master group, and avoid adding reverb.

Dica

Para obter um lembrete sobre como criar e implantar o seu projeto do Unity no HoloLens 2, confira as instruções em Como criar o aplicativo para o seu HoloLens 2.For a reminder on how to build and deploy your Unity project to HoloLens 2, you can refer to the Building your app to your HoloLens 2 instructions.