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

オーディオのインポート

概要

ランタイムでオーディオをインポートするプロセスは、以下のステップに分解できます:

  1. Runtime Audio Importer を作成
  2. 必要なデリゲート (OnProgress および OnResult) にバインド
  3. ファイルまたはバッファからオーディオをインポート
  4. OnResult デリゲートから取得したインポート済みサウンドウェーブを再生 (詳細はこちら)
重要事項

Runtime Audio ImporterSound Wave インスタンスが早期にガベージコレクションされないように、UPROPERTY()TStrongObjectPtr、またはオブジェクトが破棄されないようにする他の方法を使用して、別々の変数に割り当てることでハードリファレンスを維持してください。

サポートされているオーディオフォーマット

Runtime Audio Importer は以下のオーディオフォーマットのインポートをサポートしています:

フォーマット説明
MP3MPEG-1/2/2.5 Audio Layer I/II/III
WAVWaveform Audio File Format
FLACFree Lossless Audio Codec
OGG VORBISOgg コンテナに Vorbis オーディオ
OGG OPUSOgg コンテナに Opus オーディオ
BINKBink Audio
RAW (PCM)非圧縮 Pulse-Code Modulation オーディオデータ (Int8, UInt8, Int16, UInt16, Int32, UInt32, Float32)
ヒント

オーディオをインポートする際、フォーマットを明示的に指定するか、ファイル拡張子またはコンテンツに基づいて自動フォーマット検出を使用できます。

ストリーミングオーディオのインポート

オーディオデータが増分的に受信されるストリーミングシナリオ(例: サーバーからの受信、リアルタイムキャプチャ、ネットワークストリーム)では、Streaming Sound Waves の使用を検討してください。

この方法は、同じサウンドウェーブのバッファにオーディオデータを継続的に追加する方法を提供し、ライブストリームやチャンク単位で処理される大容量ファイルに適しています。詳細は Streaming Sound Wave ドキュメント を参照してください。

基本的な実装ステップ

1. Runtime Audio Importer の作成

まず、Runtime Audio Importer オブジェクトを作成する必要があります。ガベージコレクタによって強力な参照として扱われるようにする必要があります。

Create Runtime Audio Importer node

2. OnProgress デリゲートへのバインド

オーディオデータのインポート進捗を追跡するには、OnProgress (Blueprints) / OnProgressNative (C++) デリゲートにバインドできます。

On Progressデリゲートへのバインド例

ヒント

これにより進捗状況を監視し、例えばローディング画面を実装することが可能になります。

3. OnResultデリゲートへのバインド

音声データのインポート処理が完了し、結果のサウンドウェーブへの参照を取得するために通知を受け取るには、OnResult(Blueprints)/ OnResultNative(C++)デリゲートにバインドする必要があります。

On Resultデリゲートへのバインド例

警告

インポートした音声波形がガベージコレクションによって意図せず早期に解放されないように、強参照として扱う必要があります。これはBlueprints内で別個の変数として配置することで実現できます。

4. オーディオインポートの開始

圧縮/非圧縮オーディオデータ形式の両方を処理可能な関連関数を呼び出すことで、オーディオインポートプロセスを開始します。

Import Audio nodes examples

ユーティリティ関数

オーディオファイルの検索

サポートされているオーディオファイルをディレクトリ内でスキャンできます:

Scan Directory For Audio Files node

完全な実装例

以下はオーディオをインポートするための完全な実装例です:

完全な例