Komma igång med ögonspårning i MRTK2

Den här sidan beskriver hur du konfigurerar Unity MRTK-scenen för att använda ögonspårning i din app. I följande dokument förutsätts att du börjar med en ny ny scen. Du kan också kolla in våra redan konfigurerade MRTK-ögonspårningsexempel med massor av bra exempel som du kan bygga vidare på direkt.

Checklista för ögonspårningskrav

För att ögonspårning ska fungera korrekt måste följande krav uppfyllas. Om du är nybörjare på ögonspårning på HoloLens 2 och hur ögonspårning har konfigurerats i MRTK, oroa dig inte! Vi går in närmare på hur du hanterar var och en av dem ytterligare i följande avsnitt.

  1. En "Eye Gaze Data Provider" måste läggas till i indatasystemet. Den här dataleverantören tillhandahåller ögonspårningsdata från plattformen.
  2. Funktionen GazeInput måste vara aktiverad i programmanifestet. Den här funktionen kan anges i Unity 2019, men i Unity 2018 och tidigare är den här funktionen endast tillgänglig i Visual Studio och via VERKTYGET FÖR MRTK-kompilering.
  3. HoloLens måste vara ögonkalibrerad för den aktuella användaren. Kolla in vårt exempel för att identifiera om en användare är ögonkalibrerad eller inte.

En anteckning om GazeInput-funktionen

Den MRTK-tillhandahållna byggverktyget (Mixed Reality Toolkit –> Verktyg –> Byggfönster) kan automatiskt aktivera GazeInput-funktionen åt dig. För att kunna utföra det här steget måste du kontrollera att "Gaze Input Capability" är markerad på fliken "Appx Build Options":

BYGGVERKTYG FÖR MRTK

Den här verktygsverktyget hittar AppX-manifestet när Unity-versionen har slutförts och lägger till GazeInput-funktionen manuellt. Före Unity 2019 är det här verktyget INTE aktivt när du använder Unitys inbyggda build-fönster (Fil –> Bygginställningar).

Innan Unity 2019, när du använder Unitys byggfönster, måste funktionen läggas till manuellt efter Unity-versionen på följande sätt:

  1. Öppna ditt kompilerade Visual Studio-projekt och öppna sedan Package.appxmanifest i din lösning.
  2. Markera kryssrutan "GazeInput" under Funktioner. Om du inte ser funktionen "GazeInput" kontrollerar du att systemet uppfyller kraven för att använda MRTK (särskilt Windows SDK-versionen).

Observera: Du behöver bara göra detta om du skapar en ny byggmapp. Du behöver inte tillämpa ändringarna på nytt om du redan har skapat Unity-projektet och konfigurerat appxmanifest innan och nu riktar in dig på samma mapp igen.

Konfigurera ögonspårning steg för steg

Konfigurera scenen

Konfigurera MixedRealityToolkit genom att klicka på "Mixed Reality Toolkit –> Konfigurera..." i menyraden.

KONFIGURERA MRTK

Konfigurera de MRTK-profiler som krävs för ögonspårning

När du har konfigurerat MRTK-scenen uppmanas du att välja en profil för MRTK. Du kan välja DefaultMixedRealityToolkitConfigurationProfile och sedan välja alternativet Kopiera & Anpassa .

MRTK-profil

Skapa en "eye gaze data provider"

  • Klicka på fliken Indata i DIN MRTK-profil.
  • Om du vill redigera standardvärdet ("DefaultMixedRealityInputSystemProfile") klickar du på knappen Klona bredvid den. Menyn Klona profil visas. Klicka på Klona längst ned på menyn.
  • Dubbelklicka på den nya indataprofilen, expandera "Indataprovidrar" och välj + Lägg till dataprovider.
  • Lägg till rätt dataprovider:
    • För äldre Windows Mixed Reality
      • Under Typ väljer du "Microsoft.MixedReality.Toolkit.WindowsMixedReality.Input" ->"WindowsMixedRealityEyeGazeDataProvider"
    • För Windows XR-plugin-program
      • Under Typ väljer du "Microsoft.MixedReality.Toolkit.XRSDK.WindowsMixedReality" ->"WindowsMixedRealityEyeGazeDataProvider"
    • För OpenXR
      • Under Typ väljer du "Microsoft.MixedReality.Toolkit.XRSDK.OpenXR" ->"OpenXREyeGazeDataProvider"

MRTK-dataprovider

Aktivera "Använd ögonspårningsdata"

  • Gå till din MRTK-konfigurationsprofil –>"Indata" –>Pekare
    • Klona "DefaultMixedRealityInputPointerProfile" för att göra ändringar i den.
  • Leta reda på "Använd ögonspårningsdata" i inställningarna och aktivera den.
  • Du kan se knappen Ange GazeInput-kapacitet nu och bör trycka på den för att aktivera UWP-funktionen.

MRTK använder ögonspårningsdata

Simulera ögonspårning i Unity-redigeraren

Du kan simulera indata för ögonspårning i Unity-redigeraren för att säkerställa att händelser utlöses korrekt innan du distribuerar appen till din HoloLens 2. Ögonögasignalen simuleras med hjälp av kamerans plats som ögonöga ursprung och kamerans framåtriktade vektor som ögonögariktning. Även om detta är bra för inledande testning, observera att det inte är en bra imitation för snabba ögonrörelser. För detta är det bättre att säkerställa frekventa tester av dina ögonbaserade interaktioner på HoloLens 2.

  1. Aktivera simulerad ögonspårning:

    • Klicka på fliken Indata i din MRTK-konfigurationsprofil.
    • Därifrån navigerar du till "Indataprovidrar" –>"Indatasimuleringstjänst".
    • Klona "DefaultMixedRealityInputSimulationProfile" för att göra ändringar i den.
    • Välj lämplig inställning för simuleringsläge för ögonöga .

    MRTK-ögon simulerar

  2. Inaktivera standardmarkören för huvudögon: I allmänhet rekommenderar vi att du undviker att visa en ögonögonmarkör eller, om det är absolut nödvändigt, göra den mycket diskret. Vi rekommenderar att du döljer standardmarkören för huvudblick som är kopplad till MRTK-blickpekarprofilen som standard.

    • Gå till din MRTK-konfigurationsprofil –>"Indata" –>Pekare
    • Klona "DefaultMixedRealityInputPointerProfile" för att göra ändringar i den.
    • Överst i Pekarinställningar bör du tilldela en osynlig markörprefab till "Gaze Cursor Prefab". Du kan göra detta genom att välja prefab "EyeGazeCursor" från MRTK Foundation.

Aktivera ögonbaserad blick i blickprovidern

I HoloLens v1 användes huvud blick som den primära pektekniken. Medan huvud blicken fortfarande är tillgänglig via GazeProvider i MRTK, som är kopplad till din kamera, kan du använda blicken istället genom att välja kryssrutan "IsEyeTrackingEnabled" i blickinställningarna för indatapekarprofilen.

Anteckning

Utvecklare kan växla mellan ögonbaserad blick och huvudbaserad blick i kod genom att ändra egenskapen "IsEyeTrackingEnabled" för "GazeProvider".

Viktigt

Om något av kraven för ögonspårning inte uppfylls återgår programmet automatiskt till huvudbaserad blick.

Åtkomst till ögonögadata

Nu när din scen har konfigurerats för att använda ögonspårning ska vi ta en titt på hur du kommer åt den i dina skript: Komma åt ögonspårningsdata via EyeGazeProvider och ögonstödda målval.

Testa unity-appen på en HoloLens 2

Att skapa din app med ögonspårning bör likna hur du kompilerar andra HoloLens 2 MRTK-appar. Se till att du har aktiverat funktionen "Gaze Input" enligt beskrivningen ovan i avsnittet En anteckning om GazeInput-funktionen.

Kontrollera att projektet har konfigurerats för HoloLens 2

Kontrollera att du har konfigurerat projektet korrekt genom att granska konfigurationsstegen som beskrivs i Konfigurera ett OpenXR-projekt med MRTK.

Viktiga saker att tänka på:

  • Granska viktiga inställningar i fönstret Projektinställningar .
    • Kontrollera att plugin-leverantörer har angetts korrekt
  • Lös varningstrianglar.
    • Interaktionsprofiler ska anges
    • OpenXR-funktionsgrupper bör väljas korrekt

Ögonkalibrering

Glöm inte att gå igenom ögonkalibreringen på din HoloLens 2. Ögonspårningssystemet returnerar inga indata om användaren inte är kalibrerad. Det enklaste sättet att komma till kalibreringen är genom att vända visorn upp och sedan tillbaka ner. Ett systemmeddelande bör visas som välkomnar dig som ny användare och ber dig att gå igenom ögonkalibreringen. Du kan också hitta ögonkalibreringen i systeminställningarna: Inställningar > Systemkalibrering >> Kör ögonkalibrering.

Behörighet för ögonspårning

När du startar appen på din HoloLens 2 för första gången bör ett meddelande visas där användaren uppmanas att ange behörighet att använda ögonspårning. Om prompten inte visas är det vanligtvis en indikation på att funktionen "GazeInput" inte har angetts.

När behörighetsprompten visas en gång visas den inte automatiskt igen. Om du "nekade ögonspårningsbehörighet" kan du återställa detta i Inställningar –> Sekretess –> Appar.


Detta bör komma igång med att använda ögonspårning i din MRTK Unity-app. Glöm inte att kolla in våra MRTK-självstudier och exempel på ögonspårning som visar hur du använder indata för ögonspårning och enkelt tillhandahåller skript som du kan återanvända i dina projekt.


Tillbaka till "Ögonspårning i MixedRealityToolkit"