前置き
OpenDS を動かすときに、Thrustmasterのステアリングホイールで操作したかった。使ったのは手元にあった Ferrari GT Experience Racing Wheel(古い...)。
ドライバインストール
特に必要ないはず。Joystick And Gamepad Testerをいれて、動いているのを確認。加えて、どの操作がどのIDに対応しているかを確認することが出来ます。
OpenDS
起動からの流れはREADMEを読んで下さい。そのまま起動してTaskを選択するだけでは手元にあるステアリングホイールでは反応しないので設定が必要。デフォルトでは Logitech G27がサポートされているみたい。
joystickDump.txt を参照する
一回起動させると、OpenDS.jar と同じディレクトリに、以下のようなファイルが作成される。ジョイスティックデバイスを接続していない場合は作られないはず。
joystickDump.txt
Creation Date: 2017-02-10
Creation Time: 15:10:04
Joystick[0]:FGT Rumble 3-in-1
buttons:13
JoystickButton[name=0, parent=FGT Rumble 3-in-1, id=0, logicalId=0]
JoystickButton[name=1, parent=FGT Rumble 3-in-1, id=1, logicalId=1]
JoystickButton[name=2, parent=FGT Rumble 3-in-1, id=2, logicalId=2]
JoystickButton[name=3, parent=FGT Rumble 3-in-1, id=3, logicalId=3]
JoystickButton[name=4, parent=FGT Rumble 3-in-1, id=4, logicalId=4]
JoystickButton[name=5, parent=FGT Rumble 3-in-1, id=5, logicalId=5]
JoystickButton[name=6, parent=FGT Rumble 3-in-1, id=6, logicalId=6]
JoystickButton[name=7, parent=FGT Rumble 3-in-1, id=7, logicalId=7]
JoystickButton[name=8, parent=FGT Rumble 3-in-1, id=8, logicalId=8]
JoystickButton[name=9, parent=FGT Rumble 3-in-1, id=9, logicalId=9]
JoystickButton[name=10, parent=FGT Rumble 3-in-1, id=10, logicalId=10]
JoystickButton[name=11, parent=FGT Rumble 3-in-1, id=11, logicalId=11]
JoystickButton[name=12, parent=FGT Rumble 3-in-1, id=12, logicalId=12]
axes:6
JoystickAxis[name=pov, parent=FGT Rumble 3-in-1, id=0, logicalId=pov, isAnalog=false, isRelative=false, deadZone=0.0]
JoystickAxis[name=pov_x, parent=FGT Rumble 3-in-1, id=1, logicalId=pov_x, isAnalog=false, isRelative=false, deadZone=0.0]
JoystickAxis[name=pov_y, parent=FGT Rumble 3-in-1, id=2, logicalId=pov_y, isAnalog=false, isRelative=false, deadZone=0.0]
JoystickAxis[name=x, parent=FGT Rumble 3-in-1, id=3, logicalId=x, isAnalog=true, isRelative=false, deadZone=0.0]
JoystickAxis[name=y, parent=FGT Rumble 3-in-1, id=4, logicalId=y, isAnalog=true, isRelative=false, deadZone=0.0]
JoystickAxis[name=rz, parent=FGT Rumble 3-in-1, id=5, logicalId=rz, isAnalog=true, isRelative=false, deadZone=0.0]
settings.xml
この情報をもとに、settings.xmlを修正する。各DrivingTask毎に設定が必要なので注意が必要。Ferrari GT Experience Racing Wheelの場合は、以下のように設定したら動いた。とりあえずハンドルとアクセル・ブレーキのみ。
joystickDump.txt
の情報から、以下のようにアサインするよう、XMLを修正。
Joystick[0] : controllerID="0"
ステアリング : axisID="3"
アクセル : axisID="5"
ブレーキ : axisID="4"
修正したのはこちら。
settings.xml
<joystick>
<!-- Thrustmaster -->
<dumpJoystickList>true</dumpJoystickList>
<enableForceFeedback>true</enableForceFeedback>
<steering controllerID="0" axisID="3" invert="false" sensitivity="1.0"/>
<accelerator controllerID="0" axisID="5" invert="true" sensitivity="1.0"/>
<brake controllerID="0" axisID="4" invert="true" sensitivity="1.0"/>
</joystick>
結果
動いた。ボタンのアサインはまた今度。