PeakVoiceRedirect — ストリーム用ボイスリダイレクト

Tool

概要

PeakVoiceRedirect は、Unity ゲーム(Photon Voice を利用)向けの BepInEx モッドで、配信やゲームのキャプチャ(OBS 等)に流れる音声から特定のリモートプレイヤーの声だけを消しつつ、ローカル PC 上ではそのプレイヤーの声を引き続き聞けるようにするツールです。手法としては、Photon Voice の Speaker オーディオにフックして音声データを抽出し、ゲームのメインオーディオミックス(SFX)側でそのプレイヤーの声をミュート、抽出した音声は外部ヘルパープロセス(VoicePipeHelper.exe)へ送って別ストリームとして再生します。配信で一部の参加者を非公開にしたい、あるいはゲーム内音声のルーティングを細かく制御したい配信者に有用です。

GitHub

リポジトリの統計情報

  • スター数: 2
  • フォーク数: 0
  • ウォッチャー数: 2
  • コミット数: 5
  • ファイル数: 7
  • メインの言語: C#

主な特徴

  • Photon Voice の Speaker にフックしてリモートプレイヤー音声を抽出する
  • ゲームのメインオーディオミックスから当該プレイヤーの声をミュート(OBS に乗らないようにする)
  • 抽出した音声を外部プロセス(VoicePipeHelper.exe)へ送信し、別ストリームとして再生
  • BepInEx(Mono)ベースのモッド構成で Unity ゲームへ組み込みやすい

技術的なポイント

PeakVoiceRedirect は Unity と Photon Voice のランタイム構造に対する「ランタイムフック」とプロセス間オーディオ転送を組み合わせたソリューションです。まず、Photon Voice 側で音声を再生するコンポーネント(Speaker)にアクセスし、該当プレイヤーの音声ストリームを TAP(傍受)します。ここで得た音声フレームは、ゲームのオーディオミキサー内でそのプレイヤーのボイスをミュートする処理と並行して処理されます。ミュート処理により、ゲームのメイン出力に当該音声が混ざらなくなるため、OBS 等でキャプチャされた配信音声には含まれません。

抽出した音声は、そのまま Unity 内で再生するのではなく、外部のヘルパー実行ファイル VoicePipeHelper.exe に送られます。ヘルパーはおそらく名前付きパイプ/ソケットや標準入出力などの IPC を経由して音声データを受け取り、独立したオーディオストリームとしてローカル再生します。これにより、配信側の音声ミックスを汚すことなく、視聴者には聞かせたくないプレイヤー音声をローカルのみで聴取できます。実装は C#(BepInEx プラグイン)で、Unity のランタイムオブジェクトへ安全に差し込むためのコードや、音声フォーマット(サンプルレートやチャネル数)の整合、バッファリングとレイテンシ管理、プロセス間の同期を扱っている点が技術的な要点です。補足的に、外部プロセスを使う設計はプラットフォーム依存(主に Windows)や権限・セキュリティ、OBS 等のキャプチャ設定との相性に注意が必要です。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: file
  • Images: dir
  • LICENSE: file
  • PeakVoiceRedirect.sln: file
  • README.md: file

…他 2 ファイル

まとめ

配信で特定参加者の音声を画面外にしつつローカルで聴取したい配信者向けの実用的な Unity モッド。

リポジトリ情報:

READMEの抜粋:

PeakVoiceRedirect (PEAK / BepInEx Mono)

Mute a specific player for the stream / game capture while still hearing them locally.

This works by:

  1. Tapping the remote player’s Photon Voice Speaker audio in Unity,
  2. Muting the Voice w/SFX of the corresponding player from the game’s main audio mix (so OBS won’t hear it),
  3. Sending that voice audio to a separate helper process (VoicePipeHelper.exe) that plays it back as its own audio stream.

Note: This mod can also be used to isolate a …