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 de bibliotecas que existem acima da API de plataforma do sistema operacional. Para levar os aplicativos vr existentes do Win32 Unity para Windows Mixed Reality, você precisa redirecionar o uso do SDK vr específico do fornecedor para as APIs e plug-ins vr entre fornecedores 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 do mecanismo de gráficos ou jogos. Os mecanismos de jogos 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 a versão mais recente do Windows 10.

    1. Instalar o Atualização do Windows 10 para Criadores
    2. Ingresse no Programa Windows Insider.
    3. Habilitar o modo de desenvolvedor
    4. Alterne para os voos rápidos do Windows Insider por meio da Seção Configurações > Atualização & Segurança.

    Observação

    A plataforma Windows Mixed Reality ainda está em desenvolvimento ativo. Ingresse no Programa Windows Insider para acessar o voo rápido do Windows Insider. Não obtenha builds de visualização do anel Insider Skip Ahead, pois essas compilações não são as mais estáveis para o desenvolvimento de realidade misturada.

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

Etapas de portabilidade do Unity

Examine as etapas comuns para garantir que seu ambiente de desenvolvimento esteja 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 suporte do Windows 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 automático de API do Unity.
  5. Veja se você precisa fazer outras alterações para executar o projeto e resolver 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é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ência com o Steam, desabilite-os agora. Você pode conectar os serviços equivalentes do Windows mais tarde.

4. Adicionar suporte ao 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 para outro SDK de 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 fizer referência ao SDK do SteamVR, atualize seu projeto para usar as APIs VR comuns do Unity, que dão suporte a Windows Mixed Reality e Ao SteamVR.

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

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

5. Configurar seu hardware de Windows Mixed Reality

  1. Examine as etapas na configuração do headset imersivo.
  2. Saiba como Usar o simulador de Windows Mixed Reality e Navegar na página inicial do Windows Mixed Reality.

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

Você pode criar experiências Realidade Misturada 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 de referência estacionário. 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 experiência em escala de sala, você está colocando conteúdo em relação ao chão. Você explica o piso do usuário usando o estágio espacial, que representa a origem de nível de piso definida pelo 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 acompanhamento roomscale . RoomScale é o padrão, mas defina-o explicitamente e certifique-se de que você receba de volta true. Essa prática captura situações em que o usuário moveu o computador para longe da sala calibrada.

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 acompanhamento 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 de avanço 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 fornecer uma experiência de escala de sala para o usuário, onde ele pode percorrer a cena que você cria.

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:

Exemplo de resultados

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

7. Trabalhar com seu modelo de entrada

Cada jogo ou aplicativo direcionado a um HMD (head-mounted display) existente tem um conjunto de entradas que ele manipula, tipos de entradas de que 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 mercado amplo. 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.

O Unity e 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 discussão abrangente sobre desempenho, consulte Entender o desempenho de 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 Guia de portabilidade de entrada para 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