Weltsperren und Raumanker in Unity

Hero-Image von World Locking Tools

Es ist ein großer Teil der Erstellung Mixed Reality Anwendungen, damit Ihre Hologramme an Ort und Stelle bleiben, sich mit Ihnen bewegen oder sich in einigen Fällen relativ zu anderen Hologrammen positionieren. Dieser Artikel führt Sie durch unsere empfohlene Lösung mithilfe von World Locking Tools, aber wir behandeln auch das manuelle Einrichten von Raumankern in Ihren Unity-Projekten. Bevor wir uns mit Code vertraut machen, ist es wichtig zu verstehen, wie Unity den Koordinatenraum und die Anker in seiner eigenen Engine behandelt.

Koordinatensysteme im Weltmaßstab

Heute, wenn Spiele, Datenvisualisierungs-Apps oder Virtual Reality-Apps geschrieben werden, besteht der typische Ansatz darin, ein absolutes Weltkoordinatensystem zu schaffen, zu dem alle anderen Koordinaten zuverlässig zuordnen können. In dieser Umgebung können Sie immer eine stabile Transformation finden, die eine Beziehung zwischen zwei beliebigen Objekten in dieser Welt definiert. Wenn Sie diese Objekte nicht verschoben haben, bleiben ihre relativen Transformationen immer gleich. Diese Art von globalem Koordinatensystem ist leicht richtig zu bekommen, wenn Sie eine rein virtuelle Welt rendern, in der Sie die gesamte Geometrie im Voraus kennen. VR-Apps auf Raummaßstab etablieren heute in der Regel ein absolutes Koordinatensystem auf Raummaßstab 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, das sein Wissen über die Umgebung des Benutzers im Laufe der Zeit kontinuierlich anpasst, während er viele Meter über eine ganze Etage eines Gebäudes geht. Wenn Sie in einer Weltumgebung alle Hologramme in einem naiven starren Koordinatensystem platzieren, würden diese Hologramme im Laufe der Zeit driften, entweder basierend auf der Welt oder relativ zueinander.

Beispielsweise kann das Headset derzeit glauben, dass zwei Standorte in der Welt 4 Meter voneinander entfernt sind, und dann dieses Verständnis später verfeinern und lernen, dass die Standorte tatsächlich 3,9 Meter voneinander entfernt sind. Wenn diese Hologramme zunächst 4 Meter in einem einzigen starren Koordinatensystem platziert worden wären, würde eines von ihnen dann immer 0,1 Meter von der realen Welt entfernt erscheinen.

Sie können Raumanker 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. Auch physikalische Simulationen können problematisch sein.

World Locking Tools (WLT) bringt Ihnen das Beste aus beiden Welten und stabilisiert ein einzelnes starres Koordinatensystem mithilfe einer internen Versorgung von Raumankern, die über die virtuelle Szene verteilt sind, während sich der Benutzer bewegt. WLT analysiert die Koordinaten der Kamera und diese Raumanker jeden Frame. Anstatt die Koordinaten von allem auf der Welt zu ändern, um die Korrekturen in den Koordinaten des Kopfes des Benutzers zu kompensieren, korrigiert WLT stattdessen nur die Koordinaten des Kopfs.

Wählen Sie Ihren World Locking-Ansatz

Verwenden Sie nach Möglichkeit 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 übernimmt automatisch die interne Erstellung und Verwaltung von Raumankern. Sie müssen nicht mit ARAnchorManager oder WorldAnchor interagieren, um Ihre Hologramme weltgebunden 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 von Weltsperren

Laden Sie für die ersten Schritte mit den World Locking Tools das Mixed Reality Feature Tool herunter. Weitere Informationen zu den Grundlagen finden Sie auf der Dokumentationsseite zu Standard World Locking Tools links zu Übersicht, Schnellstart und anderen nützlichen Themen.

Automatisiertes Setup

Wenn Ihr Projekt einsatzbereit ist, führen Sie das Hilfsprogramm "Szenen konfigurieren" über 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 Schnellansichten hilfreich sein, um sicherzustellen, dass WLT ordnungsgemäß eingerichtet und 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 Weltsperrung

Raumanker speichern Hologramme im realen Raum zwischen Anwendungssitzungen. Nach dem Speichern im HoloLens-Ankerspeicher können Raumanker in verschiedenen Sitzungen gefunden und geladen werden und sind ein idealer Fallback, wenn keine Internetverbindung besteht.

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 ohne Konflikte im selben Projekt verwenden. 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 über Sitzungen auf Geräten wieder her, die die Persistenz lokaler Raumanker unterstützen. Damit ein Hologramm nach dem Beenden und erneuten Ausführen der Anwendung an derselben Stelle in der physischen Welt angezeigt wird, muss die Anwendung nur die gleiche Pose im Hologramm wiederherstellen.

Komponente des Kontexts für die Weltsperrung im Unity-Inspektor

Wenn die Anwendung eine genauere Steuerung benötigt, können Sie das automatische Speichern und das automatische Laden im Inspektor deaktivieren und die Persistenz über ein Skript verwalten. Weitere Informationen finden Sie unter Beibehalten räumlicher Koordinatensysteme.

World Locking Tools unterstützt die lokale Ankerpersistenz nur auf HoloLens-Geräten. Integrieren Sie für Android-, iOS- und HoloLens-Geräte in Azure Spatial Anchors, um die Persistenz und freigabe von Koordinatenräumen über Sitzungen und Geräte hinweg zu unterstützen. Weitere Informationen und Beispiele zur Verwendung von World Locking Tools mit Azure Spatial Anchors finden Sie unter World Locking Tools (WLT) in Kombination mit Azure Spatial Anchors (ASA).

Nächste Schritte

Freigeben eines weltgebundenen Koordinatenraums:

Erfahren Sie mehr über räumliche Zuordnung:

Zurück zu den Unity-Entwicklungsprüfpunkten:

Weitere Informationen