AudioLink は、Unreal Audio Engine を他のオーディオ エンジンなど、外部のソフトウェアに接続する API です。ハードウェアの抽象化を利用することで、AudioLink はハードウェアへの直接のアクセスをバイパスし、Unreal Audio Engine と接続されたソフトウェアの両方の強みを活かします。
AudioLink で送信できる内容
AudioLink は、3 つのリンク タイプを使用し、データを送信します。
- ソース - 減衰前のソースのパルス符号変調 (PCM) データを出力します。サポートされるソースには、MetaSound、サウンド キュー、サウンド ウェーブなどがあります。
- サブミックス - 特定のサブミックスの PCM データを出力します。
- 音声コンポーネント - 音声コンポーネントによって使用される減衰前のソースから PCM データを出力します。これは、スタンドアローン ソースとは処理が異なり、異なる API が使用されます。
AudioLink を有効にする方法
Implementer の機能の提供方法に基づいて、カスタム仕様の設定が必要です。通常、Implementer は Unreal Engine (UE) の起動フェーズ中に AudioLink ファクトリ を登録します。これによって、AudioLink が有効になります。
Unreal Editor では、送信を有効にする Send to AudioLink フラグ、およびオプションでデフォルト設定をオーバーライドする AudioLink 設定 パラメータが各リンク タイプにあります。これらのオプションは、AudioLink が無効になっても維持されるため、損失が発生することはありません。
ソースの送信を有効にする
AudioLink プロパティには、ソースと関連付けられた Sound Attenuation アセットを通じてアクセスできます。ソースの [Details (詳細)] パネルの [Attenuation (減衰)] > [Attenuation Settings (減衰設定)] で、関連付けられたアセット見つけるか、作成します。
Enable Send to AudioLink フラグおよび AudioLink Settings Override プロパティは、Sound Attenuation アセットの [Details] パネルの [Attenuation (AudioLink) (減衰 (AudioLink))] で設定できます。
このような名前でありながら、Sound Attenuation アセットはソース プロパティのコレクションとして機能し、減衰のみに特化したものではありません。
サブミックスの送信を有効にする
Send to Audio Link フラグおよび Audio Link Settings プロパティを、サブミックスの [Details] パネルの [Audio Link (オーディオ リンク)] から設定できます。
同じサブミックやソースを組み合わせると、ミックスしたオーディオでスタックが発生したり音量が大きくなったりする場合があります。
オーディオ コンポーネントの送信を有効にする
AudioLink にはオーディオ コンポーネントのサポートが含まれていますが、設計上ソースがコンポーネントを使用していなかったり、スケーリングのために最適化されていたり、エンジン レベルのサポートが提供されていたりするため、多くの場合、必要がありません。ただし、レイキャストの空間化などでオーディオ コンポーネントを使用する必要が生じることもあります。
オーディオ コンポーネントの送信には、実装に応じたカスタム仕様のアプローチが必要です。しかし、ブループリント インターフェースは標準化されています。AudioLinkBlueprintInterface を実装すると、次の API にアクセスできます。
- SetLinkSound 関数では、NewSound を任意の
USoundBaseオブジェクト (MetaSound、サウンド ウェーブ、サウンド キューなど) に設定できます。 - 他の「再生」に関する呼び出しとともにコンポーネントに含めることができるように、PlayLink 関数の名前は意図的に付けられています。必要に応じて、PlayLink 関数をリダイレクトできます。
AudioLink を無効にする方法
AudioLink は、au.audiolink.enabled コンソール変数を使用して無効にすることができます。
制限事項
- 複数のオーディオ エンジンを実行すると、追加のオーバーヘッド コストが生じます。Unreal Audio Engine は高度に最適化されていますが、プロジェクトでの利用方法を評価することをお勧めします。
- ハードウェア共有の制限のため、UE 内で実行されるソースについてはハードウェア デコーダがサポートされていません。ただし、UE では、Bink Audio や Ogg Vorbis などの効率的なソフトウェア デコーダをサポートしていません。
- 現在、AudioLink では最大 8 チャンネルのソースのみをサポートしています。
- 現時点では、アンビソニック ソースやオブジェクト ベースの形式はサポートされていません。
トラブルシューティング
- コンソール コマンド
log LogAudioLink Allを使用すると、ログに詳細な情報が出力されます。 - AudioLink ファクトリが UE に登録済みであることを確認してください。ログ メッセージには、これが正しく機能しているか示されます。
- ソースまたはサブミックスで Send to AudioLink フラグが有効になっていることを確認してください。
- データの重複や音量が大きくなる不適切なオーディオ スタックが発生する可能性があるため、同じ信号チェーンを含むソースとサブミックスの組み合わせには注意してください。
- Play In Editor (PIE) を含む各エディタおよびゲーム ウィンドウには、独自の Unreal Audio Engine インスタンスがあります。これは非常に強力なコンセプトでありながら、インスタンスの存続期間については混乱を生む可能性もあります。たとえば、エディタのサブミックスは起動時にインスタンス化されます。これは初期に発生しますが、AudioLink ファクトリではフロー内で初期にインスタンス化されていない場合、サブミックスがなくなる可能性があります。適宜、実装を微調整してください。