Introducción al seguimiento ocular en MRTK2

En esta página se explica cómo configurar la escena de MRTK de Unity para usar el seguimiento ocular en la aplicación. En el siguiente documento se da por supuesto que está empezando con una nueva escena. Como alternativa, puede consultar nuestros ejemplos de seguimiento ocular de MRTK ya configurados con montones de ejemplos excelentes en los que puede basar directamente.

Lista de comprobación de requisitos de seguimiento ocular

Para que el seguimiento ocular funcione correctamente, se deben cumplir los siguientes requisitos. Si no está familiarizado con el seguimiento ocular en HoloLens 2 y en la configuración del seguimiento ocular en MRTK, no se preocupe. En las secciones siguientes se detalla cómo abordar cada uno de ellos.

  1. Se debe agregar un "proveedor de datos Eye Gaze" al sistema de entrada. Este proveedor de datos proporciona datos de seguimiento ocular de la plataforma.
  2. La funcionalidad "GazeInput" debe estar habilitada en el manifiesto de la aplicación. Esta funcionalidad se puede establecer en Unity 2019, pero en Unity 2018 y versiones anteriores esta funcionalidad solo está disponible en Visual Studio y a través de la herramienta de compilación MRTK.
  3. HoloLens debe estar calibrado para el usuario actual. Consulte nuestra muestra para detectar si un usuario está calibrado o no.

Una nota sobre la funcionalidad GazeInput

Las herramientas de compilación proporcionadas por MRTK (Mixed Reality Toolkit -> Utilities -> Build Window) pueden habilitar automáticamente la funcionalidad GazeInput. Para realizar este paso, debe asegurarse de que la opción "Funcionalidad de entrada de mirada" esté activada en la pestaña "Opciones de compilación de Appx":

Herramientas de compilación de MRTK

Esta herramienta encontrará el manifiesto de AppX una vez completada la compilación de Unity y agregará manualmente la funcionalidad GazeInput. Antes de Unity 2019, esta herramienta NO está activa cuando se usa la ventana de compilación integrada de Unity (Archivo -> Configuración de compilación).

Antes de Unity 2019, al usar la ventana de compilación de Unity, la funcionalidad deberá agregarse manualmente después de la compilación de Unity, como se indica a continuación:

  1. Abra el proyecto de Visual Studio compilado y, a continuación, abra el archivo "Package.appxmanifest" en la solución.
  2. Asegúrese de activar la casilla "GazeInput" en Funcionalidades. Si no ve una funcionalidad "GazeInput", compruebe que el sistema cumple los requisitos previos para usar MRTK (en particular, la versión Windows SDK).

Nota: Solo tiene que hacerlo si crea en una nueva carpeta de compilación. No es necesario volver a aplicar los cambios si ya ha compilado el proyecto de Unity y ha configurado appxmanifest antes y ahora tiene como destino la misma carpeta de nuevo.

Configuración paso a paso del seguimiento ocular

Configuración de la escena

Configure MixedRealityToolkit haciendo clic en "Mixed Reality Toolkit -> Configure..." en la barra de menús.

Configuración de MRTK

Configuración de los perfiles de MRTK necesarios para el seguimiento ocular

Después de configurar la escena de MRTK, se le pedirá que elija un perfil para MRTK. Puede seleccionar DefaultMixedRealityToolkitConfigurationProfile y, a continuación, seleccionar la opción "Copiar & Personalizar" .

Perfil de MRTK

Creación de un "proveedor de datos de mirada ocular"

  • Haga clic en la pestaña "Entrada" en el perfil de MRTK.
  • Para editar el valor predeterminado ('DefaultMixedRealityInputSystemProfile'), haga clic en el botón "Clonar" situado junto a él. Aparece un menú "Clonar perfil" . Haga clic en "Clonar" en la parte inferior de ese menú.
  • Haga doble clic en el nuevo perfil de entrada, expanda "Proveedores de datos de entrada" y seleccione "+ Agregar proveedor de datos".
  • Agregue el proveedor de datos correcto:
    • Para Windows Mixed Reality heredados
      • En Tipo , seleccione "Microsoft.MixedReality.Toolkit.WindowsMixedReality.Input" ->'WindowsMixedRealityEyeGazeDataProvider'
    • Para el complemento XR de Windows
      • En Tipo , seleccione "Microsoft.MixedReality.Toolkit.XRSDK.WindowsMixedReality" ->"WindowsMixedRealityEyeGazeDataProvider"
    • Para OpenXR
      • En Tipo , seleccione "Microsoft.MixedReality.Toolkit.XRSDK.OpenXR" ->"OpenXREyeGazeDataProvider"

Proveedor de datos MRTK

Habilitar "Usar datos de seguimiento ocular"

  • Vaya al perfil de configuración de MRTK ->'Input' ->'Pointers'
    • Clone "DefaultMixedRealityInputPointerProfile" para realizar cambios en él.
  • Busque "Usar datos de seguimiento ocular" en la configuración y úselo.
  • Es posible que veas un botón "Establecer funcionalidad GazeInput" ahora y debería presionarlo para habilitar la funcionalidad de UWP.

MRTK usa datos de seguimiento ocular

Simulación del seguimiento ocular en el Editor de Unity

Puede simular la entrada de seguimiento ocular en el Editor de Unity para asegurarse de que los eventos se desencadenan correctamente antes de implementar la aplicación en el HoloLens 2. La señal de mirada de los ojos se simula mediante la ubicación de la cámara como origen de la mirada de los ojos y el vector hacia delante de la cámara como dirección de la mirada de los ojos. Aunque esto es excelente para las pruebas iniciales, no es una buena imitación para movimientos rápidos de los ojos. Es mejor garantizar pruebas frecuentes de las interacciones basadas en los ojos en el HoloLens 2.

  1. Habilitar el seguimiento ocular simulado:

    • Haga clic en la pestaña "Entrada" en el perfil de configuración de MRTK.
    • Desde allí, vaya a "Proveedores de datos de entrada" ->"Servicio de simulación de entrada".
    • Clone "DefaultMixedRealityInputSimulationProfile" para realizar cambios en él.
    • Seleccione la configuración " Modo de simulación de mirada de ojos predeterminada" adecuada.

    Simulación de ojos MRTK

  2. Deshabilitar el cursor de mirada de la cabeza predeterminado: en general, se recomienda evitar mostrar un cursor de mirada ocular o, si es necesario, hacerlo muy sutil. Se recomienda ocultar de forma predeterminada el cursor de mirada de la cabeza predeterminado adjunto al perfil de puntero de mirada MRTK.

    • Vaya al perfil de configuración de MRTK ->'Input' ->'Pointers'
    • Clone "DefaultMixedRealityInputPointerProfile" para realizar cambios en él.
    • En la parte superior de la "Configuración del puntero", debe asignar un objeto prefabricado de cursor invisible al objeto prefabricado "Gaze Cursor Prefab". Seleccione el prefabricado "EyeGazeCursor" de la Fundación MRTK.

Habilitación de la mirada basada en los ojos en el proveedor de mirada

En HoloLens v1, la mirada de la cabeza se usó como la técnica de apuntamiento principal. Aunque la mirada de la cabeza sigue estando disponible a través de GazeProvider en MRTK, que está conectado a la cámara, puede usar la mirada ocular en su lugar seleccionando la casilla "IsEyeTrackingEnabled" en la configuración de mirada del perfil de puntero de entrada.

Nota:

Los desarrolladores pueden alternar entre la mirada basada en los ojos y la mirada basada en la cabeza en el código cambiando la propiedad "IsEyeTrackingEnabled" de "GazeProvider".

Importante

Si no se cumple alguno de los requisitos de seguimiento ocular, la aplicación vuelve automáticamente a la mirada basada en la cabeza.

Acceso a los datos de mirada ocular

Ahora que la escena está configurada para usar el seguimiento ocular, echemos un vistazo a cómo acceder a ella en los scripts: Acceso a los datos de seguimiento ocular a través de EyeGazeProvider y selecciones de destino compatibles con los ojos.

Prueba de la aplicación de Unity en un HoloLens 2

La compilación de la aplicación con seguimiento ocular debe ser similar a cómo compilaría otras aplicaciones HoloLens 2 MRTK. Asegúrese de habilitar la funcionalidad "Entrada de mirada", tal como se describió anteriormente en la sección Nota sobre la funcionalidad GazeInput.

Asegúrese de que el proyecto está configurado para HoloLens 2

Asegúrese de configurar correctamente el proyecto revisando los pasos de configuración descritos en Configuración de un proyecto de OpenXR con MRTK.

Puntos clave a tener en cuenta:

  • Revise la configuración de clave en la ventana Configuración del proyecto .
    • Asegúrese de que los proveedores de complementos están configurados correctamente
  • Resolución de triángulos de advertencia.
    • Se deben establecer perfiles de interacción
    • Los grupos de características de OpenXR deben seleccionarse correctamente

Calibración ocular

No olvide pasar por la calibración de los ojos en su HoloLens 2. El sistema de seguimiento ocular no devuelve ninguna entrada si el usuario no está calibrado. La manera más fácil de llegar a la calibración es volteando el visor hacia arriba y luego hacia abajo. Debería aparecer una notificación del sistema que le da la bienvenida como nuevo usuario y le pide que pase por la calibración de los ojos. Como alternativa, puede encontrar la calibración de los ojos en la configuración del sistema: Configuración > Calibración > del sistema > Ejecutar calibración ocular.

Permiso de seguimiento ocular

Al iniciar la aplicación en la HoloLens 2 por primera vez, debería aparecer un mensaje emergente en el que se pide permiso al usuario para usar el seguimiento ocular. Si el aviso no aparece, suele ser una indicación de que no se ha establecido la funcionalidad "GazeInput" .

Después de que el símbolo del permiso aparezca una vez, no se volverá a mostrar automáticamente. Si "ha denegado el permiso de seguimiento ocular", puede restablecerlo en Configuración -> Privacidad -> Aplicaciones.


Debería empezar a usar el seguimiento ocular en la aplicación MRTK Unity. No olvide consultar nuestros tutoriales y ejemplos de seguimiento ocular de MRTK que muestran cómo usar la entrada de seguimiento ocular y proporcionan scripts que puede reutilizar en sus proyectos.


Volver a "Seguimiento de ojos en MixedRealityToolkit"