タイトルの通り、ついさっき何とかする必要があってネットで調べたやり方で出来たのでメモを残しておく。
自分のような、カメラリバースじゃないと吐いて死ぬ民にとっては死活問題なので解決できてよかった。
前提
OSはWindowsよ
コントローラーはDS4よ
ジャンルはイレギュラージェントステップよ
・レベル1 DS4Windowsだけで何とかなるパターン
Androidエミュ勢にとっては必須?アプリのDS4Windowsを普通に使うだけのパターン。
ソフト起動して右スティックの上下左右をそれぞれ逆にアサインするだけ。
Androidエミュはもちろん、大体のゲームはこれでいける。MuMuは軸反転があるのでそもそもいらないけど。
ちなみにDS4のイヤホンジャックを使う場合なんだけど、DS4WindowsのStart/Stop切り替えを行うとなぜか音声が切れる。この場合タスクバーから音量調整を出してボリュームを動かすと、ボリュームを変更した時のシステム音とともに音が復活する。これイマイチ原因というか何故こうなるのかの原理が分かっていなくて、有識者いたらコメントください。多分いない。
カメラリバースのあるゲームとないゲームをやる場合は当然ながらStart/Stopの切り替えが必要だけど仕方ない。
・レベル2 Steam登録(+DS4Windows)
ゲーム側でDS4を認識して独自にキーアサインをする仕様になっている場合、Steamの「非Steamゲームを登録」でパスできることがある。
Steamは登録した各ゲームに対してコントローラーの設定ができて、その中にスティック軸反転の項目があるのでそれを利用すればよい。
右スティック以外のアサインも弄れたりする。
Steamを良く使う人はこれで全部管理してしまうのも手。
・レベル3 DS4Windows+HidHide
上のやり方でも上手くいったりいかなかったりがある場合。今回このエントリを書くに至った理由です。
実はDS4Windows、XInputの仮想コントローラーを新たに作成するだけで、別にDS4コントローラーが接続されているという情報を消すわけではないんですよね。つまり、システム側から見るとコントローラーは2つ同時に接続されていることになっていて、要はこれが問題なんだと。おそらく、ゲーム側がDS4の方の接続を認識してしまうとそれに合わせた独自のキーアサインが有効になってしまうのではないかなと思ってます。初めから動かないか、途中で勝手に切り替わるか、などはゲームの処理によるかと。
今日とあるゲームをレベル2の構成でやってたらゲーム内のコントローラーのボタン表示がABXYと⚪︎×△□を行ったり来たりしてて、後者の時だけカメラリバース設定がいちいち無効になってそれが余りにも鬱陶しいので調べたらこの二重コントローラー問題について知ったというわけ。
ということでレベル3設定は「特定のアプリケーションからはコントローラーが1つしか見えないように"隠し"たろ」というもの。HidHideはそのためのソフト。
HidHide導入してDS4を隠す設定にしたあと、DS4Windowsをホワイトリストに入れておけばDS4Windowsを機能させながら他のアプリケーションからはDS4の元の接続が見えない状態にすることが可能。
ちなみにDS4Windowsにも「Hide DS4」という機能があるけど、DS4をハンドルしてるアプリケーションが起動しているとエラーを吐いたり色々使いにくいのでおすすめしません。