今日はゲームそのものではなく、ゲームをより楽しく遊ぶためのツールをご紹介したい。
さて、筆者のような社交性皆無の人間に諭されるまでもなく、それぞれに実践し実感していることと思うが、マルチプレイは楽しい。特にボイスチャット(以下VC)を併用すると、一人では到底楽しめないクソゲーすらも笑いに変えられる力を持っている。
しかし悲しいかな、世のマルチプレイ対応ゲームが必ずしもオンラインプレイ機能を備えているとは限らないのである。
なぜか。
筆者が気に入っている例えで言うと、自分でゲームを作りたいと志してプログラマになった人間というのは言わば野球選手なのだ。ところが、ネットワーク周りを扱えるプログラマというのはサッカー選手なのだそうだ。
素人目に見ればどちらもプロのスポーツ選手。団体競技だしボールも使う。できるだろ? やってくれよ、と思う。だができないのだ。一般人より速く走れたって、脚でボールを扱う練習はしたことがないのである。
実際に何度か気に入ったインディーゲーの作者さんにオンライン機能を実装してくれと訴えてみたことがあるが、大抵答えは「できるものなら俺だってやりたいが、難しい」だ。
ところが、条件さえ満たせばものすごい力技で、ゲームが持ち得なかったオンライン機能を付加する方法がある。それが今日ご紹介するストリーミングソフトである。
実はSteamクライアントにもそれらに近い動作をする「ホームストリーミング」という機能がある。寝室や書斎においたゲーミングPCをリビングからリモート操作し、大画面テレビに映してみんなで遊ぼう、といった趣旨のものである。
それには専用の受信デバイス、Steam Linkが要る。以前に紹介されていた奴だ。
http://store.steampowered.com/app/353380/Steam_Link/
またnVIDIAのユーティリティソフトGeForce ExperienceにもGame Streamという同様の機能がある。こちらも本来はnVIDIA SHIELDという受信デバイスに向けたものだ。
https://www.nvidia.com/en-us/shield/
どちらもおおまかな仕組みは変わらない。マシンパワーの要るゲーム自体は母機となるゲーミングPCが実行し、その結果だけをリアルタイムに動画形式で子機に配信する。プレイヤーは子機で動画を見ながら手元のコントローラをぽちぽち押すと、その入力がまた母機にフィードバックされて遠隔操作を実現する。
「それ、子機からリモート操作をしている間、母機では操作できないの?」
できる。母機で1人、子機で1人と分かれて遊ぶことも可能だ。
「じゃあその配信、インターネットを経由してできないの?」
できる。その答えがMoonlightであり、Parsecだ。
どちらにも共通する特徴としては、
といったところだろうか。もう少し詳しく説明しよう。
マルチプレイ機能には「ローカルのみ」「LANでなら可」「インターネットOK」の3段階ある。今までもせめてLAN機能があればHamachiなどの仮想LANソフトを使って遊ぶことはできた。しかし、ストリーミングソフトを使えばローカルのみのゲームですらインターネット経由で遊べてしまうのだ。
しかも自分のPCで実行しているかのようなブロックノイズの見えない画質で、知覚できるほどのラグもなしにリモート操作できてしまう。実際にやるとすご過ぎて「普通に遊べちゃうけどいいのか? これ」と不安すら覚える。もちろんいいのだ。
ホストは自分さえゲームを持っていれば、誰でも誘えるのも地味に嬉しい。マイナーなゲームだと、フレンドの中からCOOP相手を探すことは至難を極める。マルチを前提としたゲームを一人で試してもその真価は分からない。面白いかどうかが不明な段階で相手に買ってくれよと言うのも心苦しいのだ。
欠点がないわけではない。オフライン用のゲームには普通コミュニケーション機能がない。本来ならば遊び相手はすぐ隣に座っているはずなのだから当たり前だが、その辺を補ってやる外部ツール、DiscordやSkypeの類はほぼ必須と言えるだろう。
また、マウス+K/Bでもパッドでも遊べるゲームの場合、筆者は迷わずマウスを選択する。しかしマウスを使えるのは1人だけ。2人目以降は必ずパッドの右スティックでエイムすることになる。
そして筆者は誰かとCOOPを遊ぶ時、過去のプレイ時間を参照してこの人には基本操作から説明が要るなとか、この人なら高難易度でも余裕だなとか予断を持って誘う性質である。その為、ゲスト側にはプレイした証拠が残らないのは欠点に数え得る。ゲストが持ち帰れるのは思い出だけなのだ。言っててなんだか景勝地の環境保護スローガンみたいだ。
もっとも、あくまで「筆者は」とお断りしている通り、人によっては「そんなものは欠点じゃない」という意見になり得るものであることは認める。
それでは、それぞれのソフトを具体的に紹介していきたい。
MoonlightはnVIDIA Game Streamが配信するリモート操作用の動画を、専用の受信デバイスであるSHIELDのフリをして受信してしまおうというオープンソースのソフトウェアである。100%無料で広告もない。また配信部分はnVIDIA謹製のため、非常に安定している。AndroidやiOSにラズベリーパイ、はてはPS VITAなど多様なデバイスでの受信を可能にする他、インターネットを経由して別のPCで受信することも可能だ。
欠点としてはnVIDIAのグラボが必須であること、受信専用ソフトなのでもしも配信側が仕様変更したら対応するまで使えなくなること、接続できるゲストデバイスが1台きりなことが挙げられる。PC1台につき1人とすれば、2人までしか遊べない。
さらにもう一つ、個人的にはすごく困る欠点として、ShadowPlay(低負荷でゲームを常に録画しておいて、必要な時だけ保存する機能)と同時使用ができない。nVIDIAに問い合わせてみたが、同じハードウェアエンコード機能を使っているため、録画と配信のどちらかにしか映像を出力できないのだ。
ホストの必要環境は以下の通り。
それでは実際の使い方を見てみよう。Moonlightのホスト側の準備は簡単である。
まず下記URLでGeForce Experience(以下GFE)をダウンロードし、インストールする。
https://www.nvidia.com/ja-jp/geforce/geforce-experience/
GFE自体はなにかと便利なツールなのですでにインストール済みの方も多いかと思われる。GFEを起動したら右上の歯車アイコンで設定を開き、左のメニューでSHIELDを選択。GAME STREAMのスライドスイッチをクリックして緑色のONにする。以上だ。
Steam以外のゲームで利用したい場合はその下の編集や追加から個別にゲームの.exeを登録してやる必要があるが、Steamライブラリにあるゲームであればその必要はない。
ゲスト側はまず公式サイトでダウンロードするところからだ。
http://moonlight-stream.com/
PCで受信する場合、Moonlight PCよりもMoonlight Chromeの方が推奨されている。なのでmoonlight-chrome.crxの最新版をダウンロードする。
そうしたらChromeブラウザを開き、メニュー>その他のツール>拡張機能、とアドオンの一覧が表示される画面にして、そこに先程の.crxファイルをドラッグ&ドロップしインストールする。
あとは作成していればショートカットや、Chromeのブックマークバーのアプリから起動する。
起動すると小窓が開く。まずは右上で受信したい動画の画質を選択する。1080pの60FPSであれば20Mbps、720pの60FPSであれば10Mbps、と画質を変更すれば自動で帯域の数値も変化するのでそれが推奨値なのだろう。
同じ10Mbpsであれば1080p/30FPSよりも720p/60FPSの方がアクションゲームには向いている。回線品質が許す以上の画質を設定するとラグが発生するので程々に。
右端のスピーカーアイコンはホスト側をミュートにするかどうか。本来のカウチCOOP(一緒にカウチソファに座るように、同じ部屋に居て遊ぶ)であれば、無人の母機で音が出ている必要はない。だがこれを有効にすると、今回のようなオンラインマルチプレイ用途の場合ホスト側でゲームの音がでなくなってしまう。
アイコンが灰色ならホスト側での音声がOFF、画像の青色ならホスト側での音声はONだ。必ず青くしておこう。
それらの設定を確認したら、ホストがGAME STREAM機能をONにしている状態で中央のAdd Hostを選択し、ホストのIPを入力する。すると初回のみ4桁のPINコードが表示されるので、これをホストに伝えて入力してもらえばゲスト側の準備は完了だ。
一方のホスト側ではデスクトップの右下にGFEの小窓がポップアップする。ここに教わった4桁の数値を入力して接続が正当なものであることを保証してあげよう。
無事にペアリングが済むと接続先が追加される。赤枠で囲まれているのはホストが配信をOFFにしているサイン。そうでない時にクリックすればリモートで起動できるゲームの一覧が表示される。
ゲーム一覧から選んでもゲームの起動と同時に配信が始まるが、ゲームを終了すると配信も切れてしまう。幾つかのゲームを切り替えて遊びたいなら「Steam」を選べばBig Pictureモード(ゲームパッドだけで操作できるモード)でSteamクライアントが起動する。
ゲームパッドをうまく認識しないこともあるが、筆者が試した範囲では配信が開始されてからコネクタを抜き挿しすると大体なんとかなっている。れっつとらい!
ちなみに自分のモバイル用に配信可能な状態にはしておきたいが、一度遊んだ相手が勝手に接続しちゃうのは困るという場合、ここの「すべてのデバイスを除去する」を選ぶとすべてのペアリングが解除される。
あらためて自分のMoonlightだけペアリングを行えばいい。
ParsecはAndroidやiOS、ラズベリーパイなどで受信可能なほか、配信も自前で行うソフトである。コア部分は無料で、将来的にはクラウドPCの有料レンタルやプレミアム版の販売で利益を出すのだそうだ。
端から力技によるオンラインプレイ用として開発されており、画質は犠牲になるが接続人数に上限がない、フレンド毎に権限を設定できる、ShadowPlayと併用できる点でMoonlightよりも便利だ。
欠点として、Android版でタブレットから自分のPCをリモートしようとすると音だけ再生され、母機を見ると操作も行えているが画面は動かないと言ったことがままある。他にもあくまで商用ソフトなので、将来的に余計な広告などの表示が出ない保証はない。しかし当面はMoonlightよりもこちらを使うほうがオススメだ。
ホストの必要環境は以下の通り。
Parsecの方は要求仕様が解りにくいが、限りなくタイムラグの少ない動画を配信するためにハードウェアエンコード機能が要るぞ、ということかと思う。
まず公式サイトにてサーバでありクライアントであるソフトをダウンロードしてインストールする。
https://parsecgaming.com/downloads
その際、コントローラ用ドライバをインストールするか尋ねられたら素直にYesと答えよう。ただしParsecは商用ソフトなので、更新されていく過程で余計な抱き合わせのインストールを求めるように変わってしまうこともあり得る。内容はよく確認のこと。必要なのはParsec本体とvirtual controller driverだけなので、それ以外は断っていい。
起動したら下のSign Upを押せばそのままユーザーネーム、メールアドレスとパスワードの入力欄に切り替わるので指示に従いアカウントを作成する。
ログインするとメニューが表示されるので、左上のHOSTを選んでENABLE HOSTINGをクリックしたらホスト側の準備はほぼ完了だ。自分のPCを自分の他のデバイスでリモート操作するならこれだけである。ちなみにDISABLE(無効)にするボタンはsettingsにしかない。
マルチプレイをするならフレンド登録も必要だが、これはどちらがやっても構わない。左上のFRIENDSをクリックし、フレンドのユーザーネームを入力してフレンド申請を送るなり、送られた申請に許可を出すなりしよう。
登録したフレンドをクリックすれば権限の設定ができる。デフォルトでは接続するのに毎回ホストの承認が必要で、接続した後はゲームパッドのリモート操作だけが許可されている。
自分がパッドを使ってゲストにはマウス+K/Bでやらせたいなどの場合はキーボード/マウスそれぞれ個別に許可を与えることもできるし、接続からリモートからあらゆることを無許可で行える全権を与えてしまうこともできる。
基本的にゲームを遊ぶだけならデフォルト設定のままでなんの問題もない。配信が始まると問答無用でマウスカーソルを共有してしまうMoonlightに比べ、流石に専用設計は便利だ。勝手にヒミツの画像フォルダを開けられちゃうこともないのだ。
ちなみにフレンド登録や権限の設定は公式Webサイトでも同じインターフェイスで行える。
一方のゲスト側だが、ホストと同じくアカウントの作成、フレンド登録まで済ませたら右上の歯車からSettingsを選んでComputer Settingsで受信したい画質を設定する。
Parsecの場合は一人のホストに対して複数のゲストがぶら下がることが可能だが、この時画質を決定するのは最初に接続したゲストである。
1人目が10Mbpsを選び接続すると、2人目が接続すれば5Mbpsずつ、3人目が接続すれば3.3Mbpsずつと等分されていき、ホストの負担は変わらないらしい。ホストの上り回線の能力、同時に遊ぶ人数に応じて1人目のゲストは帯域(Bandwidth)やその他を決定しよう。
あとは左上のPLAYからホストのコンピュータ名の横に表示されるCO-PLAYをクリックするだけだ。
接続を許可制にしている場合、ホストのデスクトップ画面では右下に接続リクエストが来た旨の通知がポップアップし、HOSTのタブでもその確認ができる。
そこでACCEPTを押してもいいし、すでにフルスクリーンでゲームを起動中ならCtrl+F1でも接続の許可を出せる。Moonlightとは違ってゲームを起動していなくても配信がはじまるので、見えて困るものがデスクトップにある人はホストをやる時に先にゲームを起動しておくこと。
なお、ゲームパッド、キーボード、マウスそれぞれのリモート操作権限は、接続中ならホストのタブからいつでもリアルタイムで変更できる。
とにかくいずれかの方法でゲストを2Pとして認識させればあとはやりたい放題だ。
例えば作者は家を売ってまで開発資金を捻出したと言われるCupheadは、COOPだと相方を蘇生できるのである。基本的に3回食らったらアウトのゲームなのに、蘇生に失敗しなければ5回、10回と被弾しても戦闘を続行できるのだ。楽だ。楽過ぎる。
2人で挑むことでボスのライフが3倍近くに増えているとしても知ったことではない。もはや筆者はこのゲームをソロで攻略する気がまったくない。完全にCOOP頼りである。
例えば以前紹介したCrimzon Cloverや斑鳩、怒首領蜂といったアーケードからの移植シューは、ローカルCOOPであることが多い。
斑鳩は本来なら白と黒、2つの属性を切り替えて遊ぶSTGだが、1Pは白のみ、2Pは黒のみと属性を固定してクリアできないか試すのも有りじゃなかろうか。逆属性の敵弾は味方を盾にしてやり過ごすのだ。ここで1人が前に出て吸収して道を譲ってと、パズル成分が強まり1人でやるより難しくなる。協力の恩恵はどこへ行ったのか。
残念ながら筆者の環境では3面のボス前後で必ずCtD(ゲームが異常終了してデスクトップ画面に戻る)を起こすため、クリア可能かどうか検証できていない。
そして、筆者が常々いつかCOOPしたいと思い続けてきたのが、以前紹介したKALIMBAだ。1人プレイでも同時に2体のキャラを操作するゲームだが、COOPでは各自2体の計4キャラを操作し、COOP専用ステージを遊ぶことができる。斑鳩同様、自キャラと同色であれば接触しても平気だが、異色のモヤに触れるとミスになるアクションゲームである。
下の奴が迎えに行き、空中で受け止めて踏み台になるこの動作はKALIMBAの基本テクニックだが、COOPだと下段だけで2段ジャンプをしての空中受け止めなんかも要求される。まさに応用編といった趣で大変面白い。
こうして念願叶ってKALIMBAのCOOPが実現するのもParsecやMoonlightのおかげである。
また、そもそも1人で遊ぶことを想定していないパーティゲームも楽しめる。
Overcookedは動線をまったく考慮していない狂った調理場で、必死に注文通りの料理を作ってお出しする馬鹿ゲーである。画像の通りそもそも食料保管箱と調理場、できた料理を配膳係に渡すカウンターが分離していたり、刻々と間取りが変化したりする。手の回らなさを楽しむ、間違いなく複数人で遊ぶべきゲームだ。
「取り敢えず肉焼いてコンベアに流して」「刻むもんがないぞー。キャベツくれー」「レタスだよ!」とアタフタするのが実に楽しい。
また、敢えて物議を醸しそうな領域に踏み込めば、必ずしも複数人用のゲームである必要はないのである。例えばちょっと興味はあるけれどデモ版がない、そんなゲームもホストが持っていれば触らせてもらえる。
例えば1人用のゲームでどうしても難しくてクリアできない場面がある。そんな時には上手い人にそこだけやってもらえばいいのだ。誰がプレイしようと獲得した実績はホストのものである。こういうのは何て言うんだろう。替え玉チートだろうか。
感覚としては完全にクラスメイトの家にあるファミコンだ。「1機だけやらして!」だの「死ぬか面クリアで交代な」が成立する。物持ちの友達の家に行けば、自分が持っていないゲームだって遊べてしまう。未来の技術なのに気持ちは過去に飛んでいる。ちょっとしたタイムマシンだ。
環境が許さず実践することが叶わない読者も、少なくとも未来の到来は感じて頂けたのではないかと思う。思い切りマシンパワーや回線ぢからに物を言わせた力技だが、「できる」「できない」で言えば「できる」。
これらの素晴らしいところは、なによりも今まで「面白そう! ……なんだローカルCOOPか」と購入を見送ってきたゲーム、これまでに「ホント面白いんだけどなぁ……、COOPやってみてぇなあ、ローカルオンリーだけど!」と諦めてきたゲームが脚光を浴びる日が来るのだ。
これを機にISP(インターネットサービスプロバイダ)の乗り換えを検討してもいい。そのくらいの価値はある。
最後にもう一つ、どちらにも共通する解消可能な欠点を挙げておく。通常我々はゲームの音もVCの音も、「再生デバイス」で既定のデバイスに指定したものに再生させている。
ストリーミングによるオンラインプレイの場合、ホストのPCで再生している音をすべて配信に乗せてしまうため、ゲスト側の人間はホストに話しかけた自分の声まで戻ってきてしまうのだ。気にしない人にとっては全く大した問題ではないのだが、これが意外と辛い。
一旦何かに録音した自分の声を聞くと、大体の人は変な感じがすると思う。発声時にはあった骨伝導がなくなるせいだが、喋り始めると常にちょっと遅れて(これは配信ではなくVCツールの遅延)、自分とは似て非なる声の持ち主が自分の喋り方を完璧に真似て喋りだすのである。
自分の滑舌に自信のない筆者のような人間にとっては軽い拷問である。解放されるためなら妹のスリーサイズから初キスのシチュエーションまで自白しそうだ。そんなもん知らないが。そもそも妹居ないし。
そんなわけで、このトラブルを解決する妙手がこれだ。
https://www.vb-audio.com/Cable/index.htm
MoonlightとVCを併用するならほぼ必須。ParsecでVCを使うなら将来的には不要になりそうだが、現状(2018/02/19)ではまだEcho Cancelling機能は完璧とは言い難く、オプションから手動での解決方法の解説ページ(英語)へリンクも張られているので、ここでその対処法を説明しておく。
Virtual Audio Cableはその名の通り、本来は2つのソフトを繋ぐ仮想ケーブルだ。例えばネットラジオの出力先をこのVRケーブル Input にして、録音ソフトの入力元をVRケーブル Outputにする。そうすると両端がオスのケーブルでイヤホンジャックとマイクジャックを繋ぐがごとく、ラジオの音をそのまま録音できる。Donationware、つまり気に入ったら寄付してねという、別名カンパウェアだ。
どう使うかはこれから説明するが、以下はホスト側の人間が配信を始める前に行うこと。
まずVCツールの設定で入力・出力ともに既定のデバイスではなく普段使っているスピーカーやイヤホン、マイク等を直に指定しておく。出力だけで機能しそうだが、入力は念のためだ。
次に先程のVB-CABLE Driverをインストールしたら、OSのサウンド設定の再生のタブでこの CABLE Input を既定値にする。このままだとホスト側もゲームの音が聞こえなくなってしまうので、続いておなじく録音のタブで CABLE Output を既定値に設定し、さらにプロパティの「聴く」のタブで「このデバイスを聴く」にチェックを入れる。
これはマイクがちゃんと音を拾っているか確認するための機能だが、ここで再生先にVCツールで指定したのと同様に直にスピーカー等を指定しておく。
すると、ホストはゲームの音もゲストが喋った声も聞こえて、ゲストが見るストリーミングからはゲームの音だけが聞こえる状態になる。めでたしめでたしだ。