Table of Contents

Unity AR Bewegungstracking-Zentrum – XR Origin

XR Origin ist das zentrale Konzept für Bewegungstracking in Unity. In modernen AR-Anwendungen wird Bewegungstracking zunehmend unverzichtbar. Durch Bewegungstracking kann eine Anwendung ohne zusätzliche Marker die Position und Ausrichtung des Benutzers in der realen Welt verstehen, was immersive AR-Erlebnisse ermöglicht. Im Folgenden erfahren Sie die Grundkonzepte, Komponenten und den Lebenszyklus von XR Origin sowie wann Sie XR Origin verwenden müssen.

Bevor Sie beginnen

  • Machen Sie sich mit den Grundkonzepten, Komponenten und dem Arbeitsablauf von Session vertraut, indem Sie ARSession-Einführung lesen.

Was ist XR Origin

Wenn das Bewegungstracking initialisiert wird, wählt es einen Referenzpunkt als Ursprung des Trackings aus. Dieser Referenzpunkt ist in der Regel die Position des Geräts beim Starten der Anwendung oder beim Starten des AR-Systemdienstes. Die Repräsentation dieses Referenzpunkts in der Unity-Szene ist die XR Origin. In den meisten Fällen ist die Startposition der XR Origin in der Szene auch die Standardstartposition der Kamera.

Dieses Video zeigt eine einfache AR-Szene, in der nur Bewegungstracking aktiv ist. Links befindet sich die Hierarchy-Ansicht, in der Mitte die Scene-Ansicht und rechts die Game-Ansicht. Das Video wurde mit Simulatordaten im Play-Modus des Unity-Editors aufgenommen. Der Inhalt der Game-Ansicht entspricht dem, was der Benutzer in der realen Welt auf seinem Handy sieht.

Man erkennt, dass die Position der XR Origin (blaue Kugel) in der Szene fest ist, während die Kamera (Kamera-Symbol) sich entsprechend der Bewegung des Benutzers in der realen Welt bewegt. Die weißen Kegel zeigen die Positions- und Ausrichtungstrajektorie der Kamera über einen bestimmten Zeitraum und veranschaulichen so die Bewegung der Kamera in der Szene. Man sieht, dass diese weißen Kegel unter dem Knoten der XR Origin generiert werden, was eine typische Organisationsstruktur für Objekte in solchen Szenen darstellt.

Im Bewegungstrackingsystem von Unity folgt die Kamera in der Regel der XR Origin. Obwohl die Kamera nicht unbedingt ein Child-Knoten der XR Origin sein muss, berechnet die AR Session die Position der Kamera basierend auf der Position der XR Origin, um sicherzustellen, dass der Inhalt, den der Benutzer sieht, mit der realen Welt übereinstimmt.

Dieses Video zeigt dieselbe Szene, aber diesmal bewegen wir die XR Origin (blaue Kugel) während der Laufzeit. Man erkennt, dass sich die Kamera nach dem Verschieben der XR Origin mit dieser bewegt, während sich der Inhalt der Game-Ansicht nicht ändert.

In realen AR-Szenen ist diese Bewegungsbeziehung etwas komplexer.

Verhalten von XR Origin in verschiedenen Zentrumsmodi

In Unity wird der zentrale Referenzpunkt für alle AR-Trackings als Session-Zentrum bezeichnet, und die Regel, die dieses Zentrum während des Session-Betriebs bestimmt, wird Zentrumsmodus genannt. Das Verhalten von XR Origin variiert je nach Zentrumsmodus:

  • Im SessionOrigin Zentrumsmodus kann XR Origin frei bewegt werden.

    Der SessionOrigin-Modus wird in der Regel in Szenen verwendet, in denen nur Bewegungstracking aktiv ist. Wenn andere Funktionen gleichzeitig ausgeführt werden, wird der SessionOrigin-Modus normalerweise nicht verwendet.

    Bei der Verwendung von Headsets muss jedoch der Unity-Weltursprung verwendet werden, wenn der Hersteller den Referenzpunkt für Bewegungstracking in Unity nicht korrekt implementiert hat, was den erzwungenen Einsatz des SessionOrigin-Modus bedeutet. Diese Situation erfordert, dass der Inhaltsstammknoten der AR-Funktion folgt, was die Inhaltsdarstellung beeinträchtigen kann, aber es gibt bis zu Änderungen durch Drittanbieter keine andere Lösung.

  • In anderen Zentrumsmodi (z. B. FirstTarget) kann XR Origin nicht frei bewegt werden.

    Der FirstTarget-Modus wird in der Regel in Szenen ohne Bewegungstracking oder mit anderen AR-Funktionen verwendet, die gleichzeitig mit Bewegungstracking laufen.

    In diesem Modus wird die Position von XR Origin durch die AR-Funktion bestimmt, daher kann XR Origin nicht frei verschoben werden.

Ausführliche Informationen zu Zentrumsmodi und der Bewegungsweise von Objekten innerhalb der Szene finden Sie unter: Zentrumsmodus.

Form und Zusammensetzung von XR Origin

EasyAR kann zwei verschiedene Formen von XR Origin verwenden:

  • Von EasyAR bereitgestellte XR Origin
  • Von Unity XR Framework bereitgestellte XR Origin

XR Origin (EasyAR)

Eine typische XR Origin-Struktur sieht folgendermaßen aus:

alt text

Der XR Origin-Stammknoten ist ein leeres GameObject, das einen oder mehrere XR Origin Child-Kindknoten haben kann. XR Origin Child enthält eine XROriginChildController-Komponente, die die Steuerlogik von XR Origin repräsentiert.

Während der Session-Laufzeit wird eine XR Origin und ein XR Origin Child automatisch erstellt, wenn die Szene keine korrekte XR Origin-Struktur aufweist. Während des Betriebs wird XR Origin Child auf dieselbe Position und Ausrichtung wie XR Origin beschränkt.

Von der Session generierte Objekte, wie z. B. Punktwolken aus Sparse Spatial Mapping oder Netze aus Dense Spatial Mapping, werden unter dem XR Origin Child-Knoten erstellt.

Dieses Video zeigt den Effekt von Dense Spatial Mapping, das gleichzeitig mit Bewegungstracking in derselben Szene ausgeführt wird. Man erkennt, dass das generierte Netz unter dem XR Origin Child-Knoten erstellt wird.

Hinweis: Um das Verständnis zu erleichtern, wurde die Tiefenkartengenerierung im Video deaktiviert, daher unterscheidet sich der Inhalt der Scene-Ansicht von der tatsächlichen Laufzeitdarstellung. Die Darstellung in der Game-Ansicht entspricht der bei deaktivierter Mesh-Transparenz.

[Optional] XR Origin (Unity XR)

Bei Bedarf können Sie die von Unity XR Framework bereitgestellte XR Origin-Komponente verwenden.

Bei Verwendung der von Unity XR Framework bereitgestellten XR Origin sieht eine typische Struktur folgendermaßen aus:

alt text

In einer Headset-Szene sieht eine typische Struktur folgendermaßen aus:

alt text

Der XR Origin-Stammknoten ist ein von Unity XR Framework erstelltes und verwaltetes GameObject, das einen oder mehrere XR Origin Child-Kindknoten haben kann. XR Origin Child enthält eine XROriginChildController-Komponente, die die Steuerlogik von XR Origin repräsentiert.

Während der Session-Laufzeit wird ein XR Origin Child automatisch erstellt, wenn die Szene keine korrekte XR Origin Child-Struktur aufweist. Während des Betriebs wird XR Origin Child auf dieselbe Position und Ausrichtung wie XR Origin beschränkt.

Die von Unity XR Framework bereitgestellte XR Origin bietet hauptsächlich Unterstützung für die folgenden beiden Fälle:

  • Sie verwenden bereits AR Foundation in Ihrem Projekt und möchten, dass es gleichzeitig mit EasyAR funktioniert oder je nach Geräteunterstützung zwischen beiden wechselt.
  • Das von Ihnen verwendete Headset-SDK nutzt die von Unity XR Framework bereitgestellte XR Origin-Komponente.
Anmerkung

Wenn das Unity XR-Kernpaket com.unity.xr.core-utils nicht in das Projekt importiert wurde und sich die Kamera in der Szene in derselben Hierarchiestruktur wie die von Unity XR Framework bereitgestellte XR Origin befindet (Kamera und übergeordneter Knoten namens Camera Offset), geht die Session davon aus, dass diese Struktur von Unity XR Framework erstellt wurde, und verwendet sie. Dies geschieht, um maximale Kompatibilität mit der Szene zu gewährleisten, d. h.: Mit AR Foundation erstellte Szenen funktionieren ohne AR Foundation im Projekt nicht, aber die verbleibenden AR-Funktionen arbeiten weiterhin normal. Abgesehen von Funktionen, die nur AR Foundation bieten kann, beeinträchtigt dies nicht einmal die Funktionalität und Gerätekompatibilität der gesamten AR-Anwendung.

Die meisten EasyAR-Beispielszenen verwenden diesen Ansatz, um sicherzustellen, dass sie auch ohne AR Foundation ausgeführt werden können und bei Vorhandensein von AR Foundation die Zusammenarbeit mit AR Foundation demonstrieren können.

In der Definition von AR Foundation ist dessen XR Origin das Zentrum des Tracking-Bereichs in der XR-Szene. Es ist jedoch wichtig zu beachten, dass in AR Foundation Bewegungstracking als obligatorische Funktion betrachtet wird und das beschriebene Tracking in der XR-Szene Bewegungstracking ist.

Im EasyAR-System ist Bewegungstracking eine optionale Funktion, daher ist XR Origin ebenfalls optional. XR Origin wird nur erstellt und verwendet, wenn die Bewegungstracking-Funktion aktiviert ist.

Lebenszyklus von XR Origin

Der Lebenszyklus von XR Origin hängt von der Session ab. Beim Starten der Session wird XR Origin ausgewählt oder erstellt (wenn die Szene keine korrekte XR Origin-Struktur aufweist). Beim Stoppen der Session verbleibt XR Origin an Ort und Stelle, bis sie von der nächsten Session verwendet oder manuell gelöscht wird.

Nächste Schritte

Erstellung

Laufzeitsteuerung

Verwandte Themen