Namensstring
XR_ANDROID_mouse_interaction
Erweiterungstyp
Instanzerweiterung
Registrierte Durchwahlnummer
705
Revision
1
Erweiterungs- und Versionsabhängigkeiten
Datum der letzten Änderung
2024-09-06
IP-Status
Es sind keine Ansprüche aufgrund von Urheberrechten bekannt.
Mitwirkende
Sharayu Shenoy, Google
Chiara Coetzee, Google
Levana Chen, Google
Spencer Quin, Google
Übersicht
Diese Erweiterung bietet eine XrPath
zum Abrufen von Mauseingabe und definiert eine gängige Aktionspose für Nutzermausprofile, einschließlich Mäusen und Touchpads.
Diese Erweiterung führt auch ein neues Interaktionsprofil ein, das speziell für die Eingabe über das OpenXR-Aktionssystem für Mausgeräte entwickelt wurde.
Aktionspose für Mausinteraktionen
Die folgende Aktionspose (d.h. „Ziel“) ermöglicht einen 3D-Cursorstrahl, unabhängig davon, ob die Tracking-Eingaben von einer Maus oder einem Touchpad stammen.
Der Aktionsunterpfad …/input/aim/pose wird in allen Interaktionsprofilen unterstützt, die für den Nutzerpfad /user/mouse gültig sind, einschließlich der Interaktionsprofile, die über Erweiterungen aktiviert wurden.
Zielpose
…/input/aim/pose ist für die Interaktion mit Objekten über einen Mauszeiger im 3D-Raum gedacht. Wenn Sie beispielsweise mit einem virtuellen Laserpointer auf eine virtuelle Schaltfläche an der Wand zielen, ist dies eine Interaktion, die zur Pose „Ziel“ passt.
Dies ist dieselbe „Aim“-Pose, die in den Standard-Pose-IDs definiert ist. Diese Haltung wird bereits von jedem erfassten Controllerprofil unterstützt.
Position
Die Position der „Aim“-Pose ist in der Regel der Kopf des Nutzers, also die gleiche Position des Kopfes, wenn eine Mausbewegung erkannt wird. Die Zielpose für die Maus wird berechnet, wenn die Maus bewegt wird. Die zuletzt bekannte Zielposition wird bis zur nächsten Mausbewegung beibehalten.
Ausrichtung
Die Ausrichtung der „Aim“-Pose kann verwendet werden, um einen 3D-Cursorstrahl zu rendern, um mit einem virtuellen Objekt zu interagieren, z. B. um auf eine Menüschaltfläche an der Wand zu klicken.
Die Zielpose für die Maus wird berechnet, wenn die Maus bewegt wird. Die zuletzt bekannte Ausrichtung des Ziels wird bis zur nächsten Mausbewegung beibehalten.
Die -Z-Richtung ist die Vorwärtsrichtung der Zielgeste, also die Richtung, in die der Zielstrahl zeigt.
Anhand der relativen X‑ und Y‑Bewegung der Maus wird die relative Bewegung der Maus entlang einer Kugel um den Kopf des Nutzers berechnet.
Die Bewegung in der Tiefe wird durch primäres Klicken und Scrollen unterstützt. Wenn eine Aktion zur Bewegung in der Tiefe ausgeführt wird, wird die Position je nach positivem oder negativem Scrollwert in positiver oder negativer Z‑Richtung entlang des Strahls von der Kopfposition versetzt. Das System stabilisiert die Tiefenbewegung innerhalb der Kugel um den Kopf des Nutzers.
Interaktionsprofil für Mausgeräte
Das Mausinteraktionsprofil ist für Laufzeiten konzipiert, die Mauseingabe mithilfe von Mausgeräten oder Touchpads mit Schaltflächen und Scrollen ermöglichen. So können Maus- und Touchpad-Geräte häufig verwendete Klicks, Scroll- und Aktionsposen an das OpenXR-Aktionssystem senden.
Interaktionsprofilpfad:
- /interaction_profiles/android/mouse_interaction
Gültig für Nutzerpfad der obersten Ebene:
- /user/mouse
Unterstützte Komponentenpfade:
- …/input/aim/pose
- …/input/select/click
- …/input/secondary/click
- …/input/tertiary/click
- …/input/scroll/value
Dieses Interaktionsprofil unterstützt die in diesem Abschnitt beschriebene Action Pose sowie die folgenden beiden Gruppen von Aktionseingaben.
Klickaktion
Dieses Interaktionsprofil unterstützt die Aktionen …/input/select/click, …/input/secondary/click und /input/tertiary/click.
…/input/select/click ist eine boolesche Eingabe, bei der der Wert XR_TRUE
angibt, dass die primäre Schaltfläche der Maus oder des Touchpads gedrückt wird.
…/input/secondary/click ist eine boolesche Eingabe, bei der der Wert XR_TRUE
angibt, dass die sekundäre Taste der Maus oder des Touchpads gedrückt wird.
…/input/tertiary/click ist eine boolesche Eingabe, bei der der Wert XR_TRUE
angibt, dass die Maus scrollt oder die untergeordnete Schaltfläche gedrückt wird.
Scrollaktion
Dieses Interaktionsprofil unterstützt Aktionen vom Typ …/input/scroll/value.
…/input/scroll/value ist eine 2D-Eingabekomponente, die von -1 bis 1 variiert, um das Scrollen nach unten und nach oben abzubilden.
Neue Objekttypen
Neue Flaggentypen
Neue Enum-Konstanten
Neue Enums
Neue Strukturen
Neue Funktionen
Probleme
Versionsverlauf
- Revision 1, 29. August 2024 (Levana Chen)
- Erste Beschreibung der Erweiterung