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 creare direttamente.
Elenco di controllo per i requisiti di tracciamento oculare
Per il corretto funzionamento del tracciamento oculare, è necessario soddisfare i requisiti seguenti. Se non si ha familiarità con il tracciamento oculare su HoloLens 2 e su come è configurato il tracciamento oculare in MRTK, non preoccuparti. Nelle sezioni seguenti verranno fornite informazioni dettagliate su come risolvere ognuno di essi.
- È necessario aggiungere un "provider di dati Eye Gaze" al sistema di input. Questo provider di dati fornisce dati di tracciamento oculare dalla piattaforma.
- 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.
- HoloLens deve essere calibrato per l'utente corrente. Vedere l'esempio per rilevare se un utente è calibrato o meno.
Nota sulla funzionalità GazeInput
Gli strumenti di compilazione forniti da MRTK (Realtà mista Toolkit -> Utilities -> Build Window) possono abilitare automaticamente la funzionalità GazeInput. Per eseguire questo passaggio, è necessario assicurarsi che la "funzionalità di input dello sguardo fisso" sia selezionata nella scheda "Opzioni di compilazione Appx":
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:
- Aprire il progetto di Visual Studio compilato e quindi aprire "Package.appxmanifest" nella soluzione.
- 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 Windows SDK).
Nota: È necessario eseguire questa operazione solo se si esegue la compilazione in una nuova cartella di compilazione. Non sarà necessario riapplicare le modifiche se il progetto Unity è già stato compilato e l'appxmanifest è già stato configurato e ora è di nuovo destinato alla stessa cartella.
Configurazione dettagliata del tracciamento oculare
Configurazione della scena
Configurare MixedRealityToolkit facendo clic su 'Realtà mista Toolkit -> Configura...' nella barra dei menu.
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".
Creare un "provider di dati sguardo fisso"
- Fare clic sulla scheda "Input" nel profilo MRTK.
- Per modificare quello predefinito ('DefaultMixedRealityInputSystemProfile'), fare clic sul pulsante "Clona" accanto. Viene visualizzato un menu 'Clone Profile' . 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 il plug-in XR di Windows
- In Tipo selezionare 'Microsoft.MixedReality.Toolkit.XRSDK.WindowsMixedReality' ->'WindowsMixedRealityEyeGazeDataProvider'
- Per OpenXR
- In Tipo selezionare 'Microsoft.MixedReality.Toolkit.XRSDK.OpenXR' ->'OpenXREyeGazeDataProvider'
- Per Windows Mixed Reality legacy
Abilitare "Usa dati di rilevamento oculare"
- Passare al profilo di configurazione MRTK ->'Input' ->'Pointers'
- Clonare 'DefaultMixedRealityInputPointerProfile' per apportarvi modifiche.
- Trovare "Usa dati di rilevamento oculare" nelle impostazioni e abilitarlo.
- È ora possibile che venga visualizzato un pulsante "Imposta funzionalità GazeInput" e che venga premuto per abilitare la funzionalità UWP.
Simulazione del tracciamento oculare nel Editor Unity
È possibile simulare l'input di rilevamento oculare nel Editor 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 in avanti della fotocamera come direzione dello sguardo fisso. Anche se questo è ottimo per i test iniziali, si noti che non è una buona imitazione per i rapidi movimenti oculari. A tale scopo, è meglio garantire test frequenti delle interazioni basate sugli occhi sulla HoloLens 2.
Abilitare il tracciamento oculare simulato:
- Fare clic sulla scheda "Input" nel profilo di configurazione MRTK.
- Da qui passare a 'Provider di dati di input' ->'Servizio di simulazione di input'.
- Clonare 'DefaultMixedRealityInputSimulationProfile' per apportarvi modifiche.
- Selezionare l'impostazione "Default Eye Gaze Simulation Mode" appropriata.
Disabilita 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 di puntamento della testa predefinito collegato al profilo del puntatore dello sguardo MRTK.
- Passare al profilo di configurazione MRTK ->'Input' ->'Pointers'
- Clonare 'DefaultMixedRealityInputPointerProfile' per apportarvi modifiche.
- Nella parte superiore di "Impostazioni puntatore" è necessario assegnare un prefab del cursore invisibile al prefab "Gaze Cursor". È possibile eseguire questa operazione selezionando il prefab "EyeGazeCursor" dalla MRTK Foundation.
Abilitazione dello sguardo fisso nel provider di sguardo fisso
In HoloLens v1, lo sguardo della testa è stato usato come tecnica di puntamento principale. Mentre lo sguardo fisso è ancora disponibile tramite GazeProvider in MRTK, che è collegato alla fotocamera, è possibile usare lo sguardo fisso selezionando la casella di controllo 'IsEyeTrackingEnabled' nelle impostazioni dello sguardo fisso del profilo del puntatore di input.
Nota
Gli sviluppatori possono alternare lo sguardo basato sugli occhi e lo sguardo fisso nel codice modificando la proprietà 'IsEyeTrackingEnabled' di 'GazeProvider'.
Importante
Se uno dei requisiti di tracciamento oculare non viene soddisfatto, l'applicazione tornerà automaticamente allo sguardo basato sulla testa.
Accesso ai dati dello sguardo fisso
Ora che la scena è configurata per l'uso del tracciamento oculare, diamo un'occhiata a 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 tracciamento oculare dovrebbe essere simile a quella di compilazione di altre app MRTK HoloLens 2. Assicurarsi di aver abilitato la funzionalità "Gaze Input" come descritto in precedenza nella sezione Una 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 a cui pensare:
- 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 eseguire la calibrazione oculare sulla tua HoloLens 2. Il sistema di tracciamento oculare non restituirà alcun input se l'utente non è calibrato. Il modo più semplice per arrivare alla calibrazione consiste nel capovolgere la visiera verso l'alto e poi 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 sistema > Calibrazione > esegui calibrazione oculare.
Autorizzazione per il tracciamento oculare
Quando si avvia l'app nel HoloLens 2 per la prima volta, viene visualizzata una richiesta che chiede all'utente l'autorizzazione per l'uso del tracciamento oculare. Se la richiesta non viene visualizzata, in genere è un'indicazione che la funzionalità "GazeInput" non è stata impostata.
Una volta visualizzata la richiesta di autorizzazione, non verrà più visualizzata automaticamente. Se si "ha negato l'autorizzazione per il tracciamento oculare", è possibile reimpostarlo in Impostazioni -> Privacy -> App.
Questo dovrebbe iniziare a usare il tracciamento oculare nell'app MRTK Unity. Non dimenticare di consultare le esercitazioni e gli esempi di tracciamento oculare MRTK che illustrano come usare l'input di tracciamento oculare e fornire facilmente script che è possibile riutilizzare nei progetti.