Freigeben über


Erste Schritte mit Eyetracking in MRTK2

Auf dieser Seite erfahren Sie, wie Sie Ihre Unity-MRTK-Szene für die Verwendung von Eyetracking in Ihrer App einrichten. Im folgenden Dokument wird davon ausgegangen, dass Sie mit einer neuen Szene beginnen. Alternativ können Sie sich unsere bereits konfigurierten MRTK-Eyetracking-Beispiele mit vielen großartigen Beispielen ansehen, auf denen Sie direkt aufbauen können.

Checkliste für Die Anforderungen an eye tracking

Damit eye tracking ordnungsgemäß funktioniert, müssen die folgenden Anforderungen erfüllt sein. Wenn Sie noch nicht mit Eyetracking auf HoloLens 2 und der Einrichtung von Eye Tracking in MRTK sind, machen Sie sich keine Sorgen! In den folgenden Abschnitten wird ausführlich erläutert, wie sie sich mit den einzelnen Themen befassen können.

  1. Dem Eingabesystem muss ein "Eye Gaze Data Provider" hinzugefügt werden. Dieser Datenanbieter stellt Eyetracking-Daten von der Plattform bereit.
  2. 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.
  3. Die HoloLens muss für den aktuellen Benutzer kalibriert werden. Sehen Sie sich unser Beispiel an, um festzustellen, ob ein Benutzer augenkalibrierungiert ist oder nicht.

Hinweis zur GazeInput-Funktion

Die vom 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 "Eingabe anvisieren" aktiviert ist:

MRTK-Buildtools

Diese Tools finden das AppX-Manifest, nachdem der Unity-Build abgeschlossen ist, und fügen die GazeInput-Funktion manuell hinzu. Vor Unity 2019 sind diese Tools NICHT aktiv, wenn das integrierte Buildfenster von Unity (Datei –> Buildeinstellungen) verwendet wird.

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 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 einen neuen Buildordner erstellen. Sie müssen Ihre Änderungen nicht erneut anwenden, wenn Sie Ihr Unity-Projekt bereits erstellt und das appxmanifest zuvor eingerichtet haben und jetzt denselben Ordner erneut als Ziel verwenden.

Schrittweises Einrichten des Eyetrackings

Einrichten der Szene

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

MRTK konfigurieren

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

MRTK-Profil

Erstellen eines "Datenanbieters für Anvisieren mit blicken"

  • Klicken Sie in Ihrem MRTK-Profil auf die Registerkarte "Eingabe" .
  • Um das Standardsymbol ("DefaultMixedRealityInputSystemProfile") zu bearbeiten, 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 Das 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.

MRTK-Datenanbieter

Aktivieren von "Eye Tracking-Daten verwenden"

  • Navigieren Sie zu Ihrem MRTK-Konfigurationsprofil ">Eingabe" ->"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 Sie sollten sie drücken, um die UWP-Funktion zu aktivieren.

MRTK: Verwenden von Eyetracking-Daten

Simulieren von Eyetracking im Unity-Editor

Sie können eyetracking-Eingaben im Unity-Editor simulieren, um sicherzustellen, dass Ereignisse ordnungsgemäß ausgelöst werden, bevor Sie die App in Ihrem HoloLens 2 bereitstellen. Das Anvisieren des Augensignals wird simuliert, indem die Position der Kamera als Ursprung des Anvisierens des Auges und der Vorwärtsvektor der Kamera als Blickrichtung verwendet werden. Dies eignet sich zwar hervorragend für erste Tests, aber beachten Sie, dass es keine gute Nachahmung für schnelle Augenbewegungen ist. Dafür ist es besser, häufige Tests Ihrer augenbasierten Interaktionen auf dem HoloLens 2 sicherzustellen.

  1. Aktivieren sie simulierte Eyetrackings:

    • Klicken Sie in Ihrem MRTK-Konfigurationsprofil auf die Registerkarte "Eingabe" .
    • Navigieren Sie dort zu "Eingabedatenanbieter" ->"Eingabesimulationsdienst".
    • Klonen Sie "DefaultMixedRealityInputSimulationProfile", um Änderungen daran vorzunehmen.
    • Wählen Sie die entsprechende Einstellung "Standardmäßiger Simulationsmodus für augenvisieren" aus.

    MRTK-Augen simulieren

  2. Standard-Kopf-Anvisieren-Cursor deaktivieren: Im Allgemeinen wird empfohlen, das Anzeigen eines Anvisierens mit den Augen zu vermeiden oder, wenn dies unbedingt erforderlich ist, ihn sehr subtil zu gestalten. Es wird empfohlen, den standardmäßigen Kopfzeiger auszublenden, der standardmäßig an das MRTK-Anvisierenzeigerprofil angefügt ist.

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

Aktivieren des augenbasierten Anvisierens im Anvisierenanbieter

In HoloLens v1 wurde das Anvisieren des Kopfes als primäres Zeigeverfahren verwendet. Während das Anvisieren des Kopfes weiterhin über den GazeProvider im MRTK verfügbar ist, der an Ihre Kamera angeschlossen ist, können Sie stattdessen das Anvisieren mit den Augen verwenden, indem Sie das Kontrollkästchen "IsEyeTrackingEnabled" in den Anvisierungseinstellungen des Eingabezeigerprofils aktivieren.

Hinweis

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

Wichtig

Wenn eine der Eyetracking-Anforderungen nicht erfüllt ist, wird die Anwendung automatisch auf kopfbasiertes Anvisieren zurückgreifen.

Zugreifen auf Daten zum Anvisieren von 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 EyeTracking-Daten über EyeGazeProvider und eye-unterstützte Zielauswahlen.

Testen Ihrer Unity-App auf einem HoloLens 2

Das Erstellen Ihrer App mit Eyetracking sollte ähnlich sein wie bei der Kompilierung anderer HoloLens 2 MRTK-Apps. Stellen Sie sicher, dass Sie die Funktion "Eingabe anvisieren" wie oben im Abschnitt A-Hinweis zur GazeInput-Funktion beschrieben aktiviert haben.

Sicherstellen, dass das Projekt für HoloLens 2 konfiguriert ist

Überprüfen Sie die Konfigurationsschritte unter Einrichten eines OpenXR-Projekts mit MRTK, um sicherzustellen, dass Sie Ihr Projekt ordnungsgemäß konfiguriert haben.

Wichtige Punkte, über die Sie nachdenken sollten:

  • Überprüfen Sie die Schlüsseleinstellungen im Fenster Projekteinstellungen .
    • Sicherstellen, 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 Eyetracking-System gibt keine Eingaben 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 kippen. Es sollte eine Systembenachrichtigung angezeigt werden, die Sie als neuen Benutzer willkommen heiß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, in der der Benutzer um die Berechtigung zur Verwendung von Eyetracking gebeten 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 erneut 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 Eye-Tracking-Eingaben verwenden und bequem Skripts bereitstellen, die Sie in Ihren Projekten wiederverwenden können.


Zurück zu "Eyetracking im MixedRealityToolkit"