概要
Audio Modulation システムにより、ブループリント や コンポーネント システムからの共通オーディオ パラメータを細かく制御できます。このシステムには、音源のミキシング、オーディオ プロパティの動的な制御やパラメータ化のための一連の機能が備わっています。以前のバージョンの Unreal Engine で提供されていたものよりもさらに洗練されたこれらの機能により、より直感的で動的な制御が可能になります。
このガイドでは、ゲーム オーディオ用の基本的なボリュームベースの コントロール バス 構造を構築する方法について説明します。
目的
Audio Modulation プラグイン を使用し、ゲーム オーディオ用の基本的なボリュームベースのコントロール バス構造を構築する。
目標
-
コントロール バスおよびコントロール バス ミックス オブジェクト のコレクションを作成し、Sound アセットにボリューム ミキシングを適用する。
-
コントロール バスを MetaSound ソース および サウンド クラス に割り当てる。
-
Mix Matrix Debugger を使用し、コントロール バスの現在の値を確認する。
-
ブループリントからコントロール バスを調整する。
1 - 必要な設定
-
新規プロジェクトを作成して [Games (ゲーム)] カテゴリを選択し、「Third Person」テンプレートを選択します。プロジェクトの場所と名前を入力します。[Create (作成)] をクリックします。
-
[Settings (設定)] > [Plugins (プラグイン)] をクリックして、[Plugins] ウィンドウを開きます。
-
Audio Modulation および MetaSound プラグインを検索して 有効 にします。Unreal Engine を再起動します。
このセクションの結果
このセクションでは、新しいプロジェクトを作成し、Audio Modulation および MetaSound プラグインを有効にしました。これで、コントロール バスを作成する準備が整いました。
2 - コントロール バスを作成する
-
コンテンツ ブラウザ で右クリックして [Audio (オーディオ)] > [Modulation (モジュレーション)] > [Control Bus (コントロール バス)] を選択します。アセットに「
CB_Main」という名前を付けます。
-
CB_Mainを開き、[Parameter (パラメータ)] ドロップダウンをクリックします。ギア アイコンをクリックし、[Show Plugin Content (プラグイン コンテンツを表示)] チェックボックスをオンにします。Modulation プラグインはエンジンのプラグインであるため、[Show Engine Content (エンジンのコンテンツを表示)] の選択が必要な場合があります。
-
[Volume (ボリューム)] パラメータを検索して選択します。
コンテンツ ブラウザで右クリックして [Audio] > [Modulation] > [Modulation Parameter (モジュレーション パラメータ)] を選択し、カスタム パラメータを作成できます。リストから SoundModulationParameterVolume クラスを選択します。
-
コンテンツ ブラウザ 内で 2 つのフォルダを作成し、デザイナやユーザー用にいくつかのコントロール バスを含めます。次の例では、フォルダに
Buses_DesignerとBuses_Userという名前が付けられています。
-
CB_Mainを右クリックし、[Duplicate (複製)] を選択します。新しいアセットに「CB_Ambience」と名前を付けます。
-
このプロセスをさらに 2 回繰り返し、「
CB_Foley」と「CB_Footsteps」を作成します。3 つのアセットすべてを選択し、「Buses_Designer」フォルダに移動します。
-
上記手順を繰り返し、「
CB_Dialogue」、「CB_Music」、および「CB_SFX」を作成します。それらを「Buses_User」フォルダに移動します。
このセクションの結果
このセクションでは、プロジェクト内の割り当てられたすべてのオーディオをモジュレーションする、メインのコントロール バスを作成しました。さらに、ユーザーとデザイナ用にいくつかのコントロール バスを作成しました。これで、メインのコントロール バスをプロジェクト内のマスター サウンド クラスに割り当てる準備ができました。
3 - コントロール バスを Sound アセットに割り当てる
-
[Settings (設定)] > [Project Settings (プロジェクト設定)] をクリックして [Project Settings] を開きます。
-
[Engine (エンジン)] セクションまで下にスクロールして、[Audio (オーディオ)] カテゴリを選択します。[Audio] セクションに移動し、[Master Default Sound Class (マスター デフォルト サウンド クラス)] をダブルクリックして開きます。
-
[Details (詳細)] パネルで [Modulation] セクションに移動し、[Volume] の横の [Modulate (モジュレート)] チェックボックスをオンにします。
- [Volume Modulators (ボリューム モジュレーター)] の横の [+] をクリックし、
CB_Mainを Index[0] に追加します。
CB_Mainコントロール バスをプロジェクト内の追加のサウンド クラスに追加し、すべてのサウンドが同じコントロール バスを使用してミックスされるようにします。サウンド クラスの参照階層は、モジュレーションおよびミックス構造によって監視されていません。各サウンド クラスは、前述のサウンド クラスを参照する Sound アセットに適用されるすべてのコントロール バスをリストする必要があります。 - [Volume Modulators (ボリューム モジュレーター)] の横の [+] をクリックし、
このセクションの結果
このセクションでは、CB_Main コントロール バスをマスター サウンド クラスに割り当てました。これで、サンプルの MetaSound を作成し、ゲームプレイ中にそのミックスをテストする準備が整いました。
4 - サンプルの MetaSound を作成する
-
コンテンツ ブラウザ で右クリックし、[Audio] > [MetaSound Source] の順に選択して新しい MetaSound アセットを作成します。アセットに「
MS_Sample」という名前を付けます。
-
コンテンツ ブラウザ でダブルクリックし、
MS_Sampleを開きます。-
左側の [Interfaces (インターフェース)] パネルに移動し、UE.Source.OneShot の横の 削除 アイコンをクリックして削除します。
-
イベント グラフ を右クリックし、[Wave Player (Mono) (ウェーブ プレーヤー (モノラル))] を検索し、選択します。
-
Input ノードを、Wave Player ノードの Play ピンに接続します。
-
Wave Player ノードの Out Mono ピンを Output ノードに接続します。
-
-
[Wave Asset (ウェーブ アセット)] ドロップダウンをクリックして Sound アセットを選択します。この例では、EndPlayInEditor が選択されました。
- [Loop (ループ)] チェックボックスをオンにします。
-
ツールバーで [Source (ソース)] をクリックし、[Details] パネルまで下にスクロールします。
-
[Modulation] カテゴリを展開します。
-
[Volume Routing (ボリューム ルーティング)] ドロップダウンをクリックし、[Union (結合)] を選択します。
-
[Volume] の横の [Modulate] チェックボックスをオンにします。
-
[Volume Modulators] の横の [+] をクリックし、「
CB_SFX」を [Index[0]] に追加します。
-
-
MS_Sampleをレベルにドラッグします。
このセクションの結果
このセクションでは、Sound アセットを継続的に再生する単純な MetaSound を作成しました。これで、コントロール バス ミックスをコントロール バスに適用する準備が整いました。
5 - ミックスを適用する
このセクションでは、コントロール バス ミックス を作成し、「Buses_User」フォルダ内のすべての コントロール バス に適用します。「Buses_Designer」フォルダ内のすべてのコントロール バスについても、以下の手順に従って、コントロール バス ミックスを作成できます。さらに、ミックスに含めることができる対象について、厳しいルールはありません。
複数のミックスをアクティブにし、単一またはグループのコントロール バスに適用できます。ただし、一度にアクティブにできるのは、特定のミックスの単一のインスタンスのみです。
-
コンテンツ ブラウザ で右クリックして [Audio] > [Modulation] > [Control Bus Mix (コントロール バス ミックス)] を選択します。アセットに「
CM_User」という名前を付けます。
-
CM_User を開き、[Mix Stages (ミックス ステージ)] セクションに移動します。
-
[Mix Stages] の横の [+] をクリックし、新しいミックスを追加します。
-
[Bus (バス)] ドロップダウンをクリックして「
CB_Dialogue」を選択します。
-
-
上記手順を繰り返し、
CB_MusicおよびCB_SFXを [Mix Stages] に追加します。
-
[Play (プレイ)] を押してランタイムを開始します。
-
Shift-F1 を押し、マウスのコントロールを再取得します。
-
CM_Userに移動し、[Activate Mix (アクティブなミックス)] をクリックします。 -
CB_SFXの値を変更し、リアルタイムで適用される変更を確認します。
-
このセクションの結果
このセクションでは、CM_User コントロール ミックス を作成し、プロジェクト内のコントロール バスに適用しました。また、ゲームプレイ中にミックスをアクティブにし、CB_SFX コントロール バスを使用してサウンドのボリュームを変更しました。
6 - ミックスをデバッグする
-
ゲームプレイ中に「~」を押すと、コンソール ウィンドウが開きます。
- コマンド
au.Debug.SoundModulators.Enable.Matrix 1を入力し、サウンド モジュレーションのデバッグを有効にします。
- コマンド
-
コマンド
au.Debug.SoundModulators.Filter.Buses [substring]およびau.Debug.SoundModulators.Filter.Mixes [substring]を入力すると、表示されるコントロール バスおよびコントロール ミックスのリストをフィルタできます。
このセクションの結果
このセクションでは、Sound Modulation デバッガをアクティブにし、マトリクスをフィルタして CB_SFX コントロール バスのみを表示するようにしました。
7 - ブループリントからコントロール バスを調整する
このセクションでは、ランタイム時にブループリントからコントロール ミックスをアクティブにします。
-
レベル エディタ のツールバーで [Blueprint (ブループリント)] ボタンをクリックし、[Open Level Blueprint (オープン レベル ブループリント)] を選択します。
-
イベント グラフ 内を右クリックし、「Event Begin Play」を検索して選択します。
-
Event Begin Play ノードからドラッグして「Activate Control Bus Mix」を検索して選択します。
- [Mix (ミックス)] ドロップダウンをクリックして「
CM_User」を選択します。
- [Mix (ミックス)] ドロップダウンをクリックして「
-
Activate Control Bus Mix ノードからドラッグして「Delay」を検索して選択します。
- [Duration] を 3.0 に設定します。
-
Delay ノードからドラッグして「Set Control Bus Mix By Filter」を検索して選択します。
-
[Mix] ドロップダウンをクリックして「
CM_User」を選択します。 -
CB_SFXを [Address Filter (アドレス フィルタ)] に追加します。 -
値「0.25」を入力します。
-
-
[Play] を押して、
CM_Userコントロール バス がアクティブになり、MS_Sampleのボリュームが 3 秒後に低下することを確認します。
このセクションの結果
このセクションでは、CM_User コントロール バスをアクティブにし、CB_SFX コントロール バスを利用してオーディオのボリュームを変更しました。