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

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

概要

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

ヒント

Voice Activity Detection (VAD)については、このページを参照してください。

注記

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

基本的な使用方法

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

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

Create Capturable Sound Wave node

警告

早期破棄を防ぐために、キャプチャ可能な音波は強参照として扱うべきです(例:Blueprintsで別の変数に割り当てる、またはC++でUPROPERTY()を使用する)。

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

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

Get Available Audio Input Devices node

キャプチャの開始と停止

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

キャプチャの開始と停止ノード

備考

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

キャプチャステータスの確認

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

Is Capturing node

高度な機能

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

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

Toggle Mute nodes

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

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

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

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

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

完全な例

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

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