Os designers de sites estão familiarizados com a ideia de design responsivo, criando um site para funcionar em diferentes dispositivos, como celulares, tablets e computadores, além de diferentes resoluções de tela e proporções de pixels. A WebVR apresenta novos desafios à ideia de design responsivo.
Podemos categorizar uma experiência da WebVR em duas métricas: o nível de imersão e o nível de entrada. Esses níveis são diferenciados por "graus de liberdade" (DOF, na sigla em inglês). 6 DOF se refere ao rastreamento de posição e orientação, 3 DOF apenas rastreia orientação, e 0 DOF não rastreia posição nem orientação.
Nível de imersão
- Sem RV: monitor ou tela de dispositivo móvel.
- RV estacionária: dispositivo com rastreamento de 3 DOF.
- RV sentada: rastreamento de 6 DOF, mas em uma área e intervalo de ângulos limitados.
- RV em escala de sala: rastreamento de 6 DOF em um ambiente do tamanho de uma sala.
Nível de entrada
- 0 DOF: a única entrada disponível é um clique ou toque. Esse método de entrada está vinculado à direção para o usuário. Às vezes, nos referimos a isso como um controlador de olhar.
- 3 DOF: um controlador que rastreia a orientação pode ser usado como um ponteiro a laser para especificar uma direção ou um local. A posição do controlador é estimada com base no ponto de vista do usuário. Isso inclui o controlador Daydream.
- 6 DOF: um controlador que rastreia a posição e a orientação dele. Isso pode ser usado para simular de perto uma mão em RV.
Assim, é possível ver que um único aplicativo oferece suporte para qualquer coisa, desde uma tela de dispositivo móvel que não seja de RV com apenas um clique para entrada até uma experiência de escala de sala completa com dois controles manuais totalmente rastreados.
Laboratório da WebVR
No laboratório da WebVR da PlayCanvas, implementamos algumas das interações principais que podem ser necessárias no seu app e as dimensionamos para os diferentes níveis de experiência.
Como as interações funcionam
A mecânica básica de como as interações funcionam no Laboratório da WebVR são as interseções de raios. O piso, o cômodo e todos os objetos com que se pode interagir são definidos em termos de um destes três primitivos de forma:
- Caixa delimitadora alinhada ao eixo (ou AABB): uma caixa que não é girada.
- Caixa delimitadora orientada: uma caixa que pode ser girada.
- Esfera: um raio em torno de um ponto no espaço.
Para ver se uma ação é possível, disparamos um raio no mundo e testamos se ele cruza com a forma dos objetos no mundo. Diferentes tipos de interação são possíveis, dependendo da origem do raio (a câmera ou o controlador) e do comprimento dele (manipulações de perto ou apontando para uma distância).
Ações simples
Primeiro, definimos algumas ações simples e como elas são usadas com controladores diferentes.
Destacar
A destaque de um local ou objeto é realizada olhando para ele (com um controlador de olhar) ou apontando para ele (com um controlador manual). Isso pode acontecer quando nenhum botão é pressionado ou apenas enquanto um botão está pressionado.
Clique
Para clicar em um local ou objeto, primeiro destaque e depois pressione ou solte um botão. Com um controlador de olhar, você clica em um objeto e aperta o botão ou a tela. Com um controlador Mão, o método é apontar para um objeto e clicar em um botão.
Interações principais
Por meio do destaque e dos cliques, implementamos algumas interações essenciais no Laboratório da WebVR.
Teletransporte
Ao criar um ambiente virtual para um usuário explorar, é provável que ele seja maior do que a pequena área que um usuário pode ver sem se mover. O Laboratório da WebVR, por exemplo, tem três seções. O cômodo principal, o andar no mezanino e um cômodo lateral para o player de música de alta fidelidade.
Mover a janela de visualização do usuário pelo mundo geralmente causa desconforto. No laboratório da WebVR, permitimos que o usuário destaque um local e clique para teletransportar instantaneamente. O ponto de vista do usuário nunca se move. Por isso, apesar da sensação contra a natureza de se mover instantaneamente, o usuário pode se mover por um espaço grande sem desconforto.
No caso de um controlador de mão, exigimos que o usuário aperte um botão e mantenha pressionado para ativar o alvo de teletransporte. Isso mantém a visão do usuário organizada enquanto ele olha ao redor.
Mover o ponto de vista do usuário
Às vezes, é absolutamente necessário mudar o ponto de vista. Por exemplo, ao usar RV estacionária ou sentada, é possível acabar de frente para uma parede sem capacidade de se virar no mundo físico. Assim, permitimos que o usuário gire a câmera usando o controle. No laboratório da WebVR, o teclado esquerdo ou direito do controlador do Daydream gira a câmera.
Para evitar desconforto ao mover a câmera dessa forma, reduzimos a quantidade de visão periférica aplicando uma visualização restrita na câmera. Isso é baseado no trabalho da Ubisoft (link em inglês) e descobrimos que focar a visualização apenas no centro da tela reduz o desconforto.
Ativar
Ativar é o equivalente em RV de clicar em um botão em uma página da web. No laboratório da WebVR, levamos isso literalmente e fornecemos um botão simples que pode ser ativado.
Para controladores 0 DOF e 3 DOF, a ativação é um destaque e um clique. Para um controle 6DOF, podemos atualizar a experiência para permitir que você "pressione" um botão, verificando diretamente se ele está dentro do botão.
Grab
O Laboratório da WebVR contém vários itens "graváveis". Com esse comportamento, quando o objeto é ativado, ele pode ser capturado e movido. Há dois comportamentos óbvios e diferentes, dependendo do nível de entrada a que você quer oferecer suporte.
Para seis controladores de DOF que seguram um botão de entrada, o item que pode ser capturado é conectado ao controlador. Depois, ela pode ser movida e posicionada com controle refinado. Liberar o botão ativará uma ação de combinação ou soltar com o item.
No caso de controles menos manobráveis, um clique seleciona o item e o anexa à janela de visualização do usuário. Geralmente, manter uma seção do item visível no "terço inferior" da tela. Um segundo clique vai soltar ou combinar o item.
Combinar
Combine é uma ação que ocorre quando você "usa" um item com outro. Isso abrange uma grande variedade de casos de uso. No laboratório da WebVR, usamos isso para reproduzir gravações em alta fidelidade. Quando um item é capturado, é possível combinar esse item com outro. Todos os tipos de controles destacam o item de destino durante a ação de pegar outro item e soltar a captura vai combinar os dois itens.
Soltar / restaurar
O descarte de um item acontece quando você clica enquanto segura um item capturado sem outro item destacado.
No Laboratório da WebVR, mantivemos os requisitos de desempenho baixos porque não usamos uma simulação física em nenhum item. Isso significa que, em vez de jogar um item no chão, simplesmente permitimos que ele flutue na posição em que foi solto. Depois que um item é descartado, se ele não for ativado em um determinado período, ele será "restaurado" no local original. Essa funcionalidade de restauração permite que um usuário com um baixo grau de entrada (0 DOF ou 3 DOF) opere em muitos itens e mantenha uma área de trabalho utilizável. Os itens mais antigos serão apagados automaticamente.
Com uma entrada 6 DOF, é mais fácil tirar itens do caminho. Com um atraso na operação de restauração, um usuário de 6 DOF pode mergulhar na movimentação de itens, mas ainda facilitar a autolimpeza da área.
Resumo
O Laboratório da WebVR é um projeto vivo da equipe da PlayCanvas. Isso significa que ele está constantemente em desenvolvimento e experiências são adicionadas e atualizadas à medida que pesquisamos mais para criar aplicativos da WebVR.
Ele dimensiona de uma experiência móvel no estilo "janela mágica" para uma área de recreação interativa do computador. Começamos a definir um conjunto de interações principais que os usuários podem usar nos próprios projetos. Esperamos que o Laboratório da WebVR seja uma boa experiência de aprendizado para quem deseja criar mundos em 3D com a WebVR.
Se você tiver uma conta da PlayCanvas, poderá acessar diretamente o projeto do laboratório WebVR para saber mais.