Erste Schritte mit eye tracking in MRTK2
Auf dieser Seite erfahren Sie, wie Sie Ihre Unity MRTK-Szene einrichten, um eye tracking in Ihrer App zu verwenden. Im folgenden Dokument wird davon ausgegangen, dass Sie mit einer neuen Szene beginnen. Alternativ können Sie sich unsere bereits konfigurierten MRTK-Augenverfolgungsbeispiele mit tonnenweise großartigen Beispielen ansehen, auf die Sie direkt aufbauen können.
Checkliste für Die Anforderungen an die Augenverfolgung
Damit das Eyetracking ordnungsgemäß funktioniert, müssen die folgenden Anforderungen erfüllt sein. Machen Sie sich keine Sorgen, wenn Sie noch nicht mit dem Eyetracking auf HoloLens 2-Geräten und dessen Einrichtung im MRTK vertraut sind. In den folgenden Abschnitten gehen wir ausführlich darauf ein, wie sie behandelt werden können.
- Dem Eingabesystem muss ein "Eye Gaze Data Provider" hinzugefügt werden. Dieser Datenanbieter stellt Eye Tracking-Daten von der Plattform bereit.
- Die "GazeInput" -Funktion muss im Anwendungsmanifest aktiviert sein. 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.
- Die HoloLens muss für den aktuellen Benutzer augenkalibriert sein. Sehen Sie sich das Beispiel an, in dem ermittelt wird, ob die Steuerung mit den Augen von Benutzer*innen kalibriert ist.
Hinweis zur GazeInput-Funktion
Die von MRTK bereitgestellten Buildtools (Mixed Reality Toolkit –> Hilfsprogramme –> Buildfenster) können die GazeInput-Funktion automatisch für Sie aktivieren. Um diesen Schritt auszuführen, müssen Sie sicherstellen, dass auf der Registerkarte "Appx-Buildoptionen" die Option "Eingabefunktion anzeigen" aktiviert ist:
Diese Tools finden das AppX-Manifest, nachdem der Unity-Build abgeschlossen ist, und fügen die GazeInput-Funktion manuell hinzu. Vor Unity 2019 ist dieses Tool NICHT aktiv, wenn das integrierte Buildfenster von Unity (Datei –> Buildeinstellungen) verwendet wird.
Vor Unity 2019 muss die Funktion nach dem Unity-Build wie folgt manuell hinzugefügt werden, wenn Sie das Buildfenster von Unity verwenden:
- Öffnen Sie Ihr kompiliertes Visual Studio-Projekt, und öffnen Sie dann "Package.appxmanifest" in Ihrer Projektmappe.
- Aktivieren Sie unbedingt 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 (insbesondere die Windows SDK-Version) erfüllt.
Hinweis: Sie müssen dies nur tun, wenn Sie in einen neuen Buildordner integrieren. Sie müssen Ihre Änderungen nicht erneut anwenden, wenn Sie Ihr Unity-Projekt bereits erstellt und das appxmanifest zuvor eingerichtet hatten und nun denselben Ordner erneut als Ziel verwenden.
Schrittweises Einrichten von Eye Tracking
Einrichten der Szene
Richten Sie das MixedRealityToolkit ein, indem Sie in der Menüleiste auf "Mixed Reality Toolkit –> Konfigurieren..." klicken.
Einrichten der für eye tracking erforderlichen MRTK-Profile
Nachdem Sie Ihre MRTK-Szene eingerichtet haben, werden Sie aufgefordert, ein Profil für MRTK auszuwählen. Sie können DefaultMixedRealityToolkitConfigurationProfile und dann die Option "& Anpassen kopieren" auswählen.
Erstellen eines "Blickdatenanbieters"
- Klicken Sie in Ihrem MRTK-Profil auf die Registerkarte "Eingabe" .
- Um die Standardeinstellung zu bearbeiten ("DefaultMixedRealityInputSystemProfile"), klicken Sie daneben auf die Schaltfläche "Klonen" . Das Menü "Profil klonen" wird angezeigt. Klicken Sie unten im Menü auf "Klonen" .
- Doppelklicken Sie auf Ihr neues Eingabeprofil, erweitern Sie "Eingabedatenanbieter", und wählen Sie "+ Datenanbieter hinzufügen" aus.
- Fügen Sie den richtigen Datenanbieter hinzu:
- Für Legacy-Windows Mixed Reality
- Wählen Sie unter Typdie Option "Microsoft.MixedReality.Toolkit.WindowsMixedReality.Input" ->"WindowsMixedRealityEyeGazeDataProvider" aus.
- Für Windows XR-Plug-In
- Wählen Sie unter Typdie Option "Microsoft.MixedReality.Toolkit.XRSDK.WindowsMixedReality" ->'WindowsMixedRealityEyeGazeDataProvider' aus.
- Für OpenXR
- Wählen Sie unter Typdie Option "Microsoft.MixedReality.Toolkit.XRSDK.OpenXR" ->'OpenXREyeGazeDataProvider' aus.
- Für Legacy-Windows Mixed Reality
Aktivieren von "Eye Tracking-Daten verwenden"
- Navigieren Sie zu Ihrem MRTK-Konfigurationsprofil ->'Input' ->'Zeiger'
- Klonen Sie "DefaultMixedRealityInputPointerProfile" , um Änderungen daran vorzunehmen.
- Suchen Sie in den Einstellungen nach "Eye Tracking-Daten verwenden" , und aktivieren Sie sie.
- Möglicherweise wird jetzt die Schaltfläche "GazeInput-Funktion festlegen" angezeigt und sollte sie drücken, um die UWP-Funktion zu aktivieren.
Simulieren der Augenverfolgung im Unity-Editor
Sie können eye tracking-Eingaben im Unity-Editor simulieren, um sicherzustellen, dass Ereignisse ordnungsgemäß ausgelöst werden, bevor Sie die App in Ihrem HoloLens 2 bereitstellen. Das Augenaugensignal wird simuliert, indem die Position der Kamera als Augenaugenursprung und der Vorwärtsvektor der Kamera als Blickrichtung verwendet werden. Dies eignet sich zwar hervorragend für erste Tests, beachten Sie jedoch, dass es keine gute Imitation für schnelle Augenbewegungen ist. Dazu ist es besser, häufige Tests ihrer augenbasierten Interaktionen auf dem HoloLens 2 sicherzustellen.
Aktivieren Sie die simulierte Augenverfolgung:
- Klicken Sie in Ihrem MRTK-Konfigurationsprofil auf die Registerkarte "Eingabe" .
- Navigieren Sie von dort aus zu "Eingabedatenanbieter" ->"Input Simulation Service".
- Klonen Sie "DefaultMixedRealityInputSimulationProfile" , um Änderungen daran vorzunehmen.
- Wählen Sie die entsprechende Einstellung "Standard-Augenschau-Simulationsmodus" aus.
Standardcursor für Kopfblicke deaktivieren: Im Allgemeinen wird empfohlen, das Anzeigen eines Blickcursors zu vermeiden oder, wenn dies unbedingt erforderlich ist, sehr subtil zu gestalten. Es wird empfohlen, den standardmäßigen Kopfzeiger auszublenden, der standardmäßig an das MRTK-Blickzeigerprofil angefügt ist.
- Navigieren Sie zu Ihrem MRTK-Konfigurationsprofil ->'Input' ->'Zeiger'
- Klonen Sie "DefaultMixedRealityInputPointerProfile" , um Änderungen daran vorzunehmen.
- Oben in den Zeigereinstellungen sollten Sie dem Prefab des Cursors ein unsichtbares Cursor-Prefab zuweisen. Dazu wählen Sie das Prefab "EyeGazeCursor" aus der MRTK Foundation aus.
Aktivieren des augenbasierten Blicks im Blickanbieter
In HoloLens v1 wurde der Kopfblick als primäres Zeigeverfahren verwendet. Während der Kopfaugen noch über den GazeProvider in MRTK verfügbar ist, der an Ihre Kamera angeschlossen ist, können Sie stattdessen den Blick verwenden, indem Sie das Kontrollkästchen "IsEyeTrackingEnabled" in den Blickeinstellungen des Eingabezeigerprofils aktivieren.
Hinweis
Entwickler können im Code zwischen augenbasiertem Blick und kopfbasiertem Blick umschalten, indem sie die Eigenschaft "IsEyeTrackingEnabled" von "GazeProvider" ändern.
Wichtig
Wenn eine der Eye-Tracking-Anforderungen nicht erfüllt ist, wird die Anwendung automatisch auf den kopfbasierten Blick zurückfallen.
Zugreifen auf Augenblickdaten
Nachdem Ihre Szene nun für die Verwendung von Eye Tracking eingerichtet ist, sehen wir uns an, wie Sie in Ihren Skripts darauf zugreifen können: Zugreifen auf Eye Tracking-Daten über EyeGazeProvider und augengestützte Zielauswahl.
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. Stellen Sie sicher, dass Sie die Funktion "Gaze Input" wie oben im Abschnitt A-Notiz zur GazeInput-Funktion beschrieben aktiviert haben.
Stellen Sie sicher, dass das Projekt für HoloLens 2 konfiguriert ist
Überprüfen Sie die Konfigurationsschritte unter Einrichten eines OpenXR-Projekts mit MRTK, um ihr Projekt ordnungsgemäß konfiguriert zu haben.
Wichtige Punkte, an die Sie denken sollten:
- Überprüfen Sie die Schlüsseleinstellungen im Fenster Projekteinstellungen .
- Stellen Sie sicher, dass Plug-In-Anbieter ordnungsgemäß festgelegt sind.
- Auflösen von Warndreiecken.
- Interaktionsprofile sollten festgelegt werden
- OpenXR-Featuregruppen sollten ordnungsgemäß ausgewählt sein
Augenkalibrierung
Vergessen Sie nicht, die Augenkalibrierung auf Ihrem HoloLens 2 zu durchlaufen. Das Eye-Tracking-System gibt keine Eingabe zurück, wenn der Benutzer nicht kalibriert ist. Der einfachste Weg, um zur Kalibrierung zu gelangen, besteht darin, das Visier nach oben und dann wieder nach unten zu drehen. Es sollte eine Systembenachrichtigung angezeigt werden, die Sie als neuen Benutzer begrüßt und Sie auffordern, die Augenkalibrierung zu durchlaufen. Alternativ finden Sie die Augenkalibrierung in den Systemeinstellungen: Einstellungen > Systemkalibrierung >> Augenkalibrierung ausführen.
Eyetracking-Berechtigung
Wenn Sie die App zum ersten Mal auf Ihrem HoloLens 2 starten, sollte eine Eingabeaufforderung angezeigt werden, die den Benutzer um die Berechtigung zur Verwendung von Eyetracking bitten wird. Wenn die Eingabeaufforderung 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 wieder angezeigt. Wenn Sie die Eyetracking-Berechtigung verweigert haben, können Sie dies unter Einstellungen –> Datenschutz –> Apps zurücksetzen.
Dies sollte Ihnen den Einstieg in die Verwendung von Eyetracking in Ihrer MRTK Unity-App erleichtern. Vergessen Sie nicht , unsere MRTK-Tutorials und Beispiele für Die Augenverfolgung zu sehen, die zeigen, wie Sie Eyetracking-Eingaben verwenden und bequem Skripts bereitstellen, die Sie in Ihren Projekten wiederverwenden können.