Ćwiczenie — używanie reverb w celu dodania odległości do dźwięku przestrzennego
W poprzednim ćwiczeniu dodałeś efekt przestrzenności dźwięków, aby nadać im poczucie kierunku. W tym ćwiczeniu dodasz efekt odgłosu, aby dać dźwiękom poczucie odległości.
Dodaj grupę miksera i efekt pogłosu
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 na grupie Master w Audio Mixer i wybierz Dodaj grupę podrzędną. Nadaj grupie odpowiednią nazwę; na przykład efekt pokoju:
Każda grupa ma swój własny zestaw efektów. Dodaj efekt pogłosu do nowej grupy, kliknij prawym przyciskiem myszy efekt Room na mikserze, wybierz Dodaj efekt na dole, a następnie wybierz SFX Reverb.
W terminologii audio oryginalny, nienachallikowany dźwięk nazywa się ścieżką suchą , a dźwięk po filtrowaniu za pomocą filtru pogłosowego nazywa się ścieżką mokrą . Obie ścieżki są wysyłane do danych wyjściowych dźwięku, a ich względne mocne strony w tej mieszaninie są nazywane mokry/suchy mix. Mieszanka mokry/sucha silnie wpływa na poczucie odległości.
SFX Reverb zawiera kontrolki, aby dostosować mokrą/suchą mieszankę w ramach efektu. Ponieważ wtyczka Microsoft Spatializer obsługuje ścieżkę suchą, będziemy używać SFX Reverb tylko dla ścieżki mokrej. W okienku Inspektora SFX Reverb:
- Ustaw właściwość poziomu suchego na najniższe ustawienie (-10000 mB).
- Ustaw właściwość Room na maksymalny poziom (0 mB).
Inne ustawienia kontrolują wrażenie symulowanego pomieszczenia. W szczególności Czas rozpadu jest związany z postrzeganym rozmiarem pomieszczenia.
Włącz pogłos podczas odtwarzania wideo
Wróć do programu Visual Studio i usuń komentarze z czterech skomentowanych wierszy w skrypcie 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; } }
Po usunięciu komentarza te wiersze dodają dwie właściwości do okna Inspektor skryptu SpatializeOnOff. Przypisz to w oknie Inspector składnika SpatializeOnOff komponentu Quad:
- Ustaw właściwość Room Effect Group na nową grupę miksera Room Effect.
- Ustaw właściwość Master Group na główną grupę miksera.