> ## 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 준수 출력을 게임 개발자를 위해 기대되는
출력에 맞게 변환합니다.

공급업체 ID(VID) **VVVV**, 제품 ID(PID) **PPPP**, 사용 페이지 **UUUU**, 사용 ID
**XXXX**를 가진 장치에 대한 매핑은 레지스트리의 다음 위치에서 읽어옵니다.

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

Generic 사용 페이지(0x0001)와 사용 ID 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 콘텐츠)](/reference/input/gameinput/gameinput_members)
  * 구조체
    * [GameInputSensorsInfo](/reference/input/gameinput/structs/gameinputsensorsinfo)
    * [GameInputSensorsState](/reference/input/gameinput/structs/gameinputsensorsstate)

## 함께 보기

[GameInputSensorsInfo](/reference/input/gameinput/structs/gameinputsensorsinfo)

[GameInputSensorsState](/reference/input/gameinput/structs/gameinputsensorsstate)

[GameInput 개요](/build/core-features/common/input/overviews/input-overview)

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


## Related topics

- [GameInput 하드웨어: 포스 피드백, 햅틱 및 센서](/ko/build/core-features/common/input/hardware/index.md)
- [GameInput](/ko/reference/input/gameinput/gameinput_members.md)
- [기존 입력 스택과 GameInput 결합](/ko/build/core-features/common/input/porting/input-porting.md)
- [사용되지 않는 GameInput API 멤버](/ko/reference/input/gameinput/deprecated/gameinput_deprecated_members.md)
- [하드웨어 개발자를 위한 GameInput](/ko/build/core-features/common/input/hardware/input-hardware-topics.md)
