2019年5月31日金曜日

ただの一般人がストリーマー並の高画質高品質で配信したい!!

(無駄に長い前振りがあったが省略)

せっかく世の中配信が流行っているのに配信していない自分はもったいないと思い、自分の考えうる最高の品質と最高の画質で妥協せず配信をするためにはどうすればよいか。

良い感じにまとまったのでまとめて行こうともう。
これから配信を始める良い子の諸君の参考になれば幸いである。


※この記事を読むにあたっての注意※
  • 高画質とは
    • 1080P60FPS配信であること
    • ブロックノイズが少ないこと
  • 高品質とは
    • フレームドロップしないこと
    • 見る側が不自由しない
  • 妥協せずとは
    • ゲームは1440Pのフルスクリーンでやりたい
    • モニターが144Hz対応なので144Hzでやる
    • ゲームに負荷をかけない
    • APEXはDiscordのオーバーレイ時にマウスが表示される不具合があるが、配信側はDiscordオーバーレイしたい


まず、一般人である私のPC環境である。


  • CPU: INTEL i9 9900K
  • GPU: MSI GTX 980ti
  • モニター: EIZO FS2735×2
  • マイク: audio-technica AT2020
  • エフェクター: Roland VT-4
  • ヘッドフォン: Razer Tiamat 7.1 V2
  • サウンドカード: ASUS Essence STX II 7.1
  • 榛名改二: ペロペロ

配信に関係の無い機器は省略。便宜上、本記事においてはゲーム用PCと呼称します。

まず、この環境でも最近のゲームではFPS144をだすのはなかなか厳しい。
→配信するならFPS値が今よりも下がる
→下げたくない場合は画質を落とさなければならない
→落としたくない
→そうだ配信専用PCを作ればいいんだ!!


配信用PC爆誕である。以下スペック。

  • CPU: i7 8700
  • マザーボード: ASUS ROG STRIX H370-I GAMING
  • GPU: MSI GTX 1660ti
  • キャプチャーデバイス: AVerMedia GC553

配信用PCは次のことができることが前提で組んだ。

  • OBSのNVENC(new)が利用できること
  • CPUによるH264エンコードの場合はプリセットでmediamが指定できること
ゲーム用PCと配信用PCの接続は次のようになっている。
この構成にすることで第一関門であった「FPSを下げずに配信する」をクリアした。
この構成は次の条件をクリアする必要があるため、真似する場合は注意が必要である。

  • キャプチャーデバイスがミラーリングするモニタと同じ解像度、リフレッシュレートを受け付けることが必要
例えばキャプチャーデバイスが1080Pの60FPSまでの場合、ミラーリングをするとモニタBも1080P、60FPSまで下がってしまう。FS2735は1440Pの144Hzなのでそういった事象が発生すると妥協が生まれる。妥協をしないのが目的なため、キャプチャーデバイスにGC553を選択した。ぶっちゃけ1440P144Hzを受け付けてくれれば何でもよかった。


ちなみに2PC配信のセオリー的な記事に次のような構成がある。
上記の構成にし、ゲーム用PCでOBSを動作させ出力プロジェクター機能を用いてキャプチャーデバイスにゲーム画面を擬似ミラーリングする方法である。

詳しくは「2PC配信」でググってくれ!!

この擬似ミラーリングには大きな欠点があり

  • 出力プロジェクターはどう頑張っても60FPSで表示されていない感じがする
  • めっさカクつく
体感51FPSとかそこらではなかろうか。

重要なのは「めっさカクつく」の方である。動画は仕組み上「前後フレーム」が死ぬほど重要であるため、カクついてフレームスキップが起きると、

ものすごい量のブロックノイズがのる

最初は、自分も出力プロジェクター方式を検討していたが、MHWで異常なほどブロックノイズがのるのでやめた経緯がある。動きの遅いゲームならこの方式で問題ない。ただ、そもそも動きの遅いゲームならこの方式(2PC配信)でなくてよい。
妥協をしないという前提であるならば、2PC配信をするにはキャプチャーデバイスがモニターと同一レベルの入力信号が受け取れることが必須である。

話を戻そう。

次に音声周りである。自分の音声周りは以下のようにしたい。

  • ゲーム用PCで基本的にDiscordしたい
  • 配信用PCでは自分の音声とDiscordの音声とゲーム音だけ流れればよい
  • ついでにDiscordの誰が喋っているかわかるオーバーレイも表示したい
  • APEXではDiscordのオーバーレイはバグるのでできれば Discord StreamKit Overlayで表示したい

上記を満たす構成を1つずつ解説すると永遠に終わらない気がするので、一気にゴールをお見せする。
持っててよかったVT-4

正直これがなかったらつんでいた。仕組みは簡単で、マイクの入力をどちらのPCにも入れちゃえばええんやで作戦。VT-4はボイチェンのイメージが強いが、製品自体はエフェクターなので多少ミキサーのようなことができる。

ゲーム用PCと配信用PCのDiscordはどちらも同じアカウントで入るため、どちらか一方しか音声チャットはできない。そのため、2ついっぺんに音声チャットが走らないので安全である。

なんでこんなことをしているかというと、Discord StreamKit OverlayをOBSで使用する場合、同じPC上でDiscordが起動していないといけない仕様がある。

今回OBSは画像にはまだ現れてきていないが、配信用PC側にしかない。そのため、配信用PCにDiscordを入れることはMASTである。しかし、そうするとDiscordをするときは「配信用PCを起動しておかなければならない」

配信用PCは配信しないときは電源OFFにしたい。ゲーム用PCにもDiscordを入れることはMASTである。

この場合、マイクの入力を分岐もしくは都度差し替える必要がある。それは面倒。両方繋ぎっぱなしにして必要な方のDiscordで音声チャット入ったら自動的にマイクの入力を変えるようにしたい。

結果、こうなった。

尚、Discordのオーバーレイを表示させない、もしくは、Discordの機能にあるゲーム内オーバーレイを表示させてそれを配信する。場合は、上記でなくてよい。
何度も言うが、APEXはDiscordのオーバーレイを使用すると画面がバグるので注意である。

ちなみに説明はしていないが配信用PCのDiscordのマイク周りの設定は

  • 入力デバイス:LINE IN
  • 出力デバイス:LINE OUT
である。

機器の構成が終わったら、今度は目に見えない様々な設定である。
最も重要なのが、そう…音声周りの内部配線である!!!!!

内部配線はすべてゲーム用PCで行う。その点は注意して読んでいただきたい。

使うのはみんなだいすきVB-AudioさんのVoiceMeeter Bananaである。
さらに、同VB-AudioさんのVB-CABLE Virtual Audio Cableも入れている。

現在配信用PCは電源OFFなので表示されていないが、A3がGC553に接続されたHDMIとなる。すべての配信に必要な音はゲーム用PCでBananaによってミックスされる構造とした。

HEADWARE INPUTは左から

  • わしがしゃべるマイク
  • Virtual Audio Cable OUTPUT:Virtual Audio Cable INPUTの音が流れてくる:配信に流すゲーム音
  • 配信用PCのDiscordの他のメンバーの音声
となる。HEADWARE OUTPUTは左から
  • A1: ゲーム用PCのサウンドカードEssence STX II 7.1
  • A2: Virtual Audio Cable INPUT:配信向けにゲーム音を調整するために分岐
  • A3: 配信用PCのHDMI
となる。VIRTUAL INPUTSは左から
  • 左: 規定の再生デバイス
  • 右: ゲーム用PCのDiscordの他のメンバーの音声

となる。VIRTUAL OUTPUTはB1しか使っていない。且つB1は規定の入力デバイスに設定されている。何を言っているかさっぱりであろう。私も書いていてさっぱりだった。もっと詳細に説明しようと思う。

まず、規定のデバイス状況だが、以下のようになっている。
こうすることで、BananaにおけるVIRTUAL INPUTSの左側のところにゲーム用PCで再生されたすべての音が集結する。

尚、注意として、Bananaはインストール直後は入力Chがステレオになっている。最近のFPSゲームとかは7.1chとかが普通になっているので、これを入れたせいでステレオしか再生されないファ○クとか言わないようにしよう。
設定方法は、該当のデバイスを右クリックして「スピーカーの設定」をすること。

それでは1つずつ説明する。

何度も言うようにVIRTUAL INPUTSの左側はゲーム用PCの全音である。それをA1、A2に流す。A1はサウンドカード。要するにおかゆぅさんの耳だ。A2はVirtual Audio Cableである。

ここでやりたいことは

  1. 自分で聞くはゲーム音は大きくて良い
  2. 配信はゲーム音大きいと、おかゆぅさんの美声が聞こえなくなるので下げたい
  3. でも自分で聞くのゲーム音も一緒に下げたくない
  4. ゲーム音を2系統に分けて、直接の大きさは自分の耳、配信は別途調整して流せばいいんだ
となる。それがこの画像の左側で解決する。

右側はDiscordの友人側の音声である。A3に最終的に流すと配信に音声がのる。もしシャイな友人がいる場合は一言「今から配信するね。拒否権は無いよ」と、お断りをしておくのが社会人のマナーである。了解を得てからA3をクリックしよう!
右側はそういった日本人的に忖度をするためのところとなる。
 

ここは実際の機器から入力を受け付けてどこに流すかを設定する。
左から説明する。

マイク音量は、名前の通り、おかゆぅさんの美声である。美声はA3(配信用PC)とB1(出力デバイス)の2パターンに流す。A3は言わずもがな配信に流すことを意味する。B1はゲーム用PC側のDiscordの入力デバイスとなる。

配信側ゲーム音量は、ちょっと上で説明したA2の音を受け取るところである。この辺はややこしい感じだが慣れるんだ。ここでは基本的にゲーム音を下げるためだけに存在する。下げたゲーム音を(A3)配信用PCに流せば、おかゆぅさんの美声が聞こえやすくなる。完璧だ。

配信PC側Discordは名前の通り配信用PCにおけるDiscordの友人の音声である。もう説明はしないが、配信側PCの音声をLINE INで受け取るため、それを聞くために存在する。
ここも先程と同様、シャイな友人に許可をとってからA3を押す。


最後になるが、Bananaはこの上に表示されているA1とかのボタンを押すことで、A1はどこで音を再生するのかを指定できる。
A1はおかゆぅさんの耳で再生してもらいためサウンドカードである。
A2はVirtual Audio Cableである。
A3は現在表示されていないが配信用PCに接続されているキャプチャーデバイスに接続されたHDMIを選択する。

下側は実は地味に重要である。
左から2番目。要するにA2の音をどのように再生するかを決められる。最近のゲームは7.1chで再生されることが多い。しかし、配信を聞く側にそういった設備がない場合、5.1ch分は切り捨てられ、やけに小さい音になってしまう。

YoutubeとかでPUBGやAPEXの配信をみて音が異様に小さくなってしまう人がいれば、これに該当する。

自分はそういったところを妥協しないために、ここでMIX down Aに設定することでそれを回避している。要するに7.1chを2chの音声に変換している。こうすることで、2chしか対応していない聞いている側に適切な音量を届けることができる。

しかし、聞いている側が7.1chで聞いている場合、臨場感がなくなる致命的な欠陥がある。
だが、よくよく考えてもらいたい。

果たして聞いている側に臨場感はいるのだろうか

自分はゲームするときは7.1chのヘッドフォンで行うが、配信を見るときは2chの普通のPCスピーカーで聞いている。たぶんみんなもそうだ。間違いない。これは妥協ではないのだ!!

くっそ長くなってしまったので今日はここまで。
続きはOBS設定編です。

2019年3月31日日曜日

ゆかりねっと Ver.0.4.5 公開しました。

ゆかりねっと Ver.0.4.5 が完成しましたので公開いたします。
主な機能はガイノイドTalk 鳴花ヒメ・ミコト対応、東北イタコ対応、音声認識状況表示となります。

ダウンロードは下記リンクからお願いいたします。
https://www.dropbox.com/s/qci3yop3rmok4kq/Yukarinette.0.4.5.zip?dl=0

0.4.5の主な変更は以下の通りとなります。
    • ガイノイドTalk 鳴花ヒメ・ミコト に対応しました。
    • 東北イタコがVOICEROID2の一覧にデフォルトで表示されるようになりました。
    • 東北きりたんの初期パス検索先が間違っていたので修正しました。
    • 音声認識エンジンをゆかりねっとでないソースからも接続しやすいように
    • ポート指定且つゆかりねっと側の音声認識エンジンを起動しない設定を追加しました。
    • 音声認識の状況をわかりやすく表示するようにしました。
    • プリインストールプラグインのみ制御対象のアイコン画像が表示されるようになりました。
    • それに伴いCeVIOは当初設定が不要なプラグインでしたが、設定で実行ファイルを指定できるようになりました。指定してもアイコンが表示されるだけで、設定をしなくても動作に変化はありません。
    • メッセージを心なしか修正したような気がします。
    • メッセージ欄がスクロールしない謎仕様を修正しました。
    • 体感ではわからない速度向上したと思っています。
    • アイコン表示に伴いプラグインリストが高さ60pxから48pxに変わりスッキリしました。
    • ログファイルの内容をほんの少しだけ変えました。
    • VOICEROID2が固まる問題を少しだけ直せたような気がします。

    エイプリルフールに付き合っていただきありがとうございました。

    ずんだねっとに切替可能なゆかりねっとはこちらです。

    2018年8月31日金曜日

    ゆかりねっと Ver.0.4.4 公開しました。

    ゆかりねっと Ver.0.4.4 が完成しましたので公開いたします。
    主な機能はCeVIO 6.1対応と桜乃そら対応となります。

    また、ゆかりねっとは本バージョンが最も安定するバージョンとなりますので、宗教上の理由等ない場合は、本バージョンをご利用頂ますようお願い申し上げます。

    ダウンロードは下記リンクからお願いいたします。
    https://www.dropbox.com/s/e9f94rafm1pe4ll/Yukarinette.0.4.4.zip?dl=0

    0.4.4の主な変更は以下の通りとなります。

    • 忘れていたCeVIO 6.1対応
    • VOICEROID2 桜乃そら対応

    【追記】
    約10分前に0.4.3をアップロードしましたが、開発コードが含まれており無駄な動作が含まれております。奇跡的なタイミングで0.4.3を入手した方は大変申し訳ありませんが0.4.4にアップロードをお願いいたします。


    以下はいつもの注意喚起です。

    DropBoxのダウンロード方法が変わっております。ご注意ください。

    ダウンロードしたZIPファイルのセキュリティの許可をお願いいたします。

    ゆかりねっとのVOICEROID2対応はユーザー側で編集できます!

    みなさんこんにちは。

    とても今更ですが、ゆかりねっとは最新Verに更新をせずとも今後発売されるVOICEROID2の新しい音声に対応することができます(というよりはそういった機能を持っています)。

    ※この機能は半年以上前に作成していましたが、完全に忘れていましたごめんなさい。

    対応させる方法は次の手順となります。

    1. 音声認識タブ(またはプラグインタブで可)のVOICEROID2を右クリックします。

    2. メニューが現れるので選択をクリックします。

      ※1でプラグインタブを選んでいる場合は設定ボタンになります。
    3. 左下の編集するボタンを選択します。

    4. 内容を適切に編集します。

      ゆかりねっとはVOICEROID2を制御するさいに本設定情報を用いて動作しています。本設定はVOICEROID2のインストール先にあるVoiceフォルダ(標準ではC:\Program Files (x86)\AHS\VOICEROID2\Voice)と該当フォルダに対するキャラクター名の関連付けをJSON形式で記載している仕様となっています。

      書式は必ず
       {"Dir":"Voice内にあるフォルダ名","Name":"該当するキャラクター名"}
       となります。
    5. 実際に編集するとこのような形になります。
      不要なものは消してしまっても問題ありません。

      設定後はOKボタンで設定画面を閉じます。
    6. この状態でVOICEROID2で音声認識を開始すると、次のように選択肢が追加され新しいVOICEROID2のキャラクターに対応することができます。
    もしVOICEROID2フルコンプリートしている方がおられましたら、最新のゆかりねっと用VOICEROID2の設定をどこかしらにアップロードしてくれると私はとても嬉しいです。

    2018年7月2日月曜日

    Windows10ビルド1803の対応状況に関して

    おかゆぅさんです。
    先程自分のPCを最新ビルドにしたところゆかりねっとが動作しなくなる現象を確認しました。本件は1803アップデートで「強制的にマイクのアクセス許可がOFFとなる?」「アクセス許可の適用範囲広くなっている?」(詳しい原因は存じ上げません)ためです。
    次の症状に該当する方は、記事下の方にある回避方法を参照してください。


    • 症状
    「音声認識エンジンでエラーが発生しました(audio-capture)。マイクが接続されていないか、Google Chrome のマイクの設定が存在しません。」と表示される。
    • 具体的な発生方法
    1. 普通に起動する
    2. 音声認識を開始する
    3. 間髪入れずに落ちる


    • 回避方法

    Windows10のマイクのアクセス許可をONにします。手順は次のとおりです。

    1. Windowsスタートメニューを開き「設定」を開く
    2. 「プライバシー」を開く
    3. 左のメニューから「マイク」を選択し、「右側の『アプリがマイクにアクセスできるようにする』をオンにする

             ↓こうなれば完了

    2018年6月22日金曜日

    ゆかりねっと Ver.0.4.2改 をリリースしました。

    気がついたらCeVIO6.1となり、DLLの仕様が若干変更されているようですので、改としてリリースいたしました。正式版になり次第0.4.3に統合して再リリースいたします。

    ダウンロードリンクは下記になります。
    https://www.dropbox.com/s/f4sgmiw1t6px6g1/Yukarinette.0.4.2.kai.zip?dl=0

    ※右メニューのダウンロードリンクのものとは異なるためご注意ください。
    ※すでに0.4.2をインストール済みの場合、必ずアンインストールしてから本バージョンをインストールしてください。

    本バージョンの主な変更は以下となります。

    • CeVIO6.1β版への対応
    ※私が6.0以下のバージョンを持っていないため、6.1と6.0で互換が存在するかは不明です。もし6.0が動作しない場合は右メニューの0.4.2をご利用ください。

    導入に成功している場合、プラグインの表記が「CeVIO 6.1」となります。

    2018年6月21日木曜日

    お問い合わせ返信のコーナー「同一の単語が無限に続いてしまう件」

    タイトルが扱いの簡単さを醸し出して恐縮です。
    実際のところ「ある方向性の同一のお問い合わせ」を非常に多く受けておりまして、この際個々に返信するよりも、検索エンジンの検索で引っかかるようにすればお問い合わせが減るのではないかと思いこういった方向性に踏み切りました。

    (実際のところ忙しくて返信は98%くらいできていません。誠に申し訳ありません。。)

    ----ここまで言い訳----

    タイトルのものはお問い合わせランキング1位のものとなります。

    Q.
     発声した単語が無限に続いてしまう件(無限に繰り返す)

    A.
     スピーカーで再生された音声をマイクが拾ってしまっています。スピーカーをヘッドフォンにするか、マイクを指向性のあるものに変えて、ある種ハウリングを起こさない環境の構築をお願いいたします。

    Q.
     ヘッドフォンにしてもやはり無限ループしてしまいます。

    A.
     仮想ステレオミキサーの設定で音声の出力が入力側になっていないかご確認してください。もしくは、ヘッドセットの場合、ヘッドフォン部分の振動がマイクに伝わる製品が中にはあるようです。そういったマイクの場合、無限ループする可能性があります。