PROJETO DE REALIDADE VIRTUAL COM
ESTEREOSCOPIA APLICADO À CONSTRUÇÃO CIVIL
PARA A VISUALIZAÇÃO DE MODELOS E
ESTRUTURAS
Victor Teixeira Rodrigues
Projeto de Graduação apresentado ao Curso de
Engenharia Eletrônica e de Computação da Escola
Politécnica, Universidade Federal do Rio de
Janeiro, como parte dos requisitos necessários à
obtenção do título de Engenheiro.
Orientador: Sergio Barbosa Villas Boas
Rio de Janeiro
Abril de 2016
ii
PROJETO DE REALIDADE VIRTUAL COM
ESTEREOSCOPIA APLICADA À CONSTRUÇÃO CIVIL
PARA A VISUALIZAÇÃO DE MODELOS E
ESTRUTURAS
Victor Teixeira Rodrigues
PROJETO DE GRADUAÇÃO SUBMETIDO AO CORPO DOCENTE DO CURSO
DE ENGENHARIA ELETRÔNICA E DE COMPUTAÇÃO DA ESCOLA
POLITÉCNICA DA UNIVERSIDADE FEDERAL DO RIO DE JANEIRO COMO
PARTE DOS REQUISITOS NECESSÁRIOS PARA A OBTENÇÃO DO GRAU DE
ENGENHEIRO ELETRÔNICO E DE COMPUTAÇÃO
Autor:
_________________________________________________
Victor Teixeira Rodrigues
Orientador:
_________________________________________________
Prof. Sergio Barbosa Villas Boas
Examinador:
_________________________________________________
Prof. Ricardo Guerra Marroquim
Examinador:
_________________________________________________
Prof. Flávio Luis de Mello
Rio de Janeiro – RJ, Brasil
Abril de 2016
iii
UNIVERSIDADE FEDERAL DO RIO DE JANEIRO
Escola Politécnica – Departamento de Eletrônica e de Computação
Centro de Tecnologia, bloco H, sala H-217, Cidade Universitária
Rio de Janeiro – RJ CEP 21949-900
Este exemplar é de propriedade da Universidade Federal do Rio de Janeiro, que
poderá incluí-lo em base de dados, armazenar em computador, microfilmar ou adotar
qualquer forma de arquivamento.
É permitida a menção, reprodução parcial ou integral e a transmissão entre
bibliotecas deste trabalho, sem modificação de seu texto, em qualquer meio que esteja
ou venha a ser fixado, para pesquisa acadêmica, comentários e citações, desde que sem
finalidade comercial e que seja feita a referência bibliográfica completa.
Os conceitos expressos neste trabalho são de responsabilidade do(s) autor(es).
iv
DEDICATÓRIA
Dedico este trabalho ao povo brasileiro que contribuiu de forma significativa à
minha formação e estada nesta universidade. Este projeto é uma pequena forma de
retribuir o investimento e confiança em mim depositados. Dedico também aos meus
amigos e familiares por todo o suporte sem o qual não teria conseguido concluir essa
etapa de minha formação.
v
AGRADECIMENTO
Agradeço, inicialmente, aos meus pais Ana Cristina e Luiz Alberto, que sempre
me motivaram e incentivaram a continuar mesmo nas horas mais difíceis, cobrando, mas
sempre com o carinho de quem quer o melhor para o outro.
A minha avó Armanda que sempre acreditou no meu potencial e me fez acreditar
que eu era capaz de vencer qualquer desafio.
Agradeço em especial a minha namorada Carolina Miranda pelo carinho
incondicional, colaboração na elaboração e produção desse projeto e apoio emocional
nas horas em que tudo parecia sem saída.
Agradeço aos meus amigos da faculdade, que sempre juntos, apoiamos e
ajudamos uns aos outros, seja tirando dúvidas, estudando juntos ou apenas sendo um
ombro amigo nos momentos difíceis.
Aos meus amigos de longa data, que estiveram sempre presentes em minha vida,
me divertindo não me deixando perder a sanidade mental nas vésperas de prova.
Agradeço também aos meus professores da faculdade, sempre solícitos para tirar
qualquer dúvida, independentemente de ser diretamente relacionada a matéria por eles
lecionada ou não.
vi
RESUMO
Este trabalho trata da criação de um projeto de realidade virtual com
estereoscopia, focado no uso para visualização de modelos tridimensionais de ambientes
em projetos de arquitetura. Para isso é utilizado a crescente capacidade de
processamento gráfico que pode ser encontrada nos celulares, junto o dispositivo
Google Cardboard para a elaboração de um projeto de baixo custo.
Palavras-Chave: realidade virtual, estereoscopia, cardboard, arquitetura, baixo custo.
vii
ABSTRACT
This work is about the development of a virtual reality project with stereoscopy,
used in the viewing of tridimensional models of architecture projects. To achieve this, it
is used the advanced graphics processing found the in smartphones in combination with
the Google Cardboard device to create a low cost application.
Keywords: virtual reality, stereoscopy, cardboard, architecture, low cost.
viii
SIGLAS
API – Application Programming Interface
DRM – Digital Rights Management
HTTP – Hypertext Transfer Protocol
IDE – Integrated Development Environment
FPS – First Person Shooter
FOV – Field of View
SDK – Software Development kit
UFRJ – Universidade Federal do Rio de Janeiro
UML – Unified Modeling Language
VR – Virtual Reality
ix
Sumário
1 Introdução 1
1.1 - Tema ........................................................................................... 1
1.2 - Delimitação ................................................................................. 1
1.3 - Motivação ................................................................................... 2
1.4 - Justificativa ................................................................................. 3
1.5 - Objetivos ..................................................................................... 3
1.6 - Metodologia ................................................................................ 4
1.7 - Descrição .................................................................................... 5
2 Realidade Virtual 6
2.1 - Definição ..................................................................................... 6
2.2 - Histórico ...................................................................................... 7
2.4 - Proposta ...................................................................................... 9
3 Tecnologias e Configuração 10
3.1 - Tecnologias disponíveis .............................................................. 10
3.1.1 - Display ..................................................................................... 10
3.1.2 - Controle de movimento ........................................................... 13
3.2 - Escolha de ferramentas ............................................................... 14
3.3 - Configuração do ambiente .......................................................... 16
x
4 Projeto 18
4.1 - Unity 3D ..................................................................................... 18
4.2 - Câmera ........................................................................................ 20
4.3 - Movimento .................................................................................. 21
4.4 - Interação ...................................................................................... 22
4.5 - Modelagem ................................................................................. 23
4.6 - Implementação ............................................................................ 24
5 Conclusões 27
Bibliografia 28
A Plantas Utilizadas 30
B Especificação de Requisitos de Software 32
xi
Lista de Figuras
2.1-1 – Sistema de Realidade Virtual....................................................................... 7
2.2-1 – Esquemático do Sensorama ........................................................................ 8
3.1-2 – Dispositivo Utilizado .................................................................................. 10
3.1-2 – Head Mounted Display ............................................................................... 11
3.1-3 – Google Cardboard ....................................................................................... 12
3.2-1 – PlayStation® Move Navigation Controller ................................................ 15
3.1-1 – Sixaxis Controller ....................................................................................... 17
4.1-1 – Logotipo da Unity ....................................................................................... 18
4.1-2 – Interface do Unity ....................................................................................... 19
4.2-1 – Rotação ....................................................................................................... 20
4.2-2 – Estereoscopia .............................................................................................. 21
4.5-1 – Modelo 3D de Planta .................................................................................. 23
4.6-1 – Entrada do apartamento no modelo ............................................................ 24
4.6-2 – Entrada do apartamento real ....................................................................... 24
4.6-3 – Ambiente decorado ..................................................................................... 25
1
Capítulo 1
Introdução
1.1 – Tema
Este trabalho tem como tema a realização de um estudo de viabilidade e
usabilidade de técnicas de realidade virtual aplicadas em projetos de construção civil e
de design de interiores em projetos de arquitetura. Para tal, desenvolveu-se uma
aplicação que permite resolver o problema de visualização de um projeto por todos os
interessados, auxiliando assim o processo de tomada de decisão quanto às mudanças a
serem realizadas nos projetos, antes da etapa de construção, que em geral é um processo
mais oneroso do que a simulação e modelagem.
A partir de um modelo definido, será possível utilizá-lo diretamente na aplicação
desenvolvida, de forma a permitir através de um determinado conjunto de dispositivos,
a exibição de tais modelos a clientes e responsáveis pelos projetos, fazendo este ficar
imerso neste ambiente virtual. Acredita-se que essa experiência deva influenciar
positivamente os futuros clientes na decisão de aquisição de um determinado produto ou
influenciar a decisão de aceitar determinado projeto por um responsável.
Esta imersão do usuário no sistema se dará pelo uso de técnicas de realidade
virtual, isolando quem estiver utilizando a aplicação de qualquer relação com o
ambiente a sua volta e utilizando o movimento natural do corpo como meio de controlar
os movimentos da aplicação.
1.2 – Delimitação
O objetivo deste projeto é possibilitar a visualização de modelos gerados a partir
de plantas de edificações e desenhos de arquiteturas a um baixo custo de
implementação. Dessa maneira, o desenvolvimento do projeto foi limitado a utilização
de tecnologias mais acessíveis a todos os profissionais que tiverem interesse em se
2
utilizar da aplicação. Outro fator limitante do projeto é a necessidade de portabilidade,
permitindo levar a solução diretamente ao cliente; evitando assim a necessidade de
locomoção até algum ambiente previamente preparado.
No mérito da aplicação, não será trabalhado nesse projeto quesitos como a
otimização do tempo de resposta do processamento gráfico dos elementos e exibição em
tela, em virtude da limitação técnica de desempenho dos dispositivos que venham a ser
utilizados no projeto. Também não se abordará no escopo desse projeto os possíveis
efeitos colaterais causados pelo uso contínuo dessa tecnologia, tal qual náuseas, tonturas
e dores de cabeça.
1.3 – Motivação
Um problema real que existe quanto a construção civil é como convencer os
clientes a tomarem uma decisão de compra de um imóvel ainda na planta. As estratégias
mais tradicionais são a exibição de uma planta detalhada em panfletos de divulgação,
exibição de um protótipo 3D com fotos ou vídeos, construção de maquetes ou ainda, a
construção de um apartamento modelo. Dentre as soluções apresentadas, a que possui
maior efetividade na hora de convencer os clientes é a apresentação de um apartamento
modelo, no entanto esta também é a solução mais custosa. Essa solução passa a ser
ainda mais complicada de ser efetivada uma vez que nem sempre os clientes em
potencial e o local de construção do imóvel se encontram geograficamente próximos
uns dos outros. Um bom exemplo disso foi o crescimento expressivo do mercado
imobiliário de Macaé, movido pela indústria do petróleo, onde a grande maioria dos
possíveis compradores dos novos empreendimentos da região se encontravam nas
capitais estaduais como Rio de Janeiro e São Paulo. A proposta consiste então em
construir uma aplicação que seja tão efetiva para a decisão de compra quanto a
construção de um apartamento modelo, que permita ser levada até os clientes com
facilidade de mobilidade e que não seja tão onerosa.
No caso da construção civil e arquitetura, com a necessidade de se trabalhar com
projetos personalizados, uma interação mais elaborada com o cliente é fundamental,
evoluindo assim o nível de detalhamento e precisão do conteúdo dos projetos
3
elaborados. De acordo com Carvalho, Heineck e Angelim (2010), ao se tomar
estratégias de flexibilização para tornar o empreendimento mercadologicamente mais
atrativo, é preciso boa capacidade gerencial para se obter as vendas nas fases iniciais de
construção a fim de permitir uma negociação com os clientes sobre as personalizações
desejadas.
1.4 – Justificativa
Apesar de diferentes estudos na área de virtualização da realidade existirem a
bastante tempo, recentemente, grandes empresas têm investindo bastante em novas
soluções para esta área. Assim, é previsto que em um futuro próximo a utilização dessas
tecnologias venham fazer parte da vida cotidiana das pessoas.
Existem ainda, diversas aplicações que ainda não foram devidamente exploradas
pelas soluções em realidade virtual hoje existentes. Hoje, as áreas que mais recebem
investimentos para o desenvolvimento dessa tecnologia são as aplicações para
simulações militares, indústria de jogos e a indústria cinematográfica. Criar então uma
aplicação que seja voltada para a área de engenharia e arquitetura é interessante por ser
uma área ainda pouco explorada e com enorme potencial de crescimento.
A originalidade desse projeto se deve a junção dos usos de tecnologias ainda
pouco exploradas de realidade virtual com estereoscopia, alinhadas com um
desenvolvimento focado em projetos de baixo custo para os usuários, tanto a nível de
equipamentos quanto a requisitos para sua utilização. É fundamental que a aplicação
criada tenha um processo de configuração e execução simples, permitindo aos usuários
modificarem seus ambientes.
1.5 – Objetivos
O objetivo geral do projeto será, portanto, desenvolver um sistema
computacional capaz de simular ambientes em três dimensões dentro de uma aplicação
de realidade virtual com o uso de estereoscopia. Desta forma, os objetivos específicos
são: a criação de uma aplicação capaz de interpretar dados de softwares de modelagem,
4
a projeção desse ambiente modelado dentro desta aplicação de realidade virtual
desenvolvida e a utilização de módulos de controle de movimento para navegação no
ambiente virtual.
Como validação do projeto desenvolvido deverá ser utilizado um modelo
tridimensional baseado em um ambiente físico real, testando assim a eficiência em se
promover a sensação de realismo e imersão do usuário no projeto. Outro elemento
interessante para aumentar a imersão do usuário com o ambiente virtual ao seu redor,
será a possibilidade de interagir com alguns dos elementos que devem compor o cenário
como por exemplo portas e equipamentos eletrônicos.
1.6 – Metodologia e Materiais
O projeto é subdividido em 4 etapas: preparação do ambiente, desenvolvimento
do aplicativo, modelagem 3D de plantas de edificações e validação com usuários sobre
a efetividade alcançada com o uso do produto desenvolvido. Na configuração do
ambiente será definida a forma de integração dos componentes utilizados na aplicação e
as tecnologias consideradas para o projeto. Essa sessão será mais detalhada no capítulo
3 quando será feita uma análise das tecnologias disponíveis, suas vantagens e
desvantagens para o cumprimento dos objetivos esperados.
Para a etapa de configuração do ambiente é levado em consideração o efeito que
deseja ser alcançado e assim, escolhido as tecnologias e os materiais necessários para a
elaboração do projeto.
Na etapa seguinte, com as tecnologias definidas e o ambiente de execução
configurado será desenvolvida uma aplicação que deverá atender os requisitos do
projeto, encontrados no Apêndice B, utilizando como metodologia de desenvolvimento
o “Scrum Academic”.
5
1.7 – Descrição
O capítulo 2 apresentará uma ambientação, definindo o que é o conceito de
realidade virtual e mostrando como essa tecnologia foi trabalhada e desenvolvida
durante a história.
O capítulo 3 apresentará as tecnologias existentes no mercado e que poderiam
ser utilizadas no desenvolvimento do projeto, assim como a justificativa da tomada de
decisão quanto qual delas será efetivamente utilizada para o desenvolvimento da
solução proposta. Com essa informação definida, neste capítulo abordaremos também
as mudanças nas configurações de dispositivos necessárias para a execução da
aplicação.
Já no capítulo 4, é feita a descrição da realização do projeto, com a apresentação
detalhada de quais foram os métodos utilizados para se conseguir realizar cada um dos
casos de uso propostos no projeto, definidos no Anexo B. Será tratado também como foi
realizada a execução da modelagem de um projeto 3D a partir de uma planta real e
implantação desse modelo no projeto.
Com esse modelo implantado e funcionando será apresentado no capítulo 5 uma
avaliação do desempenho da aplicação de forma a validar o funcionamento e efetividade
do projeto como solução para o problema de visualização de modelos e projetar
melhorias futuras.
6
Capítulo 2
Realidade Virtual
2.1 – Definição
Para trabalhar o sentido do que é pretendido, devemos entender o significado de
realidade virtual. Recorrendo ao dicionário, obtemos que entre os possíveis significados
de virtual está: “Que não existe como realidade, mas sim como potência ou faculdade.”.
Contrapondo esta definição com o significado de realidade, notamos que essa junção de
palavras de sentido aparentemente contraditórios implica que a realidade virtual é algo
que apesar de inexistente fisicamente, é capaz de produzir a sensação de ser algo real.
Pimentel [5] definiu o termo “Realidade Virtual” como “o uso da alta tecnologia para
convencer o usuário que ele está em outra realidade.”.
Esse termo foi utilizado pela primeira vez por Jaron Lanier em 1987 durante seu
trabalho na “VPL Research”, empresa que veio a ser pioneira na comercialização dos
primeiros protótipos de óculos de realidade virtual. O termo surgiu da necessidade de
diferenciar as simulações por computadores tradicionais do mundo digital que ele
almejava criar.
Realidade virtual pode definir uma gama muito abrangente de aplicações.
Geralmente, ela é dividida em três aspectos básicos: a imersão, a interação e o
envolvimento. A ideia de imersão está ligada ao o sentimento de estar dentro do
ambiente, normalmente obtido através do uso de capacetes/óculos ou simulações dentro
de salas especiais. Sistemas não imersivos por exemplo são como um simulador de voo
rodando em um computador tradicional, onde qualquer movimento de olhar para fora do
monitor já transporta o usuário de volta para o mundo real. A interação, é a capacidade
do computador de detectar os movimentos do usuário e modificar instantaneamente o
mundo virtual de acordo com as entradas recebidas. O envolvimento está diretamente
relacionado a capacidade de engajamento dos usuários dentro do mundo virtual, este
7
podendo ser ativo tal qual a participação no enredo de um videogame, ou passivo como
a leitura de um livro ou acompanhar uma série de televisão.
No mérito da aplicação desenvolvida nesse projeto, o objetivo com realidade
virtual será criar um produto que possa de ludibriar o usuário se sentir totalmente
imerso no ambiente que a ele será apresentado, portanto que seja imersivo e que possua
interação.
Figura 2.1-1 Sistema de realidade virtual
Fonte: Repositório digital da UPF[9]
2.2 – Histórico
Os primeiros estudos de aplicações e ferramentas que possibilitassem a
realização da virtualização de ambientes datam de meados da década de 50, quando
ainda nem se utilizava o termo “realidade virtual”. Essas primeiras utilizações de
tecnologias semelhantes surgiram como experimentos para a indústria do cinema,
porém se aproximam mais com a tecnologia que hoje chamamos de cinema 4D, pois
além de tentar explorar uma visão tridimensional, buscava excitar outros sentidos como
a audição, o olfato e tato.
O primeiro equipamento que se tem registro, com o objetivo explorar esses
conceitos de realidade virtual, foi o Sensorama, criado por Morton Heilig e patenteado
8
em 1962. Esse equipamento era uma cabine que combina filmes 3D com visão
estereoscópica, som estéreo, vibrações mecânicas, aromas e movimentação do ar com
uso de ventiladores.
Figura 2.2-1 Esquemático do Sensorama.
Fonte: Wikipédia[4]
Nos anos seguintes, diversas outras tecnologias passaram a surgir explorando
novas aplicações de interação entre usuários e os mundos virtuais desenvolvidos. Para
ser capaz de detectar o movimento da cabeça surgiram diversas tentativas de
videocapacetes e detectores de movimento. Nesse período as principais tecnologias
desenvolvidas eram voltadas para aplicações militares, por exemplo, o projeto
conhecido como “Super Cockpit” que tinha como objetivo simular uma cabine de voo,
permitindo treinar pilotos sem colocar em risco o investimento com aviões. Essas
tecnologias, no entanto, historicamente possuem dois grandes problemas: baixo
desempenho e custo muito elevado.
9
2.3 – Proposta
Segundo Dodge (1997), na arquitetura e na construção civil a necessidade de um
desenho surge logo na primeira etapa de desenvolvimento de um projeto. A
transformação desses desenhos em 2 dimensões para modelos em 3 dimensões é apenas
uma evolução natural das etapas de projeto, hoje sendo bastante comum em quase todos
os projetos de grande porte. Com esses modelos prontos, a implantação dentro de uma
aplicação VR passa a ser bastante simples, o que favorece bastante a criação de uma
plataforma que se aproveite dessa simplicidade.
Recentemente, com diversas grandes empresas voltando novamente sua atenção
para o mercado de realidade virtual, começaram a surgir novas abordagens que
possibilitaram resolver um dos grandes problemas tratados na história dessas aplicações,
seu custo. Em 2014, a Google apresentou ao mercado uma tecnologia capaz de levar a
realidade virtual a qualquer um que estivesse interessado a preço de apenas um pedaço
de papelão. Com o Google Cardboard, o desenvolvimento de novas aplicações que
envolvam realidade virtual imersiva se tornou muito mais acessível aos
desenvolvedores.
Tirando proveito da facilidade no desenvolvimento de aplicações em VR que
essa tecnologia trouxe, tem-se como proposta do trabalho, a utilização desta para buscar
soluções aos problemas mencionados no capítulo 1.4, apresentando uma solução que
possa vir futuramente a ser aproveitada comercialmente por empresas de construção e
profissionais da área.
10
Capítulo 3
Tecnologias e Configuração
3.1 – Tecnologias Disponíveis
3.1.1 – Displays
Para começar uma análise das tecnologias disponíveis será filtrada as que não
atendem nossos objetivos, isso é trataremos apenas as que possuem imersão,
possibilitam interatividade e envolvimento e que sejam de baixo custo. Como
mencionado anteriormente diversas companhias tem investido bastante em tecnologias
de realidade virtual recentemente, principalmente no desenvolvimento de visor
estereoscópico de cabeça (head mounted displays). Alguns dos que serão listados a
seguir ainda não foram lançados, tendo o lançamento previsto para meados de 2016.
Figura 3.1-1 Dispositivo Utilizado
Fonte: Fotografia pelo autor
11
Figura 3.1-2 Head Mounted Display
Fonte: Adaptado de Robotikmedizin[10]
O mais famoso dispositivo de realidade virtual imersivo existente é o
Oculus Rift, que começou como uma campanha do site “Kickstarter”, mas foi comprado
pelo Facebook em 2014. Ele é um dispositivo HMD totalmente imersivo que deve ser
ligado a um computador com uma placa de vídeo para que faça o processamento das
imagens e dos dados de posição enviados. A versão mais recente do aparelho planejada
para o primeiro semestre de 2016 tem seu preço estimado de venda em 699€
(R$2900,00). Como custo estimado de requisitos foi considerado um preço médio de
um computador pré-montado com as peças iguais aos requisitos mínimos do
dispositivo.
Seguindo a linha histórica, o segundo aparelho que apareceu no mercado foi a
solução da Google para a visualização de realidade virtual, o Cardboard. Esse
dispositivo foi uma aposta da empresa de Mountain View para a popularização da
realidade virtual, pois permitia aos usuários montar seus próprios dispositivos usando
uma base simples feita com papelão e acoplando seus celulares. A restrição dessa
solução, é que para funcionar, é necessário que o celular seja um smartphone e possua
12
um módulo de giroscópio acoplado para que seja capaz de captar os movimentos do
usuário. Para uma estimativa do preço base, foram considerados os smartphones listados
na página da companhia como compatíveis, e selecionado o menor preço encontrado
nas principais lojas de varejo do Brasil.
Figura 3.1-3 Google Cardboard
Fonte: Google Cardboard [11]
Semelhante a aproximação do Cardboard, o Samsung VR foi feito para se usar
os smartphones da linha Samsung Galaxy como display, sensores e processador gráfico
das aplicações de realidade virtual.
O HTC Vive é um dispositivo feito em parceria da empresa taiwanesa HTC
Corporation com a empresa americana Valve, dona de uma plataforma de distribuição
de videogames online. Esse dispositivo segue a linha de desenvolvimento do Oculus
Rift se ligando a um computador para realizar o processamento. Seu preço de pré-
lançamento nos Estados Unidos está em $799,00 USD (R$3200,00) e possui requisitos
de processamento parecidos.
O Playstation VR se diferencia das demais aplicações pois no lugar de utilizar
um computador para realizar o processamento ele foi planejado para utilizar o
videogame Playstation 4, se aproveitando do hardware voltado para trabalhar com
13
aplicações que requerem um alto desempenho no tratamento de elementos gráficos. Seu
preço previsto de acordo com dados revelados da empresa será $800,00USD
(R$3200,00).
Por último, há o Beenoculus, um projeto de uma empresa brasileira que
semelhante ao Samsung VR e o Cardboard onde se propõe transformar um smartphone
em um dispositivo VR, sua vantagem em relação aos concorrentes é levar junto do
produto um kit de desenvolvimento de aplicativos em VR para atrair novos
desenvolvedores. Seu preço é R$160,00 sem considerar o smartphone.
Tabela 3.1.1-1 Comparação de Preços
Aparelho Custo Requisitos Total
Oculus Rift $500,00 USD $1000,00 USD $1500,00 USD
Google Cardboard $0,00 USD $120,00 USD $120,00 USD
Samsung VR $1000,00 USD $250 USD $1250,00 USD
HTC Vive $600 USD $1000,00 USD $1600,00 USD
Playstation VR $800,00 USD $500,00 USD $1300,00 USD
Beenoculus $40,00 USD $120,00 USD $160,00 USD
3.1.2 – Controladores de Movimento
Os dispositivos HMD são capazes de controlar os movimentos da cabeça do
usuário dentro de uma determinada aplicação, mas para este projeto, apenas isso não é o
suficiente. É desejável permitir aos usuários poder navegar livremente dentro do
ambiente no qual está inserido, e para isso, deve ser usado algum captador de
movimento por imagens ou controle remoto para isso. A solução mais comum é tomar
proveito dos padrões de controle de movimento existentes em jogos de videogame,
utilizando um joystick para realizar essa movimentação.
Como opções, há um controle de videogame clássico, como o Dualshock do
Playstation ou o controle de XBOX. Possuem a vantagem de poder se conectar ao
14
computador ou outros dispositivos sem precisar utilizar fios, o que facilita a
movimentação do usuário no mundo real enquanto utiliza a aplicação. Outra solução
para a movimentação, é tentar simular um controle como uma espécie de camada dentro
do aplicativo desenvolvido, em que o usuário controle o andar/parar olhando para um
ponto específico no mundo virtual. Uma terceira solução, é utilizar um controle que seja
menos complexo que um controle de videogame tradicional, mas que permitisse usar os
mesmos preceitos de controle de movimento. Como os preços dos componentes listados
nesse tópico não variam muito e nem possuem tanta relevância para o custo total em
relação aos preços listados no tópico anterior, não será feita uma comparação direta para
a escolha da ferramenta adotada.
3.2 – Escolha de ferramentas
Como o objetivo deste projeto é fornecer uma solução de baixo custo para o
problema de visualização de modelos, a ferramenta escolhida para o desenvolvimento
foi o Google Cardboard, pois além de possuir o menor custo entre as aplicações listadas,
é o produto de mais fácil obtenção, já que está presente no mercado, pode ser fabricado
manualmente e não requer a compra de nenhuma licença/kit de desenvolvedor.
Escolhendo essa ferramenta, temos em mente que a aplicação desenvolvida terá como
limitação a capacidade de tratamento gráfico do dispositivo utilizado. Caso seja
escolhido trabalhar com um nível de detalhamento muito grande dos ambientes
retratados, pode ser que a solução apresente desempenho diferente de acordo com qual a
capacidade do smartphone utilizado.
Como controlador de movimentos, a ferramenta escolhida foi o controle de
Playstation 3, pois como foi escolhido trabalhar com um equipamento que use como
base um smartphone, ele possui uma conexão sem fio via bluetooth, tecnologia que está
presente na grande maioria dos aparelhos celular hoje em dia. A desvantagem de utilizar
esse tipo de equipamento é que muitas pessoas que não tem costume de manusear
controles de videogame podem se sentir desconfortáveis com sua utilização. Esse
desconforto pode em parte ser resolvido utilizando o Playstation Move Navigation, uma
15
versão do controle de Playstaion 3, simplificado na quantidade de botões e que o
usuário pode manusear utilizando apenas uma mão.
Figura 3.2-1 PlayStation®Move Navigation Controller
Fonte: Site do Playstation[17]
Agora que está definido a utilização do o Google Cardboard, é possível analisar
quais ferramentas de desenvolvimento existem disponíveis para esta plataforma. A
própria Google oferece em seu site[11] duas opções de APIs para a produção de
aplicações, uma que possibilita utilizar como IDE a ferramenta tradicional de
desenvolvimento de aplicativos para Android, o Android Studio e a outra é um SDK
para a plataforma Unity3D. A escolha realizada para essa ferramenta então será
trabalhar com a Unity, pois como ela é pensada originalmente para o desenvolvimento
de jogos em 3D, podemos simplesmente realizar pequenas alterações em algumas
funções de movimento dos objetos em cena para adaptar a necessidade em VR. Outra
grande vantagem de se trabalhar com essa aplicação, é sua facilidade em importar
modelos 3D feitos em outros softwares de modelagem, possibilitando assim a
reutilização de modelos arquitetônicos que tenham sido desenvolvidos na
implementação de projetos anteriores.
16
3.3 – Configuração do ambiente
Após as definições de todas as ferramentas utilizadas para a realização do
trabalho, é importante atentar para como será feita a integração entre elas. No
desenvolvimento do projeto em Unity3D, as entradas do sistema responsáveis pelo
movimento, ou seja, as recebidas pelo controle são mapeadas como entradas de teclado,
lidas pela aplicação como os números de 0 a 9 do teclado. O sistema operacional deve
então ser capaz de ler os comandos de entrada do usuário como se fosse o apertar destes
botões. Nativamente, o sistema operacional Android não é capaz de interpretar os dados
enviados via bluetooth pelo controle escolhido, para realizar essa tarefa, será utilizado
uma aplicação para Android chamada Sixaxis Controller [12]. Essa aplicação é capaz de
sobrescrever o driver de bluetooth original do Android para conseguir mapear os
comandos recebidos em entradas de teclado.
Para ser capaz de sobrescrever as funções de bluetooth do sistema operacional, é
preciso que o usuário tenha acesso a “root” do aparelho. Este procedimento tem esse
nome visto o fato do sistema Android ser baseado em Linux, o qual possui um
superusuário com este mesmo nome, bem como acesso a configurações, comandos e
arquivos sensíveis do sistema operacional, e por isso, protegido da maioria dos usuários.
Legalmente em diversos países da Europa e nos Estados Unidos, liberar o acesso à raiz
do sistema operacional pode ser considerado uma prática ilegal, por permitir aos
usuários meios alternativos de reproduzir os conteúdos de arquivos que sejam
protegidos por DRM; no entanto, no Brasil, juristas defendem que a prática de “root”
não caracteriza um mau uso do produto, portanto seu uso é liberado de acordo com o
Código de Defesa do Consumidor [13].
17
Figura 3.3-1 Sixaxis Controller
Uma vez com o programa instalado no smartphone, o usuário deve conectar o
controle no computador via USB e trocar o endereço MAC do bluetooth no qual o
controle estava originalmente pareado para o mesmo endereço do celular. Para isso no
computador deve ser executado uma ferramenta chamada “Sixaxis Pair Tool”,
disponível no site do fabricante do aplicativo[12], conectar o celular via USB e colocar
na janela que é exibida o número que aparece na parte inferior do aplicativo.
18
Capítulo 4
Projeto
4.1 – Unity3D
Quando se trabalha com a ferramenta Unity existe a vantagem de com a
elaboração de apenas um projeto, ser capaz de compilar a aplicação para diferentes
plataformas, como Android, iOS, Windows ou Web. Desta maneira, em um único
projeto de realidade virtual facilmente pode ser gerada uma visualização web do projeto
caso os clientes tenham desejo de acompanhar o projeto sem possuir o equipamento
necessário para visualizar a aplicação originalmente proposta.
Figura 4.1-1 Logotipo da Unity
Fonte: Site do Unity
No Unity3D, todo o ambiente de uma aplicação fica salvo dentro de uma Cena.
Um programa pode possuir mais do que uma cena, mas apenas uma será carregada por
vez, o que serve para melhorar a performance da aplicação visto que apenas os
componentes do programa que estiverem presentes na cena serão carregados. Esses
componentes da aplicação podem ser modelos, áudios, imagens, scripts ou uma junção
desses elementos pré-fabricados. Esses elementos ao serem carregados para dentro de
uma cena, são incorporados como componentes de um GameObject. Cada GameObject
19
é um objeto que possui uma posição tridimensional do espaço da cena (posição x, y e z,
rotação em cada um dos eixos e escala). Originalmente esses objetos são invisíveis
dentro da cena, mas podem assumir a aparência de um modelo tridimensional que a ele
tenha sido atribuído; isso se dá carregando para o objeto as informações sobre o Mesh
(malha de pontos que compões os triângulos que formam o objeto) e sua textura. Para
tornar esse objeto real dentro da aplicação é necessário também incluir os elementos
Collider, que funciona como uma malha simplificada dos limites do objeto para que o
sistema possa detectar colisão entre eles, (evitando por exemplo que o usuário seja
capaz de atravessar as paredes) e o elemento Rigidbody, que adiciona aos objetos
propriedades físicas como gravidade, tração e elasticidade. Os GameObjects também
podem servir como containers de outros GameObjects, criando assim uma hierarquia
que pode ser utilizada tanto para simples organização pessoal dos objetos em uma cena
quanto para a atualização simultânea de determinada característica de diversos objetos
presentes dentro de uma única hierarquia.
Figura 4.1-2 Interface do Unity
20
4.2 – Câmera
Um dos componentes que o GameObject pode receber é o elemento Câmera.
Esse elemento é fundamental para qualquer aplicação pois ele que vai controlar o que
deve ser exibido em tela. No caso da realidade virtual imersiva, para produzir o efeito
de estereoscópica precisaremos de duas câmeras gravando a cena, ambas ligeiramente
afastadas uma da outra para capturar as imagens que são enviadas para cada um dos
olhos do usuário. Para conseguir esse efeito utilizamos a SDK fornecida pela Google,
onde é possível encontrar um elemento pré-fabricado para Unity que é composto por
uma câmera principal, duas câmeras secundárias afastadas uma da outra e seus
respectivos scripts de controle.
Figura 4.2-1 Rotação
Fonte: The Bored Engineers[15]
Como não existe uma maneira direta de mapear para qual ponto da tela cada
câmera estará jogando sua imagem específica, esses scripts feitos em C# são os
responsáveis por mapear a imagem que está sendo obtida por essas câmeras para os dois
lados da câmera principal, essa sim, sendo a responsável por transmitir a imagem para o
dispositivo de saída. Essa imagem que será enviada das câmeras secundárias para a
principal recebe um pequeno ajuste do FOV (campo de visão) transformando a imagem
de um retângulo em uma imagem mais larga nos centros e mais estreita nas bordas, para
assim reduzir a distorção causada pelas lentes presentes no Cardboard. Essas lentes
servem para facilitar os olhos a focarem em pontos específicos da tela, aliviando o
desconforto de tentar focar em algo a 5cm de distância.
21
Figura 4.2-2 Estereoscopia
Fonte: Taishimizu [14]
No mesmo elemento pré-fabricado oferecido pela Google, é possível encontrar
também um outro script responsável por receber os dados do componente de giroscópio
do celular e traduzir esses dados em comandos de rotação em torno dos eixos x, y e z
(guinada [yaw], arfagem [pitch] e rolagem [roll]) da câmera principal (e
consequentemente das secundárias vide sistema de hierarquia). Esse script recebe como
parâmetro o elemento GameObject que representa a cabeça do usuário na cena e a todo
momento atualiza sua posição para igualar os dados recebidos.
4.3 – Movimento
Para realizar o movimento de translação no cenário, é anexado ao objeto
responsável por conter os componentes físicos do usuário um script que recebe as
entradas de dados vindas do controlador e atualizam a posição atual do centro do objeto.
Esse script é baseado em um script tradicional de jogos FPS (jogos de tiro em primeira
22
pessoa), onde é feita uma transformação dos eixos do ambiente para igualar a direção de
onde o usuário estiver olhando para assim traduzir os comandos de movimento para a
direção correta. Para isso, a cada update, esse script iguala a rotação do objeto do
usuário ao objeto da cabeça, responsável por conter as câmeras.
Para controlar a velocidade com que o usuário se movimenta é definido um
parâmetro no objeto que controla a velocidade caso o usuário esteja andando ou
correndo. Na implementação desse projeto foi considerado que uma pessoa anda em
média com uma velocidade de 3 metros por segundo e corre com uma velocidade de 6
metros por segundo. Foi feito também um algoritmo de pulo, que altera
temporariamente a posição do usuário no eixo y e deixa a física embutida no sistema
trazer o usuário de volta plano original.
4.4 – Interação
Na aplicação é desejável que se permita ao usuário interagir com os objetos no
cenário, como por exemplo abrir e fechar portas ou ligar e desligar luzes e
equipamentos eletrônicos. A implementação desta funcionalidade se inspirou
novamente nos jogos FPS, onde é desejável saber se um disparo realizado por um
jogador acertou o corpo de um adversário, e se para isso ele passou por algum obstáculo
pelo caminho. A partir do centro da câmera principal e seguindo na direção em que o
usuário estiver olhando, é traçado uma linha invisível responsável por fazer um
algoritmo de “Ray Casting” que retorna uma lista de objetos pelos quais esse raio
atravessou seus “Colliders” e a distância até eles.
Esta informação pode ser usada então como gatilho da chamada de funções
específicas de cada objeto, como por exemplo alterar sua posição espacial no caso das
portas. Outro exemplo de uso dessas funções é alterar seus próprios atributos, como
alterar seu material, a emissão de sons ou aumentar e diminuir a intensidade das luzes
em um ambiente.
Essa chamada de algoritmo de rastreamento foi mapeada para o botão traseiro
(gatilho) do controle utilizado, de forma a simplificar seu uso uma vez que o usuário da
23
aplicação enquanto estiver dentro do mundo virtual, não conseguirá olhar para o
controle em sua mão para saber exatamente qual botão apertar.
4.5 – Modelagem
O Unity3D pode importar diretamente modelos produzidos pelos softwares
Maya, Cinema4D, 3DS Max, Cheetah3D, Modo, Lightwave, Blender e SketchUp. É
possível também caso não se deseje utilizar nenhuma ferramenta externa fazer a
modelagem do ambiente dentro do próprio Unity. Isso se faz criando o ambiente a partir
de elementos básicos como retângulos, cubos e esfera.
Uma técnica bastante utilizada para modelar um ambiente desse tipo é importar
a planta baixa original do projeto como um arquivo de imagem exibida no plano XZ e ir
completando a imagem desenhando retângulos por cima de cada ambiente e paredes.
Após essa etapa basta adicionar volume aos objetos desejados como por exemplo
adicionando uma altura (eixo y) aos paralelepípedos que vão formar as paredes do
ambiente. Outra maneira de montar o esqueleto do ambiente diretamente em Unity é
calcular para cada parede de nosso ambiente seu tamanho, centro e rotação, e assim
adicionar esses atributos diretamente para os paralelepípedos que vão formar a
construção.
Figura 4.5-1 Modelo 3D de Planta
24
4.6 – Implementação
Para a demonstração desse projeto, foi utilizada a última técnica de modelagem
listada no tópico anterior para elaborar o modelo da figura 4.5-1. Como base para a
construção dele, foi utilizada uma planta baixa real que pode ser encontrada no Anexo
A deste projeto. Essa planta foi elaborada por uma empresa de arquitetura em 2013
como um plano de reforma para um apartamento, residência do autor deste projeto.
Figura 4.6-1 Entrada do apartamento no modelo
Figura 4.6-2 Entrada do apartamento real
25
A escolha deste projeto específico foi feita para poder demonstrar através de um
comparativo de imagens que pode ser visto nas figuras 4.6-1 e 4.6-2 quanto a eficiência
do projeto para permitir aos usuários terem uma noção espacial dos espaços visitados. O
projeto foi elaborado para simular o ponto de vista de uma pessoa com 1,65m, que é
aproximadamente a média de altura entre homens e mulheres de 30 a 34 anos no brasil
(dado do IBGE[16]). As cores usadas no modelo foram escolhidas apenas com o critério
de separar os ambientes na imagem 4.5-1, sem qualquer referência ao projeto real.
Como é possível perceber comparando as imagens, aparentemente existe uma
pequena diferença na largura do corredor, que era prevista na planta baixa, mas não foi
levada em consideração no modelo tridimensional produzido, e na profundidade da
imagem. Essas diferenças podem ser explicadas por diversos fatores, entre eles uma
diferença na angulação entre a foto e a reprodução do modelo em tela; uma distorção
causada pela lente do aparelho utilizado para tirar a fotografia; pela presença de mobília
iludindo a percepção espacial devido ao preenchimento do espaço.
Figura 4.6-3 Ambiente decorado
26
Além do desenvolvimento deste aplicativo que simplesmente tem como objetivo
representar a modelagem de um espaço real, foi desenvolvido para demonstrar as
funcionalidades possíveis um ambiente menor, porém totalmente decorado (visível na
figura 4.6-3) em que o usuário é capaz de interagir com o ambiente abrindo as portas
que foram modeladas dentro desse aplicativo.
Esse mesmo ambiente foi replicado novamente em outro aplicativo
(representado na figura 4.1-2) que além do interior, também representa um exterior com
mais detalhes, incluindo um terreno, vegetação, água e vento. O objetivo deste segundo
ambiente é mostrar a limitação de se trabalhar utilizando um smartphone para fazer o
processamento gráfico, pois com apenas essas mudanças, já é possível perceber uma
queda significativa de desempenho, rodando a aplicação com uma taxa de quadros por
segundo abaixo dos 24fps que costuma ser o mínimo para uma aplicação rodar sem
causar desconforto ao usuário.
27
Capítulo 5
Conclusões
O sistema desenvolvido se mostrou eficiente na demonstração da disposição
espacial dos ambientes para o usuário. Segundo opiniões de usuários que testaram o
projeto feito a partir da planta real, o ambiente virtual serviu como uma ótima
ferramenta para se ter a noção de espaço do ambiente. Infelizmente, não foi possível
realizar esse teste com um número maior de participantes, pois para isso as pessoas
teriam tanto que ter acesso ao dispositivo quanto conhecer pessoalmente o ambiente
modelado. Outro ponto aprovado por quem testou o projeto foi o uso do aplicativo para
demonstrar um ambiente totalmente decorado, sugerindo como trabalhos futuros
permitir o usuário em tempo real ser capaz de alterar a posição dos objetos e suas cores
por dentro do aplicativo. Um ponto que deve ser melhor trabalhado é a usabilidade, pois
mesmo o uso do controle simplificado não foi o suficiente para resolver a dificuldade de
controlar o personagem no mundo virtual de quem não tem costume de jogar com esse
tipo de joystick em videogames.
Tanto o processo de importação de um modelo para dentro do Unity, quando a
modelagem de um ambiente dentro da própria IDE é um processo bem simples que não
requer nenhum conhecimento de programação, possibilitando que qualquer um importe
seus modelos para um projeto base em que já tenha sido pré-carregado os objetos que
contêm os scripts de controle de câmera e personagem. Um projeto simples para que
esses desenvolvedores usem de base, assim como um pequeno tutorial de utilização e
criação de aplicativo para Android pode ser encontrado no GitHub
https://github.com/sbvb/RealidadeVirtual.
Outra sugestão de trabalho futuro é construir uma plataforma online que seja
capaz armazenar os modelos 3D de diferentes usuários, e se criar em uma única
aplicação uma funcionalidade de baixar e carregar em tempo real modelos armazenados
em um servidor. Dessa maneira bastaria disponibilizar o aplicativo uma única vez para
o cliente, dando maior liberdade para os desenvolvedores trabalharem nos modelos.
28
Bibliografia
[1] REVISTABW. Modelagem de Ambientes Virtuais em Realidade Virtual. Revista
Brasileira de Web. http://www.revistabw.com.br/revistabw/modelagem-de-
ambientes-virtuais-em-realidade-virtual/ (Acesso em 25 fevereiro 2016).
[2] “Virtual”. Dicionário Michaelis. http://michaelis.uol.com.br/. (Acesso em 01 março
2016).
[3] "Jaron Lanier". Wikipedia, The Free Encyclopedia.
https://en.wikipedia.org/w/index.php?title=Jaron_Lanier&oldid=704425163
(Acesso em 3 março 2016).
[4] "Sensorama". Wikipedia, The Free Encyclopedia,
https://en.wikipedia.org/w/index.php?title=Sensorama&oldid=648461523 (Acesso
em 3 março 2016).
[5] PIMENTEL, K.; TEIXEIRA, K. “Virtual reality - through the new looking glass”.
2.ed. New York, McGraw-Hill, 1995.
[6] MACHADO, L. S. Conceitos básicos da realidade virtual, Monografia, INPE-5975-
PUD/025, Instituto Nacional de Pesquisas Espaciais, São José dos Campos/SP.
Disponível on-line em: http://www.lsi.usp.br/~liliane/conceitosrv.html, 1995.
[7] McGEE, J. PRUSAK, L. Gerenciamento estratégico da informação. Rio de Janeiro:
Campus, 1994.
[8] CARVALHO, L. HEINECK, L. ANGELIM, V. Flexibilidade arquitetônica e
gerenciamento de empreendimentos: O Caso de um Perfil de Vendas Retardatário,
ENTAC, 2010.
[9] Visão geral de realidade virtual. Universidade de Passo Fundo
http://usuarios.upf.br/~pasqualotti/ccc053/intr_rv/ (Acesso em 04 março 2016)
[10] Technische Realisierungen und medizinische Anwendungen von Head-Mounted-
Displays. http://www.robotikmedizin.de/robot_4.htm (Acesso em 05 março 2016)
[11] Google Cardboard. https://developers.google.com/cardboard/ (Acesso em 05
março 2016)
[12] Sixaxis Controller. http://dancingpixelstudios.com/ (Acesso em 06 março 2016)
[13] "Root no Android" Wikipedia, The Free Encyclopedia,
https://pt.wikipedia.org/wiki/Root_no_Android (Acesso em 06 março 2016).
[14] Taishimizu. http://taishimizu.com/193/3D-Considered-Harmful (Acesso em 06
março 2016).
29
[15] The Bored Engineers. http://theboredengineers.com/2012/05/the-quadcopter-
basics/. (Acesso em 07 março 2016).
[16] Altura média no brasil. IBGE. Disponível on-line em:
http://www.ibge.gov.br/home/estatistica/populacao/condicaodevida/pof/2008_2009
_encaa/tabelas_pdf/tab1_1.pdf. (Acesso em 08 março 2016).
[17] Playstation. Disponível on-line em: https://www.playstation.com/pt-br/ (Acesso
em 10 março 2016).
[18] Scrum Academic. http://www.sbvb.com.br/proposals/Scrum-Academic-
sbvb.com.br.pdf (Acesso em 19 março 2016).
1
Apêndice B
Especificação de requisitos de Software
Sumário
Sumário ......................................................................................................................................... 1
1 Introdução ............................................................................................................................. 2
1.1 Objetivo ......................................................................................................................... 2
1.2 Escopo do Sistema ........................................................................................................ 2
1.3 Definições ..................................................................................................................... 2
2 Descrição Geral do Sistema .................................................................................................. 3
2.1 Interface ......................................................................................................................... 3
2.2 Usuários ......................................................................................................................... 3
3 Requisitos do Sistema ........................................................................................................... 4
3.1 Prioridades ..................................................................................................................... 4
3.2 Requisitos Funcionais ................................................................................................... 4
3.3 Requisitos não-funcionais ............................................................................................. 5
3.4 Casos de Uso ................................................................................................................. 6
3.4.1 Diagrama de Casos de Uso .................................................................................... 6
3.4.2 Descrição dos Casos de Uso .................................................................................. 6
2
1 Introdução
1.1 Objetivo
O objetivo desse documento é descrever e especificar o Sistema de realidade virtual a
ser desenvolvido como projeto de graduação para o curso de Engenharia Eletrônica e de
Computação, servindo de suporte para o desenvolvimento do mesmo.
1.2 Escopo do Sistema
O Sistema deve ser capaz de rodar em uma plataforma Android para ser utilizado em
conjunto com o hardware Google Cardboard de forma a transferir imagens
estereoscópicas para a tela do dispositivo que representem um modelo que foi
previamente carregado por uma equipe de desenvolvimento.
1.3 Definições
Abreviação Definição
Ator Chama-se Ator ao estereótipo padrão do UML usado para definir o papel que um
utilizador representa relativamente ao sistema informático modelado.
Um ator representa um conjunto coerente de papéis que os usuários de casos de uso
desempenham quando interagem com esses casos de uso. Tipicamente, um ator
representa um papel que um ser humano, um dispositivo de hardware ou até outro
sistema desempenha com o sistema.
FR Functional Requirement. Requisito funcional define uma função de um
sistema de software ou seu componente
GUI Graphical User Interface. Interface gráfica do usuário
NFR Non-functional Requirement. Requisito não funcional é um requisito
que não define uma função a ser desempenhada pelo software, mas que
ainda assim ele deve ser capaz de atender
UML Unified Modeling Language. É a linguagem de modelagem de um
sistema que permite representa-lo de forma padronizada.
3
2 Descrição Geral do Sistema
O Sistema será composto por um aplicativo para o sistema operacional Android e um
projeto base para ser executado na IDE Unity.
2.1 Interface
A interface com o usuário final será toda realizada dentro do aplicativo Andoid, os
desenvolvedores devem utilizar o projeto base em Unity para carregar os modelos,
controlar as interações com o ambiente e gerar o aplicativo.
2.2 Usuários
Seguindo o que foi especificado acima, os usuários são separados em categorias
dividindo sua responsabilidade no software
Ator Definição
Usuário Usuário que vai executar a aplicação gerada pelo desenvolvedor.
Desenvolvedor Responsável por traduzir os modelos dentro da aplicação.
Modelador Usuário responsável por criar o modelo 3D utilizado na aplicação.
4
3 Requisitos do Sistema
3.1 Prioridades
Essencial É um requisite sem o qual o Sistema não é capaz de funcionar
Importante Um requisite que o Sistema é capaz de funcionar sem ele, mas não de
maneira satisfatória.
Desejável Um requisite que não compromete o funcionamento do Sistema, mas que
sua implementação pode trazer benefícios a utilização pelo usuário.
3.2 Requisitos Funcionais
Título FR 1 – Rotacionar a câmera
Descrição Esse requisito funcional permite ao usuário da aplicação conseguir mover
a direção para onde se está olhando de dentro da aplicação apenas com o
movimento natural da cabeça.
Prioridade Essencial
Título FR 2 – Mover o Personagem
Descrição Este requisito funcional permite ao usuário navegar no mundo virtual
dentro da aplicação usando o controlador externo e a direção na qual ele
está observando.
Prioridade Essencial
Título FR 3 – Interagir com o Ambiente
Descrição Este requisito funcional permite ao usuário interagir com os elementos
que compõem o ambiente como por exemplo abrir portas, ligar
equipamentos eletrônicos, controlar a iluminação ou trocar a cor de
paredes.
Prioridade Importante
Título FR 4 – Ouvir Sons
Descrição Este requisito funcional permite ao usuário ouvir os sons do ambiente ao
seu redor, podendo identificar a direção de onde ele está sendo emitido.
Prioridade Desejável
Título FR 5 – Detectar Colisões
Descrição Este requisito funcional permite ao sistema detectar a colisão do objeto
que compõe o usuário com os demais objetos que compõem o ambiente,
assim evitando que seja possível atravessar esses objetos.
Prioridade Essencial
5
3.3 Requisitos não-funcionais
Título NFR 1 – Portabilidade
Descrição O Sistema deve ser capaz de rodar em qualquer dispositivo android com
versão acima da 4.4 (KitKat) que possuam módulos de giroscópio
integrados.
Prioridade Importante
Título NFR 2 – Tempo de resposta
Descrição O tempo de resposta para exibição dos elementos na tela não pode causar
sentimento de “lag” em quem estiver utilizando a aplicação.
Prioridade Essencial
Título NFR 3 – Simplicidade de controles
Descrição O Sistema de controles de movimento deve ser simples a ponto de
qualquer usuário com pouca ou nenhuma experiência em sistemas
computacionais e controles de videogame seja capaz de manipular.
Prioridade Essencial
6
3.4 Casos de Uso
3.4.1 Diagrama de Casos de Uso
Mover Camera
Andar
InteragirUsuário
Desenvolvedor
Modelador
CarregarModelos
GerarAplicativo
CriarModelos
AndroidUnity
3.4.2 Descrição dos Casos de Uso
ID UC-01
Nome Mover Câmera
Criado por Victor Rodrigues Ultimo update por -
Dia Criado 07-03-2016 Dia do último update -
Atores Usuário
Descrição Controla a câmera da aplicação com o movimento de cabeça do
usuário
Trigger Abrir o aplicativo
Pré-condições Ator está usando o cardboard
Pós-condições N/D
Fluxo normal 1) Ator move a cabeça
2) Sistema recebe os dados de movimento
3) Sistema processa os dados e exibe nova tela para o usuário
Fluxo alternativo N/D
Exceções N/D
Inclusão N/D
Frequência Todo ciclo de update interno na aplicação
Requisitos especiais N/D
Pressupostos N/D
Notas N/D
ID UC-02
Nome Andar
Criado por Victor Rodrigues Ultimo update por -
7
Dia Criado 07-03-2016 Dia do último update -
Atores Usuário
Descrição Controla a posição especial do objeto que representa o usuário na
aplicação
Trigger Clicar em algum botão do controlador que seja responsável pelo
realizar um movimento
Pré-condições Ator está usando o cardboard
Pós-condições Ator visualizará sua nova posição
Fluxo normal
1) Ator aperta um botão no controle
2) Sistema detecta qual botão foi apertado
3) Sistema realiza as transformações necessárias para andar na
direção para onde se está olhando
4) Sistema atualiza a posição do objeto na cena
5) Sistema atualiza a câmera para a nova posição
6) Sistema processa os dados e exibe nova tela para o usuário
Fluxo alternativo Passo 2 Se o botão não for responsável por realizar movimento, não executa a
alteração da posição
Exceções N/D
Inclusão UC-01
Frequência Todo ciclo de update interno na aplicação
Requisitos especiais N/D
Pressupostos N/D
Notas N/D
ID UC-03
Nome Interagir
Criado por Victor Rodrigues Ultimo update por -
Dia Criado 07-03-2016 Dia do último update -
Atores Usuário
Descrição Controla as chamadas de funções específicas de interação com
cada objeto na cena
Trigger Clicar no botão do controlador que seja responsável pela
interação
Pré-condições Ator está usando o cardboard
Pós-condições N/D
Fluxo normal
1) Ator aperta um botão no controle
2) Sistema traça um raio na direção de onde o usuário estiver
olhando
3) Sistema recebe os dados de quais objetos foram atravessados
por esse raio
4) Sistema chama as funções de ativação desses objetos
5) Sistema atualiza a câmera e tela com os objetos atualizados
Fluxo alternativo N/D
Exceções N/D
Inclusão UC-01, UC-02
Frequência Todo ciclo de update interno na aplicação
Requisitos especiais N/D
Pressupostos N/D
Notas N/D
8
ID UC-04
Nome Carregar Modelos
Criado por Victor Rodrigues Ultimo update por -
Dia Criado 07-03-2016 Dia do último update -
Atores Desenvolvedor
Descrição Inserir o arquivo do modelo 3D dentro da plataforma Unity.
Trigger Início do desenvolvimento da aplicação
Pré-condições Existe um modelo 3D que poderá ser importado para dentro de
um projeto em Unity
Pós-condições Existe um projeto pronto para ser compilado e distribuído
Fluxo normal
1) Ator abre o Unity
2) Ator carrega o modelo 3D para dentro da aplicação
3) Ator ajusta a escala do modelo importado para estar de acordo com
o tamanho real dos objetos
4) Ator atualiza os componentes de colisão dos objetos carregados
5) Ator salva o projeto com todos os componentes carregados
Fluxo alternativo N/D
Exceções N/D
Inclusão N/D
Frequência A cada update de modelo.
Requisitos especiais N/D
Pressupostos N/D
Notas N/D
ID UC-05
Nome Gerar aplicativo
Criado por Victor Rodrigues Ultimo update por -
Dia Criado 07-03-2016 Dia do último update -
Atores Desenvolvedor
Descrição
Trigger Projeto já está pronto para ser entregue ao cliente.
Pré-condições Existe um projeto pronto para ser compilado e distribuído
Pós-condições Existe um aplicativo pronto para ser executado pelo usuário
Fluxo normal
1) Ator abre o projeto no Unity.
2) Ator seleciona a plataforma que deseja compilar o projeto.
3) Sistema compila e salva um arquivo em formato “.apk”
4) O ator publica o aplicativo na loja, instala no celular ou envia para
o cliente.
Fluxo alternativo N/D
Exceções N/D
Inclusão N/D
Frequência Sempre após o UC-04
Requisitos especiais N/D
Pressupostos N/D
Notas N/D
9
ID UC-06
Nome Criar Modelos
Criado por Victor Rodrigues Ultimo update por -
Dia Criado 07-03-2016 Dia do último update -
Atores Modelador
Descrição Gera arquivos de modelos 3D que possam ser carregados na
aplicação.
Trigger Início de um projeto.
Pré-condições Existe uma planta do modelo que deve ser modelado.
Pós-condições 1) Existe um modelo 3D que poderá ser importado para dentro de um
projeto em Unity.
Fluxo normal
1) Ator recebe um desenho do ambiente que precisa ser modelado.
2) Ator abre o software de modelagem 3D.
3) Ator cria o modelo baseado na planta.
4) Ator salva o modelo em um arquivo de formato legível pelo Unity.
5) Ator envia o modelo salvo para o desenvolvedor.
Fluxo alternativo N/D
Exceções N/D
Inclusão N/D
Frequência Todo início de projeto.
Requisitos especiais N/D
Pressupostos 1) Existe um desenho/planta no qual o ator deve se basear
2) Ator tem acesso a um software de modelagem 3D.
Notas N/D