Realidade Aumentada Estilo Pokémon GO com Vuforia

Graças ao enorme sucesso de Porém GO, realidade aumentada (RA) está ganhando muita atenção no meio de desenvolvimento móvel. A idéia da realidade aumentada não é nova, mas somente agora a tecnologia está finalmente chegando perto da maturidade de viabilidade comercial. Mas o que é realidade aumentada exatamente?
Este é um conceito muito amplo que pode assumir várias formas diferentes. A idéia pode ser aplicada para entretenimento, ciências, forças armadas, educação, você decide. O que essas aplicações têm em comum, todavia, é a conexão em tempo real entre o mundo físico e o digital.
Uma visão ao vivo direta ou indireta de um ambiente físico, do mundo real, cujos elementos são aumentados (ou suplementados) por estímulos sensoriais gerados por computador como som, vídeo, gráficos ou dados de GPS. — Wikipedia
Concretamente, RA geralmente é apresentada em experiências interativas que sobrepõe imagens da câmera com objetos 2D ou 3D, informadas por algum dado sensorial.
Entretanto, criar uma experiência de realidade aumentada cativante do zero pode ser um grande desafio. Felizmente, existem algumas soluções disponíveis que podem facilitar esse trabalho. Uma das ferramentas de realidade aumentada mais sólidas é a Vuforia, uma biblioteca de RA compatível com Android, iOS, UWP, e algumas marcas de óculos inteligentes.
Nesse tutorial, nós vamos explorar realidade aumentada usando a Vuforia. Vamos explorar as funcionalidades, possibilidades e desafios da Vuforia, nós também veremos como o SDK funciona e suas principais funções. Nós não iremos explorar nenhum código nesse tutorial — tutoriais futuros dessa série irão aprofundar-se nessa parte com guias passo-a-passo demonstrando as principais funcionalidades da biblioteca.
Originalmente desenvolvida pela Qualcomm e recentemente comprada pela PTC, Vuforia esta na sua sexta versão. Seu SDK está constantemente evoluindo é é compatível com Android, iOS, UWP, e Unity. Infelizmente, Vuforia não é open source, mas seu preço é razoável, e não há custo inicial para o desenvolvimento ou para utilização com fins educacionais. Você pode criar praticamente qualquer tipo de experiência de RA na maioria das plataformas móveis populares usando a Vuforia.
Advertisement
Vuforia usa as imagens da câmera do aparelho combinadas com os dados do acelerômetro e do giroscópio para examinar o mundo. Vuforia usa visão computacional para entender o que ela "vê" pela câmera para criar um modelo do ambiente. Depois de processar os dados, o sistema pode grosseiramente se localizar no mundo sabendo suas coordenadas: onde é alto, baixo, esquerda, direita, e assim por diante. O que fazer com isso depende dos seus objetivos de desenvolvimento.
Existem múltiplas possibilidades:
  • Usando coordenadas globais: Qualquer tipo de objeto pode ser exibido através de uma referência arbitrária, ignorando obstáculos reais mas considerando a localização global obtida. O objeto pode estar fora de visão e continuar a "existir" na mesma posição. Este é um sistema similar ao usado pelo Pokémon GO.
  • Reconhecendo alvos: Vuforia pode procurar por imagens específicas como "alvos". VuMarks, por exemplo, um estilo de imagem QR code é altamente reconhecível pelo sistema, pode ser utilizado como pontos de âncora ou referência para o objeto projetado para o mundo. Uma revista pode ser "expandida" com este recurso, com suas páginas abrindo interações ricas como vídeos, áudio, e outros.
  • Reconhecendo objetos simples: objetos simples como caixas e cilindros podem ser reconhecidos utilizados como pontos de ancoragem. Este método é útil para reconhecer pacotes e fazê-los interativos.
  • Reconhecendo objetos complexos: Vuforia pode também procurar por objetos complexos, como brinquedos, parte de computadores, aparelhos, e outros. Estes objetos são previamente escaneados, em conformidade com requerimentos específicos, e depois podem ser reconhecidos pelo sistema. Essa funcionalidade pode ser usada, por exemplo, para tornar brinquedos em criaturas vivas ou criar assistência interativa para mecânicos ou atendentes.
  • Procurando por palavras: Palavras em inglês também podem ser compreendidas pela Vuforia. O sistema pode procurar por palavras específicas e disparar alguma interação com elas. Isto pode ser útil para ferramentas de aprendizagem para crianças ou para traduções de idiomas.
  • Reconhecendo terreno: uma das funcionalidades mais poderosas disponíveis na Vuforia é a habilidade de reconhecer o mundo como ele é. Vuforia permite ao usuário escanear seus arredores e pode fazer algum processamento hardcore para interpretar o mundo, criando uma visão computacional 3D do mundo real e seus objetos. Imagine um jogo parecido com o Pokémon GO onde Pokémons podem esconder-se atrás de objetos reais. Isso não seria impressionante?
Vuforia é compatível com múltiplos sistemas. Seus kits de desenvolvimento de software (SDKs) estão disponíveis para Android, iOS, UWP, e Unity. Uma vez que você baixe e instale o SDK, você precisará criar uma conta de desenvolvedor e criar uma chave para o seu aplicativo antes que você possa começar a desenvolver.
Mesmo que a Vuforia seja compatível com vários sistemas, a maneira mais simples de criar experiências de RA cativante usando seus SDKs é definitivamente utilizando Unity. Não me entenda mal, você acessar praticamente tudo que a Vuforia oferece quando desenvolvendo diretamente para Android e iOS. Entretanto, o processo é muito mais simples quando feito utilizando os items pré-fabricados oferecidos pelo SDK da Vuforia para Unity.
Como mencionado anteriormente, Vulforia pode procurar por 'alvos' nas imagens da câmera para criar pontos de ancoragem or referências para serem utilizadas pelas experiências de RA. Esses alvos podem assumir muitas formas, e qualquer arquivo que tenha sido processado previamente processado pelo gerenciador de alvos da Vuforia pode ser reconhecido. Alvos podem ser criados pelo desenvolvedor ou durante a execução pelo usário
3.1
Qualquer tipo de imagem pode ser um Image Target para a Vuforia. Entretanto, quando mais detalhada e intrincada a imagem, melhor ela será para ser reconhecida pelo algoritmo. Vários fatores serão parte do cálculo de reconhecimento, mas basicamente a imagem deve possuir níveis consideráveis de contraste, resolução e elementos distinguíveis. A fotografia de um céu azul não funcionaria muito bem, mas a figura de um pouco de grama funcionaria normalmente. Image Targets podem ser entregues com a aplicação, criadas depois e carregadas para a aplicação através de um sistema na nuvem, ou diretamente criadas no app pelo usuário.
A image target being recognized on a application
Um VuMark funciona muito precisamente com um QR Code; entretanto, é muito mais versátil. Ele pode assumir várias formas e cores e adaptar-se a um grande número de ambientes. Sua maior vantagem é que ele está em total conformidade com o algoritmo de conhecimento da Vuforia e será facilmente "encontrado" por qualquer aplicação de realidade aumentada da Vuforia. A Vuforia também oferece um plugin do Abode Illustrator que cria VuMarks.
Também é possível usar cubos e cilindros como Image Targets. Isto é muito apropriado para criar interatividade com embalagens de produtos. Uma vez reconhecido, o objeto primitivo é usado como um ponto de ancoragem e parece existir na visão computacional do sistema, permitindo objetos virtuais interagir diretamente com o primitivo. O objeto virtual pode acompanhar a posição e orientação do objeto real, por exemplo.
Cylinder and Cube targets
Uma das funcionalidades mais interessantes da Vuforia é a possibilidade de reconhecer objetos complexos. Um brinquedo, um telefone, uma placa de computador e outros tipos de objetos podem ser utilizados como alvos.
Para usar esse recurso, você precisa escanear o objeto utilizando a ferramenta Vuforia Object Scanner, que funciona somente nos Samsung Galaxy S6 e S7. Os dados escaneados são carregados para o Vuforia Target Manager, e o objeto escaneado será reconhecido por qualquer aparelho compatível utilizando esses dados.
Existem vários métodos para a criação de um alvo:
  • A aplicação pode ser entregue com uma série de alvos embutidos.
  • O app pode receber alvos online através de um sistema em nuvem oferecido pela Vuforia.
  • Os usuários podem utilizar a câmera do aparelho para criar um alvo.
Como desenvolvedor, você não tem muito controle sobre como o usuário irá criar seu alvo; tudo que você pode fazer é providenciar ao usuário algumas dicas sobre como escolher uma imagem apropriada como alvo. Entretanto, a situação é diferente para os alvos processados utilizando o Target Manager.
Target Manager
O portal de desenvolvedores da Vuforia nos fornece a ferramenta Target Manager para ajudar no gerenciamento dos alvos dos nossos apps. O gerenciador é muito simples de usar: você cria um banco de dados para manter os alvos, carrega um arquivo que corresponde a um alvo, e espera o arquivo ser processado. O alvo receberá um ID único e uma pontuação relacionada ao quão reconhecível ele é e se tornará então parte do banco de dados, disponível para download ou armazenamento na nuvem.
Existem três tipos diferentes de bancos de dados de alvos:
  • Banco de Dados do Aparelho são bancos de dados de alvos de imagens ou objetos que são armazenados no aparelho do usuário.
  • Bancos de Dados VuMark são bancos de dados da VuMkars que são armazenadas no aparelho do usuário.
  • Bancos de Dados na Nuvem são bancos de dados de Alvos de Imagem armazenados e solicitados pela internet.
Quando desenvolvendo um app da Vuforia na Unity, existe uma opção disponível excitante, o Smart Terrain. Ela permite uma aplicação replicar malhas 3D de objetos vistos pela câmera.
O processo funcionada como um tipo de escaneamento onde o usuário usa a câmera do aparelho como um escaner 3D. Enquanto a câmera escaneia o ambiente externo, a aplicação cria modelos de 3D dos objetos reconhecidos, dando a aplicação a possibilidade de ajustar o cenário ao mundo real, criando uma experiência profundamente cativante.
Existem centenas de possibilidades para explorar com realidade aumentada, e nós estamos somente começando. Muitos acreditam que RA será parte do nosso futuro e que nós a usaremos diariamente. Este é um campo que promete crescer bastante nos próximos anos, e a Vuforia nos fornece ferramentas legais para criar experiências cativantes.
Nos próximos tutoriais dessa série, nós trabalharemos com algumas das ferramentas mais importantes da Vuforia. Nós iremos desenvolver várias pequenas experiências para ilustrar as capacidades do SDK, e já que a Unity é o ambiente mais amigável de RA disponível, tudo que iremos desenvolver será nela.
Não será necessário ser um expert na Unity para seguir os tutorias — já que o nosso foco é o SDK da Vuforia, eu irei fornecer para vocês guias passo-a-passo que requerem somente uma experiência prévia mínima com a Unity.
Se você quer aprender um pouco mais sobre a Unity nesse período, veja alguns de nossos outros tutoriais.

Comentários

Postagens mais visitadas deste blog

Tutorial: Usando SQLite no Unity3D com C#

Criando um jogo multiplayer no Unity 3D com Photon Unity Networking – Parte 01

Tutorial: Utilizando Atributos no Unity3D