Um aplicativo Android utilizando Unity e o GoogleVR

On 15 de maio de 2017 by Breno Keller

Neste tutorial iremos criar um aplicativo de Realidade Aumentada (AR, do inglês Augmented Reality) para Android utilizando o Unity e os recursos Realidade Virtual (VR, do inglês Virtual Reality) oferecidos pelo SDK GoogleVR.

O termo Realidade Virtual normalmente se refere a diferentes tecnologias utilizadas em head mounted displays para criar imagens, sons e outras sensações que compõem um ambiente virtual. Este ambiente permite que os usuários interajam e visualizem diferentes informações. Já na Realidade Aumentada são inseridos alguns elementos sobre a visualização do mundo real, estes elementos permitem complementar ou aprimorar a percepção do usuário e são construídos através dos dados gerados por diferentes sensores como GPS, sons e vídeos.

Para executar este tutorial, é necessário:

  • Unity 5.5 ou superior
  • Windows 7 (Este tutorial também funciona em outros sistemas operacionais, mas a localização de algumas opções podem ser diferentes das que serão apresentadas)
  • Celular Android 4.4 ou superior

Configuração do Projeto e Ambiente do GoogleVR

Primeiro, criaremos um novo projeto do Unity com o nome de “CameraAR” e informaremos aonde o projeto deverá ser salvo, como pode ser visto na figura abaixo.

Após a criação do projeto, iremos adicionar a ele o SDK GoogleVR que está disponível para download em: https://developers.google.com/vr/unity/download. A seguir, adicionaremos ele ao projeto, para isso vá ao menu Assets > Import Package > Custom Package (como demonstrado na figura abaixo). Ao importar o SDK, desmarque as opções Demo na pasta GoogleVR e iOS na pasta Plugin.

Build do Unity

Em seguida, precisaremos alterar as configurações de build do Unity, para que nosso target seja uma aplicação Android, pois por default os novos projetos do Unity são configurados para que o target seja uma aplicação Standalone do sistema operacional utilizado. Para poder alterar estas configurações iremos ao menu File > Build Settings (demonstrado na figura a abaixo).

Na janela de configuração aberta, selecione Android em Platform e clique em Switch Platform (destacado em vermelho na figura abaixo), isso fará com que o nosso target seja o Android. Em seguida, clique em Player Settings (destacado em azul na figura abaixo), isto irá abrir uma aba onde podemos alterar algumas configurações de build da plataforma selecionada, no caso Android.

Na aba aberta, iremos alterar algumas opções necessárias para que nossa aplicação funcione corretamente, vá a divisotia Other Settings:

  1. Na aba Identification
    1. Altere a opção Bundle Identifier para “com.example.cameraar”
    2. Altere a opção Minimum API Level para “Android 4.4 KitKat (API Level 19)”
  2. Na aba Resolution and Presentation
    1. Altere a opção Default Orientation para “Landscape Right”

Por fim, iremos configurar a iluminação, pois a iluminação padrão do Unity deixará a aplicação muito clara. Para isto iremos:

  1. No menu Window selecione a opção Lightning Settings
  2. Em Enviroment Light
    1.  Altere Ambient Source para “Color”
    2. Altere Ambient Color para a cor “Branca”
    3. Altere Ambient GI para “Baked”

Com isso temos todas as configurações necessárias para que o projeto funcione corretamente em um celular Android. Para finalizar esta etapa salvaremos a cena, para isso utilize o atalho ctrl + S e escolha um nome para a cena, neste tutorial utilizaremos “MainScene”.

Criação da Aplicação no GoogleVR

Nesta segunda etapa do tutorial iremos construir nossa aplicação. Então primeiramente vamos a aba Project > GoogleVR > Prefabs. Nesta pasta, temos todos os prefabs do SDK GoogleVR. Esses prefabs que são recursos do Unity que permitem criar um modelo de componente, contendo texturas, transformações e scripts próprios que podem ser importados e reaproveitados em diferentes cenas. Neste caso utilizaremos o prefab GvrViewerMain, que transformará a saída da câmera principal da cena em um formato VR, com as divisões e transformações necessárias para funcionar corretamente em oculos VR. Portanto, para adicioná-lo basta arrastá-lo para a aba Hierarchy.

Agora na aba Hierarchy apagaremos o componente Directional Light e iremos alterar a transformação da MainCamera para os valores mostrados abaixo.

Após isso criaremos um plano para que possamos projetar nele a imagem que a camera do celular está captando. Para criá-lo:

  1. Na aba Hierarchy selecione a opção Create, 3D Object e Plane
  2. Arraste o novo componente para o componente MainCamera, isso fará com que ele se torne filho do componente MainCamera
  3. Altere suas transformações e tag para as mostradas na imagem abaixo.

Script para captura de imagem

Agora que posicionamentos todos os componentes necessários, vamos adicionar um script para captar a imagem da câmera do celular e coloca-lá como textura para o plano que criamos anteriormente. Para isto:

  1. Vá a aba Project
  2. Crie um novo script através do menu Create e a opção C# Script
    1. Nomeie o script de “CameraController.cs”
    2. Abra o script em algum editor de texto ou IDE e altere o código, para o apresentado abaixo. No Windows por default o Unity utiliza o VisualStudio, mas ele também oferece a opção de utilizar o MonoDevelop.

[sourcecode language=”csharp”]
using UnityEngine;
using System.Collections;

public class CameraController : MonoBehaviour {
public WebCamTexture mCamera = null;
public GameObject plane;

void Start() {
plane = GameObject.FindWithTag (“Player”);
mCamera = new WebCamTexture();
plane.renderer.material.mainTexture = mCamera;
mCamera.Play();
}

void Update() {}
}
[/sourcecode]

Após alterar o script é necessário associá-lo a algum componente da cena para que ele possa ser executado. No nosso caso como nosso script manipula a textura (material) de um plano, iremos associá-lo a este plano. Para fazer isso é bastante simples, basta arrastar o script até plano e soltá-lo.

Compilando e Executando a Aplicação GoogleVR em um Celular

Com isso configuramos e adicionamos todos os componentes necessários para que o projeto funcione corretamente, faltando somente compila-lo e executá-lo em algum celular Android. Para conseguirmos compilar e copiar a aplicação do Unity para um celular android é necessário que o celular seja plugado no computador e o modo de programador (Development Mode) dele esteja habilitado, para habilitá-lo varia de aparelho para aparelho, mas normalmente é necessário ir em Configurações > Sobre o Telefone > e clicar algumas vezes sobre o Número do Kernel.

Com essas dependências resolvidas, basta ir em File > Build Settings > Build & Run e informar o nome do apk, para que o Unity compile, instale e execute a aplicação no seu celular. Como resultado seu celular terá uma tela semelhante a apresentada abaixo.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *