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

Pixel Streaming オーディオキャプチャ

Pixel Streaming は、Unreal Engine 用のプラグインで、レンダリングされたフレームをストリーミングし、WebRTC を介して入出力を同期します。アプリケーションはサーバー側で実行され、クライアント側はレンダリングとユーザーインタラクションを処理します。Pixel Streaming とそのセットアップの詳細については、Pixel Streaming ドキュメントを参照してください。

Pixel Streaming 対 Pixel Streaming 2

このプラグインは、Unreal Engine で利用可能な両方の Pixel Streaming バージョンをサポートしています:

  • Pixel Streaming - 元のプラグイン。UE 5.2 以降で利用可能で、現在のエンジンバージョンでも引き続き積極的に使用されています
  • Pixel Streaming 2 - UE 5.5 で導入された、改良された内部アーキテクチャを備えた次世代実装。Pixel Streaming 2 の詳細

両バージョンは完全にサポートされており、最新の Unreal Engine リリースで利用できます。プロジェクトの Pixel Streaming セットアップに合ったバージョンを選択してください。

備考

両バージョンの API は同一で、唯一の違いは、Pixel Streaming 2 のクラスと関数名に "2" が含まれることです(例: UPixelStreamingCapturableSoundWaveUPixelStreaming2CapturableSoundWave)。

互換性

このソリューションは以下で動作します:

この実装は、これらの環境全体でテストされており、使用される Pixel Streaming ホスティングソリューションに関係なく正しく機能します。

拡張プラグインのインストール

この機能は、Runtime Audio Importer プラグインの拡張として提供されています。これを使用するには、以下を行う必要があります:

  1. Runtime Audio Importer プラグインがプロジェクトに既にインストールされていることを確認してください
  2. 使用する Pixel Streaming バージョン用の拡張プラグインをダウンロードしてください:
  3. ダウンロードしたアーカイブからフォルダを抽出し、プロジェクトの Plugins フォルダに配置します(このフォルダが存在しない場合は作成してください)
  4. プロジェクトをリビルドしてください(この拡張機能には C++ プロジェクトが必要です)
important
  • これらの拡張機能はソースコードとして提供され、C++プロジェクトが必要です
  • Pixel Streaming 拡張機能: UE 5.2以降でサポート
  • Pixel Streaming 2 拡張機能: UE 5.5以降でサポート
  • プラグインの手動ビルド方法の詳細については、プラグインビルドチュートリアルを参照してください

概要

Pixel Streaming Capturable Sound Waveは、標準のCapturable Sound Waveを拡張し、Pixel Streamingクライアントのマイクから直接オーディオをキャプチャできるようにします。この機能により以下が可能になります:

  • Pixel Streaming経由で接続されたブラウザからのオーディオキャプチャ
  • 特定のプレイヤー/ピアからのオーディオ処理
  • リモートユーザーからのボイスチャット、音声コマンド、またはオーディオ録音の実装

基本的な使用方法

Pixel Streaming Capturable Sound Waveの作成

まず、Pixel Streaming Capturable Sound Waveオブジェクトを作成する必要があります:

Pixel Streaming Capturable Sound Waveノードの作成

警告

Pixel Streaming Capturable Sound Wave を早期破棄を防ぐため、強い参照として扱う必要があります(例:Blueprints で別の変数に割り当てる、または C++ で UPROPERTY() を使用する)。

キャプチャの開始と停止

シンプルな関数呼び出しでオーディオキャプチャを開始および停止できます:

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

注記

StartCaptureDeviceIdパラメータは、Pixel Streaming Capturable Sound Wavesでは無視されます。キャプチャソースは自動的に決定されるか、設定したプレイヤー情報によって決定されるためです。

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

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

Is Capturing node

完全な例

以下は、Pixel Streaming のオーディオキャプチャを設定する完全な例です:

完全な Pixel Streaming キャプチャ例

複数の Pixel Streaming プレイヤーとの連携

複数の Pixel Streaming クライアントが同時に接続されているシナリオでは、特定のプレイヤーから音声をキャプチャする必要がある場合があります。以下の機能がこれを管理するのに役立ちます。

利用可能な Pixel Streaming プレイヤーの取得

接続されている Pixel Streaming プレイヤーを識別するには:

利用可能な Pixel Streaming プレイヤーを取得するノード

キャプチャ元のプレイヤーを設定する

特定のプレイヤーからキャプチャする必要がある場合:

Set Player To Capture From ノード

備考

プレイヤーIDを空のままにすると、接続した最初の利用可能なプレイヤーを自動的にリッスンします。これはデフォルトの動作であり、シングルプレイヤーのシナリオでうまく機能します。

一般的なユースケース

ボイスチャットの実装

リモートユーザーとローカルプレイヤー間のボイスチャットを実装するために、Pixel Streaming Capturable Sound Waveを使用できます:

  1. 接続された各プレイヤーに対してPixel Streaming Capturable Sound Waveを作成します
  2. 現在発話中のプレイヤーを管理するシステムを設定します
  3. Voice Activity Detection システムを使用して、ユーザーが発話しているタイミングを検出します
  4. 必要に応じてUnreal Engineのオーディオシステムを使用してオーディオを空間化します

音声認識による音声コマンド

この機能を Runtime Speech Recognizer プラグインと組み合わせることで、リモートユーザーのための音声コマンド認識を実装できます:

  1. Pixel Streaming Capturable Sound Waveを使用してPixel Streamingクライアントからのオーディオをキャプチャします
  2. キャプチャしたオーディオを直接Runtime Speech Recognizerに供給します
  3. 認識されたテキストをゲームロジックで処理します

Runtime Speech Recognizerの例で標準のCapturable Sound WaveをPixel Streaming Capturable Sound Wave(またはPixel Streaming 2 Capturable Sound Wave)に置き換えるだけで、Pixel Streamingのオーディオ入力とシームレスに動作します。

リモートユーザーのオーディオ録音

後で再生するためにリモートユーザーからのオーディオを録音できます:

  1. Pixel Streaming Capturable Sound Waveを使用してオーディオをキャプチャします
  2. Export Audio を使用してキャプチャしたオーディオをファイルにエクスポートします
  3. 後で使用または分析するためにファイルを保存します