Sophie M OIRAND
1. Du recueil des données à la mise au jour des observables
1.3. Construire un second type de sous-corpus de travail
Outro jogo que combina o mundo real com a RA chama-se X-Rift e utiliza a câmara do dispositivo para capturar a cena real e sobrepor-lhe elementos virtuais com base nas coordenadas recebidas do recetor GPS. Estes elementos virtuais são obstáculos, como monstros, que o utilizador deve destruir, possuindo um radar que localiza os restantes inimigos. Além disso, este jogo possui modo multiplayer, onde vários jogadores podem cooperar de forma a ultrapassarem os diferentes níveis. Mas a realidade aumentada nos dispositivos móveis não se limita aos jogos, mas também a aplicações que facilitam ou enriquecem as atividades do utilizador. A aplicação Word Lens Translator utiliza a câmara do dispositivo móvel para, em tempo real, detetar textos em inglês e automaticamente substituí-los pela respetiva tradução em espanhol, francês, italiano, alemão e português, na própria imagem. Por outro lado, a Augment - 3D Augmented Reality, utiliza as potencialidades do smartphones para fazer o rendering de objetos virtuais animados no mundo virtual, sendo possível movimentá-los pelo ecrã, posicionando-os em pontos estratégicos. Esta aplicação é bastante útil para, por exemplo, simular como fica um móvel numa sala ou um prédio em construção numa determinada zona. A RA pode ser utilizada em diversas áreas e com diferentes objetivos, sendo uma mais-valia relativamente à segurança rodoviária. Existem diversas aplicações para
27
dispositivos móveis que permitem auxiliar o condutor nas suas viagens. iOnRoad Augmented
Driving é uma aplicação que exibe informações relativamente à circulação do automóvel do
utilizador. O dispositivo móvel é estrategicamente colocado na frente do veículo e, com o recurso a vários sensores faz a deteção de objetos que se encontrem à sua frente, calculando a velocidade do veículo em tempo real e consecutivamente a distância para os mesmos, emitindo sinais visuais e sonoros sempre que se encontram a distâncias reduzidas, alertando o utilizador para a possibilidade de colisão enquanto está a tempo de travar.
2.1.7 – Unity3D
O Unity3D é uma ferramenta para o desenvolvimento de jogos criado por uma companhia Dinamarquesa chamada Unity Technologies. De aprendizagem fácil e flexível, proporcionando um ciclo de desenvolvimento rápido e um sistema de eixos do Blender (Foundation, 2013) incorporado (Macedo & Rodrigues, 2011), rapidamente conseguiu tornar-se num dos Game Engines mais populares no seio dos programadores (Wenfeng & Xin, 2012).
Disponível para Windows e Mac OS, uma das suas características mais fortes é permitir que o mesmo código, seja exportado para ser executado em diversas plataformas: Windows, Mac OS, XBOX 360, PlayStation 3, Nintendo Wii, Apple iOS, Google Android e também nos browsers mais modernos (Jie, Wang gen, & Xiaoqing, 2012; Macedo & Rodrigues, 2011). É importante referir que o Unity3D também permite exportar para a funcionalidade Adobe Stage3D do Adobe Flash. Contudo, algumas das suas funcionalidades não são suportadas pelo Flash (Jie et al., 2012). O Unity3D também suporta a utilização de scripts nas linguagens JavaScript (JS), C# e também um dialeto de Python chamado Boo (Sa et al., 2010), sendo que, o autor anteriormente referenciado afirma que os scripts são normalmente vistos como lentos e limitados mas, como no Unity3D são compilados para código nativo, são executados quase tão rapidamente como C++. O mesmo autor considera ainda que estas três linguagens são igualmente rápidas e interoperáveis, podendo aliar-se às bibliotecas .NET que têm suporte a base de dados, expressões regulares, XML e também à rede. As suas características específicas incluem um editor de código integrado, editor de terreno, shaders, scripts, networking, simulador de física, controlo de versão, entre muitas outras
28
(Jie et al., 2012; Wenfeng & Xin, 2012). O Unity3D é totalmente otimizado para o DirectX e OpenGL (Sa et al., 2010).
Feijó et al explicam o funcionamento da programação orientada a objetos dizendo que é uma modelação do mundo como uma coleção de entidades, denominadas de objetos, com comportamentos próprios e que cooperam entre si, tornando desta forma o código mais fácil e organizado (Feijó, Clua, & da Silva, 2010). No que diz respeito ao desenvolvimento em si, no Unity3D todos os objetos na cena do jogo são instâncias da classe GameObject. O GameObject é uma classe que contém todos os componentes que podem ser utilizados nos objetos e dessa forma implementar-lhe funcionalidade real sendo, por exemplo, a luz um componente que está ligado a um GameObject. O GameObject pode ser associado a vários componentes e especificar diversas propriedades. Quando um script é desenvolvido, herda automaticamente as características da classe MonoBehavior, que é uma subclasse especial do Componente.
Um grupo de investigadores indica algumas características poderosas do Unity3D (Sa et al., 2010). Em primeiro lugar, contém mais de 40 sombras, desde as mais simples (e.g. diffuse e glossy) às mais complexas (e.g. Self Iluminated bumped specular), funcionando todas com qualquer tipo de iluminação. A segunda característica refere-se à possibilidade de criar scripts dentro do próprio Unity3D, utilizando o editor integrado. Contudo, para funções mais complexas, é possível utilizar-se o Visual Studio, sendo possível depois compilar as cenas com o Visual Studio, adicionando o UnityEngine.dll. Assim, uma das características mais conhecidas do GameEngine é o seu sistema de análise de colisão entre objetos, utilizando todos os recursos do Ageia PhysX, presente em jogos como o Unreal Tournament 2007 e o Ghost Recon 3, entre outros. Além disso, tem um suporte total para Rigidbodies, que atuam com forças, colisões e análise das articulações, sem requerer nenhum script ou código adicional. Por fim, é possível adicionar-se sons, animações e vídeos aos GameObjects, aumentando desta forma a imersão do utilizador no sistema de realidade virtual.
Em suma, Clarke et al afirmam que os programadores escolhem o Unity3D pela sua versatilidade multiplataformas (Clarke, Arnab, Dunwell, & Brown, 2012) e Macedo et al acreditam que o processo de transportar o jogo para outras plataformas é simples e fácil (Macedo & Rodrigues, 2011). Além da criação de jogos, esta ferramenta permite também a criação de outro conteúdo, como a visualização arquitetónica ou animações
29
3D em tempo real, sendo possível realizar aplicações de RA recorrendo, por exemplo, à extensão do Vuforia, já abordada.
Apesar da RA já existir há algumas décadas, encontra-se ainda em grande desenvolvimento, surgindo cada vez mais sistemas que proporcionam ao utilizador diferentes experiências em tempo real. Desde simples adições de objetos virtuais ao mundo real até ambientes completamente virtuais, onde o utilizador se abstrai totalmente do seu mundo e interage com um sistema totalmente construído por computador, a RA tem vindo a crescer e a possibilitar a criação de sistemas cada vez mais complexos.