Академический Документы
Профессиональный Документы
Культура Документы
BLUMENAU
2015
2015/2-14
JÚLIO CÉSAR DOS SANTOS
BLUMENAU
2015
2015/2-14
VISEDU: APLICATIVO DE REALIDADE AUMENTADA
Por
______________________________________________________
Presidente: Prof. Dalton Solano dos Reis, M.Sc. – Orientador, FURB
______________________________________________________
Membro: Prof. Aurélio Faustino Hoppe, Mestre – FURB
______________________________________________________
Membro: Prof. Maurício Capobianco Lopes, Doutor – FURB
trabalho.
deste trabalho.
Ao meu orientador Dalton, por seu apoio, interesse e tempo investido neste trabalho.
A persistência é o caminho do êxito.
Charles Chaplin
RESUMO
This work presents the development of an Android Application that uses Augmented Reality
in a simple and interactive environment of vehicle traffic, allowing diversified forms of
entertainment for the user. The application was developed using the game creation platform
Unity 3D and the library of Augmented Reality Vuforia. Throughout the development of this
work, different possibilities of user interactivity with virtual objects generated using
Augmented Reality were implemented, and based on the obtained results, the most adequate
were selected to be used by the application. Besides, there are presented concepts, techniques
and components used in the implementation of the Augmented Reality and the interactivity
with the generated virtual objects. As result, it was developed an immersive application in an
Augmented Reality scenario through the visualization of a map image by an Android device
camera, that interacts with virtual objects generated in the scenario.
GB – Gigabyte
GHz – Gigaheartz
MB – Megabyte
RA – Realidade Aumentada
1 INTRODUÇÃO .................................................................................................................. 16
1.1 OBJETIVOS ...................................................................................................................... 16
1.2 ESTRUTURA.................................................................................................................... 17
2 FUNDAMENTAÇÃO TEÓRICA .................................................................................... 18
2.1 REALIDADE AUMENTADA ......................................................................................... 18
2.1.1 Interatividade................................................................................................................... 18
2.1.2 Inserção de informações virtuais no ambiente real ......................................................... 19
2.2 UNITY 3D ......................................................................................................................... 20
2.2.1 Elementos básicos ........................................................................................................... 21
2.2.2 Editor gráfico .................................................................................................................. 22
2.2.3 Controle de física e colisão (interatividade).................................................................... 24
2.2.4 Vuforia ............................................................................................................................ 25
2.3 TRABALHOS CORRELATOS ........................................................................................ 27
2.3.1 ARhrrrr!........................................................................................................................... 27
2.3.2 ArDefender...................................................................................................................... 28
2.3.3 eyeBuy............................................................................................................................. 29
3 DESENVOLVIMENTO .................................................................................................... 31
3.1 REQUISITOS .................................................................................................................... 31
3.2 ESPECIFICAÇÃO ............................................................................................................ 32
3.2.1 Diagrama de Casos de uso do aplicativo......................................................................... 32
3.2.2 Diagrama de classes do aplicativo .................................................................................. 34
3.2.3 Diagramas de atividades ................................................................................................. 35
3.3 IMPLEMENTAÇÃO ........................................................................................................ 36
3.3.1 Técnicas e ferramentas utilizadas.................................................................................... 37
3.3.1.1 Inicio do projeto ............................................................................................................ 37
3.3.1.2 Aplicativo ..................................................................................................................... 39
3.3.1.3 Tela inicial .................................................................................................................... 47
3.3.1.4 Plataforma disponibilizada para o aplicativo ................................................................ 48
3.3.2 Operacionalidade da implementação .............................................................................. 49
3.4 RESULTADOS E DISCUSSÕES..................................................................................... 53
3.4.1 Cenários........................................................................................................................... 53
3.4.2 Testes............................................................................................................................... 58
3.5 COMPARATIVO DOS TRABALHOS CORRELATOS ................................................ 59
4 CONCLUSÕES .................................................................................................................. 61
4.1 EXTENSÕES .................................................................................................................... 62
REFERÊNCIAS ..................................................................................................................... 63
APÊNDICE A – APRESENTAÇÃO DO APLICATIVO NO XI SEMINÁRIO
INTEGRADO DAS LICENCIATURAS ......................................................................... 66
16
1 INTRODUÇÃO
Quando os jogos eletrônicos surgiram, há décadas atrás, as únicas opções eram pouco
interativas, não atraíam e não possuíam uma boa tecnologia. O uso da Realidade Aumentada
nas indústrias de jogos mudou essa situação, tornando-os muito mais interativos. O recurso
trouxe inovação, permitindo misturar a realidade com o mundo virtual (KARASINSKI,
2009). Para esta possibilidade são necessários dispositivos capazes de transmitir imagens,
como por exemplo, smartphones com câmeras e um software especifico capaz de reconhecer
objetos reais e transportá-los para um contexto virtual (HAUSTSCH, 2009).
A Realidade Aumentada inovou o conceito de jogos interativos, deixando-os mais
interessantes, pois o que agrada o jogador é o fato dele se sentir dentro do jogo, fazendo parte
da história. Um aspecto do sucesso dos jogos está em seus gráficos, porém não é o bastante
para agradar o público de jogadores. As inovações tecnológicas e as formas de interação com
os jogos fazem com que o jogador possa usufruir de novas maneiras de visualizar um jogo.
Agora que Realidade Aumentada está cada vez mais presente nos jogos, podem-se esperar
inovações em maiores proporções (KARASINSKI, 2009).
Atualmente a Realidade Aumentada não tem um limite de aplicações, sendo utilizada
no entretenimento como na criação de jogos interativos, na área educativa em materiais
educacionais, campanhas publicitárias, melhorias na área da saúde, na indústria
automobilística, além de outras alternativas que ainda serão criadas (HAUSTSCH, 2009).
Com o aumento da criação dos jogos e aplicativos interativos, as empresas de celulares
passaram a melhorar a interatividade dos aparelhos, como no caso do iPhone, que mostra-se
cada vez melhor nestes aspectos (KARASISNKI, 2009).
Diante deste contexto, foi realizado o desenvolvimento de um aplicativo com o
objetivo de simular um cenário simples de trânsito para demonstrar ao usuário, uma maneira
diferente de entretenimento através do uso da Realidade Aumentada. Para este aplicativo, foi
disponibilizado um mundo virtual 3D com objetos interativos. Além disto, nota-se que o
aplicativo possui características semelhantes a um jogo, como a interatividade e a simulação.
Também foi disponibilizado através do aplicativo, um conteúdo com instruções básicas sobre
o trânsito.
1.1 OBJETIVOS
1.2 ESTRUTURA
2 FUNDAMENTAÇÃO TEÓRICA
2.1.1 Interatividade
A interatividade pode ser classificado como “[...] qualquer coisa cujo funcionamento
permite ao seu usuário algum nível de participação ou troca de ações.” (SILVA, 2001, não
paginada). Nos ambientes dos jogos, esta característica permite ao jogador participar ou
interferir de alguma maneira, fazendo com que suas ações influenciem diretamente no
contexto do jogo.
No inicio da criação dos jogos eletrônicos a única forma de interação do jogador com a
aplicação era mandando uma pequena bola de um canto a outro no famoso jogo da época
"Pong". Com a evolução desses jogos, dispositivos revolucionários foram proporcionando ao
19
jogador novas maneiras de visualizá-los, fazendo com que ele se sinta cada vez mais parte do
jogo (KARASINSKI, 2009).
Em jogos de RA, a interatividade é um fator importante para o sucesso da aplicação.
Nos jogos desta categoria, o fato do jogador poder executar interações entre um ambiente real
com elementos de uma cena virtual é a maneira de conquistar o público para estes tipos de
jogos.
2.2 UNITY 3D
Um jogo no Unity pode conter vários níveis. Os níveis contêm objetos distintos entre
si para a formação de seu cenário. Estes níveis são nomeados de Scenes. Cada Scene contém
uma parte de jogo responsável por alguma funcionalidade, como um menu inicial, os níveis
do jogo, seleção de personagens, entre outras opções (UNITY, 2015c).
Para a criação de Scenes, são necessários objetos para a sua formação. Neste cenário,
destaca-se o elemento mais importante do Unity, nomeado de Game Object. Ele pode ser
definido como um recipiente vazio que servirá como base para a combinação de
funcionalidades e comportamentos, a fim de se criar um objeto final. Estas funcionalidades e
comportamentos são chamados de componentes, podendo ser áudios, física, script, eventos,
dentre outros tipos (UNITY, 2015e). Um importante componente do Unity é o Event
System. Este componente é um gestor e facilitador em termos de entrada de usuário (toque
na tela, arraste de mouse entre outros tipos de entrada). Sua funcionalidade consiste no envio
de eventos para objetos com base na entrada do usuário (UNITY, 2015d).
Todo objeto em um cenário de jogo no Unity é um Game Object. Câmeras, luzes,
Objetos em 3D como árvores, carros, cubos, são definidos como Game Objects e possuem
componentes distintos para a sua criação (UNITY, 2015e).
A maior parte no desenvolvimento de um jogo está no manuseio de arquivos como
texturas, modelos, efeitos sonoros e scripts de comportamentos dos Game Objects. Estes
arquivos já prontos são chamados de Assets e desenvolvidos em ferramentas externas,
especializada em seu tipo. Os Assets após serem criados ou baixados devem ser importados
para o Unity através do arrasto do mouse para a janela Project (PASSOS et al, 2009, p. 10).
Os Prefabs são um tipo de Asset que possuem objetos armazenados por completo
(com todos seus componentes e propriedades). Modificações feitas neles refletem nos demais
Prefabs do mesmo tipo já incluídos nas Scenes. Eles podem ser adicionados em qualquer
Scene e são utilizados quando é necessário ter um mesmo objeto várias vezes em um jogo
sem precisar realizar novas configurações (UNITY, 2015k).
Os componentes ligados a um Game Object definem o seu comportamento de uma
maneira flexível. Porém, com o passar do desenvolvimento de um projeto, somente os
comportamentos definidos por componentes não são o suficiente para o controle total da
aplicação. Para suprir esta necessidade, é possível criar componentes próprios através de
scripts e adicioná-los aos Game Objects. Os scripts adicionam eventos ao jogo, modificam
22
A Game View é uma visualização em tempo real do jogo desenvolvido. Para utilizar
esta janela, o editor do Unity conta com uma Toolbar com um botão para iniciar a simulação
da aplicação e outro para pausá-la, podendo também realizar alterações nos Game Objects
em tempo de execução. Porém, após finalizar a simulação, os valores originais são mantidos.
A visualização da simulação é feita através de uma ou mais câmeras criadas no jogo. A janela
também conta com outras opções, como alteração da proporção da tela e desempenho da
aplicação (UNITY, 2015f).
23
Para que um Game Object possa agir sob o controle de física, o Unity disponibiliza o
componente Rigidbody. Este componente é adicionado aos Game Objects que devem
implementar o controle de física. Com este componente é possível implementar articulações,
colisões, gravidade, movimentações, restrições na física entre outras possibilidades (UNITY,
2015m).
Para que ocorra colisões entre objetos é necessário utilizar um componente para o
controle da colisão ao lado do Rigidbody nos Game Objects. O Unity disponibiliza
componentes para tratamento de colisões como o Box Collider, o Sphere Collider e o
Mesh Collider (UNITY, 2015m). Cada um destes componentes possui suas características
distintas, como o Box Collider que possui o formato de uma caixa, na qual a colisão é
detectada (ver Figura 5). Estes componentes são invisíveis em tempo de execução e
adicionados ao redor de objeto, podendo ser configurados os seus tamanhos.
25
2.2.4 Vuforia
pode fazer o reconhecimento de diversas coisas em um ambiente real para utilização como
marcadores (fiduciais e naturais) para proporcionar a RA. Dentre as principais estão: palavras,
cilindros, caixas, reconhecimento de imagens diversificadas (como imagens de revistas,
embalagens e propagandas) e objetos físicos, como brinquedos, sapatos entre outros produtos
(QUALCOMM, 2015i).
O Unity e o Vuforia podem ser integrados a partir do plugin Unity Extension
(QUALCOMM, 2015e). Isto permite o desenvolvimento de aplicações de RA no ambiente
Unity através da disponibilização de Prefabs, scripts e outros componentes para o controle
da RA na aplicação.
O Prefab Image Target é utilizado para o Vuforia detectar e rastrear imagens. Estas
imagens são cadastradas através do gerenciador de alvos do Vuforia. Podem ser cadastradas
imagens no formato JPG ou PNG em tons de cinza ou no sistema de cores RGB com tamanho
máximo de 2 MB. Após o cadastro da imagem, o gerenciador de alvos, processa e avalia
características especificas da imagem para determinar um nível de detecção (com base nas
características), sendo que quanto maior o nível, melhor é a chance de detecção
(QUALCOMM, 2015h). Segundo QUALCOMM (2015a) uma imagem cadastrada na base de
alvos deve ser rica em detalhes, deve ter regiões claras e escuras, ser bem iluminada e não
possuir padrões repetitivos para permitir uma melhor detecção pelo SDK do Vuforia.
Frame Marker é um tipo de marcador fiducial exclusivo do Vuforia. Este marcador
possui o formato de um quadrado com um padrão binário ao longo de sua borda o qual é
utilizado para identificar o marcador em tempo de execução. Além disto, é possível incluir
dentro de suas fronteiras, uma imagem (porém não utilizada para identifica-lo). O Vuforia
disponibiliza 512 tipos diferentes de Frame Markers para a utilização em um aplicativo,
estando disponíveis na pasta da instalação do SDK do Vuforia (QUALCOMM, 2015d).
O Prefab ARCamera realiza a renderização da imagem da câmera e manipula os
objetos para serem rastreados (QUALCOMM, 2015f). Este Prefab possui diversas
propriedades para configuração no Unity. A propriedade Load Data Set carrega uma base de
alvos exportada do gerenciador de alvos do Vuforia quando o aplicativo é iniciado. A
propriedade Active é utilizada em conjunto com a Load Data Set para ativar a base após a
mesma ser carregada. A propriedade World Center Mode é utilizada para definir um objeto
que servirá como origem do espaço 3D da cena. Quando World Center Mode for definido
como SPECIFIC_TARGET é habilitada a propriedade World Center para a seleção de um
objeto para ser a origem do espaço 3D da cena (QUALCOMM, 2015g).
27
Vuforia possui uma opção para um tipo de rastreamento especial de objetos, nomeada
de Extend Tracking. Esta opção permite o monitoramento e rastreamento mesmo quando o
alvo não está mais em vista. Para isto, Vuforia mapeia o alvo e assume que o alvo e o
ambiente em que ele está inserido são em sua maior parte, estáticos. Dentre as opções de
marcadores que o Vuforia suporta, somente os Frame Markers e os Word Markers não
suportam o Extend Tracking (QUALCOMM, 2015c).
A seguir são apresentados três trabalhos com características semelhantes a este. O item
2.3.1 detalha o jogo acadêmico ARhrrrr!, o item 2.3.2 apresenta o jogo ARDefender, um dos
primeiros jogos do gênero disponibilizado para iOS (APPSDOIPHONE, 2012) e o item 2.3.3
apresenta um trabalho acadêmico que por meio da RA facilita a visualização de produtos por
pessoas com acuidade visual.
2.3.1 ARhrrrr!
2.3.2 ArDefender
2.3.3 eyeBuy
8). Isto tem como beneficio a facilidade da visualização da tabela nutricional de produtos,
devido a mesma possuir um pequeno tamanho fisicamente.
No desenvolvimento do aplicativo, foi utilizada a plataforma Unity 3D para a
modelagem de objetos virtuais (a tabela nutricional apresentada ao lado do produto quando o
mesmo for identificado) e o SDK Vuforia para a identificação e realização do posicionamento
dos objetos virtuais aos produtos. Nota-se que essas tecnologias também são utilizadas para o
desenvolvimento deste trabalho.
Figura 8 – Aplicativo eyeBuy
3 DESENVOLVIMENTO
3.1 REQUISITOS
3.2 ESPECIFICAÇÃO
3.3 IMPLEMENTAÇÃO
Para dar inicio ao projeto no Unity, é necessário a importação do SDK do Vuforia para
o Unity, disponibilizado na página de desenvolvedores do Vuforia. A importação pode ser
realizada clicando duas vezes no SDK do Vuforia. Com isto, é aberta uma janela apresentado
todos os arquivos para serem importados (Figura 13).
Figura 13 - Importando Vuforia no Unity
Após a importação do Vuforia no Unity, é preciso gerar uma chave de licença para seu
uso através na página de desenvolvedores do Vuforia (está chave é adicionada no Prefab
ARCamera). Ainda na página de desenvolvedores, é necessário o cadastro de uma base de
alvos (imagens, cubos, cilindros e objetos em 3D) através do gerenciador de alvos, contendo a
imagem do mapa físico. Para o cadastro da base, é necessário nomeá-la para a sua
38
identificação (para o aplicativo criado, a base foi nomeada de VisEdu_DB) Após isto, é
necessário adicionar um alvo do tipo Single Image para a base (Figura 14). Após o cadastro de
um alvo, a página irá disponibilizar uma classificação para o alvo com base em características
especificas da imagem. Quanto maior a classificação, melhor será a chance de detecção das
características da imagem na aplicação. Após o cadastro, é necessário exportar a base e
importá-la no Unity.
Figura 14 - Adicionando um alvo de imagem
No aplicativo foi utilizado o Prefab Image Target para a geração dos objetos em
3D. Com isto, deve ser adicionado o Prefab Image Target na janela Hierarchy. Na janela
Inspector deste Prefab, deve ser configurado nas propriedades do script Image Target
Behaviour a base de alvos do Vuforia e qual imagem da base deve ser reconhecida (quadro
vermelho da Figura 16). Após adicionar o Prefab e configurá-lo, deve-se incluir os modelos
em 3D como filhos (parenting) do Image Target. Com isto, quando o marcador for
reconhecido através da câmera do dispositivo, os objetos em 3D serão gerados.
Figura 16 - Configuração da Image Target
3.3.1.2 Aplicativo
No Rigidbody foi desmarcada a opção Use Gravity para o objeto não ser interferido
por gravidade e marcadas todas as propriedades do Freeze Rotation, fazendo com que o
carro não seja interferido por rotação ao colidir com outro objeto. O Box Collider foi
ajustado ao tamanho do carro com a opção Edit Collider. No script
CarroComJoystickScript são informados atributos para a velocidade do carro ao transladar
e rotacionar, perda de barra de gasolina e mecânica, e incremento das barras de mecânica e
gasolina (ressalta-se que os valores informados para estes atributos, irão depender dos valores
44
// Rotaçao
if (movimentoHorizontal != 0 && (movimentoHorizontal > 0.30f ||
movimentoHorizontal < -0.30f)) {
float rotacao = (movimentoHorizontal * velocidadeRotacao) *
Time.deltaTime;
//Translaçao
if (movimentoVertical != 0) {
float translacao = (movimentoVertical * velocidadeTranslacao)
* Time.deltaTime;
transform.Translate (0, 0, translacao);
Barras.DiminuiGasolinaAtual (perdaBarraGasTranslacao);
}
if (Barras.gasolinaAtual <= 0) {
Destroy (gameObject);
}
}
barra de mecânica definida por parâmetro, a cada segundo. Para que o carro possa ficar em
cima do galão de gasolina ou da chave inglesa, estes objetos possuem uma Box Collider
com a opção Is Trigger marcada para que o carro possa atravessá-los (não ser afetado por
física) e gerar evento.
Quadro 10 - Tratamento de colisão para incrementar barra de gasolina e mecânica
void OnTriggerStay (Collider ObjetoColidido)
{
switch (ObjetoColidido.gameObject.tag) {
case "ChaveInglesa":
if (!this.aguardarArrumarCarro) {
StartCoroutine (ArrumarCarro ());
}
break;
case "GalaoDeGasolina":
if (!this.aguardarEncherTanque) {
StartCoroutine (EncherTanqueGasolina ());
}
break;
}
}
private IEnumerator EncherTanqueGasolina ()
{
this.Barras.IncrementaGasolinaAtual (incrementoBarrraGasPorSegundo);
this.aguardarEncherTanque = true;
yield return new WaitForSeconds (1);
this.aguardarEncherTanque = false;
}
private IEnumerator ArrumarCarro ()
{
this.Barras.IncrementaMecanicaAtual (incrementoBarraMecPorSegundo);
this.aguardarArrumarCarro = true;
yield return new WaitForSeconds (1);
this.aguardarArrumarCarro = false;
}
O item 6 da Figura 17 representa um buraco. Para este objeto não foi utilizado um
modelo pronto. Foi criado um objeto 3D do tipo Plane e associado uma imagem de buraco. O
objeto possui uma Box Collider sem estar marcado com Is Trigger. Quando o carro
passar por cima do buraco, será decrementada a barra de mecânica.
O item 7 é um modelo em 3D de uma casa, o item 8 é um modelo em 3D de uma
mecânica e o item 10 é um modelo em 3D de um posto de gasolina. Estes modelos somente
fazem a barra de mecânica ser decrementada quando houver colisão do carro com um deles.
O joystick virtual (item 12) é um Prefab disponibilizado no pacote Vehicles do
Unity e nomeado de MobileSingleStickControl. Este Prefab é composto do Game
Object principal MobileSingleStickControl responsável pela criação do componente
Event System para o gerenciamento do toque na tela e pela habilitação e controle do
posicionamento em tela de seu Game Object filho, nomeado de MobileJoystick. No Game
47
Object MobileJoystick é possível definir uma imagem para o joystick, a quantia que ele
poderá ser arrastado em tela e as direções para arrastá-lo (vertical e/ou horizontal). O
MobileJoystick também é responsável pelo envio da sua movimentação (horizontal e/ou
vertical) para a classe CrossPlatformInputManager quando o mesmo for arrastado em tela
(o carro utiliza estas informações de movimentação para rotacionar e transladar).
Por fim, o item 13 é um botão nomeado de Voltar. Ao tocar neste botão, é
chamado o método VoltarTelaInicial apresentado no Quadro 11, que carrega a tela inicial
através do método LoadLevel.
Quadro 11 - Método para carregar a tela inicial do aplicativo
public void VoltarTelaInicial ()
{
Application.LoadLevel ("TelaInicial");
}
Quando o aplicativo é aberto, a tela inicial apresenta o título da aplicação, junto com
um QRCode e três botões de opções. Abaixo são apresentadas as funcionalidades das opções,
conforme Figura 21.
Figura 21 - Tela inicial do aplicativo
Imprimir, que abre um site para visualizar e imprimir o marcador utilizado no aplicativo. Ao
tocar no botão do item 4 é carregada a Scene para visualizar a RA do aplicativo.
Quadro 12 - Métodos da tela inicial
public void Sobre ()
{
Application.OpenURL
("http://www.inf.furb.br/gcg/tecedu/transito");
}
Caso a barra de gasolina ou mecânica se esgote, o carro é destruído e são exibidos dois
botões com opções para voltar para tela inicial ou recomeçar. Na Figura 28 são apresentadas
as opções disponíveis após a barra de mecânica se esgotar.
Figura 28 - Seleção de opções após a barra de mecânica se esgotar
53
O presente trabalho teve como objetivo inicial a criação de três cenários para o
desenvolvimento do ambiente de simulação (cenário simples de trânsito). Estes três cenários
foram desenvolvidos de forma semelhante, porém, tendo como principal diferença, a forma
com que o usuário irá interagir com os objetos do mundo virtual 3D. Nota-se que a interação
do usuário resulta na movimentação de um carro virtual que interage com os demais objetos
do mundo virtual 3D. No item 3.4.1 abaixo são apresentados os cenários desenvolvidos para a
aplicação e no item 3.4.2 são apresentados os testes realizados com os cenários. No Apêndice
A descreve-se a exibição do aplicativo gerado por este trabalho no evento XI Seminário
Integrado das Licenciaturas.
3.4.1 Cenários
Frame Marker. O Frame Marker seria movimentado pelo usuário no mundo virtual 3D
gerado a partir da detecção de uma Image Target, configurada com a imagem de um mapa.
No Unity foi desenvolvida a Scene ControlePorCarroVirtual para atender ao cenário.
A Scene ControlePorCarroVirtual foi desenvolvida para dois usuários poderem
utilizar a aplicação, porém em dispositivos separados. Com isto, foi desenvolvida a Scene
SelecaoMarcador permitindo a escolha de um carro virtual na cor amarela através da
detecção de um Frame Marker ou o mesmo modelo de carro, na cor vermelha através da
detecção de outro Frame Marker. Na aplicação, os usuários poderiam movimentar seus Frame
Markers, colidir seus carros com os modelos gerados a partir do mundo virtual 3D e inclusive
com o carro do usuário oposto. Para as colisões, uma barra representando a mecânica do carro
geraria um retorno visual. Para o movimento do Frame Marker, uma barra representando a
gasolina do carro geraria um retorno visual. Do lado esquerdo da Figura 30 é apresentada a
visualização do cenário real sem utilizar a Scene ControlePorCarroVirtual, e do lado
direito é apresentada a visualização do cenário real pela Scene ControlePorCarroVirtual.
Figura 30 – Visualização do cenário real sem e com a Scene ControlePorCarroVirtual
Nota-se na Figura 30 que foram colados palitos nos Frame Markers para realizar o
seu movimento, sem precisar tocar na imagem destes marcadores para realizar o movimento.
É necessário estar visualizando todo o Frame Marker para o seu reconhecimento, e
posteriormente a geração de objetos virtuais.
O segundo cenário foi desenvolvido para o usuário poder utilizar um carro de
brinquedo no mundo virtual 3D (gerado por uma Image Target) através de um Frame
Marker colado em cima do carro. No Unity foi desenvolvida a Scene
apenas uma esfera na cor amarela ou vermelha dependendo do Frame Marker selecionado,
para identificar que o marcador foi reconhecido. Os marcadores dos carros de brinquedo
poderiam colidir com os objetos virtuais do mundo 3D e inclusive com o carro oposto, devido
ao Frame Marker colado. Do lado esquerdo da Figura 31 é apresentada a visualização do
cenário real sem utilizar a Scene ControlePorCarroReal, e do lado direito é apresentada a
visualização do cenário real pela Scene ControlePorCarroReal. Na Figura 32 é exibida a
visualização da frente dos carrinhos utilizados.
Figura 31 – Visualização do cenário real sem e com a Scene ControlePorCarroReal
virtual 3D é semelhante ao do primeiro e segundo cenário, porém o carro faz parte dos objetos
da Image Target, não sendo gerado por um Frame Marker. Este cenário se encontra
detalhado na seção 3.3. Ressalta-se que este cenário foi projetado apenas para um usuário,
devido ao movimento do carro ser controlado internamente através do movimento do joystick.
Do lado esquerdo da Figura 33 é apresentada a visualização do cenário real sem utilizar a
Scene ControlePorJoystick, e do lado direito é apresentada a visualização do cenário real
pela Scene ControlePorJoystick.
Figura 33 - Visualização do cenário real sem e com a Scene ControlePorJostick
3.4.2 Testes
Esta seção é responsável por realizar a comparação dos trabalhos correlatos descritos
no capítulo anterior e este trabalho. O Quadro 13 apresenta a relação de existência de
características nos trabalhos apresentados. O presente trabalho está identificado como Santos
(2015).
Quadro 13 - Comparativo dos trabalhos correlatos e este trabalho
Características/Trabalhos ARhrrrr! ARDefender eyeBuy Santos
relacionados
(2009) (2012) (2012) (2015)
Através das informações disponíveis no Quadro 13, nota-se que os trabalhos possuem,
em sua maioria, características semelhantes entre si. A utilização de objetos naturais como
marcadores só não é presente no jogo ARDefender o qual utiliza os tradicionais marcadores
fiduciais. Os jogos ARhrrrr!, ARDefender e este trabalho permitem a interatividade entre os
objetos virtuais, sendo um atrativo para a aplicação, ao contrário do eyeBuy que apenas gera
um objeto virtual 3D para visualização.
Nota-se que o presente trabalho e o aplicativo eyeBuy são aplicativos desenvolvidos
academicamente e criados utilizando as mesmas tecnologias (Unity e Vuforia). Ao contrário
destes trabalhos, o ARhrrrr! e ARDefender são jogos, e somente o ARhrrrr! foi desenvolvido
academicamente. As tecnologias utilizadas para o desenvolvimento dos jogos não foram
identificadas.
61
4 CONCLUSÕES
aplicativo para outras plataformas, por exemplo, o iOS. Com base no estudo realizado pelo
trabalho, outros da mesma área poderão ser criados, com base nas técnicas apresentadas.
4.1 EXTENSÕES
REFERÊNCIAS
APPLE. ARDefender. [S.l.], 2015. Disponível em:
<https://itunes.apple.com/br/app/ardefender/id393879882?mt=8>. Acesso em: 06 maio 2015.
APPSDOIPHONE. ARDefender. [S.l.], 2012. Disponível em:
<http://www.appsdoiphone.com/2012/02/ardefender.html>. Acesso em: 21 mar. 2015.
AZUMA, R. T. A Survey of augmented reality. Presence: Teleoperators And Virtual
Environments. [S.l.], v. 6, n. 4, p. 355-385. Aug. 1997. Disponível em:
<http://www.cs.unc.edu/~azuma/ARpresence.pdf>. Acesso em: 29 mar. 2015.
CAROTENUTO, Attilio. Unity 3D: Collisions Basics. [S.l.], 2014. Disponível em:
<https://www.binpress.com/tutorial/unity-3d-collisions-basics/114>. Acesso em: 14 out.
2015.
DOLZ, Jose. Markerless Augmented Reality. [S.l.], 2012. Disponível em:
<http://www.arlab.com/blog/markerless-augmented-reality>. Acesso em: 04 abr. 2015.
FERNANDES, G. A. Realidade Aumentada Aplicada a Atividades de Inspeção e
Manutenção em Engenharia Civil. 2012. 106 f. Tese (Doutorado em Engenharia Civil) -
Curso de Pós-Graduação em Engenharia Civil, Universidade Federal do Rio de Janeiro, Rio
de Janeiro.
FORREST, Brady. ARhrrrr! : Augmented Reality Zombie and Helicopter Game. [S.l.],
2009. Disponível em: <http://radar.oreilly.com/2009/06/arhrrrr-augmented-reality-
zomb.html>. Acesso em: 16 mar. 2015.
FORTE, C. E.; SILVA, S. L.; MARENGONI, M. Uso de Realidade Aumentada em Interface
Acessível para Consumidores com Redução de Acuidade Visual. In WORKSHOP DE
REALIDADE VIRTUAL E AUMENTADA, 9., 2012, Paraná. Anais eletrônicos... Paraná:
2012. Disponível em <http://www.lbd.dcc.ufmg.br/colecoes/wrva/2012/0035.pdf>. Acesso
em: 29 mar. 2015.
GEORGIA TECH. ARhrrrr!. [S.l.], 2015. Disponível em:
<http://ael.gatech.edu/lab/research/games/arhrrrr>. Acesso em: 16 mar. 2015.
GOOGLE. ARDefender. [S.l.], 2013. Disponível em:
<https://play.google.com/store/apps/details?id=net.int13.ardefender>. Acesso em: 21 mar.
2015.
HAUSTSCH, Oliver. Como funciona a Realidade Aumentada. [S.l.], 2009. Disponível em:
<http://www.tecmundo.com.br/realidade-aumentada/2124-como-funciona-a-realidade-
aumentada.htm>. Acesso em: 30 mar. 2015.
KARASINSKI, Eduardo. Novas tecnologias: jogos interativos. [S.l.], 2009. Disponível em:
<http://www.tecmundo.com.br/webcam/2394-novas-tecnologias-jogos-interativos.htm>.
Acesso em: 16 mar. 2015.
PASSOS, Erick Baptista et al. Tutorial: Desenvolvimento de jogos com Unity 3D. In: VIII
BRAZILIAN SYMPOSIUM ON GAMES AND DIGITAL ENTERTAINMENT, 8., 2009,
Rio de Janeiro. Anais eletrônicos... Rio de Janeiro: PUC-Rio, 2009. Disponível em:
<http://sbgames.org/papers/sbgames09/computing/tutorialComputing2.pdf>. Acesso em: 12
out. 2015.
QUALCOOM. Attributes of an Ideal Image Target. [S.l.], 2015a. Disponível em:
<https://developer.vuforia.com/library/articles/Best_Practices/Attributes-of-an-Ideal-Image-
Target>. Acesso em: 20 out. 2015.
64
______. O software líder global da indústria de jogos. [S.l.], 2015j. Disponível em:
<https://unity3d.com/pt/public-relations>. Acesso em: 18 mar. 2015.
______. Prefabs. [S.l.], 2015k. Disponível em:
<http://docs.unity3d.com/Manual/Prefabs.html>. Acesso em: 12 out. 2015.
______. Project Browser. [S.l.], 2015l. Disponível em:
<http://docs.unity3d.com/Manual/ProjectView.html>. Acesso em: 13 out. 2015.
______. Rigidbody. [S.l.], 2015m. Disponível em: <http://docs.unity3d.com/Manual/class-
Rigidbody.html>. Acesso em: 14 out. 2015.
______. Scene View. [S.l.], 2015n. Disponível em:
<http://docs.unity3d.com/Manual/SceneView.html>. Acesso em: 13 out. 2015.
______. Um editor repleto de recursos e altamente flexível. [S.l.], 2015o. Disponível em:
<http://unity3d.com/pt/unity/editor>. Acesso em: 18 mar. 2015.
66