Weltsperrung und räumliche Verankerung in Unity

World locking tools hero image

Wenn Sie Ihre Hologramme erhalten, sich mit Ihnen bewegen oder sich in einigen Fällen relativ zu anderen Hologrammen positionieren, ist ein großer Teil der Erstellung Mixed Reality Anwendungen. Dieser Artikel führt Sie durch unsere empfohlene Lösung mithilfe von World Locking Tools, aber wir decken auch die manuelle Einrichtung räumlicher Verankerungen in Ihren Unity-Projekten ab. Bevor wir in einen Code springen, ist es wichtig zu verstehen, wie Unity Koordinatenraum und Verankerungen 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, mit dem alle anderen Koordinaten zuverlässig wieder 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 erhalten, 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 dieses Typs absoluter 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 sein Wissen im Laufe der Zeit der Umgebung des Benutzers kontinuierlich an, während sie viele Meter über eine ganze Etage eines Gebäudes laufen. Wenn Sie alle Ihre Hologramme in ein naives starres Koordinatensystem platziert haben, würden diese Hologramme im Laufe der Zeit auf der Grundlage der Welt oder relativ zueinander driften.

Das Headset kann beispielsweise glauben, dass zwei Standorte in der Welt 4 Meter voneinander entfernt sind, und dann später dieses Verständnis verfeinern, lernen, dass die Standorte tatsächlich 3,9 Meter voneinander entfernt sind. Wenn diese Hologramme zunächst 4 Meter auseinander in einem einzigen starren Koordinatensystem platziert wurden, würde eine 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 Beziehung zueinander und bewegen sich auch durch den globalen Koordinatenraum. In diesem Szenario werden einfache Aufgaben wie das Layout schwierig. Die Physiksimulation kann auch problematisch sein.

World Locking Tools (WLT) erhalten Sie das Beste aus beiden Welten, das ein einzelnes starres Koordinatensystem mit einer internen Versorgung räumlicher Verankerungen in der virtuellen Szene stabilisiert, während der Benutzer sich bewegt. WLT analysiert die Koordinaten der Kamera und diese räumlichen Anker jeden Frame. Anstatt die Koordinaten aller Elemente in der Welt zu ändern, um die Korrekturen in den Koordinaten des Kopfes des Benutzers zu kompensieren, korrigiert WLT stattdessen die Koordinaten des Kopfes.

Wählen Sie Ihren Weltsperrungsansatz aus.

Wenn möglich, verwenden Sie World Locking Tools für die Positionierung von Hologrammen.

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 behandelt die interne Erstellung und Verwaltung räumlicher Verankerungen automatisch. 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 Weltsperre

Um mit der Verwendung der World Locking Tools zu beginnen, laden Sie das Mixed Reality Featuretool herunter. Weitere Informationen zu den Grundlagen finden Sie auf der Hauptseite der World Locking Tools-Dokumentation zu Links zu Übersicht, Schnellstart und anderen nützlichen Themen.

Automatisiertes Setup

Wenn Ihr Projekt einsatzbereit ist, führen Sie das Konfigurations-Szenenprogramm aus Mixed Reality > World Locking Tools aus:

Unity editor with Mixed Reality Toolkit menu selected

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.

Permanente Weltsperre

Räumliche Anker sparen Hologramme im realen Raum zwischen Anwendungssitzungen. Sobald sie im HoloLens Ankerspeicher gespeichert wurden, können räumliche Verankerungen 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-Verankerungen im selben Projekt ohne Konflikte haben. Weitere Informationen zum Integrieren von Azure-Clouddiensten zum Speichern Ihrer Verankerungen finden Sie unter Azure Spatial Anchors.

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

World locking context component in Unity inspector

Wenn die Anwendung eine feinere Kontrolle benötigt, können Sie das automatische Speichern und automatische Laden im Inspektor deaktivieren und die Persistenz von einem Skript 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, integrieren Sie azure Spatial Anchors, um die Persistenz und freigabe von Koordinatenräumen ü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 Koordinatenraum:

Erfahren Sie mehr über die räumliche Zuordnung:

Zurück an die Unity-Entwicklungsprüfpunkte:

Weitere Informationen