AR Session Zentrumsmodus
Der Zentrumsmodus ist ein Kernkonzept von Unity AR. Er bestimmt, welches Objekt während der Sitzung als Referenzpunkt (Zentrumsobjekt) für alle AR-Trackings ausgewählt wird und welche Objekte in der Sitzung frei bewegt werden können. Im Folgenden erfahren Sie die Grundkonzepte des Zentrumsmodus und seinen Einfluss auf das Bewegungsverhalten von Objekten in der Szene.
Erste Schritte
- Machen Sie sich mit den Grundkonzepten, Komponenten und dem Workflow einer Sitzung vertraut: Einführung in die AR-Sitzung.
- Erfahren Sie mehr über die Rolle der Kamera in AR-Szenen und wie die Sitzung Kameraeigenschaften für korrekte AR-Erlebnisse steuert: Kamera.
- Verstehen Sie die Grundkonzepte, Komponenten und den Lebenszyklus von XR Origin: XR Origin.
- Lernen Sie die Grundkonzepte, Zustände und den Lebenszyklus von Targets kennen: Target.
Zentrumsobjekt und Zentrumsmodus
In einer Sitzung können gleichzeitig eine oder mehrere AR-Funktionen laufen. Diese AR-Funktionen können verschiedene Objekte tracken und möglicherweise die Bewegungstracking-Funktion nutzen, um Position und Ausrichtung des Geräts selbst zu verfolgen.
Um sicherzustellen, dass das Bewegungsverhalten von Objekten in der Szene den Erwartungen entspricht, muss die Sitzung einen Referenzpunkt als Zentrum für alle AR-Trackings auswählen. Dieses Zentrum wird in der Unity-Szene durch das Zentrumsobjekt (CenterObject) dargestellt. Der Zentrumsmodus (CenterMode) ist die Regel, die während der Sitzung festlegt, welches Objekt dieses Zentrumsobjekt ist.
Das Zentrum einer Sitzung kann eines der folgenden Objekte sein:
- Ein getracktes target
- XR Origin
- Die Kamera
Der Zentrumsmodus bestimmt, welches Objekt als Zentrumsobjekt ausgewählt wird und ob dieses Objekt frei bewegt werden kann. Alle anderen Objekte (einschließlich nicht-zentrale Kameras, XR Origin und targets) werden von der Sitzung gesteuert und bewegen sich relativ zum Zentrumsobjekt.
In Unity unterstützt die session die folgenden vier zentrumsmodi:
| Name | Diagramm | Beschreibung |
|---|---|---|
| FirstTarget SpecificTarget |
![]() |
Verwendet target als zentrum, welches frei bewegt werden kann. Dabei gilt:
|
| SessionOrigin | ![]() |
Verwendet den XR Origin als zentrum, der frei bewegt werden kann. Die camera und die targets in der session werden von der session kontrolliert und bewegen sich relativ zum zentralen XR Origin. |
| Camera | ![]() |
Verwendet die kamera als zentrum, die frei bewegt werden kann. Der XR Origin und die targets in der session werden von der session kontrolliert und bewegen sich relativ zur zentralen kamera. |
Im Diagramm stellen drei objekte dar: Die blaue kugel repräsentiert den XR Origin, der blaue kegel steht für die kamera und das gelbe bild symbolisiert ein target. In verschiedenen zentrumsmodi wählt die session unterschiedliche objekte als zentrales objekt aus, dessen lokales koordinatensystem im bild dargestellt ist.
Tipp
Falls Sie erfahrung mit AR Foundation haben, ist Ihnen möglicherweise aufgefallen, dass dort kein ähnliches konzept existiert. Tatsächlich verhält sich AR Foundation konsistent mit dem SessionOrigin zentrumsmodus.
In der session wird die relative bewegungsbeziehung zwischen target und camera von der aktuellen session gesteuert. Die relative bewegungsbeziehung zwischen XR Origin und camera wird entweder von der aktuellen session oder von einem drittanbieter-framework (z.B. AR Foundation) kontrolliert. Die existenz der zentrumsmodi stellt sicher, dass die session die bewegungsverhalten der objekte in der szene unter verschiedenen laufzeitumgebungen korrekt steuern kann.
Beispielsweise kontrollieren AR Foundation oder headset-SDKs basierend auf Unity XR die relative bewegung zwischen XR Origin und camera. Hier kann der XR Origin als entwurf des Unity XR-frameworks von der session bewegt werden, die camera jedoch nicht. In diesem fall beschränkt die session die zentrumsmodi auf FirstTarget, SpecificTarget oder SessionOrigin. Für die session ist das zentrum dann der XR Origin oder ein bestimmtes target, während für das Unity XR-framework der XR Origin das zentrum bleibt – das gesamte system funktioniert reibungslos.
Warnung
In Unity AR können objekte, die im Unity-weltkoordinatensystem existieren und deren transform nicht durch session-komponenten angepasst wurden, möglicherweise nicht korrekt angezeigt werden. Da die session die position und ausrichtung anderer objekte in der szene basierend auf dem zentralen objekt anpasst, können nicht von der session kontrollierte objekte positionen und ausrichtungen aufweisen, die von den berechneten werten abweichen, was zu unerwartetem verhalten führt.
Beispielsweise könnte ein pandamodell, das im weltkoordinatensystem platziert ist, keine korrespondenz zu realen objekten aufweisen und scheinbar schweben oder sich unkontrolliert bewegen.
Die korrekte vorgehensweise ist, inhalte stets unter einem target-knoten oder unter dem XR Origin-knoten (wenn inhalte der bewegung des XR Origin folgen sollen) zu platzieren. Dadurch werden position und ausrichtung der inhalte basierend auf den berechnungen der session angepasst, was eine korrekte überlagerung in der realen welt sicherstellt.
Manuelle anpassungen der position und ausrichtung von inhalten an targets oder XR Origin sind möglich, müssen jedoch zum richtigen zeitpunkt erfolgen. Siehe Auswahl eines geeigneten zentrumsmodus.
Verfügbare center modi
Nicht alle zentrumsmodi sind in jeder situation verfügbar. Die session bestimmt basierend auf der aktuellen laufzeitumgebung und der verwendeten frame source, welche zentrumsmodi verfügbar sind, um das bewegungsverhalten der szene korrekt zu steuern. Die eigenschaft ARSession.AvailableCenterMode gibt die liste der verfügbaren zentrumsmodi der aktuellen session zurück.
Abhängig von der verwendeten frame source ergeben sich unterschiedliche verfügbarkeiten für zentrumsmodi:
| Frame source | Kamera gesteuert | Bewegungsdaten vorhanden | Ursprungsdesign vorhanden | Verfügbare zentrumsmodi |
|---|---|---|---|---|
|
Ja | Nein | - |
|
|
Ja | Ja | Ja |
camera keinuntergeordnetes element des XR Origin ist |
|
Nein | Ja | Ja |
|
|
Nein | Ja | Nein |
|
Abgesehen von der verwendung von FramePlayer werden verfügbare zentrumsmodi während der session-konfiguration bestimmt. Bei verwendung von FramePlayer werden verfügbare zentrumsmodi dynamisch pro frame basierend auf vorhandenen bewegungsdaten ermittelt.
Eigenschaften verschiedener Zentrumsmodi
Im Folgenden zeigen wir anhand von Beispielvideos das Bewegungsverhalten von Objekten in verschiedenen Zentrumsmodi.
Die Videoinhalte:
In der realen Welt gibt es zwei verschiedene trackbare Objekte:
- Ein Weihnachtsbaum, der stationär ist. Er wird durch sparse spatial mapping getrackt.
- Ein A4-Blatt mit einem aufgedruckten Bild, das bewegt werden kann. Es wird durch image tracking getrackt.
Bei der Aufnahme bewegt sich der Beobachter (Handy) ausgehend von rechts hinter dem Baum um ihn herum. Das A4-Blatt schwingt vor dem Beobachter hin und her.
Zur besseren Visualisierung wurden verschiedene Marker hinzugefügt:
- Weihnachtsbaum: Im getrackten Zustand wird er durch hellblaue Punktwolken im Raum markiert. Bei Trackingverlust verschwinden diese Marker.
- A4-Blatt: Im getrackten Zustand wird ein Panda darüber eingeblendet. In der
Game-Ansicht wird zusätzlich ein Abbild des Blatts angezeigt. Bei Trackingverlust verschwinden diese Marker.- XR Origin: Wird durch eine blaue Kugel an seiner Position markiert.
- Kamera: Wird durch einen blauen Kegel an ihrer Position markiert, wobei die Hauptachse des Kegels der Blickrichtung der Kamera entspricht.
Diese Videos wurden mit Simulatordaten im Play-Modus des Unity-Editors aufgenommen. Links ist die Scene-Ansicht, rechts die Game-Ansicht. Der Inhalt der Game-Ansicht entspricht dem, was der Nutzer in der realen Welt auf dem Handy sieht.
FirstTarget- und SpecificTarget-Zentrumsmodi
FirstTarget und SpecificTarget Center-Modi sind Modi, in denen ein bestimmtes target als zentrales Objekt dient. In diesen Modi werden neben dem zentralen target auch die camera im Session, XR Origin und andere targets von der Session gesteuert und bewegen sich relativ zum zentralen target.
Einige Targets können sich in der realen Welt bewegen, wie beispielsweise das A4-Papier im Video.
In diesem Video oben ist das zentrale Objekt das via Image-Tracking verfolgte A4-Papier. Man sieht, dass sich das A4-Papier (Panda) ohne externe Eingriffe nicht bewegt, während die Kamera (blaue Pyramide), XR Origin (blaue Kugel) und der Weihnachtsbaum (hellblaue Punktwolke) sich bewegen.
Einige Targets sind in der realen Welt statisch, wie der Weihnachtsbaum im Video.
In diesem Video oben ist das zentrale Objekt der via Sparse-Spatial-Map verfolgte Weihnachtsbaum. Man sieht, dass sich der Weihnachtsbaum (hellblaue Punktwolke) ohne externe Eingriffe nicht bewegt, während die Kamera (blaue Pyramide) und das A4-Papier (Panda) sich bewegen. XR Origin (blaue Kugel) bewegt sich ebenfalls nicht, aber nur, weil es relativ zum Weihnachtsbaum statisch ist.
In diesen beiden Modi kann sich das zentrale target als Referenzpunkt frei bewegen. In diesem Fall bewegen sich die camera, XR Origin und andere targets im Session mit. Deren Transform können nicht extern gesteuert werden.
In diesem Video oben ist das zentrale Objekt das via Image-Tracking verfolgte A4-Papier. Man sieht, dass sich beim manuellen Bewegen des A4-Papiers (Panda) die Kamera (blaue Pyramide), XR Origin (blaue Kugel) und der Weihnachtsbaum (hellblaue Punktwolke) mitbewegen. Beachte, dass sich der Inhalt der
Game-Ansicht nicht ändert, da Position und Ausrichtung der Kamera relativ zum A4-Papier und anderen Objekten unverändert bleiben.
Der Unterschied zwischen FirstTarget und SpecificTarget liegt darin, wie das zentrale target während der Laufzeit bei Änderungen ausgewählt wird. Um dies zu erklären, müssen wir Tracking-Erfolg und -Verlust betrachten.
Wenn sich das zentrale Session-Objekt ändert, reflektiert ARSession.CenterObject stets das aktuelle zentrale Objekt, aber ARSession.CenterMode ändert sich nicht.
Zentrumswechsel im FirstTarget-Modus
Im FirstTarget-Modus ist die Session immer auf das erste erkannte Target zentriert. Wenn dieses Target verloren geht, wählt die Session ein neues Zentrum. Wenn die Session ein anderes Target verfolgt oder neu erfasst, wird dieses andere Target als neues Zentrumsobjekt ausgewählt.
Eine Zentrumsneuauswahl erfolgt in folgenden Situationen:
Im aktuellen Frame wird kein
Targetverfolgt.
In diesem Fall degradiert die Session in den SessionOrigin-Modus und wähltXR Originals Zentrumsobjekt, sofern dieser Modus verfügbar ist; andernfalls degradiert sie in den Camera-Modus und wählt dieKameraals Zentrumsobjekt.Im aktuellen Frame wird ein
Targetverfolgt, im vorherigen Frame wurde jedoch keinTargetverfolgt.
In diesem Fall wählt die Session eines der verfolgtenTargetsals Zentrumsobjekt aus.Im aktuellen Frame wird ein
Targetverfolgt, aber das zentraleTargetdes vorherigen Frames wird im aktuellen Frame nicht mehr verfolgt.
In diesem Fall wählt die Session eines der verfolgtenTargetsals neues Zentrumsobjekt aus.
Im obigen Video ist das anfängliche Zentrumsobjekt ein über Image-Tracking erfasstes A4-Blatt (Panda). Wenn die Verfolgung des A4-Blattes verloren geht, wählt die Session ein neues Zentrumsobjekt aus: Der Weihnachtsbaum (helleblaue Punktwolke) wird zum neuen Zentrum. Am Ende des Videos wird das A4-Blatt erneut erfasst, wird aber nicht zum Zentrum, da der Weihnachtsbaum bereits das Zentrumsobjekt ist.
Zentrumswechsel im SpecificTarget-Modus
Im SpecificTarget-Modus ist die Session immer auf ein spezifisch zugewiesenes Target zentriert. Wenn die Verfolgung dieses Targets verloren geht, wählt die Session ein neues Zentrum, wählt aber kein anderes Target als neues Zentrumsobjekt aus. Wird das spezifizierte Target erneut erfasst, wird es wieder als Zentrumsobjekt verwendet.
Eine Zentrumsneuauswahl erfolgt in folgenden Situationen:
Das spezifizierte
Targetwird im aktuellen Frame nicht verfolgt.
In diesem Fall degradiert die Session in den SessionOrigin-Modus und wähltXR Originals Zentrumsobjekt, sofern dieser Modus verfügbar ist; andernfalls degradiert sie in den Camera-Modus und wählt dieKameraals Zentrumsobjekt.Das spezifizierte
Targetwird im aktuellen Frame verfolgt, wurde aber im vorherigen Frame nicht verfolgt.
In diesem Fall wählt die Session das spezifizierteTargetals Zentrumsobjekt aus.
Im obigen Video ist das Zentrumsobjekt ein spezifisch zugewiesenes A4-Blatt (Panda), erfasst durch Image-Tracking. Wenn die Verfolgung des A4-Blattes verloren geht, wählt die Session kein anderes
Target(z.B. den Weihnachtsbaum, hellblaue Punktwolke) als neues Zentrumsobjekt aus. Am Ende wird das A4-Blatt erneut erfasst und wird wieder das Zentrumsobjekt.
SessionOrigin-Zentrumsmodus
Der SessionOrigin-Modus verwendet XR Origin als Zentrumsobjekt. In diesem Modus werden die Kamera und alle Targets in der Session von der Session gesteuert. Ihre Bewegung erfolgt relativ zum zentralen Referenzpunkt XR Origin.
Im obigen Video ist das Zentrumsobjekt die XR Origin. Ohne externe Eingriffe bleibt die XR Origin (blauer Kugel) statisch, während sich die Kamera (blaue Pyramide) und das A4-Blatt (Panda) bewegen. Der Weihnachtsbaum (helleblaue Punktwolke) bewegt sich ebenfalls nicht, da er relativ zur XR Origin statisch ist.
In diesem Modus kann der zentrale Referenzpunkt XR Origin frei bewegt werden. Die Kamera und alle Targets bewegen sich dann mit. Ihre Transform-Eigenschaften können nicht extern gesteuert werden.
Im obigen Video ist das Zentrumsobjekt die XR Origin. Durch manuelle Bewegung der XR Origin (blaue Kugel) bewegen sich die Kamera (blaue Pyramide), der Weihnachtsbaum (helleblaue Punktwolke) und das A4-Blatt (Panda) mit. Die Ansicht im
Game-Fenster ändert sich nicht, da die relative Position und Ausrichtung der Kamera zur XR Origin und zu den Objekten unverändert bleibt.
Im SessionOrigin-Modus ist XR Origin zwingend erforderlich und gültig. Daher ändert sich das Zentrumsobjekt in diesem Modus nicht.
Camera-Zentrumsmodus
Der Camera-Modus verwendet die Kamera als Zentrumsobjekt. In diesem Modus werden die XR Origin und alle Targets von der Session gesteuert. Ihre Bewegung erfolgt relativ zum zentralen Referenzpunkt Kamera.
Im obigen Video ist das Zentrumsobjekt die Kamera. Ohne externe Eingriffe bleibt die Kamera (blaue Pyramide) statisch, während sich die XR Origin (blaue Kugel), der Weihnachtsbaum (helleblaue Punktwolke) und das A4-Blatt (Panda) bewegen.
In diesem Modus kann der zentrale Referenzpunkt Kamera frei bewegt werden. Die XR Origin und alle Targets bewegen sich dann mit. Ihre Transform-Eigenschaften können nicht extern gesteuert werden.
Im obigen Video ist das Zentrumsobjekt die Kamera. Durch manuelle Bewegung der Kamera (blaue Pyramide) bewegen sich die XR Origin (blaue Kugel), der Weihnachtsbaum (helleblaue Punktwolke) und das A4-Blatt (Panda) mit. Die Ansicht im
Game-Fenster ändert sich nicht, da die relative Position und Ausrichtung der Kamera zur XR Origin und zu den Objekten unverändert bleibt.
Im Camera-Modus ist die Kamera zwingend erforderlich und gültig. Daher ändert sich das Zentrumsobjekt in diesem Modus nicht.
Nächste Schritte
- Probieren Sie die Auswahl eines geeigneten Zentrumsmodus


