いつもはある程度成果が上がってから記事にまとめるのですが,今回の件は 長引いててまとめないと先に進めそうにないので連載的に書き始めることにします. ちゃんと着地できるかどうか不安ですが…
何の話かというと,要約すると「Win8.1(64bit)で仮想ジョイスティックドライバがうまく動かない」というお話.
フライトシューティングとかのゲームはフライトスティックで遊ぶのが楽しいですよね.
私はSaitekのX52-Pro(フライトスティック左上画像)と,Rudder Pedals(ラダーペダル右上画像)を使っています.
このフライトスティックはいわゆる”捻りラダー”が使えるのですが,これとラダーペダルを組み合わせて使うにはゲーム側が対応している必要があります.フライトスティックもラダーペダルも独立したジョイスティックとして認識されるためです.
ゲーム側が単一のジョイスティックにしか対応していない場合,フライトスティックの軸と ラダーペダルの軸を組み合わせて使うには一工夫する必要があります.
# この手のお話,驚くほど日本語の情報がない…
ここで利用するのがvJoyというソフトフェアです.
これはOSに仮想ジョイスティックを作成するドライバです.この仮想ジョイスティックそのものはそのままでは何ら入力情報を返しませんが,専用のAPIを使って入力状態を設定することができます.
要するに実際の(物理的な)ジョイスティックからの入力状態を,この仮想ジョイスティックに マッピングすればフライトスティックとラダーペダルの入力を一つのジョイスティックとして ゲーム側に認識させることができると言うことです(下図).
この仮想ジョイスティックに実際のジョイスティックの入力をマッピングするにはAPIを 直接たたく方法もありますがUJR(Universal Joystick Remapper)という専用のソフトウェアがあります.これはAutoHotkey(AHK)という入力マクロをつくるスクリプト環境のアプリケーションです.
さて,ここまでの説明で登場したソフトウェアを整理しておきましょう.
- vJoy
- 仮想ジョイスティックドライバ
- UJR
- vJoyの仮想ジョイスティックに実ジョイスティックの入力をマッピングするソフトウェア
- AutoHotkey
- 入力マクロを作成するためのスクリプト環境
この組み合わせWindows7(64bit)環境では何の問題もなく動作していたのですが, Win8.1(64bit)ではうまく動作しませんでした.
# 同じ環境だけど動いてるよ,という方がいたら教えていただけるとありがたいです.
具体的には軸の情報は取得できるのにPOVキーやボタンの入力情報が読み込めない, という状態です.
これらのソフトウェアですが,いずれもオープンソースなので自分でビルドして原因究明してみることにしました.
続きます.