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

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

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

Pixel Streaming vs 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」が含まれることです(例:UPixelStreamingCapturableSoundWave vs UPixelStreaming2CapturableSoundWave)。

互換性

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

この実装はこれらの環境全体でテストされており、使用される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オブジェクトを作成する必要があります:

Create Pixel Streaming Capturable Sound Wave node

警告

Pixel Streaming Capturable Sound Wave が早期に破棄されないようにするため、強い参照として扱うべきです(例えば、ブループリントで別の変数に割り当てるか、C++で UPROPERTY() を使用するなど)。

キャプチャの開始と停止

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

Start and Stop Capture nodes

注記

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

キャプチャ状態の確認

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

Is Capturing ノード

完全な例

以下は、Pixel Streaming オーディオキャプチャをセットアップする方法の完全な例です:

Complete Pixel Streaming Capture Example

複数の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. 後で使用または分析するためにファイルを保存します