Módulo Lunar

Módulo lunar

Nota

Este artigo aborda um exemplo exploratório que criámos no Mixed Reality Design Labs, um local onde partilhamos as nossas aprendizagens e sugestões para o desenvolvimento de aplicações de realidade mista. Os nossos artigos e código relacionados com o design irão evoluir à medida que fazemos novas descobertas.

Nota

Esta aplicação de exemplo foi concebida para a 1.ª geração do HoloLens.

O Módulo Lunar é uma aplicação de exemplo open source da Microsoft Mixed Reality Design Labs. Saiba como expandir os gestos base do HoloLens com o controlo em duas mãos e a entrada do comando Xbox, criar objetos reativos ao mapeamento e localização do plano da superfície e implementar sistemas de menu simples. Todos os componentes do projeto estão disponíveis para utilização nas suas próprias experiências de aplicações de realidade mista.

Vídeo de demonstração

Gravado com HoloLens 2 através da Captura de Mixed Reality

Repensar experiências clássicas para Windows Mixed Reality

No alto da atmosfera, um pequeno navio que lembra o módulo Apollo pesquisa metodicamente terreno irregular abaixo. O nosso piloto destemido vê uma área de aterragem adequada. A descida é árdua, mas felizmente, esta viagem já foi feita muitas vezes antes...

Interface original do Lunar Lander de 1979 da Atari
Interface original do Lunar Lander de 1979 da Atari

Lunar Lander é um clássico de arcade onde os jogadores tentam pilotar um lander lunar para um local plano de terreno lunar. Qualquer um nascido nos anos 70 provavelmente passou horas numa arcada com os olhos colados a este navio vetor caindo do céu. À medida que um jogador navega o seu navio em direção a uma área de aterragem, o terreno escala para revelar progressivamente mais detalhes. Êxito significa aterrar dentro do limiar seguro de velocidade horizontal e vertical. Os pontos são atribuídos pelo tempo de aterragem e combustível restante, com um multiplicador baseado no tamanho da área de destino.

Além do jogo, a era arcade dos jogos trouxe constante inovação de esquemas de controlo. Desde as configurações mais simples de quatro vias e botões (vistos no icónico Pac-Man) aos esquemas altamente específicos e complicados vistos no final dos anos 90 e 00 (como os dos simuladores de golfe e atiradores ferroviários). O esquema de entrada usado na máquina lunar Lander é intrigante por duas razões: conter o apelo e a imersão.

Consola de arcada lunar de Atari
Consola de arcada Lunar Lander da Atari

Porque é que a Atari e tantas outras empresas de jogos decidiram repensar os contributos?

Uma criança que anda por uma arcada ficará naturalmente intrigada com a máquina mais recente e vistosa. Mas Lunar Lander apresenta um novo mecânico de entrada que se destacou da multidão.

Lunar Lander usa dois botões para rodar a nave para a esquerda e direita e uma alavanca de impulso para controlar a quantidade de impulso que a nave produz. Esta alavanca dá aos utilizadores um certo nível de finesse que um joystick regular não pode fornecer. Também é um componente comum aos cockpits modernos da aviação. Atari queria que Lunar Lander envolvesse o utilizador na sensação de que estavam, de facto, a pilotar um módulo lunar. Este conceito é conhecido como imersão táctil.

A imersão táctil é a experiência dos comentários sensoriais da realização de ações repetitivas. Neste caso, a ação repetitiva de ajustar a alavanca de limitação e a rotação, que os nossos olhos vêem e os nossos ouvidos ouvem, ajuda a ligar o jogador ao ato de aterrar um navio na superfície da Lua. Este conceito pode estar associado ao conceito psicológico de "fluxo". Quando um utilizador é totalmente absorvido numa tarefa que tem a mistura certa de desafio e recompensa, ou simplificada, está "na zona".

Indiscutivelmente, o tipo mais proeminente de imersão na realidade mista é a imersão espacial. O objectivo da realidade mista é enganarmo-nos a acreditar que estes objectos digitais existem no mundo real. Estamos a sintetizar hologramas ao nosso redor, espacialmente imersos em ambientes e experiências inteiros. Isto não significa que não podemos continuar a empregar outros tipos de imersão nas nossas experiências, tal como o Atari fez com a imersão táctil no Lunar Lander.

Estruturar com imersão

Como podemos aplicar imersão táctil a uma sequela volumetrica atualizada para o clássico do Atari? Antes de enfrentar o esquema de entrada, a construção do jogo para espaço tridimensional tem de ser abordada.

Visualizar o mapeamento de superfície no HoloLens
Visualizar o mapeamento espacial no HoloLens

Ao tirar partido do ambiente de um utilizador, temos efetivamente infinitas opções de terreno para aterrar o nosso módulo lunar. Para tornar o jogo mais parecido com o título original, um utilizador poderia potencialmente manipular e colocar plataformas de destino de diferentes dificuldades no seu ambiente.

Exigir que o utilizador aprenda o esquema de entrada, controle o navio e tenha um pequeno alvo para aterrar é muito a pedir. Uma experiência de jogo de sucesso apresenta a combinação certa de desafio e recompensa. O utilizador pode escolher um nível de dificuldade, com o modo mais fácil a exigir simplesmente que o utilizador aceda com êxito a uma área definida pelo utilizador numa superfície analisada pelo HoloLens. Assim que um utilizador apanha o jeito do jogo, pode aumentar a dificuldade que entender.

Adicionar entradas para gestos de mão

A entrada base do HoloLens tem apenas dois gestos: Air Tap e Bloom. Os utilizadores não precisam de se lembrar de nuances contextuais ou de uma lista de gestos específicos que tornam a interface da plataforma versátil e fácil de aprender. Embora o sistema possa expor apenas estes dois gestos, o HoloLens como um dispositivo pode controlar duas mãos ao mesmo tempo. A nossa ode ao Lunar Lander é uma [aplicação imersiva, o que significa que podemos expandir o conjunto base de gestos para tirar partido de duas mãos e adicionar os nossos próprios meios deliciosamente táteis para a navegação do módulo lunar.

Olhando para o esquema de controlo original, precisávamos de resolver o impulso e a rotação. A limitação é a rotação no novo contexto adiciona um eixo adicional (tecnicamente dois, mas o eixo Y é menos importante para a aterragem). Os dois movimentos distintos de navios prestam-se naturalmente para serem mapeados a cada mão:

Toque e arraste o gesto para rodar o lander nos três eixos
Toque e arraste o gesto para rodar o lander nos três eixos

Impulso

A alavanca na máquina de arcada original mapeada a uma escala de valores, quanto maior a alavanca foi movida, mais impulso foi aplicado ao navio. Uma nuance importante a destacar aqui é como o utilizador pode tirar a mão do controlo e manter um valor desejado. Podemos utilizar eficazmente o comportamento de toque e arrastar para obter o mesmo resultado. O valor de impulso começa em zero. O utilizador toca e arrasta para aumentar o valor. Nessa altura, podiam deixar de o fazer. Qualquer alteração do valor do gesto de toque e arrastar seria o delta do valor original.

Rotação

Isto é um pouco mais complicado. Ter botões holográficos "rodar" para tocar torna uma experiência terrível. Não existe um controlo físico para tirar partido, por isso o comportamento tem de ser da manipulação de um objeto que representa o lander ou com o próprio lander. Criámos um método com tap-and-drag, que permite a um utilizador "empurrá-lo e puxá-lo" na direção que pretende que enfrente. Sempre que um utilizador toca e segura, o ponto no espaço onde o gesto foi iniciado torna-se a origem da rotação. Arrastar da origem converte o delta da tradução da mão (X,Y,Z) e aplica-o ao delta dos valores de rotação do lander. Ou, mais simplesmente, arrastar para a esquerda <-> direita, cima <-> baixo, para a frente <-> para trás em espaços roda o navio em conformidade.

Uma vez que o HoloLens pode controlar duas mãos, a rotação pode ser atribuída à mão direita enquanto o impulso é controlado pela esquerda. Finesse é o fator determinante para o sucesso neste jogo. A sensação destas interações é a prioridade máxima absoluta. Especialmente no contexto da imersão táctil. Uma nave que reaja muito rapidamente seria difícil de conduzir, enquanto uma demasiado lenta exigiria que o utilizador "empurrasse e puxasse" na nave por um período de tempo desajeitadamente longo.

Adicionar entradas para controladores de jogos

Enquanto os gestos de mão no HoloLens fornecem um novo método de controlo detalhado, ainda há uma certa falta de feedback táctil "verdadeiro" que obtém dos controlos analógicos. Ligar um comando de jogo da Xbox permite-nos trazer de volta esta sensação de fisicalidade enquanto tira partido das varas de controlo para manter o controlo detalhado.

Existem várias formas de aplicar o esquema de controlo relativamente simples ao comando Xbox. Uma vez que estamos a tentar ficar o mais perto possível da arcada original, o Thrust mapeia melhor para o botão de acionador. Estes botões são controlos analógicos, o que significa que têm mais do que estados simples dentro e fora , na verdade respondem ao grau de pressão que lhes é colocado. Isto dá-nos uma construção semelhante à alavanca de impulso. Ao contrário do jogo original e do gesto de mão, este controlo cortará o impulso da nave assim que um utilizador deixar de pressionar o gatilho. Ainda dá ao utilizador o mesmo grau de delicadeza que o jogo de arcade original.

O manípulo esquerdo está mapeado para Yaw and Roll, o manípulo direito está mapeado para Pitch and Roll
O manípulo esquerdo é mapeado para bocejar e rolar; o manípulo direito está mapeado para lançar e rolar

Os manípulos duplos prestam-se naturalmente ao controlo da rotação do navio. Infelizmente, existem três eixos nos quais o navio pode rodar e dois thumbsticks que suportam dois eixos. Este erro de correspondência significa que um thumbstick controla um eixo; ou há sobreposição de eixos para os thumbsticks. A antiga solução acabou por se sentir "quebrada" uma vez que os thumbsticks misturam inerentemente os seus valores locais de X e Y. Esta última solução exigiu alguns testes para descobrir quais os eixos redundantes que se sentem mais naturais. O exemplo final utiliza bocejos e rolos (eixos Y e X) para o thumbstick esquerdo e lança e lança (eixos Z e X) para o thumbstick direito. Isto pareceu-me o mais natural como roll parece emparelhar-se bem independentemente com yaw e pitch. Como nota lateral, a utilização de ambos os thumbsticks para roll também acontece para duplicar o valor de rotação; É muito divertido ter o lander fazer loops.

Esta aplicação de exemplo demonstra como o reconhecimento espacial e a imersão táctil podem alterar significativamente uma experiência graças às modalidades de entrada extensíveis do Windows Mixed Reality. Embora Lunar Lander possa ter quase 40 anos de idade, os conceitos expostos com aquele pequeno octógono com pernas viverão para sempre. Ao imaginar o futuro, por que não olhar para o passado?

Detalhes técnicos

Pode encontrar scripts e pré-fabricados para a aplicação de exemplo Módulo Lunar no GitHub dos Laboratórios de Estrutura do Mixed Reality.

Acerca do autor

Imagem de Addison Linville Addison Linville
UX Designer @Microsoft

Ver também