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 nueva. Como alternativa, puede consultar nuestros ejemplos de seguimiento ocular de MRTK ya configurados con toneladas de excelentes ejemplos en los que puede basar directamente.

Lista de comprobación de requisitos de seguimiento ocular

Para que el seguimiento ocular funcione correctamente, deben cumplirse los siguientes requisitos. No se preocupe si no está familiarizado con el seguimiento ocular en HoloLens 2 ni con la configuración del seguimiento ocular en MRTK. Veremos en detalle cómo abordar cada uno de ellos más adelante en las secciones siguientes.

  1. Se debe agregar un "proveedor de datos de mirada ocular" 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 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 calibrarse para el usuario actual. Consulte nuestro ejemplo para detectar si un usuario está calibrado con los ojos o no.

Nota sobre la funcionalidad GazeInput

Las herramientas de compilación proporcionadas por MRTK (Mixed Reality Toolkit -> Utilidades -> Ventana de compilación) pueden habilitar automáticamente la funcionalidad GazeInput automáticamente. 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 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 tendrá que 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 "Package.appxmanifest" en la solución.
  2. Asegúrese de marcar 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 de Windows SDK).

Nota: Solo tiene que hacerlo si compila en una nueva carpeta de compilación. No tendrá que 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.

Configurar el seguimiento ocular paso a paso

Configuración de la escena

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

Configuración de MRTK

Configurar 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 la predeterminada ('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 el Windows Mixed Reality heredado
      • En Tipo, seleccione "Microsoft.MixedReality.Toolkit.WindowsMixedReality.Input" ->'WindowsMixedRealityEyeGazeDataProvider'
    • Complemento para Windows XR
      • 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" ->"Punteros".
    • Clone " DefaultMixedRealityInputPointerProfile" para realizar cambios en él.
  • Busque "Usar datos de seguimiento ocular" en la configuración y habilitela.
  • Es posible que veas ahora un botón "Establecer la funcionalidad GazeInput" y deberías presionarlo para habilitar la funcionalidad de UWP.

MRTK usa datos de seguimiento ocular

Simular el 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 la HoloLens 2. La señal de mirada ocular se simula mediante el uso de la ubicación de la cámara como origen de la mirada ocular y el vector de avance de la cámara como dirección de mirada ocular. Aunque esto es ideal para pruebas iniciales, tenga en cuenta que no es una buena imitación para movimientos oculares rápidos. Para ello, es mejor garantizar pruebas frecuentes de las interacciones basadas en los ojos en la HoloLens 2.

  1. Habilite el seguimiento ocular simulado:

    • Haga clic en la pestaña "Entrada" del 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 "Default Eye Gaze Simulation Mode" (Modo de simulación de mirada ocular predeterminada ).

    Simulación de ojos de MRTK

  2. Deshabilitar el cursor de mirada de cabeza predeterminado: en general, se recomienda evitar mostrar un cursor de mirada ocular o, si es absolutamente necesario, hacer que sea muy sutil. Se recomienda ocultar el cursor de mirada de cabeza predeterminado que está asociado al perfil de puntero de mirada MRTK de forma predeterminada.

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

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

En HoloLens v1, la mirada con la cabeza se usó como técnica de señalamiento principal. Mientras la mirada con la cabeza sigue estando disponible a través de GazeProvider en MRTK, que está adjunta a la cámara, puede usar la mirada ocular activando 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 volverá automáticamente a la mirada basada en la cabeza.

Acceso a 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.

Probar la aplicación de Unity en una HoloLens 2

Compilar la aplicación con seguimiento ocular debe ser similar a cómo compilaría otras aplicaciones de MRTK HoloLens 2. Asegúrese de que ha habilitado la funcionalidad "Entrada de mirada", como se ha descrito anteriormente en la sección Nota sobre la funcionalidad GazeInput.

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

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

Puntos clave para pensar en:

  • 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.
  • Resuelva triángulos de advertencia.
    • Se deben establecer perfiles de interacción
    • Los grupos de características de OpenXR deben seleccionarse correctamente

Calibración de los ojos

No olvide recorrer la calibración ocular en la HoloLens 2. El sistema de seguimiento ocular no devolverá ninguna entrada si el usuario no está calibrado. La manera más fácil de llegar a la calibración es voltear el visor hacia arriba y luego retroceder. 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 ocular. Como alternativa, puede encontrar la calibración ocular 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, se debería mostrar un mensaje que pide al usuario permiso para usar el seguimiento ocular. Si el símbolo del sistema no aparece, suele ser una indicación de que no se ha establecido la funcionalidad "GazeInput ".

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


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


De vuelta a "Seguimiento ocular en MixedRealityToolkit"