サブミックス

サブミックスの概要と使用方法

Windows
MacOS
Linux

サブミックス とは、オーディオが送信されない場合でも常に実行されている DSP (デジタル シグナル プロセス) グラフ です。

Unreal Engine のオーディオ レンダラの基本的なコンポーネントであるサブミックスの目的は主に次の 2 つです。

  • 個別の音源から生成されたオーディオを単一の出力バッファにミックスする

  • デジタル シグナル プロセス (DSP) エフェクトを最適化し、複数の音源に対して同時に適用する

サブミックスは流れる川のように捉えることができます。サウンドが再生されると、これがサブミックスに合流します。サブミックスが別のサブミックスに接続されると、連続した流れとなります。ともに再生されるすべてのサウンドは 1 つのサウンド ストリームに合流し、下流へと流れます。ほとんどの川と同様に流れる方向は一定です。

それぞれのサブミックス エンドポイント (ハードウェア出力) には単一のグラフからデータが供給されます。例えば、単一のデフォルト サブミックス エンドポイントであるマスター サブミックスは単一のサブミックス グラフを定義します。

サウンド キュー は、他の USoundBase と同様にサブミックスに送信可能です。

ブループリント を使ってサブミックスのプロパティを変更し、サブミックスでのオーディオ処理方法を変更することができます。

サブミックスを作成する

サブミックスは、他のサウンド関連のアセットと同様にコンテンツ ブラウザで直接作成できます。コンテンツ ブラウザ内のアセット領域を右クリックし、 [Sounds (サウンド)] > [Mix (ミックス)] > [Sound Submix (サウンド サブミックス)] を選択します。こうすることで、コンテンツ ブラウザ内に新しいサウンド サブミックス アセットが作成されます。

Create Assets in Content Browser.

サブミックス グラフ エディタ

サブミックス アセットをダブルクリックして サブミックス グラフ エディタ を開きます。

クリックして画像を拡大します

ここでは、それぞれのサブミックスを接続してグラフ構造を構築し、あるサブミックスの出力を別のサブミックスの入力として設定したりすることができます。

Drag a wire from the output of one submix to the input of another submix.

グラフ エディタ内で新しいサブミックスを作成するには、既存のサブミックスの入力ピンまたは出力ピンからグラフにドラッグし、新しいサブミックスの名前を入力します (名前にスペースを含めることはできません)。これで、コンテンツ ブラウザに新しいサブミックスが追加されます。

Submix multiple inputs

サブミックスには複数の入力を設定できます。

マスター サブミックス

マスター サブミックス パラメータは [Project Settings (プロジェクト設定)] で設定できます ([Edit (編集)] > [Project Settings (プロジェクト設定)] > [Engine (エンジン)] > [Audio (オーディオ)] > [Mix (ミックス)])。

クリックして画像を拡大します

サブミックス アイコンをダブルクリックして マスター サブミックス のプロパティを表示します。

クリックして画像を拡大します

マスター サブミックスは、出力エンドポイント (ハードウェアのスピーカーなど) に直接接続されています。これはオーディオ ミキサーの最終的なレンダリングの段階を表しており、この後にオーディオがプラットフォームのオーディオ バックエンドに渡され、次にプラットフォームで使用するオーディオ デバイスに渡されます。

サブミックスの出力ピンがどこにも接続されていない場合、出力はマスター サブミックスに送信されます。

マスター リバーブ サブミックス

マスター リバーブ サブミックスの設定は サウンド クラス 内で行います。

Send to Master Reverb Submix is enabled in the sound class.

  • [Send to Master Reverb Submix (マスター リバーブ サブミックスに送信)] — サウンドをマスター リバーブに送信します。

  • [Default 2DReverb Send Amount (デフォルトの 2DReverb 送信量)] — マスター リバーブに送信する際の 2D サウンドの送信レベルを設定します。

マスター EQ サブミックス

マスター EQ サブミックス の設定は サウンド クラス[Legacy (レガシー)] にあります。

Output to Master EQ Submix is enabled in Sound class under legacy

サウンド クラス ミックス[EQ Settings (EQ 設定)] を使用するには、 [Output to Master EQ Submix (マスタ EQ サブミックスに出力)] 設定をオンにしておく必要があります。

オーディオをサブミックスに送信する

音源をサブミックスに送信するにはいくつかの方法があります。

  • 音源アセット内で送信を手動で設定する

  • 減衰設定を使用する

  • ブループリントで動的に設定する

  • オーディオ ボリュームを使って設定する

サブミックスの送信を手動で設定する

サブミックスで音源を再生する、またはそこで生成されるオーディオをサブミックスに送信するには、音源の [Submix (サブミックス)] プロパティに当該の新しいサブミックス アセットを割り当てます。サウンド アセットの [Submix] プロパティはサウンドの 基本的なサブミックス として扱われ、すべてのオーディオがそのサブミックスに送信されます。

Submix sends can be manually set up under Send Level Control Method

プロパティ:

  • Submix Sends— サウンド アセットの Submix Sends 配列は、音源からオーディオの一部を受信可能なサブミックスの配列です。送信は手動で行うことも、距離を通じて行うこともできます。例えば、サウンドとの距離が離れるにつれて、サブミックスに送信されるオーディオを低下させることができます

  • Send Level Control Method— 指定されたサブミックスに音源がオーディオを送信する方法を設定します:

  • Manual: サウンドにより Send Level の値に基づいてオーディオが直接送信されます。

  • Linear: サウンドにより、[Min Send Level (最小送信レベル)] と [Max Send Level (最大送信レベル)] の間、および [Min Send Distance (最小送信距離)] と [Max Send Distance (最大送信距離)] の間の線形マッピングを使ってオーディオがサブミックスに送信されます。

  • Custom Curve: 線形マッピングではなく、カスタム送信レベル カーブを使ってオーディオをサブミックスに送信します。

  • Send Stage— 音源による送信を距離減衰の適用前に行うか、適用後に行うかを指定します。

  • Sound Submix— このサブミックス送信エントリを使って音源がオーディオを送信する先のサブミックスを指定します。

  • Send Level: Send Level Control Method が Manual に設定されている場合に使用する送信レベル。

  • Min Send Level: Send Level Control Method が Manual 以外に設定されている場合に使用する最小送信レベル。

  • Max Send Level: [Linear] 制御方法を適用する場合に使用する最大送信レベル。

  • Min Send Distance: [Linear] 制御方法を適用する場合に使用する最小距離。

  • Max Send Distance: [Linear] 制御方法を適用する場合に使用する最大距離。

  • Custom Send Level Curve: 最小および最大の送信レベルと距離をマッピングするために使用するカーブ。

サウンド減衰を使ってサブミックスに送信する

サブミックス送信は 減衰 設定を使用して設定することもできます。この方法は、一か所から多数のアセットのサブミックス送信を設定する場合に便利です。サブミックス送信ではリスナーとの距離に基づいてオーディオを送信できるため、距離減衰も設定されている場合にはこれを使用することが合理的です。

Attenuation submix settings for distance attenuation

この方法の詳細については、「サウンドの減衰」を参照してください。

ブループリントでサブミックスに動的に送信する

このブループリント関数では、指定した方法を使って、オーディオ コンポーネントでオーディオを動的に任意のサブミックスにルーティングすることができます。

set submix send

Submix Send を設定するには次のものが必要です。

  • Target (ターゲット) — オーディオをサブミックスに送信する際に使用するオーディオ コンポーネント。

  • Submix (サブミックス) — オーディオの送信先のサブミックス。

  • Send Level (送信レベル) — 送信するオーディオの量を総ボリュームの % で表したもの。

本ドキュメントの「ブループリント API とサブミックス」も参照してください。

オーディオ ボリュームを使用してサブミックスに送信する

Audio Volume (オーディオ ボリューム) では、音源で送信を直接設定するのと似たような方法で、サブミックスへのオーディオの送信をサポートしています。違うのは、オーディオ ボリューム ジオメトリに相対した位置に基づいてサブミックスが送信される点です。

クリックして画像を拡大します

サブミックス送信の配列にあるプロパティは、音源自体で直接設定されるプロパティと同一のものです。

set submix send settings

音源では、 [Listener Location State (リスナーの場所の状態)] で [Inside the Volume (ボリューム内)] と [Outside the Volume (ボリューム外)] のどちらを選択しているかに応じて、オーディオを指定されたサブミックス送信の配列に送信します。

また、オーディオ ボリュームでは [Listener Location State] の設定に応じて サブミックスのオーバーライド もサポートしています。リスナーがボリュームの内部にあるか外部にあるかに応じて、指定したエフェクト チェーンによってサブミックスがオーバーライドされます。

サブミックスのプロパティ

グラフ エディタ[Details (詳細)] パネルには、サブミックス グラフ内で選択しているサブミックスのプロパティが表示されます。

クリックして画像を拡大します

プロパティ:

  • Mute when Backgrounded— アプリケーションがバックグラウンドにある際に、サブミックスの出力に 0.0 のボリューム スケーラーを適用して、サブミックス自体を自動的にミュートできます。この機能により、デフォルトでゲーム内で一部 (すべてではない) のオーディオをバックグラウンドで継続して再生させることができます。

  • Submix Effect Chain— ミックスされたサブミックス オーディオにデータを供給するサブミックス エフェクトの配列です。これらのエフェクトは Synthesis and DSP Effects プラグインを介して実装されます。他の Unreal Engine プラグインでも利用可能なサブミックス エフェクトを拡張することが可能です。

  • Ambisonics Plugin Settings — このプロパティでは、プラグインに対して、アンビソニック音場としてサブミックスに送信される音源をサブミックスでオプションとしてエンコードできるよう許可します。これらの設定では音場エンコーディングのプロパティを定義します。

このプロパティで受け入れるのは Oculus Ambisonics Settings のみです (Oculus プラグインが有効な場合)。音場の詳細については、「ネイティブ音場アンビソニックスのレンダリング」を参照してください。

  • Parent Submix— 選択しているサブミックスに対する親。親サブミックスではレンダリングされた出力を入力として受け取ります。

  • Child Submixes— 選択したサブミックスにオーディオを入力として供給する子サブミックスの配列。

  • Envelope Follower— 時間の経過とともにスムージングされたオーディオ信号の振幅を出力する DSP アルゴリズム。「Attack Time (アタック タイム)」の値では、振幅の増加 (アタック) と振幅の減少 (リリース) にこのアルゴリズムが反応するスピードを定義します。

オーディオ信号 (例:48,000 サンプル/秒) はゲーム フレーム (例:60 フレーム/秒) よりもはるかに高速であるため、エンベロープ フォロワーを使ってオーディオ信号の振幅を派生させる方法は、生オーディオ データを使用する方法よりも大幅に効果的です。

サブミックスには、サブミックスでレンダリングされたオーディオの振幅エンベロープをブループリントで受け取るための ブループリント API もあります。これらのプロパティではエンベロープ フォロワーの動作を定義します。

  • Submix Level— サブミックスの全体的なボリューム レベルを制御します。この設定では、オプションとして線形ボリューム ゲイン ( 0.0 から 1.0 など) またはデシベル (-120 dB から 0 dB) を表示するよう設定できます。デシベルとはボリューム測定で幅広く使用されている単位で、ボリュームが対数的に認識されることに対応しています。

  • Output Volume— ドライ チャンネルおよびウェット チャンネルの両方でサブミックス全体の出力ボリュームを制御します。このプロパティを使ってゲーム ボリュームをミックスすることはお勧めできませんが、サブミックスでボリュームを微調整する際には役立つ場合があります。

  • Wet Level— サブミックス エフェクト チェーンを介してデータ供給されたオーディオの出力ボリューム。すべてのオーディオがエフェクトを介して送信されると想定されるため、この値はデフォルトで 1.0 に設定されています。

  • Dry Level— サブミックス エフェクト チェーンを介してデータ供給されなかったオーディオの出力ボリューム。サブミックスを使用するほとんどの場合は完全なウェットにすることが目的であり、すべてのオーディオがエフェクトを介して送信されると想定されるため、この値はデフォルトで 0.0 に設定されています。

サブミックス エフェクト

Synthesis and DSP Effects プラグインを使うと多数のサブミックス エフェクトを使用できるようになります。このプラグインは Epic 開発のもので、これには新しい合成、ソース エフェクト、サブミックス エフェクトが頻繁に追加されます。サードパーティのプラグイン デベロッパーもサブミックス エフェクトを容易に追加することができます。

非音場サブミックス エフェクトに対する全般的な要件としては、複数のオーディオ チャンネル (最大 8 チャンネル) を処理できることが挙げられます。

サブミックス エフェクト プリセットを作成する

サブミックス エフェクト プリセット とはコンテンツ ブラウザ内に存在し、サブミックス エフェクト チェーンに接続されるアセットです。サブミックス エフェクト プリセットを作成するには、コンテンツ ブラウザ内を右クリックして [Sounds (サウンド)] > [Effects (エフェクト)] > [SubmixEffectPreset (サブミックス エフェクト プリセット)] を選択します。

create a new submix effect preset

クラスを選択するダイアログが表示され、ここでプリセット アセットを作成する対象のエフェクトを選択できます。

pick a submix effect class

[Pick Submix Effect Class (サブミックス エフェクト クラスを選択)] リストに表示されるオプションは、各プラグインによって自動的に拡張されます。

ブループリント API とサブミックス

ブループリント ではサブミックスが非常に便利です。例えば、 サウンド サブミックス変数 参照を作成することで、ブループリントでサブミックスを参照することができます。

クリックして画像を拡大します

ブループリントでサブミックス オーディオをレコーディングする

サブミックスでは、ディスクへの出力である PCM (パルス符号変調) .wav ファイル、または Sound Wave アセットへのサブミックス オーディオ出力のレコーディングをサポートしています。一度に有効にできるのはサブミックスごとに 1 つのレコーディングのみです。

  • .wav ファイル が保存されるデフォルトの場所は「Saved\BouncedWavFiles」です。

  • Sound Wave はコンテンツ ブラウザのルート ディレクトリに保存されます。

これらの場所は Finish Recording Output を設定する際に変更できます (下記を参照)。

start recording submix output

Start Recording Output のプロパティ:

  • Expected Duration — 予測した期間に内部のオーディオ バッファを事前に割り当てる (秒単位) ための詳細設定パラメータ (オプション)。

  • Submix to Record — レコーディング対象のサブミックス。

Pause Recording Output ではレコーディングを一時停止します。

pause recording submix output

Resume Recording Output ではレコーディングを再開します。

resume recording submix output

Finish Recording Output ではレコーディングを終了して保存します。

finish recording submix output

プロパティ:

  • Export Type — サブミックスのレコーディングを .wav ファイルと Sound Wave (UAsset) のどちらにエクスポート (または保存) するかを指定します。

  • Name — アセットの名前。

  • Path — エクスポートされたアセットのパス。何も指定されていない場合は、当該のエクスポート タイプのデフォルト パスに保存されます。

  • Submix to Record — レコーディングされたサブミックス。

  • Existing Sound Wave to Overwrite — Sound Wave として保存する場合は、以前のアセットを上書きするこのオプションを使用できます。

ブループリントでのリアルタイム分析

サブミックスでは、 Envelope Following または高速フーリエ変換 (FFT) などの スペクトル解析 のいずれかを通じたリアルタイム分析の取得をサポートしています。

Envelope Following 分析

Add Envelope Follower Delegate は、サブミックスで新しいエンベロープ データが利用可能になった際に呼び出されます。

クリックして画像を拡大します

これは チャンネルごとのサブミックスのエンベロープ値 (左、右、中央、左サラウンド、右サラウンドなど) とともに呼び出されます。

Start Envelope Following では指定したサブミックスでサブミックス エンベロープ フォロワーを開始します。デリゲートが接続されている場合は起動が開始されます。

start submix envelope follower

Stop Envelope Following では指定したサブミックスでフォロワーを停止します。

stop submix envelope follower

スペクトル解析

スペクトル解析は Add Spectral Analysis Delegate によって提供されます。

add spectral analysis ng

プロパティ:

  • In Band Settings — スペクトル アナライザーの設定を定義する構造体。

  • In Num Bands — 解析するスペクトル帯域の数。

  • In Minimum Frequency — スペクトラム アナライザーで使用する最小の周波数範囲 (Hz)。

  • In Maximum Frequency — 最大の周波数範囲。

デリゲートは、設定で定義されているそれぞれのスペクトル帯域のスペクトル データとともに呼び出されます。

スペクトラム アナライザーは Start Spectral Analysis で起動されます。

start spectral analysis

スペクトラム アナライザーは Stop Spectral Analysis で停止されます。

stop spectral analysis

ブループリントでのボリューム制御

サブミックスのボリューム制御もブループリントで設定することができます。

Set Submix Output Volume では、サブミックスの出力ボリュームを直接設定します。

set submix output volume

ブループリントでのサブミックス エフェクト制御

Add Submix Effect では、サブミックス エフェクト プリセットをサブミックス エフェクト チェーンの末尾に動的に追加します。

add submix effect preset

Remove Submix Effect Preset では、サブミックスのサブミックス エフェクト チェーンからサブミックス エフェクト プリセットを削除します。

remove submix effect preset \

Remove Submix Effect Preset At IndexRemove Submix Effect Preset と同じように機能しますが、サブミックス エフェクトの指定されたインデックスにあるサブミックス エフェクト プリセットを削除します (そのインデックスにエフェクトが存在する場合)。

add submix effect preset at index

Replace Submix Effect では、指定されたインデックスにあるサブミックス エフェクト プリセットを新しいエフェクト プリセットに置き換えます。

replace submix effect

Clear Submix Effects では指定されたサブミックスのサブミックス エフェクト チェーンをクリアします。

clear submix effects

Set Submix Effect Chain Override では、サブミックス エフェクト チェーン全体を同時にオーバーライドすることができます。

set submix effect chain override

プロパティ:

  • Sound Submix — サブミックス エフェクト プリセット チェーン (Submix Effect Preset Chain) でオーバーライドする対象のサブミックス。

  • Submix Effect Preset Chain — サブミックス エフェクト プリセットの配列。

  • Fade Time Sec — サブミックス エフェクト チェーンのクロスフェード時間。これにより、現在のエフェクト チェーンから新しいエフェクト チェーン オーバーライドにフェードします。

Submix Effect Chain Override の設定は オーディオ ボリューム を介して行うこともできます。

クリックして画像を拡大します

Clear Submix Effect Chain Override では、設定されているあらゆるサブミックス エフェクト チェーン オーバーライドをクリアします。

clear submix effect chain override

プロパティ:

  • Sound Submix — クリアする対象のサブミックス。

  • Fade Time Sec — 現在のサブミックス エフェクト チェーン オーバーライドからデフォルトのサブミックス エフェクト チェーンへのクロスフェード時間。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
閉じる