Tools und Visualisierungen

Die Tools und Visualisierungen im Namespace „Microsoft.MixedReality.WorldLocking.Tools“ dienen zur Unterstützung bei der Entwicklung. Sie können zudem als Ausgangspunkt für eine erweiterte direkte Interaktion mit dem WLT-System (World Locking Tools) dienen.

Sie sind zwar nicht für die direkte Verwendung innerhalb einer Anwendung gedacht, aber dem Anwendungsentwickler steht diese Möglichkeit offen.

„WorldLocking.Core“ ist so konzipiert, dass es in unveränderter Form in jedem geeigneten Anwendungsszenario funktioniert. Die Tools gehen jedoch möglicherweise von bestimmten Annahmen über die Anwendung aus. Diese Annahmen können dazu führen, dass die Tools in bestimmten Situationen ungeeignet sind.

Bevor Sie also eines der Tools direkt in eine auszuliefernde Anwendung integrieren, sollten Sie erwägen, eine auf Ihre eigenen Anforderungen und Ressourcen zugeschnittene Version des Tools zu erstellen.

Tools

Adjuster

Adjuster sind Komponenten, die Ereignisse zur Neuanpassung verarbeiten. Insbesondere erstellen sie Anfügepunkte. Bei einem Neuanpassungsvorgang dient der Anfügepunkt (AttachmentPoint) als Benachrichtigungsrückruf. Der Adjuster verarbeitet dieses Ereignis entsprechend.

Eine weitere konzeptionelle Erläuterung finden Sie unter Anfügepunkte.

Die richtige Reaktion auf ein Neuanpassungsereignis variiert je nach Objekttyp und ist sehr anwendungsspezifisch. Wenn zum Beispiel das Fragment des Objekts derzeit inaktiv ist, soll das Objekt dann angezeigt werden? Bei einigen Anwendungen sollte das Objekt ausgeblendet werden, da seine korrekte Platzierung nicht bestimmt werden kann. Bei anderen Anwendungen kann es besser sein, das Objekt vorübergehend an einer falschen Position anzuzeigen, statt durch sein Ausblenden für Verwirrung zu sorgen. Darüber hinaus gibt es für Anwendungen, die das Objekt ausblenden sollen, verschiedene Möglichkeiten für das Ausblenden selbst (z. B. Deaktivieren oder weites Wegbewegen).

Die Komponenten AdjusterFixed und AdjusterMoving decken im Wesentlichen zwei gängige Szenarien ab.

Die AdjusterFixed-Komponente geht davon aus, dass sich das betreffende Ziel im Allgemeinen nicht bewegt. Wenn die World Locking Tools aufgrund eines Neuanpassungsereignisses eine angepasste Position sendet, soll das AdjusterFixed-Objekt in der Welt stationär bleiben.

Im Gegensatz dazu geht die AdjusterMoving-Komponente davon aus, dass sich das betreffende Ziel durch den Unity-Koordinatenraum bewegt. Sie hält das World Locking Tools-System über die Position des Ziels auf dem Laufenden, sodass bei einem Neuanpassungsvorgang eine möglichst genaue Korrektur vorgenommen werden kann, um die Position des Ziels relativ zur physischen Welt zu diesem Zeitpunkt konstant zu halten.

Adapter

Die Adapter-Komponenten dienen nur zur Veranschaulichung. Wenn Sie einen der Adapter nutzen, sollten Sie vielleicht noch einmal überdenken, wie Sie World Locking Tools einsetzen möchten.

Insbesondere verfügt MRTK bereits über integrierte Adapter, sodass keine weitere Transformation des Koordinatensystems seitens der Anwendung erforderlich ist.

Es kann – insbesondere ohne Verwendung von MRTK – vorkommen, dass native Ressourcen, die in Spongy Space-Koordinaten gemeldet werden, in den Frozen Space konvertiert werden. In diesen Fällen finden Anwendungsentwickler einen der hier enthaltenen Adapter möglicherweise nützlich.

  • WorldAnchorAdapter: Ein WorldAnchor passt die Position eines Objekts im Spongy Space an, um im physischen Raum unverändert zu bleiben. Dies ist beim weltgebundenen Raum, der von World Locking Tools bereitgestellt wird, nicht notwendig, sodass sich das Objekt im Frozen Space bewegt. Dieser Adapter ermöglicht es einem WorldAnchor, die Position eines Objekts im Frozen Space beizubehalten. Dies ist außer zur Diagnose unnötig. Alle Objekte im globalen Koordinatenraum von Unity sind durch World Locking Tools an die Welt gebunden.

  • ToggleWorldAnchor: Ähnelt dem WorldAnchorAdapter, kann aber umgeschaltet werden. Er wird zudem automatisch auf das reguläre WorldAnchor-Verhalten umgestellt, wenn der WorldLockingManager deaktiviert ist. Nur für die Diagnose nützlich.

  • FrozenSpatialMapping: Ein Adapter, der die Ergebnisse von einem SurfaceObserver verwaltet und ordnungsgemäß rendert. Das MRTK Spatial Awareness-System stellt all diese Funktionen und mehr bereit und erfordert keinen Adapter für die Arbeit mit World Locking Tools.

  • FrozenTapToAdd: Die direkte Verbindung mit dem Unity-Eingabesystem erfordert eine Konvertierung der eingehenden Koordinatendaten (wie hier gezeigt). Dies ist beim MRTK-Eingabesystem nicht erforderlich.

Schnellansichten

Visualisierung: Ankerdiagramm

Das AnchorGraphVisual und das zugehörige Prefab sind das Herzstück der bereitgestellten Visualisierungen. Im Einzelnen handelt es sich um folgende Komponenten:

  1. Achsen: Die aktuellen Positionen der Ursprünge im Spongy Space (grün) und im Frozen Space (blau) werden als standardmäßige 3-Pfeil-Achsenbezeichnungen angezeigt.

  2. Spongy-Anker: Dies sind die nativen, zugrunde liegenden Anker, die als Basis für die Frozen World Engine-Optimierung erstellt wurden. Jeder Anker wird durch einen Ring dargestellt, zusammen mit einem Text, der ihn identifiziert. Außerdem werden durch Farbe und Größe zusätzliche Informationen vermittelt.

    • Ein aktiver nachverfolgter Anker ist grün.

    • Ein nachverfolgter Anker ohne Relevanz ist rot.

    • Ein nicht unterstützter Anker wird gelb dargestellt.

    • Je größer der Ring, desto größer ist die Relevanz für den jeweiligen Anker.

  3. Fixierte Anker: Dies sind die entsprechenden Referenzpunkte im Frozen Space. Wenn kein Tracker-Fehler vorliegt, sind diese genau auf die Spongy-Anker ausgerichtet.

  4. Spongy-Frozen-Kanten: Diese verbinden die Spongy-Anker mit den entsprechenden Frozen-Ankern. Wenn kein Tracker-Fehler vorliegt, stimmen diese überein. Wenn also keine Kanten angezeigt werden, funktioniert alles einwandfrei. Auf jeden Fall sollten diese Kanten nicht länger als ein paar Zentimeter sein. Sie werden am Frozen-Endpunkt rot dargestellt. Die Farbe geht am Spongy-Endpunkt in blau über.

  5. Ankerkanten: Diese dünnen blau-grauen Linien zeigen die Verbindungen zwischen den Spongy-Ankern im Ankerdiagramm.

Typisches Ankerdiagramm, das einen Raum durchquert

Um die Anzeige des Ankerdiagramms zu aktivieren, das World Locking Tools generiert, während sich der Benutzer in der physischen Umgebung bewegt, muss lediglich über „WorldLockingTools“ > „Prefabs“ das AnchorGraphVisual-Prefab in die Szene eingefügt werden. Er wird dem WorldLockingContext üblicherweise als gleichgeordnetes Element hinzugefügt, aber seine genaue Position in der Hierarchie ist nicht von Bedeutung. Es sollte allerdings nicht in der Kamerahierarchie platziert werden.

Die Raumanker, die WLT intern erstellt und verwendet, werden an der Kameraposition erstellt. Da es störend ist, durch ein Feld von Ankervisualisierungen auf Augenhöhe zu gehen, werden diese vom System standardmäßig 1 Meter unterhalb ihrer tatsächlichen Position angezeigt. Um die Ankerdarstellungen an den tatsächlichen Ankerpositionen anzuzeigen, legen Sie den Parameter „Vertical Displacement“ (Vertikale Verschiebung) der AnchorGraphVisual-Komponente auf 0 fest.

Zusätzliche Ausgabe

Die World Locking-Beispiele enthalten Textdiagnosen. Die meisten davon sind nur für die Entwickler der World Locking Tools von Bedeutung, nicht aber für die Nutzer ihrer Funktionen. Sie können jedoch gelesen und, wie im Skript StatusToText gezeigt, in Echtzeit angezeigt werden.

Typische Diagnose Anzeige

Für die Postmortem-Analyse kann der Abschnitt Diagnostics in WorldLockingContext zur Meldung von Frozen World Engine-Fehlern sehr nützlich sein. Weitere Informationen finden Sie unter Melden eines Fehlers.