Erste Schritte mit eye tracking in MRTK

Auf dieser Seite wird erläutert, wie Sie Ihre Unity MRTK-Szene für die Verwendung der Eyetracking in Ihrer App einrichten. Im Folgenden wird davon ausgegangen, dass Sie mit einer neuen Szene beginnen. Alternativ können Sie sich unsere bereits konfigurierten MRTK-Eyetrackingbeispiele mit unzähligen hervorragenden Beispielen ansehen, auf denen Sie direkt aufbauen können.

Checkliste für Eyetrackinganforderungen

Damit eye tracking ordnungsgemäß funktioniert, müssen die folgenden Anforderungen erfüllt sein. Wenn Sie noch nicht mit der Eyetracking auf HoloLens 2 und der Einrichtung der Blickverfolgung im MRTK sind, machen Sie sich keine Sorgen! Im Folgenden wird ausführlich erläutert, wie sie jeweils behandelt werden.

  1. Dem Eingabesystem muss ein "Eye Gaze Datenanbieter" hinzugefügt werden. Dies stellt Eyetrackingdaten von der Plattform bereit.
  2. Die GazeInput-Funktion muss im Anwendungsmanifest aktiviert werden. Diese Funktion kann in Unity 2019 festgelegt werden, aber in Unity 2018 und früher ist diese Funktion nur in Visual Studio und über das MRTK-Buildtool verfügbar.
  3. Die HoloLens muss für den aktuellen Benutzer mit dem Auge kalibriert werden. Sehen Sie sich unser Beispiel an, um zu ermitteln, ob ein Benutzer mit dem Auge kalibriert ist oder nicht.

Hinweis zur GazeInput-Funktion

Die von MRTK bereitgestellten Buildtools (d. h. Mixed Reality Toolkit -> Utilities -> Buildfenster) können die GazeInput-Funktion automatisch für Sie aktivieren. Hierzu müssen Sie sicherstellen, dass die Eingabefunktion "Anvieren" auf der Registerkarte "Appx-Buildoptionen" aktiviert ist:

MRTK-Buildtools

Mit diesen Tools wird das AppX-Manifest nach Abschluss des Unity-Builds gesucht und die GazeInput-Funktion manuell hinzugefügt. Vor Unity 2019 ist dieses Tool NICHT aktiv, wenn das integrierte Buildfenster von Unity verwendet wird (d. h. Datei -> Build Einstellungen).

Vor Unity 2019 muss die Funktion bei Verwendung des Unity-Buildfensters nach dem Unity-Build wie folgt manuell hinzugefügt werden:

  1. Öffnen Sie das kompilierte Visual Studio Projekt, und öffnen Sie dann "Package.appxmanifest" in Ihrer Projektmappe.
  2. Aktivieren Sie unter Funktionen das Kontrollkästchen "GazeInput". Wenn keine GazeInput-Funktion angezeigt wird, überprüfen Sie, ob Ihr System die Voraussetzungen für die Verwendung von MRTK erfüllt (insbesondere die Windows SDK-Version).

Beachten Sie: Sie müssen dies nur tun, wenn Sie einen neuen Buildordner erstellen. Dies bedeutet, dass Sie Ihre Änderungen nicht erneut übernehmen müssen, wenn Sie ihr Unity-Projekt bereits erstellt und das appxmanifest bereits vor eingerichtet haben und jetzt wieder auf denselben Ordner abzielen.

Einrichten der Eyetracking schritt für Schritt

Einrichten der Szene

Richten Sie das MixedRealityToolkit ein, indem Sie einfach auf "Mixed Reality Toolkit -> Configure..." klicken. in der Menüleiste.

MRTK-Konfiguration

Einrichten der MRTK-Profile, die für eye tracking erforderlich sind

Nachdem Sie Ihre MRTK-Szene eingerichtet haben, werden Sie aufgefordert, ein Profil für MRTK auszuwählen. Sie können einfach DefaultMixedRealityToolkitConfigurationProfile und dann die Option "Kopieren & Anpassen" auswählen.

MRTK-Profil

Erstellen eines Datenanbieters zum Anvieren mit den Augen

  • Klicken Sie in Ihrem MRTK-Profil auf die Registerkarte "Eingabe".
  • Klicken Sie auf die Schaltfläche "Klonen", um die Standardeinstellung (DefaultMixedRealityInputSystemProfile) zu bearbeiten. Ein Menü "Profil klonen" wird angezeigt. Klicken Sie einfach unten im Menü auf "Klonen".
  • Doppelklicken Sie auf Ihr neues Eingabeprofil, erweitern Sie "Eingabedatenanbieter", und wählen Sie "+ Datenanbieter hinzufügen" aus.
  • Erstellen Sie einen neuen Datenanbieter:
    • Wählen Sie unter Typ die Option "Microsoft.MixedReality.Toolkit.WindowsMixedReality.Input" -> "WindowsMixedRealityEyeGazeDataProvider" aus.
    • Wählen Sie unter Plattform(en) die Option "Windows Universal" aus.

MRTK-Datenanbieter

Simulieren der Eyetracking im Unity-Editor

Sie können die Eyetrackingeingabe im Unity-Editor simulieren, um sicherzustellen, dass Ereignisse ordnungsgemäß ausgelöst werden, bevor Sie die App auf Ihrem HoloLens 2 bereitstellen. Das Anvisieren mit den Augen wird simuliert, indem einfach die Position der Kamera als Ursprung für anvisierende Augen und der Vorwärtsvektor der Kamera als Blickrichtung verwendet wird. Obwohl dies hervorragend für erste Tests geeignet ist, beachten Sie, dass es sich nicht um eine gute Vorbereitung für schnelle Augenbewegungen handelt. Hierfür ist es besser, häufige Tests Ihrer augenbasierten Interaktionen auf der HoloLens 2 sicherzustellen.

  1. Simulierte Eyetracking aktivieren:

    • Klicken Sie in Ihrem MRTK-Konfigurationsprofil auf die Registerkarte "Eingabe".
    • Navigieren Sie von dort aus zu "Eingabedatenanbieter" -> "Eingabesimulationsdienst".
    • Klonen Sie "DefaultMixedRealityInputSimpulationProfile", um Änderungen daran vorzunehmen.
    • Aktivieren Sie das Kontrollkästchen "Simulieren der Augenposition".

    MRTK-Augen simulieren

  2. Standardcursor für das Anvieren mit dem Kopf deaktivieren: Im Allgemeinen empfiehlt es sich, die Anzeige eines Anverweises mit den Augen zu vermeiden, oder wenn dies unbedingt erforderlich ist, um ihn sehr dezent zu gestalten. Es wird empfohlen, den standardmäßigen Cursor für das Anvfassen mit dem Kopf auszublenden, der standardmäßig an das MRTK-Anviertzeigerprofil angefügt ist.

    • Navigieren Sie zu Ihrem MRTK-Konfigurationsprofil > "Eingabe" -> "Zeiger".
    • Klonen Sie "DefaultMixedRealityInputPointerProfile", um Änderungen daran vorzunehmen.
    • Am oberen Rand des "Zeiger-Einstellungen" sollten Sie dem "GazeCursor" ein unsichtbares Cursor-Prefab zuweisen. Wählen Sie hierzu das Prefab "EyeGazeCursor" aus der MRTK Foundation aus.

Aktivieren des blickbasierten Anvischens im Anviert-Anbieter

In HoloLens v1 wurde das Anvieren mit dem Kopf als primäres Punktverfahren verwendet. Während das Anverfolgen mit dem Kopf weiterhin über den GazeProvider im MRTK verfügbar ist, der an Ihre Kameraangefügt ist, können Sie überprüfen, ob Sie stattdessen anverfolgt werden, indem Sie das Kontrollkästchen "IsEyeTrackingEnabled" in den Anverfolgungseinstellungen des Eingabezeigerprofils aktivieren.

Hinweis

Entwickler können im Code zwischen dem blickbasierten anverfolgten und dem kopfbasierten Anverfolgen wechseln, indem sie die IsEyeTrackingEnabled-Eigenschaft von "GazeProvider" ändern.

Wichtig

Wenn eine der Anforderungen an die Blickverfolgung nicht erfüllt ist, wird die Anwendung automatisch auf das kopfbasierte Anverfolgen zurückgreifen.

Zugreifen auf Daten zum Anvieren mit den Augen

Nachdem Ihre Szene nun für die Verwendung von Eyetracking eingerichtet ist, sehen wir uns an, wie Sie in Ihren Skripts darauf zugreifen können: Zugreifen auf Eyetrackingdaten über EyeGazeProvider und eye-supported target selections(Blickverfolgungsdaten über EyeGazeProvider und durch die Augen unterstützte Zielauswahl).

Testen Ihrer Unity-App auf einem HoloLens 2

Das Erstellen Ihrer App mit Blickverfolgung sollte mit der Kompilierung anderer HoloLens 2 MRTK-Apps vergleichbar sein. Stellen Sie sicher, dass Sie die Funktion "Gaze Input" wie oben im Abschnitt A note on the GazeInput capability (Hinweis zur GazeInput-Funktion)beschrieben aktiviert haben.

Augenkalibrierung

Vergessen Sie abschließend nicht, die Kalibrierung ihrer HoloLens 2 durch die Augen zu ziehen. Das Eyetrackingsystem gibt keine Eingabe zurück, wenn der Benutzer nicht kalibriert ist. Die einfachste Möglichkeit, zur Kalibrierung zu gelangen, besteht darin, das Visier nach oben und wieder nach unten zu drehen. Es sollte eine Systembenachrichtigung angezeigt werden, die Sie als neuen Benutzer empfängt und Sie auffordert, die Augenkalibrierung zu durchlaufen. Alternativ können Sie die Augenkalibrierung in den Systemeinstellungen finden: Einstellungen > System > Kalibrierung > Kalibrierung der Augen ausführen.

Eyetrackingberechtigung

Wenn Sie die App auf Ihrem HoloLens 2 zum ersten Mal starten, sollte eine Eingabeaufforderung angezeigt werden, in der der Benutzer um die Berechtigung zur Verwendung der Eyetracking gebeten wird. Wenn sie nicht angezeigt wird, ist dies in der Regel ein Hinweis darauf, dass die GazeInput-Funktion nicht festgelegt wurde.

Nachdem die Berechtigungsaufforderung einmal angezeigt wurde, wird sie nicht automatisch erneut angezeigt. Wenn Sie die Eyetrackingberechtigung verweigert haben, können Sie dies in Einstellungen -> Privacy -> Apps zurücksetzen.


Dies sollte Ihnen den Einstieg in die Verwendung von Eyetracking in Ihrer MRTK Unity-App bringen. Vergessen Sie nicht, unsere MRTK-Eyetracking-Tutorials und -Beispiele zu lesen, die veranschaulichen, wie Sie Eyetrackingeingaben verwenden und skripts bereitstellen, die Sie in Ihren Projekten wiederverwenden können.


Zurück zu "Eye tracking in the MixedRealityToolkit" (Blickverfolgung im MixedRealityToolkit)