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 documento a seguir pressupõe que você está começando com uma nova cena. Como alternativa, você pode marcar nossos exemplos de acompanhamento ocular do 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ê está começando a usar o acompanhamento ocular no HoloLens 2 e aprendendo como o acompanhamento ocular está definido no MRTK, não se preocupe! Entraremos em detalhes sobre como abordar cada um deles ainda mais nas seções a seguir.

  1. Um "Provedor de Dados de Foco Ocular" deve ser adicionado ao sistema de entrada. Esse provedor de dados 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 essa funcionalidade só está disponível no Visual Studio e por meio da ferramenta de build do 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 (Realidade Misturada Toolkit –> Utilitários –> Janela de Build) podem habilitar automaticamente a funcionalidade GazeInput para você. Para fazer essa etapa, você precisa verificar se a 'Funcionalidade de Entrada de Foco' está marcada na guia 'Opções de Build do Appx':

Ferramentas de Build do MRTK

Essas ferramentas encontrarão o manifesto AppX depois que o build do Unity for concluído e adicionarão manualmente a funcionalidade GazeInput. Antes do Unity 2019, essas ferramentas NÃO estão ativas ao usar a Janela de Build interna do Unity (Arquivo –> Configurações de Build).

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 o projeto compilado do Visual Studio e abra o 'Package.appxmanifest' em sua solução.
  2. Marque a caixa de seleção 'GazeInput' em Funcionalidades. Se você não vir uma funcionalidade 'GazeInput', marcar que seu sistema atenda aos pré-requisitos para usar o MRTK (em particular a versão do SDK do Windows).

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

Configurando o acompanhamento ocular passo a passo

Configurando a cena

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

Configurar o MRTK

Configurando os perfis do MRTK necessários para acompanhamento ocular

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

Perfil do MRTK

Criar um "provedor de dados de foco ocular"

  • Clique na guia 'Entrada' no perfil do MRTK.
  • Para editar o padrão ('DefaultMixedRealityInputSystemProfile'), clique no botão 'Clonar' ao lado dele. Um menu 'Clonar Perfil' é exibido. Clique 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".
  • Adicione o provedor de dados correto:
    • Para Windows Mixed Reality herdado
      • Em Tipo , selecione 'Microsoft.MixedReality.Toolkit.WindowsMixedReality.Input' ->'WindowsMixedRealityEyeGazeDataProvider'
    • Para o plug-in do Windows XR
      • Em Tipo , selecione 'Microsoft.MixedReality.Toolkit.XRSDK.WindowsMixedReality' ->'WindowsMixedRealityEyeGazeDataProvider'
    • Para OpenXR
      • Em Tipo , selecione 'Microsoft.MixedReality.Toolkit.XRSDK.OpenXR' ->'OpenXREyeGazeDataProvider'

Provedor de dados do MRTK

Habilitar "Usar dados de acompanhamento ocular"

  • Navegue até o perfil de configuração do MRTK ->'Input' ->'Pointers'
    • Clone o 'DefaultMixedRealityInputPointerProfile' para fazer alterações nele.
  • Localize 'Usar Dados de Acompanhamento Ocular' nas configurações e habilite-os.
  • Você pode ver um botão "Definir funcionalidade GazeInput" agora e deve pressioná-lo para habilitar a funcionalidade UWP.

O MRTK usa dados de acompanhamento ocular

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 foco ocular é simulado usando a localização da câmera como origem do olhar e o vetor para a frente 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 oculares rápidos. Para isso, é melhor garantir testes frequentes de suas interações com base 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 'DefaultMixedRealityInputSimulationProfile' para fazer alterações nele.
    • Selecione a configuração "Modo de Simulação de Foco Ocular Padrão" apropriada.

    Simular olhos do MRTK

  2. Desabilitar o cursor de foco de cabeça padrão: em geral, recomendamos que você evite mostrar um cursor de foco com os olhos ou, se for absolutamente necessário, torná-lo muito sutil. Recomendamos que você oculte o cursor de foco de cabeça padrão anexado ao perfil de ponteiro de foco do MRTK por padrão.

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

Habilitando o foco com base nos olhos no provedor de foco

No HoloLens v1, o foco na cabeça foi usado como a técnica de apontamento principal. Embora o foco na cabeça ainda esteja disponível por meio do GazeProvider no MRTK, que está anexado à câmera, você pode usar o foco com os olhos 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 foco baseado em olhos e o foco 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 foco 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 acompanhamento 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. Verifique se você habilitou a funcionalidade 'Entrada de Foco' , conforme descrito acima na seção Uma observação sobre a funcionalidade 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.

Principais pontos a se pensar:

  • Examine as principais configurações na janela Configurações do Projeto .
    • Verifique se os provedores de plug-in estão definidos corretamente
  • Resolver 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

Não se esqueça de passar pela calibragem dos olhos 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 para cima e, em seguida, de volta para baixo. Uma notificação do sistema deve aparecer que o recebe como um novo usuário e solicita que você passe pela calibragem dos olhos. Como alternativa, você pode encontrar a calibragem ocular nas configurações do sistema: Configurações > Calibragem > do Sistema > Executar calibragem ocular.

Permissão de acompanhamento ocular

Quando você inicia 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 o prompt 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 permissão de acompanhamento ocular", poderá redefini-la 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 marcar nossos tutoriais e exemplos de acompanhamento ocular do MRTK demonstrando como usar a entrada de acompanhamento ocular e fornecendo convenientemente scripts que você pode reutilizar em seus projetos.


De volta ao "Acompanhamento ocular no MixedRealityToolkit"