Documentation Steamworks
Concepts généraux

Steam Input

« Steam Input » est le terme générique qui désigne l'ensemble des logiciels, matériels et utilitaires de configuration que Steam utilise pour s'interfacer avec les jeux.

Configurateur de Steam Input

Le configurateur de Steam Input (CSI) est intégré au client Steam et se situe entre le joueur ou la joueuse et son jeu ou son application. Le CSI reçoit des données depuis votre périphérique d'entrée et les convertit conformément aux paramètres du compte avant de les transmettre au jeu.

Le CSI peut être utilisé de deux façons principales : en mode hérité et en mode natif.

Mode hérité

Le mode hérité est un mode de compatibilité conçu pour les jeux qui n'ont pas implémenté l'API Steam Input. Le CSI sert alors juste de mappeur d'entrées sophistiqué que tous les joueurs et joueuses peuvent utiliser pour tous les jeux sur Steam.

La personne en jeu peut réaffecter toute entrée physique à toute autre entrée physique : par exemple, le comportement de la touche « Entrée » du clavier peut être affecté au bouton « A », ou une pression en fin de course de la gâchette analogique gauche à un clic de souris, etc. Ce mode fonctionne avec n'importe quel périphérique d'entrée pris en charge et pas uniquement le Steam Controller.

Le mode hérité fonctionne parfaitement pour les jeux qui n'ont jamais pris l'API en charge, mais il a certaines limites. D'une part, les jeux qui sont programmés en supposant que les commandes de la manette de jeu et de la souris ne seront jamais activées simultanément rencontrent toutes sortes de problèmes lorsque vous choisissez ce type de configuration. De plus, le jeu ne sait pas que vous utilisez le configurateur (il ne fait que recevoir des entrées de matériel de bas niveau émulées par ce dernier), les représentations à l'écran des entrées de périphérique d'entrée ne correspondront donc probablement pas.

Mode natif

En mode natif, le jeu reçoit les données d'entrée directement depuis le configurateur sous forme « d'actions ». L'idée ici est que le jeu n'a en lui-même aucune connaissance des entrées réelles qui induisent les actions, il sait uniquement que les actions se produisent. Tous les paramètres de configuration et de commande sont confiés au configurateur de Steam Input. Le jeu peut tout de même demander, via un appel d'API spécial, des informations précisant quelles commandes physiques sont associées à quelles actions, uniquement dans le but d'afficher les représentations en jeu appropriées.

API Steam Input

En mode natif, l'API Steam Input est l'interface de programmation d'application que les équipes de développement utilisent pour communiquer directement avec le configurateur de Steam Input. L'API n'est pas nécessaire pour prendre en charge le mode hérité.

Vous trouverez toute la documentation nécessaire ici : ISteamInput.

Configurations du contrôleur

Les joueurs et joueuses peuvent configurer des mappages d'entrées entièrement personnalisés dans leur bibliothèque, à l'aide du mode natif, du mode hérité, voire d'un mélange des deux. Ces mappages d'entrées sont appelés « Configurations du contrôleur » et une personne peut en créer plusieurs pour un seul jeu, ainsi que les partager en ligne avec d'autres personnes.

Hiérarchie des entrées

Entrées physiques

Une « entrée physique » est un mécanisme physique présent sur tout périphérique d'entrée avec lequel la personne utilisatrice interagit pour générer des données d'entrée pour son ordinateur. Ces entrées sont disponibles à la fois sous forme numérique et analogique et correspondent, par exemple, aux boutons, joysticks, DPAD, gâchettes, déclencheurs, chapeaux, trackballs, pavés tactiles, gyroscopes, etc.

Nous allons bientôt entrer dans des concepts plus abstraits, souvenez-vous que les « entrées physiques » sont les petits éléments du périphérique d'entrée que vous manipulez avec vos doigts (ou vos orteils si tel est votre choix).

Sources d'entrée

Une « source d'entrée » est une zone du contrôleur qui peut être considérée comme une unité modulaire plus grande et sur laquelle l'un des divers modes peut être appliqué afin de modifier la façon dont elle sort des données.

Nous vous avions dit que nous passerions dans l'abstrait !

Essayons de simplifier : quelle est la différence entre un DPAD et quatre boutons avant disposés en losange ?

input_dpad.pnginput_bpad.png

Ils sont tous les deux constitués de quatre « boutons » numériques, mais la plupart des DPAD sont physiquement conçus de manière à ce qu'il soit impossible d'appuyer sur Haut+Bas ou Gauche+Droite au même moment, tandis que chaque bouton avant peut être appuyé indépendamment. Toutefois, Steam Input peut vous permettre d'imposer les restrictions d'un DPAD à vos quatre boutons avant.

Aussi, bien que le DPAD et le groupe de boutons avant soient chacun composés de quatre « entrées physiques » individuelles, il faut considérer le « DPAD » et les « boutons avant » comme des unités indépendantes, pour que nous puissions modifier la façon dont l'ensemble se comporte.

Voici la liste complète des « sources d'entrée » reconnues :

  • Trackpad gauche
  • Trackpad droit
  • Trackpad central
  • Joystick gauche
  • Joystick droit
  • ABXY
  • D-pad
  • Gâchette gauche
  • Gâchette droite
  • Gyroscope
  • Déclencheurs
REMARQUE : les sources d'entrées « déclencheurs » constituent une catégorie fourre-tout pour toutes les entrées physiques qui n'appartiennent à aucun autre groupe, comme les boutons Retour et Démarrer, les gâchettes hautes gauche et droite et les palettes à l'arrière des poignées.

Veuillez consulter également :

Modes de sources d'entrée

Les sources d'entrée peuvent se voir imposer différents modes qui modifient la façon dont elles se comportent. Bien que ces « modes de sources d'entrée » soient utiles pour les entrées numériques, les entrées les plus fréquentes pour lesquelles vous vous retrouverez à utiliser les modes de sources d'entrée sont les commandes analogiques et en particulier les pavés tactiles, qui peuvent être configurés de nombreuses façons différentes.

Voici la liste complète des « modes de sources d'entrée » reconnus :

  • D-pad
  • Quatre boutons
  • Souris absolue
  • Souris relative
  • Joystick (déplacement)
  • Souris joystick
  • Joystick (caméra)
  • Molette
  • Gâchette
  • Menu tactile
  • Joystick en mode souris
  • Région de souris
  • Menus circulaires
  • Déclencheurs

Veuillez consulter également :

En résumé :

Entrées physiques :
objets physiques réels avec lesquels vous interagissez sur le périphérique. Exemples : le bouton A, l'entrée « Haut » sur le DPAD, etc.

Sources d'entrée :
ensembles plus larges d'entrées physiques pouvant être regroupées en unités modulaires. Exemples : le D-pad dans son ensemble, les quatre boutons avant, l'ensemble du joystick gauche, etc.

Modes de sources d'entrée :
ce sont des comportements spécifiques que vous imposez à une source d'entrée. Exemples : « forcer les boutons avant à se comporter comme un D-pad », « forcer le joystick gauche à se comporter comme les quatre boutons avant », etc.

Actions

Les actions sont les évènements que l'API Steam Input utilise pour tout orchestrer. En mode natif, votre jeu ne reçoit pas d'évènement « Bouton A enfoncé », il reçoit simplement un évènement « Sauter » (ou autre) et c'est à la personne en jeu de choisir le genre d'entrée qui entraine l'action « Sauter ».

Actions numériques

Les actions numériques sont le type d'action le plus simple et le plus courant. Elles sont simplement activées ou désactivées. Le jeu les scrute donc de manière répétée et écoute pour connaitre l'état de ces actions.

Actions analogiques

Les actions analogiques disposent d'un axe de données ou plus et sont utilisées pour les comportements tels que le déplacement fluide des personnages, la conduite de voitures, le contrôle des caméras, etc. Les actions standard pilotées au joystick et à la souris auront généralement deux axes, X et Y, mais les actions analogiques à un seul axe sont également possibles (comme celles qui sont communément associées aux gâchettes). Dans ce cas, les données de l'action comporteront toujours deux axes, mais l'axe Y sera toujours à zéro.

Nom de l'action

Toutes les actions ont besoin d'une dénomination telle que « Sauter » ou « Coup de poing ». Ces valeurs sont des chaines de caractères distinctes de celles que la personne peut voir en jeu. Ces dernières sont des « étiquettes d'action » et elles peuvent être localisées.

Handle d'action

Interroger les actions en fonction de leurs noms de chaine est couteux et inefficace. Quand votre jeu amorce l'API, il doit enregistrer toutes les actions selon leur nom et reçoit les handles d'action correspondants sous forme de nombres entiers en retour.

Origine de l'action

Une « origine d'action » est une chaine qui identifie quelle sorte d'entrée est associée à une action donnée dans la configuration du périphérique d'entrée de la personne en jeu.

Groupes d'actions

Un groupe d'actions est un regroupement logique d'actions associées. Seul un groupe d'actions peut être actif à un moment donné pour un périphérique d'entrée donné. Par exemple, pour un jeu tel que GTA V qui inclut plusieurs modes de déplacement à pied et dans un véhicule, vous pouvez créer un groupe d'actions « Menu » qui ne sera actif que lors des séquences du menu, ainsi que des groupes d'actions « Conduite », « Marche » et « Vol ». Les groupes d'actions existent à la fois en mode natif et hérité. En mode natif, ils sont explicitement définis par l'équipe de développement et le jeu effectuera des appels d'API pour désigner le groupe d'actions actuellement actif. En mode hérité, les changements de groupes d'actions doivent être déclenchés manuellement par la personne en jeu. Dans les deux cas, les groupes d'actions sont un moyen de libérer de l'espace sur le périphérique d'entrée en supprimant le besoin d'associer de manière permanente chaque action susceptible de se produire dans le jeu et de la maintenir constamment active.

Couches de groupes d'actions

Les couches de groupes d'actions sont des ensembles de configurations optionnels qui peuvent être ajoutés en surcouche sur des ensembles de commandes existants. À la différence des groupes d'actions, les couches tirent leurs actions du groupe d'actions dans lequel elles existent et n'effectuent que des petites modifications de l'existant sans remplacer complètement ce qui est déjà actif. Il peut s'agir de changements de configuration ainsi que d'ajouts ou de suppressions d'associations du groupe d'actions de base. Vous pouvez appliquer plus d'une couche, auquel cas les couches seront appliquées de manière consécutive.

Pour plus de détails, veuillez consulter la section Couches de groupes d'actions de la documentation.

Retour physique

Au-delà de ce qui peut se produire sur l'écran, certains périphériques d'entrée ont la capacité de procurer un retour physique à la personne qui joue au moyen de vibrations ou de lumière.

Retours haptiques

Cette fonctionnalité permet de transmettre des sensations physiques plus fines qui aident la personne en jeu à orienter la position de ses mains et de ses doigts sur les grandes surfaces tactiles, ainsi que de faire ressentir, par exemple, l'élan virtuel d'un trackball émulé. Les retours haptiques sont pris en charge par le Steam Controller et certaines manettes Nintendo Switch. Les périphériques non pris en charge ignoreront les appels d'API relatifs au retour haptique.

Vibrations

Forme plus traditionnelle de retour physique, les vibrations sont créées par des moteurs internes qui secouent le périphérique. Cette fonctionnalité est prise en charge par les manettes PS4 et Xbox (ainsi que de nombreux périphériques génériques compatibles avec XInput). Le Steam Controller ne possède pas de véritable fonction de vibration, mais en émule une approximation à l'aide de son retour haptique (et répondra donc en conséquence aux appels d'API relatifs aux vibrations).

LED

Le Steam Controller et la manette PS4 disposent tous deux d'un éclairage à LED intégré à la manette. L'éclairage du Steam Controller est toujours blanc, mais la manette PS4 possède un éclairage à LED colorées entièrement programmable. Ces deux périphériques répondront aux appels d'API relatifs aux changements de couleur, mais le Steam Controller n'affichera qu'une seule couleur et n'utilisera ces appels que pour contrôler la luminosité, tandis que sur la manette PS4, ils pourront être utilisés pour contrôler à la fois la couleur et la luminosité. Les périphériques non pris en charge ignoreront les appels d'API relatifs à l'éclairage LED.