Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Información general
El seguimiento ocular se controla de forma nativa por el sistema de entrada de Unity, pero MRTK3 proporciona asistentes útiles para facilitar el seguimiento ocular.
De forma predeterminada, el MRTK XR Rig
objeto prefabricado ya tiene el controlador de mirada de MRTK3. Si no usa MRTK XR Rig
y quiere usar el controlador de mirada de MRTK3, agregue el MRTK Gaze Controller
objeto prefabricado a la escena de Unity.
El objeto prefabricado del controlador de mirada de MRTK tiene un controlador XR de Unity e Interactor que se enlaza a la entrada de ojo y mirada en la cabeza de Unity. Las acciones del controlador se configuran para que la mirada con los ojos se vea favorecida sobre la mirada en la cabeza. Si la mirada con los ojos está deshabilitada, no configurada o no calibrada, el controlador usará la posición de mirada con la cabeza en su lugar. Para obtener más información sobre cómo se han configurado los enlaces de acción del controlador de mirada de MRTK3, consulte el recurso de Unity de acciones de entrada predeterminadas de MRTK incluido.
Importante
Si desea habilitar el seguimiento ocular al usar OpenXR, se debe agregar el perfil de interacción de mirada ocular a la configuración del perfil de interacción de OpenXR. Consulte Configuración de un nuevo proyecto de OpenXR con MRTK para obtener más información sobre la configuración de OpenXR en Unity.
Además, si usa el Plataforma universal de Windows, asegúrese de agregar la funcionalidad GazeInput en Project Project > Project Settings Publishing Settings Capabilities(Funcionalidades de configuración de publicación de project Project Project Settings >>).
Interactor de mirada aproximada
El controlador de mirada de MRTK3 se ha configurado para usar , FuzzyGazeInteractor
un interactor de Unity que implementa una técnica de interacción de mirada aproximada donde los objetos dentro de un determinado ángulo de cono y intervalo de distancia se dirigen e interactúan con en función de la dirección de la mirada del usuario. El sistema de puntuación ayuda a priorizar los posibles objetivos en función de su idoneidad para la interacción.
El script define varios campos y propiedades que controlan el comportamiento del interactor de mirada. Algunos de los campos importantes incluyen:
- coneAngle: ángulo dentro del cual se considerarán los objetos para seleccionar el destino mediante la mirada.
- minGazeDistance y maxGazeDistance: distancias mínimas y máximas a las que los objetos pueden dirigirse mediante la mirada. distanceWeight, angleWeight, distanceToCenterWeight y angleToCenterWeight: pesos asignados a distintos criterios usados para determinar la "puntuación de mirada" de un objeto.
- precisión: valor utilizado para ajustar la precisión de los raycasts físicos de mirada aproximada.
- performAdditionalRaycast: marca que indica si se realiza un raycast adicional después de la mirada ocular para mejorar los resultados de puntuación.
- precisionCurve: curva de animación utilizada para controlar el nivel de precisión en función de la distancia al destino.
El script invalida algunos métodos de la clase XRRayInteractor
base para proporcionar su propia implementación. Los métodos invalidados importantes incluyen:
- IsHitValid: determina si un acierto en un objeto interactivo se considera válido en función de los criterios de ángulo y distancia definidos por los campos coneAngle, minGazeDistance y maxGazeDistance.
- ScoreHit: puntúa un impacto interactivo y su acierto de raycast asociado en función de la distancia, el ángulo de acierto de raycast y el ángulo central del objetivo. La puntuación es una combinación de factores ponderados.
- ConecastScoreCompare: compara los resultados de raycast por sus puntuaciones en orden ascendente.
- GetValidTargets: recupera los destinos válidos para el interactor de mirada en función de los aciertos de raycast y sus puntuaciones.
Interactor Dwell Manager
El controlador de mirada de MRTK3 también se configura con un InteractorDwellManager
componente de script. Este script implementa la selección basada en permanencia en objetos interactivos mediante XR Interaction Toolkit en Unity. Administra los temporizadores de permanencia, desencadena la selección y realiza un seguimiento del estado de permanencia de los interactables para el interactor especificado. Para usar la selección de permanencia de mirada, el objeto interactivo de destino debe ser MRTK3 StatefulInteractable
y tener la Use Gaze Dwell
marca establecida.
Nota
La selección basada en permanencia no se recomienda cuando la entrada de mano o voz es posible, ya que puede provocar activaciones de elementos de interfaz de usuario impredecibles o no deseadas. Es posible que las aplicaciones quieran seguir teniendo en cuenta la entrada de permanencia para la accesibilidad o en escenarios en los que la entrada de voz y mano no están disponibles. Para obtener instrucciones de diseño sobre cómo usar mejor permanencia, vea Mirada con ojos y permanencia ymirada con cabeza y permanencia.
Después de entrar en el estado de mantener el puntero, este interactor seguirá seleccionando antes de que pase el tiempo del desencadenador de permanencia, después del cual se desencadena la selección en el que se puede interactuar. La configuración de permanencia se puede configurar mediante lo siguiente:
- DwellTriggerTime: determina cuánto tiempo permanece el interactor seleccionando un objeto interactable después de entrar en el estado desplazado.