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.
- 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.
- 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.
- 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':
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:
- Abra o projeto compilado do Visual Studio e abra o 'Package.appxmanifest' em sua solução.
- 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.
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' .
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'
- Para Windows Mixed Reality herdado
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.
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.
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.
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.