Steamのゲームをリモートでしたいと思って試していると、マウスカーソルが映らない現象に遭遇してしまい、色々調べたのでメモ代わりに記しておきます。
なぜカーソルが映らないのか
結論:ホスト側にマウスが挿さってないから
Windows 10以降、Windowsはマウスが挿さってないとカーソルを表示しなくなった。
リモートデスクトップのクライアントで、ホストがマウスを認識していない時にはマウスカーソルは表示されない。
じゃあMicrosoft謹製のリモートデスクトップはどうかというと、『リモート デスクトップ マウス デバイス』なる仮想デバイスがマウスとして接続されている。
解決法と対処法はいくつかあったが、万能のものはなかった。それでもメモとして残しておく
根本的解決法:USBマウスを挿す
その通り、物理的にUSBマウスを認識させておけば間違いない。
Bluetoothは放っておくとスリープするのでダメ。私の場合はクライアントになるMacとマウスを兼用しているのでなおのことダメ。
今更ケーブル付きのマウスなんて使えねえよ!という人も多いと思う。
対処療法①:マウスキーを有効化する
テンキーでマウスカーソルを操作するマウスキー機能というものがある。それを有効化するとマウスがなくても、常にカーソルが表示されるらしい。
というのも私の環境では有効化してもカーソルが表示されなかった。
調べてる身とどうもそもそもNumLockがついてるようなフルサイズのキーボードか、ノートパソコンじゃないとマウスキーが本当の意味で有効にならないらしい。
(もしくはそう紹介しているサイトが軒並みWin10の画像だったので、Win11じゃできない可能性もある)
私の場合はテンキーレスのキーボードだったため、それ以上の検証ができなかった。
対処療法②:Moonlightを使う
そもそもリモートデスクトップのソフトを変えるのも手。
Moonlightならマウスカーソルは表示される。
Moonlightは本来はNVIDIAのGPUを積んだPCとリモートするものだが、SUNSHINEなるホスト用ソフトをインストールすることでその他のPC(非NVIDIA搭載機)でも動作するらしい。
私の場合はInstant Replay(Shadow Play)も使いたいのに、GPU支援を受けるためかどうも両立できないらしい。私の場合はこれもダメ。
対処療法③:PowerToysの機能を使う
Microsoftが提供しているPowerToysには、カーソル位置を強調表示するものがある。
その中で、十字線でカーソルを強調する機能がある。これをうまいこと使えばかそれが表示されていなくても、カーソルの位置がわかるようになった。
ただし、ゲーム用途には向いていない。
Steam Linkの場合、十字線を有効化していても、管理者権限で実行しないとゲーム画面で表示されなかった。
ところが管理者権限でPowerToysを実行している場合、Steam Linkが関与していないアプリやウィンドウ(デスクトップ画面とか)に行くと、途端にマウス操作が全く効かなくなる。
なのでSteam Linkでの使用は難しい。
Parsecの場合、管理者権限を有効化していなくてもゲーム画面で表示はされる。
ただしFPS操作中の視点移動の時のような、カーソルが隠れていて欲しい時でも構わず表示され続ける。無視すればいいが鬱陶しい。
なので、この十字線を使って対処する方法はゲームをしない時のみに限る。
対象療法④:先にMicrosoft Remote Desktopで接続する(Steam Linkのみ)
若干の本末転倒感があるが、先にMicrosoft Remote Desktopで接続しておくとなぜか『リモート デスクトップ マウス デバイス』が残り続けマウスカーソルが表示される。
ゲームをする時、この方法が使えるならこれで良い。
ただしMicrosoft Remote Desktopはホスト側のWindowsがProエディションである必要がある。
そしてローカルネットワーク外(つまり外出先)からの接続はまぁまぁめんどい設定がいる。
なので状況を選ぶ。
まとめ
この問題には銀の弾丸が存在しないのでめんどい。
フルサイズのキーボードがあるならマウスキー有効化でもいけると思う。
Moonlightを使うのが許容できるなら、Moonlightを使うのがいいんじゃないかな〜と思います。