Planetary days, (reprise)

不惑とか嘘だよ。惑う惑う。ふらふらと。還暦になっても。

MoonlightでFallGuys

ポータブルゲーム機で据え置き環境のゲームをストリーミングプレイする仕組みがPSでも実装されているが、先行実装としてNVidiaがポータブルゲームデバイス SHIELD 用にGameStream技術を提供していた。これ用のオープンソースクライアント、Moonlightというのが最近のポータブルゲーム機のカスタムファームウェア(CFW)に搭載されることが増えてきた。
RG-35XXH用のmuOSというCFWにもMoonlightが乗っているので、物は試しで動かしてみて、EPIC GAMESのFall Guysがようやく動いたので現状をメモ。


NVidiaがShield対応ストリーミングをやめてしまったので、代替サーバである「sunshine」での利用手順も併せて記載しておく。

【PC側準備 GeForce Experience版】
・PC側に、サーバとして GeForce Experienceを導入する。(最新化すると、NVidia Appというのに変わってしまってShieldサーバ機能が無くなってしまったので注意)
GeForce Experienceで「設定」>「SHIELD」に進んで、ストリーミングする実行ファイル(.exe)もしくはショートカット(.lnk)を登録する。
【PC側準備 Sunshine版】
・PC側のサーバとしてsunshineをインストールする。取得はGITから。Windowsバイナリはインストーラパッケージ版とPortable版(インストール不要)があるが、ここではポータブル版を使うので、ダウンロードしたら解凍しておく。
・解凍ディレクトリ下に「sunshine.exe」があるので起動する→止められるので起動を許可して再度起動
・コンソールが表示されて、サーバが起動していることを確認したら、ブラウザで https://127.0.01:47990 にアクセス
・起動画面でsunshineサーバのuserとpasswordを設定する
・[アプリケーション]タブでMoonlightで起動するアプリケーションを設定 (この辺はGeForce Experienceと一緒)

【ポータブル機側準備】
・Moonlightを起動して、「Connect」を選択。まず接続先IPアドレスを設定する
・次に、「Connect」メニュー内で「Pair」を選択すると、ダイアログにPINコードが表示される
 - GeForce Experienceの場合、PC側でPIN入力ダイアログが出ているのでPINを入力
 - Sunshineの場合は、Web画面で「PIN」というタブがあるのでそこでPINを設定
・「Connect」メニューの「Reload Apps」でPC側で登録されている実行ファイルを読み込む

【接続】
・Moonlightの「Play」を選択すると、PC側のアプリケーションがメニューとして並ぶので起動したいものを選択
→ PC側画面がストリーム配信される。ポータブル端末の入力が疑似USBコントローラになる

【課題】
EPIC GAMESで提供されているソフトは、EPICアカウントで認証が必要なので、ゲームアプリを直接登録しても認証エラーになる。
 → C:\Program Files (x86)\Epic Games\Launcher\Portal\Binaries\Win32\EpicGameLauncher.exe を登録して起動する必要あり
 → 個々のタイトルを指定できないのでlauncherを起動してPC側でゲームを起動させる
・ショートカットで、launcherのコマンドラインに起動ゲームを指定する場合、デスクトップショートカットで指定している「com.epicgames.launcher://apps/・・・」というURLを引数で与えれば良い・・・のだが、Geforce Experienceではコマンドライン引数を指定できず、ショートカットを登録してみたがうまく動かず。(PC側でマウスで起動してやればストリーミングで実行できるけれど、なんか違う)
 → sunshineではコマンドライン引数を書き込めるので直接実行できた。
 → ゲーム終了後に接続が自動的に切れないため、Moonlightを強制切断(L2+R2+Start)するしかなくなる (Launcherがタスクトレイに常駐するからかもしれない)
・フルスクリーンで表示するのが最適なのだが、ポータブル機の画面は4:3液晶なので、縦横比が若干窮屈になる。
 - なおポータブル機のボタン配置は任天堂配置なのだが、PC側はX-Inputと解釈するのでAB、XYがそれぞれ入れ替わってしまう
・GeForceExperienceではホスト側オーディオが自動的にミュートされたが、Sunshineではホスト側の音が出っぱなし(当たり前だが手元でも音が出る)
 - GeForceの方はほっておくと強制的ににNVidiaドライバで音声を再生するようになってしまい、GeForceオーディオを無効にしないとHDMI経由でない音声に切り替えられなくなった。無効化後でもMoonlight接続時の自動ミュートができていたのでNVidiaドライバにする必要ないんだが。

というわけで、使えるようになったがまだ快適環境とは言えず。
おいおい設定を見直して行こうかと思う次第。

 

--- 後日追記 ---

・GITでSunshineで本体側音声が自動的にmuteにならないというissueが放置されてるので、気長に待つしかないらしい。気になるならPC側でmuteにするとか、音量絞っておくとか。

・常駐せずにちゃんと終わるアプリケーションならちゃんとMoonlightも終了することを確認。Redreamは操作をPadで出来るのでバッチリ、と思ったがアプリ終了ができなかった。企画倒れ。