PeakVoiceRedirect — ストリーム用ボイスリダイレクト
概要
PeakVoiceRedirect は、Unity ゲーム(Photon Voice を利用)向けの BepInEx モッドで、配信やゲームのキャプチャ(OBS 等)に流れる音声から特定のリモートプレイヤーの声だけを消しつつ、ローカル PC 上ではそのプレイヤーの声を引き続き聞けるようにするツールです。手法としては、Photon Voice の Speaker オーディオにフックして音声データを抽出し、ゲームのメインオーディオミックス(SFX)側でそのプレイヤーの声をミュート、抽出した音声は外部ヘルパープロセス(VoicePipeHelper.exe)へ送って別ストリームとして再生します。配信で一部の参加者を非公開にしたい、あるいはゲーム内音声のルーティングを細かく制御したい配信者に有用です。
リポジトリの統計情報
- スター数: 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 モッド。
リポジトリ情報:
- 名前: PeakVoiceRedirect
- 説明: 説明なし
- スター数: 2
- 言語: C#
- URL: https://github.com/jorgemuchosnumeros/PeakVoiceRedirect
- オーナー: jorgemuchosnumeros
- アバター: https://avatars.githubusercontent.com/u/91845721?v=4
READMEの抜粋:
PeakVoiceRedirect (PEAK / BepInEx Mono)
Mute a specific player for the stream / game capture while still hearing them locally.
This works by:
- Tapping the remote player’s Photon Voice
Speakeraudio in Unity, - Muting the Voice w/SFX of the corresponding player from the game’s main audio mix (so OBS won’t hear it),
- 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 …