Table of Contents

Auswahl des geeigneten center-modes

Die Auswahl des geeigneten center-modes ist für die Inhaltserstellung entscheidend. Im Folgenden erfahren Sie, wie Sie center-modes abrufen und ändern können, sowie Empfehlungen zur Auswahl des geeigneten center-modes.

Vorbereitung

  • Machen Sie sich mit den grundlegenden Konzepten, Bestandteilen und Arbeitsabläufen einer Session vertraut, indem Sie Einführung in AR Session lesen.
  • Erfahren Sie mehr über die grundlegenden Konzepte des center-modes und dessen Auswirkungen auf das Bewegungsverhalten von Objekten in der Szene unter Center-mode der AR Session.

Verfügbare center-modes abrufen

Während die Session läuft, werden nur die für die aktuelle Session verfügbaren center-modes im Dropdown-Menü Center des Inspector-Panels angezeigt. Wenn die Session nicht gestartet ist, werden alle center-modes angezeigt.

alt text

Diese Abbildung zeigt die verfügbaren center-modes einer Session im Editor bei Verwendung von CameraDeviceFrameSource.

In Skripten können Sie nach erfolgreichem Zusammenbau der Session über die Eigenschaft ARSession.AvailableCenterMode die Liste der verfügbaren center-modes für die aktuelle Session abrufen.

Der folgende Code zeigt beispielsweise, wie Sie prüfen können, ob ein bestimmter center-mode in der aktuellen Session verfügbar ist:

if (Session.AvailableCenterMode.Contains(mode))
{
    // mode ist in der aktuellen Session verfügbar
}

Center-mode ändern

Öffnen Sie das Inspector-Panel und wählen Sie im Dropdown-Menü Center den gewünschten center-mode aus.

alt text

In Skripten können Sie den center-mode über die Eigenschaft ARSession.CenterMode ändern.

Der folgende Code zeigt beispielsweise, wie Sie zwischen den verfügbaren center-modes zyklisch wechseln können:

while (true)
{
    Session.CenterMode = (ARSession.ARCenterMode)(((int)Session.CenterMode + 1) % Enum.GetValues(typeof(ARSession.ARCenterMode)).Length);
    if (Session.AvailableCenterMode.Contains(Session.CenterMode)) { break; }
}

Die Session prüft bei jedem Frame-Update, ob der aktuelle center-mode gültig ist. Wenn er gültig ist, versucht die Session sofort, den neuen center-mode zu verwenden.

Im obigen Video verwendet die Session zunächst den FirstTarget-mode, wobei das zentrale Objekt der Weihnachtsbaum ist (hellblaue Punktwolke). Anschließend ändern wir manuell den center-mode in Camera, wobei das zentrale Objekt zur Kamera wird (blaue Pyramide). Eine detaillierte Beschreibung des Videoinhalts finden Sie unter Center-mode der AR Session.

Wenn der geänderte center-mode in der aktuellen Session ungültig ist, wird die Eigenschaft CenterMode während des Session-Updates automatisch auf den ersten verfügbaren center-mode geändert (normalerweise FirstTarget oder SessionOrigin), und eine Warnmeldung wird protokolliert:

Center mode {Value} is unavailable in this session, reset to {NewValue}.

Auswahl des geeigneten center-modes

Die Ausrichtung an Objekten in der realen Welt ist ein Kernbedürfnis bei der Erstellung von AR-Inhalten. Der center-mode bestimmt, welches Objekt die Session als Referenzpunkt verwendet, um die Position und Ausrichtung anderer Objekte in der Szene zu berechnen. Daher ist die Auswahl des geeigneten center-modes für die Inhaltserstellung entscheidend.

Allgemeine Empfehlungen

Oft ist die Verwendung des FirstTarget- oder SpecificTarget-modes mit target als Zentrum für die Inhaltserstellung vorteilhafter. Auf diese Weise bleibt der Referenzpunkt für Inhalte unter target stationär und wird nicht durch Bewegungen von XR Origin oder camera unerwünscht beeinflusst (z. B. bei physikalischen Berechnungen). Dies ist jedoch nicht absolut. Konkret:

  • Wenn Sie unsicher sind, verwenden Sie den Standardwert, d. h. FirstTarget
    Da die meisten AR-Funktionen fehlerbehaftet sind und diese Fehler während des Betriebs ständig korrigiert werden, führt dies dazu, dass scheinbar stationäre Objekte in der realen Welt (z. B. das target der Sparse Spatial Map und der XR Origin des Motion Trackings) im virtuellen Raum relative Bewegungen zueinander aufweisen. In diesem Fall ist target als Zentrum besser für die Inhaltserstellung geeignet als XR Origin.

  • Gleichzeitiges Tracking mehrerer targets
    Bei gleichzeitigem Tracking mehrerer targets kann es aufgrund von Berechnungsfehlern ebenfalls zu relativen Bewegungen zwischen diesen targets kommen, selbst wenn die Objekte in der realen Welt relativ stationär sind. Die Auswahl des zentralen Objekts sollte anhand der tatsächlichen Anforderungen erfolgen, wobei der FirstTarget-mode normalerweise die bessere Wahl ist.

  • Wann SessionOrigin verwendet werden sollte
    SessionOrigin eignet sich für Szenarien, in denen nur Motion Tracking aktiv ist und XR Origin der einzige Referenzpunkt ist. Es eignet sich auch für spezielle Fälle, in denen der Hersteller des Headsets den Referenzpunkt des Motion Trackings nicht korrekt implementiert hat. In diesem Fall muss der Weltursprung von Unity verwendet werden, wodurch der SessionOrigin-mode erzwungen wird.

  • Anwendungsfälle für Camera
    Der Camera-mode eignet sich besser für Szenarien, in denen die physische Kamera stationär ist (z. B. AR-Kartenspiele mit fest installierter Kamera). In diesem Fall erleichtert der Camera-mode die Inhaltserstellung.

Häufig verwendete center-modes für verschiedene AR-Funktionen

Bei der separaten Verwendung bestimmter AR-Funktionen werden einige center-modes häufiger verwendet. Die folgende Tabelle listet die gebräuchlichen center-modes für diese AR-Funktionen auf:

Funktion Gebräuchlicher center-mode
Mega FirstTarget oder SpecificTarget
Motion Tracking SessionOrigin
Plane Detection SessionOrigin
Sparse Spatial Map FirstTarget oder SpecificTarget
Dense Spatial Map SessionOrigin
Surface Tracking FirstTarget oder SpecificTarget
Image Tracking FirstTarget, SpecificTarget oder Camera
Image Cloud Recognition FirstTarget, SpecificTarget oder Camera
Object Tracking FirstTarget, SpecificTarget oder Camera

Überlegungen zu geräteübergreifender Entwicklung

Bei der Entwicklung geräteübergreifender AR-Anwendungen muss die Unterstützung verschiedener center-modes auf unterschiedlichen Geräten berücksichtigt werden.

  • Bei reinen Mobilgeräten (Smartphones, Tablets) gibt es normalerweise keine größeren Probleme. Wenn Sie SessionOrigin verwenden möchten, stellen Sie sicher, dass Motion Tracking funktioniert.
  • Bei Headsets ist besondere Vorsicht geboten:
    • Konsultieren Sie Verfügbare center-modes, um festzustellen, welche center-modes auf den verwendeten Geräten unterstützt werden. Wenn Sie Erweiterungen von Drittanbietern verwenden, achten Sie auf deren verwendeten Typ OriginType.
    • Vermeiden Sie nach Möglichkeit UXR auf Rokid-Geräten. XRI stellt sicher, dass die meisten center-modes verfügbar sind.
    • Auf Headsets, die FirstTarget und SpecificTarget nicht unterstützen, können Inhalte für Funktionen wie Mega oder Image Tracking nicht relativ zum Unity-Weltkoordinatensystem stationär bleiben.

Korrekt angezeigte Inhalte in jedem center-mode

Warnung

In Unity AR können Objekte, die im Unity-Weltkoordinatensystem existieren und deren Transform nicht an Session-Komponenten angepasst wurde, möglicherweise nicht korrekt angezeigt werden.

Wenn im Weltkoordinatensystem Modelle platziert werden, können deren Position und Ausrichtung nicht mit Objekten in der realen Welt übereinstimmen. Die tatsächliche Laufzeitleistung kann zufällig korrekt sein, oder die Modelle scheinen zu schweben oder sich unkontrolliert zu bewegen.

Um sicherzustellen, dass Inhalte in jedem center-mode korrekt angezeigt werden, gehen Sie wie folgt vor:

  • Platzieren Sie die anzuzeigenden Inhalte immer unter dem entsprechenden target-Knoten oder unter dem XR Origin-Knoten (wenn Inhalte Bewegungen von XR Origin folgen sollen).
  • Oder richten Sie Inhalte manuell an der Position und Ausrichtung von target oder XR Origin aus, dies muss jedoch nach dem ARSession.PostSessionUpdate-Ereignis erfolgen.
Anmerkung

Dies garantiert nicht, dass alle Inhaltselemente ordnungsgemäß funktionieren, da einige Unity-Funktionen nur im Weltkoordinatensystem arbeiten (z. B. das Physiksystem). Die Auswahl des geeigneten center-modes bleibt wichtig.

Verwandte Themen