ゲーム配信をPC2台で品質下げずに負荷分散

やぁみんな。まだ地球で消耗してるの?いい加減そんな小さい世界でちんこいじってないで、とっとと意識だけでも木星レベルに到達していただきたい所存ですわよ。こんクソボケが。

というわけで早速行ってみましょう。クソが。

Twitch 歴 7年ですが

おっちゃんは主に 16年前から TES シリーズを嗜んでおり、当時は TES IV: Oblivion でしたが、大体 5年半くらいプレイしましたね。もちろんその頃は Twitch なんかなかったわけで、ゲームを配信するとかってのは全然頭にありませんでした。だからもちろん配信負荷とか考えずに Modding なんかも仕放題でした。

TES IV: Oblivion

12年前に TES V: Skyrim がリリースされてからずっとプレイしていますが、やはり Modding が楽しいです。そして Twitch が世に出てまして、その後 中国人とアメリカ人が共同で開発した最悪のウィルスが世界にばらまかれ、COVID-19 が起きました。日本でもかなり被害が出ましたが、リモートワークとか引きこもりで調子に乗ったクソバカ平民がこぞってネットに依存し始めました。今まで以上にね。

そして 7年前は日本人がほとんどいなくて楽しすぎた Twtich でしたが、今やクソみたいにド低能な APEX しかやらない日本人で溢れかえってしまいました。嘆かわしや。

おっちゃんのこと知ってる人はおっちゃんが APEX 嫌いってのは知ってると思うけど、もちろんジョークだ。本気にするな。死んでしまうぞクソが。

TES V: Skyrim Special Edition

リアルな話をすると、7年前の Twitch は最悪で、毎日配信してたけど3日に1~2回、中国人、韓国人、カナダ人、インド系とかがチャットでトローリングばっかりしてました。中国人は15人くらいでチャットを荒らしまくって、15分くらいで全員いなくなります。チャット欄が 8888 とか 5555 とかの当て数字で埋め尽くされてました。そのせいか、それ以来、数字だけの ID の人を拒絶するようになりました。韓国人は必ず自分のキャラを自慢するために他人のキャラをボロクソ言います。「お前のキャラの顔を見せろ」→「醜い」→「俺のキャラの方が可愛い」などなど。本当に救いようのないクソ民族です。その他、とにかく嫌がらせが半端ありませんでした。日本人が増えたあたりから Twitch も荒らし対策を徐々に始めたので、今では結構普通に使えるサービスになりましたね。別に日本人のおかげじゃないです。

OBS の負荷も半端ない

2年くらい前までは Twitch と Twitter と Picarto の3つの配信サービスに同時配信していました。ReStream というサービスに接続し、そこで配信したいサービスを選ぶだけで複数のサービスに配信することが可能でした。Facebook や FC2 なんかも配信してた時期があります(ReStream で Facebook に配信するには有料アカウントが必要)。

今では Twitch でしか配信してないので、ReStream 自体使わなくなりましたがね。

ReStream は資金が潤沢じゃないのかしらんけど、Twitter 配信 が3回に1回くらいkしか成功しないし、Picarto.TV 対応全然してくれないくせに、いちいちキャンペーンとかの通知を強制的にやってくるので、頭にきてやめました。

PC も Skyrim を Modding するために、Core i-9+RTX 3080 搭載のマシンに買い替えたし、とにかく Skyrim がヌルヌル動けばそれでいいと思っていました。

で、Skyrim の Mod も 750個超えてきたりして、その分スクリプト処理もかなり増え、テクスチャも全部入れ替えたり、NPCを半端なく美化しまくってたりしたら、どんどん Skyrim の起動が遅くなるわけですよ。当然ゲームプレイ中も特定の条件でガタついたり、そんな感じでだましだましプレイしていました。

そして、とうとうちゃんと動かなくなったのです。プレイ中、何かがきっかけで 3秒位止まったりするようになりました。

配信中だけに起こる現象なので、おそらく配信で使ってる OBS が原因なのでしょうが、OBS だけが原因とは思えないです。

しかし、5秒に1回 0.1秒ほど停止する現象が頻発したり、1分に1度程度、5~10秒ほど完全にフリーズするなどが頻発してしまい、結局今では配信をお休みしています。そんなぐだぐだ体たらくな内容を人様にお見せしても、おっちゃんも見てる人もイラつくだけで、誰も幸せになりませんので。

OBS の開発チームというか、まぁここ15年くらいの開発者って馬鹿ばっかりで、Github で Issue を投げても、「僕の開発環境ではそんな問題起きてない」と返答して Issue を閉じてしまいます。本当にコイツラはバカです。そもそもお前の環境の話なんかしてないし、それに Issue って出したやつが閉じるのがルールだったと思うし、とにかく「作っただだけ」、「作りっぱなし」、「他人なんか知らん」みたいな風潮が全世界的にまん延していますね。ほんと開発者ってろくでもないゴミ以下のボケ老人みたいなクソ野郎が多すぎですわよ。実に。

というわけで、実際問題 OBS 起動してないときは問題なく Skyrim をプレイできるので、どうしたもんかなって思っていました。

OBS を別マシンで起動しようと思った

以前知人が 2台のPCで配信してたけど、彼はよく「音がでない」状態で配信していました。彼も最初、なんで音がでないんだ?と困っていたようですが、今回自分で 2台のPCを使ってみて、Windows の設定を一部変えないと音がでないことがわかり、腑に落ちました。

まぁその話は後でするとして、実際にどうやったのか書いていきます。

結論を先に説明

以下のような環境を作りました。

メインPC以外は全部新規で購入したので、だいたい20万円くらいですかね。

すでにそこそこのサブPCを持ってる人は、G-Tuneの代金まるごとナシになるので、3万円くらいで機材が揃うと思います。

G-Tune のラップトップはもちろん分割で購入しました。クレジットでの分割手数料がゼロなので、買うことを我慢するのは頭おかしい感じがしてます(毎月7,000円でレンタルしてるのと同じだし、しかも支払い終わっても自分のものだからずっと使えるし)。

ディスプレイアームは、普段からディスプレイ3枚つかってるので、すでにポールがデスクに設置済みと言う事と、机の上を広く使いたいので(OBS 専用 サブPCは 15インチもあるので)、いっその事空中に浮かそうかなと思ったので買いました。サブPCの置き場所に困らない人はいらないと思います。左右の USB ポート全部にケーブル指すことになるので、横幅結構必要だし。

実はこれらの機材を買うまで、色々試行錯誤で機材買ったりしたので、+8,000円くらいはかかっていますが、まぁ勉強代ということで返品などはしないで取っておいてあります。

接続図とその理由

Cacoo でささっとダイアグラムを書いてみました。紫背景の部分が今回追加した機材です。

図のディスプレイ3枚のうち真ん中がメインディスプレイです。2番になります。いつもゲームはここに映しています。

映像キャプチャデバイス側でこの2枚目を直接取り込んでしまうと画面が持っていかれて映らなくなる ので、この 2を複製して4を作ります。キャプチャデバイスがつながっている状態で、メインPCのデスクトップ右クリックでディスプレイ設定を開き、メインディスプレイを選択後、右下にあるプルダウンから複製を選べば、勝手に2を複製した4が作られ、その4を映像キャプチャデバイスで取り込めばOK です。バイパスした映像を見てプレイするのも良いですが、そっちは若干遅延します。

真ん中のディスプレイを複製した状態。

図の右側にあるメインPC(MainPC)に搭載されている音源ボード Sound Blaster ZxR には、外付けの音量コントローラがありまして、そこにステレオジャックのマイク入力とヘッドフォン出力、ミニジャックのマイク入力とヘッドフォン出力があります。つまりヘッドフォンを2つ、マイクを2つ接続することができるんですよね。で、普段はステレオジャックの方にオープン型のヘッドフォンをつなげています。画面右側のヘッドフォンアイコンがそれです。

メインPC に搭載されている RTX 3080 には、ディスプレイポート端子とHDMI端子がついています。合計4つのディスプレイを接続できます。映像キャプチャデバイスとつなげているのが HDMI です。当然のことですが、HDMI ケーブルは音と映像を運べます。 映像キャプチャデバイスはこれを利用して、メインPCから映像と音を横から盗んでいるわけです。ここ重要。

で、実際に映像キャプチャデバイスを買って配信してる普通の人は、PS4 とか 5 とか Xbox とかから HDMIケーブルで映像キャプチャデバイスに接続し、その先を普段使っているディスプレイに繋ぐでしょう。そして USB 3.0ケーブルはPCに繋いだりして PC で OBS などを使って配信している人も多いでしょう。これは一般的な使い方です(HDCP機能を回避できるので)。

しかし Windows だとこれが問題になります

なぜかというと、答えは単純で、ゲーム音が Sound Blaster ZxR 経由ではなく映像キャプチャデバイス経由になる からです。つまり HDMI に流れる劣化した音になってしまうのです。それは絶対に嫌です。

FPS系のゲームをやってる人は、敵の足音が極めて重要になります。Sound Blaster などの高性能な音源ボードを使ってると簡単に実現できますが、HDMI では優れた音質は期待できません。

それとは別に、普段使ってるヘッドフォンと別の環境(サブPCに接続するなど)でヘッドフォンを使うのも嫌な感じがします。せっかくメインPC にお金かけたのに、ゲーム配信中はその恩恵に預かれないとか、人類死滅しろって思うくらいムカつきますし。

そして更にいうと、今回のケースでは Windowsでいつも使ってる音源ボードから映像キャプチャデバイスに音源を切り替えないといけなくなる ので、いつも通りに Windows 本体からは音が出なくなります。

おっちゃんは Windows を英語にして使ってるので、君らのように英語が壊滅的なくせに1mmも学ぼうとしないクソ野郎だったら当然、君の Windows は日本語で表示されてると思いますが、システムメニューからサウンドを選ぶとすぐにこの画面になりますYO!

画像では、映像キャプチャデバイスからの音である「HD60 S+」と、Sound Blaster ZxRからの音である「スピーカー」が選択可能で、前者を選ぶと HDMI からの音が選択されます。つまり RTX 3080 というGPU から音が送られてくるわけです。RTX 3080 は音源ボードではありませんが HDMI に対応してるので音をハンドルできます。

PCから HDMI ケーブル1本だけでディスプレイに指すと、ディスプレイが HDMI からの音を拾います。ディスプレイの音量を上げると音が聞こえます。

スピーカーを持ってない人はとりあえずこれでもいいのでしょうが、音質はクソみたいにうんこでクソビッチです。耳が腐ります。

というわけで、おっちゃんは考えました。結果的に、Sound Blaster の外付け音量コントローラの余ってるヘッドフォンから音源を取り、それを2本に分かれたケーブルを使うことで、オーディオインタフェースにつなげば良いと。

これだと以下のような環境が再現できます。

  • Windows 側で 音源を切り替えなくても良い
  • ヘッドフォンと配信で 音量を個別に設定可能 (オーディオインタフェース側にも音量があるので)

HDMI 経由の劣化した音源を使うと、これらの細かい設定はできません。うんこです。

実は Sound Blaster ZxR のボードは2枚あって、いろいろな出力ができます。そのためわざわざ外付け音量コントローラのヘッドフォンジャックから音を拾わなくてもいいのですが、正直言うと配信時の音ってみんなそこまで気にしてないと思うし、ステレオであって、なおかつある程度の音質が保たれていればいいかなと思います。なので、ちょっとくらいインピーダンス低くてもいいかなと判断。それに外付けコントローラだからPCの裏側にアクセスしなくても デスクトップ上で操作できるのも良い わけでして。

マイクは何個あってもいい

マイクに関しても同じように、今まで通りの環境を全く変えずに使えないかと考えた のですが、いろいろなパターンが無数に浮かんでしまい、もう 面倒くさくなったので、配信用のサブPC用に1個買いました。もうこれでいいです。図でいうと紫背景内の右側の丸いやつです。

HyperX の SoloCast。ミュート時に赤LEDが点滅し、非ミュート時に赤LED点灯するので違和感しかない。非ミュート字は緑か青でミュート時に赤にすればいいのに、わざわざコーポレートカラーにしてるのがクソ。

メインPCのマイクは 英語学習とかで発音につかうので、これは抜き差ししたりなどはしたくありません。それに、図を見てもらうとわかるけど、ミキサーを通してオーディオインタフェースに繋いでるので、音の調整を毎回し直すのも嫌です。

ミキサーをかましてる理由は、マイクだけではなく楽器を繋いで生演奏できるし、外部の音楽プレイヤーとかもつなげたりできるからです。オーディオインタフェースだけだとミキサーは弱いので、別途買いました。

図でいうと一番右にある2つです。XENYX502 がベリンガー社の5chミキサーです。その上が同じくベリンガー社のオーディオインタフェース 302USB XENYX です。

右側がミキサーでマイクや楽器などはここに挿してる

USBの設計したやつは確実にバカ

昔から本当に USB を設計したやつ はバカだと思っています。

それだけではありません。USB ケーブルを売っているショップも100%完全にクソバカ過ぎてヘソから味噌汁が出る勢いです。かしこ。

なぜか?答えは簡単です。

別にType-A が表裏があるとかどうでもいいんです。”こうなっていなければならない” という形状の USBケーブル が一切売っていません。以下のような感じです。

Cacoo で簡単に3D図は作れないのでテキトー図になってますが、特に左下のやつを見たことがありません。

こういうのって例えば、スマートフォンスタンドで下側から充電する場合に必要なんじゃないすかね?なんで売ってないんだ?バカなのか?人類はそこまでサルなのか?オナニー覚えたサルみたいに、みんながやってることを真似してるだけで滅びるのか?本当にお前らは救いようのないバカだ。

まぁバカに何を言ってもバカ以下にしかならないので無駄ですね。諦めましょう。

で、これが何を引き起こすかというと、図の右側みたいな”横からケーブルが出てるタイプ”でもない限り、以下の画像ように、思いの外余計に無駄に横幅を取ってしまうという現象がカジュアルに勃発するのです。クソが。

クソが!

というわけで、ディスプレイアームですよ奥さん。

謎のおっぱいさん

間違えた。こっちですね。

ポールやクランプは使わないのでアームのみ使用。

配線が気になりますが、こんな感じで高い場所にサブPCを置くことができました。おっぱいパワー。

圧迫感がすごいけどまぁなれるでしょ。

これでデスク周りは広いまま、空中にサブPCを固定できたので、発熱問題も同時にクリアです。下からUSB扇風機とか当てておけばとりあえず配信スタジオが30度超えることもないと思います(ちなみに真冬でも Skyrim プレイしてると室温が25度くらいになります)。

というわけで、とりあえずこれでようやく配信できるようになったので、1ヶ月ほどおやすみしてましたが、色々知見も溜まったので嬉しい事この上なし。クソが。

追記! 2023.05.20

えっとですね、ノイズ対策してませんでした。ノイズすごいです。
グランドループノイズってやつですね。

グランドは電気信号的に GND と表記されることもあります。どういうものなのかというと、いわゆる感電防止のアースに似ていますが、どちらかというと電圧を安定させるという意味合いがあります。

アウトレットソケット(いわゆるコンセント)に指すプラグをよく見てみると、ケーブルの片側に白い線が印刷されていたり、先の部分に矢印が書いてあることがありますが、こちら側が GND です。日本ではソケットの左側(若干穴が長くなってる方)が GND なので、正しくプラグ指すことで音響系のノイズ対策になります。

グランドループというのはその名の通り、GND がループしてしまっているという現象です。図でいうと、左下の「Volume Controller」から「UMC202HD」へ繋がってる、1本から2本に分かれている線の部分です。この線ですが、そのままずっと先に進めると、青の「HD60 S+」につながってます。USB ケーブルがグランドループしてるとは思えないのですが、ループしてる場所はここしかありません。なので、一応安いし、グランドループをアイソレート(分断)する、グランドループアイソレータを購入しました。これをかました図が以下になります。背景が赤い部分です。

グランドループ対策した図。ケーブル名をより現実的な名前に変えました。

音響はムズいわ。終わり。

追記 2023.05.21

えっとですね、おっちゃんの設計だと、ゲームをプレイするメインPCの音をヘッドフォンで聞くというスタイルで、しかもその音を配信側に渡しています。

人によっては 外付け音源ボードを2枚使い、メインPCとサブPC両方に接続し、その音源ボード同士を連結させて音を渡す方式があります が、その場合は 配信側であるサブPCの音をヘッドフォンで聞く ことになります。はっきりいって 遅延はほぼ無い けど、おっちゃんが使ってるメインPCは SoundBlaster ZxR という高価な音源ボードを使っていて、音が気に入っているので、どうしてもメインPCの音を聞きたいわけですわよ。

何が言いたいのかというと、配信側で「ゲーム音が小さいな」ってなった時、ヘッドフォンの音を上げないといけません。そうなると好きな音量でゲーム音を聞くことができないんですよ。はい。たいていでかい音になってしまいます。

LINE入力だとノイズのが乗るし音も全体的に小さくなるので、結果的に音量を上げることになるのですが、ヘッドフォン側も大きくなるので、配信中自分の声も自然と大きくなってしまいます。

どうすればいいかというと、モニタするヘッドフォンのみに別途、外付けボリュームコントローラを噛ませて音量を下げれば良いかなと思いました。

もともと SoundBlaster ZxR には外付けボリュームコントローラがついているのですが、ここからヘッドフォンと配信PCへの分岐をしていますので、どちらかというとミキサー出力みたいな存在になっています。全ての音量を1つのコントローラで調整するという、なんともウヒョヒョな環境になってしまっているわけですが、幸いにも期待している音量より大きめの音量になるため、モニタするヘッドフォン側にだけ 別途コントローラをつけ、そっちの音量を下げれば良いかなと。

で、以下のようになりました。緑色の部分が外付けボリュームコントローラです。

ヘッドフォンは延長ケーブルを使っていたので、間にサクッとかませます。ただステレオミニ(3.5mm)のオス・メスだったため、オス・オスのケーブルを1本追加で買いました。

これで個別に音量設定ができるポン。

音響、ほんと大変だわ。
なんかまだまだたくさん問題出てきそう。恐ろしい子。

追記 2023.06.04

問題でました。1つだけ。

大した話ではありませんが、上記の図のとおりだと、OBS で設定した StreamElements や TriggerFyre の音を、ヘッドフォンで聞くことができません。そのため、サブPC から直接音を出さないといけなくなるので、場合によってはマイクが拾ってしまいます。

これを防ぐためには、緑背景の部分のボリュームコントローラを2~4ch程度のステレオミキサーに変更すれば良いことになります。

おすすめステレオミキサー(3.5mm)

上記のTENEALAY 4ウェイオーディオミキサーはパッシブなので電源を必要としませんが、その分音が痩せます。音痩せを防ぎたい場合はアクティブ電源の Vbestlife 4chステレオミキサーの方を買いましょう。

他の製品を探すのも良いですが、モノラル入力/モノラル出力だったり、入力が3.5mmのミニジャックじゃなかったりすることもあるので、しっかり確認して間違えないようにしましょう。

下の図でいうと青い背景の部分になります。メインPC の音と サブPC の音をミキサーでミックスしたものをヘッドフォンで聞く、ということにすれば問題ありません。

当然 Main PC の音量も Sub PC の音量もミキサーで個別に調整可能です。

もうこれで大丈夫かな。多分。

おわり(お知らせ)

嫁募集中!

  • 人間の女
  • ゲームとコスプレが好き

該当する女性はテレパシーで連絡ください。心地よい刺激と新鮮さが売りの人類の傑作があなたを素敵な世界に誘います。

2024© ogaaaan.com