Diary of a Perpetual Student

Perpetual Student: A person who remains at university far beyond the normal period

【令和最新版】俺的ゲーム配信環境 2022

コロナ禍の過ごし方として、毎晩、大学の頃のサークルの同級生と Discord に集まって通話をしています。思い思いに好きなゲームをしたり、仲間を募って同じゲームを遊んだりする時間です。バーチャル部室と言ったところでしょうか。

このとき、Discord の画面共有機能を使って各自のゲーム画面を配信しています。今回は、自分がゲームを配信している環境を紹介します。

要件

  • Nintendo Switch の ゲーム画面を、Discord の画面共有にてゲーム音声付きで配信できる
  • 自分がプレイするためのゲーム画面と音声は、余計な遅延や品質低下なく視聴できる
  • PC の音とゲームの音を同じヘッドホンで視聴できる

結論

ハードウェアの構成としては以下のようになりました。

また、使用機材は以下の通りです:

OBS Studio という配信用ソフトウェアで、ソースに映像キャプチャデバイスとして上記キャプチャーボードを指定し、「ウィンドウプロジェクター(プレビュー)」のウィンドウを Discord の画面共有の対象にしています。

右のウィンドウを Discord で共有しています

解説と補足

基本構成

説明のために、まずはシンプルな構成からはじめましょう。ゲームの映像と音声をOBS上で視聴するなら、以下のような構成で実現できるでしょう。

この構成に関する説明はこちらではしないので、他の記事を参照してください。

遅延なくゲームの映像を視聴するために

OBS の画面を見ながらゲームをプレイしても良いのですが、やはり遅延とフレームレートの低下が気になります。そこで、キャプチャーボードのパススルーアウトをモニタに繋ぐことにしました。

これによって映像は問題なくなったのですが、問題は音声です。OBS の音声モニター経由でゲーム音で聞くと、目に入る映像と耳に入る音声が、キャプチャーボードにより発生する遅延分だけずれてしまいます。

しかし、パススルーの音声を聞くにはパススルー用モニタの音声出力を利用するほかありません。PCからの音声はヘッドセットで聴き、ゲーム音はモニタから出る音を直接聴くということになってしまい、都合が悪いです。

遅延なくゲームの音声を視聴するために

PCの音声とパススルーのゲーム音声をなんとか同じヘッドセットで聴く方法を考えました。

もちろん、PCの音声出力とゲームの音声出力をアナログミキサーで mix すれば良いのですが、新たに機器を買い足すのはスペース的に厳しいです。せっかくミキサータイプのオーディオインターフェイスを使っているので、パススルーモニタの音声出力をオーディオインターフェイスアサインすることにしました。

このときに注意するのが STREAM OUT の設定です。一般的には「INPUT MIX」に設定していると思うのですが、これを「DRY CH1-2G」モードに変更します。 こうしないと、ゲーム音がミックスされてマイク入力として載ってしまいます。このモードでは、ch.1 と ch.2G の入力は PC に送られますが、 ch.2-3 の入力は PC に送られません。AG03 のモニターアウトに繋いでいるヘッドセットからは依然として ch.2-3 に入力した音声、すなわちパススルー経由のゲーム音を聴くことができます。

副作用として、以下の問題が発生します:

  • マイク入力音声の信号が L だけになる
    • 「DRY CH1-2G」モードでは、L に、ch.1、R に ch.2G がアサインされるため *2
    • Discord などの通話アプリではステレオ入力がモノラルにダウンミックスされるので、本要件では問題にならないはず
    • NVIDIA Broadcast(AIで環境音を消してくれるソフトウェア)を挟むと L だけの信号が LR の信号になるので活用すると良い
  • ch.1 の音量調整のフェーダーや MUTE スイッチが、PC に送られる信号には効かなくなる
    • AG03 の仕様なのでどうしようもない、妥協して受け入れる

業務で利用するようなミキサーであれば AUX チャンネルを使えば一発なのですが、民生用機器で頑張るのは思いのほか大変ですね。

Discord の画面共有でゲーム音を載せる

※ この話は Discord の画面共有の話なので、YouTube などで 配信したい方は SKIP してください

ここまで来たら要件の達成までもう少しです。OBS のウィンドウプロジェクターを Discord の画面共有します。

このときに問題になるのがやはり音声です。OBS の音声モニターでキャプチャーボードの入力音声を聴いていると、パススルー経由の音声とダブルで聴くことになってしまいます。そのため、愚直にはオーディオの詳細設定から「モニターオフ」にすることになるでしょう。こうすると、ゲーム音はパススルー経由のものだけを聴くことができます。

しかし、これでは Discord の画面共有にゲーム音が載りません。なぜなら、Discord の画面共有は、そのアプリケーションが鳴らしている音を配信するからです。モニターオフにすると OBS が音を出していないことになるので、結果として配信が無音になってしまいます。

これを解決する方法は、OBS のモニター出力を別のデバイスにすることです。設定(オーディオの詳細設定ではなく、グローバルな方)の「音声」を開き、モニタリングデバイスを使用していないデバイスに変更します。その上で、先程のモニター出力をありにします。

このようにすることで、Discord の画面共有にキャプチャーボード由来の音声を載せることと、自分がキャプチャーボード由来の音声を聴かないことを両立することができます。

まとめ

いかがでしたか?

音響の仕事の経験があるのでこの程度はなんとかなるのですが、一般には難しいだろうなと思っています。(このエントリもかなり読みづらいと思います。すみません。)

世の配信者は、満足する配信環境のために裏で頑張って知識を習得しているのでしょうね。それとも、こういった環境の準備をコンサルしてくれる企業があるのでしょうか。

配信環境の準備に関して、知り合いであれば相談を受け付けますので、気軽にご相談ください。

*1:旧式でも問題ないはずです

*2:FAQ: https://faq.yamaha.com/jp/s/article/J0007132