GameInput のセンサー機能は、Windows センサー スタックに依存します。 デバイスがこのセンサー スタックと互換性があるようにするには、次を参照してください:
検証:
座標系
デバイスでは、デバイス加速を Y 軸上向き右利きシステムとして報告する必要があります。 角速度は、これらの軸に関する右手のルールに従います。
| ゲームパッドの座標系 | ハンドヘルド座標系 |
|---|---|
|
|
X 軸は、デバイスの中央から右に向かって移動します。 Y 軸は、デバイスの中央からユーザーの顔に向かって移動します。 Z 軸は、デバイスの中央から下方向に移動します。
サンプルの加速度出力 (g):
- テーブル上にフラットに配置するデバイス: {0, 1, 0}
- 静止時の角速度は {0, 0, 0} です
- そこから、デバイスを上に持ち上げる: {0、2、0} に増加
- そこから、デバイスを落とす: {0, 0, 0} に減少
- デバイスを回転させて、上端が空中にあり、下端が表面にあるようにします: {0, 0, -1}
- 動いている間、角速度 X は正になります: {2, 0, 0}
- フラットに戻ります。
- デバイスを回転させて、左端が空中にあり、右端が表面にあるようにします: {-1, 0, 0}
- 動いている間、角速度 Z は負になります: {0, 0, -2}
- フラットに戻ります。
- デバイスを時計回りに回転させる (右側のルールとは反対)
- 動いている間、角速度 Y は負になります: {0, -2, 0}
解説
デバイスの振動からのノイズ
デバイスの低周波数振動またはブザー (ハプティクスなどが原因であるものなど) はジャイロメーターのノイズを引き起こし、精度に影響を与える可能性があります。
- 実行可能なハードウェア軽減策: センサーの意図的な配置または振動減衰パディング素材によるセンサーの取り囲みを介した、触覚機能からのセンサーの機械的な分離
- 実行可能なソフトウェア軽減策: ローパス フィルターの使用
レジストリ キー
[!重要] デバイスが Windows Hardware Quality Lab 認定に合格する必要がある場合は、以下で説明するレジストリ キーを追加します。 GameInput は、ゲーム開発者が期待する出力と一致するように、デバイスの WHQL 準拠の出力を変換します。
ベンダー ID (VID) VVVV、製品 ID (PID) PPPP、使用状況ページ UUUU、および使用状況 ID XXXX のデバイスのマッピングは、レジストリ内のこの場所から読み取られます:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\GameInput\Devices\VVVVPPPPUUUUXXXX
汎用使用ページ (0x0001) と使用状況 ID ジョイスティック (0x0004) と ゲーム パッド (0x0005) のみがサポートされています。
| 値の名前 | 値の型 | 必須かどうか | Information | 値 |
|---|---|---|---|---|
| IsWhqlCertified | DWORD | いいえ | WHQL 認定デバイスからのセンサー出力を目的の座標系に合わせて変換するように GameInput に指示します。 | 0, 1 |
[!ヒント] 次のサブキーは、既に市場に出回っているデバイスの製造元向けです。 デバイスがまだリリースされていない場合は、上記の座標系を正しく報告し、関連するテストに合格する必要があります。
| 値の名前 | 値の型 | 必須かどうか | Information | 値 |
|---|---|---|---|---|
| SensorsAxisX | SZ | いいえ | デバイスのセンサー レポートから X 軸を取得し、値で示される軸でラベル付けするように GameInput に指示します。 | X, Y, Z |
| SensorsAxisY | SZ | いいえ | デバイスのセンサー レポートから Y 軸を取得し、値で示される軸でラベル付けするように GameInput に指示します。 | X, Y, Z |
| SensorsAxisZ | SZ | いいえ | デバイスのセンサー レポートから Z 軸を取得し、値で示された軸でラベル付けするように GameInput に指示します。 | X, Y, Z |
| SensorsInvertAccelerationX | DWORD | いいえ | X 軸の加速度の符号を反転するように GameInput に指示します。 上記の軸変換の後に適用されます。 | 0, 1 |
| SensorsInvertAccelerationY | DWORD | いいえ | Y 軸の加速度の符号を反転するように GameInput に指示します。 上記の軸変換の後に適用されます。 | 0, 1 |
| SensorsInvertAccelerationZ | DWORD | いいえ | Z 軸の加速度の符号を反転するように GameInput に指示します。 上記の軸変換の後に適用されます。 | 0, 1 |
| SensorsInvertAngularVelocityX | DWORD | いいえ | X 軸に関する角速度の符号を反転するように GameInput に指示します。 上記の軸変換の後に適用されます。 | 0, 1 |
| SensorsInvertAngularVelocityY | DWORD | いいえ | Y 軸に関する角速度の符号を反転するように GameInput に指示します。 上記の軸変換の後に適用されます。 | 0, 1 |
| SensorsInvertAngularVelocityZ | DWORD | いいえ | Z 軸に関する角速度の符号を反転するように GameInput に指示します。 上記の軸変換の後に適用されます。 | 0, 1 |