メインコンテンツまでスキップ

Capturable Sound Wave

概要

キャプチャ可能なサウンドウェーブは、ストリーミングサウンドウェーブから派生しています。マイクなどの入力デバイスからオーディオデータをキャプチャし、再生することをサポートしており、インポートされたサウンドウェーブと同じ機能(巻き戻し、SoundCueでの使用など)を持っています。制限なく、オーディオのキャプチャと再生を同時に行うことも可能です。

ヒント

音声活動検出 (VAD) については、このページを参照してください。

注記

キャプチャ可能なサウンドウェーブは、iOSおよびAndroidでキャプチャを開始すると、自動的にマイクの権限を要求します。

基本的な使い方

キャプチャ可能なサウンドウェーブの作成

まず、キャプチャ可能なサウンドウェーブを作成する必要があります。

Create Capturable Sound Wave node

警告

キャプチャ可能なサウンドウェーブを、早期に破棄されないように強参照として扱う必要があります(例えば、ブループリントで別の変数に割り当てるか、C++で UPROPERTY() を使用するなど)。

利用可能な入力デバイスの取得

この機能を使用するには、まずキャプチャに使用できるすべての利用可能なオーディオ入力デバイスを取得する必要があります。

Get Available Audio Input Devices node

キャプチャの開始と停止

利用可能なデバイスを取得した後、入力デバイスからのオーディオデータのキャプチャを開始し、必要に応じて停止することができます。

Start and Stop capture nodes

備考

DeviceIdは、前のステップで取得した利用可能なデバイスの配列内のデバイスのインデックスです。デフォルトのオーディオ入力デバイスを使用するには、Blueprintでは -1 を、C++では Audio::DefaultDeviceIndex (これは INDEX_NONE と等しい)を渡してください。なぜなら、インデックス0がデフォルトデバイスとは限らないためです。

キャプチャ状態の確認

サウンドウェーブが現在オーディオをキャプチャしているかどうかを確認できます:

Is Capturing node

高度な機能

キャプチャのミュートとミュート解除

キャプチャプロセスを中断することなく、音声データの蓄積を防ぐために、サウンドキャプチャをミュートまたはミュート解除することを選択できます。

Toggle Mute nodes

エンジンバージョンの違い

UE 5.3 以降: キャプチャの開始と停止によるヒッチは発生しなくなったため、ToggleMuteStartCapture/StopCapture と同じ効果になります。パフォーマンス最適化のために ToggleMute を使用する必要はないかもしれません。

UE 5.2 以前: StartCapture によるキャプチャ開始は、わずかなヒッチを引き起こす可能性があります。これらのバージョンでは、キャプチャのオン/オフを頻繁に切り替える場合、ToggleMute の使用が推奨されます。まず、キャプチャ自体は(ローディング画面など)重要度の低いタイミングで開始し、その後、ミュート/ミュート解除を使用して、実際にオーディオデータが蓄積されるタイミングを制御する必要があります。

以前のエンジンバージョン向けのパフォーマンス最適化

UE 5.2 以前を使用していて、わずかなフリーズを排除したい場合は、そのフリーズが無視できる可能性のあるタイミングでキャプチャを開始することを検討してください。例えば、ゲームのローディング画面中にキャプチャを開始し、その直後にキャプチャ可能なサウンドウェーブをミュートし、その後、ヒッチなしでオーディオデータをキャプチャする必要があるときにキャプチャ可能なサウンドウェーブのミュートを解除することができます。

完全な例

キャプチャ可能なサウンドウェーブを使用する完全な実装例を以下に示します:

キャプチャ可能なサウンドウェーブの使用例