Övning – Använd reverb för att lägga till avstånd till rumsligt ljud
I föregående övning lade du till spatialisering för ljuden för att ge dem en känsla av riktning. I den här övningen lägger du till en reverb-effekt för att ge ljud en känsla av avstånd.
Lägg till en mixergrupp och en reverb-effekt
Tidigare lade vi till en mixer. Mixern innehåller en grupp som standard, med namnet Master. Eftersom vi bara vill tillämpa en reverb-effekt på vissa ljud ska vi lägga till en andra grupp för dessa ljud. Om du vill lägga till en grupp högerklickar du på huvudgruppen i ljudblandaren och väljer Lägg till underordnad grupp. Ge gruppen ett lämpligt namn; till exempel Rumseffekt:
Varje grupp har en egen uppsättning effekter. Högerklicka på rumseffektblandaren för att återgå till den nya gruppen, välj Lägg till effekt längst ned och välj sedan SFX Reverb.
I ljudterminologi kallas det ursprungliga, overktra ljudet den torra sökvägen, och ljudet efter filtrering med reverbfiltret kallas den våta sökvägen. Båda sökvägarna skickas till ljudutdata, och deras relativa styrkor i denna blandning kallas den våta/torra blandningen. Den våta/torra blandningen påverkar starkt känslan av avstånd.
SFX Reverb innehåller kontroller för att justera den våta/torra blandningen inom effekten. Eftersom Plugin-programmet Microsoft Spatializer hanterar den torra sökvägen använder vi bara SFX Reverb för den våta sökvägen. I fönstret Inspector i din SFX Reverb:
- Ange egenskapen Torr nivå till den lägsta inställningen (-1 0000 mB).
- Ange egenskapen Room till den högsta inställningen (0 mB).
De andra inställningarna styr känslan i det simulerade rummet. I synnerhet är Decay Time relaterat till upplevd rumsstorlek.
Aktivera reverb på videouppspelningen
Gå tillbaka till Visual Studio och avkommentera de fyra kommenterade raderna i SpatializeOnOff-skriptet . Skriptet ser nu ut så här:
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; } }
När dessa rader är okommenterade läggs två egenskaper till i SpatializeOnOff-skriptets Inspector-fönster. Tilldela dessa i Inspector-fönstret för SpatializeOnOff-komponenten i Quad:
- Ange egenskapen Rumseffektgrupp till din nya Room Effect-mixergrupp.
- Ange egenskapen Master Group till gruppen Master mixer.