> ## 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.

# Capteurs dans GameInput

> Référence sur la prise en charge des capteurs dans GameInput : exigences de la pile de capteurs HID, systèmes de coordonnées des boîtiers de commande et des appareils portables, et exemple de sortie d'accélération.

Les capacités des capteurs dans GameInput reposent sur la pile de capteurs de Windows. Pour rendre votre périphérique compatible avec cette pile
de capteurs, consultez :

* [Utilisations des capteurs HID](https://learn.microsoft.com/windows-hardware/design/whitepapers/hid-sensors-usages)
* [Intégration des capteurs de mouvement et d'orientation](https://learn.microsoft.com/windows-hardware/design/whitepapers/integrating-motion-and-orientation-sensors)
* [Exemples Waratah](https://github.com/microsoft/hidtools/wiki/Waratah-Samples#accelerometer-and-gyroscope-gyrometer)

Validation :

* [SensorExplorer](https://apps.microsoft.com/detail/9pgl3xpq1tpx)
* [Tests HLK des capteurs de mouvement](https://learn.microsoft.com/windows-hardware/test/hlk/testref/how-to-run-hck-motion-sensor-tests)

## Système de coordonnées

Les périphériques doivent signaler leur accélération dans un système droitier avec l'axe Y vers le haut. La vitesse angulaire suit la règle de la main droite
autour de ces axes.

| Système de coordonnées d'un boîtier de commande | Système de coordonnées d'un appareil portable |
| - | - |
| <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="Système de coordonnées des capteurs illustré sur un boîtier de commande" 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="Système de coordonnées des capteurs illustré sur un appareil portable" height="300" data-path="images/input-sensors-coordinates-handheld.png" /> |

L'axe X va du centre du périphérique vers la droite. L'axe Y va du centre du périphérique vers
le visage de l'utilisateur. L'axe Z va du centre du périphérique vers l'extérieur par le dessous.

Exemple de sortie d'accélération, en g :

* Périphérique posé à plat sur une table : {0, 1, 0}
  * La vitesse angulaire au repos est de {0, 0, 0}
* À partir de là, soulevez le périphérique vers le haut : augmente {0, 2, 0}
* À partir de là, laissez tomber le périphérique : diminue {0, 0, 0}
* Faites pivoter le périphérique de sorte que le bord supérieur soit en l'air et le bord inférieur sur la surface : {0, 0, -1}
  * Pendant le mouvement, la vitesse angulaire X devient positive : {2, 0, 0}
* Revenez à plat.
* Faites pivoter le périphérique de sorte que le bord gauche soit en l'air et le bord droit sur la surface : {-1, 0, 0}
  * Pendant le mouvement, la vitesse angulaire Z devient négative : {0, 0, -2}
* Revenez à plat.
* Faites pivoter le périphérique dans le sens des aiguilles d'une montre (à l'opposé de la règle de la main droite)
  * Pendant le mouvement, la vitesse angulaire Y devient négative : {0, -2, 0}

## Remarques

### Bruit dû aux vibrations du périphérique

Les grondements ou bourdonnements basse fréquence dans le périphérique (comme ceux provoqués par l'haptique) peuvent induire du bruit dans le gyromètre et
affecter la précision.

* Atténuation matérielle possible : isolation mécanique du capteur par rapport à l'haptique, via un positionnement volontaire du capteur
  ou l'entourage du capteur avec un matériau de rembourrage amortissant les vibrations
* Atténuation logicielle possible : utilisation d'un filtre passe-bas

### Clés de Registre

\[!IMPORTANT]
Si votre périphérique doit obtenir la [certification Windows Hardware Quality Lab](https://learn.microsoft.com/windows-hardware/test/hlk/testref/how-to-run-hck-motion-sensor-tests),
ajoutez la clé de Registre décrite ci-dessous. GameInput transformera la sortie conforme WHQL du périphérique pour qu'elle corresponde à la sortie
attendue par les développeurs de jeux.

Les mappages d'un périphérique avec l'ID du fabricant (VID) **VVVV**, l'ID du produit (PID) **PPPP**, la page d'utilisation **UUUU** et l'ID d'utilisation
**XXXX** seront lus à cet emplacement du Registre :

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

Seuls la page d'utilisation Generic (0x0001) et les ID d'utilisation Joystick (0x0004) et Gamepad (0x0005) sont pris en charge.

| Nom de la valeur | Type de valeur | Obligatoire ? | Informations | Valeurs |
| - | - | - | - | - |
| IsWhqlCertified | DWORD | Non | Indique à GameInput de transformer les sorties des capteurs d'un périphérique certifié WHQL pour qu'elles correspondent au système de coordonnées souhaité. | 0, 1 |

\[!TIP]
Les sous-clés suivantes sont destinées aux fabricants de périphériques déjà commercialisés. Si le périphérique n'est pas encore
sorti, il doit signaler correctement le [système de coordonnées décrit ci-dessus](#coordinate-system) et doit réussir les tests correspondants.

| Nom de la valeur | Type de valeur | Obligatoire ? | Informations | Valeurs |
| - | - | - | - | - |
| SensorsAxisX | SZ | Non | Indique à GameInput de prendre l'axe X du rapport de capteur du périphérique et de lui attribuer l'axe indiqué par la valeur. | X, Y, Z |
| SensorsAxisY | SZ | Non | Indique à GameInput de prendre l'axe Y du rapport de capteur du périphérique et de lui attribuer l'axe indiqué par la valeur. | X, Y, Z |
| SensorsAxisZ | SZ | Non | Indique à GameInput de prendre l'axe Z du rapport de capteur du périphérique et de lui attribuer l'axe indiqué par la valeur. | X, Y, Z |
| SensorsInvertAccelerationX | DWORD | Non | Indique à GameInput d'inverser le signe de l'accélération sur l'axe X. Appliqué après la transformation d'axe ci-dessus. | 0, 1 |
| SensorsInvertAccelerationY | DWORD | Non | Indique à GameInput d'inverser le signe de l'accélération sur l'axe Y. Appliqué après la transformation d'axe ci-dessus. | 0, 1 |
| SensorsInvertAccelerationZ | DWORD | Non | Indique à GameInput d'inverser le signe de l'accélération sur l'axe Z. Appliqué après la transformation d'axe ci-dessus. | 0, 1 |
| SensorsInvertAngularVelocityX | DWORD | Non | Indique à GameInput d'inverser le signe de la vitesse angulaire autour de l'axe X. Appliqué après la transformation d'axe ci-dessus. | 0, 1 |
| SensorsInvertAngularVelocityY | DWORD | Non | Indique à GameInput d'inverser le signe de la vitesse angulaire autour de l'axe Y. Appliqué après la transformation d'axe ci-dessus. | 0, 1 |
| SensorsInvertAngularVelocityZ | DWORD | Non | Indique à GameInput d'inverser le signe de la vitesse angulaire autour de l'axe Z. Appliqué après la transformation d'axe ci-dessus. | 0, 1 |

<a id="seealsoSection" />

## Documentation de référence de l'API

* [GameInput (contenu de l'API)](/fr/reference/input/gameinput/gameinput_members)
  * Structures
    * [GameInputSensorsInfo](/fr/reference/input/gameinput/structs/gameinputsensorsinfo)
    * [GameInputSensorsState](/fr/reference/input/gameinput/structs/gameinputsensorsstate)

## Voir aussi

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

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

[Vue d'ensemble de GameInput](/fr/build/core-features/common/input/overviews/input-overview)

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


## Related topics

- [GameInput](/reference/input/gameinput/gameinput_members.md)
- [Overview of GameInput](/build/core-features/common/input/overviews/input-overview.md)
- [GameInput fundamentals](/build/core-features/common/input/overviews/input-fundamentals.md)
- [GameInput 概述](/zh-CN/build/core-features/common/input/overviews/input-overview.md)
- [GameInput 개요](/ko/build/core-features/common/input/overviews/input-overview.md)
