Erste Schritte mit Eye Tracking in MRTK2

Auf dieser Seite wird erläutert, wie Sie Ihre Unity MRTK-Szene so einrichten, dass Sie die Eye Tracking in Ihrer App verwenden. Im Folgenden wird davon ausgegangen, dass Sie mit einer neuen Szene beginnen. Alternativ können Sie sich unsere bereits konfigurierten MRTK-Eye tracking-Beispiele mit vielen großartigen Beispielen ansehen, auf die Sie direkt aufbauen können.

Prüfliste für Eye Tracking-Anforderungen

Damit das Eyetracking ordnungsgemäß funktioniert, müssen die folgenden Anforderungen erfüllt sein. Wenn Sie noch nicht auf HoloLens 2 blicken und wie Eye Tracking in MRTK eingerichtet wird, machen Sie sich keine Sorgen! Im Folgenden werden diese Themen jeweils ausführlich erläutert.

  1. Dem Eingabesystem muss ein "Eye Gaze Datenanbieter" hinzugefügt werden. Dieser stellt Eyetrackingdaten von der Plattform bereit.
  2. Die Funktion "GazeInput" muss im Anwendungsmanifest aktiviert sein. Diese Funktion kann in Unity 2019 festgelegt werden, aber in Unity 2018 und früheren Versionen ist diese Funktion nur in Visual Studio und über das MRTK-Buildtool verfügbar.
  3. Der HoloLens muss für den aktuellen Benutzer kalibriert werden. Sehen Sie sich das Beispiel an, in dem ermittelt wird, ob die Steuerung mit den Augen von Benutzer*innen kalibriert ist.

Eine Notiz zur GazeInput-Funktion

Das vom MRTK bereitgestellte Buildtool (z. B. Mixed Reality Toolkit - Dienstprogramme ->> Buildfenster) kann die GazeInput-Funktion automatisch für Sie aktivieren. Um dies zu tun, müssen Sie sicherstellen, dass die "Blickeingabefunktion" auf der Registerkarte "Appx Buildoptionen" aktiviert ist:

MRTK Build Tools

Dieses Tool findet das AppX-Manifest nach Abschluss des Unity-Builds und fügt die GazeInput-Funktion manuell hinzu. Vor Unity 2019 ist dieses Tool NICHT aktiv, wenn Unitys integriertes Buildfenster (d. h. Datei –> Build Einstellungen) verwendet wird.

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

  1. Öffnen Sie das kompilierte Visual Studio Projekt, und öffnen Sie dann das Paket.appxmanifest in Ihrer Lösung.
  2. Aktivieren Sie das Kontrollkästchen "GazeInput" unter "Funktionen". 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).

Bitte beachten Sie: Sie müssen dies nur tun, wenn Sie einen neuen Buildordner erstellen. Dies bedeutet, dass Sie, wenn Sie Ihr Unity-Projekt bereits erstellt und das Appxmanifest bereits eingerichtet haben und jetzt erneut auf denselben Ordner abzielen, müssen Sie Ihre Änderungen nicht erneut anwenden.

Einrichten von Eye Tracking schrittweise

Einrichten der Szene

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

MRTK configure

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 auswählen und dann die Option "Anpassen kopieren & " auswählen.

MRTK profile

Erstellen eines "Blickdatenanbieters"

  • Klicken Sie im MRTK-Profil auf die Registerkarte "Eingabe" .
  • Um die Standardeinstellung zu bearbeiten ( 'DefaultMixedRealityInputSystemProfile'), klicken Sie auf die Schaltfläche "Klonen" neben ihr. Ein Menü "Klonprofil" 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 eines neuen Datenanbieters:
    • Wählen Sie unter "Type" "Microsoft.MixedReality.Toolkit.WindowsMixedReality.Input" ->"WindowsMixedRealityEyeGazeDataProvider" aus.
    • Wählen Sie für Plattform(n)"Windows Universal" aus.

MRTK data provider

Simulieren der Eye Tracking im Unity-Editor

Sie können die Eye Tracking-Eingabe im Unity-Editor simulieren, um sicherzustellen, dass Ereignisse vor der Bereitstellung der App in Ihrem HoloLens 2 ordnungsgemäß ausgelöst werden. Das Augenblicksignal wird einfach mithilfe der Kameraposition als Blickherkunft und dem Vorwärtsvektor der Kamera als Blickrichtung simuliert. Dies eignet sich zwar hervorragend für anfängliche Tests, beachten Sie jedoch, dass es sich nicht um ein gutes Imitation für schnelle Augenbewegungen handelt. Dafür ist es besser, häufige Tests Ihrer augenbasierten Interaktionen auf dem HoloLens 2 sicherzustellen.

  1. Simulierte Eye Tracking aktivieren:

    • Klicken Sie im MRTK-Konfigurationsprofil auf die Registerkarte "Eingabe" .
    • Navigieren Sie dort zu "Eingabedatenanbieter" –>'Eingabesimulationsdienst'.
    • Klonen Sie das "DefaultMixedRealityInputSimpulationProfile" , um Änderungen daran vorzunehmen.
    • Aktivieren Sie das Kontrollkästchen "Augenposition simulieren" .

    MRTK eyes simulate

  2. Deaktivieren Sie den Standard-Kopf-Blickcursor: Im Allgemeinen wird empfohlen, einen Blickcursor zu vermeiden oder wenn sie unbedingt erforderlich ist, um es sehr subtil zu machen. Es wird empfohlen, den Standard-Kopf-Blickcursor auszublenden, der standardmäßig an das MRTK-Blickzeigerprofil angefügt ist.

    • Navigieren Sie zu Ihrem MRTK-Konfigurationsprofil -'Input' ->>'Zeiger'
    • Klonen Sie die "DefaultMixedRealityInputPointerProfile" , um Änderungen daran vorzunehmen.
    • Am oberen Rand des "Zeigers Einstellungen" sollten Sie dem "GazeCursor" einen unsichtbaren Cursor prefab zuweisen. Dazu wählen Sie das Prefab "EyeGazeCursor" aus der MRTK Foundation aus.

Aktivieren des blickbasierten Blicks im Blickanbieter

In HoloLens v1 wurde der Kopfblick als primäre Zeigetechnik verwendet. Während der Blick des Kopfs weiterhin über den GazeProvider in MRTK verfügbar ist, der an Ihre Kamera angefügt ist, können Sie stattdessen überprüfen, ob Sie den Blick verwenden, indem Sie das Kontrollkästchen "IsEyeTrackingEnabled" in den Blickeinstellungen des Eingabezeigerprofils ankreuzen.

Hinweis

Entwickler können zwischen augenbasiertem Blick und kopfbasiertem Blick im Code umschalten, indem Sie die Eigenschaft "IsEyeTrackingEnabled" von "GazeProvider" ändern.

Wichtig

Wenn einer der Eye Tracking-Anforderungen nicht erfüllt ist, fällt die Anwendung automatisch auf kopfbasierte Blicke zurück.

Zugreifen auf Augenblickdaten

Nachdem Ihre Szene für die Verwendung von Eye Tracking eingerichtet ist, schauen wir uns an, wie Sie in Ihren Skripts darauf zugreifen können: Zugreifen auf EyeGazeProvider - und eye-unterstützte Zielauswahlen.

Testen ihrer Unity-App auf einem HoloLens 2

Das Erstellen Ihrer App mit Eye Tracking sollte mit der Kompilierung anderer HoloLens 2 MRTK-Apps vergleichbar sein. Achten Sie darauf, dass Sie die Funktion "Gaze Input" aktiviert haben, wie oben im Abschnitt A hinweis auf die GazeInput-Funktion beschrieben.

Stellen Sie sicher, dass das Projekt für HoloLens 2 konfiguriert ist

Stellen Sie sicher, dass Sie Ihr Projekt ordnungsgemäß konfiguriert haben, indem Sie die in der Einrichtung eines OpenXR-Projekts mit MRTK behandelten Konfigurationsschritte überprüfen.

Wichtige Punkte, die Sie berücksichtigen sollten:

  • Überprüfen Sie die Schlüsseleinstellungen im fenster Project Einstellungen.
    • Stellen Sie sicher, dass Plug-In-Anbieter korrekt festgelegt sind
  • Beheben sie Warndreiecks.
    • Interaktionsprofile sollten festgelegt werden
    • OpenXR-Featuregruppen sollten ordnungsgemäß ausgewählt werden

Augenkalibrierung

Bitte vergessen Sie schließlich nicht, die Augenkalibrierung auf Ihrem HoloLens 2 zu durchlaufen. Das Eye Tracking-System gibt keine Eingaben zurück, wenn der Benutzer nicht kalibriert ist. Die einfachste Möglichkeit, zur Kalibrierung zu gelangen, besteht darin, das Visier nach oben und nach unten zu kippen. Eine Systembenachrichtigung sollte Ihnen als neuer Benutzer willkommen sein und Sie bitten, die Augenkalibrierung zu durchlaufen. Alternativ finden Sie die Augenkalibrierung in den Systemeinstellungen: Einstellungen > Systemkalibrierung >> Ausführen der Augenkalibrierung.

Eye Tracking-Berechtigung

Wenn Sie die App zum ersten Mal auf Ihrem HoloLens 2 starten, sollte eine Eingabeaufforderung den Benutzer auffordern, die Berechtigung zur Verwendung von Eye Tracking zu erhalten. Wenn es 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 Eye Tracking-Berechtigung verweigert" haben, können Sie dies in Einstellungen -> Datenschutz -> Apps zurücksetzen.


Dies sollten Sie mit der Verwendung von Eye Tracking in Ihrer MRTK Unity-App beginnen. Vergessen Sie nicht, unsere MRTK Eye Tracking Lernprogramme und Beispiele zu sehen, in denen gezeigt wird, wie Sie Eye Tracking-Eingaben verwenden und bequem Skripts bereitstellen können, die Sie in Ihren Projekten wiederverwenden können.


Zurück zu "Eye tracking in the MixedRealityToolkit"