A criação do Galaxy Explorer para HoloLens 2
Bem-vindo ao galaxy Explorer atualizado para HoloLens 2 aplicativo! Galaxy Explorer foi originalmente desenvolvido como um aplicativo de software livre para HoloLens (primeira geração) por meio do programa Share Your Idea, e é uma das primeiras experiências de realidade misturada que muitas pessoas tiveram. Agora estamos atualizando-o para as funcionalidades novas e interessantes do HoloLens 2.
Como um dos Microsoft Realidade Misturada Studios, geralmente desenvolvemos soluções de nível comercial e estamos desenvolvendo testes & em plataformas de destino durante todo o processo criativo e de desenvolvimento. Estamos embarcando neste projeto usando as estruturas e ferramentas (como o MRTK) à medida que elas se tornam disponíveis para nós e para a comunidade - e queremos trazê-lo junto para o passeio.
Assim como o galaxy Explorer original, nossa equipe estará aberta fornecendo o projeto no GitHub para garantir que a comunidade tenha acesso total. Também documentaremos nossa jornada aqui com total transparência sobre como portamos do MRTK v1 para o MRTK v2, aprimoramos a experiência com novos recursos disponíveis em HoloLens 2 e garantimos que o Galaxy Explorer permanecia uma experiência multiplataforma. Quer você esteja vendo o Galaxy Explorer no HoloLens (primeira geração), HoloLens 2, um headset Windows Mixed Reality ou em sua área de trabalho Windows 10, queremos ter certeza de que você está gostando da jornada tanto quanto nós!
Esta página se expandirá à medida que avançamos no projeto com links para artigos mais detalhados, código, artefatos de design e documentação adicional do MRTK para fornecer a você uma visão privilegiada do projeto.
Baixar o aplicativo da Microsoft Store no HoloLens 2
Se você tiver HoloLens 2 dispositivo, poderá baixar e instalar diretamente o aplicativo em seu dispositivo.
Pensando em interações
Como um estúdio criativo, ficamos em êxtase com o privilégio de portar galaxy Explorer para HoloLens 2. Sabíamos desde o início que queríamos que a experiência fosse uma celebração do novo dispositivo e demonstrar que Realidade Misturada empoderamento é limitado apenas pela imaginação.
HoloLens 2 permite que os usuários toquem, agarrem e movam hologramas de maneiras que se sintam naturais, eles respondem muito como objetos reais. Modelos de mão totalmente articulados são incríveis, pois permitem que os usuários façam o que parece natural. Por exemplo, todo mundo pega um copo um pouco diferente – e, em vez de impor uma maneira específica de fazer isso, HoloLens 2 permite que você faça do seu jeito.
Essa é uma alteração significativa das interfaces baseadas no Air Tap em dispositivos HoloLens de primeira geração. Em vez de interagir com hologramas à distância, os usuários agora podem ficar "próximos e pessoais". Ao portar experiências existentes para HoloLens 2 ou planejar novas, é importante se familiarizar com a manipulação direta de hologramas.
Manipulação direta versus as vastas distâncias no espaço
É uma experiência mágica alcançar, pegar um planeta e segurá-lo em sua mão. O desafio com essa abordagem é o tamanho do sistema solar – é enorme! O usuário precisaria andar pela sala para se aproximar de cada planeta para interagir com ele.
Para permitir que os usuários interajam com objetos mais distantes, o MRTK oferece raios manuais que disparam do centro da palma do usuário, atuando como uma extensão da mão. Um cursor em forma de rosca é anexado ao final do raio para indicar onde o raio se cruza com um objeto de destino. O objeto sobre o cursor pode receber comandos gestuais da mão.
Na versão original do Galaxy Explorer, o usuário teria como alvo um planeta com o cursor de foco e, em seguida, tocar no ar para chamá-lo mais perto. A maneira mais fácil de portar a experiência para HoloLens 2 é pegar esse comportamento e usar raios manuais para selecionar planetas. Enquanto isso estava funcional, nos deixou querendo mais.
De volta à estaca zero
Nos reunimos para ideia do que poderia ser construído com base nas interações existentes. O pensamento era: embora HoloLens 2 permita que os usuários interajam com hologramas de maneiras naturais e realistas, os hologramas são, por definição, não reais. Portanto, desde que uma interação seja plausível para o usuário, não importa se essa interação seria possível com um objeto real ou não – podemos torná-la possível.
Um conceito que exploramos foi baseado na telecinese – o poder de manipular objetos com a mente. Muitas vezes visto em filmes de super-heróis, uma pessoa alcançava com sua mente e chamava um objeto em sua mão aberta. Nós brincamos mais com a idéia e chegamos a um esboço rápido de como o conceito poderia funcionar.
O usuário apontaria o raio da mão para um planeta, o que forneceria comentários de destino. À medida que o usuário então estende sua mão aberta, o planeta seria puxado para o usuário por uma força mágica até que ele esteja perto o suficiente para agarrá-lo. Daí nosso nome para a interação: forçar a captura. Como o usuário afastaria o planeta com a mão aberta, ele voltaria novamente à sua órbita.
Forçar a criação de protótipos
Em seguida, criamos vários protótipos para testar o conceito: Como a interação se sente no geral? O objeto chamado deve parar na frente do usuário ou ficar com as mãos até ser colocado? O objeto chamado deve alterar o tamanho ou a escala ao ser chamado?
Implementando a captura de força no aplicativo
Quando tentamos pegar a força nos planetas, percebemos que tínhamos que mudar a escala do sistema solar. Descobriu-se que uma representação precisa e de tamanho médio do sistema solar é difícil para os usuários entenderem e navegarem - eles não sabiam para onde procurar. No entanto, uma representação de tamanho pequeno tornou alguns planetas muito pequenos para serem facilmente selecionados. Como resultado, o tamanho dos planetas e o espaçamento entre objetos solares foram projetados para se sentirem confortáveis dentro de uma sala de tamanho médio, mantendo a precisão relativa.
Durante os estágios posteriores do nosso sprint de desenvolvimento, tivemos a sorte de ter colegas especialistas em Realidade Misturada da MSFT internamente, então temos que trabalhar obtendo sua entrada como testadores especialistas e fazendo iterações rápidas sobre a interação de captura de força.
Em foto: Jenny Kam, Líder Sênior de Design, testando um trabalho em andamento do Galaxy Explorer.
Adicionando recursos para direcionamento
Como experimentamos em HoloLens 2, descobrimos que, embora as novas interações sejam naturais e intuitivas, os hologramas permanecem os mesmos: sem sensações de peso ou tátil. Como os hologramas não fornecem comentários naturais que os humanos estão acostumados a receber quando interagem com objetos, precisávamos criá-los.
Pensamos nos comentários visuais e de áudio que os usuários seriam fornecidos para os vários estágios de suas interações e, como o mecanismo de captura de força é central para interagir com o Galaxy Explorer, fizemos muitas iterações. O objetivo era encontrar o equilíbrio certo de comentários de áudio e visuais para cada estágio da interação: focar no objeto pretendido, chamá-lo para o usuário e, em seguida, liberá-lo. O que aprendemos é que mais comentários de áudio e visuais eram necessários para reforçar a interação do que estávamos acostumados com o HoloLens (primeira geração).
Adicionando acessibilidades para a captura de força
Depois que tivemos o mecanismo básico de captura de força com recursos de áudio e visuais, analisamos como tornar a seleção de planetas mais amigável. Havia duas coisas main a serem resolvidas: como o sistema solar é uma interface móvel 3D, há complexidade adicional para os usuários aprenderem a direcionar objetos de forma consistente. Isso foi agravado pelo fato de que o raio de mão é rápido em selecionar um objeto, fazendo com que os planetas se movam em direção ao usuário incrivelmente rapidamente.
Abordamos isso com uma solução de três pontas. O primeiro foi bastante intuitivo: reduza o processo de seleção para que os planetas se aproximem do usuário em um ritmo mais natural. Depois que a velocidade foi ajustada, tivemos que revisitar as funcionalidades de áudio e visual, adicionando comentários de áudio à medida que o planeta seguia em direção ao usuário.
A segunda parte da solução foi tornar tangível a visualização de toda a interação de captura de força. Visualizamos uma linha grossa que se move em direção ao objeto de destino quando o raio da mão se conecta a ele e, em seguida, traz o objeto de volta para o usuário - como um laço.
Por fim, otimizamos a escala do sistema solar para que os planetas fossem grandes o suficiente para que o olhar e o raio de mão do usuário os direcionassem.
Essas três melhorias permitiram que os usuários fizessem seleções precisas, chamando planetas para eles de forma intuitiva. No geral, o efeito da captura de força final é uma experiência mais imersiva e interativa no sistema solar.
Destaque em Júpiter
Criar os corpos solares da Via Láctea foi uma experiência humilde. Em particular, as características únicas de Júpiter fazem dele uma visão a ser observada. É o maior e mais colorido dos gigantes gasosos, e contém mais massa do que todos os outros planetas combinados. Seu tamanho e bandas hipnotizantes de turbulência e dinâmica de nuvem são prefeitos para uma atenção artística especial.
Geometria e malhas
Como um gigante gasoso, as conchas externas de Júpiter consistem em camadas gasosas. A combinação de sua velocidade de rotação rápida, troca de calor interna e forças coriolis cria camadas coloridas e fluxos que se formam em cinturões de nuvem e vórtices giratórios. Capturar essa beleza complexa foi fundamental na criação do nosso sistema solar.
Ficou imediatamente claro que o uso de técnicas de visualização, como simulações fluidas e texturas animadas com fluxos pré-compilados, estava fora de questão. O poder de computação necessário para simular isso em combinação com tudo o que está acontecendo simultaneamente teria impactos prejudiciais significativos no desempenho.
A próxima abordagem foi uma solução de "fumaça e espelho", consistindo na sobreposição de camadas de textura transparentes, cada uma delas abordando um aspecto específico do movimento atmosférico, compilado em uma composição de malhas rotativas.
Na imagem abaixo, você pode ver o shell interno à esquerda. Essa camada de tapete forneceu uma tela de fundo para a composição para se proteger contra quaisquer pequenas lacunas entre as várias camadas que compõem as nuvens. Devido à rotação lenta da camada, ela também serviu como um buffer visual entre as faixas móveis mais rápidas para ajudar a criar o Visual Unity em todas as camadas.
Depois de definir essa âncora para o modelo, as camadas de nuvem em movimento foram projetadas nas malhas intermediária e direita vistas abaixo.
Texturização
A textura existente foi separada em um atlas de textura de três partes: o terço superior hospeda uma camada imóvel de nuvens com lacunas para fornecer um efeito paralaxe, a seção intermediária contém os fluxos externos em movimento rápido e o terço inferior contém uma camada base interna de rotação lenta.
A característica Grande Mancha Vermelha também foi separada em suas várias partes móveis e inserida em uma área invisível de outra forma da textura. Esses componentes podem ser vistos como as manchas de tons vermelhos na seção intermediária da imagem abaixo.
Como cada banda tem uma direção e velocidade específicas, a textura foi aplicada a cada malha individualmente. As malhas, então, tinham um centro comum e um ponto dinâmico, o que possibilitou animar concentricamente toda a superfície.
Rotação e comportamento de textura
Depois que a composição visual de Júpiter foi definida, precisávamos garantir que as velocidades de rotação e órbita fossem calculadas e aplicadas adequadamente. Leva cerca de 9 horas para Júpiter completar uma rotação completa. Essa é uma questão de definição devido à sua Rotação Diferencial. Portanto, o fluxo equatorial foi definido como um "fluxo master", levando 3.600 quadros para uma rotação completa. Todas as outras camadas precisavam ter uma velocidade rotacional como um fator de 3600 para corresponder à sua posição inicial, permitindo, por exemplo, 600, 900, 1200, 1800 etc.
A Grande Mancha Vermelha
Os fluxos de rotação individual forneceram uma boa impressão visual, mas não tinham detalhes quando observados à queima-roupa.
A parte mais atraente foi a Grande Mancha Vermelha de Júpiter, então criamos um conjunto de malhas e texturas especificamente para mostizá-la. Usamos um mecanismo semelhante ao das bandas de Júpiter: um conjunto de partes giratórias foi composto um sobre o outro, ao mesmo tempo em que foi agrupado sob sua "camada master" para garantir que permanecessem em posição, independentemente da rapidez com que o resto se move.
Quando as malhas foram configuradas e no lugar, diferentes camadas do vórtice tempestuoso foram aplicadas e cada disco foi então animado individualmente, as peças do centro movendo-se mais rápido, com o resto progressivamente desacelerando à medida que se movia para fora.
A composição também tinha o mesmo pivô que todas as outras malhas, mantendo também sua inclinação de seu eixo y original (!) para permitir liberdade na animação da rotação. 3600 quadros é a taxa base, com cada camada tendo um fator disso como um período de rotação.
Acertando no Unity
Há algumas coisas importantes a ter em mente ao implementar isso no Unity.
O Unity é facilmente confundido ao lidar com grandes conjuntos de camadas transparentes. A solução era duplicar o material de textura para cada malha e aplicar valores crescentes da Fila de Renderização progressivamente do interior para o externo em 5 para cada material.
O resultado foi que o shell interno tinha um valor de Fila de Renderização de 3000 (padrão), o externo estático em vermelho posteriormente tinha um valor de 3005, as nuvens externas brancas rápidas tinham 3010. A Grande Mancha Vermelha (progredindo da camada interna para a externa), terminou com um valor de 3025 neste modelo.
Toques finais
As camadas texturizada de Júpiter foram configuradas no início, o que se mostrou insuficiente para implementação.
O sombreador Planet Standard original, e todas as suas variações, recebem suas informações de iluminação por meio de um script, o SunLightReceiver, que não é compatível com o sombreador Padrão do MRTK.
Simplesmente trocar os sombreadores não era uma solução porque o sombreador Planet Standard não dá suporte a mapas de textura com transparências. Editamos este sombreador para fazer a construção de Júpiter funcionar conforme o esperado.
Por fim, o Alpha Blends precisava ser configurado definindo o Source Blend como 10 e o Destination Blend como 5.
Você pode ver a renderização final de Júpiter em Galaxy Explorer!
Conheça a equipe
Nossa equipe de estúdio do Realidade Misturada é composta por designers, artistas 3D, especialistas em UX, desenvolvedores, um gerente de programa e um chefe de estúdio. Viemos de todo o mundo: Bélgica, Canadá, Alemanha, Israel, Japão, Reino Unido e Estados Unidos. Somos uma equipe multidisciplinar que vem de uma formação diversificada: jogos - tanto tradicionais quanto independentes, marketing digital, saúde e ciência.
Estamos felizes em criar o Galaxy Explorer para HoloLens 2 e atualizar as versões holoLens (primeira geração), VR e desktop.
Na parte superior da esquerda para a direita: Artemis Tsouflidou (Desenvolvedor), Angie Teickner (Visual Designer), David Janer (UX Designer), Laura Garrett (Entrega & Líder de Produção), Yasushi Zonno (Líder Criativo), Eline Ledent (Desenvolvedor) e Ben Turner (Sr. Developer). De baixo para a direita: Amit Rojtblat (Artista Técnico), Martin Wettig (Artista 3D) e Dirk Songuer (Studio Head). Não em destaque: Tim Gerken (Tech Lead) e Oscar Salandin (Visual Designer).
Informações adicionais
Realidade Misturada Studios
As equipes do Microsoft Realidade Misturada Studio - localizadas nas Américas, Europa e Asia-Pacific - são especialistas em design de experiência do usuário, computação holográfica, tecnologias AR/VR e desenvolvimento 3D, incluindo criação de ativos 3D, DirectX, Unity e Unreal. Ajudamos a prever futuros desejados, projetar, criar e fornecer soluções, permitindo que os clientes criem impacto mensurável em toda a organização. Os estúdios trabalham em estreita colaboração com mais de 22.000 profissionais do Microsoft Services para integração de aplicativos empresariais, adoção, operações e suporte.