Exercice : Utiliser la réverbération pour ajouter une distance à l’audio spatial
Dans l’exercice précédent, vous avez ajouté la spatialisation des sons pour leur donner une impression de direction. Dans cet exercice, vous allez ajouter un effet de réverbération pour donner aux sons une impression de distance.
Ajouter un Mixer Group et un effet de réverbération
Auparavant, nous avons ajouté un mélangeur. Le mixer comprend un groupe par défaut, nommé Master. Étant donné que nous voulons appliquer un effet de réverbération uniquement à certains sons, nous allons ajouter un deuxième groupe pour ces sons. Pour ajouter un groupe, cliquez avec le bouton droit sur le groupe Master dans l’Audio Mixer et choisissez Add child group. Donnez au groupe un nom approprié, par exemple, Room Effect :
Chaque groupe a son propre ensemble d’effets. Pour appliquer un effet de réverbération au nouveau groupe, cliquez avec le bouton droit sur le mixer Room effect, sélectionnez Add effect at bottom, puis SFX Reverb.
Dans la terminologie audio, le son original, sans réverbération, est appelé chemin dry, tandis que l’audio après le filtrage avec le filtre de réverbération est appelé chemin wet. Les deux chemins sont envoyés à la sortie audio, et leurs puissances relatives dans ce mélange porte le nom de mix wet/dry. Le mix wet/dry affecte fortement la sensation de distance.
La SFX Reverb comprend des contrôles pour ajuster le mix wet/dry dans l’effet. Étant donné que le plug-in Microsoft Spatializer gère le chemin dry, nous utiliserons la SFX Reverb uniquement pour le chemin wet. Dans le volet Inspector de votre SFX Reverb :
- Définissez la propriété Dry Level sur le paramètre le plus bas (-10 000 mB).
- Définissez la propriété Room sur le paramètre le plus élevé (0 mB).
Les autres paramètres contrôlent l’atmosphère de la pièce simulée. Decay Time, notamment, est lié à la perception de la taille de la pièce.
Activer la réverbération sur la lecture vidéo
Revenez à Visual Studio et supprimez les marques de commentaire des quatre lignes commentées dans le script SpatializeOnOff. Le script ressemble maintenant à ce qui suit :
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; } }
Une fois les marques de commentaire supprimées sur ces lignes, deux propriétés sont ajoutées à la fenêtre Inspector du script SpatializeOnOff. Affectez-les dans la fenêtre Inspecteur du composant SpatializeOnOff du Quadrant :
- Définissez la propriété Room Effect Group sur votre nouveau groupe de mixer Room Effect.
- Définissez la propriété Master Group sur le groupe de mixer Master.