Windows 上の XUSB ドライバーは、XINPUT DLL のカーネル モード インターフェイスを実装します。 共通のコントローラー デバイスで DirectInput API を使用するレガシ タイトルに優れたエクスペリエンスを提供するために、ドライバーは DirectInput によって取得されるヒューマン インターフェイス デバイス (HID) クラス インターフェイスもエクスポートします。 元の XINPUT バージョンのゲーム アプリケーションのセットでの一般的な動作に基づいて XUSB から HID へのマッピングを選択し、新しいサブタイプのマッピングを更新しました。 このトピックでは、マッピングについて説明します。
ヒューマン インターフェイス デバイス (HID)
HID 標準は、入力デバイスのプロトコルを一般化するために Microsoft によってもともと提案されたユニバーサル シリアル バス (USB) 委員会の標準です。 これはバイトコード記述言語で構成され、ゲームパッド、マウス、ジョイスティック、スロットルおよびラダー コントロール、および多軸コントローラーを表現できます。 この標準は一般化されているため、任意のデバイスからの入力を消費するソフトウェアを記述するのが難しい場合があります。 そのため、ゲーム中心の DirectInput API では、ドライバーを通じてハードウェアの製造元がサポートするように、特定のサブマッピングの種類を開発しました。
- HID v1.11 の USB デバイス クラス定義の
大事な
また、RawInput API を介して HID 入力デバイスにアクセスし、低レベル HID API を介して入力レポートを処理することもできますが、振動フィードバックは DirectInput と同様に機能しません。
マッピング
XUSB ドライバーは、XINPUT と DirectInput の両方の使用をサポートするために、デバイスの XUSB クラス インターフェイスと HID クラス インターフェイスの両方 実装します。 このマッピングは、XUSB サブタイプ情報に基づいています。 ドライバーは、マッピングの 4 つの異なるグループを実装します。
XUSB サブタイプ | マッピング |
---|---|
XINPUT_DEVSUBTYPE_GAMEPAD (サブタイプ 1) | ゲームパッド |
XINPUT_DEVSUBTYPE_WHEEL (サブタイプ 2) | 輪 |
XINPUT_DEVSUBTYPE_ARCADE_STICK (サブタイプ 3) | アーケード スティック/アーケード パッド |
XINPUT_DEVSUBTYPE_FLIGHT_STICK (サブタイプ 4) | フライト スティック |
XINPUT_DEVSUBTYPE_DANCE_PAD (サブタイプ 5) | 新しいサブタイプの既定値 |
XINPUT_DEVSUBTYPE_GUITAR (サブタイプ 6) | ギター |
XINPUT_DEVSUBTYPE_GUITAR_ALTERNATE (サブタイプ 7) | |
XINPUT_DEVSUBTYPE_DRUM_KIT (サブタイプ 8) | |
XINPUT_DEVSUBTYPE_GUITAR_BASS (サブタイプ 11) | |
XINPUT_DEVSUBTYPE_ARCADE_PAD (サブタイプ 19) |
手記
次の HID マッピングは静的です。 つまり、デバイス機能レポートで特定のボタンまたは軸がサポートされていないことが示された場合でも、マッピングには引き続き含まれますが、常にオフ状態または中央の値が報告されます。
ゲームパッド
これは既定のマッピングであり、標準のゲームパッドを中心に設計されており、HID の使用の種類 ゲームパッドとして公開されます。
コントロール | HID 使用法名 | [使用状況] ページ | 使用状況 ID |
---|---|---|---|
左スティック | X、Y | 0x01 | 0x30、0x31 |
右スティック | Rx、Ry | 0x01 | 0x33、0x34 |
左トリガー + 右トリガー | Z* | 0x01 | 0x32 |
D-Pad Up、Down、Left、Right | Hat Switch | 0x01 | 0x39 |
ある | ボタン 1 | 0x09 | 0x01 |
B | ボタン 2 | 0x09 | 0x02 |
X | ボタン 3 | 0x09 | 0x03 |
Y | ボタン 4 | 0x09 | 0x04 |
LB (左バンパー) | ボタン 5 | 0x09 | 0x05 |
RB (右バンパー) | ボタン 6 | 0x09 | 0x06 |
戻る | ボタン 7 | 0x09 | 0x07 |
始める | ボタン 8 | 0x09 | 0x08 |
LSB (左スティック ボタン) | ボタン 9 | 0x09 | 0x09 |
RSB (右スティック ボタン) | ボタン 10 | 0x09 | 0x0A |
手記
(*):これは、Zが回転のためにほとんどのタイトルで期待される中心動作を示すよう組み合わされています。これは、DirectInput と HID を使用して、すべてのトリガーの組み合わせ値 表示できないことを意味します。
アーケード スティック/アーケード パッド
これはアーケード スティック コントローラーを中心に設計されたマッピングであり、HID 使用法の種類 ゲームパッドとして公開されます。 アーケードパッドはアーケードスティックに非常に似ていますが、小さなフォームファクターです。 これらの設計は、アナログ左トリガーと右トリガーを、最小および最大軸値を報告するデジタルボタンに置き換えます。
コントロール | HID 使用法名 | [使用状況] ページ | 使用状況 ID |
---|---|---|---|
D-Pad Up、Down、Left、Right | Hat Switch | 0x01 | 0x39 |
ある | ボタン 1 | 0x09 | 0x01 |
B | ボタン 2 | 0x09 | 0x02 |
X | ボタン 3 | 0x09 | 0x03 |
Y | ボタン 4 | 0x09 | 0x04 |
LB (左バンパー) | ボタン 5 | 0x09 | 0x05 |
RB (右バンパー) | ボタン 6 | 0x09 | 0x06 |
戻る | ボタン 7 | 0x09 | 0x07 |
始める | ボタン 8 | 0x09 | 0x08 |
左トリガー | ボタン 9 | 0x09 | 0x09 |
右トリガー | ボタン 10 | 0x09 | 0x0A |
これらのデバイスは、追加のコントロールをサポートする場合とサポートしていない場合がありますが、HID マッピングによって公開されません:左スティック、右スティック、LSB (左スティック ボタン)、RSB (右スティック ボタン)。
輪
このマッピングはレーシング ホイールを中心に設計されており、HID 使用法の種類 ゲームパッドとして公開されます。
コントロール | HID 使用法名 | [使用状況] ページ | 使用状況 ID |
---|---|---|---|
ホイール(左スティックX) | X | 0x01 | 0x30 |
アクセラレータペダル(右トリガー) + ブレーキペダル(左トリガー) | Z* | 0x01 | 0x32 |
D-Pad Up、Down、Left、Right | Hat Switch | 0x01 | 0x39 |
ある | ボタン 1 | 0x09 | 0x01 |
B | ボタン 2 | 0x09 | 0x02 |
X | ボタン 3 | 0x09 | 0x03 |
Y | ボタン 4 | 0x09 | 0x04 |
LB (左バンパー) | ボタン 5 | 0x09 | 0x05 |
RB (右バンパー) | ボタン 6 | 0x09 | 0x06 |
LSB (左スティック ボタン) | ボタン 7 | 0x09 | 0x07 |
RSB (右スティック ボタン) | ボタン 8 | 0x09 | 0x08 |
戻る | ボタン 9 | 0x09 | 0x09 |
始める | ボタン 10 | 0x09 | 0x0A |
手記
(*): これは、Zがブレーキおよびアクセラレータ制御のほとんどのタイトルで期待される中心動作を示す目的で組み合わされています。これは、DirectInput を介して可能なすべてのペダルの組み合わせ値表示できないことを意味します。
フライト スティック
このマッピングはフライト スティックを中心に設計されており、HID 使用法の種類 ジョイスティックとして公開されます。
コントロール | 使用法名 | [使用状況] ページ | 使用状況 ID |
---|---|---|---|
フライト スティック (左スティック) | X、Y | 0x01 | 0x30、0x31 |
POVハット(右スティック) | Rx、Ry | 0x01 | 0x33、0x34 |
スロットル (右トリガー) | Z | 0x01 | 0x32 |
ラダー (左トリガー) | Rz | 0x01 | 0x35 |
D-Pad Up、Down、Left、Right | Hat Switch | 0x01 | 0x39 |
主武器 (A) | ボタン 1 | 0x09 | 0x01 |
セカンダリ武器 (B) | ボタン 2 | 0x09 | 0x02 |
X | ボタン 3 | 0x09 | 0x03 |
Y | ボタン 4 | 0x09 | 0x04 |
LB (左バンパー) | ボタン 5 | 0x09 | 0x05 |
RB (右バンパー) | ボタン 6 | 0x09 | 0x06 |
戻る | ボタン 7 | 0x09 | 0x07 |
始める | ボタン 8 | 0x09 | 0x08 |
LSB (左スティック ボタン) | ボタン 9 | 0x09 | 0x09 |
RSB (右スティック ボタン) | ボタン 10 | 0x09 | 0x0A |
手記
これは最終的なフライトスティックのデザインに基づいています。 これは初期のフライト スティック定義とは異なるため、多くのデバイスには、古いモデルと新しいモデルをサポートするモード スイッチがあります。 このマッピングは、新しいモデルを前提としています。