Delen via


Aan de slag met oogtracering in MRTK2

Op deze pagina wordt beschreven hoe u uw Unity MRTK-scène instelt voor het gebruik van oogtracering 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-oogtraceringsvoorbeelden bekijken met tal van geweldige voorbeelden waarop u rechtstreeks kunt voortbouwen.

Controlelijst voor oogtraceringsvereisten

Oogtracering werkt alleen correct als aan de volgende vereisten wordt voldaan. Als u nog niet weet hoe oogtracering op HoloLens 2 en hoe oogtracering is ingesteld in MRTK, hoeft u zich geen zorgen te maken. In de volgende secties gaan we verder in op hoe u elk van deze opties kunt aanpakken.

  1. Er moet een 'Eye Gaze Data Provider' worden toegevoegd aan het invoersysteem. Deze gegevensprovider levert 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 voor het detecteren of een gebruiker ooggekalibreerd is of niet.

Een opmerking over de functie GazeInput

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

HULPPROGRAMMA's voor MRTK-build

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

Vóór Unity 2019 moet de mogelijkheid, wanneer u het buildvenster van Unity gebruikt, 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 functie 'GazeInput' niet ziet, controleert u of uw systeem voldoet aan de vereisten voor het gebruik van MRTK (met name de Windows SDK versie).

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

Oogtracering stapsgewijs 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 'oog kijkende gegevensprovider' maken

  • Klik op het tabblad Invoer in uw MRTK-profiel.
  • Als u de standaardinstelling wilt bewerken ('DefaultMixedRealityInputSystemProfile'), klikt u op de knop Klonen ernaast. Het menu Kloonprofiel wordt weergegeven. Klik onder in het menu op Klonen .
  • 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 'Oogtraceringsgegevens gebruiken' 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-starsignaal wordt gesimuleerd door de locatie van de camera te gebruiken als oorsprong van de ogen en de voorwaartse vector van de camera als oogrichting. Hoewel dit handig is voor initiële tests, is het geen goede imitatie voor snelle oogbewegingen. Hiervoor is het beter om ervoor te zorgen dat uw ooggebaseerde interacties regelmatig worden getest op de HoloLens 2.

  1. Gesimuleerd oogtracering inschakelen:

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

    MRTK-ogen simuleren

  2. Standaardaanwijzer voor hoofd staren uitschakelen: over het algemeen raden we u aan om geen oogaanwijzer weer te geven of, als dit absoluut vereist is, deze zeer subtiel te maken. U wordt aangeraden de standaard cursor voor hoofdklikken te verbergen die standaard is gekoppeld aan het MRTK-aanwijzerprofiel.

    • 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 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 oog staren door het selectievakje 'IsEyeTrackingEnabled' in de staar-instellingen van het invoeraanwijzerprofiel in te schakelen.

Opmerking

Ontwikkelaars kunnen schakelen tussen op ogen gebaseerde blik en op hoofden gebaseerde blik 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 oogopslaggegevens

Nu uw scène is ingesteld voor het gebruik van oogtracering, gaan we eens kijken hoe u deze kunt openen in uw scripts: Toegang tot oogtraceringsgegevens via EyeGazeProvider en door ogen 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 zou compileren. Zorg ervoor dat u de mogelijkheid 'Gaze Input' hebt ingeschakeld, zoals hierboven is beschreven in de sectie Een opmerking over de functie GazeInput.

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 .
    • Ervoor zorgen dat invoegtoepassingsproviders correct zijn ingesteld
  • Waarschuwingsdriehoeken oplossen.
    • Interactieprofielen moeten worden ingesteld
    • OpenXR-functiegroepen moeten correct zijn geselecteerd

Oogkalibratie

Vergeet niet om de oogkalibratie op uw HoloLens 2 uit te voeren. 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 zetten. Er wordt een systeemmelding 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 oogtracering

Wanneer u de app voor het eerst start op uw HoloLens 2, verschijnt er een prompt waarin de gebruiker wordt gevraagd om toestemming 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 het gebruik van 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 verstrekken die u in uw projecten kunt hergebruiken.


Terug naar "Eye tracking in the MixedRealityToolkit"