Esercizio - Usare il riverbero per aggiungere distanza all'audio spaziale

Completato

Nell'esercizio precedente è stata aggiunta la spazializzazione per i suoni per dare loro un senso di direzione. In questo esercizio si aggiungerà un effetto di riverbero per dare un senso di distanza.

Aggiungere un gruppo mixer e un effetto riverbero

  1. In precedenza, abbiamo aggiunto un mixer. Il mixer include un gruppo denominato Master per impostazione predefinita. Poiché si vuole applicare un effetto riverbero solo ad alcuni suoni, verrà aggiunto un secondo gruppo per questi suoni. Per aggiungere un gruppo, fare clic con il pulsante destro del mouse sul gruppo Master in Audio Mixer (Mixer audio) scegliere Add child group (Aggiungi gruppo figlio). Assegnare al gruppo un nome appropriato; ad esempio Effetto stanza:

    Screenshot of Add child group.

  2. Ciascun gruppo ha il proprio set di effetti. Per un effetto riverbero per il nuovo gruppo, fare clic con il pulsante destro del mouse sul mixer Effetto Stanza, selezionare Aggiungi effetto in basso, quindi selezionare SFX Reverb.

    Screenshot of Add SFX Reverb.

    Nella terminologia audio, l'audio originale senza riverbero viene chiamato percorso asciutto e l'audio dopo il filtro con il filtro riverbero viene chiamato percorso bagnato. Entrambi i percorsi vengono inviati all'output audio e i relativi punti di forza in questa miscela sono chiamati mix bagnato/asciutto. Il mix bagnato/asciutto influisce fortemente sul senso della distanza.

  3. SFX Reverb (Riverbero SFX) include controlli per regolare il mix bagnato/asciutto all'interno dell'effetto. Poiché il plug-in Microsoft Spatializer gestisce il percorso asciutto, SFX Reverb (Riverbero SFX) verrà usato solo per il percorso bagnato. Nel riquadro Inspector (Controllo) di SFX Reverb (Riverbero SFX):

    1. Impostare la proprietà Dry Level (Livello asciutto) sull'impostazione più bassa (-10000 mB).
    2. Impostare la proprietà Room (Stanza) sull'impostazione più alta (0 mB).

    Screenshot of SFX Reverb properties.

    Le altre impostazioni controllano l'atmosfera della stanza simulata. In particolare, Decay time (Tempo di decadimento) è correlato alle dimensioni percepite della stanza.

Abilitare il riverbero nella riproduzione video

  1. Tornare a Visual Studio e rimuovere il commento dalle quattro righe commentate nello scriptSpatializeOnOff. Lo script avrà ora un aspetto simile al seguente:

    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. Dopo che queste righe sono impostate su Non commentate, vengono aggiunte due proprietà al Controllo dello script SpatializeOnOff. Assegnarle nella finestra Controllo del componente SpatializeOnOff del Quad:

    1. Impostare la proprietà Room Effect Group (Gruppo effetto stanza) sul nuovo gruppo mixer Room Effect (Effetto stanza).
    2. Impostare la proprietà Master Group (Gruppo master) sul gruppo Master mixer (Mixer master).

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