概要
Audio Modulation システムにより、 ブループリント や コンポーネント システムからの共通浮動小数点オーディオ パラメータを細かく制御できます。 このシステムには、音源のミキシング、オーディオ プロパティの動的な制御やパラメータ化のための一連の機能が備わっています。以前のバージョンの Unreal Engine で提供されていたものよりもさらに洗練されたこれらの機能により、より直感的で動的な制御が可能になります。
このガイドでは、ゲーム オーディオ用の基本的なボリュームベースのコントロール バス構造を構築する方法について説明します。
目標
Audio Modulation プラグイン を使用して、ゲーム オーディオ用の基本的なボリュームベースのコントロール バス構造を構築します。
目標
コントロール バスおよびコントロール バス ミックス オブジェクト のコレクションを作成し、サウンド アセットにボリューム ミキシングを適用します。
コントロール バスを MetaSound ソースおよびサウンド クラスに割り当てます。
Mix Matrix Debugger を使用し、コントロール バスの現在の値を確認する。
ブループリントからコントロール バスを調整する。
1 - 必要な設定
新規プロジェクトを作成して、[ゲーム] カテゴリと [サードパーソン] テンプレートを選択します。 プロジェクトの場所と名前を入力します。 [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 (ボリューム)] パラメータを検索して選択します (たとえば、 周波数、パン、ピッチなど)
コンテンツ ブラウザ 内で 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フォルダに移動します。
ベストプラクティス:サウンドにコントロール バスを直接配置するのではなく、適切なサウンド クラス (たとえば、 「SFX」サウンド クラス、「Music」サウンド クラスなど) を使用し、代わりにコントロール バスをクラスに配置します。
このセクションの結果
このセクションでは、プロジェクト内の割り当てられたすべてのオーディオをモジュレーションする、メインのコントロール バスを作成しました。 さらに、ユーザーとデザイナ用にいくつかのコントロール バスを作成しました。 これで、メインのコントロール バスをプロジェクト内のマスター サウンド クラスに割り当てる準備ができました。
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 アセットに適用されるすべてのコントロール バスをリストする必要があります。
このセクションの結果
このセクションでは、CB_Main コントロール バスをマスター サウンド クラスに割り当てました。 これで、サンプルの MetaSound を作成し、ゲームプレイ中にそのミックスをテストする準備が整いました。
4 - サンプルの MetaSound を作成する
コンテンツ ブラウザで右クリックし、[Audio (オーディオ)] > [MetaSound Source (MetaSound ソース)] を選択します。 アセット名を
[MS_Sample]とします[Content Browser (コンテンツ ブラウザ)]で、
MS_Sampleをダブルクリックして開きます。左側の [Interfaces (インターフェース)] パネルに移動し、UE.Source.OneShot の横の [remove (削除)] アイコンをクリックして削除します。
[Event Graph (イベントグラフ)] を右クリックし、[Wave Player (Mono) (ウェーブ プレーヤー (モノラル))] を検索し、選択します。
Input ノードを、Wave Player ノードの Play ピンに接続します。
Wave プレイヤーノードの Out Mono ピンを Output ノードに接続します。
[Wave Asset (ウェーブ アセット)] ドロップダウンをクリックしてサウンド アセットを選択します。 この例では、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.Modulation.Enable.Matrix 1を入力し、サウンド モジュレーションのデバッグを有効にします。
コマンド
au.Debug.Modulation.Filter.Buses [substring]およびau.Debug.Modulation.Filter.Mixes [substring]を入力すると、表示されるコントロール バスおよびコントロール ミックスのリストをフィルタできます。
このセクションの結果
このセクションでは、Sound Modulation デバッガをアクティブにし、マトリクスをフィルタして CB_SFX コントロール バスのみを表示するようにしました。
7 - ブループリントからコントロール バスを調整する
このセクションでは、ランタイム時にブループリントからコントロール ミックスをアクティブにします。
レベル エディタ のツールバーで[Blueprint (ブループリント) ]ボタンをクリックし、[Open Level Blueprint (レベル ブループリントを開く)] を選択します。
[Event Graph] イベント グラフで右クリックし、「Event Begin Play」を検索して選択します。
Event Begin Play ノードからドラッグし、「Activate Control Bus Mix」 を検索して選択します。
[Mix (ミックス)]ドロップダウンをクリックし
CM_Userを選択します
Activate Control Bus Mix ノードからドラッグして、「Delay」」を検索して選択します。
[Duration (期間)] を「3.0」に設定します。
Delay ノードからドラッグして、「Set Control Bus Mix By Filter」を検索して選択します。
[Mix (ミックス)]ドロップダウンをクリックし
CM_Userを選択しますアドレス フィルタに に、
CB_SFXを追加します。値として「0.25」を入力します。
[Play (プレイ)] を押して、
CM_Userコントロール バス がアクティブになり、MS_Sampleのボリュームが 3 秒後に低下することを確認します。
このセクションの結果
このセクションでは、CM_User コントロール バスをアクティブにし、CB_SFX コントロール バスを利用してオーディオのボリュームを変更しました。