Extension OpenXR XR_ANDROID_mouse_interaction

Chaîne de nom

XR_ANDROID_mouse_interaction

Type d'extension

Extension d'instance

Numéro d'extension enregistré

705

Révision

1

Dépendances d'extension et de version

OpenXR 1.0

Date de dernière modification

2024-09-06

État de l'adresse IP

Aucune revendication d'adresse IP connue.

Contributeurs

Sharayu Shenoy, Google

Chiara Coetzee, Google

Levana Chen, Google

Spencer Quin, Google

Présentation

Cette extension fournit un XrPath pour obtenir une entrée de la souris et définit une pose d'action couramment utilisée pour les profils de souris utilisateur, y compris les périphériques de souris et les périphériques de pavé tactile.

Cette extension introduit également un nouveau profil d'interaction spécialement conçu pour les périphériques de souris via le système d'action OpenXR.

Posture d'action pour les interactions avec la souris

La pose d'action suivante (c'est-à-dire "viser") active un rayon de pointeur 3D, que les entrées de suivi soient fournies par une souris ou un pavé tactile.

Le sous-chemin d'action …/input/aim/pose sera compatible avec tous les profils d'interaction valides pour le chemin d'utilisateur /user/mouse, y compris les profils d'interaction activés via des extensions.

Pose de tir

…/input/aim/pose est conçu pour interagir avec des objets à l'aide d'un pointeur de souris dans l'espace 3D. Par exemple, utiliser un pointeur laser virtuel pour viser un bouton virtuel sur le mur est une interaction adaptée à la pose "viser".

Il s'agit de la même position "visée" définie dans les identifiants de position standards. Chaque profil de contrôleur suivi est déjà compatible avec cette position.

Exemple de pose de tir

Position

La position de la pose "visée" correspond généralement à la tête de l'utilisateur, c'est-à-dire à la même position de la tête lorsqu'un mouvement de souris est détecté. La position de visée de la souris est calculée lorsqu'elle bouge. La dernière position de visée connue est conservée jusqu'au prochain mouvement de la souris.

Orientation

L'orientation de la pose "visée" peut être utilisée pour afficher un rayon de pointeur 3D afin d'interagir avec un objet virtuel, par exemple en cliquant sur un bouton de menu sur le mur.

La position de visée de la souris est calculée lorsqu'elle est déplacée. La dernière orientation de visée connue est conservée jusqu'au prochain mouvement de la souris.

La direction -Z correspond à la direction avant du geste de visée, c'est-à-dire vers l'endroit où le rayon de visée pointe.

Le mouvement relatif X,Y de la souris est utilisé pour calculer le mouvement relatif de la souris le long d'une sphère autour de la tête de l'utilisateur.

Exemple de pose de tir

Le mouvement en profondeur sera pris en charge à l'aide du clic principal et du défilement. Lorsqu'une action de mouvement en profondeur est en cours, la position est décalée par rapport à la position de la tête dans la direction Z positive ou négative le long du rayon, en fonction de la valeur de défilement positive ou négative. Le système stabilise le mouvement de profondeur dans la sphère autour de la tête de l'utilisateur.

Profil d'interaction pour les souris

Le profil d'interaction avec la souris est conçu pour les environnements d'exécution qui fournissent des entrées de souris à l'aide de souris ou de pavés tactiles avec des boutons et une molette. Cela permet aux dispositifs de souris et de pavé tactile de fournir des clics, des défilements et des poses d'action couramment utilisés au système d'action OpenXR.

Chemin d'accès au profil d'interaction:

  • /interaction_profiles/android/mouse_interaction

Valide pour le chemin d'accès de l'utilisateur de niveau supérieur:

  • /user/mouse

Chemins de composants compatibles:

  • …/input/aim/pose
  • …/saisie/sélection/clic
  • …/input/secondary/click
  • …/input/tertiary/click
  • …/input/scroll/value

Ce profil d'interaction est compatible avec la posture d'action décrite dans cette section, ainsi qu'avec les deux groupes d'entrées d'action suivants.

Action de clic

Ce profil d'interaction est compatible avec les actions …/input/select/click, …/input/secondary/click et /input/tertiary/click.

…/input/select/click est une entrée booléenne, où la valeur XR_TRUE indique que le bouton principal de la souris ou du pavé tactile est enfoncé.

…/input/secondary/click est une entrée booléenne, où la valeur XR_TRUE indique que le bouton secondaire de la souris ou du pavé tactile est enfoncé.

…/input/tertiary/click est une entrée booléenne, où la valeur XR_TRUE indique que la molette de la souris ou le bouton tertiaire est enfoncé.

Action de défilement

Ce profil d'interaction est compatible avec les actions …/input/scroll/value.

…/input/scroll/value est un composant d'entrée 2D qui varie de -1 à 1 pour mapper le défilement vers le bas et vers le haut.

Nouveaux types d'objets

Nouveaux types d'indicateurs

Nouvelles constantes d'énumération

Nouvelles énumérations

Nouvelles structures

Nouvelles fonctions

Problèmes

Historique des versions

  • Révision 1, 29/08/2024 (Levana Chen)
    • Description initiale de l'extension