XInput Plus‎ > ‎

XInput Plus:DirectInput出力機能について

  • はじめに
XBOX360コントローラはXInput形式・DirectInput形式の両方に対応しています。残念ながらDirectInput形式で使用する際にはいくつかの問題を持っています。(詳しくはこちら
    • LT/RTが同時に使えない
    • 振動機能に対応していない
XInput PlusのDirectInput出力機能では、XInput出力をDirectInput出力に変換して出力することでこの問題を解決します。

*現状DirectInput出力機能が対応しているのは、DirectInput5以降を使用しているアプリケーションのみです。
*DirectInputのすべての機能に対応していないため、うまく動作しないアプリケーションもあります。

  • DirectInput出力機能の使い方
XInput Plusの「DirectInput」タブで「DirectInput出力を有効にする」にチェックをします。

「基本設定」のサブタブ
  • 「キー割り当て」で右スティック・左右トリガー(LT/RT)・方向バッド・ガイドボタンをDirectInputのどのキーに割り当てるか指定します。
    • 左右トリガーの割り当て指定では、「反転」「+領域」「-領域」のオプションが指定可能です。「+領域」「-領域」を指定すると、トリガーの入力値は中心値より半分の領域に割り当てられます。DirectInputの値範囲が -10000~10000 の場合、「+領域」では出力値は 0~10000、「-領域」では出力値が0~-10000となります。
  • 「SHIFT」にボタンを指定すると、そのボタンはSHIFTボタンとして機能します。SHIFTボタンを押しながら他のボタンを押すと、割り当てられたボタン番号+17のボタンが出力されます。(SHIFT+Aボタンを押すとボタン18が出力されます)
  • DirectInputのフォースフィードバックによりコントローラを振動させる場合には、「フォースフィードバックエミュレーションを有効にする」にチェックをします。
「詳細設定」のサブタブ
  • 「デバイスID」ではコントローラー番号のデバイスIDを指定します。2つ以上のコントローラを使用する場合には、XInputでのコントローラ番号(1~4)が、DirectInputでのどのデバイスIDに対応するかを指定する必要があります。(コントローラを1つしか使用しない場合には設定不要です)。コントローラ1~4の「検出ボタン」を押して、コントーラのボタンを押すことでデバイスIDが指定されます。
XInput Plusの通常の設定に加え、上記設定を行うことで、XInput PlusのXInput出力がDirectInputに変換されて出力されます。
DirectInput出力機能を使用した場合、「Dinput8.dll」「Dinput.dll」が対象アプリケーションのフォルダにコピーされます。

  • 実際の動作
    • XInputの出力は、以下の表のようにDirectInput出力に変換されます。
 XInput出力DirectInput出力DirectInputオブジェクト名
 左スティックX軸/Y軸 X Axis(LS) / Y Axis(LS)
 右スティックX回転/Y回転 
Z軸/Z回転
*設定にて指定
 X Rot(RS) / Y Rot(RS)
 Z Axis(RS) / Z Rot(RS)
 左右トリガーZ軸/Z回転
スライダ1/スライダ2
ボタン11/ボタン12
ボタン12/ボタン13
*設定にて指定 
 Z Axis(LT) / Z Rot(RT)
 Slider1(LT) / Slider2(RT)
 Button11(LT) / Button12(RT)
 Button12(LT) / Button13(RT)
 方向パッドPOV1
ボタン13/14/15/16
ボタン14/15/16/17
*設定にて指定
 POV(DPAD)
 Button13(UP)/Button14(RIGHT)/Button15(DOWN)/Button16(LEFT)
 Button14(UP)/Button15(RIGHT)/Button16(DOWN)/Button17(LEFT)
 Aボタン ボタン1 Button1(A)
 Bボタン ボタン2 Button2(B)
 Xボタン ボタン3 Button3(X)
 Yボタン ボタン4 Button4(Y)
 LBボタン ボタン5 Button5(LB)
 RBボタン ボタン6 Button6(RB)
 BACKボタン ボタン7 Button7(BACK)
 STARTボタン ボタン8 Button8(START)
 右スティック押し込み ボタン9 Button9(LSB)
 左スティック押し込み ボタン10 Button10(RSB)
 ガイドボタン ボタン11
 ボタン13
 ボタン17
*設定にて指定
 Button11(Guide)
 Button13(Guide)
 Button17(Guide)
キーコンフィグでDirectInputのオブジェクト名が表示されるゲームでは、表のオブジェクト名が表示されます。

  • フォースフィードバックエミュレーションについて
DirectInputのフォースフィードバック機能は、元々ハンドルなどの反力等を再現するもので、単純な振動機能ではありません。
フォースフィードバックエミュレーション機能では、フォースフィードバックの以下の要素を元に、コントローラを振動させています。
  • コンスタントフォース
  • ランプフォース
  • 周期フォース
これらのフォースを強さを合計し、コントローラの左右振動モータに振り分けて振動をさせています。

  • XInput Plusの他の設定との関連
DirectInput出力機能では、XInput Plusの他の設定(キー割り当てなど)が適用された最終的なXInput出力をDirectInputに変換して出力します。
キー割り当て設定にて方向パッドで左スティックを操作するように指定していた場合、DirectInputでは方向パッドの入力がX軸/Y軸として出力されることになります。
        

Comments