Läs på engelska

Dela via


Ögonspårning – MRTK3

Översikt

Ögonspårning hanteras internt av Unity Input System, men MRTK3 ger användbara hjälpkomponenter för att göra det enkelt att lägga till ögonspårning.

Som standard MRTK XR Rig har prefab redan MRTK3:s blickkontroll. Om du inte använder MRTK XR Rig och vill använda MRTK3-blickkontrollanten lägger du till prefab i MRTK Gaze Controller Unity-scenen.

MRTK: s blickkontrollant prefab har en Unity XR Controller och Interactor som binder till Unitys ögon och huvud blick input. Kontrollantens åtgärder är konfigurerade så att ögonöga prioriteras framför huvudöga. Om blicken är inaktiverad, inte konfigurerad eller inte kalibrerad använder kontrollanten blickens pose i stället. Mer information om hur MRTK3:s blickkontrollants åtgärdsbindningar har konfigurerats finns i den inkluderade MRTK Default Input Actions Unity-tillgången.

Bild som visar inställningarna för blickåtgärden i MRTK:s Unity-tillgång för standardindataåtgärd.

Viktigt

Om du vill aktivera ögonspårning när du använder OpenXR måste interaktionsprofilen för Ögonöga läggas till i OpenXR:s konfiguration av interaktionsprofilen. Mer information om hur du konfigurerar OpenXR-inställningar i Unity finns i Konfigurera ett nytt OpenXR-projekt med MRTK .

Om du använder Universell Windows-plattform måste du också lägga till GazeInput-funktionen i Publiceringsinställningar > för Projektinställningar >>.

Fuzzy Gaze Interactor

MRTK3:s blickkontroll har konfigurerats för att använda FuzzyGazeInteractor, en Unity-interagerare som implementerar en fuzzy blickinteraktionsteknik där objekt inom en viss konvinkel och avståndsintervall riktas och interageras med baserat på användarens blickriktning. Bedömningssystemet hjälper till att prioritera potentiella mål baserat på deras lämplighet för interaktion.

Skriptet definierar flera fält och egenskaper som styr beteendet för blick-interaktionsorn. Några av de viktiga fälten är:

  • coneAngle: Den vinkel inom vilken objekt kommer att övervägas för inriktning av blick.
  • minGazeDistance och maxGazeDistance: De minsta och högsta avstånden som objekt kan riktas mot med blick. distanceWeight, angleWeight, distanceToCenterWeight och angleToCenterWeight: Vikter tilldelade till olika kriterier som används för att fastställa "blickpoängen" för ett objekt.
  • precision: Ett värde som används för att justera precisionen för de fuzzy blick fysik strålkastarna.
  • performAdditionalRaycast: En flagga som anger om ytterligare en raycast efter ögonblicket utförs för att förbättra bedömningsresultatet.
  • precisionCurve: En animeringskurva som används för att styra precisionsnivån baserat på avståndet till målet.

Skriptet åsidosätter vissa metoder från basklassen XRRayInteractor för att tillhandahålla en egen implementering. Viktiga åsidosatta metoder är:

  • IsHitValid: Avgör om en träff på ett interagerande objekt anses vara giltig baserat på vinkel- och avståndskriterierna som definieras av fälten coneAngle, minGazeDistance och maxGazeDistance.
  • ScoreHit: Poängsätter en interaktionsbar och dess associerade raycast-träff baserat på avstånd, raycast-träffvinkel och målcentrumvinkel. Poängen är en kombination av viktade faktorer.
  • ConecastScoreCompare: Jämför raycast-träffar med deras poäng i stigande ordning.
  • GetValidTargets: Hämtar giltiga mål för blick-interaktionsorn baserat på raycast-träffar och deras poäng.

Interactor Dwell Manager

MRTK3:s blickkontroll har också konfigurerats med en InteractorDwellManager skriptkomponent. Det här skriptet implementerar svällningsbaserad markering av interagerande objekt med hjälp av XR Interaction Toolkit i Unity. Den hanterar uppehållstiderna, utlöser markeringen och spårar uppehållstillståndet för interaktionsbara objekt för den angivna interageraren. Om du vill använda visning av blicken måste det riktade interaktionsbara objektet vara MRTK3:s StatefulInteractable och ha Use Gaze Dwell flaggan inställd.

Anteckning

Dwell-baserat val rekommenderas inte där hand- eller röstinmatning är möjlig, eftersom dwell kan leda till oförutsägbara eller oavsiktliga aktiveringar av UI-element. Program kanske fortfarande vill överväga indata för hjälpmedel eller i scenarier där röst- och handinmatning inte är tillgängliga. För designvägledning om hur man bäst använder bor se Eye-gaze och ält och Huvud-blick och ält.

När du har angett hovringstillstånd fortsätter den här interageraren att välja innan utlösningstiden för uppehållet går, varefter valet utlöses på den interagerande. Inställningarna för dwell kan konfigureras med hjälp av följande:

  • DwellTriggerTime: Avgör hur länge interageraren fortsätter att välja en interaktionsbar när den har försatts i hovringstillståndet.