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

オーディオのインポート

実行時にオーディオをインポートするプロセスは、以下の手順に分けられます:

  1. Runtime Audio Importer を作成する。
  2. 必要なデリゲート(OnProgressOnResult)をバインドする。
  3. ファイルまたはバッファからオーディオをインポートする。
  4. OnResult デリゲートから取得したインポート済みの Sound Wave を再生する(詳細は こちら)。

Runtime Audio ImporterSound Wave のインスタンスが早期にガベージコレクトされないように、これらを UPROPERTY()TStrongObjectPtr、またはその他のオブジェクト破棄を防ぐ方法を用いて、明示的に変数に保持することを推奨します。

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

リアルタイムキャプチャーやネットワークストリームなど、オーディオデータを段階的に受信するストリーミングシナリオでは、Streaming Sound Wave の使用を検討してください。この方法では、同じサウンドウェーブのバッファにオーディオデータを継続的に追加でき、ライブストリームや大容量ファイルの部分処理に適しています。詳細は Streaming Sound Wave のドキュメント を参照してください。

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

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

  • MP3 - MPEG-1/2/2.5 Audio Layer I/II/III
  • WAV - Waveform Audio File Format
  • FLAC - Free Lossless Audio Codec
  • OGG VORBIS - Ogg コンテナ内の Vorbis 音声
  • OGG OPUS - Ogg コンテナ内の Opus 音声
  • BINK - Bink Audio
  • RAW (PCM) - 非圧縮 Pulse-Code Modulation オーディオデータ(Int8, UInt8, Int16, UInt16, Int32, UInt32, Float32

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

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

特定のディレクトリを検索して、サポートされているオーディオファイルを探すことができます:

Scan Directory For Audio Files ノード

まず、Runtime Audio Importer オブジェクトを作成する必要があります。ガーベッジコレクタによって強参照として扱われるようにする必要があり、これは Blueprints で別の変数として配置することで実現できます。これにより、オブジェクトが早期に破棄されるのを防ぎます。

Create Runtime Audio Importer node


オーディオデータのインポート進捗を追跡するには、OnProgress(Blueprints)/ OnProgressNative(C++)デリゲートにバインドできます。これにより、進捗を監視してロード画面を実装するなどの処理を行うことができます。このデリゲートにバインドするには、バインドイベントノードからイベントピンを引き出すだけです。

On Progress デリゲートにバインドする例


オーディオデータのインポート処理が完了した通知を受け取り、生成されたサウンドウェーブの参照にアクセスするには、OnResult(Blueprints)/ OnResultNative(C++)デリゲートにバインドする必要があります。
また、ガーベッジコレクタによる予期しない早期のガーベッジコレクションを防ぐために、インポートされたサウンドウェーブが強参照として扱われるようにしてください。これは、Blueprints内で別の変数として保持することで実現できます。

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


オーディオのインポートプロセスを開始するには、適切な関数を呼び出します。この関数は、圧縮および非圧縮のオーディオデータ形式の両方を処理できます。

オーディオインポートノードの例


インポートプロセスが完了すると、OnResult デリゲートを通じてインポートされたサウンド波を取得できます。

完全な例

完全な例