Ćwiczenie — używanie reverb w celu dodania odległości do dźwięku przestrzennego
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
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 mikserze audio wybierz polecenie Dodaj grupę podrzędną. Nadaj grupie odpowiednią nazwę; na przykład Efekt pokoju:
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.
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.
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:
- Ustaw właściwość Dry Level na najniższe ustawienie (-10000 mB).
- Ustaw właściwość Room na najwyższe ustawienie (0 mB).
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
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; } }
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:
- Ustaw właściwość Room Effect Group na nową grupę miksera Room Effect.
- Ustaw właściwość Grupa wzorcowa na grupę Mikser główny.