Unity AR tracking targets - target
target repräsentiert verschiedene trackbare Objekte in Unity. Im Folgenden lernen Sie die grundlegenden Konzepte, den Status und den Lebenszyklus von tracking targets in Unity AR kennen.
Voraussetzungen
- Machen Sie sich mit den grundlegenden Konzepten, der Zusammensetzung und dem Arbeitsablauf einer session vertraut, indem Sie Einführung in ARSession lesen.
Was ist ein target
Ein target ist die Repräsentation eines Objekts in Unity, das von der AR-Funktionalität erkannt und verfolgt wird. Im realen Leben können diese Objekte Bilder, 3D-Objekte, Raumkarten usw. sein. Durch das Erkennen und Verfolgen dieser Objekte können AR-Anwendungen virtuelle Inhalte in der realen Welt überlagern und so umfangreiche interaktive Erlebnisse schaffen.
Einige targets sind in der realen Welt stationär (z.B. ein Poster an der Wand).
Dieses Video zeigt eine einfache AR-Szene mit Bildverfolgung. Links ist die
Hierarchy-Ansicht, in der Mitte dieScene-Ansicht und rechts dieGame-Ansicht. Das Video wurde mit simulierten Laufzeitdaten imPlay-Modus des Unity-Editors aufgenommen. Der Inhalt derGame-Ansicht entspricht dem, was der Benutzer in der realen Welt auf seinem Smartphone sieht. In diesem Video repräsentiert das target (ImageTarget) eine Visitenkarte in der realen Welt. Wir haben eine gelbe Kugel darüber platziert, um seine Bewegung zu beobachten.Wie man sehen kann, ist das target sowohl in der realen Welt als auch in der Szene fest positioniert, während die Kamera (blauer Kegel), die den Benutzer repräsentiert, sich entsprechend der Bewegung des Benutzers in der realen Welt bewegt. Der weiße Kegel zeigt die Position und Ausrichtung der Kamera in den letzten Momenten. Die gelbe Kugel befindet sich unter dem target-Knoten (ImageTarget), was eine typische Organisationsstruktur für Objekte in solchen Szenen darstellt.
Einige targets können sich in der realen Welt bewegen (z.B. ein Poster auf einem Bus).
Dieses Video zeigt dieselbe Szene, aber diesmal haben wir das target (die Visitenkarte) in der realen Welt bewegt. Wie man sieht, bewegt sich die gelbe Kugel mit der Visitenkarte mit, und in der
Game-Ansicht bleibt die Kugelmarkierung auf der Visitenkarte positioniert.
Um das Verständnis zu erleichtern, wurde in beiden Videos die Anzeige des Gizmos für ImageTarget deaktiviert, und beide verwenden den SessionOrigin-Zentrumsmodus. In diesen Videos entspricht die Bewegung der Objekte in der Scene-Ansicht der in der realen Welt. In einer tatsächlichen AR-Szene ist diese Bewegungsbeziehung etwas komplexer.
Verhalten von targets 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 Betriebs der session bestimmt, wird als Zentrumsmodus bezeichnet. Das Verhalten von targets unterscheidet sich je nach Zentrumsmodus:
Im SessionOrigin-Zentrumsmodus können targets nicht beliebig bewegt werden.
Der SessionOrigin-Modus kann nur in Szenen mit Bewegungstracking existieren.
Obwohl dieser Modus in den vorherigen einfachen Szenen die Bewegung von targets und Kamera in der Realität gut darstellen kann, wird er in praktischen AR-Szenen selten verwendet, da die session in diesem Modus die Bewegung des targets steuert und aufgrund von Berechnungsungenauigkeiten im Bewegungstracking oder in der AR-Funktionalität selbst schwer zu gewährleisten ist, dass das target vollständig stationär bleibt. In diesem Fall muss der Inhaltsstammknoten der Bewegung des targets folgen, was sich im Unity-System auf das Inhaltsverhalten (z.B. das Physiksystem) auswirken kann.
Im FirstTarget- oder SpecificTarget-Zentrumsmodus kann das target, wenn es genau das als Zentrum ausgewählte Objekt ist, beliebig bewegt werden.
Generell ist der FirstTarget-Modus gebräuchlicher, da er sicherstellt, dass das erste verfolgte Objekt in der Szene nicht von der session gesteuert wird. Wenn keine Anforderung besteht, das target zu bewegen, bleibt es stationär, unabhängig davon, ob sich das entsprechende Objekt in der realen Szene bewegt.
Im FirstTarget- oder SpecificTarget-Zentrumsmodus, wenn das target nicht das als Zentrum ausgewählte Objekt ist, und im Camera-Zentrumsmodus können targets nicht beliebig bewegt werden.
Wenn mehrere Objekte gleichzeitig verfolgt werden, sind diese Objekte in der realen Umgebung zwar oft relativ stationär, aber aufgrund von Berechnungsungenauigkeiten kann zu jedem Zeitpunkt nur ein target nicht von der session gesteuert werden. Je nach Konfiguration ist das Bewegungsverhalten der anderen targets nicht garantiert; selbst wenn sie sich in der Realität nicht bewegen, kann es in der Szene zu geringfügigen Bewegungen kommen. Dieses Verhalten bei gleichzeitiger Verfolgung mehrerer Objekte sollte berücksichtigt und die Inhaltsstrategie entsprechend angepasst werden.
Ausführliche Informationen zum Zentrumsmodus und zur Bewegungsweise von Objekten in der Szene finden Sie unter: Zentrumsmodus.
Status des targets
Der Status eines targets spiegelt dessen Erkennungs- und Verfolgungsstatus in der aktuellen session wider. Häufige Status umfassen:
- Verfolgt (Tracked): Das target wurde erfolgreich erkannt und verfolgt. Die AR-Anwendung kann virtuelle Inhalte darauf überlagern, die mit dem Objekt in der realen Welt übereinstimmen.
- Nicht verfolgt (Not Tracked): Das target wird derzeit nicht erkannt oder verfolgt. Wenn die AR-Anwendung dennoch virtuelle Inhalte darauf überlagert, stimmen diese nicht mit dem Objekt in der realen Welt überein.
Gleichzeitig können Sie auf Statusänderungen mit diesen Ereignissen reagieren:
- TargetFound: Wird ausgelöst, wenn das target erfolgreich erkannt und verfolgt wird.
- TargetLost: Wird ausgelöst, wenn das target den Verfolgungsstatus verliert.
Lebenszyklus eines targets
In einer Unity AR-Szene werden targets normalerweise von der entsprechenden frame filter-Komponente verwaltet. Der frame filter verarbeitet Bilddaten von der frame source und erkennt und verfolgt darin enthaltene targets. Der Lebenszyklus des frame filter hängt von der session ab. Obwohl die Implementierung verschiedener AR-Funktionen unterschiedlich sein kann, werden targets in den meisten Fällen beim Start der session geladen und nach dem Laden von der session gesteuert. Wenn die session gestoppt wird, werden die targets entladen und verbleiben an Ort und Stelle, bis sie von der nächsten session verwendet oder manuell gelöscht werden.
Nächste Schritte
- Versuchen Sie, den Status des targets abzurufen
- Verwenden Sie das entsprechende target in verschiedenen AR-Funktionen