> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GameInput 中的感應器

> GameInput 感應器支援的參考：HID 感應器堆疊需求、遊戲台和掌上型裝置座標系統，以及範例加速度輸出。

GameInput 中的感應器功能依賴 Windows 感應器堆疊。若要讓您的裝置與此感應器
堆疊相容，請參閱：

* [HID 感應器使用方式](https://learn.microsoft.com/windows-hardware/design/whitepapers/hid-sensors-usages)
* [整合動作和方向感應器](https://learn.microsoft.com/windows-hardware/design/whitepapers/integrating-motion-and-orientation-sensors)
* [Waratah 範例](https://github.com/microsoft/hidtools/wiki/Waratah-Samples#accelerometer-and-gyroscope-gyrometer)

驗證：

* [SensorExplorer](https://apps.microsoft.com/detail/9pgl3xpq1tpx)
* [HLK 動作感應器測試](https://learn.microsoft.com/windows-hardware/test/hlk/testref/how-to-run-hck-motion-sensor-tests)

## 座標系統

裝置應以 Y 軸朝上的右手座標系統回報裝置加速度。角速度遵循繞這些軸的右手
定則。

| 遊戲台座標系統 | 掌上型裝置座標系統 |
| - | - |
| <img src="https://mintcdn.com/microsoft-4404708b/5IpvKlT-jmAaVkeY/images/input-sensors-coordinates-gamepad.png?fit=max&auto=format&n=5IpvKlT-jmAaVkeY&q=85&s=cd864c92015f0cc7389d8c43e42e71af" alt="遊戲台上顯示的感應器座標系統" height="300" data-path="images/input-sensors-coordinates-gamepad.png" /> | <img src="https://mintcdn.com/microsoft-4404708b/5IpvKlT-jmAaVkeY/images/input-sensors-coordinates-handheld.png?fit=max&auto=format&n=5IpvKlT-jmAaVkeY&q=85&s=4d9b1548f5b414ab28b2772c4d937c80" alt="掌上型裝置上顯示的感應器座標系統" height="300" data-path="images/input-sensors-coordinates-handheld.png" /> |

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}

## 備註

### 裝置振動造成的雜訊

裝置中的低頻震動或嗡嗡聲 (例如由觸覺回饋所造成) 可能會引起陀螺儀雜訊並
影響精確度。

* 可能的硬體緩解措施：透過刻意安排感應器位置，或以減震填充材料包覆感應器周圍，
  將感應器與觸覺回饋機構隔離
* 可能的軟體緩解措施：使用低通濾波器

### 登錄機碼

\[!IMPORTANT]
如果您的裝置必須通過 [Windows Hardware Quality Lab 認證](https://learn.microsoft.com/windows-hardware/test/hlk/testref/how-to-run-hck-motion-sensor-tests)，
請新增下述登錄機碼。GameInput 會轉換裝置符合 WHQL 的輸出，以符合遊戲開發人員預期的
輸出。

廠商識別碼 (VID) 為 **VVVV**、產品識別碼 (PID) 為 **PPPP**、使用方式頁面為 **UUUU**，且使用方式識別碼為
**XXXX** 之裝置的對應，會從登錄中的下列位置讀取：

```
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\GameInput\Devices\VVVVPPPPUUUUXXXX
```

僅支援 Generic 使用方式頁面 (0x0001)，以及使用方式識別碼 Joystick (0x0004) 和 Gamepad (0x0005)。

| 值名稱 | 值類型 | 必要？ | 資訊 | 值 |
| - | - | - | - | - |
| IsWhqlCertified | DWORD | 否 | 告知 GameInput 轉換通過 WHQL 認證之裝置的感應器輸出，以符合所需的座標系統。 | 0, 1 |

\[!TIP]
下列子機碼適用於裝置已上市的製造商。如果裝置尚未
發行，則應正確回報[上述座標系統](#coordinate-system)，並應通過相關測試。

| 值名稱 | 值類型 | 必要？ | 資訊 | 值 | |
| - | - | - | - | - | - |
|  | SensorsAxisX | SZ | 否 | 告知 GameInput 從裝置的感應器報告中取得 X 軸，並以值所指示的軸加以標示。 | X, Y, Z |
| SensorsAxisY | SZ | 否 | 告知 GameInput 從裝置的感應器報告中取得 Y 軸，並以值所指示的軸加以標示。 | X, Y, Z | |
| SensorsAxisZ | SZ | 否 | 告知 GameInput 從裝置的感應器報告中取得 Z 軸，並以值所指示的軸加以標示。 | X, Y, Z | |
| SensorsInvertAccelerationX | DWORD | 否 | 告知 GameInput 反轉 X 軸上加速度的正負號。在上述軸轉換之後套用。 | 0, 1 | |
| SensorsInvertAccelerationY | DWORD | 否 | 告知 GameInput 反轉 Y 軸上加速度的正負號。在上述軸轉換之後套用。 | 0, 1 | |
| SensorsInvertAccelerationZ | DWORD | 否 | 告知 GameInput 反轉 Z 軸上加速度的正負號。在上述軸轉換之後套用。 | 0, 1 | |
| SensorsInvertAngularVelocityX | DWORD | 否 | 告知 GameInput 反轉繞 X 軸之角速度的正負號。在上述軸轉換之後套用。 | 0, 1 | |
| SensorsInvertAngularVelocityY | DWORD | 否 | 告知 GameInput 反轉繞 Y 軸之角速度的正負號。在上述軸轉換之後套用。 | 0, 1 | |
| SensorsInvertAngularVelocityZ | DWORD | 否 | 告知 GameInput 反轉繞 Z 軸之角速度的正負號。在上述軸轉換之後套用。 | 0, 1 | |

<a id="seealsoSection" />

## 參考 API 文件

* [GameInput (API 內容)](/zh-TW/reference/input/gameinput/gameinput_members)
  * 結構
    * [GameInputSensorsInfo](/zh-TW/reference/input/gameinput/structs/gameinputsensorsinfo)
    * [GameInputSensorsState](/zh-TW/reference/input/gameinput/structs/gameinputsensorsstate)

## 另請參閱

[GameInputSensorsInfo](/zh-TW/reference/input/gameinput/structs/gameinputsensorsinfo)

[GameInputSensorsState](/zh-TW/reference/input/gameinput/structs/gameinputsensorsstate)

[GameInput 概觀](/zh-TW/build/core-features/common/input/overviews/input-overview)

[Windows.Devices.Sensors](https://learn.microsoft.com/uwp/api/windows.devices.sensors)


## Related topics

- [GameInput 中的传感器](/zh-CN/build/core-features/common/input/hardware/input-hardware-sensors.md)
- [GameInput 中的触觉反馈](/zh-CN/build/core-features/common/input/hardware/input-hardware-haptics.md)
- [GameInput](/zh-CN/reference/input/gameinput/gameinput_members.md)
- [GameInput 常见问题](/zh-CN/build/core-features/common/input/overviews/input-faq.md)
- [从 XInput 移植到 GameInput](/zh-CN/build/core-features/common/input/porting/input-porting-xinput.md)
