Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ciencia Unisalle
5-15-2021
Part of the Computational Engineering Commons, and the Engineering Education Commons
Citación recomendada
Munevar Barrera, L. G. (2021). Desarrollo de una Aplicación Móvil de Realidad Aumentada para el Museo
de Ciencias de la Universidad de la Salle. Retrieved from https://ciencia.lasalle.edu.co/
ing_automatizacion/802
This Trabajo de grado - Pregrado is brought to you for free and open access by the Facultad de Ingeniería at
Ciencia Unisalle. It has been accepted for inclusion in Ingeniería en Automatización by an authorized administrator
of Ciencia Unisalle. For more information, please contact ciencia@lasalle.edu.co.
DESARROLLO DE UNA APLICACIÓN MÓVIL DE REALIDAD AUMENTADA
PARA EL MUSEO DE CIENCIAS DE LA UNIVERSIDAD DE LA SALLE
Presentado por:
UNIVERSIDAD DE LA SALLE
FACULTAD DE INGENIERÍA
Bogotá D.C
2021
DESARROLLO DE UNA APLICACIÓN MÓVIL DE REALIDAD AUMENTADA
PARA EL MUSEO DE CIENCIAS DE LA UNIVERSIDAD DE LA SALLE
Presentado por:
Ingeniera en Automatización
UNIVERSIDAD DE LA SALLE
FACULTAD DE INGENIERÍA
Bogotá D.C
2021
Nota de aceptación:
____________________________________
____________________________________
____________________________________
____________________________________
____________________________________
____________________________________
____________________________________
____________________________________
____________________________________
i
Dedico este trabajo de grado
a mis padres porque con sus
enseñanzas, amor y guía me
han hecho la persona que
soy hoy.
ii
Agradecimientos
Agradezco también a cada uno de los docentes con los cuáles compartí a lo largo
de mi carrera y quiénes dedicaron su tiempo y esfuerzo para hacer de mí una buena
profesional.
iii
RESUMEN
viii
ÍNDICE GENERAL
ÍNDICE GENERAL.................................................................................................. ix
Glosario ................................................................................................................. xv
1. INTRODUCCIÓN .............................................................................................. 1
2.3 Unity............................................................................................................ 9
ix
3.1.2 Definición del Alcance ........................................................................ 21
BIBLIOGRAFÍA ...................................................................................................... 87
ANEXOS ................................................................................................................ 90
x
ÍNDICE DE TABLAS
Tabla 1. Cuadro comparativo de ventajas y desventajas de herramientas (Fuente:
Autora) ................................................................................................................... 16
Tabla 2. Módulos Por Desarrollar (Fuente: Autora) ............................................... 22
Tabla 3. Requerimientos funcionales (Fuente: Autora) .......................................... 24
Tabla 4.Requerimientos no funcionales (Fuente: Autora) ...................................... 26
Tabla 5. Herramientas para el desarrollo del proyecto (Fuente: Autora) ............... 26
Tabla 6. Planificación por fases (Fuente: Autora) .................................................. 29
Tabla 7. Modelo de Historia de Usuario (Fuente: Autora) ...................................... 32
Tabla 8. Descripción de prototipos (Fuente: Autora).............................................. 39
Tabla 9. Historia de Usuarios (Fuente: Autora) ...................................................... 44
Tabla 10. Historia de Usuario H001 (Fuente: Autora) ............................................ 45
Tabla 11. Historia de Usuario H002 RF002 (Fuente: Autora) ................................ 46
Tabla 12. Historia de Usuario H002 RF003 (Fuente: Autora) ................................ 46
Tabla 13. Historia de Usuario H002 RF004 (Fuente: Autora) ................................ 47
Tabla 14. Historia de Usuario H003 RF005 (Fuente: Autora) ................................ 47
Tabla 15. Historia de Usuario H004 RF006 (Fuente: Autora) ................................ 48
Tabla 16. Historia de usuario H005 RF007 (Fuente: Autora) ................................. 48
Tabla 17. Historia de Usuario H006 RF008 (Fuente: Autora) ................................ 49
Tabla 18. Historia de Usuario H007 RF009 (Fuente: Autora) ................................ 49
Tabla 19. Historia de Usuario H008 RF010 (Fuente: Autora) ................................ 50
Tabla 20. Historia de usuario H009 RF011 (Fuente: Autora) ................................. 51
Tabla 21. Historia de Usuario H010 (Fuente: Autora) ............................................ 51
Tabla 22. Caso de prueba 1 (Fuente: Autora) ....................................................... 59
Tabla 23. Caso de prueba 2 (Fuente: Autora) ....................................................... 59
Tabla 24. Caso de prueba 3 (Fuente: Autora) ....................................................... 60
Tabla 25. Caso de prueba 4 (Fuente: Autora) ....................................................... 60
Tabla 26. Caso de prueba 5 (Fuente: Autora) ....................................................... 61
Tabla 27. Caso de prueba 6 (Fuente: Autora) ....................................................... 62
Tabla 28. Caso de prueba 7 (Fuente: Autora) ....................................................... 62
xi
Tabla 29. Cuestionario preguntas para los usuarios de la prueba. (Fuente: Autora)
............................................................................................................................... 64
Tabla 30. Respuestas 1era pregunta(Fuente: Autora) ........................................... 67
Tabla 31. Respuestas segunda pregunta (Fuente: Autora) ................................... 68
Tabla 32. Respuestas tercera pregunta (Fuente: Autora) ...................................... 68
Tabla 33. Respuestas cuarta pregunta (Fuente: Autora) ....................................... 69
Tabla 34. Respuesta quinta pregunta (Fuente: Autora) ......................................... 70
Tabla 35. Resultados sexta pregunta (Fuente: Autora) ......................................... 71
Tabla 36. Respuesta séptima pregunta (Fuente: Autora) ...................................... 72
Tabla 37. Tabla octava pregunta (Fuente: Autora) ................................................ 73
Tabla 38. Respuesta novena pregunta (Fuente: Autora) ....................................... 74
Tabla 39. Respuesta decima pregunta (Fuente: Autora) ...................................... 75
Tabla 40. Respuestas décimo primera pregunta (Fuente: Autora) ........................ 76
Tabla 41. Respuestas décimo segunda pregunta (Fuente: Autora) ....................... 77
Tabla 42. Respuestas décimo tercera pregunta (Fuente: Autora) ......................... 78
Tabla 43. Respuestas décimo cuarta pregunta (Fuente: Autora) .......................... 79
Tabla 44. Pruebas de tiempo de reconocimiento usuario 1 (Fuente: Autora) ........ 80
Tabla 45. Media y Mediana prueba usuario 1 (Fuente: Autora) ............................. 82
Tabla 46. Pruebas de tiempo de reconocimiento usuario 2 (Fuente: Autora) ........ 83
Tabla 47. Media y mediana prueba usuario 2 (Fuente: Autora) ............................. 84
xii
ÍNDICE DE FIGURAS
xiii
Figura 32. Diagrama de torta tercera pregunta (Fuente: Autora) ........................... 69
Figura 33. Diagrama de torta cuarta pregunta (Fuente: Autora) ............................ 70
Figura 34. Diagrama de torta quinta pregunta (Fuente: Autora) ............................ 71
Figura 35. Diagrama de torta sexta pregunta (Fuente: Autora) ............................. 72
Figura 36. Diagrama de torta séptima pregunta (Fuente: Autora).......................... 73
Figura 37. Diagrama de barras octava pregunta (Fuente: Autora)......................... 74
Figura 38. Diagrama de torta novena pregunta (Fuente: Autora) .......................... 75
Figura 39. Diagrama de torta decima pregunta (Fuente: Autora) .......................... 76
Figura 40. Diagrama de barras décimo primera pregunta (Fuente: Autora) .......... 77
Figura 41. Diagrama de torta décimo segunda pregunta (Fuente: Autora) ............ 78
Figura 42. Diagrama de barras décimo tercera pregunta (Fuente: Autora) ........... 79
Figura 43. Diagrama de barras décimo cuarta pregunta (Fuente: Autora) ............. 80
Figura 44. Datos pruebas de reconocimiento target usuario 1 (Fuente: Autora) ... 82
Figura 45. Datos pruebas de reconocimiento target persona 2 (Fuente: Autora) .. 84
xiv
Glosario
xv
Mobile-D: Metodología ágil basada en Rational Unified Process, Extreme
Programming y Crystal Methodologies, y su finalidad en intentar obtener pequeños
ciclos de desarrollo de forma rápida en dispositivos, consta de cinco fases: Fase de
exploración, fase de inicialización, fase de producción, fase de estabilización y fase
de pruebas. (Rahimian & Ramsin, 2008)
Multiplataforma: Válido para varios sistemas operativos. (Cuello & Vittone, 2013)
xvi
Stakeholders: Persona o negocio que ha invertido dinero en cualquier tipo de
proyecto comercial. (Rahimian & Ramsin, 2008)
xvii
1. INTRODUCCIÓN
El consumo cultural en Colombia según datos del DANE 2017 aparece influenciados
por alta presencia de niños, niñas adolescentes y jóvenes pero en su mayoría son
consumidores por medios digitales, internet, redes sociales, etc. La revolución
tecnológica ha tenido una influencia decisiva en este consumo. Hacer que la
interacción de los temas del museo de la universidad de la Salle se unan a esta
revolución tecnológica, que permita nuevos modos de llegar a su público usando
esta poderosa herramienta facilita acceder de manera más sencilla al público
siendo esta de un modo más usual y acorde con estos avances.
1
por lo que a menudo se prefiere la alta fidelidad. La alta fidelidad significa que el
modelo en la simulación debe ser realista y también que la interfaz (tanto de entrada
como de salida) debe ser cercana a la situación real.” (Sarracino, 2017).
2
2. MARCO TEÓRICO
3
actualmente cuentan con un total de 6 millones de aplicaciones
aproximadamente, según los últimos datos recogidos por Statista. (Juarez,
2019)
Web: Una aplicación web es un sitio web que actúa como una aplicación
nativa, pero no están instaladas o implementadas de la misma forma.
Ellas usan un navegador web y usualmente usan HTML5. También se
apoyan en un navegador web en común de acuerdo para interpretar la
aplicación. Sin embargo, la distinción entre aplicaciones nativas y
aplicaciones web está volviéndose cada vez más pequeña mientras más
sitios comienzan a usar HTML5. Una aplicación web puede tener algunas
ventajas sobre una aplicación nativa porque son más fáciles de crear y
desarrollar y proveen compatibilidad entre plataformas. (Meneses &
Laveriano, 2016)
4
“viven” en una tienda de aplicaciones y pueden hacer uso de las
características del dispositivo casi de la misma forma que una aplicación
nativa. (Meneses & Laveriano, 2016)
Los sistemas operativos móviles son sistemas ligeros que controlan un dispositivo
móvil y están orientados a la conectividad inalámbrica. Según lo visto anteriormente,
las empresas desarrolladas de sistemas operativos y aplicaciones móviles ganaron
fuerza a través de los años al darle un importante valor agregado a los dispositivos
móviles.
2.2.1 Android
Sistema operativo basado en Linux, que está enfocado para ser utilizado en
dispositivos móviles como teléfonos inteligentes, tabletas y otros dispositivos.
Tiene una gran comunidad de desarrolladores escribiendo aplicaciones para
extender la funcionalidad de los dispositivos. A la fecha, se encuentra bien
posicionado en el mercado de teléfonos inteligentes. Las aplicaciones
oficiales de Android se encuentran en Google Play, tienda de aplicaciones en
5
línea administrada por Google. Los programas están escritos en lenguaje de
programación Java. No obstante, no es un sistema operativo libre de virus.
Las características con las que cuentan los dispositivos que tiene Android
6
- Soporta aplicaciones que están escritas en el lenguaje de
programación Java.
- Soporta distintos formatos multimedia.
- Soporte hardware adicional como cámara de foros, de video, pantalla
táctil, GPS, entre otros.
- Cuenta con una tienda online, Google Play, la cual es un catálogo de
aplicaciones gratuitas o de pago que pueden ser descargadas e
instaladas.
- Soporta multitarea, es decir, se pueden ejecutar más de dos
aplicaciones al mismo tiempo y video llamada. (Ruiz, 2015)
2.2.2 iOS
7
Figura 2. Sistema operativo IOS (Apple Inc, 2021)
Las características con las que cuenta este sistema operativo son:
2.2.3 BlackBerry OS
8
sincronización con programas de IBM, aparte de hacer las funciones
usuales de un teléfono móvil.
Las características con las que cuenta este sistema operativo son:
2.3 Unity
9
dispositivos móviles, consolas y realidad virtual. Es particularmente popular
para el desarrollo de juegos móviles iOS y Android y se usa para juegos como
Pokémon Go, Monument Valley, Call of Duty: Mobile, Beat Sabre y Cuphead.
(Bradshaw & Kruppa, 2020)
2.4 Vuforia
10
2.5 Realidad Aumentada
2 (Vique, 2019)
11
Una de las características importantes de la gran mayoría de los desarrollos
móviles es su corta duración. Esto se debe a factores como la gran
competencia en el sector, los cambios en el mismo con la aparición, casi
constante, de novedades tanto software como hardware, el hecho de que
muchas aplicaciones nacen con un desarrollo precoz en forma de prototipo y
van evolucionando después o incluso la simplicidad de las aplicaciones, que
no requieren grandes desarrollos. Esta suele ser, salvo algunas excepciones,
la norma de los desarrollos de aplicaciones para dispositivos móviles.
2.6.1 Mobile-D
12
Figura 7. Ciclo de Desarrollo Mobile-D (Meneses & Laveriano, 2016)
2.6.1.1.1 Exploración
2.6.1.1.2 Inicialización
13
Además, se preparan todos los recursos físicos, tecnológicos y de
comunicaciones para las actividades de producción.
2.6.1.1.3 Producción
2.6.1.1.4 Estabilización
2.6.1.2 Elementos
14
- Línea de arquitectura: este enfoque es utilizado junto con los
patrones de arquitectura y modelo ágil.
- Desarrollo basado en pruebas: el enfoque de pruebas-primero
es utilizado junto con casos de prueba automatizadas.
- Integración continua: las prácticas de Software Configuration
Manager (SCM) se aplican a través de múltiples medios.
- Programación en pares: la codificación, pruebas y
refactorización se lleva a cabo en pares.
- Métricas: pocas métricas se recogen con rigurosidad y se
utilizan con fines de mejorar la retroalimentación y el proceso
de desarrollo.
- Cliente externo: el cliente participa en las jornadas de
planificación y liberación.
- Enfoque centrado en el usuario: se hace hincapié en la
identificación y el cumplimiento de necesidades del usuario
final.
15
Tabla 1. Cuadro comparativo de ventajas y desventajas de herramientas (Fuente: Autora)
16
- Documentación
completa en su página
web y foros de
desarrolladores.
- Permite el desarrollo en - Se puede desarrollar
lenguajes como Java y sólo para sistemas
su lenguaje nativo operativos Android.
Android Studio
Kotlin. - Requiere de máquina
- Compilación rápida son elevados, en cuánto
- Alertas en tiempo real a procesador y espacio.
de errores sintácticos,
compatibilidad o
rendimiento antes de
acabar la aplicación.
- Biblioteca que permite
reconocer y hacer el
seguimiento de
imágenes planas
Dependencia de NDK + JNI, se
(Image Targets) y
amplían los métodos nativos.
objetos 3D simples.
- Se centra en visión por
- Disponible para
computador, así que no
Vuforia Android, iOS y Unity.
tenemos la parte GPS.
- Incluye la parte NDK
- Foro de debate, con menor
+JNI pre-compilada.
orientación a comunidad.
Solo se tiene que incluir
(Chacon & Tuiro, 2018)
bibliotecas y llamar a los
métodos nativos.
- Targets disponibles:
Image, Cylinder, Text-
17
Word, User-defined,
Cloud Recognition,
Multi-Targets, Frame
markers y Virtual
buttons. (Chacon &
Tuiro, 2018)
- No hay mucha
- Se estructura en wolds. documentación sobre el
- Disponible para uso de esta
Android, iOS, herramienta.
Wikitude Backberry, Windows - No es libre.
Phone, Phonegap y - No permite monta un
Titanium. (Alvarez, servidor de recursos
2021) propios. (Chacon &
Tuiro, 2018)
- Esta SDK se puede
- Esta SDK funciona para
utilizar en dispositivos
versiones de Android
tanto ¡OS como
superiores a 7.0 y no
Android.
funciona en muchos
- se pueden utilizar en
dispositivos.
diferentes lenguajes de
- Requiere un dispositivo
programación: Java,
ARCore móvil con sensores
Unity, Unreal y hasta
acelerómetros,
iOS. De modo que
giroscopio y un
muchos desarrolladores
procesador lo
pueden trabajar en esta
suficientemente potente
herramienta.
para soportar la
(Developers Google,
Realidad Aumentada.
2021)
18
(Developers Google,
2021)
Un framework utiliza como
técnica la Odometría Visual - Esta framework solo se
Inercial (VIO). Lo que combina puede encontrar en iOS
los sensores de movimiento 11 y superiores, en
ARKit con la cámara haciendo las móviles como iPhone
resaltar de las imágenes sus 6s, 7, 7 plus, 8, 8 plus y
caracteristicas más distintivas X. (Developers Apple,
sin importar el movimiento. 2021)
(Developers Apple, 2021)
Las herramientas seleccionadas son Unity como entorno de desarrollo ya que esta
herramienta tiene la ventaja de lograr un desarrollo para diferentes plataformas
como lo son Windows, iOS, Android entre otras. la curva de aprendizaje frente a las
demás herramientas es baja/media ya que Unity es bastante intuitivo. El uso de C#
como lenguaje de programación facilita el desarrollo ya que es un lenguaje de
programación bastante familiar y del cuál se puede hallar bastante documentación.
Ya que unity es un motor de juegos los gráficos tanto 2D como 3D se presentarán
de manera óptima y con buena calidad siendo una gran ventaja para la visualización
de los especímenes de realidad aumentada.
19
de esta SDK es que se integra fácilmente para dispositivos más antiguos y no se
limita a los últimos lanzamientos. Lo que resulta beneficioso para el proyecto porque
una amplia gama de dispositivos podría usar el aplicativo de realidad aumentada
sin que sus equipos sean de gamas altas y funcionar de manera adecuada.
20
3. DESARROLLO DE LA APLICACIÓN MÓVIL DE REALIDAD AUMENTADA
En este apartado se muestra el paso a paso del desarrollo del aplicativo, que se
ciñó a las fases que se describen en la metodología mobile-D que fue diseñada
especialmente para aplicaciones móviles logrando de manera más efectiva
desarrollar y documentar todo el trabajo realizado.
3.1 Exploración
Para el primer paso se realiza la exploración, esta fase se definen los actores
y los papeles que desarrollarán dentro del proyecto, se definen las tareas,
actividades y el alcance de estas para cumplir los objetivos del proyecto.
Los puntos que se han considerado para el desarrollo del sistema son los
siguientes:
21
• Permitir que cualquier usuario pueda ingresar en el aplicativo.
• Permitir a cualquier usuario utilizar la cámara del smartphone para
combinar la imagen aumentada (modelo 3D) con la real.
• Permitir que cualquier usuario visualice en su smartphone el
modelo 3D en diferentes ángulos e interactuar con diferentes
medios (botones, imágenes, etc.)
• Permitir a cualquier usuario navegar por las diferentes interfaces
haciendo uso de botones de navegación
22
En este módulo se verá en el inicio
de la aplicación el splash de unity y
M001 Start App con el logo del museo de la Salle
usando los colores del manual de
identidad visual.
Se desarrolla la interfaz del
contenido que habrá dentro de la
M002 Inicio aplicación, dónde se permitirá
ingresar a la visualización según
sea escogido.
Se desarrolla el entorno de realidad
aumentada, dónde habrá un retorno
a menú y encendido de la linterna
Realidad de la cámara. Además, para
M003 Aumentada visualizar el entorno real con los
Interfaz modelos 3D será imperativo el uso
de la cámara del dispositivo, por lo
cual se pedirán permisos para su
acceso.
El aplicativo ubicara la imagen
target predeterminada y realizara
Reconocimiento
M004 una acción indicada según sea el
del target
modelo seleccionado, haciendo uso
de la cámara.
El aplicativo mostrará un modelo 3D
Realidad en combinación con el mundo real,
M005
Aumentada logrando una realidad aumentada
en diferentes escenarios.
23
Se desarrollan botones de
M006 Navegación navegación en las interfaces para
un correcto flujo en el aplicativo.
Se desarrolla una interfaz para
M007 Recorridos mostrar información acerca de los
modelos 3D
Se desarrolla una interfaz para
M008 Museo
mostrar información sobre el museo
Se desarrolla una interfaz para
M009 Información mostrar instrucciones sobre el uso
de la realidad aumentada.
Se realiza una encuesta a personas
M010 Evaluación
que prueben la aplicación
24
Se desarrollará la interfaz de realidad
aumentada con opción de navegación
M003 RF005
mientras se visualiza por la cámara el
entorno real.
El aplicativo detecta el target y realizara
una acción indicada según la determinada
M004 RF006
target que se esté visualizando con la
cámara.
Se visualizará los modelos 3D mediante la
interfaz de realidad aumentada y la
M005 RF007
cámara logrando la combinación de
objetos virtuales con el entorno real
Se encontrarán diferentes botones que
M006 RF008 permitirán la navegación entre interfaces
del aplicativo
Se tendrá diferentes botones que
muestren una animación visual con
información sobre los modelos 3D del
M007 RF009 aplicativo
Se encontrarán diferentes botones que
permitirán la navegación entre interfaces
del aplicativo
Se visualizará una interfaz con información
M008 RF010 del museo, además de una animación con
los botones de navegación
Se visualizará una interfaz con información
sobre el uso de la Realidad aumentada,
M009 RF011
además de una animación con los botones
de navegación
25
Tabla 4.Requerimientos no funcionales (Fuente: Autora)
Código Requerimiento
Debe contar con targets predefinidos de buena
RNF001
resolución
La aplicación debe presentar una interfaz amigable y
RNF002
fácil de usar.
Deben usarse los colores del manual de identidad
RNF003
visual del museo de la universidad.
La aplicación deberá funcionar sobre el sistema
RNF004 operativo Android desde la versión 4.4 KitKat con una
resolución de pantalla de 1920x1080
Las interfaces contarán con el logo del museo en la
RNF005 parte superior izquierda a excepción de la interfaz de
realidad aumentada.
La navegación dentro de la aplicación debe ser fluida,
RNF006 con tiempos de carga de las interfaces no mayor a 5
segundos.
RNF007 La aplicación debe ser fácil de usar
26
Lenguaje de programación: C#
Sistema operativo Windows 10 Pro - 64 bit
Equipos Un Computador con procesador
8GB de RAM y con espacio
disponible en disco de 40GB
Programa de diseño Blender
Metodología de desarrollo Mobile-D
- Android 10.0, 128GB de
disco duro, 4GB de RAM
Smartphone:
- Android 6.0, 16 GB de disco
duro, 2GB de RAM
3.2 Inicialización
En esta segunda etapa del proyecto se realiza la preparación del software y
hardware que se usará para el desarrollo del proyecto, se define el plan de
comunicación que se tendrá con todos los actores que hacen parte del
proyecto. Además se realiza la planificación de las tareas y las iteraciones
que se llevaran a cabo para cumplir los requerimientos funcionales.
27
• Descargar e instalar el SDK Vuforia dentro del entorno de
trabajo de unity
• Organizar el entorno de desarrollo de Unity (herramientas,
imágenes, modelos, animaciones, scripts, etc.).
• Plan de comunicación
Se utilizó como canales de comunicación con el propósito de
mantenerse informado del desarrollo del programa y una buena
coordinación en su ejecución.
✓ WhatsApp
✓ Teams
✓ OneDrive
✓ Outlook
28
Figura 8. Arquitectura de la aplicación. (Fuente: Autora)
29
Implementación de la funcionalidad del
módulo M001 interfaz splash con el
Iteración 2
logo del museo de la universidad
durante 5 segundos.
Implementación de la funcionalidad del
módulo M002 diseño de la interfaz de
Iteración 3 menú de inicio del aplicativo, realización
de mejoras y actualizaciones de
historia de usuario.
Implementación de la funcionalidad del
módulo M003 diseño de la interfaz de
Iteración 4 menú de inicio del aplicativo, realización
de mejoras y actualizaciones de
historia de usuario.
Producción Implementación de la funcionalidad del
módulo M004 diseño de la interfaz
realización de mejoras y
Iteración 5
actualizaciones historias de usuario.
Generación de las pruebas de
aceptación.
Implementación de la funcionalidad del
módulo M005 diseño de la interfaz
realización de mejoras y
Iteración 6
actualizaciones historias de usuario.
Generación de las pruebas de
aceptación.
Implementación de la funcionalidad del
Iteración 7 módulo M006 diseño de las interfaces
realización de mejoras y
30
actualizaciones historias de usuario.
Generación de las pruebas de
aceptación.
Implementación de la funcionalidad del
módulo M007 diseño de la interfaz
realización de mejoras y
Iteración 8
actualizaciones historias de usuario.
Generación de las pruebas de
aceptación.
Implementación de la funcionalidad del
módulo M008 diseño de la interfaz
realización de mejoras y
Iteración 9
actualizaciones historias de usuario.
Generación de las pruebas de
aceptación.
Implementación de la funcionalidad del
módulo M009 diseño de la interfaz
realización de mejoras y
Iteración 10
actualizaciones historias de usuario.
Generación de las pruebas de
aceptación.
Refactorización de las funciones de
todos los módulos, integración de las
Estabilización Iteración 11
versiones estables para un correcto
funcionamiento
Se realizan las pruebas necesarias del
Pruebas Iteración 12 aplicativo final y se analizan los
resultados
31
• Historias de usuario y tarjeta de tareas
DIFICULTAD PRIORIDAD
ID TIPO Antes Despué ESFUERZO
1-5
s
Descripción:
32
✓ Pantalla de resolución HD.
✓ Espacio de Almacenamiento disponible de 200MB
✓ Pantalla de preferencia 4,7 y 6 pulgadas.
• Esquema de navegabilidad:
33
En la Figura 13. Se presenta el flujo de los splash 1 y 2, a continuación de estos se
presenta un menú de inicio en el cuál usuario podrá ingresar y seleccionar lo que
desee visualizar.
34
Figura 11. Target visualización Murciélago (Fuente: Autora)
35
Figura 13. Flujo de pantalla aplicación parte 2 (Fuente: Autora)
36
Figura 14. Flujo de pantalla aplicación parte 3 (Fuente: Autora)
37
Figura 15. Flujo de pantalla aplicación parte 4 (Fuente: Autora)
38
Para la Figura 20 se visualiza en flujo de navegación si el usuario se dirige a
Recorridos, en ella encontrará información adicional de los modelos que se
visualizan en la realidad aumentada, esto con el fin de contextualizar e informar.
• Elaboración de prototipos
Prototipo Descripción
1) Splash 1 - Prototipo - La interfaz tendrá el
logo de la
herramienta en la que
se desarrolló la
aplicación.
- Se tendrá de color de
fondo el seleccionado
del manual de
entidad visual del
museo.
- Se visualiza en
orientación horizontal
en el dispositivo móvil
- El splash tendrá una
duración de 2
segundos
2) Splash 2 - Prototipo
39
- La interfaz con el
splash debe tener el
logo de la universidad
de la Salle en este
caso se tomó el logo
de la Osa con su
osezno.
- Se tendrá de color de
fondo el seleccionado
del manual de
entidad visual del
museo.
- Se visualiza en
orientación horizontal
en el dispositivo móvil
- El splash tendrá una
duración de 5
segundos.
40
- Debe permitir
desplegar un slider
donde estará el botón
para salir de la
aplicación.
41
- Debe permitirse
visualizar el modelo
del tiburón si la target
correspondiente se
ha identificado en la
cámara.
- Debe permitirse
visualizar el modelo
de la serpiente si la
target
correspondiente se
ha identificado en la
cámara.
- Debe permitirse
visualizar el modelo
del murciélago si la
target
correspondiente se
ha identificado en la
cámara.
5) Información - La interfaz debe tener
el logo en la parte
superior izquierda.
- Debe permitir la
navegación hacia
otras interfaces.
- Debe mostrar
instrucciones sobre el
42
uso de la realidad
aumentada.
6) Museo - La interfaz debe tener
el logo en la parte
superior izquierda.
- Debe permitir la
navegación hacia
otras interfaces.
- Debe mostrar
información de
contacto y ubicación
sobre el museo.
7) Recorridos - La interfaz debe tener
el logo del museo en
la parte superior
izquierda.
- Debe permitir la
navegación hacia el
menú de inicio.
- Debe permitir
desplegar un slider
particular con
información adicional
sobre el espécimen
del murciélago.
- Debe permitir
desplegar un slider
particular con
información adicional
43
sobre el espécimen
del tiburón.
- Debe permitir
desplegar un slider
particular con
información adicional
sobre el espécimen
del Serpiente.
3.3 Producción
El propósito de esta etapa es generar un calendario para llevar las tareas y las
iteraciones que se deben ejecutar. Los contenidos de cada una se definen en tareas en
las que se lleva un orden determinado de trabajo para ser elaboradas. En la tabla 9 se
define la prioridad de cada una siento 5 alta y 1 baja.
ID Nombre Prioridad
H001 Splash de Inicio 4
H002 Menú Inicio 5
H003 Realidad Aumentada Interfaz 5
44
H004 Activación de la Cámara 5
H005 Reconocimiento de las targets 5
H006 Realidad Aumentada 5
H007 Información 4
H008 Museo 4
H009 Recorridos 4
H010 Evaluación 5
Dificultad Esfuerzo
ID Tipo Antes Despué Prioridad
Estimado Requerido
s
RF001 Nuevo Fácil Fácil 3h 4h 4
Descripción:
Al iniciar la aplicación deberán aparecer los splash y luego será redirigida a la
interfaz del menú de inicio.
Fecha Estado Comentario
27/03/202 Definido
1
28/03/202 Realizado
1
45
Tabla 11. Historia de Usuario H002 RF002 (Fuente: Autora)
Dificultad Esfuerzo
ID Tipo Antes Estimad Prioridad
Después Requerido
o
RF002 Nuevo Moderad Moderad
3h 3h 5
a a
Descripción:
botón de cerrar que le permita al usuario salir de la aplicación.
Fecha Estado Comentario
28/03/202 Definido
1
29/03/202 Realizado
1
Dificultad Esfuerzo
ID Tipo Antes Estimad Requerido Prioridad
Después
o
RF003 Nuevo Fácil Fácil 1h 2h 5
Descripción:
botón de cerrar que le permita al usuario salir de la aplicación.
Fecha Estado Comentario
29/03/202 Definido
1
30/03/202 Realizado
1
46
Tabla 13. Historia de Usuario H002 RF004 (Fuente: Autora)
Dificultad Esfuerzo
ID Tipo Antes Estimad Requerido Prioridad
Después
o
RF004 Nuevo Moderad Moderad 5h 5
5h
a a
Descripción:
Debe contar con los botones que permitan al usuario navegar dentro de la
aplicación.
Fecha Estado Comentario
30/03/202 Definido
1
1/04/2021 Realizado
Dificultad Esfuerzo
ID Tipo Antes Estimad Requerido Prioridad
Después
o
RF005 Nuevo Moderad Moderad 7h 5
5h
a a
Descripción:
Debe contar con los botones que permitan al usuario navegar hacia el menú y
encender la linterna del dispositivo en caso de que en la visualización del entorno
sea muy opaca.
Fecha Estado Comentario
1/04/2021 Definido
2/04/2021 Realizado
47
Tabla 15. Historia de Usuario H004 RF006 (Fuente: Autora)
Dificultad Esfuerzo
ID Tipo Antes Estimad Requerido Prioridad
Después
o
RF006 Nuevo Difícil Difícil 5h 6h 5
Descripción:
Para la integración del modelo 3D con el entorno real será necesario el uso de la
cámara del dispositivo móvil, por lo cual la aplicación tendrá los permisos para
ejecutar la cámara.
Fecha Estado Comentario
2/04/2021 Definido
8/04/2021 Implementand
o
15/04/202
Realizado
1
16/04/202
Verificado
1
Dificultad Esfuerzo
ID Tipo Antes Estimad Requerido Prioridad
Después
o
RF006 Nuevo Difícil Difícil 15h 18h 5
Descripción:
La aplicación debe reconocer la target y realizar la acción correspondiente a la
target que se esté visualizando, haciendo uso de la cámara.
Fecha Estado Comentario
2/04/2021 Definido
48
8/04/2021 Implementand
o
15/04/202
Realizado
1
16/04/202
Verificado
1
Dificultad Esfuerzo
ID Tipo Antes Estimad Requerido Prioridad
Después
o
RF007 Nuevo Difícil Difícil 24h 26h 5
Descripción:
La aplicación debe mostrar el modelo 3D en integración con el entorno real,
logrando una realidad aumentada en diferentes escenarios según sea la target
que se esté identificando mediante la cámara.
Fecha Estado Comentario
16/04/202
Definido
1
17/04/202 Implementand
1 o
26/04/202
Realizado
1
27/04/202
Verificado
1
49
Antes Estimad Requerido
Después
o
RF009 Nuevo Difícil Difícil 4h 4h 4
Descripción:
La interfaz de información debe contener instrucciones de cómo utilizar la realidad
aumentada, además de botones para la navegación hacia otras interfaces.
Fecha Estado Comentario
28/04/202
Definido
1
27/04/202 Implementand
1 o
Dificultad Esfuerzo
ID Tipo Antes Después Estimad Prioridad
Requerido
o
RF010 Nuevo Modera Moderad
3h 3h 4
da a
Descripción:
La interfaz de Museo debe contener información de contacto y ubicación del
museo de la universidad de la Salle, además de botones para la navegación hacia
otras interfaces.
Fecha Estado Comentario
28/04/2021 Definido
29/04/2021 Realizad
o
50
Tabla 20. Historia de usuario H009 RF011 (Fuente: Autora)
Dificultad Esfuerzo
ID Tipo Antes Después Estimad Prioridad
Requerido
o
RF010 Nuevo Moderad Moderad
3h 3h 4
a a
Descripción:
La interfaz de recorridos debe contener información adicional sobre los modelos
3D que se visualizan en la realidad aumentada, además de botones para la
navegación hacia otras interfaces.
Fecha Estado Comentario
30/04/202 Definido
1
02/05/202 Realizado
1
Dificultad Esfuerzo
ID Tipo Antes Después Estimad Prioridad
Requerido
o
RF010 Nuevo Moderad Moderad
10h 10h 5
a a
Descripción:
Se realiza encuestas a personas que han puesto a prueba la aplicación para su
posterior evaluación.
Fecha Estado Comentario
03/04/202 Definido
1
51
07/05/202 Realizado
1
3.4 Estabilización
52
La capa de Presentación está compuesta por dos partes la interfaz de usuario y el
escenario. Las interfaces son un conjunto de los diversos escenarios que se
desarrollaron.
53
componen un escenario y en conjunto harán parte de la interfaz que visualizará el
usuario.
54
Aplicación:
En esta capa se integran los objetos del juego en base a la lógica, esta capa está
encargada de proporcionar los recursos disponibles a través de la interfaz de modo
que ocurran eventos o en este caso animaciones. En la figura 25 se presenta la
clase SliderAnimation esta clase va a contener métodos que permitirán que los
objetos, paneles e imágenes tengas animaciones en las diferentes interfaces, de
manera que objetos del escenario en la clase se les atribuye la variable de
GameObject y a los controladores de la animación se les llama en los métodos para
que cuándo el usuario presione un botón los sliders con la información que desea
ver el usuario en la interfaz aparezca o desaparezcan
55
Figura 22. Evento de slider menú principal (Fuente: Autora)
56
Figura 24. Diagrama de clases capa negocio (Fuente: Autora)
57
En la estabilización además de organizarse el aplicativo con la correspondiente
arquitectura se sincronizaron los scripts de código, los objetos de juego, interfaz y
demás elementos que permiten la navegación de la aplicación, tanto como a
diferentes menús como en la interfaz de realidad aumentada para la interacción con
los modelos 3D.
Para tener claridad del uso de estas capas y los eventos que podrá realizar el
usuario dentro de la aplicación se realizó el siguiente caso de uso.
3.5 Pruebas
Para garantizar el correcto funcionamiento de las anteriores funciones estabilizadas
y además garantizar que todos los requerimientos planteados para cada módulo
funcionen adecuadamente se realizan y evalúan casos de prueba. Documentando
así el resultado esperado y el resultado obtenido de las pruebas realizadas al
aplicativo por la desarrolladora en este caso la autora del presente trabajo de grado.
3.5.1 Objetivo
Garantizar el cumplimiento de los requerimientos funcionales de manera que
se compruebe el correcto funcionamiento de la aplicación
58
3.5.2 Estrategia de pruebas:
Se realizan casos de prueba en los que se verifica los requerimientos
funcionales, los casos de prueba son los siguientes:
Identificador Prueba_001
Nombre del caso Start App
Módulo M001
Requerimiento funcional RF001
Objetivo Comprobar la correcta carga del aplicativo
Precondición Ingresar al aplicativo
Paso Resultado esperado Resultado real
Splash de inicio 1
Iniciar aplicación
Splash de inicio 2
Identificador Prueba_002
Nombre del caso Inicio
Módulo M002
RF002
Requerimiento funcional RF003
RF004
Objetivo Comprobar la correcta presentación de la interfaz de
menú de inicio
59
Precondición Ingresar al aplicativo
Paso Resultado esperado Resultado real
Identificador Prueba_003
Nombre del caso Realidad Aumentada Interfaz
Módulo M003
Requerimiento funcional RF005
Objetivo Comprobar la correcta presentación de la interfaz de
Realidad Aumentada
Precondición El usuario ha seleccionado la opción “Realidad
Aumentada”
Paso Resultado esperado Resultado real
Identificador Prueba_004
Nombre del caso Reconocimiento de targets, Realidad Aumentada
Módulo M004, M005
RF006
Requerimiento funcional
RF007
60
Objetivo Comprobar la correcta identificación por parte de la
cámara de las targets y el renderizado del modelo 3D
después de la identificación.
Precondición El usuario ha seleccionado la opción “Realidad
Aumentada”
Paso Resultado esperado Resultado real
Identificador Prueba_005
Nombre del caso Interfaz información
Módulo M007
Requerimiento RF009
funcional
Objetivo Comprobar el correcto funcionamiento de la interfaz
información
Precondición El usuario ha seleccionado la opción “Información”
61
Paso Resultado esperado Resultado real
Seleccionar opción
Interfaz Información
“Información”
Identificador Prueba_006
Nombre del caso Interfaz Museo
Módulo M008
Requerimiento RF010
funcional
Objetivo Comprobar el correcto funcionamiento de la interfaz
museo
Precondición El usuario ha seleccionado la opción “Museo”
Paso Resultado esperado Resultado real
Seleccionar opción
Interfaz Museo
“Museo”
Identificador Prueba_007
Nombre del caso Interfaz Recorridos
Módulo M009
62
Requerimiento RF011
funcional
Objetivo Comprobar el correcto funcionamiento de la interfaz
recorridos
Precondición El usuario ha seleccionado la opción “recorridos”
Paso Resultado esperado Resultado real
Seleccionar opción
Interfaz Recorridos
“Recorridos”
63
4. RESULTADOS Y VALIDACIÓN
Para evaluar y verificar los resultados de las anteriores fases se realizan pruebas y
una encuesta que determine la funcionalidad del aplicativo como lo es; el uso en
distintas versiones del sistema operativo Android, el adecuado renderizado de los
modelos 3D además de la navegación y otras funciones del aplicativo, de esta
manera se procedió a definir la metodología y a validar e interpretar los resultados
de la encuesta.
Tabla 29. Cuestionario preguntas para los usuarios de la prueba. (Fuente: Autora)
64
¿Suele usar aplicaciones móviles educativas o Muy pocas
de ocio diferentes a las redes sociales No
(Instagram, Facebook, Twitter, etc.)?
Muy a menudo
Habitualmente
¿Con qué frecuencia suele usted visitar
3 Muy poco
museos?
Casi nunca
Nunca
Muy sencilla
Fácil
4 La instalación de la aplicación fue: Dificultad media
Difícil
Muy complicada
Rápidamente
El proceso de instalación de la aplicación se En el tiempo
5
llevó a cabo: estimado
Lentamente
Sí
Mas bien sí
¿Son las interfaces de la aplicación fáciles de
6 Dificultad media
usar?
Mas bien no
No
Nunca
Casi nunca
¿Con qué frecuencia "se cuelga" o "se
7 A veces
bloquea" la aplicación?
Bastante frecuente
Muy a menudo
¿Cuál es su nivel de satisfacción con el 1
8
rendimiento de la aplicación? 2
65
3
4
5
Muy sencilla
El uso de la realidad aumentada en la Fácil
9
aplicación le resultó: Dificultad intermedia
Difícil
Definitivamente sí
¿Le motivaría visitar un museo donde hagan Probablemente sí
10 uso de esta aplicación de realidad No lo sé
aumentada? Probablemente no
Seguramente no
1
¿Cuál es su nivel de satisfacción la 2
11 visualización de realidad aumentada en la 3
aplicación? 4
5
Sí
12 ¿Recomendarías la app a tus conocidos? Tal vez
No
Sí
¿Volverías a usar la aplicación para conocer
13 Tal vez
museos?
No
4.4 a 5.1.1(KitKat,
Lollipop)
¿Qué versión de Android tiene su dispositivo 6.0 a 7.1.2
14
móvil? (Marshmallow,
Nougat)
8.0 a 9.0 (Oreo, Pie)
66
10.0 a 11.0
67
Tabla 31. Respuestas segunda pregunta (Fuente: Autora)
68
Muy a menudo 2 5.3
Habitualmente 11 28.9
Muy poco 17 44.7
Casi nunca 8 21.1
Nunca 0 0
69
Difícil 0 0
Muy complicada 1 2.6
70
Figura 30. Diagrama de torta quinta pregunta (Fuente: Autora)
71
Figura 31. Diagrama de torta sexta pregunta (Fuente: Autora)
72
Figura 32. Diagrama de torta séptima pregunta (Fuente: Autora)
73
Figura 33. Diagrama de barras octava pregunta (Fuente: Autora)
74
Figura 34. Diagrama de torta novena pregunta (Fuente: Autora)
75
Figura 35. Diagrama de torta decima pregunta (Fuente: Autora)
76
Figura 36. Diagrama de barras décimo primera pregunta (Fuente: Autora)
77
Figura 37. Diagrama de torta décimo segunda pregunta (Fuente: Autora)
78
Figura 38. Diagrama de barras décimo tercera pregunta (Fuente: Autora)
79
Figura 39. Diagrama de barras décimo cuarta pregunta (Fuente: Autora)
80
Prueba 8 1,61
Prueba 9 1,42
Prueba 10 1,45
Prueba 11 1,58
Prueba 12 1,65
Prueba 13 1,4
Prueba 14 1,38
Prueba 15 1,38
Prueba 16 1,42
Prueba 17 1,37
Prueba 18 1,33
Prueba 19 1,34
Prueba 20 1,35
Prueba 21 1,38
Prueba 22 1,47
Prueba 23 1,31
Prueba 24 1,2
Prueba 25 1,24
Prueba 26 1,18
Prueba 27 1,2
Prueba 28 1,31
Prueba 29 1,14
Prueba 30 1,2
81
TIEMPO DE RECONOCIMIENTO DE UNA TARGET
2,5
1,5
Tiempo (s)
0,5
0
0 5 10 15 20 25 30
Número de prueba
Media Mediana
1,455 1,39
Los valores obtenidos para el tiempo de reconocimiento son muy buenos teniendo
un promedio de 1.45 segundos para que la cámara reconozca la target del cualquier
modelo aleatorio.
82
Tabla 46. Pruebas de tiempo de reconocimiento usuario 2 (Fuente: Autora)
83
Prueba 27 1,4
Prueba 28 1,62
Prueba 29 1,65
Prueba 30 1,87
Media Mediana
1,57 1,59
Los valores obtenidos para el tiempo de reconocimiento siguen siendo muy buenos
teniendo un promedio de 1.57 segundos para que la cámara reconozca la target
del cualquier modelo aleatorio.
2,5
2
Tiempo (s)
1,5
0,5
0
0 5 10 15 20 25 30
Número de la prueba
84
5. CONCLUSIONES Y RECOMENDACIONES
5.1 CONCLUSIONES
85
5.2 RECOMENDACIONES
86
BIBLIOGRAFÍA
Alonso, A., Artime, I., Rodríguez, M., & Baniello, R. (2011). Dispositivos móviles.
PSIG Ing. Telecomunicación Universidad de Oviedo, 12.
Bradshaw, T., & Kruppa, M. (2020). Epic and Unity rev their engines for the next era
of entertainment. Financial Times.
87
Developers Apple. (2021). Obtenido de ArKit:
https://developer.apple.com/augmented-reality/
Juliani, A., Berges, V., Teng, E., Cohen, A., Harper, J., Elion, C., & Lange, D. (2018).
Unity: A general platform for intelligent agents. .
88
Sarracino, F. (2017). ¿ Mejora la Realidad Aumentada el aprendizaje de los
alumnos? Una propuesta de experiencia de museo aumentado.
89
ANEXOS
90
2) Login - Vuforia
91
4) Obtener la License key para usarla en el programa
92
5) Crear un database para almacenar las targets
93
6) Subir las targets de realidad aumentada que se van a utilizar en la aplicación
94
8) Visualizar los puntos de reconocimiento de cada target
95
96
Anexo 3: comentarios encuesta
97
98
Anexo 4: Scripts Visual Studio 2019
99
100
101
102
103
104
105
106
107
108
109
MANUAL DEL
PROGRAMADOR
ÍNDICE GENERAL
INTRODUCCIÓN .............................................................................................................. 6
INFORMACIÓN DESTACADA........................................................................................... 6
OBJETIVOS ...................................................................................................................... 6
REQUERIMIENTOS .......................................................................................................... 6
Vuforia ........................................................................................................................ 8
C# o C Sharp .............................................................................................................. 8
Unity ........................................................................................................................... 9
FUNCIONAMIENTO DE LA APLICACIÓN....................................................................... 13
Figura 4. Acceso para Unity desde Unity Hub (Fuente: Autora) ....................................... 11
Figura 9. Primer prototipo colores del aplicativo (Fuente: Manual de Identidad Museo) ... 35
Figura 18. Colores de identidad del aplicativo (Fuente: Manual de identidad Museo) ...... 40
INFORMACIÓN DESTACADA
El equipo técnico que requiera orientarse sobre el aplicativo con este manual de
desarrollador debe tener conceptos claros de lógica de programación, programación
orientada objetos, conocimientos avanzados en programación C#, manejo de entornos de
programación de videojuegos en este caso el motor de juegos Unity. Conocimientos de
Visual Studio entre otros manejos de plataformas.
OBJETIVOS
REQUERIMIENTOS
Requerimientos de máquina:
Java Development Kit (JDK): Java SE Development Kit 8u271 Windows x64
Herramientas para el desarrollo
Vuforia
C# o C Sharp
Unity Hub
es una herramienta para la gestión de proyectos Unity, la cual permite gestionar múltiples
instalaciones del editor Unity junto con sus componentes, crear nuevos proyectos y abrir
proyectos existentes. De este modo el programador podrá instalar varias versiones de Unity
y manejar que módulos desea añadir para programar en cada versión
Figura 1. Módulos para Unity 2020.3.1f1 (Fuente: Autora)
Unity
INSTALACIÓN DE APLICACIONES
Para facilitar la descarga de Unity y los componentes con los que se van a trabajar se
recomienda iniciar con la descarga de Unity Hub de este modo se podrán añadir módulos
de Android, iOS, Windows entre otros
Para proceder con la instalación primero deberás ir a la página oficial de unity y descargar
Unity Hub
Figura 2. Página oficial de Unity (Fuente: Autora)
Una vez ingresado la interfaz que aparece en pantalla es como la que se visualiza en la
Figura 5.
Figura 5. Menú principal Unity Hub (Fuente: Autora)
Instalación Unity
Una vez allí en la barra izquierda se debe ir a Installs que permitirá agregar versiones de
Unity con la que sea más fácil, en este caso la versión será 2019.4.26.f1
Del mismo modo correspondiente al año de la versión de unity se instalará Visual Studio
que será el entorno dónde se desarrollará el código de la aplicación.
FUNCIONAMIENTO DE LA APLICACIÓN
Para realizar este método se llama a la librería de Vuforia ya que esta va a permitir el uso
de la cámara y sus componentes, facilitando el acceso. De este modo se realizaron las
funciones Start para instanciar el flash de la cámara en false inicialmente y BotonLinterna
que usa la variable bool Linterna para encender o apagar según lo requiera el usuario:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Vuforia;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
}
}
Para el caso de los paneles de recorridos y el panel del menú de inicio que se desliza
presionando un botón se realizó el siguiente script dónde se adjuntaron las animaciones
hechas desde unity a visual studio.
Dentro de los controladores de cada animación hay una rutina que se definió adjuntada a
un parámetro booleano que permite al código acceder a su estado y modificarlo según el
usuario lo requiera para que se visualicen o desaparezcan los paneles.
Se definen 4 GameObjects uno para cada panel. Para el panel de menú se realiza el método
ShowHideMenu que obtendrá el valor booleano de show en el animator controller del panel
menú y si se presiona el botón este cambiará de estado para que se deslice o se esconda.
Con los métodos ShowHideMur, ShowHideShark y ShowHideSnake se realiza un proceso
similar al anterior pero adicionalmente se agregan todos los paneles de la misma interfaz al
método de modo que no se visualice un panel encima del otro. Que sea un solo panel a la
vez. Si alguno está activo y se presiona el botón para visualizar este diferente el panel se
desactive.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
isOpen2 = false;
isOpen3 = false;
ventana_snake.SetBool("show3", !isOpen);
ventana_shark.SetBool("show2", isOpen2);
ventana_murc.SetBool("show1", isOpen3);
}
}
}
public void HideAll()
{
if (Ventana_Murcielago && Ventana_shark && Ventana_snake != null)
{
Animator ventana_snake = Ventana_snake.GetComponent<Animator>();
Animator ventana_shark = Ventana_shark.GetComponent<Animator>();
Animator ventana_murc = Ventana_Murcielago.GetComponent<Animator>();
if (ventana_snake && Ventana_Murcielago && Ventana_shark != null)
{
bool isOpen = ventana_snake.GetBool("show3");
bool isOpen2 = ventana_shark.GetBool("show2");
bool isOpen3 = ventana_murc.GetBool("show1");
isOpen = false;
isOpen2 = false;
isOpen3 = false;
ventana_snake.SetBool("show3", isOpen);
ventana_shark.SetBool("show2", isOpen2);
ventana_murc.SetBool("show1", isOpen3);
}
}
}
}
Para las funcionalidades que se van a mostrar de ahora en adelante se trabajó con una
librería llamada Lean Touch la cual facilita el uso de la pantalla táctil para manipular objetos
a los cuáles se les asigne el código, en este caso los modelos 3D de la realidad aumentada.
Lo que va a permitir el código es que se pueda modificar el uso de los dedos, la sensibilidad
y la inercia con la que se manipule el modelo 3D. la rotación para el modelo se hará en un
solo eje y se define en Unity después de agregarle al objeto el respectivo script.
using UnityEngine;
using Lean.Common;
using FSA = UnityEngine.Serialization.FormerlySerializedAsAttribute;
namespace Lean.Touch
{
/// <summary>This component allows you to rotate the current GameObject around
the specified axis using finger twists.</summary>
[HelpURL(LeanTouch.HelpUrlPrefix + "LeanTwistRotateAxis")]
[AddComponentMenu(LeanTouch.ComponentPathPrefix + "Twist Rotate Axis")]
public class LeanTwistRotateAxis : MonoBehaviour
{
/// <summary>The method used to find fingers to use with this
component. See LeanFingerFilter documentation for more information.</summary>
public LeanFingerFilter Use = new LeanFingerFilter(true);
#if UNITY_EDITOR
protected virtual void Reset()
{
Use.UpdateRequiredSelectable(gameObject);
}
#endif
// Perform rotation
transform.Rotate(axis, twistDegrees, space);
}
}
}
#if UNITY_EDITOR
namespace Lean.Touch.Editor
{
using TARGET = LeanTwistRotateAxis;
[UnityEditor.CanEditMultipleObjects]
[UnityEditor.CustomEditor(typeof(TARGET), true)]
public class LeanTwistRotateAxis_Editor : LeanEditor
{
protected override void OnInspector()
{
TARGET tgt; TARGET[] tgts; GetTargets(out tgt, out tgts);
Draw("Use");
Draw("axis", "The axis of rotation.");
Draw("space", "Rotate locally or globally?");
Draw("sensitivity", "The sensitivity of the rotation.\n\n1 =
Default.\n\n2 = Double.");
}
}
}
#endif
Para este script como se mencionó anteriormente se usa la librería Lean Touch se usan
como variables la sensibilidad, inercia y damping serán modificados desde el objeto 3D en
unity. Los método principales son Reset, Awake y Update que permiten evaluar la posición
del GameObject que sería el objeto 3D para localizar su posición y localizarla dónde el
usuario la ubique en la pantalla.
using UnityEngine;
using FSA = UnityEngine.Serialization.FormerlySerializedAsAttribute;
using Lean.Common;
namespace Lean.Touch
{
/// <summary>This component allows you to translate the current GameObject
relative to the camera using the finger drag gesture.</summary>
[HelpURL(LeanTouch.HelpUrlPrefix + "LeanDragTranslate")]
[AddComponentMenu(LeanTouch.ComponentPathPrefix + "Drag Translate")]
public class LeanDragTranslate : MonoBehaviour
{
/// <summary>The method used to find fingers to use with this
component. See LeanFingerFilter documentation for more information.</summary>
public LeanFingerFilter Use = new LeanFingerFilter(true);
/// <summary>The camera the translation will be calculated using.
/// None/null = MainCamera.</summary>
public Camera { set { _camera = value; } get { return _camera; } }
[FSA("Camera")] [SerializeField] private Camera _camera;
/// <summary>If you want this component to change smoothly over time,
then this allows you to control how quick the changes reach their target value.
/// -1 = Instantly change.
/// 1 = Slowly change.
/// 10 = Quickly change.</summary>
public float Damping { set { damping = value; } get { return damping;
} } [FSA("Damping")] [FSA("Dampening")] [SerializeField] private float damping = -
1.0f;
[SerializeField]
private Vector3 remainingTranslation;
#if UNITY_EDITOR
protected virtual void Reset()
{
Use.UpdateRequiredSelectable(gameObject);
}
#endif
// Increment
remainingTranslation += transform.localPosition - oldPosition;
// Get t value
var factor = LeanHelper.GetDampenFactor(Damping,
Time.deltaTime);
// Dampen remainingDelta
var newRemainingTranslation =
Vector3.Lerp(remainingTranslation, Vector3.zero, factor);
if (camera == null)
{
var canvas = transform.GetComponentInParent<Canvas>();
if
(RectTransformUtility.ScreenPointToWorldPointInRectangle(transform.parent as
RectTransform, screenPoint, camera, out worldPoint) == true)
{
transform.position = worldPoint;
}
}
if (camera != null)
{
// Screen position of the transform
var screenPoint =
camera.WorldToScreenPoint(transform.position);
#if UNITY_EDITOR
namespace Lean.Touch.Editor
{
using TARGET = LeanDragTranslate;
[UnityEditor.CanEditMultipleObjects]
[UnityEditor.CustomEditor(typeof(TARGET), true)]
public class LeanDragTranslate_Editor : LeanEditor
{
protected override void OnInspector()
{
TARGET tgt; TARGET[] tgts; GetTargets(out tgt, out tgts);
Draw("Use");
Draw("_camera", "The camera the translation will be calculated
using.\n\nNone/null = MainCamera.");
Draw("sensitivity", "The movement speed will be multiplied by
this.\n\n-1 = Inverted Controls.");
Draw("damping", "If you want this component to change smoothly
over time, then this allows you to control how quick the changes reach their target
value.\n\n-1 = Instantly change.\n\n1 = Slowly change.\n\n10 = Quickly change.");
Draw("inertia", "This allows you to control how much momentum
is retained when the dragging fingers are all released.\n\nNOTE: This requires
<b>Damping</b> to be above 0.");
}
}
}
#endif
Para esta función al igual que las anteriores se usa la librería Lean Touch y se puede
modificar la sensibilidad, inercia y damping del modelo al momento de escalarse. Los
métodos Reset, Awake y Update son los encargados de hallar la posición dónde el usuario
los coloca en la pantalla y recoger un vector para que sea modificada la escala del objeto
3D que se este visualizando en la pantalla.
using UnityEngine;
using Lean.Common;
using FSA = UnityEngine.Serialization.FormerlySerializedAsAttribute;
namespace Lean.Touch
{
/// <summary>This component allows you to scale the current GameObject
relative to the specified camera using the pinch gesture.</summary>
[HelpURL(LeanTouch.HelpUrlPrefix + "LeanPinchScale")]
[AddComponentMenu(LeanTouch.ComponentPathPrefix + "Pinch Scale")]
public class LeanPinchScale : MonoBehaviour
{
/// <summary>The method used to find fingers to use with this
component. See LeanFingerFilter documentation for more information.</summary>
public LeanFingerFilter Use = new LeanFingerFilter(true);
/// <summary>If you want this component to change smoothly over time,
then this allows you to control how quick the changes reach their target value.
/// -1 = Instantly change.
/// 1 = Slowly change.
/// 10 = Quickly change.</summary>
public float Damping { set { damping = value; } get { return damping;
} } [FSA("Damping")] [FSA("Dampening")] [SerializeField] private float damping = -
1.0f;
[SerializeField]
private Vector3 remainingScale;
#if UNITY_EDITOR
protected virtual void Reset()
{
Use.UpdateRequiredSelectable(gameObject);
}
#endif
if (pinchScale != 1.0f)
{
pinchScale = Mathf.Pow(pinchScale, sensitivity);
if (transform is RectTransform)
{
TranslateUI(pinchScale,
pinchScreenCenter);
}
else
{
Translate(pinchScale, pinchScreenCenter);
}
}
transform.localScale *= pinchScale;
// Get t value
var factor = LeanHelper.GetDampenFactor(damping,
Time.deltaTime);
// Dampen remainingDelta
var newRemainingScale = Vector3.Lerp(remainingScale,
Vector3.zero, factor);
// Shift this transform by the change in delta
transform.localPosition = oldScale + remainingScale -
newRemainingScale;
if (camera == null)
{
var canvas = transform.GetComponentInParent<Canvas>();
// Push the screen position away from the reference point based
on the scale
screenPoint.x = pinchScreenCenter.x + (screenPoint.x -
pinchScreenCenter.x) * pinchScale;
screenPoint.y = pinchScreenCenter.y + (screenPoint.y -
pinchScreenCenter.y) * pinchScale;
if (camera != null)
{
// Screen position of the transform
var screenPosition =
camera.WorldToScreenPoint(transform.position);
#if UNITY_EDITOR
namespace Lean.Touch.Editor
{
using TARGET = LeanPinchScale;
[UnityEditor.CanEditMultipleObjects]
[UnityEditor.CustomEditor(typeof(TARGET), true)]
public class LeanPinchScale_Editor : LeanEditor
{
protected override void OnInspector()
{
TARGET tgt; TARGET[] tgts; GetTargets(out tgt, out tgts);
Draw("Use");
Draw("_camera", "The camera that will be used to calculate the
zoom.\n\nNone/null = MainCamera.");
Draw("relative", "Should the scaling be performed relative to
the finger center?");
Draw("sensitivity", "The sensitivity of the scaling.\n\n1 =
Default.\n\n2 = Double.");
Draw("damping", "If you want this component to change smoothly
over time, then this allows you to control how quick the changes reach their target
value.\n\n-1 = Instantly change.\n\n1 = Slowly change.\n\n10 = Quickly change.");
}
}
}
#endif
PROTOTIPOS DE LA INTERFAZ DEL APLICATIVO
Figura 10. Primer prototipo colores del aplicativo (Fuente: Manual de Identidad Museo)
De esta manera el boceto inicial que se plantearon para las interfaces con los respectivos
colores del manual vistos en la Figura 9 se visualizan a continuación:
Figura 11. Splash 1 Inicio a la app (Fuente: Autora)
Para otorgar al aplicativo un color distinto de los atribuidos a las páginas por parte de la
universidad se decidió tomar los colores del logotipo que se muestran en la siguiente Figura:
Figura 19. Colores de identidad del aplicativo (Fuente: Manual de identidad Museo)
De este modo también se modificó la orientación de las interfaces para mejor visualización
del imagotipo de la osa y su osezno.
Los usos de las aplicaciones móviles son tan amplios como se pueda imaginar, hoy
en día gracias a la tecnología se pueden realizar en diferentes campos como lo son
el aprendizaje pedagógico y el entretenimiento. Muchos museos alrededor del
mundo han implementado el uso tableros digitales, la gamificación, usando
tecnologías para la impresión 3D de piezas del museo y por último realidad
aumentada.
Como se mostrará por medio de este manual de usuario el uso de una aplicación
móvil de realidad aumentada, enfocada para que cada usuario pueda orientarse en
su uso y en la navegación para que de esta manera pueda sacarle el máximo
provecho a sus funciones mientras realiza una visita al museo de ciencias de la
Universidad de la Salle.
REQUERIMIENTOS
Como la gestión por parte del museo de la Salle para que el aplicativo sea subido a
la Play Store aún se encuentra en espera podrá acceder al aplicativo siguiendo las
siguientes instrucciones para realizar la instalación del aplicativo:
Lo primer que se visualizará será el menú de Inicio (Figura 3) con cuatro secciones
a las que el usuario podrá dirigirse.
Figura 3. Menú de Inicio (Fuente: Autora)
REALIDAD AUMENTADA
Visualización de los
modelos: para la realidad
aumentada lo primero
será la visualización del
los modelos cuando se
enfoque a las targets
respectivas.
Realidad
Aumentada
INFORMACIÓN
MUSEO DE LA SALLE
Para la interfaz del museo de la Salle donde se encuentra información del museo
se describe en la siguiente tabla sus funciones:
En la parte lateral
derecha se encuentra
Información un botón que permitirá
al usuario dirigirse a la
interfaz de información
En la parte lateral
derecha se encuentra
Recorridos un botón que permitirá
al usuario dirigirse a la
interfaz de Recorridos
RECORRIDOS
Para la interfaz de recorridos se tiene la siguiente tabla con las funciones, como ya
se había descrito anteriormente este menú contiene información adicional de los
modelos de realidad aumentada.
En la parte inferior
se encuentra este
botón que al
oprimirse activara
Botón serpiente
un panel con la
información del
modelo respectivo
al que se presionó.