Introducción al seguimiento de los ojos en MRTKGetting started with eye tracking in MRTK

En esta página se explica cómo configurar la escena de MRTK de Unity para usar el seguimiento de los ojos en la aplicación.This page covers how to set up your Unity MRTK scene to use eye tracking in your app. A continuación se da por supuesto que está empezando con una nueva escena.The following assumes you are starting out with a fresh new scene. Como alternativa, puede consultar nuestros ejemplos de seguimiento ocular de MRTK ya configurados con montones de excelentes ejemplos sobre los que puede basar directamente.Alternatively, you can check out our already configured MRTK eye tracking examples with tons of great examples that you can directly build on.

Lista de comprobación de los requisitos de seguimiento de los ojosEye tracking requirements checklist

Para que el seguimiento de los ojos funcione correctamente, deben cumplirse los siguientes requisitos.For eye tracking to work correctly, the following requirements must be met. Si no está nuevo en el seguimiento de los HoloLens 2 y en cómo se configura el seguimiento de los ojos en MRTK, no se preocupe.If you are new to eye tracking on HoloLens 2 and to how eye tracking is set up in MRTK, don't worry! A continuación se detallará cómo abordar cada uno de ellos.We will go into detail on how to address each of them further below.

  1. Se debe agregar un "proveedor de datos de mirada con los ojos" al sistema de entrada.An 'Eye Gaze Data Provider' must be added to the input system. Esto proporciona datos de seguimiento de los ojos de la plataforma.This provides eye tracking data from the platform.
  2. La funcionalidad "GazeInput" debe estar habilitada en el manifiesto de aplicación.The 'GazeInput' capability must be enabled in the application manifest. 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.This capability can be set in Unity 2019, but in Unity 2018 and earlier this capability is only available in Visual Studio and through the MRTK build tool
  3. HoloLens debe calibrarse con los ojos para el usuario actual.The HoloLens must be eye calibrated for the current user. Consulte nuestro ejemplo para detectar si un usuario está calibrado con los ojos o no.Check out our sample for detecting whether a user is eye calibrated or not.

Una nota sobre la funcionalidad GazeInputA note on the GazeInput capability

Las herramientas de compilación proporcionadas por MRTK (es decir, Mixed Reality Toolkit -> Utilities -> Build Window) pueden habilitar automáticamente la funcionalidad GazeInput.The MRTK-provided build tooling (i.e. Mixed Reality Toolkit -> Utilities -> Build Window) can automatically enable the GazeInput capability for you. Para ello, debe asegurarse de que la "Funcionalidad de entrada de mirada" está activada en la pestaña "Opciones de compilación de Appx":In order to do this, you need to make sure that the 'Gaze Input Capability' is checked on the 'Appx Build Options' tab:

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.This tooling will find the AppX manifest after the Unity build is completed and manually add the GazeInput capability. Antes de Unity 2019, estas herramientas NO están activas cuando se usa la ventana de compilación integrada de Unity (es decir, archivo -> configuración de compilación).Prior to Unity 2019, this tooling is NOT active when using Unity's built-in Build Window (i.e. File -> Build Settings).

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 muestra a continuación:Prior to Unity 2019, when using Unity's build window, the capability will need to be manually added after the Unity build, as follows:

  1. Abra el proyecto Visual Studio compilado y, a continuación, abra "Package.appxmanifest" en la solución.Open your compiled Visual Studio project and then open the 'Package.appxmanifest' in your solution.
  2. Asegúrese de activar la casilla "GazeInput" en Funcionalidades.Make sure to tick the 'GazeInput' checkbox under Capabilities. Si no ve una funcionalidad "GazeInput", compruebe que el sistema cumple los requisitos previos para usar MRTK (en particular, la versión Windows SDK).If you don't see a 'GazeInput' capability, check that your system meets the prerequisites for using MRTK (in particular the Windows SDK version).

Tenga en cuenta lo siguiente: Solo tiene que hacerlo si compila en una nueva carpeta de compilación.Please note: You only have to do this if you build into a new build folder. Esto significa que si ya había creado el proyecto de Unity y configurado appxmanifest antes y ahora se ha dirigido de nuevo a la misma carpeta, no tendrá que volver a aplicar los cambios.This means that if you had already built your Unity project and set up the appxmanifest before and now target the same folder again, you will not need to reapply your changes.

Configuración paso a paso del seguimiento de los ojosSetting up eye tracking step-by-step

Configuración de la escenaSetting up the scene

Para configurar MixedRealityToolkit, basta con hacer clic en "Mixed Reality Toolkit -> Configure..."Set up the MixedRealityToolkit by simply clicking 'Mixed Reality Toolkit -> Configure…' en la barra de menús.in the menu bar.

Configuración de MRTK

Configuración de los perfiles de MRTK necesarios para el seguimiento ocularSetting up the MRTK profiles required for eye tracking

Después de configurar la escena de MRTK, se le pedirá que elija un perfil para MRTK.After setting up your MRTK scene, you will be asked to choose a profile for MRTK. Simplemente puede seleccionar DefaultMixedRealityToolkitConfigurationProfile y, a continuación, seleccionar la opción "Copiar & Personalizar".You can simply select DefaultMixedRealityToolkitConfigurationProfile and then select the 'Copy & Customize' option.

Perfil de MRTK

<a name="create-an-eye-gaze-data-provider">Creación de un "proveedor de datos de mirada con los ojos"Create an "eye gaze data provider"

  • Haga clic en la pestaña "Entrada" en el perfil de MRTK.Click on the 'Input' tab in your MRTK profile.
  • Para editar el valor predeterminado ( "DefaultMixedRealityInputSystemProfile"), haga clic en el botón "Clone" (Clonar) situado junto a él.To edit the default one ( 'DefaultMixedRealityInputSystemProfile' ), click the 'Clone' button next to it. Aparece el menú "Clonar perfil".A 'Clone Profile' menu appears. Simplemente haga clic en "Clonar" en la parte inferior de ese menú.Simply click on 'Clone' at the bottom of that menu.
  • Haga doble clic en el nuevo perfil de entrada, expanda "Proveedores de datos de entrada" y seleccione "+ Agregar proveedor de datos".Double click on your new input profile, expand 'Input Data Providers', and select '+ Add Data Provider'.
  • Cree un nuevo proveedor de datos:Create a new data provider:
    • En Tipo, seleccione "Microsoft.MixedReality.Toolkit.WindowsMixedReality.Input" -> "WindowsMixedRealityEyeGazeDataProvider".Under Type select 'Microsoft.MixedReality.Toolkit.WindowsMixedReality.Input' -> 'WindowsMixedRealityEyeGazeDataProvider'
    • En Plataformas, seleccione "Windows Universal".For Platform(s) select 'Windows Universal'.

Proveedor de datos MRTK

Simulación del seguimiento de los ojos en el editor de UnitySimulating eye tracking in the Unity Editor

Puede simular la entrada de seguimiento de los ojos en el Editor de Unity para asegurarse de que los eventos se desencadenan correctamente antes de implementar la aplicación en el HoloLens 2.You can simulate eye tracking input in the Unity Editor to ensure that events are correctly triggered before deploying the app to your HoloLens 2. La señal de mirada con los ojos se simula simplemente usando la ubicación de la cámara como origen de la mirada con los ojos y el vector hacia delante de la cámara como dirección de la mirada con los ojos.The eye gaze signal is simulated by simply using the camera's location as eye gaze origin and the camera's forward vector as eye gaze direction. Aunque esto es excelente para las pruebas iniciales, tenga en cuenta que no es una buena imitación para los movimientos rápidos de los ojos.While this is great for initial testing, please note that it is not a good imitation for rapid eye movements. Para ello, es mejor asegurarse de realizar pruebas frecuentes de las interacciones basadas en los ojos en el HoloLens 2.For this, it is better to ensure frequent tests of your eye-based interactions on the HoloLens 2.

  1. Habilite el seguimiento de los ojos simulados:Enable simulated eye tracking:

    • Haga clic en la pestaña "Entrada" en el perfil de configuración de MRTK.Click on the 'Input' tab in your MRTK configuration profile.
    • Desde allí, vaya a "Input Data Providers" (Proveedores de datos de -> entrada) "Input Simulation Service" (Servicio de simulación de entrada).From there, navigate to 'Input Data Providers' -> 'Input Simulation Service'.
    • Clone "DefaultMixedRealityInputSimpulationProfile" para realizar cambios en él.Clone the 'DefaultMixedRealityInputSimpulationProfile' to make changes to it.
    • Active la casilla "Simular posición de los ojos".Check the 'Simulate Eye Position' checkbox.

    Simulación de ojos MRTK

  2. Deshabilitar cursor de mirada con la cabeza predeterminado: en general, se recomienda evitar mostrar un cursor de mirada con los ojos o si es absolutamente necesario para que sea muy sutil.Disable default head gaze cursor: In general, it is recommended to avoid showing an eye gaze cursor or if absolutely required to make it very subtle. Se recomienda ocultar el cursor de mirada con la cabeza predeterminado asociado al perfil de puntero de mirada DE MRTK de forma predeterminada.We do recommend to hide the default head gaze cursor that is attached to the MRTK gaze pointer profile by default.

    • Vaya al perfil de configuración de MRTK -> "Input" -> 'Pointers' (Punteros de entrada).Navigate to your MRTK configuration profile -> 'Input' -> 'Pointers'
    • Clone "DefaultMixedRealityInputPointerProfile" para realizar cambios en él.Clone the 'DefaultMixedRealityInputPointerProfile' to make changes to it.
    • En la parte superior de "Configuración del puntero", debe asignar un cursor invisible prefab a "GazeCursor".At the top of the 'Pointer Settings', you should assign an invisible cursor prefab to the 'GazeCursor'. Para ello, seleccione el prefab "EyeGazeCursor" de MRTK Foundation.You can do this by selecting the 'EyeGazeCursor' prefab from the MRTK Foundation.

Habilitación de la mirada con los ojos en el proveedor de miradaEnabling eye-based gaze in the gaze provider

En HoloLens v1, la mirada con la cabeza se usó como técnica de apuntar principal.In HoloLens v1, head gaze was used as primary pointing technique. Aunque la mirada con la cabeza sigue estando disponible a través de GazeProvider en MRTK, que está conectado a la cámara,puede comprobar el uso de la mirada con los ojos activando la casilla "IsEyeTrackingEnabled" en la configuración de mirada del perfil de puntero de entrada.While head gaze is still available via the GazeProvider in MRTK which is attached to your Camera, you can check to use eye gaze instead by ticking the 'IsEyeTrackingEnabled' checkbox in the gaze settings of the input pointer profile.

Nota

Los desarrolladores pueden alternar entre la mirada con los ojos y la mirada basada en la cabeza en el código cambiando la propiedad "IsEyeTrackingEnabled" de "GazeProvider".Developers can toggle between eye-based gaze and head-based gaze in code by changing the 'IsEyeTrackingEnabled' property of 'GazeProvider'.

Importante

Si no se cumple alguno de los requisitos de seguimiento de los ojos, la aplicación volverá automáticamente a la mirada basada en la cabeza.If any of the eye tracking requirements are not met, the application will automatically fall back to head-based gaze.

Acceso a los datos de mirada con los ojosAccessing eye gaze data

Ahora que la escena está configurada para usar el seguimiento de los ojos, echemos un vistazo a cómo acceder a ella en los scripts: Acceso a los datos de seguimiento de los ojos a través de EyeGazeProvider y seleccionesde destino compatibles con los ojos.Now that your scene is set up to use eye tracking, let's take a look at how to access it in your scripts: Accessing eye tracking data via EyeGazeProvider and eye-supported target selections.

Prueba de la aplicación unity en un HoloLens 2Testing your Unity app on a HoloLens 2

La compilación de la aplicación con el seguimiento de los ojos debe ser similar a cómo compilaría otras aplicaciones HoloLens 2 MRTK.Building your app with eye tracking should be similar to how you would compile other HoloLens 2 MRTK apps. Asegúrese de que ha habilitado la funcionalidad "Entrada de mirada", como se ha descrito anteriormente en la sección A note on the GazeInput capability( Nota sobre la funcionalidad GazeInput).Be sure that you have enabled the 'Gaze Input' capability as described above in the section A note on the GazeInput capability.

Calibración de los ojosEye calibration

Por último, no olvide realizar la calibración de los ojos en el HoloLens 2.Finally, please don't forget to run through the eye calibration on your HoloLens 2. El sistema de seguimiento de los ojos no devolverá ninguna entrada si el usuario no está calibrado.The eye tracking system will not return any input if the user is not calibrated. La manera más fácil de llegar a la calibración es volteando hacia arriba el visor y hacia atrás.Easiest way to get to the calibration is by flipping up the visor and back down. 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.A system notification should appear welcoming you as a new user and asking you to go through the eye calibration. También puede encontrar la calibración de los ojos en la configuración del sistema: Configuración > sistema > calibración > calibración de los ojos.Alternatively you can find the eye calibration in the system settings: Settings > System > Calibration > Run eye calibration.

Permiso de seguimiento ocularEye tracking permission

Al iniciar la aplicación en el HoloLens 2 por primera vez, aparecerá un mensaje en el que se le pedirá al usuario permiso para usar el seguimiento ocular.When starting the app on your HoloLens 2 for the first time, a prompt should pop up asking the user for permission to use eye tracking. Si no aparece, suele ser una indicación de que no se estableció la funcionalidad "GazeInput".If it is not showing up, then that is usually an indication that the 'GazeInput' capability was not set.

Después de que el símbolo del sistema de permisos se muestre una vez, no se volverá a mostrar automáticamente.After the permission prompt showed up once, it will not show up automatically again. Si "ha denegado el permiso de seguimiento ocular", puede restablecerlo en Configuración -> Privacidad -> Aplicaciones.If you "denied eye tracking permission", you can reset this in Settings -> Privacy -> Apps.


Esto debería comenzar a usar el seguimiento ocular en la aplicación mrtk de Unity.This should get you started with using eye tracking in your MRTK Unity app. 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 que puede reutilizar en sus proyectos.Don't forget to check out our MRTK eye tracking tutorials and samples demonstrating how to use eye tracking input and conveniently providing scripts that you can reuse in your projects.


Vuelva a "Eye Tracking in the MixedRealityToolkit" (Seguimiento de los ojos en MixedRealityToolkit).Back to "Eye tracking in the MixedRealityToolkit"