続・リモートデスクトップでゲームパッドを使う方法

※2020/06/13 Dual Shock4 Emulationモードの入力不具合を修正しました。
https://github.com/ProjectAsura/RdpGamepad/releases/tag/DS4_7

※2020/11/20 Dual Senseからの入力を試験的にサポートすることにしました。
https://github.com/ProjectAsura/RdpGamepad/releases/tag/DS5_1


こんにちわ,Pocolです。

今回はテレワークお役立ち情報の続編です。
前回はWindows 10 HomeがRemote Fx USBリダイレクト使えなくて,リモートデスクトップでパッドが使えなくて困って,リモートデスクトップでゲームパッドが扱えない場合にゲームパッドを使えるようにするプラグインを紹介したのですが…
今回はそのプラグインを改造して,少し扱いやすくしました!というお話です。

前回紹介した、https://github.com/microsoft/RdpGamepadはXInput対応のゲームを開発する際にはとても役に立つのですが,残念ながらDual Shock 4にしか対応していないゲームを開発する際にはリモート越しで操作出来なくてこまってしまうという場面に出くわします(※まぁ開発者の人ならわかりますよね)。

「無いなら作ろう!」というわけで,作ってみました。
https://github.com/ProjectAsura/RdpGamepad/releases/tag/DS4_6

基本的には

  • XInput —> Dual Shock 4
  • Dual Shock 4 —> Dual Shock 4
  • Dual Shock 4 —> XInput

という処理を付け足しました。

使い方は簡単で,本家の代わりにこちらで改造した版のインストーラーを使ってインストールしてください。
転送先のPCで右下に常駐する「Microsoft Remote Desktop Gamepad Receiver」を右クリックして,転送先で振る舞うコントローラータイプを選択してください。

Xbox 360を選択すると,
[ローカルPC:XInput] → [リモートPC:XInput]として動作します。

Xbox 360 Emulationを選択すると,
[ローカルPC:Dual Shock 4] → [リモートPC:XInput]として動作します。

Dual Shock 4を選択すると,
[ローカルPC:Dual Shock 4] → [リモートPC:Dual Shock 4]として動作します。

Dual Shock 4 Emulationを選択すると,
[ローカルPC : XInput] → [リモートPC: Dual Shock 4]として動作します。

XInputでDual Shock 4をエミュレーションする場合にはボタン数が足らないため,PSボタンとタッチパッドボタンが効かない仕様です。
また,サブモジュールとして使用しているViGEmClientがジャイロなどに対応していない関係で,Dual Shock 4のジャイロは非サポートです。
また,Bluetoothを使った接続に関しても非サポートです。

ちなみに分かっている情報として,Xbox OneゲームパッドをRemote FX USBリダイレクトでつなぐとリモート先のPCがブルースクリーンになるなどの問題が報告されています。
現在所属会社の方では,Remote FX USBリダイレクトでブルースクリーンが発生する問題を避ける方法としてRdpGamepadの使用が推奨されています。

そんなわけで,転送先PCでDual Shock 4として認識してくれないと開発に困る!という方たちにはもしかしたら有益な情報かもしれませんし,ブルースクリーンで悩んでいる方に有益な情報かもしれません。
テレワークでの開発にお役に立てば幸いです。

※追記ですが,ViGEmBusのドライバー側にバグがあるようで,入力を受け付けなくなってBSODになったりするみたいです。DirectInputやXInputの初期化処理で関数から帰ってこなくなったら,このバグが発生している可能性あります。この状態でリモート接続を切断してしまうと,再接続できなくなるようなので,バグが発生したらリモート側のPCをいったん再起動して対処するほかないようです(再起動にも20分とか時間がかかるようです)。現在,Issueが発行されています。1日以上PCを起動しっぱなしにするとバグを踏む確率が高くなるので,対処として1日に1回PCの再起動かけると良いかと思います。

リモートデスクトップでゲームパッドを使う方法

こんにちわ。
Pocolです。

たまには生活お役立ち情報としてテレワークに役立つリモートデスクトップでゲームパッドを使う方法を紹介します。
役立つ場面としては,リモートデスクトップで自宅PCから会社PCに接続し,ゲームタイトルを開発する状況などを想定しています。

皆さん,ご存知のようにWindows 10 Proであれば,ゲームパッドはリモートデスクトップでも問題なく使えると思います。なので,Proの場合は適切に設定すればOK。

困るのがWindows 10 Homeとかの場合です。デフォルトだとリモートデスクトップでゲームパッド入力が受け付けない状態です。自分もこれに当てはまります。

ちょっと前にMicrosoftがリモートデスクトップでXBox GamePadを使える様にするプラグインをGithub上で公開しました(https://github.com/microsoft/RdpGamepad)
これを使えば,Windows 10 Homeでもゲームパッドが使えるようになります。
※Dual Shock 4を使いたい場合は,こちらを参照してください。

順に説明していきます。

まずは,Githubページの上にあるReleaseタブをクリックしましょう。

あとはリリースページに書いてある手順に従ってexeをインストールしていくだけです。
リモートワークをする前提なので,転送元PCを「自宅PC」,転送先PCを「会社PC」と想定します。

転送元PCの設定

まずクライアント側(転送元)の設定です。
(1) リリースページから,「dpGamepadClientInstall-1.0.0.exe」をダウンロードし,インストールします。
(2) インストールが終わったら,リモートデスクトップセッションを切断して,転送元のPCを差起動します。
(3) 起動後に転送元PCにXboxコントローラーを指します。
以上で,転送元PCの設定は完了です。

転送先PCの設定

(1) https://github.com/ViGEm/ViGEmBus/releasesのページに飛び,

  • Xbox 360 Accessories Software 1.2
  • Microsoft Security Advisory 3033929 Update
  • ViGEmBus_Setup_1.16.116.exe

の3つを順に転送先PCにインストールします。
(2) 3つインストールしたら,ページを戻り「RdpGamepadReceiverInstall-1.0.0.exe」を転送先PCにインストールします。
(3) インストールが完了したら,「Microsoft Remote Desktop Gamepad Receiver」が起動していることを確認します。転送先PCの画面右下から「隠れているインジケータ」を表示すると確認できるはずです。

これで転送先PCの設定は終了です。
会社さんによってはインストールできるソフトウェアに制限があると思うので,情報管理部門の方とかに許可取るのを忘れないようにしてください。

実際に動かす

あとは普通に転送元のPCに刺さっているXboxコントローラーを使えば,リモート先で動くようになるはずです。

そんなわけで,リモートデスクトップでゲームパッドを使えるようにする方法を紹介してみました。是非テレワークでの開発にお役立てください。
ではでは~