こういう状況。
- Switch系コントローラーがある(PCとの接続はXInput)
- BlueStacksのキーマッピングがXbox系ボタンで定義されているのをそのまま使いたい
後者は俺特有の問題。
複数PCにブルスタが入って、それぞれにコントローラーが接続されていて
Xbox配列でキーマッピングが定義されているのを同期しているので
1つSwitch系に変更すると全部に影響が出る。
なんとかならないのかと頑張ってみたらなんとかなった。
何が問題かというと、A <-> B、X <-> Y のボタンが逆。
問題はこれだけなんだよ。
一瞬JoyToKeyが頭を過ったけど、あんまりスマートじゃない。
そして思い出した。
XInput Plusがあるじゃないか。
XInputのコントローラーの動作を色々カスタマイズできる高機能ツールだ。
過去何回か挑戦して、その度に挫折したような気がするのは気のせい。
俺がやりたいのはA-B、X-Yのボタンの入れ替えだけ。
ちょいちょいとイジれば行けそうな気がしてきた!
前述のリンク先からXInput Plusをダウンロードする。
んで解凍。
話は逸れるけど、こういうインストーラーが無いアプリって みんな何処に置いて管理しているんだろう。
Program Filesに入れるのもなんか違う気がするし。
俺は大昔からの慣習でDドライブ(無ければCドライブ)にAppzってフォルダを作って
放り込むことにしている。
解凍したフォルダを任意の場所に移動するなり そのままにするなりご自由にw
フォルダの中にあるXInputPlus.exeをダブルクリックして開きましょう。
既にボタンを入れ替えできるような雰囲気の画面になっているw
まずはどの実行ファイルに対してこの設定を反映するのかを指定する必要がある。
選択ボタンをクリックするとファイルを指定するダイアログが表示される。
BlueStacksの場合、インスタンス(ゲームのウィンドウ)は
C:\Program Files\BlueStacks_nxt\HD-Player.exe
コイツ。
次はボタンの定義。
念のためテストをしましょう。
全体テストをクリックする。
ここで、コントローラーのBボタンを押して、緑のボタンに赤丸が出ればOK。
同様にAボタン、Xボタン、Yボタンもチェック。
押したボタンの位置に赤丸が出るはず。
OKボタンをクリックして閉じる。
で、適用ボタンをクリックする。
確認のダイアログが出るのでOKボタンをクリックする。
上手くいけば 適用に成功 というダイアログが出る。
ここでエラーになった場合は、権限が無くてProgram Filesに書き込めない系なことが多いので
1回XInput Plusを終了して、XInputPlus.exeを右クリックして管理者として実行をクリックして開きましょう。
あとは一緒。
成功すると
C:\Program Files\BlueStacks_nxt
にファイルが追加される。
設定を保存しておきたい場合は右上の≡をクリックして設定を保存、または設定をファイルに保存
しておけばOKでしょう。
これで起動した時に自動的に読み込まれて正しく
動 か な い。
ナンデヤネン。
(調査タイム)
なるほど。単体でやってもダメなのか。
Loaderを使って無理矢理反映させる必要があるそうだ。
XInputPlusのフォルダの中にLoaderというフォルダがあるので、
XInputPlusLoader.exeをダブルクリックして起動。
Loaderのウィンドウが出てくるので、子プロセスも対象とするにチェックを入れて
C:\Program Files\BlueStacks_nxt
にあるHD-MultiInstanceManager.exe
を
このウィンドウにドラッグアンドドロップする。
そうするとブルスタのマルチインスタンスマネージャーが起動する。
その後はいつものようにインスタンスの開始ボタンをクリックして起動する。
ボタンを押した直後に「ポーン」と音が出れば成功。
ちゃんと動くはず!
しかしブルスタを立ち上げる時に毎回Loaderを開いて、HD-MultiInstanceManager.exe
をDnDして
なんて面倒でやってられない。
Loaderに
ショートカット作成の選択ができるので、こっちをONにして
HD-MultiInstanceManager.exe
をDnDすれば、デスクトップにショートカットが作成される。
これをダブルクリックすれば
( ゚д゚ )・・・・
あかんやん!
あと一歩なんだよ。
なんだってこんな変なのに遭遇しなきゃならんのだ。
よく見ると、なんか格好悪いエラーだ。
ショートカットの中を見ると
~~\XInputPlusLoader.exe /C "C:\Program Files\BlueStacks_nxt\HD-MultiInstanceManager.exe"
になっている。
ダイアログの内容からして /C というオプションが無いのかどうなのかはわからない。
試しに/Cを消してみると、普通にマルチインスタンスマネージャーが起動した。
でもインスタンスを開始しても「ポーン」は鳴らないし、コントローラーのA-B、X-Yも逆のまま。
/C
は子プロセスの設定っぽいのでChildのCか。
オプションが間違っていた場合は詰むなぁ・・・。
もしかしてオプションを無視して 第1引数を実行ファイルのパスとして読んで失敗してたりして。
~~\XInputPlusLoader.exe "C:\Program Files\BlueStacks_nxt\HD-MultiInstanceManager.exe" /C
にしてみたら動いたw
というわけで、無事にこのショートカットをランチャーに登録して一件落着。