Mirada : MRTK2

La mirada es una forma de entrada que interactúa con el mundo en función de dónde está buscando el usuario. La mirada existe en dos tipos diferentes

Mirada con la cabeza

Este tipo de mirada se basa en la dirección en la que está mirando la cabeza o la cámara. La mirada con la cabeza está activa en sistemas que no admiten la mirada con los ojos o en los casos en los que el hardware puede admitir la mirada ocular, pero no se ha realizado el conjunto correcto de permisos y configuración .

La mirada con la cabeza suele estar asociada con las interacciones de estilo de HoloLens 1 que implican mirar el objeto colocándolo en el centro del marco holográfico y, a continuación, realizando el gesto de pulsación en el aire.

Mirada con los ojos

Este tipo de mirada se basa en la apariencia de los ojos del usuario. La mirada ocular solo está presente en sistemas que admiten el seguimiento ocular. Consulte la documentación de seguimiento ocular para obtener más detalles sobre cómo usar la mirada con los ojos.

GazeProvider

La función de mirada (tanto la cabeza como el ojo) la proporciona gazeProvider. Este proveedor se puede configurar en la sección Puntero del perfil del sistema de entrada:

Punto de entrada de configuración de mirada

Al igual que otros orígenes de entrada, el proveedor de mirada interactúa con objetos de la escena mediante el uso de un puntero (consulte este documento para obtener información sobre punteros). En el caso del proveedor de mirada, su puntero se implementa a través InternalGazePointer de y no se configura a través de un perfil.

Es posible reemplazar gazeProvider por una implementación alternativa cambiando el tipo de proveedor de mirada para hacer referencia a una clase diferente que implementa IMixedRealityGazeProvider e IMixedRealityEyeGazeProvider. Por lo general, se recomienda usar gazeProvider (y presentar problemas al encontrar errores) ya que volver a implementar GazeProvider no es trivial.

Posturas de mirada alternativas proporcionadas por la plataforma

De forma predeterminada, gazeProvider de MRTK usa el centro del marco de la cámara como origen de la mirada. Algunas plataformas, como Windows Mixed Reality en HoloLens 2, proporcionan una posición de mirada definida alternativamente. Esto se administra a través de la Use Head Gaze Override configuración de la mirada. Cuando se habilita, se usará la invalidación de mirada alternativa. Cuando está deshabilitado, se usará el origen del centro de fotogramas predeterminado. En concreto, para HoloLens 2, el ángulo de mirada se elevará varios grados para tener en cuenta la comodidad del usuario en el uso de su cabeza para el destino.

Uso

Cómo obtener el destino de mirada actual

En este ejemplo se muestra cómo obtener el objeto de juego actual dirigido por la mirada del usuario.

void LogCurrentGazeTarget()
{
    if (CoreServices.InputSystem.GazeProvider.GazeTarget)
    {
        Debug.Log("User gaze is currently over game object: "
            + CoreServices.InputSystem.GazeProvider.GazeTarget)
    }
}

Cómo obtener la dirección y el origen actuales de la mirada

En este ejemplo se muestra cómo obtener vector3 que representa la dirección de la mirada del usuario y el origen (el punto desde el que va la dirección).

void LogGazeDirectionOrigin()
{
    Debug.Log("Gaze is looking in direction: "
        + CoreServices.InputSystem.GazeProvider.GazeDirection);

    Debug.Log("Gaze origin is: "
        + CoreServices.InputSystem.GazeProvider.GazeOrigin);
}