Introdução ao acompanhamento ocular no MRTK2

Esta página aborda como configurar a cena do MRTK do Unity para usar o acompanhamento ocular em seu aplicativo. O seguinte pressupõe que você está começando com uma nova cena. Como alternativa, você pode conferir nossos exemplos de acompanhamento ocular mrtk já configurados com toneladas de ótimos exemplos que podem ser compilados diretamente.

Lista de verificação de requisitos de acompanhamento ocular

Para que o acompanhamento ocular funcione corretamente, os requisitos a seguir precisam ser atendidos. Se você não estiver familiarizado com o acompanhamento no HoloLens 2 e como o acompanhamento ocular está configurado no MRTK, não se preocupe! Entraremos em detalhes de como abordar cada um deles mais adiante.

  1. Um "Provedor de Dados de Foco Ocular" deve ser adicionado ao sistema de entrada. Isso fornece dados de acompanhamento ocular da plataforma.
  2. A funcionalidade 'GazeInput' deve ser habilitada no manifesto do aplicativo. Essa funcionalidade pode ser definida no Unity 2019, mas no Unity 2018 e anteriores, ela só está disponível no Visual Studio e por meio da ferramenta de build MRTK
  3. O HoloLens deve estar calibrado para o usuário atual. Confira nosso exemplo para detectar se ele está calibrado para os olhos do usuário ou não.

Uma observação sobre a funcionalidade GazeInput

As ferramentas de build fornecidas pelo MRTK (ou seja, Realidade Misturada Toolkit –> Utilitários –> Janela de Build) podem habilitar automaticamente o recurso GazeInput para você. Para fazer isso, você precisa verificar se o "Recurso de Entrada de Foco" está marcado na guia "Opções de Build do Appx":

MRTK Build Tools

Essa ferramenta localizará o manifesto do AppX depois que o build do Unity for concluído e adicionará manualmente o recurso GazeInput. Antes do Unity 2019, essa ferramenta NÃO está ativa ao usar a Janela de Build interna do Unity (ou seja, Arquivo –> Compilar Configurações).

Antes do Unity 2019, ao usar a janela de build do Unity, a funcionalidade precisará ser adicionada manualmente após o build do Unity, da seguinte maneira:

  1. Abra seu projeto de Visual Studio compilado e abra o 'Package.appxmanifest' em sua solução.
  2. Marque a caixa de seleção 'GazeInput' em Recursos. Se você não vir uma funcionalidade 'GazeInput', verifique se o sistema atende aos pré-requisitos para usar o MRTK (em particular a versão do SDK Windows).

Observe: Você só precisa fazer isso se criar em uma nova pasta de build. Isso significa que, se você já tiver criado seu projeto do Unity e configurado o appxmanifest antes e agora direcionar a mesma pasta novamente, você não precisará reaplicar suas alterações.

Configurando o acompanhamento ocular passo a passo

Configurando a cena

Configure o MixedRealityToolkit simplesmente clicando em 'Realidade Misturada Toolkit -> Configurar...' na barra de menus.

MRTK configure

Configurando os perfis MRTK necessários para acompanhamento ocular

Depois de configurar a cena do MRTK, você será solicitado a escolher um perfil para MRTK. Basta selecionar DefaultMixedRealityToolkitConfigurationProfile e selecionar a opção "Copiar & Personalizar ".

MRTK profile

Criar um "provedor de dados de foco ocular"

  • Clique na guia "Entrada" no perfil mrtk.
  • Para editar o padrão ( 'DefaultMixedRealityInputSystemProfile' ), clique no botão 'Clonar' ao lado dele. Um menu "Clonar Perfil" é exibido. Basta clicar em "Clonar" na parte inferior desse menu.
  • Clique duas vezes no novo perfil de entrada, expanda "Provedores de Dados de Entrada" e selecione "+ Adicionar Provedor de Dados".
  • Criar um novo provedor de dados:
    • Em Tipo, selecione 'Microsoft.MixedReality.Toolkit. WindowsMixedReality.Input' ->'WindowsMixedRealityEyeGazeDataProvider'
    • Para plataformas, selecione "Windows Universal".

MRTK data provider

Simulando o acompanhamento ocular no Editor do Unity

Você pode simular a entrada de acompanhamento ocular no Editor do Unity para garantir que os eventos sejam disparados corretamente antes de implantar o aplicativo em seu HoloLens 2. O sinal de olhar é simulado simplesmente usando a localização da câmera como origem do olhar e o vetor dianteiro da câmera como direção do olhar. Embora isso seja ótimo para testes iniciais, observe que não é uma boa imitação para movimentos rápidos dos olhos. Para isso, é melhor garantir testes frequentes de suas interações baseadas nos olhos no HoloLens 2.

  1. Habilitar o acompanhamento ocular simulado:

    • Clique na guia "Entrada" no perfil de configuração do MRTK.
    • A partir daí, navegue até 'Provedores de Dados de Entrada' ->'Serviço de Simulação de Entrada'.
    • Clone o 'DefaultMixedRealityInputSimpulationProfile' para fazer alterações nele.
    • Marque a caixa de seleção "Simular Posição ocular ".

    MRTK eyes simulate

  2. Desabilitar o cursor de foco de cabeça padrão: em geral, é recomendável evitar mostrar um cursor de olhar ou se for absolutamente necessário para torná-lo muito sutil. É recomendável ocultar o cursor de foco de cabeça padrão anexado ao perfil de ponteiro de foco mrtk por padrão.

    • Navegue até o perfil de configuração do MRTK ->'Entrada' ->'Ponteiros'
    • Clone o 'DefaultMixedRealityInputPointerProfile' para fazer alterações nele.
    • Na parte superior do 'Ponteiro Configurações', você deve atribuir um pré-fabricado de cursor invisível ao 'GazeCursor'. Você pode fazer isso selecionando o pré-fabricado 'EyeGazeCursor' na Fundação MRTK.

Habilitando o olhar baseado no olhar no provedor de foco

Em HoloLens v1, o olhar para a cabeça foi usado como técnica de apontamento primário. Enquanto o foco da cabeça ainda está disponível por meio do GazeProvider no MRTK que está anexado ao seu Câmera, você pode verificar para usar o olhar, marcando a caixa de seleção 'IsEyeTrackingEnabled' nas configurações de foco do perfil do ponteiro de entrada.

Observação

Os desenvolvedores podem alternar entre o olhar baseado nos olhos e o olhar baseado na cabeça no código alterando a propriedade 'IsEyeTrackingEnabled' de 'GazeProvider'.

Importante

Se qualquer um dos requisitos de acompanhamento ocular não for atendido, o aplicativo retornará automaticamente ao olhar baseado na cabeça.

Acessando dados de foco ocular

Agora que sua cena está configurada para usar o acompanhamento ocular, vamos dar uma olhada em como acessá-la em seus scripts: acessando dados de rastreamento ocular por meio de EyeGazeProvider e seleções de destino com suporte ocular.

Testando seu aplicativo Unity em um HoloLens 2

Criar seu aplicativo com acompanhamento ocular deve ser semelhante a como você compilaria outros aplicativos HoloLens 2 MRTK. Certifique-se de que você habilitou a funcionalidade 'Entrada de Foco', conforme descrito acima na seção Uma anotação sobre o recurso GazeInput.

Verifique se o projeto está configurado para HoloLens 2

Verifique se você configurou corretamente seu projeto examinando as etapas de configuração abordadas em Configurar um projeto OpenXR com o MRTK.

Pontos-chave para pensar:

  • Examine as configurações de chave na janela Project Configurações.
    • Verifique se os provedores de plug-in estão definidos corretamente
  • Resolva triângulos de aviso.
    • Os perfis de interação devem ser definidos
    • Os Grupos de Recursos do OpenXR devem ser selecionados corretamente

Calibragem de olho

Por fim, não se esqueça de executar a calibragem ocular em seu HoloLens 2. O sistema de acompanhamento ocular não retornará nenhuma entrada se o usuário não estiver calibrado. A maneira mais fácil de chegar à calibragem é invertendo o visor e recuando. Uma notificação do sistema deve aparecer recebendo você como um novo usuário e solicitando que você passe pela calibragem ocular. Como alternativa, você pode encontrar a calibragem ocular nas configurações do sistema: Configurações > calibragem ocular de Execução de Calibragem > do Sistema>.

Permissão de acompanhamento ocular

Ao iniciar o aplicativo em seu HoloLens 2 pela primeira vez, um prompt deve aparecer solicitando ao usuário permissão para usar o acompanhamento ocular. Se ele não estiver aparecendo, isso geralmente é uma indicação de que a funcionalidade 'GazeInput' não foi definida.

Depois que o prompt de permissão aparecer uma vez, ele não aparecerá automaticamente novamente. Se você "negou a permissão de acompanhamento ocular", poderá redefinir isso em Configurações -> Privacidade -> Aplicativos.


Isso deve fazer com que você comece a usar o acompanhamento ocular em seu aplicativo MRTK Unity. Não se esqueça de conferir nossos tutoriais de acompanhamento ocular do MRTK e exemplos que demonstram como usar a entrada de acompanhamento ocular e fornecer convenientemente scripts que você pode reutilizar em seus projetos.


De volta ao "Rastreamento de olhos no MixedRealityToolkit"