Cvičení – použití funkce reverb k přidání vzdálenosti k prostorovým zvukům
V předchozím cvičení jste přidali prostorovou prostorizaci zvuků, abyste jim dali představu o směru. V tomto cvičení přidáte efekt dozvuku, aby zvuky měly pocit vzdálenosti.
Přidejte skupinu mixéru a efekt dozvuku
Dříve jsme přidali mixér. Mixér obsahuje ve výchozím nastavení jednu skupinu, která se nazývá Master. Protože budeme chtít použít efekt dozvuku pouze u některých zvuků, přidáme pro tyto zvuky druhou skupinu. Chcete-li přidat skupinu, klikněte pravým tlačítkem myši na skupinu Master ve Audio Mixer a zvolte Přidat podřízenou skupinu. Dejte skupině vhodný název; například Efekt místnosti:
Každá skupina má vlastní sadu efektů. Chcete-li přidat reverb do nové skupiny, klikněte pravým tlačítkem myši na mixér Room efektu , zvolte Přidat efekt dole a pak vyberte SFX Reverb .
V terminologii zvuku se původní, nepřevrácený zvuk nazývá suchá cestaa zvuk po filtrování pomocí filtru reverb se nazývá mokrá cesta. Obě cesty se posílají do zvukového výstupu a jejich relativní síla v této směsi se nazývá mokrý/suchý mix. Mokrá/suchá směs silně ovlivňuje smysl vzdálenosti.
SFX Reverb obsahuje ovládací prvky pro úpravu mokrého/suchého mixu v rámci efektu. Vzhledem k tomu, že modul plug-in Microsoft Spatializer zpracovává suchou cestu, budeme používat SFX Reverb pouze pro mokrou cestu. V podokně inspektoru SFX Reverb:
- Nastavte vlastnost "Sucho" na nejnižší nastavení (-10000 mB).
- Nastavte vlastnost Room na nejvyšší nastavení (0 mB).
Ostatní nastavení řídí chování simulované místnosti. Konkrétně Doba rozpadu souvisí s vnímanou velikostí místnosti.
Povolit dozvuk při přehrávání videa
Vraťte se do sady Visual Studio a odkomentujte čtyři okomentované řádky ve skriptu SpatializeOnOff. Skript teď bude vypadat takto:
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; } }
Jakmile jsou tyto řádky nekommentovány, přidá dvě vlastnosti do okna inspektoru SpatializeOnOff skriptu. Přiřaďte je v okně inspektoru komponenty SpatializeOnOff kvádru :
- Nastavte vlastnost Room Effect Group na novou skupinu mixéru Room Effect.
- Nastavte vlastnost Master Group na skupinu Master mixer.