Aan de slag met oogtracering in MRTK2

Op deze pagina wordt beschreven hoe u uw Unity MRTK-scène instelt voor het gebruik van ogentracering in uw app. In het volgende document wordt ervan uitgegaan dat u begint met een nieuwe scène. U kunt ook onze al geconfigureerde MRTK-voorbeelden voor oogtracering bekijken met tal van geweldige voorbeelden die u rechtstreeks kunt gebruiken.

Controlelijst voor oogtraceringsvereisten

Ogentracering werkt alleen correct als aan de volgende vereisten wordt voldaan. Als u nog niet weet hoe ogentracering op HoloLens 2 is ingesteld in MRTK, hoeft u zich geen zorgen te maken. In de volgende secties gaan we verder in op het oplossen van elk van deze problemen.

  1. Er moet een 'Eye Gaze Data Provider' worden toegevoegd aan het invoersysteem. Deze gegevensprovider biedt oogtraceringsgegevens van het platform.
  2. De mogelijkheid 'GazeInput' moet zijn ingeschakeld in het toepassingsmanifest. Deze mogelijkheid kan worden ingesteld in Unity 2019, maar in Unity 2018 en eerder is deze mogelijkheid alleen beschikbaar in Visual Studio en via het MRTK-buildhulpprogramma.
  3. De HoloLens moet ooggekalibreerd zijn voor de huidige gebruiker. Bekijk ons voorbeeld om te detecteren of een gebruiker ooggekalibreerd is of niet.

Een opmerking over de gazeInput-mogelijkheid

De door MRTK geleverde build-hulpprogramma's (Mixed Reality Toolkit -> Hulpprogramma's -> Build Window) kan automatisch de gazeInput-functie voor u inschakelen. Als u deze stap wilt uitvoeren, moet u ervoor zorgen dat de 'Gaze Input Capability' is ingeschakeld op het tabblad Appx-buildopties:

MRTK-hulpprogramma's voor bouwen

Met deze hulpprogramma's wordt het AppX-manifest gevonden nadat de Unity-build is voltooid en wordt de functie GazeInput handmatig toegevoegd. Vóór Unity 2019 was deze tooling NIET actief bij gebruik van het ingebouwde buildvenster van Unity (Bestand -> Build-instellingen).

Vóór Unity 2019, wanneer u het buildvenster van Unity gebruikt, moet de mogelijkheid als volgt handmatig worden toegevoegd na de Unity-build:

  1. Open uw gecompileerde Visual Studio-project en open vervolgens ' Package.appxmanifest' in uw oplossing.
  2. Zorg ervoor dat u het selectievakje 'GazeInput' onder Mogelijkheden inschakelt. Als u de mogelijkheid 'GazeInput' niet ziet, controleert u of uw systeem voldoet aan de vereisten voor het gebruik van MRTK (met name de Windows SDK-versie).

Opmerking: U hoeft dit alleen te doen als u een nieuwe buildmap hebt ingebouwd. U hoeft uw wijzigingen niet opnieuw toe te passen als u uw Unity-project al hebt gemaakt en het appxmanifest eerder hebt ingesteld en nu dezelfde map opnieuw hebt ingesteld.

Stapsgewijs oogtracering instellen

De scène instellen

Stel de MixedRealityToolkit in door te klikken op 'Mixed Reality Toolkit -> Configureren...' in de menubalk.

MRTK configureren

De MRTK-profielen instellen die vereist zijn voor oogtracering

Nadat u uw MRTK-scène hebt ingesteld, wordt u gevraagd een profiel voor MRTK te kiezen. U kunt DefaultMixedRealityToolkitConfigurationProfile selecteren en vervolgens de optie Kopiëren & Aanpassen selecteren.

MRTK-profiel

Een 'eye gaze data provider' maken

  • Klik op het tabblad 'Invoer' in uw MRTK-profiel.
  • Als u de standaardinstelling ('DefaultMixedRealityInputSystemProfile') wilt bewerken, klikt u op de knop 'Clone' ernaast. Het menu Profiel klonen wordt weergegeven. Klik op 'Klonen' onderaan dat menu.
  • Dubbelklik op uw nieuwe invoerprofiel, vouw 'Invoergegevensproviders' uit en selecteer '+ Gegevensprovider toevoegen'.
  • Voeg de juiste gegevensprovider toe:
    • Voor verouderde Windows Mixed Reality
      • Selecteer onder Type'Microsoft.MixedReality.Toolkit.WindowsMixedReality.Input' ->'WindowsMixedRealityEyeGazeDataProvider'
    • Voor Windows XR-invoegtoepassing
      • Selecteer onder Type'Microsoft.MixedReality.Toolkit.XRSDK.WindowsMixedReality' ->'WindowsMixedRealityEyeGazeDataProvider'
    • Voor OpenXR
      • Selecteer onder Type'Microsoft.MixedReality.Toolkit.XRSDK.OpenXR' ->'OpenXREyeGazeDataProvider'

MRTK-gegevensprovider

'Oogtraceringsgegevens gebruiken' inschakelen

  • Navigeer naar uw MRTK-configuratieprofiel ->'Input' ->'Pointers'
    • Kloon het 'DefaultMixedRealityInputPointerProfile' om er wijzigingen in aan te brengen.
  • Zoek 'Gebruik oogtraceringsgegevens' in de instellingen en schakel deze in.
  • Mogelijk ziet u nu de knop 'GazeInput-mogelijkheid instellen' en moet u erop drukken om de UWP-mogelijkheid in te schakelen.

MRTK gebruikt oogtraceringsgegevens

Oogtracering simuleren in de Unity-editor

U kunt oogtraceringsinvoer in de Unity-editor simuleren om ervoor te zorgen dat gebeurtenissen correct worden geactiveerd voordat u de app implementeert in uw HoloLens 2. Het oog staren signaal wordt gesimuleerd door de locatie van de camera te gebruiken als de oorsprong van de ogen staren en de voorwaartse vector van de camera als oog staren richting. Hoewel dit ideaal is voor initiële tests, moet u er rekening mee houden dat het geen goede imitatie is voor snelle oogbewegingen. Hiervoor is het beter om ervoor te zorgen dat uw ooginteracties op de HoloLens 2 regelmatig worden getest.

  1. Gesimuleerde oogtracering inschakelen:

    • Klik op het tabblad Invoer in uw MRTK-configuratieprofiel.
    • Ga van daaruit naar 'Invoergegevensproviders' ->'Input Simulation Service'.
    • Kloon het 'DefaultMixedRealityInputSimulationProfile' om wijzigingen aan te brengen.
    • Selecteer de juiste instelling 'Standaardmodus voor oog starsimulatie' .

    MRTK ogen simuleren

  2. Standaardaanwijzer voor hoofdstaren uitschakelen: Over het algemeen raden we u aan om een ogenstaartcursor niet weer te geven of, als dit absoluut vereist is, deze heel subtiel te maken. U wordt aangeraden de standaardhoofdcursor te verbergen die standaard is gekoppeld aan het MRTK-gazepointerprofiel.

    • Navigeer naar uw MRTK-configuratieprofiel ->'Input' ->'Pointers'
    • Kloon het 'DefaultMixedRealityInputPointerProfile' om er wijzigingen in aan te brengen.
    • Boven aan de 'Aanwijzerinstellingen' moet u een onzichtbare cursorprefab toewijzen aan de 'Gaze Cursor Prefab'. U kunt dit doen door de prefab 'EyeGazeCursor' van de MRTK Foundation te selecteren.

Blik op basis van ogen inschakelen in de gaze-provider

In HoloLens v1 werd hoofd staren gebruikt als de primaire aanwijstechniek. Hoewel hoofd staren nog steeds beschikbaar is via de GazeProvider in MRTK, die is gekoppeld aan uw camera, kunt u in plaats daarvan ogen staren door het selectievakje 'IsEyeTrackingEnabled' in te schakelen in de gaze-instellingen van het invoeraanwijzerprofiel.

Notitie

Ontwikkelaars kunnen schakelen tussen blik op basis van ogen en blik op hoofd in code door de eigenschap 'IsEyeTrackingEnabled' van 'GazeProvider' te wijzigen.

Belangrijk

Als niet aan een van de vereisten voor oogtracering wordt voldaan, valt de toepassing automatisch terug op een blik op basis van het hoofd.

Toegang tot oogklikken-gegevens

Nu uw scène is ingesteld voor het gebruik van oogtracering, gaan we kijken hoe u deze kunt openen in uw scripts: Toegang tot oogtraceringsgegevens via EyeGazeProvider en oog ondersteunde doelselecties.

Uw Unity-app testen op een HoloLens 2

Het bouwen van uw app met oogtracering moet vergelijkbaar zijn met de manier waarop u andere HoloLens 2 MRTK-apps compileert. Zorg ervoor dat u de mogelijkheid 'Gaze-invoer' hebt ingeschakeld, zoals hierboven wordt beschreven in de sectie Een opmerking over de gazeInput-mogelijkheid.

Zorg ervoor dat het project is geconfigureerd voor HoloLens 2

Controleer of u uw project correct hebt geconfigureerd door de configuratiestappen te bekijken die worden beschreven in Een OpenXR-project instellen met MRTK.

Belangrijke punten om over na te denken:

  • Controleer de belangrijkste instellingen in het venster Projectinstellingen .
    • Controleren of invoegtoepassingsproviders juist zijn ingesteld
  • Waarschuwingsdriehoeken oplossen.
    • Interactieprofielen moeten worden ingesteld
    • OpenXR-functiegroepen moeten correct zijn geselecteerd

Oogkalibratie

Vergeet niet om de oogkalibratie op uw HoloLens 2 te doorlopen. Het oogtraceringssysteem retourneert geen invoer als de gebruiker niet is gekalibreerd. De eenvoudigste manier om bij de kalibratie te komen, is door het vizier omhoog en vervolgens weer omlaag te draaien. Er moet een systeemmelding worden weergegeven die u verwelkomt als een nieuwe gebruiker en u vraagt om de oogkalibratie te doorlopen. U kunt de oogkalibratie ook vinden in de systeeminstellingen: Instellingen > Systeemkalibratie >> Oogkalibratie uitvoeren.

Machtiging voor oogtracering

Wanneer u de app voor het eerst start op uw HoloLens 2, verschijnt er een prompt waarin de gebruiker om toestemming wordt gevraagd om oogtracering te gebruiken. Als de prompt niet wordt weergegeven, is dat meestal een indicatie dat de mogelijkheid 'GazeInput' niet is ingesteld.

Nadat de machtigingsprompt eenmaal is weergegeven, wordt deze niet automatisch opnieuw weergegeven. Als u de machtiging voor oogtracering hebt geweigerd, kunt u dit opnieuw instellen in Instellingen -> Privacy -> Apps.


Hiermee kunt u aan de slag met oogtracering in uw MRTK Unity-app. Vergeet niet om onze MRTK-zelfstudies voor oogtracering en voorbeelden te bekijken die laten zien hoe u oogtraceringsinvoer kunt gebruiken en gemakkelijk scripts kunt bieden die u in uw projecten kunt gebruiken.


Terug naar 'Oogtracering in de MixedRealityToolkit'