Freigeben über


Space Pin-Beispiel

Die im Space Pin-Beispiel gezeigte Funktionalität ist auch in der Hauptszene „World Locking: Physics Beam-Beispiel“ verfügbar.

Die Space Pin-Szene bietet jedoch eine vereinfachte und konzentriertere Ansicht des Space Pin-Features. Sie soll näher an den inneren Funktionen einer realen Anwendung sein, die ein großes Objekt oder Objekte an Features der realen Welt ausrichten muss.

Daher fehlen ihr viele der Optionen und die Runtimebenutzeroberfläche des allgemeineren World Locking: Physics Beam-Beispiels.

Standardeinstellungen

Die angewendeten World Locking Tools Manager-Einstellungen können im Unity Inspector untersucht werden, indem Sie den Knoten „WorldLocking > WorldLockingManager“ auswählen.

Insbesondere die Features AutoSave und AutoLoad der World Locking Tools sind aktiviert. Daher wird nach dem Ausrichten der Kugeln und des Messstrahls an Features der realen Welt wie unten beschrieben die nachfolgende Sitzung beim Start diese Ausrichtung automatisch fortsetzen.

Um das Beispiel auf einen bereinigten Zustand zurückzusetzen, deinstallieren Sie es, und stellen Sie es erneut bereit. Es gibt natürlich APIs, mit denen Sie vom Skript aus eine Rücksetzung durchführen können, aber diese werden hier aus Gründen der Übersichtlichkeit nicht erwähnt. Weitere Informationen finden Sie unter IAlignmentManager.ClearAlignmentAnchors().

Darüber hinaus ermöglicht die Demo automatische Neuanpassungsvorgänge. Siehe unten.

Einrichtung des physischen Raums

Dieses Beispiel enthält vier Marker. Um das Beispiel vollständig zu untersuchen, platzieren Sie physische Marker in einem Raum, der dem Layout der virtuellen Marker entspricht.

HINWEIS: Das Layout der virtuellen Marker in der Unity-Szene kann jedem physischen Raum angepasst werden. Das Standardlayout weist nichts Besonderes auf. Um die Vorteile des Space Pinning-Features zu sehen, ist jedoch eine beträchtliche Verbreitung der Marker mit Trennungen von mindestens wenigen Metern erforderlich.

Das Layout der physischen Marker im Raum sollte mit dem Layout der virtuellen Marker in der Unity-Szene übereinstimmen, wie in diesem Graphen dargestellt:

Layout von Abstands-Pin-Markierungen

Ausführen des Beispiels

Startup

Beim Start der ersten Sitzung wird der Ursprung des Unity-Koordinatenraums an der Kopfposition beim Start sein.

Wenn Sie nach links und 6 Meter voraus sehen, wird eine zyanblaue Kugel mit einem zyanblauen Würfel darüber angezeigt.

Wenn Sie nach rechts und zurück schauen, werden eine rote Kugel und ein Würfel angezeigt, die 10 Meter entfernt sind.

Wenn Sie sich vom Ursprung aus vorwärts bewegen und zurück schauen, werden eine weiße Kugel und ein Würfel angezeigt. Acht Meter darüber hinaus befinden sich eine gelbe Kugel und ein Würfel.

Es gibt auch Strahlen in wechselnden Farben, die unter den Kugeln verlaufen. Ihr Zweck wird während der exemplarischen Vorgehensweise deutlich.

Ausrichten der Welt

Wechseln Sie zu einer der farbigen Kugeln. Diese exemplarische Vorgehensweise beginnt mit der roten Kugel.

Gehen Sie zur roten Kugel. Die Kugel kann mithilfe von Handstrahlen in HL2 aus der Entfernung gegriffen bzw. mit HL1 anvisiert und gedrückt werden. Auf HL2 kann sie auch mit der Hand gegriffen werden.

Suchen Sie den im physischen Raum platzierten Marker, der der roten Kugel entspricht. Greifen Sie die virtuelle rote Kugel mit einer der oben genannten Methoden, und ziehen Sie sie auf ihren Marker. Passen Sie die Kugel weiter an, um sie so gut wie möglich an der physischen Markierung auszurichten.

Die anderen Kugeln wurden nun auch verschoben. Ihre Ausrichtung bleibt jedoch unverändert. Das heißt, die virtuelle Welt wurde übersetzt, um die rote Kugel auf ihren Marker zu setzen, aber die Ausrichtung der Welt ist noch nicht betroffen.

Wechseln Sie zu einer anderen Kugel. Für diese exemplarische Vorgehensweise wird als Nächstes die weiße Kugel verwendet.

Wiederholen Sie die obige Prozedur, und verschieben Sie die virtuelle weiße Kugel, um sie an ihrem physischen Marker auszurichten.

Nun wurde der virtuelle Raum gedreht und übersetzt, sodass sich die rote, weiße und zyanblaue Kugel immer noch in einer Linie befinden, während die gelbe Kugel zur weißen Kugel senkrecht versetzt ist.

Stellen Sie sicher, dass sie in der Nähe der weißen Kugel an ihrem physischen Marker ausgerichtet ist. Gehen Sie zur roten Kugel, und überprüfen Sie, ob sie an ihrem physischen Marker ausgerichtet ist.

Gehen Sie nun zu einer verbleibenden Kugel. In dieser exemplarischen Vorgehensweise fahren wir mit der zyanblauen Kugel fort.

Während die zyanblaue Kugel mit der roten und weißen Kugel in einer Linie liegt, ist sie nicht richtig an ihrem Marker positioniert. Der genaue Vektor und der Umfang des Fehlers sind geräte- und sogar situationsabhängig. Wahrscheinlich befindet sie sich fast an richtiger Position auf der Linie mit der roten und weißen Kugel, aber nicht am physischen Marker.

Ziehen Sie die zyanblaue Kugel zur richtigen Ausrichtung am physischen Marker. Überprüfen Sie bei jedem der drei platzierten Marker, dass er jetzt ordnungsgemäß ausgerichtet ist, wenn er sich in der Nähe der anderen befindet.

Falls gewünscht, wiederholen Sie diesen Vorgang für die letzte Kugel.

Alternativer Bearbeitungsmodus

Die obige exemplarische Vorgehensweise basiert auf der Standardkonfiguration in der Anwendung, in der die Ausrichtung des virtuellen Raums durch die relative Positionierung der Marker impliziert wird.

In einem alternativen Modus kann die Ausrichtung explizit festgelegt werden, indem die Kugeln gegriffen und um die Y-Achse gedreht werden.

Der oben beschriebene Standardbearbeitungsmodus ist im Allgemeinen viel einfacher, da die Positionierung von Objekten im virtuellen Raum tendenziell viel genauer ist, als sie in eine bestimmte Ausrichtung zu drehen.

Ebenso ist die für einen QR-Codemarker zurückgegebene Position bei Verwendung von QR-Codes zur automatischen Ausrichtung in der Regel viel zuverlässiger als die manuelle Ausrichtung.

Einige Anwendungen verfügen jedoch möglicherweise über erweiterte und spezifische Kenntnisse der gewünschten Ausrichtung des Raums, die sie mit dieser zweiten Methode nutzen können.

Um die explizite Ausrichtungsmethode in der Demo zu aktivieren, deaktivieren Sie einfach die aktiven Space Pin-Komponenten zur Ausrichtungsbearbeitung auf den Markerkugeln in:

„Content > Manipulation > Markers > CyanSphere/RedSphere/YellowSphere/GreySphere“ (Inhalt > Bearbeitung > Marker > CyanSphere/RedSphere/YellowSphere/GreySphere)

und aktivieren die derzeit deaktivierten Komponenten für die Space Pin-Bearbeitung.

Folgende exemplarische Vorgehensweise wird dann empfohlen:

Positionieren Sie eine der an ihrem physischen Marker ausgerichteten Kugeln, und richten Sie sie so aus, dass sich die anderen Kugeln in der richtigen Richtung zu ihr befinden.

Die anderen Kugeln befinden sich nun in falschen Abständen, aber ungefähr entlang des richtigen Vektors.

Wechseln Sie wiederum zu den anderen Kugeln, und positionieren Sie jede neu, um sie an ihrem physischen Marker auszurichten. Es sollten keine weiteren Ausrichtungsänderungen erforderlich sein.

Untersuchen der Ergebnisse

Wenn ein Messtool verfügbar ist, z. B. ein Bandmaß, kann diese Ausrichtung weiter untersucht werden.

Wenn die Kugeln ordnungsgemäß platziert wurden, sollte für keine der Kugeln eine Fehlermeldung ausgegeben werden.

Der unter den Kugeln verlaufende T-Strahl wechselt jeden Meter die Farbe. Durch Messen der Abweichung der Farbänderungen in den Strahlen anhand der Metermarkierungen des Messtools ist der Fehler in den Bereichen zwischen Space Pins sichtbar.

Vorgänge zum erneuten Anpassen

Automatische Neuanpassungsvorgänge werden sich höchstwahrscheinlich wie folgt manifestieren:

  1. Nachdem Sie eine oder mehrere der Kugeln positioniert haben, werden die virtuellen Objekte wie erwartet ausgerichtet.
  2. Anschließend geht die Nachverfolgung verloren.
  3. Die Nachverfolgung wird nach dem Verschieben in einen anderen physischen Bereich fortgesetzt.
  4. Die Ausrichtung der ersten Kugeln geht verloren und hat keine Auswirkungen (da sie sich in einem anderen Fragment befinden).
  5. Nach der Bewegung im neuen Abschnitt des Raums (möglicherweise Positionierung einer anderen Kugel) bewegt sich der Kopf zurück zum ursprünglichen Raum.
  6. Bei einem Neuanpassungsvorgang werden die ursprünglichen und neuen Fragmente automatisch kombiniert.
  7. Die Ausrichtung der ersten Kugeln wird wieder wirksam (da sie sich jetzt alle im selben Fragment befinden).