Freigeben über


Weltsperrung und räumliche Verankerung in Unity

Hero-Bild der Weltsperrtools

Wenn Sie Ihre Hologramme an Ort und Stelle halten, sich mit Ihnen bewegen oder sich in einigen Fällen relativ zu anderen Hologrammen positionieren, ist ein großer Teil der Erstellung von Mixed Reality-Anwendungen. Dieser Artikel führt Sie durch unsere empfohlene Lösung mithilfe von World Locking Tools, aber wir behandeln auch das manuelle Einrichten von räumlichen Verankerungen in Ihren Unity-Projekten. Bevor wir in einen Code springen, ist es wichtig zu verstehen, wie Unity den Koordinatenbereich und verankert in seinem eigenen Modul behandelt.

Koordinatensysteme im Weltmaßstab

Beim Schreiben von Spielen, Datenvisualisierungs-Apps oder Virtual Reality-Apps besteht der typische Ansatz darin, ein absolutes Weltkoordinatensystem einzurichten, dem alle anderen Koordinaten zuverlässig zugeordnet werden können. In dieser Umgebung können Sie immer eine stabile Transformation finden, die eine Beziehung zwischen zwei objekten in dieser Welt definiert. Wenn Sie diese Objekte nicht verschoben haben, bleiben ihre relativen Transformationen immer gleich. Diese Art von globalem Koordinatensystem ist einfach zu finden, wenn Sie eine rein virtuelle Welt rendern, in der Sie alle Geometrie im Voraus kennen. Vr-Apps im Raummaßstab etablieren heute in der Regel diese Art von absolutem Raumkoordinatensystem mit seinem Ursprung auf dem Boden.

Im Gegensatz dazu verfügt ein ungebundenes Mixed Reality-Gerät wie HoloLens über ein dynamisches sensorgesteuertes Verständnis der Welt und passt seine Kenntnisse im Laufe der Zeit der Umgebung des Benutzers kontinuierlich an, während sie über eine ganze Etage eines Gebäudes gehen. Wenn Sie all Ihre Hologramme in einem naiven starren Koordinatensystem platziert haben, würden diese Hologramme in einem weltgerechten Koordinatensystem im Laufe der Zeit verdriften, entweder basierend auf der Welt oder relativ zueinander.

Beispielsweise kann das Headset derzeit glauben, dass zwei Standorte in der Welt 4 Meter auseinander liegen, und dann später verfeinern Sie dieses Verständnis, und lernen Sie, dass die Standorte tatsächlich 3,9 Meter auseinander liegen. Wenn diese Hologramme anfangs 4 Meter auseinander in einem einzigen starren Koordinatensystem platziert wurden, würde einer davon immer 0,1 Meter von der realen Welt entfernt erscheinen.

Sie können räumliche Verankerungen manuell in Unity platzieren, um die Position eines Hologramms in der physischen Welt beizubehalten, wenn der Benutzer mobil ist. Dies opfert jedoch die Selbstkonsistenz innerhalb der virtuellen Welt. Verschiedene Anker bewegen sich ständig in Relation zueinander und bewegen sich auch durch den globalen Koordinatenraum. In diesem Szenario werden einfache Aufgaben wie das Layout schwierig. Physiksimulation kann auch problematisch sein.

World Locking Tools (WLT) bringt Ihnen das Beste aus beiden Welten, indem Sie ein einzelnes starres Koordinatensystem mithilfe einer internen Versorgung mit räumlichen Verankerungen in der virtuellen Szene stabilisieren, während sich der Benutzer bewegt. WLT analysiert die Koordinaten der Kamera und diese räumlichen Verankerungen jedes Frames. Anstatt die Koordinaten aller Elemente der Welt zu ändern, um die Korrekturen in den Koordinaten des Kopfes des Benutzers auszugleichen, korrigiert WLT stattdessen die Koordinaten des Kopfes.

Wählen Sie Ihren Weltsperrungsansatz aus.

Verwenden Sie nach Möglichkeit World Locking Tools für die Hologrammpositionierung.

World Locking Tools bietet ein stabiles Koordinatensystem, das die sichtbaren Inkonsistenzen zwischen virtuellen und realen Markern minimiert. World Locking Tools sperrt die gesamte Szene mit einem freigegebenen Ankerpool, anstatt jede Gruppe von Objekten mit dem eigenen individuellen Anker der Gruppe zu sperren.

World Locking Tools übernimmt automatisch die interne Erstellung und Verwaltung räumlicher Verankerungen. Sie müssen nicht mit ARAnchorManager oder WorldAnchor interagieren, um Ihre Hologramme weltgesperrt zu halten.

  • Verwenden Sie für Unity 2019/2020 mit OpenXR oder dem Windows XR-Plug-In ARAnchorManager.
  • Verwenden Sie für ältere Unity-Versionen oder WSA-Projekte WorldAnchor.

Einrichten der Weltsperrung

Laden Sie das Mixed Reality-Featuretool herunter, um mit der Verwendung der World Locking Tools zu beginnen. Weitere Informationen zu den Grundlagen finden Sie auf der Hauptdokumentationsseite der World Locking Tools für Links zu Übersicht, Schnellstart und anderen nützlichen Themen.

Automatisiertes Setup

Wenn Ihr Projekt einsatzbereit ist, führen Sie das Dienstprogramm "Szenen konfigurieren" aus den Mixed Reality > World Locking Tools aus:

Unity-Editor mit ausgewähltem Menü

Wichtig

Das Hilfsprogramm zum Konfigurieren der Szene kann jederzeit erneut ausgeführt werden. Es sollte zum Beispiel erneut ausgeführt werden, wenn das AR-Ziel von „Legacy“ in „XR SDK“ geändert wurde. Wenn die Szene bereits ordnungsgemäß konfiguriert ist, hat die Ausführung des Hilfsprogramms keinerlei Auswirkungen.

Schnellansichten

Während der frühen Entwicklung kann das Hinzufügen von Visualisierungen hilfreich sein, um sicherzustellen, dass WLT eingerichtet und ordnungsgemäß funktioniert. Sie können zur Verbesserung der Produktionsleistung oder wenn sie aus irgendeinem Grund nicht mehr benötigt werden, mit dem Hilfsprogramm „Remove visualizers“ (Visualisierungen entfernen) entfernt werden. Weitere Informationen zu den Visualisierungen finden Sie in der Dokumentation zu den Tools.

Dauerhaftes Sperren der Welt

Räumliche Anker sparen Hologramme im realen Raum zwischen Anwendungssitzungen. Nach dem Speichern im HoloLens-Ankerspeicher können räumliche Anker in verschiedenen Sitzungen gefunden und geladen werden und sind ein idealer Fallback, wenn keine Internetverbindung vorhanden ist.

Wichtig

Lokale Anker werden auf dem Gerät gespeichert, während Azure-Raumanker in der Cloud gespeichert werden. Sie können lokale und Azure-Anker im selben Projekt ohne Konflikte haben. Weitere Informationen zum Integrieren von Azure-Clouddiensten zum Speichern Ihrer Anker finden Sie unter Azure Spatial Anchors.

Standardmäßig stellen World Locking Tools das Koordinatensystem von Unity relativ zur physischen Welt auf Geräten wieder her, die die Persistenz lokaler räumlicher Anker unterstützen. Damit ein Hologramm an derselben Stelle in der physischen Welt angezeigt wird, nachdem die Anwendung beendet und erneut ausgeführt wurde, muss die Anwendung nur die gleiche Pose auf dem Hologramm wiederherstellen.

World locking context component in Unity inspector

Wenn die Anwendung eine genauere Kontrolle benötigt, können Sie das automatische Speichern und das automatische Laden im Inspektor deaktivieren und die Persistenz von einem Skript aus verwalten. Weitere Informationen finden Sie unter Persist spatial coordinate systems.

World Locking Tools unterstützt lokale Verankerungspersistenz nur auf HoloLens-Geräten. Für Android-, iOS- und HoloLens-Geräte ist die Integration in Azure Spatial Anchors erforderlich, um Persistenz und freigabe von Koordinatenplätzen über Sitzungen und Geräte hinweg zu unterstützen. Weitere Informationen und Beispiele mit World Locking Tools mit Azure Spatial Anchors finden Sie unter World Locking Tools (WLT) in Kombination mit Azure Spatial Anchors (ASA).

Nächste Schritte

Teilen Sie einen weltgesperrten Koordinatenbereich:

Informationen zur räumlichen Zuordnung:

Kehren Sie zu den Unity-Entwicklungsprüfpunkten zurück:

Siehe auch