Condividi tramite


Tracciamento oculare - MRTK3

Panoramica

Il tracciamento oculare viene gestito in modo nativo dal sistema di input unity, ma MRTK3 fornisce utili helper per semplificare l'aggiunta del tracciamento oculare.

Per impostazione predefinita, il MRTK XR Rig prefab ha già il controller dello sguardo fisso di MRTK3. Se non si usa MRTK XR Rig e si vuole usare il controller dello sguardo fisso di MRTK3, aggiungere il MRTK Gaze Controller prefab alla scena unity.

Il prefab del controller sguardo fisso di MRTK ha un controller XR unity e un interactor che si associa all'input dello sguardo fisso e della testa di Unity. Le azioni del controller sono configurate in modo che lo sguardo fisso sia preferito rispetto allo sguardo fisso. Se lo sguardo fisso è disabilitato, non configurato o non calibrato, il controller userà invece la posizione dello sguardo fisso della testa. Per altre informazioni su come sono state configurate le associazioni di azione del controller di sguardo fisso di MRTK3, vedere l'asset unity delle azioni di input predefinite di MRTK .

Immagine che mostra le impostazioni dell'azione sguardo fisso all'interno dell'asset Di input predefinito di MRTK Unity.

Importante

Se si vuole abilitare il tracciamento oculare quando si usa OpenXR, è necessario aggiungere il profilo di interazione sguardo fisso alla configurazione del profilo di interazione di OpenXR. Per altre informazioni sulla configurazione delle impostazioni di OpenXR in Unity, vedere Configurare un nuovo progetto OpenXR con MRTK .

Inoltre, se si usa il piattaforma UWP (Universal Windows Platform), assicurarsi di aggiungere la funzionalità GazeInput in Project Project Settings Publishing Settings Publishing Settings Capabilities .If you using the piattaforma UWP (Universal Windows Platform), be sure to add the GazeInput capability at Project Project > Settings Publishing Settings >> Capabilities.

Interazione sguardo fuzzy

Il controller dello sguardo fisso di MRTK3 è stato configurato per l'uso di FuzzyGazeInteractor, un interactor Unity che implementa una tecnica di interazione con sguardo fuzzy in cui gli oggetti all'interno di un determinato angolo e intervallo di distanze sono destinati e interagiscono con in base alla direzione dello sguardo fisso dell'utente. Il sistema di assegnazione dei punteggi consente di classificare in ordine di priorità le potenziali destinazioni in base all'idoneità per l'interazione.

Lo script definisce diversi campi e proprietà che controllano il comportamento dell'interactor sguardo fisso. Alcuni dei campi importanti includono:

  • coneAngle: angolo all'interno del quale gli oggetti verranno considerati per la destinazione tramite sguardo fisso.
  • minGazeDistance e maxGazeDistance: le distanze minime e massime a cui gli oggetti possono essere indirizzati tramite sguardo fisso. distanceWeight, angleWeight, distanceToCenterWeight e angleToCenterWeight: pesi assegnati a criteri diversi usati per determinare il "punteggio sguardo fisso" di un oggetto.
  • precisione: valore usato per regolare la precisione dei raycast di fisica dello sguardo fuzzy.
  • performAdditionalRaycast: flag che indica se viene eseguito un raycast aggiuntivo dopo lo sguardo fisso per migliorare i risultati del punteggio.
  • precisionCurve: curva di animazione usata per controllare il livello di precisione in base alla distanza verso la destinazione.

Lo script esegue l'override di alcuni metodi della classe XRRayInteractor base per fornire la propria implementazione. I metodi sottoposti a override rilevanti includono:

  • IsHitValid: determina se un hit su un oggetto interagendo è considerato valido in base ai criteri di angolo e distanza definiti dai campi coneAngle, minGazeDistance e maxGazeDistance.
  • ScoreHit: assegna un punteggio a un raggio interagendo e il raggiocast associato in base alla distanza, all'angolo di hit raycast e all'angolo centrale di destinazione. Il punteggio è una combinazione di fattori ponderati.
  • ConecastScoreCompare: confronta i riscontri raycast in base ai punteggi in ordine crescente.
  • GetValidTargets: recupera le destinazioni valide per l'interazione dello sguardo fisso in base ai riscontri raycast e ai relativi punteggi.

Gestione attesa interazione

Il controller dello sguardo fisso di MRTK3 viene configurato anche con un InteractorDwellManager componente script. Questo script implementa la selezione basata sull'attesa su oggetti interagendo usando XR Interaction Toolkit in Unity. Gestisce i timer di attesa, attiva la selezione e tiene traccia dello stato di attesa delle interazioni per l'interaginte specificato. Per utilizzare la selezione dell'attesa dello sguardo fisso, l'interazione StatefulInteractable di destinazione deve essere MRTK3 e avere il Use Gaze Dwell flag impostato.

Nota

La selezione basata sull'attesa non è consigliata quando è possibile l'input vocale o manuale, perché l'attesa può causare attivazioni impreviste o impreviste degli elementi dell'interfaccia utente. Le applicazioni possono comunque voler prendere in considerazione l'input di attesa per l'accessibilità o in scenari in cui l'input vocale e manuale non sono disponibili. Per indicazioni sulla progettazione su come usare al meglio l'attesa, vedere Sguardo fisso e attesa e puntamento della testa e attesa.

Dopo aver immesso lo stato del passaggio del mouse, questo interaginte continuerà a selezionare prima che passi il tempo di attesa, dopo il quale la selezione viene attivata nell'interazione. Le impostazioni di attesa possono essere configurate usando quanto segue:

  • DwellTriggerTime: determina per quanto tempo l'interazione rimane selezionabile dopo aver immesso lo stato al passaggio del mouse.