Módulo Lunar

Módulo lunar

Nota

Este artigo discute uma amostra exploratória 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 vão evoluir à medida que fazemos novas descobertas.

Nota

Esta aplicação de amostra foi projetada para HoloLens 1ª geração.

O Módulo Lunar é uma aplicação de amostra de código aberto do Mixed Reality Design Labs da Microsoft. Aprenda a estender os gestos base de HoloLens com a entrada de rastreio em duas mãos e o controlador Xbox, crie objetos que sejam reativos ao mapeamento de superfície e à descoberta de planos e implemente sistemas de menu simples. Todos os componentes do projeto estão disponíveis para uso nas suas próprias experiências de aplicações de realidade mista.

Vídeo de demonstração

Gravado com HoloLens 2 usando a captura de realidade mista

Repensar experiências clássicas para Windows Mixed Reality

No alto da atmosfera, um pequeno navio que lembra o módulo Apollo metodicamente pesquisa terreno irregular abaixo. O nosso piloto destemido deteta 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 desembarque lunar para um local plano de terreno lunar. Qualquer um nascido na década de 1970 provavelmente passou horas numa arcada com os olhos colados a este navio vetor a cair do céu. Enquanto um jogador navega a sua nave em direção a uma área de aterragem, o terreno escala para revelar progressivamente mais detalhes. O sucesso significa aterrar dentro do limiar seguro da velocidade horizontal e vertical. São atribuídos pontos pelo tempo de aterragem e combustível remanescente, com um multiplicador baseado no tamanho da área de aterragem.

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

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

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

Uma criança andando por uma arcada ficará naturalmente intrigada com a mais nova e brilhante máquina. Mas Lunar Lander apresenta um novo mecanismo 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 normal não pode fornecer. Acontece também ser um componente comum aos cockpits modernos da aviação. Atari queria que a Lunar Lander imergisse 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 do feedback sensorial de fazer ações repetitivas. Neste caso, a ação repetitiva de ajustar a alavanca do acelerador e a rotação, que os nossos olhos vêem e os nossos ouvidos ouvem, ajuda a ligar o jogador ao ato de aterrar uma nave na superfície da Lua. Este conceito pode estar ligado ao conceito psicológico de "fluxo". Quando um utilizador é totalmente absorvido numa tarefa que tem a mistura certa de desafio e recompensa, ou simplificadamente, está "na zona".

Indiscutivelmente, o tipo de imersão mais proeminente na realidade mista é a imersão espacial. O objetivo da realidade mista é enganarmo-nos a nós próprios a acreditar que estes objetos digitais existem no mundo real. Estamos sintetizando hologramas no nosso meio envolvente, espacialmente imersos em ambientes e experiências inteiras. Isto não significa que não podemos ainda empregar outros tipos de imersão nas nossas experiências, tal como atari fez com imersão táctil em Lunar Lander.

Desenho com imersão

Como podemos aplicar imersão táctil a uma sequela atualizada e volumosa do clássico atari? Antes de abordar o esquema de entrada, a construção de jogos para o espaço tridimensional precisa de ser abordada.

Visualização do mapeamento de superfície em HoloLens
Visualização do mapeamento espacial em HoloLens

Aproveitando o ambiente de um utilizador, temos efetivamente opções infinitas 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 aterragem de dificuldades variadas no seu ambiente.

Exigir que o utilizador aprenda o esquema de entrada, controle a nave e tenha um pequeno alvo para aterrar é pedir muito. Uma experiência de jogo de sucesso apresenta a mistura certa de desafio e recompensa. O utilizador pode escolher um nível de dificuldade, com o modo mais fácil simplesmente exigindo que o utilizador aterre com sucesso numa área definida pelo utilizador numa superfície digitalizada pelo HoloLens. Uma vez que um utilizador fica com o jeito do jogo, pode então aumentar a dificuldade que entender.

Adicionando entrada para gestos de mão

HoloLens entrada base 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 apenas expor estes dois gestos, HoloLens como dispositivo pode rastrear duas mãos ao mesmo tempo. A nossa ode ao Lunar Lander é uma aplicação imersiva, o que significa que podemos estender o conjunto base de gestos para alavancar duas mãos e adicionar os nossos próprios meios deliciosamente tácteis para a navegação de módulos lunares.

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

Toque e arraste gesto para rodar lander em todos os três eixos
Toque e arraste gesto para rodar lander em todos os três eixos

Impulso

A alavanca da máquina de arcada original mapeada para uma escala de valores, quanto mais alta a alavanca foi movida, mais impulso foi aplicado à nave. Uma nuance importante a assinalar aqui é como o utilizador pode tirar a mão do controlo e manter um valor desejado. Podemos efetivamente usar o comportamento de tap-and-drag para obter o mesmo resultado. O valor de impulso começa em zero. O utilizador toca e arrasta-se para aumentar o valor. Nessa altura, podiam deixar-se ir para mantê-lo. Qualquer mudança de valor de gesto de sapateado seria o delta do valor original.

Rotação

Isto é um pouco mais complicado. Ter botões holográficos de "rodar" para tocar faz com que tenha uma experiência terrível. Não há um controlo físico para alavancar, então o comportamento deve vir da manipulação de um objeto que representa o lander, ou com o próprio lander. Criamos um método que usa sapateado e arrasto, que permite ao utilizador "empurrá-lo e puxar" eficazmente na direção que pretende enfrentar. 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, para cima - para <> baixo, para a frente - < de volta aos espaços gira a nave em > conformidade.

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

Adicionar entrada para controladores de jogo

Embora os gestos com as mãos no HoloLens forneçam um novo método de controlo de grãos finos, há ainda uma certa falta de feedback táctil 'verdadeiro' que obtém dos controlos analógicos. Ligar um controlador de jogos Xbox permite-nos trazer de volta esta sensação de fisicalidade, aproveitando os sticks de controlo para manter o controlo de grãos finos.

Existem várias formas de aplicar o esquema de controlo relativamente simples ao comando Xbox. Já que estamos a tentar ficar o mais perto possível da arcada original, o thrust mapesa melhor para o botão do gatilho. Estes botões são controlos analógicos, o que significa que têm mais do que simples estados dentro e fora, eles realmente respondem ao grau de pressão sobre eles. Isto dá-nos uma construção semelhante à alavanca de impulso. Ao contrário do jogo original e do gesto da 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 arcada original.

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

Os polegares duplos prestam-se naturalmente ao controlo da rotação da nave. Infelizmente, há três eixos em que a nave pode rodar e dois polegares que ambos suportam dois eixos. Esta incompatibilidade significa que um dos polegares controla um eixo; ou há sobreposição de eixos para os polegares. A solução anterior acabou por se sentir "quebrada" uma vez que os polegares 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. A amostra final usa bocejo e rolo (eixos Y e X) para o polegar esquerdo, e arremesso e rolo (eixos Z e X) para o polegar direito. Isto parece ser o mais natural como o rolo parece combinar-se de forma independente com o bocejo e o pitch. Como nota lateral, a utilização de ambos os polegares para rolo também acontece para duplicar o valor de rotação; É muito divertido ter o lander fazer loops.

Esta aplicação de amostras 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 de Windows Mixed Reality. Enquanto o Lunar Lander pode estar perto dos 40 anos de idade, os conceitos expostos com aquele pequeno octogono-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 amostra do Módulo Lunar nos Laboratórios de Design de Realidade Mista GitHub.

Sobre o autor

Foto de Addison Linville Addison Linville
UX Designer @Microsoft

Ver também