ゲーム収録環境をつくった 〜ひとり実況編〜【M1 MacBook Air, OBS Studio】 - tanaken’s blog の続編です。
今回の記事では「みんなで実況編」と題して、次の要件をすべて満たす構成については紹介します。
- ゲーム端末の映像を録画できる
- ゲーム端末の音声を録音できる
- 自分の声を録音できる
- ゲームを遅延なくプレイできる
- 音声通話アプリの音声(=友人の声)を録音できる (New!)
結論(構成図)
はじめに「結論こうなりました!」という図を示します。図の元データはGitHubで管理しています。
電源供給
前回の記事と同様なので割愛します。
操作入力と映像出力
前回の記事と同様なので割愛します。
音声入出力
登場人物
前回の記事との差分は太字で示します。
人間
- 自分(手、目、声、耳)
- インターネットの向こう側の友人たち(声、耳)
ハードウェア
- ゲーム端末: Nintendo Switch
- ゲームコントローラ: Nintendo Switch Proコントローラー
- PC: MacBook Air (M1, 2020)
- ゲームキャプチャーデバイス: Elgato Game Capture HD60 S+
- 外部ディスプレイ: 音声出力ができればなんでも
- マイク: Blue Yeti
- イヤホン: Aeropex
ソフトウェア
- 収録ソフトウェア: OBS Studio
- 仮想オーディオデバイス: BlackHole
- 仮想オーディオミキサー: LadioCast
- 音声通話アプリ: Discord, Zoom, Google Meet, などどれでも
前提知識
今回の収録で新たに利用する「仮想オーディオデバイス」と「仮想オーディオミキサー」について説明します。
仮想オーディオデバイス
音声入出力装置をPC内に仮想的につくるソフトウェアです。音声を仮想のスピーカーに出力したり、仮想のマイクで音声を受け取ったりできるようになります。
この仮想オーディオデバイスは、音声通話アプリからの出力音声を収録ソフトウェア(OBS Studio)で収録するために必須です。
そもそもPCは、基本的には出力音声を自身への入力として受け付けることはできないようになっています。これは、出力音声と入力音声が無限ループする状態を避けるためです。
今回利用するOBS Studioには「音声出力キャプチャ」機能がありますが、これも物理オーディオデバイス(PC本体の内蔵スピーカーやイヤホン)への出力音声を収録することはできません。(設定の選択肢に出てきません)
この仕様を掻い潜って音声通話アプリからの出力音声を収録するために、その出力音声をいったん仮想オーディオデバイスで受け取ります。
OBS Studioの「音声出力キャプチャ」機能は、仮想オーディオデバイスであれば選択できるようになっているため、先ほど音声通話アプリの音を受け取った仮想オーディオデバイスを設定することで、その音声を収録することができるようになります。
仮想オーディオデバイスは、macOSではSoundflowerとBlackHoleが有名です。この2つのうち、M1で使えるのはBlackHoleなので自分はこれを使っています。
サイトの手順に従って、BlackHoleの2chをインストールしておいてください。
仮想オーディオミキサー
PC内の音声入出力装置について「複数の入力音声を単一の出力装置に出力する」「単一の入力音声を複数の出力装置に出力する」といった操作ができるソフトウェアです。
仮想オーディオデバイスと組みわせて利用することで、音声を自由度高く取り扱うことができます。
今回は、仮想オーディオデバイスで受け取った音声通話アプリの出力音声を、物理デバイスであるイヤホンに流し込むために、このソフトウェアを使用します。
自分はLadioCastを利用しています。
環境構築
では、収録環境をつくっていきましょう。
基本的には前回の記事と同様なので、前回つくった「シーン」を複製して新しい「シーン」をつくると手間が少ないと思います。 「ひとりで収録」を右クリックすると、画像のように「複製」ができるのでクリックします。新しいシーンの名前は「みんなで収録」と名付けました。
電源供給
前回の記事と同様なので割愛します。
操作入力と映像出力
前回の記事と同様なので割愛します。
音声入出力
まず、
- 自分の声が外部マイク(Blue Yeti)を経由してOBS Studioに収録される
- Switchの音声がゲームキャプチャーデバイス(HD60 S+)を経由してOBS Studioに収録される
- Switchの音声が外部ディスプレイを経由して自分の耳に届く
という構成は前回と同様です。
前回と違うのは
- 自分の声が音声通話アプリを経由して友人たちの耳に届く
- 友人たちの声が音声通話アプリを経由してOBS Studioに収録される
- 友人たちの声が音声通話アプリを経由してイヤホン(自分の耳)に届く
という部分ですね。では、それぞれ設定していきましょう。
まずは音声通話アプリを開いてください。(今回の例ではGoogle Meetを扱います) 音声通話アプリには音声の入出力に関する設定があるはずなので、それを開きます。
音声通話アプリの入力装置に、今回使用する外部マイク(Blue Yeti)を指定します。これで「自分の声が音声通話アプリを経由して友人たちの耳に届く」はクリアです。
続いて、音声通話アプリの出力装置としてBlackHoleを指定します。(今回は「BlackHole 2ch」を指定します)
次にOBS Studioを開き、「ソース」のウィンドウで+ボタンから新しいソースを追加します。 今回は「音声出力キャプチャ」を選択し、「通話音声」と名付けましょう。
次の画面で「デバイス」を選択できるので、「BlackHole 2ch」を選択しましょう。
ここまでで「友人たちの声が音声通話アプリを経由してOBS Studioに収録される」がクリアです!
ただしこのままでは、友人たちの声が自分のイヤホンに届きません。
ここでLadioCastを開き、「BlackHole 2ch」に流れている友人たちの会話がイヤホン(Aeropex)に届くように設定します。 具体的には「入力1」に「BlackHole 2ch」を指定してその下の[メイン]ボタンをアクティブにし、「出力メイン」に「Aeropex」を指定します。
これで「友人たちの声が音声通話アプリを経由してイヤホン(自分の耳)に届く」クリアです!
設定は以上です!「ゲーム音声」「マイク」「通話音声」の大きさのバランスは「音声ミキサー」ウィンドウのスライダーで適宜調整していただくと良いと思います。
※ 余談1. ちょっと物理的にズルしてます
骨伝導イヤホンであるAeropexを使うことで、物理的にちょっとズル(というか簡略化)しています。
というのも通常のイヤホンを使うと、通話音声(イヤホンに流れてくる)と外部ディスプレイの音声を同時に聴くことはできないですよね。骨伝導イヤホンで耳が開いているので、物理的に外部ディスプレイの音も聞こえる、という特性を利用しています。
通常のイヤホン(耳を塞ぐイヤホン)を使用する場合には、オーディオミキサー(物理)を購入して外部ディスプレイからの音声出力とPCからの音声出力をオーディオミキサーで統合し、その音声をイヤホンで聴く、という構成にすると良いと思います。
※ 余談2. OBS Studioからの音声出力
前回の記事ではPC本体の音声をミュートにすることでOBS Studioからの音声出力をなくする方針を採用していたのですが、今回は音声通話アプリからの音声を聞く必要があるのでそれはできませんでした。
この対応として当初はPC本体の音声出力をBlackHoleの適当なchに逃す(どこにも出力しない)という作戦を立てていたんですが、OBS Studioの設定をいくつかいじってみると「音声ミキサー」の「音声モニタリング設定」で「モニターOFF」にするだけでOBS Studioの音声出力は無くせる(収録ではちゃんと音声を拾えてる)ということがわかったので、一旦それで行ってみることにしました。
この辺はOBS Studioの挙動が把握しきれてない(というか「モニターOFF」= モニタリングしないって意味だろうから、収録で音声を拾えちゃうのはおかしいような気もする)ので都度様子を見ながら(動作確認をしながら)やっていくことになりそうです。
完「みんなで実況編」
この記事では音声通話アプリの声も同時に収録するための設定を紹介しました。
テスト動画も撮りました。
ただ、音声通話アプリ(Google Meet)の会話相手がいなかったので、
という状態をつくりました。
結果的に、iPhoneの向こう側のニュースキャスターと会話しながらゲーム収録をする羽目になりました。
楽しかったです。