OpenXR-Erweiterung „XR_ANDROID_mouse_interaction“

Namensstring

XR_ANDROID_mouse_interaction

Erweiterungstyp

Instanzerweiterung

Registrierte Durchwahlnummer

705

Revision

1

Erweiterungs- und Versionsabhängigkeiten

OpenXR 1.0

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.

Beispiel für eine Zielpose

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.

Beispiel für eine Zielpose

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