Navegación compatible con los ojos en MRTK : MRTK2
Imagine que está leyendo información en una pizarra y cuando llega al final del texto mostrado, el texto se desplaza automáticamente hacia arriba para mostrar más contenido. O bien, puede acercar con fluidez dónde está mirando. El mapa también ajusta automáticamente el contenido para mantener las cosas de interés dentro del campo de visión. Otra aplicación interesante es la observación manos libres de hologramas 3D al traer automáticamente las partes del holograma que se ven al frente. Estos son algunos de los ejemplos que se describen en esta página en el contexto de la navegación compatible con los ojos.
En las descripciones siguientes se supone que ya está familiarizado con cómo configurar el seguimiento ocular en la escena de MRTK y con los conceptos básicos de acceso a los datos de seguimiento ocular en MRTK Unity.
Los ejemplos descritos a continuación forman parte de la EyeTrackingDemo-03-Navigation
escena (Assets/MRTK/Examples/Demos/EyeTracking/Scenes/EyeTrackingDemo-03-Navigation).
Resumen: Desplazamiento automático de texto, panorámica compatible con la mirada y zoom de un mapa virtual, rotación 3D dirigida por la mirada sin manos.
Desplazamiento automático
El desplazamiento automático permite al usuario desplazarse por textos sin levantar un dedo.
Simplemente continúe leyendo y el texto se desplazará automáticamente hacia arriba o hacia abajo en función de dónde esté buscando el usuario.
Puede empezar por el ejemplo proporcionado en EyeTrackingDemo-03-Navigation
(Assets/MRTK/Examples/Demos/EyeTracking/Scenes).
En este ejemplo se usa un componente TextMesh para permitir la carga flexible y el formato de texto nuevo.
Para habilitar el desplazamiento automático, basta con agregar los dos scripts siguientes al componente collider del cuadro de texto:
ScrollRectTransf
Para desplazarse por un elemento TextMesh o, por lo general, un componente RectTransform , puede usar el script ScrollRectTransf . Si desea desplazarse por una textura en lugar de una RectTransform, use ScrollTexture en lugar de ScrollRectTransf. A continuación, se explican con más detalle los parámetros de ScrollRectTransf que están disponibles en la Editor de Unity:
Parámetros | Description |
---|---|
LimitPanning | Si está habilitado, detendrá el contenido desplazable en su límite. |
RectTransfToNavigate | Referencia a la RectTransform en la que se va a desplazar. |
RefToViewport | Referencia al elemento primario RectTransform del contenido desplazable para determinar el desplazamiento y el límite correctos. |
AutoGazeScrollIsActive | Si está habilitado, el texto se desplazará automáticamente si el usuario examina una región activa (por ejemplo, la parte superior e inferior del panel de desplazamiento si la velocidad de desplazamiento vertical no es cero). |
ScrollSpeed_x | Si se establece en un valor distinto de cero, se habilitará el desplazamiento horizontal. Los valores negativos significan un cambio en la dirección del desplazamiento: de izquierda a derecha frente a de derecha a izquierda. |
ScrollSpeed_y | Si se establece en un valor distinto de cero, se habilitará el desplazamiento vertical. Los valores negativos significan un cambio en la dirección del desplazamiento: de arriba a abajo frente a hacia arriba. |
MinDistFromCenterForAutoScroll | Distancia mínima normalizada en x e y desde el centro del cuadro de aciertos del destino (0, 0) para desplazarse. Por lo tanto, los valores deben oscilar entre 0 (siempre desplazarse) y 0,5 (sin desplazamiento). |
UseSkimProofing | Si está habilitado, evita movimientos repentinos de desplazamiento al mirar rápidamente. Esto puede hacer que el desplazamiento tenga menos capacidad de respuesta. Se puede ajustar con el valor SkimProofUpdateSpeed . |
SkimProofUpdateSpeed | Cuanto menor sea el valor, más lento se acelerará el desplazamiento después del desgaje. Valor recomendado: 5. |
EyeTrackingTarget
La asociación del componente EyeTrackingTarget permite controlar de forma flexible eventos relacionados con la mirada ocular.
En el ejemplo de desplazamiento se muestra el texto de desplazamiento que se inicia cuando el usuario mira el panel y se detiene cuando el usuario está mirando hacia otro lado .
Panorámica y zoom compatibles con la mirada
¿Quién no ha usado un mapa virtual antes para buscar su hogar o para explorar lugares completamente nuevos? El seguimiento ocular le permite profundizar directamente en exactamente las partes que le interesan y una vez que se acerca, puede seguir sin problemas el curso de una calle para explorar su vecindario! Esto no solo es útil para explorar mapas geográficos, sino también para consultar detalles en fotografías, visualizaciones de datos o incluso imágenes médicas en vivo. Para usar esta funcionalidad en la aplicación es fácil! Para el contenido representado en una textura (por ejemplo, una foto, datos transmitidos), basta con agregar el script PanZoomTexture . Para un RectTransform , use PanZoomRectTransf. Al ampliar la funcionalidad de desplazamiento automático , básicamente se permite desplazarse vertical y horizontalmente al mismo tiempo y ampliar el contenido alrededor del punto de enfoque actual del usuario.
Parámetros | Description |
---|---|
LimitPanning | Si está habilitado, detendrá el contenido desplazable en su límite. |
HandZoomEnabledOnStartup | Indica si los gestos de mano se habilitan automáticamente para realizar un gesto de zoom. Es posible que desee deshabilitarlo al principio para evitar desencadenar accidentalmente acciones de zoom. |
RendererOfTextureToBeNavigated | Representador al que se hace referencia de la textura que se va a navegar. |
Zoom_Acceleration | Aceleración de zoom que define la inclinación de la asignación de funciones de velocidad logística. |
Zoom_SpeedMax | Velocidad máxima de zoom. |
Zoom_MinScale | Escala mínima de la textura para acercar : por ejemplo, 0,5f (la mitad del tamaño original). |
Zoom_MaxScale | Escala máxima de la textura para alejar: por ejemplo, 1f (el tamaño original) o 2,0f (el doble del tamaño original). |
Zoom_TimeInSecToZoom | Zoom con tiempo: una vez desencadenado, se realizará un zoom de entrada y salida durante la cantidad de tiempo determinada en segundos. |
Zoom_Gesture | Tipo de gesto de mano que se va a usar para acercar o alejar. |
--- | --- |
Pan_AutoScrollIsActive | Si está habilitado, el texto se desplazará automáticamente si el usuario examina una región activa (por ejemplo, la parte superior e inferior del panel de desplazamiento si la velocidad de desplazamiento vertical no es cero). |
Pan_Speed_x | Si se establece en un valor distinto de cero, se habilitará el desplazamiento horizontal. Los valores negativos significan un cambio en la dirección del desplazamiento: de izquierda a derecha frente a de derecha a izquierda. |
Pan_Speed_y | Si se establece en un valor distinto de cero, se habilitará el desplazamiento vertical. Los valores negativos significan un cambio en la dirección del desplazamiento: de arriba a abajo frente a hacia arriba. |
Pan_MinDistFromCenter | Distancia mínima normalizada en x e y desde el centro del cuadro de aciertos del destino (0, 0) para desplazarse. Por lo tanto, los valores deben oscilar entre 0 (siempre desplazarse) y 0,5 (sin desplazamiento). |
UseSkimProofing | Si está habilitado, evita movimientos repentinos de desplazamiento al mirar rápidamente. Esto puede hacer que el desplazamiento tenga menos capacidad de respuesta. Se puede ajustar con el valor SkimProofUpdateSpeed . |
SkimProofUpdateSpeed | Cuanto menor sea el valor, más lento se acelerará el desplazamiento después del desgaje. Valor recomendado: 5. |
Rotación 3D basada en la atención
Imagine mirar un objeto 3D y las partes que desea ver más de cerca mágicamente girar hacia usted - como si el sistema leera su mente y saber para girar el elemento hacia usted! Esa es la idea para rotaciones 3D basadas en la atención que le permiten investigar todo el lado de un holograma sin levantar un dedo. Para habilitar este comportamiento, basta con agregar el script OnLookAtRotateByEyeGaze a la parte de GameObject con un componente Collider . Puede ajustar varios parámetros que se enumeran a continuación para limitar la velocidad y en qué direcciones se girará el holograma.
Como se puede imaginar, tener este comportamiento activo en todo momento puede convertirse rápidamente en bastante distraído en una escena concurrida.
Por este motivo, es posible que quiera empezar con este comportamiento deshabilitado y, a continuación, habilitarlo rápidamente mediante comandos de voz.
Como alternativa, agregamos un ejemplo en EyeTrackingDemo-03-Navigation
(Assets/MRTK/Examples/Demos/EyeTracking/Scenes) para usar TargetMoveToCamera para el que puedes seleccionar un objetivo centrado y vuela delante de ti, simplemente di "Ven a mí".
Una vez en el modo cercano, el modo de rotación automática se habilita automáticamente. En ese modo, puedes observarlo desde todos los lados simplemente inclinado hacia atrás y mirándolo, caminando alrededor de él o llegando a agarrarlo y girarlo con la mano. Cuando descarte el destino (busque & pellizcar o diga "Enviar atrás"), volverá a su ubicación original y dejará de reaccionar desde lejos.
Parámetros | Description |
---|---|
SpeedX | Velocidad de rotación horizontal. |
Rápido | Velocidad de rotación vertical. |
InverseX | Para invertir la dirección de rotación horizontal. |
Inversa | Para invertir la dirección de rotación vertical. |
RotationThreshInDegrees | Si el ángulo entre "Mirada al destino" y "Cámara a destino" es menor que este valor, no haga nada. Esto es para evitar pequeñas rotaciones nerviosas. |
MinRotX | Ángulo de rotación horizontal mínimo. Esto es para limitar la rotación en diferentes direcciones. |
MaxRotX | Ángulo de rotación horizontal máximo. Esto es para limitar la rotación en diferentes direcciones. |
MinRotY | Ángulo de rotación vertical mínimo para limitar la rotación alrededor del eje x. |
MaxRotY | Ángulo de rotación vertical máximo para limitar la rotación alrededor del eje y. |
En resumen, los scripts anteriores deben permitirle empezar a usar la mirada de los ojos para varias tareas de navegación de entrada, como desplazar textos, zoom y movimiento panorámico texturas, así como girar la investigación de hologramas 3D.
Vea también
- Configuración básica de MRTK para usar el seguimiento ocular
- Selección de destino compatible con los ojos