オーディオ ゲームプレイ ボリューム
オーディオ ゲームプレイ ボリューム (Audio Gameplay Volumes) システムは、領域ベースのサウンド処理に向けた次世代のアプローチです。これを利用することで、サウンド デザイナーは、リスナーの位置を基準として、サウンドにエフェクトを適用する物理領域を定義できます。
たとえば、リスナーが特定の部屋にいる際に、その空間内で反響する音声波形をシミュレートするリバーブを加えたり、室外のサウンドにロー パス フィルタを適用して、ウォールの防音効果をシミュレートしたりできます。
従来の オーディオ ボリューム システムでは、それぞれのオーディオ ボリュームの機能がランタイム時に固定されるため、エンジン コードを変更しない限り拡張できないといった問題が生じることがあります。さらに、それぞれのオーディオ ボリュームには可能な設定がすべて提供されるため、利用可能なオプションのサブセットのみが必要な場合には、非常に手間となる場合があります。また、このシステムでは、それぞれのオーディオ ボリュームには レベル 内に個別の アクタ が必要になるため、システムの統合がより難しくなり、ワークフローの面でも問題が生じることがあります。
従来のシステムを置き換えるこの新しいアプローチでは、プラグインとコンポーネントに基づいたアーキテクチャを利用して、従来のアプローチに伴う多くの問題を解決するだけでなく、より柔軟性のある環境をデベロッパーに提供します。
拡張性
Audio Gameplay Volume プラグインは、プロジェクトのニーズに応じて有効/無効に設定できます。また、提供された C++ API や ブループリント インタラクション インターフェース を使用して、新しいエフェクトや位置に基づくプレイヤー インタラクションなどで機能を拡張できます。
コンポーネントベースのアーキテクチャ
オーディオ ゲームプレイ ボリュームは、モジュラー式コンポーネントのアプローチを使って設計されています。各コンポーネントには、ボリュームに個別に (または他と組み合わせて) 追加できる設定可能な動作が含まれるため、リスナーがボリュームに入ったときや出たときに使用するカスタム仕様の機能を作成できます。
これらのコンポーネントでは、従来のオーディオ ボリューム システムの機能に相当する機能が提供されますが、それぞれの機能セットはそれ独自のコンポーネントであるため、より細かく制御することができます。
動作コンポーネントのタイプは次のとおりです。
- Attenuation (減衰):オーディオの現在のボリューム (音量) をターゲット ボリューム (音量) に補間します。このエフェクトは、リスナーがボリュームの外側にいるときにボリュームの内側のサウンドに適用されるように設定することも、その逆に適用されるように設定することもできます。
- Filter (フィルタ):オーディオにロー パス フィルタを適用します。このエフェクトは、リスナーがボリュームの外側にいるときにボリュームの内側のサウンドに適用されるように設定することも、その逆に適用されるように設定することもできます。
- Reverb (リバーブ):オーディオにリバーブ エフェクトを適用します。このエフェクトは、リスナーがボリュームに入ったときに、サウンドがボリュームの内側にあるか外側にあるかにかかわらず、すべてのサウンドに適用されます。
- Submix Override (サブミックス オーバーライド):サブミックス エフェクト チェーン を サウンド サブミックス に追加します。このエフェクトは、リスナーがボリュームに入ったときに、サウンドがボリュームの内側にあるか外側にあるかにかかわらず、すべてのサウンドに適用されます。
- Submix Send (サブミックス センド):オーディオを サウンド サブミックス にセンド (送信) します。このエフェクトはボリュームの内側のサウンドに適用され、リスナーがボリュームの外側または内側にいるときに適用するよう設定できます。
それぞれのコンポーネントには、同じタイプの有効なコンポーネントを含む複数のボリュームにリスナーが入った場合に、どのコンポーネントを使用するかを定義する優先度値が含まれています。
統合の改善
オーディオ ゲームプレイ ボリュームはブループリントとより深く統合できるため、オーディオ デザイナーはより柔軟にシステムを実装できます。ボリュームは、スタンドアローンのアクタとしてレベル内に直接配置するか、コンポーネントとしてあらゆるアクタ ブループリントに追加できます。
ブループリント アクタ内にカスタム仕様のコリジョン チェックを実装して、リスナーのボリュームへの入出時をシミュレートすることができます。こうすることで、レベル内で位置やトランスフォーメーションを手動で調整する必要性が省かれます。
ワークフローの改善
多くのプロジェクトでは、プロダクション サイクルにおける後期段階でオーディオ実装が行われる傾向にあります。これにより、他のゲームプレイ機能とシームレスに動作する堅固なオーディオ システムの実装が困難になる場合があります。オーディオ ゲームプレイ ボリューム システムではこれを考慮して、レベル内のあらゆるアクタにボリューム コンポーネントをアタッチできる機能を提供します。
そのユーザーインターフェースも合理化されており、オーディオ デザイナーはより直感的に作業を行うことができます。
パフォーマンスの向上
ボリューム処理とコリジョン テストはゲーム スレッドからオーディオ スレッドに移動されました。これによってパフォーマンスが大幅に改善され、スレッドの安全性を心配せずにシステムを拡張できるようになりました。
プロキシの機能性
オーディオ ゲームプレイ ボリューム システムでは、従来の機能の強化や置き換えに加えて新しい プロキシ 機能も提供しています。プロキシを使用すると、従来のオーディオ ゲームプレイ ボリューム オブジェクトなしにシステム機能を利用できるようになります。
プロキシには次の 2 タイプがあります。
- Primitive (プリミティブ):あらゆるスタティックメッシュを、独自の Enter および Exit イベントを持つボリュームとして使用できます。
- Condition (条件):特定の条件が満たされた際に、物理ボリュームを必要とせずに機能を使用できます。