Augengestützte Navigation in MRTK — MRTK2

MRTK

Stellen Sie sich vor, Sie lesen Informationen auf einer Schieferseite, und wenn Sie das Ende des angezeigten Texts erreichen, scrollt der Text automatisch nach oben, um mehr Inhalt anzuzeigen. Oder Sie können flüssig vergrößern, wo Sie sich ansehen. Die Karte passt auch automatisch den Inhalt an, um die interessanten Dinge in Ihrem Sichtfeld zu behalten. Eine weitere interessante Anwendung ist die freihändige Beobachtung von 3D-Hologrammen durch automatisches Bringen der Teile des Hologramms, die Sie betrachten, nach vorne. Dies sind einige der Beispiele, die auf dieser Seite im Kontext der augengestützten Navigation beschrieben werden.

In den folgenden Beschreibungen wird davon ausgegangen, dass Sie bereits mit der Einrichtung von Eye Tracking in Ihrer MRTK-Szene und mit den Grundlagen des Zugriffs auf Eye Tracking-Daten in MRTK Unity vertraut sind. Die im Folgenden beschriebenen Beispiele sind alle Teil der EyeTrackingDemo-03-Navigation Szene (Assets/MRTK/Examples/Demos/EyeTracking/Scenes/EyeTrackingDemo-03-Navigation).

Zusammenfassung: Automatisches Scrollen von Text, Augen-Blick-unterstütztes Schwenken und Zoomen einer virtuellen Karte, freihändige 3D-gesteuerte 3D-Drehung.

Automatischer Bildlauf

Mit dem automatischen Scrollen kann der Benutzer durch Texte scrollen, ohne einen Finger zu heben. Lesen Sie einfach weiter, und der Text scrollt automatisch nach oben oder unten, je nachdem, wohin der Benutzer sucht. Sie können mit dem in EyeTrackingDemo-03-Navigation bereitgestellten Beispiel beginnen (Assets/MRTK/Examples/Demos/EyeTracking/Scenes). In diesem Beispiel wird eine TextMesh-Komponente verwendet, um das flexible Laden und Formatieren von neuem Text zu ermöglichen. Um den automatischen Bildlauf zu aktivieren, fügen Sie einfach die folgenden beiden Skripts ihrer Colliderkomponente des Textfelds hinzu:

ScrollRectTransf

Zum Scrollen durch eine TextMesh - oder allgemeinere RectTransform-Komponente können Sie das ScrollRectTransf-Skript verwenden. Wenn Sie durch eine Textur anstelle von RectTransform scrollen möchten, verwenden Sie ScrollTexture anstelle von ScrollRectTransf. Im Folgenden werden die Parameter von ScrollRectTransf , die im Unity-Editor verfügbar sind, ausführlicher erläutert:

Parameter BESCHREIBUNG
LimitPanning Wenn diese Option aktiviert ist, wird der scrollbare Inhalt an seiner Grenze beendet.
RectTransfToNavigate Verweis auf die RectTransform zum Scrollen.
RefToViewport Verweis auf das übergeordnete RectTransform des scrollbaren Inhalts, um den richtigen Offset und die richtige Begrenzung zu bestimmen.
AutoGazeScrollIsActive Wenn dies aktiviert ist, wird der Text automatisch scrollen, wenn der Benutzer einen aktiven Bereich betrachtet (z. B. den oberen und unteren Teil des Bildlaufbereichs, wenn die vertikale Bildlaufgeschwindigkeit nicht null ist).
ScrollSpeed_x Wenn sie auf einen ungleichen Wert auf 0 festgelegt ist, wird der horizontale Bildlauf aktiviert. Negative Werte bedeuten eine Änderung der Bildlaufrichtung: Von links nach rechts und von rechts nach links.
ScrollSpeed_y Wenn sie auf einen ungleichen Wert auf 0 festgelegt ist, wird der vertikale Bildlauf aktiviert. Negative Werte bedeuten eine Änderung der Bildlaufrichtung: Nach unten und nach unten nach oben.
MinDistFromCenterForAutoScroll Normalisierter minimaler Abstand in x und y von der Mitte des Trefferfelds des Ziels (0, 0), um zu scrollen. Daher müssen die Werte zwischen 0 (immer scrollen) und 0,5 (kein Bildlauf) liegen.
UseSkimProofing Wenn es aktiviert ist, verhindert es plötzliche Scrollbewegungen beim schnellen Umschauen. Dies kann jedoch dazu führen, dass das Scrollen weniger reaktionsfähig ist. Sie kann mit dem Wert SkimProofUpdateSpeed optimiert werden.
SkimProofUpdateSpeed Je niedriger der Wert, desto langsamer beschleunigt sich das Scrollen nach dem Überspringen. Empfohlener Wert: 5.

Von Augen unterstütztes Scroll-Setup in Unity

EyeTrackingTarget

Das Anfügen der EyeTrackingTarget-Komponente ermöglicht eine flexible Handhabung von Ereignissen im Zusammenhang mit dem Blick. Das Bildlaufbeispiel veranschaulicht den Bildlauftext, der beginnt, wenn der Benutzer den Bereich betrachtet und anhält, wenn der Benutzer davon wegschaut . Von Augen unterstütztes Scroll-Setup in Unity: EyeTrackingTarget

Schwenken und Zoomen unterstützt

Wer hat noch keine virtuelle Karte verwendet, um nach ihrem Zuhause zu suchen oder völlig neue Orte zu erkunden? Eye Tracking ermöglicht es Ihnen, direkt in die Teile einzutauchen, an denen Sie interessiert sind, und sobald Sie vergrößert sind, können Sie den Verlauf einer Straße reibungslos verfolgen, um Ihre Nachbarschaft zu erkunden! Dies ist nicht nur nützlich, um geografische Karten zu erkunden, sondern auch um Details in Fotos, Datenvisualisierungen oder sogar live gestreamten medizinischen Bildern zu überprüfen. Diese Funktion in Ihrer App zu verwenden ist einfach! Für Inhalte, die in eine Textur gerendert werden (z. B. ein Foto, gestreamte Daten), fügen Sie einfach das PanZoomTexture-Skript hinzu. Verwenden Sie für rectTransformPanZoomRectTransf. Durch die Erweiterung der Funktion Auto Scroll können Sie im Wesentlichen gleichzeitig vertikal und horizontal scrollen und Inhalte direkt um den aktuellen Fokuspunkt des Benutzers vergrößern.

Parameter BESCHREIBUNG
LimitPanning Wenn diese Option aktiviert ist, wird der scrollbare Inhalt an seiner Grenze beendet.
HandZoomEnabledOnStartup Gibt an, ob Handgesten automatisch aktiviert sind, um eine Zoomgeste auszuführen. Sie sollten es zunächst deaktivieren, um zu vermeiden, dass versehentlich Zoomaktionen ausgelöst werden.
RendererOfTextureToBeNavigated Referenzierter Renderer der zu navigierenden Textur.
Zoom_Acceleration Zoombeschleunigung, die die Steilheit der Zuordnung der logistischen Geschwindigkeitsfunktion definiert.
Zoom_SpeedMax Maximale Zoomgeschwindigkeit.
Zoom_MinScale Mindestmaßstab der Textur zum Vergrößern – z. B. 0,5f (die Hälfte der ursprünglichen Größe).
Zoom_MaxScale Maximale Skalierung der Textur zum Verkleineren – z. B. 1f (originale Größe) oder 2,0f (doppelt so groß wie ursprünglich).
Zoom_TimeInSecToZoom Zeitzoom: Nach dem Auslösen wird für die angegebene Zeit in Sekunden ein Zoom in/out ausgeführt.
Zoom_Gesture Art der Handgeste, die zum Vergrößern/Verkleineren verwendet werden soll.
--- ---
Pan_AutoScrollIsActive Wenn dies aktiviert ist, wird der Text automatisch scrollen, wenn der Benutzer einen aktiven Bereich betrachtet (z. B. den oberen und unteren Teil des Bildlaufbereichs, wenn die vertikale Bildlaufgeschwindigkeit nicht null ist).
Pan_Speed_x Wenn sie auf einen ungleichen Wert auf 0 festgelegt ist, wird der horizontale Bildlauf aktiviert. Negative Werte bedeuten eine Änderung der Bildlaufrichtung: Von links nach rechts und von rechts nach links.
Pan_Speed_y Wenn sie auf einen ungleichen Wert auf 0 festgelegt ist, wird der vertikale Bildlauf aktiviert. Negative Werte bedeuten eine Änderung der Bildlaufrichtung: Nach unten und nach unten nach oben.
Pan_MinDistFromCenter Normalisierter minimaler Abstand in x und y von der Mitte des Trefferfelds des Ziels (0, 0), um zu scrollen. Daher müssen die Werte zwischen 0 (immer scrollen) und 0,5 (kein Bildlauf) liegen.
UseSkimProofing Wenn es aktiviert ist, verhindert es plötzliche Scrollbewegungen beim schnellen Umschauen. Dies kann jedoch dazu führen, dass das Scrollen weniger reaktionsfähig ist. Sie kann mit dem Wert SkimProofUpdateSpeed optimiert werden.
SkimProofUpdateSpeed Je niedriger der Wert, desto langsamer beschleunigt sich das Scrollen nach dem Überspringen. Empfohlener Wert: 5.

Von Augen unterstütztes Schwenk- und Zoom-Setup in Unity

Aufmerksamkeitsbasierte 3D-Drehung

Stellen Sie sich vor, Sie betrachten ein 3D-Objekt und die Teile, die Sie genauer sehen möchten, drehen sich auf magische Weise auf Sie zu - als würde das System Ihren Geist lesen und wissen, dass es den Artikel auf Sie zu richten! Das ist die Idee für aufmerksamkeitsbasierte 3D-Drehungen, mit denen Sie alle Seiten eines Hologramms untersuchen können, ohne einen Finger zu heben. Um dieses Verhalten zu aktivieren, fügen Sie einfach das OnLookAtRotateByEyeGaze-Skript dem Teil Ihres GameObject mit einer Collider-Komponente hinzu. Sie können mehrere Parameter anpassen, die unten aufgeführt sind, um zu begrenzen, wie schnell und in welche Richtungen sich das Hologramm dreht.

Wie Sie sich vorstellen können, kann dieses Verhalten in einer überfüllten Szene schnell ziemlich abgelenkt werden. Aus diesem Grund sollten Sie mit deaktiviertem Verhalten beginnen und es dann mithilfe von Sprachbefehlen schnell aktivieren. Alternativ haben wir ein Beispiel in EyeTrackingDemo-03-Navigation (Assets/MRTK/Examples/Demos/EyeTracking/Scenes) hinzugefügt, um TargetMoveToCamera zu verwenden, für das Sie ein fokussiertes Ziel auswählen können, und es fliegt Vor Ihnen vor sich her. Sagen Sie einfach "Komm zu mir".

Sobald sie sich im Nahmodus befinden, wird der Modus für die automatische Drehung automatisch aktiviert. In diesem Modus können Sie es von allen Seiten beobachten, wie sie sich entweder einfach zurücklehnen und betrachten, um sie herumlaufen oder es mit der Hand zu greifen und zu drehen. Wenn Sie das Ziel verwerfen (sehen Sie & an, oder sagen Sie "Zurück senden"), kehrt es an seinen ursprünglichen Speicherort zurück und reagiert nicht mehr aus der Ferne auf Sie.

Parameter BESCHREIBUNG
SpeedX Horizontale Drehgeschwindigkeit.
Schnelle Vertikale Drehgeschwindigkeit.
InverseX Um die horizontale Drehrichtung umzukehren.
InverseY Um die vertikale Drehrichtung umzukehren.
RotationThreshInDegrees Wenn der Winkel zwischen "Blick auf Ziel" und "Kamera zu Ziel" kleiner als dieser Wert ist, tun Sie nichts. Dies ist, um kleine Jittery-Rotationen zu verhindern..
MinRotX Minimaler horizontaler Drehwinkel. Dies ist, um die Drehung in verschiedene Richtungen zu begrenzen.
MaxRotX Maximaler horizontaler Drehwinkel. Dies ist, um die Drehung in verschiedene Richtungen zu begrenzen.
MinRotY Minimaler vertikaler Drehwinkel, um die Drehung um die x-Achse zu begrenzen.
MaxRotY Maximaler vertikaler Drehwinkel, um die Drehung um die y-Achse zu begrenzen.

Von Augen unterstütztes 3D-Rotationssetup in Unity

Zusammenfassend sollten Die obigen Skripts ihnen den Einstieg in die Verwendung des Blicks für verschiedene Eingabenavigationsaufgaben wie das Scrollen von Texten, das Zoomen und Schwenken von Texturen sowie das Rotieren von 3D-Hologrammen ermöglichen.

Weitere Informationen


Zurück zu "Eye Tracking im MixedRealityToolkit"