Seguimiento de manos y ojos

El Eye Tracking es una tecnología avanzada que permite detectar hacia dónde está mirando el usuario en tiempo real. Esta funcionalidad, disponible en Meta Quest Pro, puede utilizarse para mejorar la interacción, optimizar el rendimiento de la aplicación o simplemente analizar el comportamiento visual del usuario. En este apartado, aprenderás a integrar y visualizar eye tracking en Unity.

Para ayudarte a implementar esta funcionalidad, te continuación tienes un video tutorial donde aprenderás a configurar el sistema de seguimiento ocular paso a paso.

Video: Eye Tracking en Unity con Meta Quest Pro

Añadir el XR Camera Rig

  • Añade el Building Blog CameraRig a tu escena.

  • Configura la cámara central:

    • Cambia el clear flags a Solid Color. 

    • Color: Negro. 

Crear Ojos

  • Crea una Sphere dentro de TrackingSpace y renómbrala como EyeInteractor.

  • Ajusta su Scale a 0.15 en todos los ejes.

  • Crea una carpeta para Prefabs y arrastra el EyeInteractor dentro.

Configurar Ojo

  • Crea dentro de TrackingSpace un empty object y cambiale el nombre a ReferenceFrame.

  • Modifica su Z en 1.

    • Añade el componente OVREyeGaze.

    • Establece el Confidence Threshold en 0.

    • Asigna en Reference Frame el empty ReferenceFrame que hemos creado.

    • Selecciona el Tracking Mode como: Tracking Space.

    • Actualiza el prefab.

Crear Scripts

  • Crea una carpeta para los Scripts

  • EyeInteractable.cs: Este script se adjunta a objetos en la escena para hacerlos "interactuables" por la mirada. Cuando un rayo de seguimiento ocular lo detecta, cambia su material para indicar que está siendo mirado y puede disparar un evento de Unity para activar otras acciones.

  • EyeTrackingRay.cs: Este script, típicamente adjunto a la cámara, dispara un rayo invisible desde el punto de vista del jugador. Su función es detectar si el rayo golpea un objeto con el script EyeInteractable.cs. Visualmente, dibuja una línea que cambia de color cuando detecta un objeto interactuable. Cuando un objeto EyeInteractable es golpeado, este script notifica al objeto que está siendo mirado.

Enlace de descarga: Scripts

Asignar Scripts

  • Asignamos el script de EyeTrackingRay al EyeInteractor.

  • Configuramos el width del ray a 0.01.

  • Desactivamos Use World Space.

  • Le asignamos en Materials el Default-Line que viene por defecto en Unity.

  • Luego más abajo cambiamos Ray Distance a 5 y Layers To Include a Everything.

  • Por último actualiza de nuevo el prefab.

Duplicar Ojo

  • Duplica el GameObject y renómbralos uno para el ojo derecho y el otro para el izquierdo.
  • En Eye selecciona Left para el derecho y Right para el izquierdo.

Crear Eye Interactables

  • Crea una Cube y renómbralo como EyeInteractable.

  • Actualiza su Position a (0,1,1) y su Scale a (0.1,0.1,0.1).

  • Luego añadele el script EyeInteractable.

  • En el Rigidbody marca Is Kinematic para que no se caiga.

  • Crea dos materiales del color que quieras y asígnalos a On Hover Active y On Hover Inactive.

  • Arrástralo a la carpeta de Prefabs.

Prueba de Interacción

En este caso, la configuración inicial de los scripts es suficiente para observar el comportamiento básico. Simplemente ejecutaremos la escena y comprobaremos cómo el rayo visual reacciona con los objetos EyeInteractable que hemos configurado.

Cuando el rayo detecte un objeto con el script EyeInteractable.cs:

  • El color del rayo cambiará de rayColorDefaultState a rayColorHoverState.
  • El material del objeto EyeInteractable cambiará de OnHoverInactiveMaterial a OnHoverActiveMaterial.
  • Además, cualquier evento configurado en OnObjectHover para ese EyeInteractable se disparará.

Por defecto, el sistema ya está listo para su uso. Si deseamos personalizar la apariencia del rayo o la respuesta del objeto, podemos modificar los parámetros de los scripts en el Inspector de Unity. A continuación, se muestra una demostración visual del funcionamiento en el video. 

¡Crea tu página web gratis! Esta página web fue creada con Webnode. Crea tu propia web gratis hoy mismo! Comenzar