Portar aplicativos VR para Windows Mixed Reality

Windows 10 inclui suporte para headsets imersivos e holográficos. Outros dispositivos como o Oculus Rift ou o HTC Vive têm dependências em bibliotecas que existem acima da API de plataforma do sistema operacional. Para levar os aplicativos VR do Win32 Unity existentes para Windows Mixed Reality, você precisa redirecionar o uso do SDK vr específico do fornecedor para as APIs vr e plug-ins do Unity.

A portabilidade de aplicativos VR para Windows Mixed Reality requer os seguintes processos de alto nível:

  1. Verifique se o computador está executando o Windows 10, versão 1709 (a Atualização do Criador de Outono) ou mais recente ou Windows 11.
  2. Atualize para a versão mais recente de seus elementos gráficos ou mecanismo de jogo. Os mecanismos de jogo devem dar suporte ao SDK Windows 10 versão 10.0.15063.0 ou superior.
  3. Atualizar middleware, plug-ins e componentes. Se o aplicativo contiver componentes, atualize para as versões mais recentes.
  4. Direcione a versão mais recente do Unity e o plug-in OpenXR. Remova dependências em SDKs duplicados. Dependendo de qual dispositivo seu conteúdo foi direcionado, remova ou compile condicionalmente esse SDK.
  5. Trabalhe com problemas de build específicos para seu aplicativo, seu mecanismo e suas dependências de componente.

Etapas comuns de portabilidade

Comece com as seguintes etapas comuns de portabilidade:

  1. Verifique se você tem o hardware de desenvolvimento certo. O guia de entusiasta de VR lista o hardware de desenvolvimento recomendado.

  2. Atualize para o último voo de Windows 10.

    1. Instalar o Atualização do Windows 10 para Criadores
    2. Junte-se ao Programa Windows Insider.
    3. Habilitar modo de desenvolvedor
    4. Alterne para os voos Windows Insider Fast por meio da Seção Configurações > Atualizar & Segurança.

    Observação

    A plataforma Windows Mixed Reality ainda está em desenvolvimento ativo. Junte-se ao Programa Windows Insider para acessar o voo Windows Insider Fast. Não obtenha builds de versão prévia do anel Ignorar à Frente do Insider, pois essas compilações não são as mais estáveis para o desenvolvimento de realidade misturada.

  3. Se você estiver usando Visual Studio, atualize para o build mais recente. Consulte Instalar as ferramentas em Visual Studio 2022. Instale a carga de trabalho de Desenvolvimento de Jogos com o Unity .

Etapas de portabilidade do Unity

Examine as etapas comuns para verificar se o ambiente de desenvolvimento está configurado corretamente. Para portar o conteúdo existente do Unity, siga estas etapas:

1. Atualizar para o build público mais recente do Unity com Windows suporte de MR

  1. Salve uma cópia do projeto antes de começar.
  2. Baixe o build público mais recente recomendado do Unity com suporte Windows Mixed Reality.
  3. Se o projeto foi criado em uma versão mais antiga do Unity, examine os Guias de Atualização do Unity.
  4. Siga as instruções para usar o atualizador de API automática do Unity.
  5. Veja se você precisa fazer outras alterações para executar seu projeto e trabalhar com erros e avisos.

2. Atualize seu middleware para as versões mais recentes

Com qualquer atualização do Unity, talvez seja necessário atualizar um ou mais pacotes de middleware dos quais seu jogo ou aplicativo depende. A atualização para o middleware mais recente aumenta a probabilidade de sucesso em todo o restante do processo de portabilidade.

3. Direcionar seu aplicativo para ser executado no Win32

De dentro do aplicativo Unity:

  1. Navegue até a>Configurações de build de arquivo.
  2. Selecione PC, Mac, Linux Autônomo.
  3. Defina a plataforma de destino como Windows.
  4. Defina a arquitetura como x86.
  5. Selecione Alternar Plataforma.

Observação

Se o aplicativo tiver dependências em serviços específicos do dispositivo, como fazer correspondências com o Steam, desabilite-os agora. Você pode conectar os serviços equivalentes Windows posteriormente.

4. Adicionar suporte para o plug-in Realidade Misturada OpenXR

  1. Escolha e instale uma versão do Unity e um plug-in XR. Embora o Unity 2020.3 LTS com o plug-in Realidade Misturada OpenXR seja melhor para Realidade Misturada desenvolvimento, você também pode criar aplicativos com outras configurações do Unity.

  2. Remova ou compile condicionalmente qualquer suporte de biblioteca específico a outro SDK vr. Esses ativos podem alterar configurações e propriedades em seu projeto de maneiras incompatíveis com Windows Mixed Reality.

    Por exemplo, se o projeto referenciar o SDK do SteamVR, atualize seu projeto para, em vez disso, usar APIs VR comuns do Unity, que dão suporte a Windows Mixed Reality e SteamVR.

  3. Em seu projeto do Unity, direcione o SDK Windows 10.

  4. Para cada cena, configure a câmera.

5. Configurar o hardware Windows Mixed Reality

  1. Revise as etapas na configuração de headset imersivo.
  2. Saiba como usar o simulador de Windows Mixed Reality e navegar pelo Windows Mixed Reality página inicial.

6. Use o estágio para colocar o conteúdo no chão

Você pode criar Realidade Misturada experiências em uma ampla variedade de escalas de experiência. Se você estiver portando uma experiência de escala sentada, verifique se o Unity está definido como o tipo de espaço de rastreamento estacionário :

XRDevice.SetTrackingSpaceType(TrackingSpaceType.Stationary);

Esse código define o sistema de coordenadas mundiais do Unity para acompanhar o quadro estacionário de referência. No modo de acompanhamento estacionário, o conteúdo que você coloca no editor logo na frente do local padrão da câmera (avançar é -Z) aparece na frente do usuário quando o aplicativo é iniciado. Para recenter a origem sentada do usuário, você pode chamar o XR do Unity. Método InputTracking.Recenter .

Se você estiver portando uma experiência em escala permanente ou uma experiência de escala de sala, você está colocando conteúdo em relação ao chão. Você explica sobre o piso do usuário usando o estágio espacial, que representa a origem definida no nível do chão do usuário. O estágio espacial pode incluir um limite de sala opcional que você configurou durante a primeira execução.

Para essas experiências, verifique se o Unity está definido como o tipo de espaço de rastreamento roomscale . RoomScale é o padrão, mas defina-o explicitamente e certifique-se de voltar true. Essa prática captura situações em que o usuário moveu o computador para longe da sala que calibrava.

if (XRDevice.SetTrackingSpaceType(TrackingSpaceType.RoomScale))
{
    // RoomScale mode was set successfully.  App can now assume that y=0 in Unity world coordinate represents the floor.
}
else
{
    // RoomScale mode was not set successfully.  App can't make assumptions about where the floor plane is.
}

Depois que seu aplicativo define com êxito o tipo de espaço de rastreamento roomscale, o conteúdo colocado no plano y=0 aparece no chão. A origem em (0, 0, 0) é o local específico no chão onde o usuário estava durante a instalação da sala, com -Z representando a direção para a frente que enfrentou durante a instalação.

No código de script, você pode chamar o TryGetGeometry método no UnityEngine.Experimental.XR.Boundary tipo para obter um polígono de limite, especificando um tipo de limite de TrackedArea. Se o usuário definiu um limite, você receberá de volta uma lista de vértices. Em seguida, você pode entregar uma experiência de escala de sala para o usuário, onde ele pode percorrer a cena criada.

O sistema renderiza automaticamente o limite quando o usuário se aproxima dele. Seu aplicativo não precisa usar esse polígono para renderizar o limite em si.

Exemplo de resultados:

Example of results

Para obter mais informações, consulte Sistemas de coordenadas no Unity.

7. Trabalhe com seu modelo de entrada

Cada jogo ou aplicativo direcionado a um HMD (exibição montada na cabeça) existente tem um conjunto de entradas que ele manipula, tipos de entradas que ele precisa para a experiência e APIs específicas que ele chama para obter essas entradas. É simples e simples aproveitar as entradas disponíveis no Windows Mixed Reality.

Consulte o guia de portabilidade de entrada do Unity para obter detalhes sobre como Windows Mixed Reality expõe a entrada e como a entrada é mapeada para o que seu aplicativo faz agora.

Importante

Se você usar controladores HP Reverb G2, consulte controladores HP Reverb G2 no Unity para obter mais instruções de mapeamento de entrada.

8. Testar e ajustar o desempenho

Windows Mixed Reality está disponível em muitos dispositivos, desde computadores de jogos high-end até computadores tradicionais de amplo mercado. Esses dispositivos têm orçamentos de computação e gráficos significativamente diferentes disponíveis para seu aplicativo.

Se você tiver portado seu aplicativo usando um computador premium com orçamentos significativos de computação e gráficos, certifique-se de testar e criar o perfil do aplicativo no hardware que representa o mercado de destino. Para obter mais informações, consulte Windows Mixed Reality diretrizes mínimas de compatibilidade de hardware do computador.

Tanto o Unity quanto o Visual Studio incluem perfis de desempenho e as diretrizes de publicação da Microsoft e da Intel sobre criação de perfil e otimização de desempenho.

Para obter uma ampla discussão sobre desempenho, consulte Entender o desempenho para Realidade Misturada. Para obter detalhes específicos sobre o Unity, consulte recomendações de desempenho para o Unity.

Mapeamento de entrada

Para obter informações e instruções de mapeamento de entrada, consulte o guia de portabilidade de entrada do Unity.

Importante

Se você usar controladores HP Reverb G2, consulte controladores HP Reverb G2 no Unity para obter mais instruções de mapeamento de entrada.

Confira também