Wprowadzenie do śledzenia oczu w narzędziu MRTK2

Na tej stronie opisano sposób konfigurowania sceny zestawu narzędzi MRTK aparatu Unity w celu korzystania ze śledzenia oczu w aplikacji. Poniższy dokument zakłada, że zaczynasz od nowej sceny. Alternatywnie możesz zapoznać się z naszymi już skonfigurowanymi przykładami śledzenia oczu MRTK z mnóstwem świetnych przykładów, na których można bezpośrednio budować.

Lista kontrolna wymagań dotyczących śledzenia oczu

Aby śledzenie oczu działało poprawnie, należy spełnić następujące wymagania. Jeśli dopiero zaczynasz śledzić oko na HoloLens 2 i jak śledzenie oczu jest skonfigurowane w MRTK, nie martw się! Szczegółowo omówimy sposób rozwiązywania problemów z poszczególnymi elementami w poniższych sekcjach.

  1. Dostawca danych "Eye Gaze Data Provider" musi zostać dodany do systemu wejściowego. Ten dostawca danych zapewnia dane śledzenia oczu z platformy.
  2. Funkcja "GazeInput" musi być włączona w manifeście aplikacji. Tę funkcję można ustawić w środowisku Unity 2019, ale w środowisku Unity 2018 i starszej wersji ta funkcja jest dostępna tylko w programie Visual Studio i za pomocą narzędzia do tworzenia zestawu narzędzi MRTK.
  3. Urządzenie HoloLens musi być skalibrowane dla bieżącego użytkownika. Zapoznaj się z naszym przykładem, aby wykryć, czy użytkownik jest skalibrowany, czy nie.

Uwaga dotycząca funkcji GazeInput

Narzędzia kompilacji dostarczone przez zestaw narzędzi MRTK (Mixed Reality Toolkit -> Utilities -> Build Window) mogą automatycznie włączać funkcję GazeInput. Aby wykonać ten krok, musisz upewnić się, że na karcie "Opcje kompilacji aplikacji Appx" jest zaznaczona opcja "Funkcja wprowadzania spojrzeń":

Narzędzia do kompilacji zestawu narzędzi MRTK

To narzędzie znajdzie manifest AppX po zakończeniu kompilacji aparatu Unity i ręcznie dodaj funkcję GazeInput. Przed aparatem Unity 2019 to narzędzie nie jest aktywne podczas korzystania z wbudowanego okna kompilacji aparatu Unity (plik —> ustawienia kompilacji).

Przed aparatem Unity 2019 w przypadku korzystania z okna kompilacji aparatu Unity funkcja musi zostać ręcznie dodana po kompilacji aparatu Unity w następujący sposób:

  1. Otwórz skompilowany projekt programu Visual Studio, a następnie otwórz plik "Package.appxmanifest" w rozwiązaniu.
  2. Pamiętaj, aby zaznaczyć pole wyboru "GazeInput" w obszarze Możliwości. Jeśli nie widzisz możliwości "GazeInput" , sprawdź, czy system spełnia wymagania wstępne dotyczące korzystania z zestawu MRTK (w szczególności wersji zestawu Windows SDK).

Uwaga: Należy to zrobić tylko wtedy, gdy utworzysz nowy folder kompilacji. Nie trzeba ponownie stosować zmian, jeśli projekt aparatu Unity został już skompilowany i skonfigurowany plik appxmanifest przed i teraz będzie ponownie przeznaczony dla tego samego folderu.

Konfigurowanie śledzenia oczu krok po kroku

Konfigurowanie sceny

Skonfiguruj zestaw MixedRealityToolkit, klikając pozycję "Mixed Reality Toolkit -> Configure..." na pasku menu.

Konfigurowanie zestawu narzędzi MRTK

Konfigurowanie profilów MRTK wymaganych do śledzenia oczu

Po skonfigurowaniu sceny MRTK zostanie wyświetlony monit o wybranie profilu dla zestawu narzędzi MRTK. Możesz wybrać pozycję DefaultMixedRealityToolkitConfigurationProfile, a następnie wybrać opcję "Kopiuj & Dostosuj".

Profil zestawu narzędzi MRTK

Tworzenie dostawcy danych "eye gaze data provider"

  • Kliknij kartę "Input" (Dane wejściowe) w profilu mrTK.
  • Aby edytować domyślny ('DefaultMixedRealityInputSystemProfile'), kliknij przycisk "Klonuj" obok niego. Zostanie wyświetlone menu "Klonuj profil". Kliknij pozycję "Clone" (Klonuj) w dolnej części tego menu.
  • Kliknij dwukrotnie nowy profil wejściowy, rozwiń węzeł "Dostawcy danych wejściowych", a następnie wybierz pozycję "+ Dodaj dostawcę danych".
  • Dodaj odpowiedniego dostawcę danych:
    • W przypadku starszych Windows Mixed Reality
      • W obszarze Typ wybierz pozycję "Microsoft.MixedReality.Toolkit.WindowsMixedReality.Input" ->'WindowsMixedRealityEyeGazeDataProvider'
    • Dla wtyczki XR systemu Windows
      • W obszarze Typ wybierz pozycję "Microsoft.MixedReality.Toolkit.XRSDK.WindowsMixedReality" ->'WindowsMixedRealityEyeGazeDataProvider'
    • W przypadku biblioteki OpenXR
      • W obszarze Typ wybierz pozycję "Microsoft.MixedReality.Toolkit.XRSDK.OpenXR" ->'OpenXREyeGazeDataProvider'

Dostawca danych MRTK

Włącz opcję "Korzystanie z danych śledzenia oczu"

  • Przejdź do profilu konfiguracji zestawu narzędzi MRTK ->'Input' ->'Pointers'
    • Sklonuj element "DefaultMixedRealityInputPointerProfile" , aby wprowadzić w nim zmiany.
  • Znajdź pozycję "Użyj danych śledzenia oczu" w ustawieniach i włącz ją.
  • Możesz teraz zobaczyć przycisk "Ustaw funkcję GazeInput" i powinien nacisnąć go, aby włączyć funkcję platformy UWP.

Funkcja MRTK używa danych śledzenia oczu

Symulowanie śledzenia oczu w edytorze aparatu Unity

Możesz symulować dane wejściowe śledzenia oczu w Edytorze aparatu Unity, aby upewnić się, że zdarzenia są poprawnie wyzwalane przed wdrożeniem aplikacji w HoloLens 2. Sygnał wzroku jest symulowany przy użyciu lokalizacji kamery jako źródła wzroku i wektora kamery do przodu jako kierunku wzroku. Chociaż jest to doskonałe rozwiązanie do testowania początkowego, należy pamiętać, że nie jest to dobra imitacja szybkich ruchów oczu. W tym celu lepiej jest zapewnić częste testy interakcji na podstawie oczu na HoloLens 2.

  1. Włącz symulowane śledzenie oczu:

    • Kliknij kartę "Dane wejściowe" w profilu konfiguracji zestawu narzędzi MRTK.
    • W tym miejscu przejdź do pozycji "Dostawcy danych wejściowych" ->"Usługa symulacji danych wejściowych".
    • Sklonuj element "DefaultMixedRealityInputSimulationProfile" , aby wprowadzić w nim zmiany.
    • Wybierz odpowiednie ustawienie "Domyślny tryb symulacji oka".

    Symulowanie oczu MRTK

  2. Wyłącz domyślny kursor spojrzenia na głowę: ogólnie zalecamy unikanie wyświetlania kursora wzroku lub, jeśli jest to absolutnie wymagane, sprawiają, że jest bardzo subtelne. Zalecamy ukrycie domyślnego kursora spojrzenia na głowę, który jest domyślnie dołączony do profilu wskaźnika spojrzenia MRTK.

    • Przejdź do profilu konfiguracji zestawu narzędzi MRTK ->'Input' ->'Pointers'
    • Sklonuj element "DefaultMixedRealityInputPointerProfile" , aby wprowadzić w nim zmiany.
    • W górnej części pozycji "Ustawienia wskaźnika" należy przypisać niewidoczny kursor prefab do prefab "Gaze Cursor Prefab". Możesz to zrobić, wybierając prefabę "EyeGazeCursor" z fundacji MRTK.

Włączanie wzroku na podstawie wzroku u dostawcy spojrzenia

W urządzeniu HoloLens w wersji 1 spojrzenie głowy było używane jako podstawowa technika wskazywania. Podczas gdy spojrzenie na głowę jest nadal dostępne za pośrednictwem elementu GazeProvider w narzędziu MRTK, który jest dołączony do aparatu, możesz zamiast tego użyć wzroku, wybierając pole wyboru "IsEyeTrackingEnabled" w ustawieniach spojrzenia profilu wskaźnika wejściowego.

Uwaga

Deweloperzy mogą przełączać się między spojrzeniem na oko i spojrzeniem opartym na głowie w kodzie, zmieniając właściwość "IsEyeTrackingEnabled""GazeProvider".

Ważne

Jeśli którekolwiek z wymagań dotyczących śledzenia oczu nie zostaną spełnione, aplikacja automatycznie powróci do spojrzenia opartego na głowie.

Uzyskiwanie dostępu do danych wzroku

Teraz, gdy scena jest skonfigurowana do korzystania ze śledzenia oczu, przyjrzyjmy się sposobom uzyskiwania dostępu do niej w skryptach: Uzyskiwanie dostępu do danych śledzenia oczu za pośrednictwem obiektu EyeGazeProvider i wyborów docelowych obsługiwanych przez oko.

Testowanie aplikacji Aparatu Unity w HoloLens 2

Tworzenie aplikacji za pomocą śledzenia oczu powinno być podobne do sposobu kompilowania innych HoloLens 2 aplikacji MRTK. Upewnij się, że włączono funkcję "Dane wejściowe gaze" , jak opisano powyżej w sekcji Uwaga dotycząca funkcji GazeInput.

Upewnij się, że projekt został skonfigurowany dla HoloLens 2

Upewnij się, że projekt został prawidłowo skonfigurowany, przeglądając kroki konfiguracji opisane w temacie Konfigurowanie projektu OpenXR przy użyciu zestawu narzędzi MRTK.

Kluczowe kwestie do przemyślenia:

  • Przejrzyj ustawienia klucza w oknie Ustawienia projektu .
    • Upewnij się, że dostawcy wtyczek są poprawnie ustawiani
  • Rozwiąż trójkąty ostrzegawcze.
    • Należy ustawić profile interakcji
    • Grupy funkcji OpenXR powinny być prawidłowo wybrane

Kalibracja oczu

Nie zapomnij przejść przez kalibrację oczu na HoloLens 2. System śledzenia oczu nie zwróci żadnych danych wejściowych, jeśli użytkownik nie jest kalibrowany. Najprostszym sposobem, aby dostać się do kalibracji jest przerzucanie daszka w górę, a następnie z powrotem w dół. Powinno pojawić się powiadomienie systemowe, które wita cię jako nowego użytkownika i prosi o przejście przez kalibrację oczu. Alternatywnie można znaleźć kalibrację oczu w ustawieniach systemu: Ustawienia > Kalibracja systemu > Kalibracja uruchom kalibracji > oczu.

Uprawnienie do śledzenia oczu

Po pierwszym uruchomieniu aplikacji na HoloLens 2 monit powinien pojawić się monit z prośbą o pozwolenie na korzystanie ze śledzenia oczu. Jeśli monit nie jest wyświetlany, zwykle oznacza to, że funkcja "GazeInput" nie została ustawiona.

Po wyświetleniu monitu o uprawnienie nie będzie automatycznie wyświetlane. Jeśli "odmowa uprawnień do śledzenia oczu", możesz zresetować tę opcję w obszarze Ustawienia —> Prywatność —> Aplikacje.


Powinno to rozpocząć korzystanie ze śledzenia oczu w aplikacji MRTK Unity. Nie zapomnij zapoznać się z naszymi samouczkami śledzenia oczu mrTK i przykładami pokazującymi, jak używać danych wejściowych śledzenia oczu i wygodnie dostarczać skrypty, które można użyć ponownie w projektach.


Powrót do "Śledzenie oczu w MixedRealityToolkit"