演習 - リバーブを使用して、空間オーディオに距離感を追加する
前の演習では、サウンドの空間化を追加して、方向を感じられるようにしました。 この演習では、リバーブ効果を追加してサウンドに距離感を与えます。
ミキサー グループとリバーブ効果を追加する
前に、ミキサーを追加しました。 ミキサーには、[マスター] と呼ばれる 1 つの [グループ] が既定で含まれています。 リバーブ効果を適用するのは一部の音だけなので、その音のために 2 つ目のグループを追加しましょう。 グループを追加するには、[オーディオ ミキサー] の [マスター] グループを右クリックし、[子グループを追加] を選びます。 グループに適切な名前 (たとえば "ルーム効果") を付けます。
各 [グループ] には、一連の独自の効果が含まれています。 新しいグループにリバーブ エフェクトを追加するには、[ルーム効果] ミキサーを右クリックし、[下部にエフェクトを追加] を選び、次に [SFX リバーブ] を選びます。
オーディオ用語では、リバーブのないオリジナルのオーディオはドライ パスと呼ばれ、リバーブ フィルターでフィルター処理された後のオーディオはウェット パスと呼ばれます。 両方のパスがオーディオ出力に送信され、この混合におけるそれぞれの相対的な強度は、ウェット/ドライ ミックスと呼ばれます。 ウェット/ドライ ミックスは、距離の感覚に大きな影響を与えます。
[SFX Reverb](SFX リバーブ) には、効果内のウェット/ドライ ミックスを調整するためのコントロールが含まれています。 ドライ パスは Microsoft Spatializer プラグインが処理するため、[SFX Reverb](SFX リバーブ) はウェット パスにのみ使用します。 [SFX リバーブ] のインスペクター ペインで次の操作を行います。
- [ドライ レベル] プロパティを、最小 (-10000 mB) に設定します。
- [ルーム] プロパティを、最大 (0 mB) に設定します。
他の設定により、シミュレーション ルームの雰囲気を制御できます。 特に [減衰時間] は部屋の大きさの感覚に影響を与えます。
ビデオ再生でのリバーブを有効にする
Visual Studio に戻り、SpatializeOnOff スクリプト内の 4 つのコメント行のコメントを解除します。 スクリプトは次のようになります。
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; } }
これらの行のコメントを解除すると、SpatializeOnOff スクリプトのインスペクター ウィンドウに 2 つのプロパティが追加されます。 これらを、Quad の SpatializeOnOff コンポーネントの [インスペクター] ウィンドウで次のように割り当てます。
- [ルーム効果グループ] プロパティを新しいルーム効果ミキサー グループに設定します。
- [マスター グループ] プロパティをマスター ミキサー グループに設定します。