Oefening: reverb gebruiken om afstand toe te voegen aan ruimtelijke audio
In de vorige oefening hebt u ruimtelijkheid voor de geluiden toegevoegd om ze een richting te geven. In deze oefening voegt u een reverb-effect toe om geluiden een gevoel van afstand te geven.
Een mixergroep en een reverb-effect toevoegen
Eerder hebben we een mixer toegevoegd. De mixer bevat standaard één Group, Mastergenoemd. Omdat we alleen een reverb-effect willen toepassen op sommige geluiden, gaan we een tweede groep voor die geluiden toevoegen. Als u een groep wilt toevoegen, klikt u met de rechtermuisknop op de groep Master in de Audio Mixer kiest u Onderliggende groep toevoegen. Geef de groep een geschikte naam; bijvoorbeeld Ruimte-effect:
Elke Groep heeft een eigen set effecten. Als u een reverb-effect wilt toepassen voor de nieuwe groep, klikt u met de rechtermuisknop op de Room effect mixer, selecteert u Effect onder aantoevoegen en selecteert u dan vervolgens SFX Reverb.
In audioterminologie wordt de oorspronkelijke, niet-gereflecteerde audio het droge padgenoemd en wordt de audio na het filteren met het reverb-filter het natte padgenoemd. Beide paden worden naar de audio-uitvoer verzonden en hun relatieve sterkte in dit mengsel wordt de wet/dry mixgenoemd. De natte/droge mix is sterk van invloed op het gevoel van afstand.
De SFX Reverb bevat besturingselementen om de natte/droge mix binnen het effect aan te passen. Omdat de Microsoft Spatializer plugin het droge pad afhandelt, gebruiken we de SFX Reverb alleen voor het natte pad. In het deelvenster Inspector van uw SFX Reverb:
- Stel de eigenschap Dry Level in op de laagste instelling (-10000 mB).
- Stel de eigenschap Room in op de hoogste instelling (0 mB).
De andere instellingen bepalen het gevoel van de gesimuleerde ruimte. Met name vervaltijd is gerelateerd aan de waargenomen kamergrootte.
Reverb inschakelen voor het afspelen van video's
Ga terug naar Visual Studio en haal de opmerkingen weg bij de vier regels in het script SpatializeOnOff. Het script ziet er nu als volgt uit:
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; } }
Zodra deze regels zijn verwijderd, worden er twee eigenschappen toegevoegd aan het venster Inspector van het SpatializeOnOff script. Wijs deze toe aan het Inspector-venster van SpatializeOnOff onderdeel van de Quad:
- Stel de eigenschap Room Effect Group in op je nieuwe Room Effect mixergroep.
- Stel de eigenschap Master Group in op de mastermixergroep.