Tracking-Ziel in Unity AR -- target
target beschreibt in Unity verschiedene verfolgbare Objekte. In den folgenden Abschnitten lernen Sie die Grundkonzepte, Zustände und den lifecycle des Tracking-Objekts target in Unity AR kennen.
Vor dem Start
- Verstehen Sie über Einführung in ARSession die Grundkonzepte, Zusammensetzung und den Arbeitsablauf einer session.
Was ist target
target bezeichnet die Repräsentation der von AR-Funktionen erkannten und verfolgten Objekte in Unity. In der realen Welt können diese Objekte Bilder, 3D-Objekte, räumliche Karten usw. sein. Durch Erkennen und Verfolgen dieser Objekte kann eine AR-Anwendung virtuelle Inhalte in die reale Welt einblenden und reichhaltige interaktive Erlebnisse ermöglichen.
Einige target sind in der realen Welt statisch, etwa ein Poster an der Wand.
Dieses Video zeigt eine einfache AR-Szene mit laufendem image tracking. Links ist die Ansicht
Hierarchy, in der Mitte die AnsichtScene, rechts die AnsichtGame. Das Video wurde imPlay-Modus des Unity Editor mit Simulationsdaten aufgezeichnet. Der Inhalt der AnsichtGameentspricht dem, was der Benutzer in der realen Welt auf dem Telefon sieht. In diesem Video repräsentiert target (ImageTarget) eine Visitenkarte in der realen Welt. Darüber wurde eine gelbe Kugel als Markierung platziert, damit ihre Bewegung leichter zu beobachten ist.Man sieht, dass die Position von target in der realen Welt und in der Szene fest ist, während sich die Kamera, die den Benutzer darstellt, also der blaue Kegel, entsprechend der Bewegung des Benutzers in der realen Welt bewegt. Der weiße Kegel zeichnet die Positions- und Ausrichtungsspur der Kamera über einen vergangenen Zeitraum auf. Die gelbe Kugel befindet sich unter dem target-Knoten (ImageTarget), was auch die typische Objektorganisation in solchen Szenen ist.
Einige target können sich in der realen Welt bewegen, etwa ein Poster an einem Bus.
Dieses Video zeigt dieselbe Szene, diesmal bewegen wir jedoch target, also die Visitenkarte, in der realen Welt. Man sieht, dass sich die gelbe Kugel nach der Bewegung von target mit der Visitenkarte bewegt, und dass die Kugelmarkierung in der Ansicht
Gameweiterhin auf der Visitenkarte liegt.
Zum leichteren Verständnis wurde in den beiden Videos oben die Anzeige des gizmo von ImageTarget ausgeschaltet, und beide verwenden den center mode SessionOrigin. In diesen Videos entspricht die Bewegung der Objekte in der Ansicht Scene der realen Welt. In tatsächlichen AR-Szenen ist diese Bewegungsbeziehung etwas komplexer.
Verhalten von target in verschiedenen center mode
In Unity wird der zentrale Referenzpunkt für das gesamte AR tracking als session center bezeichnet, während die Regeln, die diesen Mittelpunkt während der session-Laufzeit bestimmen, center mode heißen. In verschiedenen center mode verhält sich target unterschiedlich:
Im center mode SessionOrigin darf target nicht beliebig bewegt werden.
Der Modus SessionOrigin kann nur in Szenen mit motion tracking existieren.
Obwohl dieser Modus in der vorherigen einfachen Szene target- und Kamerabewegungen in der Realität gut zeigen kann, wird er in praktischen AR-Szenen nicht häufig verwendet. In diesem Modus steuert die session die Bewegung von target, und aufgrund von Berechnungsfehlern beim motion tracking oder der AR-Funktion selbst ist es schwierig zu garantieren, dass target vollständig unbeweglich ist. Dann muss der Inhaltswurzelknoten target folgen, was im Unity-System Auswirkungen auf das Verhalten des Inhalts, etwa auf das Physiksystem, haben kann.
Im center mode FirstTarget oder SpecificTarget kann target frei bewegt werden, wenn target genau das als Zentrum ausgewählte Objekt ist.
Im Allgemeinen wird der Modus FirstTarget häufiger verwendet. Er garantiert, dass das erste verfolgte Objekt in der Szene nicht von der session gesteuert wird. Wenn target nicht bewegt werden muss, bleibt es fest, unabhängig davon, ob sich das entsprechende Objekt in der realen Szene bewegt.
Im center mode FirstTarget oder SpecificTarget, wenn target nicht das als Zentrum ausgewählte Objekt ist, sowie im center mode Camera, darf target nicht beliebig bewegt werden.
Wenn mehrere Objekte gleichzeitig verfolgt werden, können diese Objekte in der realen Umgebung relativ fest sein, aber aufgrund von Berechnungsfehlern kann zu einem Zeitpunkt nur ein target nicht von der session gesteuert werden. Je nach Konfiguration ist dann nicht garantiert, ob sich andere target bewegen oder nicht; selbst wenn sie sich in der Realität nicht bewegen, kann es in der Szene leichte Bewegungen geben. Dieses Verhalten beim gleichzeitigen Tracking mehrerer Objekte sollte vollständig berücksichtigt werden, und die Inhaltsstrategie sollte sinnvoll angepasst werden.
Details zu center mode und Bewegungsweisen von Objekten in der Szene finden Sie unter Center mode.
Status von target
Der Status von target spiegelt seine recognition- und tracking-Situation in der aktuellen session wider. Häufige Zustände sind:
- Tracked: target wurde erfolgreich erkannt und verfolgt. Die AR-Anwendung kann virtuelle Inhalte darauf einblenden, und der Inhalt liegt am Objekt in der realen Welt an.
- Not Tracked: target wird derzeit nicht erkannt oder nicht verfolgt. Wenn die AR-Anwendung trotzdem virtuelle Inhalte darauf einblendet, liegen diese nicht am Objekt in der realen Welt an.
Bei Statusänderungen können Sie außerdem über diese events reagieren:
- TargetFound: wird ausgelöst, wenn target erfolgreich erkannt und verfolgt wird.
- TargetLost: wird ausgelöst, wenn target den tracking-Status verliert.
Lifecycle von target
In Unity-AR-Szenen wird target normalerweise von der entsprechenden frame filter-Komponente verwaltet. frame filter verarbeitet Bilddaten vom frame source und erkennt und verfolgt darin enthaltene target. Der lifecycle des frame filter hängt von der session ab. Auch wenn sich die Implementierungen verschiedener AR-Funktionen unterscheiden können, wird target in den meisten Fällen beim Start der session geladen und nach dem Laden von der session gesteuert. Beim Stoppen der session wird target entladen und bleibt an Ort und Stelle, bis es von der nächsten session verwendet oder manuell gelöscht wird.
Nächste Schritte
- Versuchen Sie, den target-Status zu erhalten
- Versuchen Sie, in verschiedenen AR-Funktionen den entsprechenden target zu verwenden