Exercício – Usar reverb para adicionar distância ao áudio espacial

Concluído

No exercício anterior, você adicionou espacialização aos sons para dar a eles uma sensação de direção. Neste exercício, você adicionará um efeito de reverberação para dar aos sons uma sensação de distância.

Adicionar um grupo de mixers e um efeito reverb

  1. Anteriormente, adicionamos um mixer. O mixer inclui um Grupo por padrão, chamado Mestre. Como só queremos aplicar um efeito reverb a alguns sons, vamos adicionar um segundo Grupo para esses sons. Para adicionar um Grupo, clique com o botão direito do mouse no grupo Mestre no Mixer de Audio e escolha Adicionar grupo filho. Dê ao grupo um nome adequado; por exemplo, Efeito de Sala:

    Screenshot of Add child group.

  2. Cada Grupo tem um conjunto de efeitos. Para adicionar um efeito de reverberação ao novo grupo, clique com o botão direito do mouse no mixer de Efeitos de sala, selecione Adicionar efeito na parte inferior e, em seguida, selecione SFX Reverb.

    Screenshot of Add SFX Reverb.

    Na terminologia de áudio, o áudio original não verberado é chamado de caminho seco, e o áudio após a filtragem com o filtro reverb é chamado de caminho úmido. Ambos os caminhos são enviados para a saída de áudio e suas intensidades relativas nessa mistura são chamadas de mistura úmida/seca. A mistura úmida/seca afeta bastante a sensação de distância.

  3. O Reverb SFX inclui controles para ajustar a mistura úmida/seca dentro do efeito. Como o plug-in Microsoft Spatializer lida com o caminho seco, vamos usar o Reverb SFX somente para o caminho úmido. No painel Inspetor de seu Reverb SFX:

    1. Defina a propriedade de Nível Seco como a configuração mais baixa (-10000 mB).
    2. Defina a propriedade Sala para a configuração mais alta (0 mB).

    Screenshot of SFX Reverb properties.

    As outras configurações controlam a sensação da sala simulada. Em particular, Tempo de Decaimento está relacionado ao tamanho da sala percebida.

Habilitar o reverb na reprodução de vídeo

  1. Volte ao Visual Studio e remova a marca de comentário das quatro linhas do script SpatializeOnOff. O script agora terá esta aparência:

    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;
        }
    }
    
    
  2. Uma vez removida a marca de comentário dessas linhas, ele adiciona duas propriedades à janela Inspector do script SpatializeOnOff. Atribua-os na janela Inspetor do componente SpatializeOnOff do Quad:

    1. Defina a propriedade Grupo de Efeitos de Sala como seu novo grupo de mixers de Efeitos de Sala.
    2. Defina a propriedade Grupo Mestre como o grupo Mestre de misturadores.

    Screenshot of the new SpatializeOnOff fields with the correct options selected.