ゲーム コントローラーのレジストリ データ
注意
このトピックは、Windows 10 互換のゲーム コントローラーの製造元向けです。開発者の大部分には適用されません。
Windows.Gaming.Input 名前空間を使うと、独立系ハードウェア ベンダー (IHV) は、PC のレジストリにデータを追加して、デバイスが Gamepads、RacingWheels、ArcadeSticks、FlightSticks、UINavigationControllers として表示されるようにできます。 互換性のあるコントローラー用にこのデータを追加することを、すべての IHV に推奨します。 これにより、すべての UWP ゲーム (および WinRT API を使用するすべてのデスクトップ ゲーム) でゲーム コントローラーをサポートできます。
マッピング スキーム
デバイスのマッピングとして、ベンダー ID (VID) VVVV、製品 ID (PID) PPPP、使用ページ UUUU、使用 ID XXXX が、レジストリのこの場所から読み込まれます。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\VVVVPPPPUUUUXXXX
次の表は、デバイスのルートの場所で予期される値を示します。
Name | Type | 必須 | Info |
---|---|---|---|
無効 | DWORD | No |
この特定のデバイスを無効にする必要があることを示します。
|
説明 | REG_SZ | No | デバイスの簡単な説明です。 |
デバイスのインストーラーが (セットアップ、または INF ファイルによって) このデータをレジストリに追加する必要があります。
デバイスのルートの場所の下のサブキーは、次のセクションで詳しく説明します。
ゲームパッド
次の表は Gamepad サブキーの下の必須およびオプションのサブキーを示します。
サブキー | 必須 | Info |
---|---|---|
メニュー | はい | 「ボタンのマッピング」をご覧ください |
表示 | はい | |
A | はい | |
B | はい | |
X | はい | |
Y | はい | |
LeftShoulder | はい | |
RightShoulder | はい | |
LeftThumbstickButton | はい | |
RightThumbstickButton | はい | |
DPadUp | はい | |
DPadDown | はい | |
DPadLeft | はい | |
DPadRight | はい | |
Paddle1 | No | |
Paddle2 | No | |
Paddle3 | No | |
Paddle4 | No | |
LeftTrigger | はい | 「軸のマッピング」をご覧ください |
RightTrigger | はい | |
LeftThumbstickX | はい | |
LeftThumbstickY | はい | |
RightThumbstickX | はい | |
RightThumbstickY | はい |
注意
サポートされる Gamepad として、ゲーム コントローラーを追加する場合には、サポートされる UINavigationController としても、ゲーム コントローラーを追加することを強く推奨します。
RacingWheel
次の表は RacingWheel サブキーの下の必須およびオプションのサブキーを示します。
サブキー | 必須 | Info |
---|---|---|
PreviousGear | はい | 「ボタンのマッピング」をご覧ください |
NextGear | はい | |
DPadUp | No | |
DPadDown | No | |
DPadLeft | No | |
DPadRight | No | |
ボタン 1 | No | |
Button2 | No | |
Button3 | No | |
Button4 | No | |
Button5 | No | |
Button6 | No | |
Button7 | No | |
Button8 | No | |
Button9 | No | |
Button10 | No | |
Button11 | No | |
Button12 | No | |
Button13 | No | |
Button14 | No | |
Button15 | No | |
Button16 | No | |
FirstGear | No | |
SecondGear | No | |
ThirdGear | No | |
FourthGear | No | |
FifthGear | No | |
SixthGear | No | |
SeventhGear | No | |
ReverseGear | No | |
Wheel | はい | 「軸のマッピング」をご覧ください |
スロットル | はい | |
Brake | はい | |
Clutch | No | |
Handbrake | No | |
MaxWheelAngle | はい | 「プロパティ マッピング」をご覧ください |
ArcadeStick
次の表は ArcadeStick サブキーの下の必須およびオプションのサブキーを示します。
サブキー | 必須 | Info |
---|---|---|
Action1 | はい | 「ボタンのマッピング」をご覧ください |
Action2 | はい | |
Action3 | はい | |
Action4 | はい | |
Action5 | はい | |
Action6 | はい | |
Special1 | はい | |
Special2 | はい | |
StickUp | はい | |
StickDown | はい | |
StickLeft | はい | |
StickRight | はい |
FlightStick
次の表は FlightStick サブキーの下の必須およびオプションのサブキーを示します。
サブキー | 必須 | Info |
---|---|---|
FirePrimary | はい | 「ボタンのマッピング」をご覧ください |
FireSecondary | はい | |
Roll | はい | 「軸のマッピング」をご覧ください |
[Pitch] (傾斜) | はい | |
Yaw | はい | |
スロットル | はい | |
HatSwitch | はい | 「スイッチのマッピング」をご覧ください |
UINavigation
次の表は UINavigation サブキーの下の必須およびオプションのサブキーを示します。
サブキー | 必須 | Info |
---|---|---|
メニュー | はい | 「ボタンのマッピング」をご覧ください |
表示 | はい | |
承諾 | はい | |
キャンセル | はい | |
PrimaryUp | はい | |
PrimaryDown | はい | |
PrimaryLeft | はい | |
PrimaryRight | はい | |
Context1 | No | |
Context2 | No | |
Context3 | No | |
Context4 | No | |
PageUp | No | |
PageDown | No | |
PageLeft | No | |
PageRight | No | |
ScrollUp | No | |
ScrollDown | No | |
ScrollLeft | No | |
ScrollRight | No | |
SecondaryUp | No | |
SecondaryDown | No | |
SecondaryLeft | No | |
SecondaryRight | No |
UI ナビゲーション コントローラーと上記のコマンドについて詳しくは、「UI ナビゲーション コントローラー」をご覧ください。
[キー]
次のセクションでは、Gamepad、RacingWheel、ArcadeStick、FlightStick、UINavigation キーの下のサブキーのそれぞれのコンテンツについて説明します。
ボタンのマッピング
次の表は、ボタンのマッピングに必要な値を示します。 たとえば、ゲーム コントローラーの DPadUp キーを押すと、DPadUp のマッピングには ButtonIndex 値が含まれます (Source は Button です)。 DPadUp がスイッチの位置からマッピングされる必要がある場合は、DPadUp マッピングには SwitchIndex と SwitchPosition の値が含まれます (Source は Switch です)。
ソース | 値の名前 | 値の型 | 必須 | 値の情報 |
---|---|---|---|---|
Button | ButtonIndex | DWORD | はい | RawGameController ボタンの配列のインデックス。 |
軸 | AxisIndex | DWORD | はい | RawGameController 軸の配列のインデックス。 |
Invert | DWORD | No | ThresholdPercent と DebouncePercent 要素を適用する前に、軸の値を反転する必要があることを示します。 | |
ThresholdPercent | DWORD | はい | マッピングされたボタンの値の (押した状態と離した状態の間の) 遷移の軸の位置を示します。 有効な値の範囲は 0 から 100 です。 軸の値がこの値以上の場合、ボタンが押されたと見なされます。 | |
DebouncePercent | DWORD | はい |
ThresholdPercent 値の周囲のウィンドウのサイズを定義します。報告されたボタンの状態をデバウンスするために使用されます。 有効な値の範囲は 0 から 100 です。 ボタンの状態の遷移は、軸の値がデバウンス ウィンドウの上限または下限を超えたときにのみ発生します。 たとえば、ThresholdPercent が 50 で、DebouncePercent が 10 の場合には、デバウンスの下限と上限は、全範囲の軸の値で 45% と 55% となります。 軸の値が 55% 以上に達すると、ボタンは押された状態に遷移し、軸の値が 45% 以下に達すると、ボタンはリリースされた状態に戻ります。 計算されるデバウンス ウィンドウの境界は 0% ~ 100% の間でクランプされます。 たとえば、しきい値が 5% で、デバウンス ウィンドウが 20% の場合、デバウンス ウィンドウの境界は 0% と 15% となります。 しきい値とデバウンスの値にかかわらず、軸の値が 0% ~ 100% にあるボタンの状態は常に、押されるか、または離されるかとして報告されます。 |
|
Switch | SwitchIndex | DWORD | はい | RawGameController スイッチの配列のインデックス。 |
SwitchPosition | REG_SZ | はい |
マッピングされたボタンが押されたことを報告するスイッチの位置を示します。 位置の値には、次の文字列のいずれかを指定できます。
|
|
IncludeAdjacent | DWORD | No | 隣接するスイッチの位置も、マッピングされたボタンが押されたことを報告することを示します。 |
軸のマッピング
次の表は、軸のマッピングに必要な値を示します。
ソース | 値の名前 | 値の型 | 必須 | 値の情報 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Button | MaxValueButtonIndex | DWORD | はい |
マッピングされた一方向の軸の値に変換される、RawGameController ボタンの配列のインデックス。
|
|||||||||||||||
MinValueButtonIndex | DWORD | No |
マッピングされた軸が双方向であることを示します。 MaxButton と MinButton の値は結合され、次に示すように 1 つの双方向の軸となります。
|
||||||||||||||||
軸 | AxisIndex | DWORD | はい | RawGameController 軸の配列のインデックス。 | |||||||||||||||
Invert | DWORD | No | マッピングされた軸の値を返す前に反転するかどうかを示します。 | ||||||||||||||||
Switch | SwitchIndex | DWORD | はい | RawGameController スイッチの配列のインデックス。 | |||||||||||||||
MaxValueSwitchPosition | REG_SZ | はい |
次の文字列のいずれかです。
マッピングされた軸の値が 1.0 として報告されるスイッチの位置を示します。 反対方向の MaxValueSwitchPosition は 0.0 と見なされます。 たとえば、MaxValueSwitchPosition が Up の場合、軸の値は次を意味します。
|
||||||||||||||||
IncludeAdjacent | DWORD | No |
隣接するスイッチの位置も、マッピングされた軸が 1.0 を報告することを示します。 上記の例では、IncludeAdjacent が設定されている場合、軸は次のようになります。
|
スイッチのマッピング
スイッチの位置は、RawGameController のボタンの配列のボタンのセットから、またはスイッチの配列のインデックスからマッピングされます。 軸からスイッチの位置をマッピングすることはできません。
ソース | 値の名前 | 値の型 | 値の情報 | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Button | ButtonCount | DWORD | 2、4、または 8 | ||||||||||||||||||||||||||
SwitchKind | REG_SZ | TwoWay、FourWay、またはEightWay | |||||||||||||||||||||||||||
UpButtonIndex | DWORD | 「*ButtonIndex の値」をご覧ください | |||||||||||||||||||||||||||
DownButtonIndex | DWORD | ||||||||||||||||||||||||||||
LeftButtonIndex | DWORD | ||||||||||||||||||||||||||||
RightButtonIndex | DWORD | ||||||||||||||||||||||||||||
UpRightButtonIndex | DWORD | ||||||||||||||||||||||||||||
DownRightButtonIndex | DWORD | ||||||||||||||||||||||||||||
DownLeftButtonIndex | DWORD | ||||||||||||||||||||||||||||
UpLeftButtonIndex | DWORD | ||||||||||||||||||||||||||||
軸 | SwitchKind | REG_SZ | TwoWay、FourWay、またはEightWay | ||||||||||||||||||||||||||
XAxisIndex | DWORD | YAxisIndex は常に存在します。 XAxisIndex は、SwitchKind が FourWay または EightWay の場合のみ存在します。 | |||||||||||||||||||||||||||
YAxisIndex | DWORD | ||||||||||||||||||||||||||||
XDeadZonePercent | DWORD | 軸の中央位置の周囲のデッド ゾーンのサイズを示します。 | |||||||||||||||||||||||||||
YDeadZonePercent | DWORD | ||||||||||||||||||||||||||||
XDebouncePercent | DWORD | デッド ゾーンの上限と下限の周囲のウィンドウのサイズを定義します。これは報告されたスイッチの状態のデバウンスに使用されます。 | |||||||||||||||||||||||||||
YDebouncePercent | DWORD | ||||||||||||||||||||||||||||
XInvert | DWORD | デッド ゾーンとデバウンス ウィンドウの計算を適用する前に、対応する軸の値を反転する必要があることを示します。 | |||||||||||||||||||||||||||
YInvert | DWORD | ||||||||||||||||||||||||||||
Switch | SwitchIndex | DWORD | RawGameController スイッチの配列のインデックス。 | ||||||||||||||||||||||||||
Invert | DWORD | スイッチが位置を、既定の時計回りの順序ではなく、反時計回りの順序で報告することを示します。 | |||||||||||||||||||||||||||
PositionBias | DWORD |
位置の報告の開始点を指定した量だけ移動します。 PositionBias は常に元の開始点から時計回りにカウントされます。値の順序が反転される前に適用されます。 たとえば、DownRightで始まる位置を反時計回りの順序で報告するスイッチは、Invert フラグを設定して、PositionBias を 5 と設定することによって正規化されます。
|
*ButtonIndex の値
RawGameController のボタンの配列への *ButtonIndex の値のインデックス:
ButtonCount | SwitchKind | RequiredMappings |
---|---|---|
2 | TwoWay |
|
4 | FourWay |
|
4 | EightWay |
|
8 | EightWay |
|
プロパティ マッピング
これらは、別のマッピングの種類の、静的マッピング値です。
マッピング | 値の名前 | 値の型 | 値の情報 |
---|---|---|---|
RacingWheel | MaxWheelAngle | DWORD | ホイールでサポートされている、単一方向の物理ホイールの最大角度を示します。 たとえば、-90 度から 90 度まで回転できるホイールでは、90 を指定します。 |
ラベル
ラベルは、デバイス ルートの下の Labels キーの下に存在する必要があります。 Labels は 3 つのサブキー: Buttons、Axes、Switches を持つことができます。
ボタンのラベル
Buttons キーは、RawGameController のボタンの配列の各ボタンの位置を文字列にマッピングします。 各文字列は、対応する GameControllerButtonLabel 列挙値に内部的にマッピングされます。 たとえば、ゲームパッドに 10 個のボタンと、RawGameController がボタンを解析してボタンを表示する順序がある場合、レポートは次のようになります。
Menu, // Index 0
View, // Index 1
LeftStickButton, // Index 2
RightStickButton, // Index 3
LetterA, // Index 4
LetterB, // Index 5
LetterX, // Index 6
LetterY, // Index 7
LeftBumper, // Index 8
RightBumper // Index 9
ラベルは Buttons キーの下にこの順序で表示されます。
名前 | 値 (種類: REG_SZ) |
---|---|
Button0 | メニュー |
ボタン 1 | 表示 |
Button2 | LeftStickButton |
Button3 | RightStickButton |
Button4 | LetterA |
Button5 | LetterB |
Button6 | LetterX |
Button7 | LetterY |
Button8 | LeftBumper |
Button9 | RightBumper |
軸ラベル
Axes キーは、RawGameController の軸の配列の各軸の位置を、ボタンのラベルのように、GameControllerButtonLabel Enum に一覧表示されたラベルの 1 つにマッピングします。 「ボタンのラベル」の例をご覧ください。
スイッチのラベル
Switches キーはスイッチの位置をラベルにマッピングします。 値は次の名前付け規則に従います: インデックスが RawGameController のスイッチの配列の xであるスイッチの位置にラベルを付けるには、次の値を Switches サブキーの下に追加します。
- SwitchxUp
- SwitchxUpRight
- SwitchxRight
- SwitchxDownRight
- SwitchxDown
- SwitchxDownLeft
- SwitchxUpLeft
- SwitchxLeft
次の表は、4 方向スイッチの位置が RawGameController でインデックス 0 を示しているスイッチにラベルを付ける例を示しています。
名前 | 値 (種類: REG_SZ) |
---|---|
Switch0Up | XboxUp |
Switch0Right | XboxRight |
Switch0Down | XboxDown |
Switch0Left | XboxLeft |
レジストリ ファイルの例
これらのマッピングと値のすべての例を示すため、汎用の RacingWheel のレジストリ ファイルを示す次の例をご覧ください。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004]
"Description" = "Example Wheel Device"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\Labels\Buttons]
"Button0" = "LetterA"
"Button1" = "LetterB"
"Button2" = "LetterX"
"Button3" = "LetterY"
"Button6" = "Menu"
"Button7" = "View"
"Button8" = "RightStickButton"
"Button9" = "LeftStickButton"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\Labels\Switches]
"Switch0Down" = "Down"
"Switch0Left" = "Left"
"Switch0Right" = "Right"
"Switch0Up" = "Up"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel]
"MaxWheelAngle" = dword:000001c2
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Brake]
"AxisIndex" = dword:00000002
"Invert" = dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Button1]
"ButtonIndex" = dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Button2]
"ButtonIndex" = dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Button3]
"ButtonIndex" = dword:00000002
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Button4]
"ButtonIndex" = dword:00000003
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Button5]
"ButtonIndex" = dword:00000009
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Button6]
"ButtonIndex" = dword:00000008
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Button7]
"ButtonIndex" = dword:00000007
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Button8]
"ButtonIndex" = dword:00000006
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Clutch]
"AxisIndex" = dword:00000003
"Invert" = dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\DPadDown]
"IncludeAdjacent" = dword:00000001
"SwitchIndex" = dword:00000000
"SwitchPosition" = "Down"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\DPadLeft]
"IncludeAdjacent" = dword:00000001
"SwitchIndex" = dword:00000000
"SwitchPosition" = "Left"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\DPadRight]
"IncludeAdjacent" = dword:00000001
"SwitchIndex" = dword:00000000
"SwitchPosition" = "Right"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\DPadUp]
"IncludeAdjacent" = dword:00000001
"SwitchIndex" = dword:00000000
"SwitchPosition" = "Up"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\FifthGear]
"ButtonIndex" = dword:00000010
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\FirstGear]
"ButtonIndex" = dword:0000000c
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\FourthGear]
"ButtonIndex" = dword:0000000f
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\NextGear]
"ButtonIndex" = dword:00000004
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\PreviousGear]
"ButtonIndex" = dword:00000005
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\ReverseGear]
"ButtonIndex" = dword:0000000b
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\SecondGear]
"ButtonIndex" = dword:0000000d
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\SixthGear]
"ButtonIndex" = dword:00000011
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\ThirdGear]
"ButtonIndex" = dword:0000000e
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Throttle]
"AxisIndex" = dword:00000001
"Invert" = dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Wheel]
"AxisIndex" = dword:00000000
"Invert" = dword:00000000
こちらもご覧ください
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示