Ćwiczenie — używanie reverb w celu dodania odległości do dźwięku przestrzennego

Ukończone

W poprzednim ćwiczeniu dodano przestrzenność dźwięków, aby dać im poczucie kierunku. W tym ćwiczeniu dodasz efekt odgłosu, aby dać dźwiękom poczucie odległości.

Dodawanie grupy miksera i efektu reverb

  1. Wcześniej dodaliśmy mikser. Mikser domyślnie zawiera jedną grupę o nazwie Master. Ponieważ chcemy zastosować tylko efekt reverb do niektórych dźwięków, dodajmy drugą grupę dla tych dźwięków. Aby dodać grupę, kliknij prawym przyciskiem myszy grupę Master w mikserzeaudio wybierz polecenie Dodaj grupę podrzędną. Nadaj grupie odpowiednią nazwę; na przykład Efekt pokoju:

    Screenshot of Add child group.

  2. Każda grupa ma własny zestaw efektów. Aby uzyskać efekt reverb w nowej grupie, kliknij prawym przyciskiem myszy mikser efekt Pokoju, wybierz pozycję Dodaj efekt u dołu, a następnie wybierz pozycję SFX Reverb.

    Screenshot of Add SFX Reverb.

    W terminologii audio oryginalny, niezweryfikowany dźwięk jest nazywany ścieżką suchą, a dźwięk po filtrowaniu za pomocą filtru odgłosu jest nazywany ścieżką mokry. Obie ścieżki są wysyłane do danych wyjściowych dźwięku, a ich względne mocne strony w tej mieszaninie są nazywane mokrą/suchą mieszanką. Mieszanka mokry/sucha silnie wpływa na poczucie odległości.

  3. Reverb SFX zawiera kontrolki, aby dostosować mokrą/suchą mieszankę w ramach efektu. Ponieważ wtyczka Microsoft Spatializer obsługuje ścieżkę suchą, będziemy używać reverb SFX tylko dla ścieżki mokrej. W okienku Inspector (Inspektor) reverb SFX:

    1. Ustaw właściwość Dry Level na najniższe ustawienie (-10000 mB).
    2. Ustaw właściwość Room na najwyższe ustawienie (0 mB).

    Screenshot of SFX Reverb properties.

    Inne ustawienia kontrolują wrażenie symulowanego pomieszczenia. W szczególności czas rozkładu jest związany z postrzeganym rozmiarem pokoju.

Włączanie odtwarzania wideo

  1. Wróć do programu Visual Studio i usuń komentarz z czterech skomentowanych wierszy skryptu SpatializeOnOff . Skrypt będzie teraz wyglądać następująco:

    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. Po usunięciu komentarza te wiersze dodają dwie właściwości do okna Inspector skryptu SpatializeOnOff . Przypisz je w oknie Inspector (Inspektor) składnika SpatializeOnOff czworokąta:

    1. Ustaw właściwość Room Effect Group na nową grupę miksera Room Effect.
    2. Ustaw właściwość Grupa wzorcowa na grupę Mikser główny.

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