Exercício – Usar reverb para adicionar distância ao áudio espacial
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
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:
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.
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.
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:
- Defina a propriedade de Nível Seco como a configuração mais baixa (-10000 mB).
- Defina a propriedade Sala para a configuração mais alta (0 mB).
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
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; } }
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:
- Defina a propriedade Grupo de Efeitos de Sala como seu novo grupo de mixers de Efeitos de Sala.
- Defina a propriedade Grupo Mestre como o grupo Mestre de misturadores.