Introduzione al tracciamento oculare in MRTK2

Questa pagina illustra come configurare la scena MRTK di Unity per usare il tracciamento oculare nell'app. Il documento seguente presuppone che si inizi con una nuova scena. In alternativa, è possibile consultare i nostri esempi di tracciamento oculare MRTK già configurati con tonnellate di ottimi esempi su cui è possibile eseguire direttamente la compilazione.

Elenco di controllo dei requisiti di tracciamento oculare

Affinché il rilevamento oculare funzioni correttamente, è necessario rispettare i seguenti requisiti. Se non si ha familiarità con il rilevamento oculare su HoloLens 2 e non si conosce come viene configurato il rilevamento oculare in MRTK, non è un problema. Verranno fornite informazioni dettagliate su come risolverli più avanti nelle sezioni seguenti.

  1. È necessario aggiungere un 'Eye Gaze Data Provider' al sistema di input. Questo provider di dati fornisce i dati di tracciamento oculare dalla piattaforma.
  2. La funzionalità 'GazeInput' deve essere abilitata nel manifesto dell'applicazione. Questa funzionalità può essere impostata in Unity 2019, ma in Unity 2018 e versioni precedenti questa funzionalità è disponibile solo in Visual Studio e tramite lo strumento di compilazione MRTK.
  3. HoloLens deve essere calibrato per l'utente corrente. Vedere il nostro esempio per rilevare se un utente è calibrato o meno.

Nota sulla funzionalità GazeInput

Gli strumenti di compilazione forniti da MRTK (Realtà mista Toolkit -> Utilità -> Finestra di compilazione) possono abilitare automaticamente la funzionalità GazeInput. Per eseguire questo passaggio, è necessario assicurarsi che la funzionalità di input sguardo fisso sia selezionata nella scheda "Opzioni di compilazione Appx":

Strumenti di compilazione MRTK

Questo strumento troverà il manifesto AppX al termine della compilazione di Unity e aggiungerà manualmente la funzionalità GazeInput. Prima di Unity 2019, questo strumento non è attivo quando si usa la finestra di compilazione predefinita di Unity (File -> Impostazioni di compilazione).

Prima di Unity 2019, quando si usa la finestra di compilazione di Unity, la funzionalità dovrà essere aggiunta manualmente dopo la compilazione di Unity, come indicato di seguito:

  1. Aprire il progetto di Visual Studio compilato e quindi aprire " Package.appxmanifest" nella soluzione.
  2. Assicurarsi di selezionare la casella di controllo "GazeInput" in Funzionalità. Se non viene visualizzata una funzionalità 'GazeInput' , verificare che il sistema soddisfi i prerequisiti per l'uso di MRTK (in particolare la versione di Windows SDK).

Nota: È necessario eseguire questa operazione solo se si compila in una nuova cartella di compilazione. Non è necessario riapplicare le modifiche se il progetto Unity è già stato compilato e configurato l'appxmanifest prima e ora assegnare nuovamente la stessa cartella.

Configurazione dettagliata del tracciamento oculare

Configurazione della scena

Configurare MixedRealityToolkit facendo clic su 'Realtà mista Toolkit -> Configura...' nella barra dei menu.

Configurazione di MRTK

Configurazione dei profili MRTK necessari per il tracciamento oculare

Dopo aver configurato la scena MRTK, verrà chiesto di scegliere un profilo per MRTK. È possibile selezionare DefaultMixedRealityToolkitConfigurationProfile e quindi selezionare l'opzione 'Copia & Personalizza' .

Profilo MRTK

Creare un "provider di dati sguardo fisso"

  • Fare clic sulla scheda "Input" nel profilo MRTK.
  • Per modificare il valore predefinito ('DefaultMixedRealityInputSystemProfile'), fare clic sul pulsante "Clona" accanto. Viene visualizzato un menu "Clona profilo". Fare clic su "Clona" nella parte inferiore del menu.
  • Fare doppio clic sul nuovo profilo di input, espandere "Provider di dati di input" e selezionare "+ Aggiungi provider di dati".
  • Aggiungere il provider di dati corretto:
    • Per Windows Mixed Reality legacy
      • In Tipo selezionare 'Microsoft.MixedReality.Toolkit.WindowsMixedReality.Input' ->'WindowsMixedRealityEyeGazeDataProvider'
    • Per plug-in Windows XR
      • In Tipo selezionare 'Microsoft.MixedReality.Toolkit.XRSDK.WindowsMixedReality' ->'WindowsMixedRealityEyeGazeDataProvider'
    • Per OpenXR
      • In Tipo selezionare 'Microsoft.MixedReality.Toolkit.XRSDK.OpenXR' ->'OpenXREyeGazeDataProvider'

Provider di dati MRTK

Abilitare "Usa dati di tracciamento oculare"

  • Passare al profilo di configurazione DI MRTK ->'Input' ->'Puntatori'
    • Clonare "DefaultMixedRealityInputPointerProfile" per apportare modifiche.
  • Trovare "Usa dati di tracciamento oculare" nelle impostazioni e abilitarlo.
  • Ora potresti visualizzare un pulsante "Imposta funzionalità GazeInput" e premerelo per abilitare la funzionalità UWP.

MRTK usa i dati di tracciamento oculare

Simulazione del tracciamento oculare nell'editor di Unity

È possibile simulare l'input di tracciamento oculare nell'editor di Unity per assicurarsi che gli eventi vengano attivati correttamente prima di distribuire l'app nel HoloLens 2. Il segnale dello sguardo fisso viene simulato usando la posizione della fotocamera come origine dello sguardo fisso e il vettore avanti della fotocamera come direzione dello sguardo fisso. Anche se questo è ideale per i test iniziali, si noti che non è una buona imitazione per movimenti rapidi degli occhi. Per questo, è preferibile garantire test frequenti delle interazioni basate sugli occhi sul HoloLens 2.

  1. Abilitare il tracciamento oculare simulato:

    • Fare clic sulla scheda "Input" nel profilo di configurazione DI MRTK.
    • Passare quindi a "Provider di dati di input" ->'Input Simulation Service'.
    • Clonare "DefaultMixedRealityInputSimulationProfile" per apportare modifiche.
    • Selezionare l'impostazione "Default Eye Gaze Simulation Mode" (Modalità simulazione sguardo fisso predefinito).

    Simulare gli occhi MRTK

  2. Disabilitare il cursore dello sguardo fisso predefinito: in generale, è consigliabile evitare di visualizzare un cursore dello sguardo fisso o, se è assolutamente necessario, renderlo molto sottile. Per impostazione predefinita, è consigliabile nascondere il cursore dello sguardo fisso predefinito associato al profilo del puntatore dello sguardo fisso MRTK.

    • Passare al profilo di configurazione DI MRTK ->'Input' ->'Puntatori'
    • Clonare "DefaultMixedRealityInputPointerProfile" per apportare modifiche.
    • Nella parte superiore di 'Impostazioni puntatore', è necessario assegnare un prefab cursore invisibile al prefab 'Cursore sguardo fisso'. A tale scopo, selezionare il prefab "EyeGazeCursor" dalla fondazione MRTK.

Abilitazione dello sguardo fisso nel provider dello sguardo fisso

In HoloLens v1 lo sguardo fisso è stato usato come tecnica di puntamento principale. Mentre lo sguardo fisso della testa è ancora disponibile tramite GazeProvider in MRTK, associato alla fotocamera, è possibile usare lo sguardo fisso selezionando invece la casella di controllo "IsEyeTrackingEnabled" nelle impostazioni dello sguardo fisso del profilo del puntatore di input.

Nota

Gli sviluppatori possono alternare lo sguardo fisso basato sugli occhi e lo sguardo fisso basato sulla testa nel codice modificando la proprietà 'IsEyeTrackingEnabled' di 'GazeProvider'.

Importante

Se uno dei requisiti di tracciamento oculare non viene soddisfatto, l'applicazione eseguirà automaticamente il fallback allo sguardo basato sulla testa.

Accesso ai dati dello sguardo fisso

Ora che la scena è configurata per l'uso del tracciamento oculare, esaminiamo come accedervi negli script: Accesso ai dati di tracciamento oculare tramite EyeGazeProvider e selezioni di destinazione supportate dagli occhi.

Test dell'app Unity in un HoloLens 2

La compilazione dell'app con il tracciamento oculare dovrebbe essere simile alla modalità di compilazione di altre app HoloLens 2 MRTK. Assicurarsi di aver abilitato la funzionalità 'Gaze Input' come descritto in precedenza nella sezione Nota sulla funzionalità GazeInput.

Verificare che il progetto sia configurato per HoloLens 2

Assicurarsi di aver configurato correttamente il progetto esaminando i passaggi di configurazione descritti in Configurare un progetto OpenXR con MRTK.

Punti chiave da considerare:

  • Esaminare le impostazioni chiave nella finestra Impostazioni progetto .
    • Verificare che i provider di plug-in siano impostati correttamente
  • Risolvere i triangoli di avviso.
    • I profili di interazione devono essere impostati
    • I gruppi di funzionalità OpenXR devono essere selezionati correttamente

Calibrazione oculare

Non dimenticare di correre attraverso la calibrazione oculare sul vostro HoloLens 2. Il sistema di tracciamento oculare non restituirà alcun input se l'utente non è calibrato. Il modo più semplice per arrivare alla calibrazione è capovolgere la visiera verso l'alto e poi indietro verso il basso. Dovrebbe essere visualizzata una notifica di sistema che ti accoglie come nuovo utente e ti chiede di passare attraverso la calibrazione oculare. In alternativa, è possibile trovare la calibrazione oculare nelle impostazioni di sistema: Impostazioni > Calibrazione del sistema > Eseguire la calibrazione oculare > .

Autorizzazione di tracciamento oculare

Quando avvii l'app nel HoloLens 2 per la prima volta, viene visualizzata una richiesta che richiede all'utente l'autorizzazione per l'uso del tracciamento oculare. Se il prompt non viene visualizzato, in genere è un'indicazione che la funzionalità 'GazeInput' non è stata impostata.

Dopo che la richiesta di autorizzazione è stata visualizzata una sola volta, non verrà visualizzata di nuovo automaticamente. Se l'autorizzazione di tracciamento oculare è stata negata, è possibile reimpostarla in Impostazioni -> Privacy -> App.


Per iniziare a usare il tracciamento oculare nell'app UNITY MRTK, è consigliabile iniziare a usare il tracciamento oculare. Non dimenticare di consultare le esercitazioni sul tracciamento oculare MRTK e gli esempi che illustrano come usare l'input di tracciamento oculare e fornire facilmente script che è possibile riutilizzare nei progetti.


Tornare a "Tracciamento oculare in MixedRealityToolkit"