tfm-mar-eva.pdf - Repositorio Principal
-
Upload
khangminh22 -
Category
Documents
-
view
1 -
download
0
Transcript of tfm-mar-eva.pdf - Repositorio Principal
UNIVERSIDAD POLITÉCNICA DE
CARTAGENA
Escuela Técnica Superior de Ingeniería de
Telecomunicación
Evaluación de las tecnologías
virtuales como recurso para la
divulgación científica en el ámbito
de las telecomunicaciones.
TRABAJO FIN DE MÁSTER
MÁSTER EN INGENIERÍA TELEMÁTICA
Autora: Marta Martínez Molina
Directora: María Francisca Rosique Contreras
Cartagena, 10 de diciembre del 2020
Página 1 de 135
Índice índice de Tablas ..................................................................................................................................... 3
Índice de Figuras .................................................................................................................................... 3
1 INTRODUCCIÓN ............................................................................................................................. 9
1.1 OBJETIVOS .......................................................................................................................... 12
2 ESTADO DEL ARTE........................................................................................................................ 13
2.1 LUDIFICACIÓN Y APRENDIZAJE BASADO EN JUEGOS ........................................................... 15
2.2 TECNOLOGÍAS VIRTUALES ................................................................................................... 18
2.2.1 REALIDAD VIRTUAL ............................................................................................................. 20
2.2.1.1 Tipos de realidad virtual ...................................................................................... 22
2.2.1.2 Visores realidad virtual ........................................................................................ 23
2.2.2 REALIDAD AUMENTADA...................................................................................................... 26
2.2.2.1 Tipos y niveles de Realidad aumentada .............................................................. 28
2.2.2.2 Reconocimiento de objetos y/o imágenes, Tracking y Renderizado. ................. 32
3 TECNOLOGÍAS UTILIZADAS EN EL PROYECTO ............................................................................... 35
3.1 UNITY 3D ............................................................................................................................. 38
3.2 VUFORIA ............................................................................................................................. 42
3.2.1 Vuforia en Unity ................................................................................................. 43
3.3 SKETCHUP ........................................................................................................................... 44
4 CASOS DE ESTUDIO DESARROLLADOS ......................................................................................... 48
4.1 Preparación de un proyecto para la accesibilidad de la VR. ................................................. 50
4.1.1 Caso de estudio de modelos 3D en SketchUp e importación a Unity. ................ 51
4.1.2 Caso de estudio visión estereoscópica: Sistema solar en VR .............................. 56
4.1.3 Caso de estudio destinado a la física: Laberinto en Unity .................................. 62
4.2 Preparación de un proyecto para la accesibilidad de la AR .................................................. 73
4.2.1 Caso de estudio marcador multi: proceso de aumento Sistema solar en AR ..... 75
4.2.2 Caso de estudio marcadores single y GUI: Química en AR ................................ 80
4.2.3 Caso de estudio marcadores single y multi: Ciencias naturales primaria .......... 87
4.2.4 Caso de estudio: Tracking a través de un laberinto AR ....................................... 92
4.2.5 Pasa palabra mujeres científicas ......................................................................... 95
5 CONCLUSIONES ......................................................................................................................... 108
6 ANEXO I: Conceptos básicos Unity ............................................................................................. 110
6.1.1 Interfaz de Unity ................................................................................................ 110
6.1.2 Terminología de Unity: Asset, GameObject, Componentes, Prefab. ................ 114
6.1.3 Materiales y texturas......................................................................................... 117
6.1.4 Motor de física: Rigidbody, Collider y Triggers ................................................. 118
6.1.5 Audio e iluminación ........................................................................................... 120
Página 2 de 135
6.1.6 Interfaz de usuario (UI)[71] ............................................................................... 121
7 ANEXO II: Bases de datos de marcadores en Vuforia ................................................................. 123
8 ANEXO III: Marcadores AR utilizados en los casos de estudio. ................................................... 127
9 BIBLIOGRAFIA ................................................................................................................................ 3
Página 3 de 135
índice de Tablas
Tabla 1 Tabla de porcentajes de retención de información ....................................................... 20
Tabla 2 Correspondencia entre Targets y GameObjects ............................................................. 43
Tabla 3 Tabla resumen Casos de estudio .................................................................................... 48
Tabla 4 Relación Colliders GameObjects Laberinto .................................................................... 66
Tabla 5 Preguntas pasapalabra ................................................................................................. 105
Tabla 6 Tipos de Colliders .......................................................................................................... 119
Tabla 7 Tipos de GO Lights ........................................................................................................ 120
Tabla 8 Render Mode - canvas .................................................................................................. 121
Tabla 9 Vuforia: Dimensiones Targets....................................................................................... 125
Índice de Figuras
Fig. 1 Proyecto UPCT: Ingeniosanos ............................................................................................. 9
Fig. 2 Visor Oculus proyecto Ingeniosanos UPCT ........................................................................ 10
Fig. 3 Educación tradicional: enseñanza-aprendizaje ................................................................. 13
Fig. 4 Educación basada en las TIC .............................................................................................. 13
Fig. 5 Aplicación AR Cerebro humano ......................................................................................... 14
Fig. 6 Ventajas del aprendizaje basado en juegos....................................................................... 15
Fig. 7 Cómo aplicar el aprendizaje basado en juegos ................................................................. 16
Fig. 8 Realidad virtual en el aula ................................................................................................. 17
Fig. 9 Continuo de la Virtualidad ................................................................................................. 18
Fig. 10 Datos virtuales y reales (VR, MR, AV, AR) ........................................................................ 18
Fig. 11 Ejemplo Realidad Aumentada ......................................................................................... 19
Fig. 12 Ejemplo virtualidad aumentada ...................................................................................... 19
Fig. 13 Ejemplo de Realidad virtual ............................................................................................. 19
Fig. 14 1Cubo de Zeltzer .............................................................................................................. 21
Fig. 15 Ejemplo entre diferentes FPS .......................................................................................... 21
Fig. 16 Ejemplo realidad virtual semi-inmersiva ......................................................................... 22
Fig. 17 Ejemplo realidad virtual inmersiva .................................................................................. 22
Fig. 18 Estereoscopio, visión frontal y superior .......................................................................... 23
Fig. 19 Visores VR low-cost ......................................................................................................... 24
Fig. 20 Visores VR Oculus / HTC Vive / PlayStation VR ................................................................ 24
ig. 21 Representación de los grados de libertad. ........................................................................ 25
Fig. 22 AR aplicable a la Industria 4.0 .......................................................................................... 26
Fig. 23 Elementos necesarios de la AR ........................................................................................ 27
Fig. 24 Códigos unidimensionales y bidimensionales ................................................................. 29
Fig. 25 Ejemplo: Realidad aumentada basada en marcadores .................................................. 29
Fig. 26 Ejemplos: Realidad aumentada sin marcadores o georreferenciada .............................. 30
Fig. 27 Ejemplo: Realidad aumentada basada en superposición ................................................ 30
Fig. 28 Ejemplo: Realidad aumentada basada en proyección ..................................................... 31
Fig. 29 Ejemplo visión aumentada .............................................................................................. 31
Fig. 30 Reconocimiento de objetos por vértices ......................................................................... 32
Página 4 de 135
Fig. 31 Visual Body Tracking ........................................................................................................ 33
Fig. 32 Hand Tracking .................................................................................................................. 33
Fig. 33 Face Tracking ................................................................................................................... 33
Fig. 34 Oclusión de elementos virtuales ..................................................................................... 34
Fig. 35 Motores de juego populares ........................................................................................... 35
Fig. 36 Software de modelo 3D ................................................................................................... 35
Fig. 37 Logotipo Unity ................................................................................................................. 36
Fig. 38 https://learn.unity.com/ .................................................................................................. 36
Fig. 39 Logo SketchUp ................................................................................................................ 37
Fig. 40 Logo Vuforia ..................................................................................................................... 37
Fig. 41 Acceso Unity ID ................................................................................................................ 38
Fig. 42 Adicción de modulos en Unity Hub ................................................................................. 38
Fig. 43 Descarga de la versión ..................................................................................................... 38
Fig. 44 Unity Hub: interfaz de instalaciones ................................................................................ 39
Fig. 45 Imagen web: Plataformas de destino Unity .................................................................... 39
Fig. 46 Unity: Build Settings......................................................................................................... 39
Fig. 47 Uso de componentes en Unity ........................................................................................ 40
Fig. 48 Diagrama básico MonoBehaviour Unity .......................................................................... 40
Fig. 49 Compatibilidad con los SDKs de Android y iOS ................................................................ 41
Fig. 50 Funciones soportadas AR Foundation ............................................................................. 41
Fig. 51 Vuforia Engine developer portal ...................................................................................... 42
Fig. 52 Añadir módulo de Vuforia en Unity Hub para Unity 2018.4 ........................................... 43
Fig. 53 GameObjects disponibles en Unity de Vuforia Engine .................................................... 43
Fig. 54 Unity: XR Setting Vuforia ................................................................................................. 43
Fig. 55 Presentación AR modelo SketchUp ................................................................................. 44
Fig. 56 Biblioteca de modelos SketchUp: 3D Warehouse ........................................................... 45
Fig. 57 Portal web de SketchUp .................................................................................................. 45
Fig. 58 Interfaz de SketchUp ....................................................................................................... 46
Fig. 59 Aristas y caras SketchUp .................................................................................................. 46
Fig. 60 Herramientas Line y FreeHand ........................................................................................ 46
Fig. 61 Herramientas Rectangle, Arc, Circle y Polygon................................................................ 46
Fig. 62 Motor de inferencias SketchUp ....................................................................................... 47
Fig. 63 Herramienta Paint ........................................................................................................... 47
Fig. 64 Herramientas Push/Pull, Follow me ................................................................................ 47
Fig. 65 Uso de la herramienta Push/Pull y Paint ......................................................................... 47
Fig. 66 Nuevo proyecto 3D en Unity ........................................................................................... 49
Fig. 67 Game Objects predeterminados VR ................................................................................ 50
Fig. 68 Virtual Reality Supported ................................................................................................. 50
Fig. 69 XR Setting : VR Android.................................................................................................... 50
Fig. 70 XR Settings: PC, MAC & Linux Standalone ....................................................................... 50
Fig. 71 Creación de modelos con SketchUp (1) ........................................................................... 51
Fig. 72 Creación de modelos con SketchUp (2) ........................................................................... 52
Fig. 73 Creación de modelos con SketchUp (3): Caras de los materiales.................................... 52
Fig. 74 SketchUp: Herramienta Scale .......................................................................................... 53
Fig. 75 Modelo 3D en SketchUp .................................................................................................. 53
Fig. 76 Proceso de importación .skp a Unity ............................................................................... 53
Fig. 77 Importación del modelo .skt a Unity sin materiales ........................................................ 54
Fig. 78 Unity: Configuración materiales de un modelo .skp ....................................................... 54
Página 5 de 135
Fig. 79 Importación del modelo .skt a Unity con materiales ...................................................... 55
Fig. 80 Skybox: Panoramic ........................................................................................................... 56
Fig. 81 Skybox: 6 Sided ............................................................................................................... 56
Fig. 82 Asset importados para el proyecto.................................................................................. 56
Fig. 83 Vista escena Skybox ......................................................................................................... 57
Fig. 84 GameObject Point Light ................................................................................................... 57
Fig. 85 GameObject Sol: Sphere ................................................................................................. 57
Fig. 86 Vista de juego: Sol con iluminación ................................................................................. 57
Fig. 87 Vista de escena Sol y planetas ......................................................................................... 58
Fig. 88 Detalles de importación Script ........................................................................................ 58
Fig. 89 Script Rotar en C# ............................................................................................................ 58
Fig. 90 Detalle de los componentes Script en el GO Tierra ......................................................... 59
Fig. 91 Vista de escena : Sistema Solar VR .................................................................................. 59
Fig. 92 Previsualización Prefab: Sistema Solar ............................................................................ 60
Fig. 93 Componente Trail Renderer ............................................................................................ 60
Fig. 94 Main Camera: Audio Listener/Source .............................................................................. 60
Fig. 95 Vista de juego Unity: Sistema Solar VR ............................................................................ 61
Fig. 96 Vista estereoscópica en Android: Sistema Solar VR ........................................................ 61
Fig. 97 Scripting: Player Controller .............................................................................................. 63
Fig. 98 Project Settings: inputs .................................................................................................... 64
Fig. 99 Adicción de Collider a monster ........................................................................................ 65
Fig. 100 GameObject Enemigos .................................................................................................. 65
Fig. 101 GameObjects recompensas ........................................................................................... 65
Fig. 102 GameObject Salida ........................................................................................................ 66
Fig. 103 Script rotar para monedas ............................................................................................. 66
Fig. 104 Inspector: salida laberinto ............................................................................................. 67
Fig. 105 Inspector: monedas ....................................................................................................... 67
Fig. 106 Controlador de animaciones enemigo. ......................................................................... 67
Fig. 107 Script para Animator ...................................................................................................... 68
Fig. 108 Inspector: Enemigo ........................................................................................................ 68
Fig. 109 Script Player Controller .................................................................................................. 69
Fig. 110 Vidas y monedas Laberinto............................................................................................ 69
Fig. 111 Canvas Laberinto ........................................................................................................... 70
Fig. 112 Script Player Controller (1) ............................................................................................ 70
Fig. 113 Referencias elementos UI scripting ............................................................................... 71
Fig. 114 Laberinto: Modo de juego no inmersivo ....................................................................... 71
Fig. 115 Laberinto: Modo de juego semi inmersivo .................................................................... 72
Fig. 116 Laberinto: Interfaz final ................................................................................................. 72
Fig. 117 XR Settings: Realidad Aumentada ................................................................................. 73
Fig. 118 GameObjects predeterminados AR ............................................................................... 73
Fig. 119 Inspector: AR Camera .................................................................................................... 73
Fig. 120 Configuración de Vuforia. .............................................................................................. 74
Fig. 121 Descargar BBDD Vuforia ................................................................................................ 74
Fig. 122 Configuración Vuforia: múltiples BBDD ......................................................................... 74
Fig. 123 Base de datos planetarioAR ........................................................................................... 75
Fig. 124 Detalle MultiTarget: mergeCube ................................................................................... 75
Fig. 125 Estructura jerárquica mergeCube Unity ........................................................................ 76
Fig. 126 Archivos importados desde Vuforia .............................................................................. 76
Página 6 de 135
Fig. 127 Detalles Inspector MultiTarget ...................................................................................... 76
Fig. 128 Adicción de contenido digital al Multitarget ................................................................. 76
Fig. 129 Modo Prefab: Configuración inicial del Sistema de partículas ...................................... 77
Fig. 130 Módulos Emission, Shape y Renderer ........................................................................... 77
Fig. 131 Modo Prefab: Configuración final del Sistema de partículas ........................................ 78
Fig. 132 Scripting/Inspector: Variable pública Sol ....................................................................... 78
Fig. 133 Scripting/Inspector: Variable pública Sol ....................................................................... 78
Fig. 134 Sistema Solar AR Windows: No Enable video background ............................................ 79
Fig. 135 Sistema Solar AR Android: Enable video background ................................................... 79
Fig. 136 Conjunto de piezas para formar los marcadores........................................................... 80
Fig. 137 Base de datos formulas_quimicas ................................................................................. 81
Fig. 138 Single Targets : formulas químicas ................................................................................ 81
Fig. 139 single Targets : Planos digitales ..................................................................................... 82
Fig. 140 Contenido digital: moléculas químicas .......................................................................... 82
Fig. 141 Interfaz principal Química en Realidad Aumentada ...................................................... 82
Fig. 142 OnClick() Button Exit ...................................................................................................... 83
Fig. 143 OnClick() Button Start .................................................................................................... 83
Fig. 144 Script temporizador ....................................................................................................... 83
Fig. 145 Interfaz de reconocimiento de Targets Química ........................................................... 84
Fig. 146 Química AR: variables públicas ...................................................................................... 84
Fig. 147 Método OnTrackingFound() ......................................................................................... 85
Fig. 148 Método TrackingLost() formulas ................................................................................... 85
Fig. 149 Actividad química: Renderizado de contenido digital ................................................... 86
Fig. 150 Ejemplo ejercicio teórico libro de 2º de primaria .......................................................... 87
Fig. 151 Distribución de marcadores en la escena ...................................................................... 88
Fig. 152 Diferentes bases de datos empleadas ........................................................................... 88
Fig. 153 Contenido digital 2D en el MultiTarget ......................................................................... 89
Fig. 154 Contenido digital 3D en el MultiTarget ......................................................................... 89
Fig. 155 Comparación del contenido digital MultiTarget ............................................................ 89
Fig. 156 Método OnTrackingFound () ......................................................................................... 90
Fig. 157 Variables públicas visibles en el Inspector ..................................................................... 90
Fig. 158 Marcadores simultaneos en la escena .......................................................................... 91
Fig. 159 Planos en las caras del MultiTarget ............................................................................... 91
Fig. 160 Renderización de contenido 3D en el MultiTarget según marcadores Single ............... 91
Fig. 161 Jerarquía del Prefab del Laberinto con elementos para interactuar ............................. 92
Fig. 162 Detalle cristal transparente Laberinto ........................................................................... 93
Fig. 163 Laberinto en MultiTarget ............................................................................................... 93
Fig. 164 Renderizado final laberinto AR: Vuforia Disable background ....................................... 94
Fig. 165 Laberinto en Realidad aumentada ................................................................................ 94
Fig. 166 Científicas el cómic ........................................................................................................ 95
Fig. 167 Tipo de textura Sprite [2D and UI] ................................................................................. 96
Fig. 168 Paneles de la escena ...................................................................................................... 96
Fig. 169 GameObject Panel en Unity .......................................................................................... 97
Fig. 170 Elementos UI del Panel Principal / Panel hijo enlaces UPCT - ETSIT ............................. 97
Fig. 171 Modificación de la apariencia de la escena ................................................................... 98
Fig. 172 Script para enlaces web ................................................................................................. 98
Fig. 173 Inspector: Script para enlaces web ................................................................................ 99
Fig. 174 Botón para el Panel del cómic ....................................................................................... 99
Página 7 de 135
Fig. 175 Botón para el Panel AR .................................................................................................. 99
Fig. 176 Botón salir menú principal ........................................................................................... 100
Fig. 177 Panel del cómic ............................................................................................................ 100
Fig. 178 Distribución en la jerarquía de los paneles y Assets para los comic ........................... 100
Fig. 179 Distribución inicial para cada cómic ............................................................................ 101
Fig. 180 Método OnClick botón avanzar en el Panel 0 y retroceder en el Panel 2 (activar página
1) ............................................................................................................................................... 101
Fig. 181 Método OnClick botón avanzaren el Panel 1 y Retroceder en el Panel 3 (activar página
2) ............................................................................................................................................... 101
Fig. 182 Método avanzar en el panel 2 (activar página 3) ........................................................ 102
Fig. 183 Botón salir del cómic de Hedy ..................................................................................... 102
Fig. 184 Cómic Hipatia: Panel 0, 1, 2, 3 ..................................................................................... 103
Fig. 185 Comic Hedy Lamarr: Panel 0, 1, 2,3 ............................................................................. 103
Fig. 186 Cómic Rosalind Franklin: Panel 0, 1, 2, 3 ..................................................................... 103
Fig. 187 Cómic Curie: Panel 0, 1, 2, 3 ........................................................................................ 103
Fig. 188 Cómic Ada Lovelace: Panel 0, 1, 2, 3 ........................................................................... 103
Fig. 189 Button Hipatia: interacción para el cómic ................................................................... 104
Fig. 190 Panel AR inicial ............................................................................................................. 106
Fig. 191 Clase tiempo pasapalabra ............................................................................................ 106
Fig. 192 Método OnClick() Botón Go ........................................................................................ 107
Fig. 193 Panel AR cuando se pulsa GO ...................................................................................... 107
Fig. 194 Visualización pasapalabra ............................................................................................ 107
Fig. 195 Ventanas principales Unity .......................................................................................... 110
Fig. 196 Parentesco en Unity..................................................................................................... 110
Fig. 197 Barra de Herramientas: Detalle Transform Tools ........................................................ 111
Fig. 198 Ventana de proyecto Unity .......................................................................................... 111
Fig. 199 Vista de escena y previsualización vista de juego ....................................................... 112
Fig. 200 Menú Gizmo de planos básicos ................................................................................... 112
Fig. 201 Vista de escena con previsualización y vista de juego ................................................. 112
Fig. 202 Vista de la ventana consola ......................................................................................... 112
Fig. 203 Ventana Asset Store Unity ........................................................................................... 113
Fig. 204 Menú Window Unity.................................................................................................... 113
Fig. 205 Inspector: Tipos de GO y GO primitivos ...................................................................... 114
Fig. 206 Detalle componente Transform .................................................................................. 115
Fig. 207 Propiedades por referencia y valor ............................................................................. 115
Fig. 208 Inspector: GO Asset Prefab con icono azul .................................................................. 116
Fig. 209 Detalle Prefab en la ventana de proyecto ................................................................... 116
Fig. 210 Detalle color Albedo ................................................................................................... 117
Fig. 211 Inspector: Material – Albedo ....................................................................................... 117
Fig. 212 Unity: Componente Rigidbody .................................................................................... 118
Fig. 213 Unity: Componentes Collider ...................................................................................... 118
Fig. 214 Entre que Colliders se producen colisiones ................................................................. 119
Fig. 215 Unity: Componente Box Collider ................................................................................. 119
Fig. 216 Entre que Colliders se producen Trigger ..................................................................... 119
Fig. 217 Unity: Componente Audio Listener ............................................................................. 120
Fig. 218 Unity: Componente Audio Source ............................................................................... 120
Fig. 219 Elementos UI en Unity ................................................................................................. 121
Fig. 220 Componente Rect Transform ...................................................................................... 122
Página 8 de 135
Fig. 221 Toggles pivote Unity .................................................................................................... 122
Fig. 222 Elemento UI Button .................................................................................................... 122
Fig. 223 Añadir licencia Vuforia ................................................................................................. 123
Fig. 224 Vuforia: Administrador de licencias............................................................................. 123
Fig. 225 Vuforia: Administrador de Bases de datos .................................................................. 123
Fig. 226 Crear base de datos Vuforia ........................................................................................ 124
Fig. 227 Vuforia: Tipos de marcadores ...................................................................................... 124
Fig. 228 Previsualización Target Cuboid y Cylinder ................................................................... 124
Fig. 229 Vuforia: Targets en bases de datos AR ........................................................................ 125
Fig. 230 Vuforia: Características de un marcador single ........................................................... 125
Fig. 231 mergeCube.Back .......................................................................................................... 127
Fig. 232 mergeCube.Bottom ..................................................................................................... 127
Fig. 233 mergeCube.Front ......................................................................................................... 127
Fig. 234 mergeCube.Left ........................................................................................................... 127
Fig. 235 mergeCube.Right ......................................................................................................... 127
Fig. 236 mergeCube.Top ........................................................................................................... 127
Página 9 de 135
1 INTRODUCCIÓN
La labor de la ciencia y la investigación se completa con la divulgación científica. Siendo dicha
divulgación clave para acercar a la sociedad general los resultados de las investigaciones,
democratizando de esta manera el conocimiento y promoviendo la integración del
conocimiento científico a la cultura. Las actitudes de la sociedad hacia la ciencia pueden además
condicionar la forma de pensar y hacer de la población, su imagen social, y, por tanto, el apoyo
socioeconómico a las investigaciones y programas científicos, o la cantidad de investigadores o
profesionales en este campo de conocimiento[1]. En consecuencia, la relación entre actitudes
hacia la ciencia y vocaciones STEM (Ciencia, Tecnología, Ingeniería y Matemáticas) está clara.
La Universidad Politécnica de Cartagena (UPCT) y la Escuela Técnica Superior de Ingeniería e
Telecomunicación (ETSIT) participan de forma muy activa en las distintas actividades de
promoción, difusión y divulgación científica, con el objetivo de fomentar las vocaciones
científicas y tecnológicas. La autora de este proyecto ha participado de forma muy activa
desarrollando e impartiendo muchas de estas actividades, por citar algunas de ellas, Quiero ser
ingeniera, Campus de la ingeniería, Ingeniosanos, Educación para el S XXI, Cable Amarillo, etc.
Fig. 1 Proyecto UPCT: Ingeniosanos
Sin embargo, ante la presente situación del covid19, la posibilidad de desplazarse a impartir
diversas jornadas de formación acerca de estas tecnologías virtuales es muy limitada, por lo que
se hace necesario utilizar otros medios de difusión y divulgación alternativos con la población.
La realidad virtual, la realidad aumentada y el modelado 3D son tecnologías virtuales
emergentes, y actualmente su tendencia va en aumento en relación con su aplicación en
diversos ámbitos, como por ejemplo sanitario, empresarial, entretenimiento, y por supuesto en
el ámbito educativo, el cual es ámbito de este trabajo.[2]
La realidad virtual permite al usuario sentirse partícipe de una escena a través de imágenes
estereoscópicas. Estas hacen que nuestro cerebro perciba la sensación de profundidad en el
entorno interpretándolo como algo real a través de la vista. Este es el sentido que más
información sensorial ofrece al usuario y el que se estimula principalmente con los visores.
Página 10 de 135
Antagónicamente, la realidad aumentada muestra al usuario el entorno real, pero es capaz de
ampliar la información que este ofrece de forma digital. Estas tecnologías no solo pueden
presentar el entorno real, si no que pueden ampliar su información con contenido digital, crear
cualquier contenido imaginable o incluso crear un entorno propio.
Ambas tecnologías, independientemente del entorno, ofrecen al usuario la posibilidad de
interactuar con él en tiempo real, y reaccionar a dichas interacciones, lo que ofrece un sinfín de
posibilidades para realizar actividades en ámbitos muy diversos.
Fig. 2 Visor Oculus proyecto Ingeniosanos UPCT
Las nuevas tecnologías presentan formas sutiles y atractivas de reorganización de las dinámicas
educativas y escolares.[3] Esta característica puede ser muy útil en el ámbito de la educación y
la divulgación científica, si se tiene en cuenta el papel que juega la motivación en la
predisposición para aprender. En la actualidad la proliferación de aplicaciones basadas en
gamificación y especialmente en el denominado Aprendizaje Digital Basado en Juegos (Digital
Game-Based Learning, DGBL) abre un panorama de elevado potencial educativo.
Este proyecto se inicia con la convicción de que estas tecnologías y metodologías emergentes
pueden proporcionar recursos docentes y divulgativos alternativos a los convencionales, los
cuales proporcionan más interacción y compromiso por parte del usuario en la actividad al
involucrarlo en su creación. Siendo la evaluación de esta hipótesis el objetivo principal del
proyecto, tal y como se puede ver en el siguiente subapartado de objetivos.
Por otro lado, dado las actuales circunstancias sociosanitarias, la principal motivación de este
proyecto es proporcionar una alternativa para continuar las labores de divulgación científica y
tecnológica que ofrece la universidad en el ámbito de las tecnologías virtuales, pero con medios
más accesibles. Es una forma de acercar estas tecnologías a la población y especialmente ofrecer
recursos alternativos a los docentes en este año en el que la educación digital se ha impuesto a
la presencial.
El resto del proyecto se organiza de la siguiente manera:
Página 11 de 135
Apartado 2. ESTADO DEL ARTE
En este apartado se expone el marco teórico del proyecto: La ludificación y aprendizaje basado
en juegos a través de las tecnologías virtuales. Para su correcta comprensión se define el marco
de la virtualidad y se muestran características básicas, tipos y procesos de visionado de la
Realidad Virtual y la Realidad Aumentada con el fin de entender su funcionamiento, y conocer
una correcta distinción entre ellas.
Apartado 3. TECNOLOGÍAS UTILIZADAS EN EL PROYECTO
Para poder implementar los juegos es necesario conocer las herramientas utilizadas para su
creación y desarrollo. En este apartado se indican las herramientas necesarias para crear
aplicaciones de realidad virtual y de realidad aumentada, además de algunas para la creación de
modelos 3D.
Se seleccionan las herramientas software destinadas al proyecto, y se hace notorio, que además
de ser elegidas por su potencial, se eligen principalmente porque facilitan versiones gratuitas
para desarrolladores, lo que aumenta el grado de accesibilidad.
Apartado 4. CASOS DE ESTUDIO DESARROLLADOS
Además de exponerse las nociones fundamentales teóricas de las tecnologías virtuales y sus
herramientas de desarrollo, se detalla la parte práctica de su implementación a través de unos
determinados casos de estudios propuestos.
Esta serie de talleres prácticos hacen uso de tecnologías virtuales para ayudar al objetivo de la
difusión y además puedan ser una alternativa asequible a distancia. Los casos de estudio han
sido desarrollados de tal forma que cualquier usuario con acceso a un PC pueda desarrollarlos y
pueda hacer uso de un smartphone como visor.
Para aplicar el aprendizaje basado en juegos se tratan temáticas muy diversas en el ámbito de
la educación y la divulgación, como pueden ser la química, las ciencias naturales o la astronomía
u otros orientados a jornadas especiales, como la igualdad de género o el día de la mujer en la
ciencia. Independientemente de la temática, todos los casos de estudio son aplicables por
niveles, desde el más básico que sería usar la aplicación como demostración, hasta crearla
completa de forma individual.
A través de juegos, los investigadores/docentes les explican a los más jóvenes conceptos
científicos con un lenguaje adaptado a su edad y elementos sencillos. Los usuarios que no
conocían estás tecnologías, normalmente quedan asombrados al descubrirlas, ya que aprender
se convierte en algo divertido, interactivo y posee ese toque de atracción que ofrece el visionado
de contenido digital tan usado día a día.
Apartado 5. CONCLUSIONES
En este apartado se enuncian las conclusiones tras el desarrollo del proyecto, exponiendo la
metodología llevada a cabo para conseguir los objetivos marcados.
Página 12 de 135
1.1 OBJETIVOS
El objetivo principal es la evaluación de las tecnologías virtuales como recurso para la divulgación científica. Para cumplir con el objetivo principal se definen los siguientes subobjetivos
• Implantar una estructura auto formativa, tanto teórica como práctica, para usuarios que
no están relacionados con las tecnologías virtuales.
• Exponer el marco teórico de las tecnologías virtuales: Conocer las características básicas,
tipos y procesos de visionado de la Realidad Virtual y la Realidad Aumentada.
• Aplicar la gamificación y el aprendizaje basado en juegos para mostrar las tecnologías
virtuales como un recurso docente alternativo.
• Utilizar herramientas software de carácter gratuito para aumentar la accesibilidad de
medios a los usuarios.
• Formarse en la creación de proyectos de Realidad virtual y Realidad Aumentada con Unity y Vuforia.
• Proponer diversos casos de estudios para mostrar de forma práctica los conceptos teóricos mostrados tanto de las tecnologías virtuales como de las herramientas software descritas.
• Que los casos de estudio implementados tengan un cierto formato lúdico para su implementación en el aula.
• Demostrar que las tecnologías virtuales son aplicables en ámbitos educativos muy diversos.
• Realizar un portfolio de actividades aplicables utilizando las tecnologías virtuales.
Página 13 de 135
2 ESTADO DEL ARTE
En la educación convencional hay marcado un modelo de enseñanza-aprendizaje donde se
denota al estudiante cómo un receptor pasivo que debe absorber la información, para luego
poder aplicarla de forma activa en un conjunto de prácticas. El grado de aprendizaje del
estudiante, y por ende sus calificaciones, quedarán marcados por el proceso de aprendizaje y
las tecnologías docentes aplicadas.
Fig. 3 Educación tradicional: enseñanza-aprendizaje
Un proceso de aprendizaje exitoso requiere de una serie de condiciones de carácter específico
que facilite la adquisición de conocimientos en la realización y desarrollo de diferentes tareas,
haciendo participe al estudiante, e introduciendo nuevos métodos alternativos al tradicional
“pizarra, papel y lápiz”. Las tecnologías docentes aplicadas deben despertar el interés por
aprender, cómo aprender y mantener al día estos conocimientos.
Para paliar esta situación en los últimos años comenzaron a introducirse las TIC en los ámbitos
educativos. Se denominan Tecnologías de la Información y las Comunicaciones (TIC) al conjunto
convergente de tecnologías que permiten la adquisición, producción, almacenamiento,
tratamiento, comunicación, registro, acceso y presentación de datos, información y contenidos
(en forma alfanumérica, imágenes, videos, sonidos…).[4]. Entre las cuales se encuentran las
tecnologías virtuales objeto de este proyecto.
Fig. 4 Educación basada en las TIC
Actualmente la gran mayoría de estudiantes son nativos digitales: han crecido con acceso al
Internet, utilizando tecnologías digitales y jugando videojuegos. Además, tienen una nueva
actitud y mayores exigencias para la enseñanza y el aprendizaje.
Página 14 de 135
Una estrategia con la que se trabaja exitosamente en estos momentos es la ludificación de la
educación, o como se conoce en inglés “gamification of learning”. Esta estrategia utiliza
elementos que ya existen en los juegos y los traslada al proceso educativo.[5]
En estas nuevas metodologías docentes, la realidad digital (realidad virtual, realidad aumentada, modelado 3d) supone un recurso muy considerado en los últimos años. Las principales ventajas en el ámbito educativo son [6], [7]
• Sencillez a la hora de captar la atención del alumnado, rompiendo con el modelo de
enseñanza tradicional.
• Contenidos más dinámicos y flexibles, adaptables a diferentes niveles educativos.
• Interacción entre el mundo virtual y real, propiciando el aprendizaje experimentado y
participación activa.
• Autonomía, fomenta la capacidad del alumno de aprender por sí mismo.
• Facilita la comprensión del tema de estudio, independientemente de la disciplina o
materia a impartir (matemáticas, idiomas, tecnología, arte, etc.)
• Puede ilustrar con mayor exactitud algunas características y procesos que por otros
medios.
• Permite la observación y experimentación de las áreas y de los acontecimientos
inaccesibles por otros medios, tales como escenas subacuáticas, históricas,
reconstrucciones de sitios arqueológicos o simuladores.
En la siguiente figura se muestra un sistema de enseñanza sobre el cerebro humano basado en
Realidad aumentada que permitirá el desarrollo de entornos de realidad virtual para que
estudiantes y médicos en formación puedan simular cirugías de alta complejidad, algo que no
sucede con frecuencia en los quirófanos.[8]
Fig. 5 Aplicación AR Cerebro humano
Página 15 de 135
2.1 LUDIFICACIÓN Y APRENDIZAJE BASADO EN JUEGOS
Cuando se usa el juego con finalidades educativas suele distinguirse entre el uso ocasional de
algún tipo de juego y lo que implica una propuesta más compleja que transforme la metodología
mediante la cual mejorar una determinada propuesta o programación didáctica. Así, podemos
diferenciar:[9]
o El aprendizaje basado en juegos tiene como finalidad última utilizar juegos con el fin de
aprender a través de ellos. El juego se convierte en el vehículo para realizar un
aprendizaje o para trabajar un concepto determinado. Mientras dura el juego, o al final
de la partida, el docente puede reflexionar en torno a lo que está sucediendo en el juego
y los contenidos difícil de sistematizar. No responde a una clasificación concreta porque
dependerá, siempre, de los contenidos que se quieran trabajar y de cómo el profesorado
sea capaz de relacionarlos con el juego. Su aplicación en el aula tiene diversas ventajas
entre las que se encuentran las ilustradas en la Fig. 6
Fig. 6 Ventajas del aprendizaje basado en juegos
o La ludificación o gamificación es una vía para involucrar, motivar y mejorar el
compromiso del estudiante mediante el uso de la mecánica de los juegos. Se trata de
adaptar e integrar sus características, que tanto les gustan a muchos jóvenes, al proceso
educativo a fin de estimularlos a construir nuevo conocimiento y a mejorar sus destrezas
y habilidades.[10]
El objetivo principal es que el usuario final tenga la sensación de estar viviendo una
experiencia de juego, pero a diferencia del aprendizaje basado en juegos, la ludificación
consiste en construir un escenario donde los participantes se convierten en los
auténticos protagonistas y donde avanzan para lograr un reto propuesto utilizando
algunos de los elementos de juego.
Todos los juegos no son más que un conjunto de elementos que se combinan entre sí y que
pueden clasificarse en tres tipos: mecánicas, dinámicas y estética.[9]
Página 16 de 135
▪ Las mecánicas son las diferentes acciones, comportamientos y mecanismos de control
ofrecidos al jugador dentro de un contexto de juego. Son las reglas básicas del juego,
aquellas que determinan cómo se desarrollará el juego y deben ser aceptadas y
respetadas por todos los jugadores.
Son elementos como recompensas por acciones, diferentes tipos de niveles, conjunto
de acciones permitidas para el usuario, retos…
▪ Las dinámicas se refieren a cómo el jugador se comporta durante el juego. Es decir, qué
cosas puede hacer a partir de lo que le permiten las mecánicas del juego e interaccionar
con ellas. Elementos representativos de estas son competiciones o requerir trabajos de
equipo para completar la actividad.
▪ La estética. Se refiere a los gráficos, la música, la ambientación, la historia que se cuenta
en el juego. Es todo lo que percibe el jugador y que hace que se implique en el juego o,
por el contrario, que no se sienta atraído por él.
Para poder ludificar una actividad es necesario tener en cuenta ciertos aspectos. Antes de
comenzar a diseñar la actividad, es necesario definir un objetivo didáctico, es decir, establecer
que conocimientos o actitudes se quiere que los estudiantes adquieran. Cuando esté claro, es
necesario transformar el aprendizaje tradicional y ser capaz de plasmar el proceso de
aprendizaje en una propuesta lúdica y divertida.
Una vez establecida la actividad, debe exponerse el objetivo a los estudiantes explicando las
determinadas normas de las que consta el juego: que mecánicas existen y que dinámicas se
espera que sigan. La gamificación debe ser social e incluir una sana competencia como parte
indispensable del juego, además de proporcionar determinados niveles para mantener el
equilibrio entre la dificultad de un reto y la satisfacción que se obtiene al superarlo.
Fig. 7 Cómo aplicar el aprendizaje basado en juegos
Página 17 de 135
Respecto a la estética, las tecnologías virtuales son un excelente método de aplicación. Son
tecnologías innovadoras y atractivas al usuario, que tienen la capacidad de proporcionar
experiencias inmersivas y generar un encuentro cara a cara con la información digital. Se puede
“trasladar” a los estudiantes a cualquier entorno creado informáticamente que, por alguna
razón como distancia o coste, serían inaccesibles. Incluso se puede contextualizar la información
digital con el entorno real.
Estas tecnologías proporcionan un aprendizaje en primera persona, según el cual un individuo
adquiere la mayoría de los conocimientos mediante experiencias. Además, a menudo el
aprendizaje se realiza de forma implícita, ya que no somos conscientes de que estamos
aprendiendo.
Fig. 8 Realidad virtual en el aula
Si bien hace ya algunas décadas que existe la capacidad de entregar experiencias de realidad
aumentada y virtual, no ha sido hasta hace poco que estas experiencias se han vuelto fáciles de
usar y sobre todo portátiles. Los adelantos en dispositivos móviles, fundamentalmente en los
smartphones, pero también en diferentes tecnologías que combinan el mundo real con la
información virtual, han dado lugar a que hoy en día podamos disfrutar de estas aplicaciones y
que la AR esté ya posicionada para entrar en el sector de consumo de forma generalizada [11]
La potencialidad de gran parte de esos servicios es poder acceder a la información digital
complementaria a la del mundo físico o en un entorno virtual, actualizada en tiempo real y eso
solo es posible gracias a las infraestructuras de telecomunicación.[11]
Página 18 de 135
2.2 TECNOLOGÍAS VIRTUALES
Para comprender perfectamente el concepto de la Realidad Aumentada y la Realidad Virtual, se
debe antes conocer qué tipo de “realidades” existen. Todas estas realidades tienen en común la
presencia de objetos reales y/o elementos virtuales, y es la forma en la que se relacionan estos
dos tipos de elementos y la predominancia de uno sobre el otro lo que diferencia las distintas
realidades. Una de las clasificaciones hechas es la realizada por Paul Milgram y Fumio Kishino,
que en el año 1994 definieron el concepto de Continuo de la Virtualidad. El Continuo de la
Virtualidad define que hay una escala continua de realidades (Fig. 9) en cuyos extremos se sitúa
por una parte la denominada Realidad Virtual, caracterizada por la presencia de un mundo
completamente virtual, y por otra parte el llamado Mundo Real donde todo es completamente
real.[12]
Fig. 9 Continuo de la Virtualidad
El espacio comprendido entre los dos extremos se denomina Realidad Mixta. Este tipo de
realidad mezcla el entorno del mundo real del usuario con contenido creado digitalmente de
forma que ambos entornos puedan coexistir e interactuar entre ellos.
Fig. 10 Datos virtuales y reales (VR, MR, AV, AR)
Según la cantidad de datos reales y virtuales que hay en la escena, la realidad mixta se puede
dividir en Realidad aumentada, si contiene más datos reales que virtuales, o Virtualidad
Aumentada, si los datos reales están en menor proporción que los virtuales.
Página 19 de 135
La Realidad Aumentada es pues una tecnología que ayuda a enriquecer nuestra percepción de
la realidad con una nueva lente gracias a la cual la información del mundo real se complementa
con la de la digital. [11]
Fig. 11 Ejemplo Realidad Aumentada
De forma opuesta, la Virtualidad Aumentada consiste en introducir algo real en un mundo
virtual, por lo cual la información de éste se complementa con elementos reales. Por lo tanto,
está más cerca de la Realidad Virtual que del Mundo Real.
Fig. 12 Ejemplo virtualidad aumentada
Cuando el entorno es completamente virtual, es decir, este y todos sus elementos están
generados por ordenador en su totalidad, se denomina Realidad Virtual.
Fig. 13 Ejemplo de Realidad virtual
Página 20 de 135
2.2.1 REALIDAD VIRTUAL
El término VR ha sido aplicado a lo largo de la historia a cualquier desarrollo tecnológico que
vaya desde juegos de computadora hasta películas tridimensionales, por lo que es importante
dejar este concepto claro. Una definición concisa podría ser la siguiente:
“La Realidad Virtual es una simulación de un ambiente tridimensional generada por
computadoras, en el que el usuario es capaz tanto de ver como de manipular los contenidos de
ese ambiente”[13]
Aunque hay multitud de definiciones a lo largo de la historia, todas se refieren a que la Realidad
Virtual es una experiencia interactiva e inmersiva en un mundo simulado.
Las personas estamos constantemente recibiendo impresiones sensoriales que se comunican
con nuestros sentidos. La calidad de estas cuando nos sumergimos en un mundo virtual
determinan el nivel de inmersión y la sensación de presencia en este.
La realidad virtual actúa sobre tres de nuestros sentidos, y como se puede apreciar en la
siguiente tabla, podemos obtener un 95,5% de la información a través de la vista, el oído y el
tacto [7]. Estimulando en mayor grado estos sentidos virtualmente es posible conseguir la
llamada telepresencia, es decir, hacer sentir al usuario la sensación de estar en el mundo virtual.
Gusto 1 %
Tacto 1,5 %
Olfato 3,5 %
Oído 11 %
Vista 83 %
Tabla 1 Tabla de porcentajes de retención de información
Este tipo de realidad nos permite encontrarnos cara a cara con la información, ver el mundo
circundante en otra dimensión y experimentar cosas que no son accesibles en la vida real o
incluso no creadas todavía.
Tiene 3 características fundamentales:
• Tiempo real y/o autonomía, puedes decidir tus movimientos y acciones en el momento
de la visualización.
• Inmersión en el escenario 3D, perdiendo el contacto con la realidad exterior y
sintiéndose así participe del entorno, sumergiéndose en un mundo totalmente virtual y
por tanto con estímulos virtuales.
• Interacción con los elementos que lo conforman, permitiéndonos interactuar con el
mundo virtual a través de numerosos dispositivos de entrada. Además, el propio
entorno debe reaccionar de manera realista a las acciones del usuario.
Página 21 de 135
Fig. 14 1Cubo de Zeltzer
Otro sentido estimulado por la realidad virtual es el equilibrio. De esto se encarga el sistema
vestibular, es parte del oído interno y da información al cerebro sobre movimiento, posición de
la cabeza y localización espacial. Es imprescindible estimular los sentidos del usuario en el
mundo virtual de una manera adecuada de forma que los desplazamientos, giros o aceleraciones
sean acordes a las del propio usuario.
En realidad, virtual, se denomina motion sickness a la sensación de mareo debido a la
discrepancia entre el movimiento esperado y el movimiento experimentado. Esto puede
producirse por una mala configuración de las interacciones, una latencia mayor entre tramas o
una tasa de refresco no lo suficientemente alta.
Estos dos últimos términos son muy utilizados en este ámbito:
- La latencia es el tiempo desde que se recibe una entrada hasta que se muestra en el
visor. 20 ms es el mínimo aceptable, valores mayores causan mareo ya que lo que se ve
no se corresponde con la posición de la cabeza.
- La tasa de refresco se refiere a los Frames por segundo (Frames Per Second, FPS)
Mínimo de 60Hz para no provocar mareo. Los FPS pueden caer si se sobrepasan las
posibilidades del hardware
Fig. 15 Ejemplo entre diferentes FPS
Página 22 de 135
2.2.1.1 Tipos de realidad virtual
Podemos agrupar los sistemas de Realidad virtual según el grado de inmersión sensorial que el
usuario percibe. Dependiendo del nivel de inmersión este puede interactuar con el mundo
virtual y los objetos del mismo en un grado u otro.
No immersive VR
Es la denominada realidad virtual de escritorio, el tipo más simple. Sólo se permite una salida
sensorial compatible, y es un monitor.
Aunque la realidad virtual busca simular sofisticados espacios tridimensionales, el enfoque no
inmersivo ofrece un nuevo mundo a través de una simple ventana de escritorio. Este enfoque
no inmersivo es más barato y tiene probadamente mayor facilidad y rapidez de aceptación en
los usuarios.[14]
Semi-immersive VR
Intenta mejorar a la anterior, admitiendo el seguimiento de cabeza, aunque todavía usan el
monitor de escritorio. El usuario sabe que está dentro de un mundo virtual porque se ve a sí
mismo dentro del escenario y este sólo llena una parte su visión.
Fig. 16 Ejemplo realidad virtual semi-inmersiva
Inmersive VR
El usuario queda sumergido totalmente en el mundo virtual, ya sea empleando periféricos o
proyecciones. Admite una visión estereoscópica de la escena de acuerdo con la posición y
orientación del usuario.
Fig. 17 Ejemplo realidad virtual inmersiva
Página 23 de 135
2.2.1.2 Visores realidad virtual
En los últimos años la realidad virtual ha experimentado un gran desarrollo y se prevé que tenga
diversas aplicaciones, tanto en el ámbito recreativo como en el profesional. La calidad de las
experiencias de inmersión es un factor clave que depende en gran medida, de la capacidad de
generar la llamada telepresencia o presencia a distancia, que comienza con la percepción de
profundidad que se consigue visualmente generando dos vistas diferentes de la misma escena.
Para entender el concepto y seguir su desarrollo, hay que retroceder a la época del
estereoscopio inventado por Sir Charles Wheatstone en 1840.
Fig. 18 Estereoscopio, visión frontal y superior
Este aparato presenta una doble imagen que se mezcla en nuestro cerebro como una sola,
formando una imagen estereoscópica [15], es decir, se aprovecha de la capacidad que tiene el
cerebro humano de generar una visión tridimensional a partir de la percepción en cada ojo de
dos imágenes ligeramente diferentes, un fenómeno que nos permite calcular distancias y
apreciar el volumen y la profundidad de los objetos. Con ello, se conformaron los primeros
patrones para el diseño de los primeros visores de VR. Desde entonces han ocurrido varios hitos
importantes. En 1957, el pionero Morton Heilig construyo “La Sensorama”, una máquina de
inmersión sensorial total. En 1968, Ivan Sutherland, creo “Human Mounted Display o HMD”, una
pantalla estereoscópica que permitía representar formas simples. En 1991, aparecen las
primeras gafas comerciales de la mano de SEGA sin mucho éxito. Finalmente, en 2010 aparece
el primer prototipo Oculus Rift, un dispositivo que lograba un ángulo de visión de 90°. Y con
estas gafas, la Realidad Virtual volvió a ponerse de moda.
Como se puede observar, han existido intentos puntuales para desarrollar dispositivos VR que
siempre han terminado en fracaso. Sin embargo, con los avances tecnológicos, las empresas ya
disponen de la tecnología para dotarla de atractivo y sentido. Las compañías son conscientes de
esto, por lo que Facebook, Samsung, Google y Sony han lanzado sus cascos de realidad virtual,
en un mercado que los analistas consideran impulsará al sector de los videojuegos.
Es importante precisar que, así como hay opciones bastante sofisticadas (y más caras), también
existen otras que pueden resultar más económicas y que de igual manera cumplen con la
función de introducirnos en un mundo totalmente virtual.
Página 24 de 135
Hay tres categorías principalmente:
• Móviles/carcasas: se corresponden a aquellas con forma de carcasa, que puede ser de
plástico, metal, incluso de catón y que cuentan con un espacio para insertar el
Smartphone. Requieren de un smartphone para funcionar (el móvil como pantalla no se
usa en la actualidad). Para su funcionamiento utilizan unas sencillas lentes. Un ejemplo
de este tipo de gafas son las Google Cardboard
Fig. 19 Visores VR low-cost
• Visores de sin procesador: Incorporan sus propias pantallas y sistemas de sonido, pero
requieren de un equipo o un PC externo que haga el trabajo duro. Un ejemplo de este
tipo de visores son las Oculus Rift, HTC Vive o PlayStation VR.
Fig. 20 Visores VR Oculus / HTC Vive / PlayStation VR
• Autónomos (standalone): Incluyen sus propias pantallas y sistemas de sonido, pero, a
diferencia de los visores sin procesador, en estos visores todo el sistema completo
(incluido el procesador) se encuentra en el interior del visor. Un ejemplo de este tipo de
visores son las Oculus Go, Oculus Quest o Pico Neo.
Cualquier visor que caiga en estas categorías, se podrá diferenciar también dependiendo de
cuántos ejes de movimiento libre nos permita. Se llaman 6DoF (6 Degrees of Freedom o 6 grados
de libertad) a aquellos visores que nos dejan acercarnos y alejarnos de los objetos virtuales como
si se estuviera en la vida real; inclinándonos, agachándonos, andando o cualquier otro
movimiento físico real que el visor traduzca a movimiento idéntico virtual. Los visores de hace
unos años, restringidos a 3 ejes se conocen como 3DoF. Normalmente, cuanto más cómodos y
libres sean estos movimientos, mejor tenderá a ser la experiencia. Nuestra recomendación será,
por regla general, los visores 6 DOF.
Página 25 de 135
Fig. 21 Representación de los grados de libertad.
Otros factores que suelen mejorar la experiencia son la resolución de las pantallas que montan,
el ángulo de visión y el confort que ofrecen. Normalmente, cuanto más cómodos y mayores sean
estos valores, mejor tenderá a ser la experiencia. Existen diferentes plataformas con las que
suelen ser compatibles los diferentes visores: Oculus, SteamVR, Windows Mixed Reality,
PlayStation, Daydream y Vive Wave. Por lo que cada visor suele dar soporte a una o varias.
Página 26 de 135
2.2.2 REALIDAD AUMENTADA
En el avance de la realidad virtual, surge el concepto de Realidad aumentada, una tecnología
que "presenta un mundo virtual que enriquece, en lugar de reemplazar al mundo real" (Bryson,
1992).
Se consigue superponiendo objetos tridimensionales virtuales en entornos reales, y, por tanto,
cumple dos de las tres características de la Realidad Virtual:
• Nos encontraremos en un tiempo real y podremos gozar de autonomía.
• Podremos interactuar con los elementos que conforman el entorno.
Sin embargo, al contrario que la VR, no perderemos el contacto con la realidad en nuestro
escenario, ya que este es la propia realidad. En este caso la información queda contextualizada
en el entorno físico en el que se encuentra el usuario.
Fig. 22 AR aplicable a la Industria 4.0
La realidad aumentada se puede definir como el tipo de realidad que una persona observa
cuando se combina un entorno físico real con elementos virtuales. Esa realidad o visión tiene
lugar a través de un dispositivo tecnológico que mezcla la realidad física del usuario con
elementos físicamente inexistentes (generados por ordenador) y muestra el resultado al
usuario. Ejemplos de estos dispositivos serían móviles, tablets, proyectores, gafas… en general
cualquier dispositivo que disponga de una pantalla o superficie para mostrar la nueva realidad
creada al usuario y que disponga de una sensor de captación de imagen o cámara para poder
recogerla realidad física existente.[16]
Concretamente, para componer un servicio de realidad aumentada son necesarios varios
elementos:[11]
• Por un lado, un elemento que capture las imágenes de la realidad que ve el usuario.
Basta para ello una cámara sencilla que capte el entorno del usuario.
Página 27 de 135
• Por otro lado, un elemento sobre el que se proyecta la mezcla de las imágenes reales
con las imágenes sintetizadas, como puede ser la pantalla de un ordenador, un móvil o
una consola.
• Es preciso un elemento de procesamiento para interpretar la información del mundo
real que recibe el usuario, generar la información digital y mezclarla de forma adecuada.
• Por último, es necesario un elemento al que podríamos denominar activador de
realidad aumentada. Son elementos de localización como los GPS, brújulas y
acelerómetros que permiten identificar la posición y orientación de dichos dispositivos
o elementos físicos como etiquetas o marcadores de tipo RFID o QR. En general
cualquier elemento que sea capaz de suministrar información equivalente a la que
proporciona lo que ve el usuario.
Fig. 23 Elementos necesarios de la AR
Página 28 de 135
2.2.2.1 Tipos y niveles de Realidad aumentada
Según los distintos grados de complejidad o de fusión con la realidad que presentan las
aplicaciones basadas en la realidad aumentada, estas se pueden clasificar en diferentes niveles:
• Nivel 0 – Physical World Hyper Linking o enlazado con el mundo físico: este nivel se
caracteriza por el empleo de imágenes en 2D como códigos de barras que sirven como
enlaces a otros contenidos. Es la forma más básica de realidad aumentada.
• Nivel 1 – Marker Based AR o realidad aumentada con marcadores: se emplean
aplicaciones que pueden reconocer patrones en 2D o 3D simples, como figuras en
blanco y negro, formas o dibujos esquemáticos.
• Nivel 2 – AR without markers o realidad aumentada sin marcadores: No necesitan
marcadores, sino que utilizan sistemas como la brújula digital para conocer la
localización del usuario y proyectar imágenes virtuales de interés sobre la realidad
cotidiana.
• Nivel 3 – Augmented vision o visión aumentada: son dispositivos de alta tecnología que
permiten una experiencia totalmente inmersiva y fusionada con la realidad.
La realidad aumentada también se puede clasificar también según:
• La tecnología que emplea, en este caso se puede hablar de marcadores, objetos
tangibles, Smart Terrain o geolocalización [12].
• El objetivo o a la tecnología empleada. Con relación a su objetivo se puede hablar de
realidad aumentada en imágenes, espacios o lugares.
• La técnica de visualización. La realidad aumentada se puede visualizar principalmente a
través de dos medios: dispositivos portátiles como smartphones o tablets, y gafas de
realidad aumentada.
A continuación, se describen los principales tipos de realidad aumentada, basados en estas
distintas clasificaciones posibles.
Realidad aumentada basada en marcadores
Estos marcadores representan un tipo de activador físico que se ubica en el entorno para
enlazar información o posicionar en la escena un determinado contenido digital.
Este tipo de activadores podrían englobarse en dos niveles:
• Nivel 0, se utilizan códigos unidimensionales y bidimensionales, como códigos de barras
o códigos QR, para enlazar información digital. Es el tipo más simple de AR y solo sirven
de enlace a otros contenidos, donde se utilizan marcadores con unos determinados
patrones predefinidos para incrustar hiperenlaces a contenidos digitales.
Página 29 de 135
Fig. 24 Códigos unidimensionales y bidimensionales
• Nivel 1, se utilizan imágenes u objetos en 3D para colocar datos digitales a través de
reconocimiento de patrones. A diferencia del anterior, permite realizar un seguimiento
de objetos o imágenes, reconocer el entorno y renderizar contenido digital.
Fig. 25 Ejemplo: Realidad aumentada basada en marcadores
Realidad aumentada sin marcadores o georreferenciada
Se establece en el nivel 2, superponer puntos de interés sobre imágenes del mundo real.
En la actualidad existen multitud de dispositivos que contienen elementos que permiten
reconocer el diseño, la disposición y orientación de nuestro entorno para colocar información
digital en él. Estos elementos son denominados “Triggers” o “desencadenantes” y determinan
el posicionamiento del dispositivo móvil:[17]
• GPS: Indica la ubicación del dispositivo a través de las coordenadas.
• Brújula: Hace referencia a la orientación del dispositivo en la dirección que enfoca la
cámara integrada.
• Acelerómetro: Identifica la orientación y ángulo del dispositivo al uso.
Página 30 de 135
Se define este tipo de AR cuando la información capturada por la cámara del dispositivo procesa
conjunto de datos para utilizarlo en el posicionamiento del contenido digital en el entorno real.
Fig. 26 Ejemplos: Realidad aumentada sin marcadores o georreferenciada
Realidad aumentada basada en superposición
La realidad aumentada basada en superposición reemplaza parcial o totalmente la vista original
de un objeto con una vista aumentada de ese mismo objeto. En la realidad aumentada basada
en la superposición, el reconocimiento de objetos juega un papel vital porque la aplicación no
puede reemplazar la vista original con una aumentada si no puede determinar qué tipo de
objeto es.[18] Esto se lleva a cabo a través de la detección de planos y el tracking.
Fig. 27 Ejemplo: Realidad aumentada basada en superposición
Realidad aumentada basada en hologramas
Se utilizan proyecciones u hologramas para mostrar el contenido digital sobre el entorno. Se
proyecta luz artificial sobre superficies del mundo real y el software es capaz de detectar
interacciones sobre dicha luz. Esto se hace comparando proyecciones esperadas con la alterada
por el usuario.
Página 31 de 135
Fig. 28 Ejemplo: Realidad aumentada basada en proyección
El Nivel 3 (Visión aumentada) estaría representado por dispositivos como Google Glass, lentes
de contacto de alta tecnología u otros que, en el futuro, serán capaces de ofrecer una
experiencia completamente contextualizada, inmersiva y personal[5]
Fig. 29 Ejemplo visión aumentada
Página 32 de 135
2.2.2.2 Reconocimiento de objetos y/o imágenes, Tracking y Renderizado.
La realidad aumentada es un proceso por etapas que se clasifican en dos grandes grupos: la
visión por computador y los gráficos por computador.
Por un lado, la visión por computador engloba el reconocimiento de objetos y/o imágenes y el
Tracking, que permiten a un dispositivo reconocer las características de una imagen o frame y
seguirlas en la escena. Por otro lado, los gráficos por computador se refieren a la iluminación y
renderización de la escena, es decir, se utilizan los dispositivos para generar modelos digitales e
integrarlos en el mundo real de forma eficaz.
Reconocimiento de objetos y/o imágenes
Para conseguir representar correctamente los elementos virtuales en la escena del mundo
reales necesario reconocer el entorno que rodea al usuario y los elementos que componen ese
mismo entorno. Así pues, se define el reconocimiento de objetos como la tarea de encontrar e
identificar objetos en imágenes o secuencias de video.
Esto se lleva a cabo a través de distintos algoritmos que buscan características o similitudes, ya
sea por color, iluminación o geometría.
Fig. 30 Reconocimiento de objetos por vértices
Esta tecnología se usa habitualmente para el reconocimiento de imagen los llamados targets.
Los targets son imágenes e incluso figuras que permiten posicionar los contenidos virtuales en
la escena, es decir, los elementos visuales se crean entorno al target.
Tracking
El tracking es el proceso de localizar un objeto que se está moviendo en el espacio y en el tiempo.
Esta fase está íntimamente relacionada con el reconocimiento de objetos, ya que para
posicionar el objeto en cualquier instante éste debe ser reconocido. Para que el tracking sea
posible un algoritmo analiza la secuencia de imágenes que la cámara del dispositivo (móvil,
Tablet, etc.) capta e interpreta y extrae el movimiento del objeto entre los frames. [16]
El Tracker es el dispositivo que realiza el tracking, y debe convertir las coordenadas de la imagen
a las globales del entorno. Para facilitar el posicionamiento, la relación entre coordenadas puede
ser facilitada por marcadores o puntos de interés cuya orientación y posición es conocida.
Página 33 de 135
Según los elementos que se quieren capturar se distingue el tipo de Tracking. Algunos de ellos
son:
• Body Tracking y Hand Tracking. En el Body Tracking la cámara rastrea un cuerpo
humano en tiempo real, capturando su posición y movimientos reproduciéndolos
digitalmente. Se pueden trackear partes más concretas del cuerpo. Cuando el tracking
se centra en las manos, así como cada uno de sus dedos, se le denomina Hand tracking.
Fig. 31 Visual Body Tracking
Fig. 32 Hand Tracking
• Head Tracking. Se basa en determinar la posición y movimientos de la cabeza del
usuario. El interés de esta técnica permite crear aplicaciones donde según se mueva la
cabeza, la imagen mostrada en una pantalla cambia su perspectiva dando la sensación
de profundidad, como si fuera tridimensional. [16].
• Face Tracking. Consiste en determinar la localización en cada instante de caras humanas
y detectar sus gestos (Fig. 33). Mediante algoritmos se es capaz de seguir y reconocer
los gestos de la cara del usuario dibujando una malla sobre ella.[16]
Fig. 33 Face Tracking
Página 34 de 135
Renderizado
Una vez los objetos de la escena son identificados y analizados, es necesario introducir los
elementos virtuales creados mediante programas de representación gráfica. Los elementos
digitales deben intentar adaptarse a las condiciones del entorno:
• Su iluminación debe de ser realista, proporcionar efectos de luz y sombras para así
adaptar la iluminación del objeto virtual a la iluminación del entorno real.
• Al introducir el objeto virtual en la escena, debe parecer que realmente pertenece a ella.
Para ello se debe renderizar el mundo como una máscara transparente que oculta
objetos virtuales y conocer la profundidad. El mundo real debe ser capaz de “tapar” al
virtual.
Fig. 34 Oclusión de elementos virtuales
Página 35 de 135
3 TECNOLOGÍAS UTILIZADAS EN EL PROYECTO
Para el desarrollo de aplicaciones o videojuegos los desarrolladores utilizan frameworks de
software diseñado para crear y desarrollar. Estos framework permite unificar todo el sistema en
uno solo, y se conocen como motores de juego o game engine.
Un motor de videojuego es un término que hace referencia a una serie de librerías de
programación que permiten el diseño, la creación y la representación de un videojuego. [19]
Posee diversas funcionalidades entre las que destacan que poseen un motor gráfico para
renderizar gráficos 2D y 3D, un motor físico que simula las leyes de la física y detecta colisiones,
y proporcionan herramientas de desarrollo visual y software de animaciones, sonidos,
inteligencia artificial y Scripting.
Todos los motores de videojuegos tienen un lenguaje de programación que permite
implementar el funcionamiento de los personajes y objetos que forman parte del
videojuego.[19]
Fig. 35 Motores de juego populares
Estos motores poseen herramientas para la creación de modelos, pero lo más habitual es utilizar
softwares específicos de modelado 3D para añadir elementos que compongan la escena y
renderizarlos como una imagen bidimensional en la pantalla.
Fig. 36 Software de modelo 3D
Para poder comunicarse a nivel de software los motores de juegos utilizan SDKs, que permiten la implementación de diferentes plataformas en el motor.
Página 36 de 135
Un SDK (Kit de desarrollo de software, o de sus siglas en inglés, Software Development Kit) es un
conjunto de herramientas y datos que permite a los desarrolladores programar en un lenguaje
para una plataforma específica.
Un componente estándar que incluyen casi todos los kits de desarrollo de software es la API
(también mencionada a menudo en plural), a través de la cual los proyectos de software se
pueden enlazar a nivel de código fuente. El suministro de esta interfaz de programación
elemental suele ir acompañado de una extensa documentación que incluye instrucciones sobre
cómo usarla, así como otra información de interés[20]
Para realizar los casos de estudio se ha decidido utilizar las siguientes tecnologías:
Motor de juego: UNITY
Para usuarios que no tienen experiencia en programación, la curva de aprendizaje es más suave
que para UnrealEngine. Unity posee una interfaz amigable, que permite crear y modificar
elementos solo con arrastrar y soltar en el editor.
La mayor de sus ventajas es su gran documentación (tanto en inglés como en español
https://docs.unity3d.com/es/2018.4/Manual/UnityManual.html), para distintos lenguajes de
programación (C#, Javascript y Boo), hay gran cantidad de tutoriales y el foro de ayuda de Unity
te resuelve cualquiera de tus dudas. Pone a disposición del usuario los Assets, que son paquetes
ya desarrollados que realizan distintas funcionalidades, desde juegos completos hasta el
controlador del jugador, que permiten utilizarlos sin necesidad de programarlos uno mismo,
ahorrando tiempo (https://assetstore.unity.com//).[21]
En este proyecto se utilizará el lenguaje de programación C# debido a que hay un mayor número
de usuarios de Unity que programan con este lenguaje, por lo que a la hora de resolver dudas
es más fácil encontrar respuesta. Además de ser un lenguaje de programación orientado a
objetos común, la creación de componentes es directa, así como es la referencia a esos
componentes en código.
Software de modelado 3D: SKETCHUP
Su bajo nivel de dificultad a la hora de su aprendizaje y utilización, lo hace ideal para introducir
conceptos de modelado 3D en edades tempranas. Dispone de una versión web de la aplicación
donde se pueden crear los diseños sin necesidad de instalar software en el PC, y a la hora de la
compatibilidad de versiones, la app web se actualiza automáticamente y permite la descarga de
modelos por versión.
Fig. 38 https://learn.unity.com/ Fig. 37 Logotipo Unity
Página 37 de 135
Fig. 39 Logo SketchUp
Cuenta con un repositorio llamado 3D Warehouse para descargar modelos 3D de forma gratuita
y la opción básica brinda las herramientas avanzadas para crear y editar sólidos, aplicar
materiales, escalar los modelos, rotación de objetos…
Además, el motor de juego seleccionado admite de forma nativa modelos de SketchUp,
proporciona herramientas para la importación de sus correspondientes texturas y materiales y
permite definir grupos de componentes, que se convierten en mallas, instanciadas como
GameObjects.
SDK para AR con marcadores: VUFORIA
Para implementar actividades de Realidad aumentada basada en marcadores se utiliza el SDK
de Vuforia, ya que proporciona tanto rastreo de texto como de imágenes, así como su debido
tracking en la escena, y dispone de una detección rápida y rastreo simultaneo de targets. Su
documentación es bastante completa y su aprendizaje bastante fluido.
Fig. 40 Logo Vuforia
Suministra una base de datos para crear, alojar y gestionar distintos tipos de marcadores y un
Tracker que analiza el video proveniente de la cámara para encontrar coincidencias entre los
frame y los targets contenidos.
Pone a disposición de los usuarios frameworks para su implementación en Android Studio,
Xcode, Visual Studio y para el motor de juego seleccionado, Unity.
Página 38 de 135
3.1 UNITY 3D
Unity es un motor de juego con un entorno de desarrollo integrado (IDE) para crear medios
interactivos, generalmente videojuegos[22, p. 2], creado por la empresa Unity Technologies.
Esta herramienta no solo permite crear videojuegos si no todo tipo de experiencias tanto en 2D
como en 3D.
Dispone de una comunidad formada por todos los miembros con un Unity ID, es decir, una
cuenta de usuario con Unity. Esta permite entre otros la descarga del IDE, acceder a la tienda de
Unity, el Asset Store, tanto para descargar como para publicar datos, y conectar equipos y
recursos de Unity.
Fig. 41 Acceso Unity ID
Posee una documentación muy extensa, por lo que se ha creado el ANEXO I: Conceptos básicos
Unity, para reflejar los aspectos más importantes utilizados en los casos de estudio. Además,
ofrece recursos de aprendizaje en forma de tutoriales y proyectos en su apartado Unity Learn.
Aunque dispone de versiones más profesionales, Unity pone a disposición de cualquier usuario
un IDE muy completo con múltiples funcionalidades, por lo que es totalmente accesible.
Unity dispone de una herramienta para gestionar proyectos e instalaciones denominada Unity
Hub. Esta simplifica la forma en que encuentras, descargas y gestionas tus instalaciones del
Editor de Unity y cómo ves todos tus proyectos creados con Unity.[23]
En este proyecto se usará principalmente la versión 2018.4 y en el determinado caso de estudio
para el reconocimiento facial, la versión 2019.4
Fig. 43 Descarga de la versión
Fig. 42 Adicción de modulos en Unity Hub
Página 39 de 135
Fig. 44 Unity Hub: interfaz de instalaciones
Es importante destacar que Unity tiene un carácter multiplataforma, permite implementar
aplicaciones en una amplia variedad de destinos utilizando los mimos Assets y Scripts de un
mismo proyecto. Unity soporta más de 25 plataformas de destino entre las que se encuentran
plataformas de escritorio Windows, Mac y Linux, consolas, Smart TV, dispositivos AR/VR y
plataformas móviles como Android e iOS.
La implementación de los casos de estudio en el proyecto está indicada para Windows y Android,
aunque podría cambiarse a cualquier otra fácilmente, pero es necesario instalar los módulos de
la correspondiente plataforma en Unity Hub como se indica en la Fig.
Fig. 45 Imagen web: Plataformas de destino Unity
Esta configuración quedará retratada en el proyecto en el menú File > Build Settings. Esta es la
ventana donde se deberán de añadir las escenas para construir la aplicación.
Fig. 46 Unity: Build Settings
Página 40 de 135
Respecto a modelos digitales, Unity admite la importación de archivos desde multitud de
software de modelado 3D. Es posible crear modelos dentro de Unity, pero lo más común es
utilizar modelos creados en estos softwares. Unity admite formatos comunes de archivos 3D
exportados, .FBX o .obj, y archivos propios de aplicaciones de modelado 3D o software CAD,
como AutoCAD, 3Dstudio max o Blender. Además, admite de forma nativa SketchUp, una de
las razones por las que se ha elegido este software para modelado 3D en el proyecto.
Toda esta información digital, ya sea creada o exportada, cuando forma parte de una escena de
Unity se le denomina GameObject, pero ¿cómo hacer que estos elementos se muevan,
colisionen o interaccionen con el usuario? El comportamiento de los GameObjects es controlado
por los Components que están adjuntos, y aunque ofrecen características muy versátiles, es
necesario el uso de Scripts para conseguir componentes personalizados.[24]
Fig. 47 Uso de componentes en Unity
Cuando se crea un script C# en Unity , hereda automáticamente de MonoBehaviour y le
proporciona un script de plantilla. La clase MonoBehaviour es una clase base de programación
de la que deriva cada script de Unity, por defecto.[25] Esto quiere decir que Unity se encargará
de ejecutar los métodos mostrados en la Fig. 48 automáticamente siguiendo un ciclo de vida.
Fig. 48 Diagrama básico MonoBehaviour Unity
Página 41 de 135
Así dispone de métodos como Awake() destinado a fines de inicialización, Start() que se ejecuta
una vez cuando el GO al que está asociado en el Script aparece en la escena o Update(), que se
ejecuta antes de mostrar cada frame del juego. Estos dos últimos métodos los definidos por
defecto y, por ende, los más utilizados, los cuales serán objeto de estudio en este proyecto.
Todas estas características, combinadas con la estructura jerárquica de GO que ofrece Unity, su
sistema modular de componentes y su sistema de Scripting, convierten a Unity3D en una de las
mejores opciones a la hora de desarrollar aplicaciones de Realidad Virtual y Realidad
Aumentada.
También ofrece un marco para trabajar con plataformas de realidad aumentada de forma
multiplataforma dentro de Unity: AR Foundation. Este paquete presenta una interfaz, pero no
implementa ninguna característica AR en sí, así que es necesario añadir los paquetes separados
para las plataformas destino: Android, iOS, Magic Leap u Hololens.
Fig. 50 Funciones soportadas AR Foundation
Fig. 49 Compatibilidad con los SDKs de Android y iOS
Página 42 de 135
3.2 VUFORIA
Vuforia es una plataforma de desarrollo de aplicaciones multiplataforma de realidad
aumentada (AR) y realidad mixta (XR).[26] Proporciona SDKs para Unity, Android, iOS y UWP
(Universal Windows Platform).
Un SDK (Kit de desarrollo de software, o de sus siglas en inglés, Software Development Kit) es un
conjunto de herramientas y datos que permite a los desarrolladores programar en un lenguaje
para una plataforma específica. Gracias a esta característica, las aplicaciones de Vuforia se
pueden crear con Unity, Android Studio, Xcode y Visual Studio.
Vuforia ofrece a los desarrolladores, además de licencias profesionales, una licencia Developer
que es gratuita. Este tipo de licencia no busca fines comerciales y, por tanto, tiene un
almacenamiento limitado y permite desarrollar aplicaciones, pero no se pueden distribuir a
usuarios finales.
Para poder acceder a las funciones de Vuforia, al igual que Unity, es necesario tener una cuenta
de usuario. Con ella se puede acceder a la sección de desarrollador a través de su portal web:
https://developer.vuforia.com/[27]. Es destacable mencionar que posee una documentación
bastante completa para cada uno de los diferentes SDKs admitidos.
Fig. 51 Vuforia Engine developer portal
Cada aplicación creada con Vuforia necesita su propia clave de licencia, pero es posible tener la
misma licencia para una misma aplicación que vaya a ser construida en las diferentes
plataformas de destino admitidas. La creación de estas licencias y de las bases de datos de
marcadores se explican detalladamente en el ANEXO II: Bases de datos de marcadores en
Vuforia
Para crear aplicaciones de realidad Aumentada, Vuforia tiene un rastreador nativo o Tracker que
utiliza la cámara del dispositivo para captar el entorno real buscando marcadores o Targets.
Cuando detecta alguno, ejecuta su algoritmo y superpone la información digital en el mundo
físico.
El algoritmo de Vuforia ofrece detección y rastreo simultaneo de targets, además de un rastreo
robusto y una detección rápida. El funcionamiento básico podría resumirse en los siguientes
pasos:
1. La cámara del dispositivo capta una escena.
2. El SDK convierte los fotogramas de la cámara y cambia la resolución para ser tratada por
el Tracker.
3. Vuforia analiza la imagen a través del Tracker y busca coincidencias en la base de datos
configurada en la aplicación, compuesta por uno o más targets.
4. La aplicación renderiza el contenido virtual en la pantalla.
Página 43 de 135
3.2.1 Vuforia en Unity [28]
A partir de 2017.2 Unity integra el motor Vuforia Engine y puede descargarse directamente en
la instalación o añadir el módulo destinado a esto en Unity Hub, pero a partir de 2019.2 esta
función deja de estar disponible y debe descargarse desde el administrador de paquetes de
Unity.
Cuando Vuforia está disponible en el proyecto, sus componentes son visibles en el menú de
GameObjects y Player Settings
El GameObject más importante para conseguir
el proceso de aumento con Vuforia es la AR
Camera. Este GO es un tipo de cámara especial
que admite aplicaciones de realidad
aumentada tanto para dispositivos de mano
como para gafas digitales.
Es importante destacar que Unity denota los targets de Vuforia de forma diferente. En la tabla
se muestra la correspondencia entre marcadores de Vuforia y GameObjects en Unity que se
utilizarán en el proyecto.
VUFORIA UNITY
Single Target GameObject Image
Cuboid Target GameObject Multi Image
Cylinder Target GameObject Cylindrical Image
Tabla 2 Correspondencia entre Targets y GameObjects
Fig. 52 Añadir módulo de Vuforia en Unity Hub para Unity 2018.4
Fig. 53 GameObjects disponibles en Unity de Vuforia Engine
Fig. 54 Unity: XR Setting Vuforia
Página 44 de 135
3.3 SKETCHUP
SketchUp es una herramienta de diseño gráfico y modelado en tres dimensiones (3D) basado en
caras [29]. Su principal característica es que permite a los usuarios realizar diseños en 3D de
forma sencilla. Anteriormente se denominaba Google SketchUp, pero desde que fue vendida a
Trimble en 2012 se denomina simplemente SketchUp.
Ofrece al usuario un entorno amigable y una interfaz intuitiva en la que se pueden modelar
diversas geometrías como edificios, coches, personas o cualquier objeto imaginable por el
desarrollador[30]. SketchUp es un software que se usa comúnmente para el modelado de
arquitectura y los edificios creados en él, pueden ser geo-referenciados sobre Google Earth.
Independientemente de la geometría, estos modelos en 3D pueden representar ideas o
proyectos que, llevados al marco de las tecnologías virtuales, pueden ser usados para
representar estos conceptos en un entorno inmersivo o de una forma más real e interactiva.
Fig. 55 Presentación AR modelo SketchUp
Es destacable mencionar que SketchUp no es un software de diseño asistido por computadora.
Los softwares CAD representan información concreta, sin embargo, SketchUp está pensado para
diseñar conceptos e ideas (aunque pueden ser tan concretas como las del software CAD)
Los modelos creados se pueden subir a la red y almacenarse en la biblioteca propia de SketchUp:
3D Warehouse[31]. Esta es una galería de objetos, texturas e imágenes que se ponen a
disposición de cualquier usuario. Los modelos pueden ser filtrados por categorías o buscarse
directamente a través de la barra de búsqueda superior.
Página 45 de 135
Fig. 56 Biblioteca de modelos SketchUp: 3D Warehouse
Para utilizar SketchUp y 3DWarehouse se necesita una cuenta de usuario de Trimble y aunque
existen versiones más profesionales de pago, ofrece una versión Free a disposición personal. Si
se posee una cuenta de Microsoft Education, existe una versión For Schools que contiene
programas de cursos para el aprendizaje y recursos para imprimir los modelos en 3D. En el
proyecto se ha utilizado la versión Free la cual se usa a través del navegador.
Fig. 57 Portal web de SketchUp
Al crear un nuevo proyecto de modelo, la interfaz predeterminada se muestra en la siguiente
figura. Tiene un eje de coordenadas diferenciado por colores para la altura, anchura y
profundidad (azul rojo y verde), cuyas coordenadas positivas se representan con una línea
continua y las negativas con una línea discontinua. Además, se muestra un componente
predeterminado, Helen. Este componente representa un modelo humano y se usa para tener
una referencia escalar.
Página 46 de 135
Fig. 58 Interfaz de SketchUp
La interfaz web posee dos menús laterales: Uno destinado a la creación y modificación de
geometrías en la escena y otro con funcionalidades más avanzadas que no son objeto de estudio
en este proyecto.
Cualquier elemento dibujado en SketchUp se denomina geometría, y uniendo varias de ellas
correctamente, se obtiene un modelo.
Los modelos en SketchUp se crean usando líneas para formar caras. Una línea es una arista de
un plano y una cara es la superficie que se crea automáticamente cuando 3 o más líneas están
en el mismo plano. Cuando esto sucede, SketchUp asigna un sombreado automáticamente.
Fig. 59 Aristas y caras SketchUp
Fig. 61 Herramientas Rectangle, Arc, Circle y Polygon
Fig. 60 Herramientas Line
y FreeHand
Página 47 de 135
Las caras se dibujan con las herramientas Line o FreeHand cuando la forma de la superficie la
determina el usuario, o con herramientas con formas determinadas: Arc, Rectangle, Circle o
Polygon. Según la herramienta escogida cambia la forma geométrica de la superficie creando
un Arco, rectángulo, circulo o hexágono respectivamente.
Las líneas del modelo pueden comenzar en cualquier posición, pero SketchUp posee un motor
de inferencias que sitúa o infiere puntos a partir de otros muy útil en la creación de modelos.
Fig. 62 Motor de inferencias SketchUp
Para añadir o reducir volumen en las geometrías se utiliza la herramienta Push/Pull que empuja
o tira de una determinada cara para construir un sólido 3D. Para aplicar materiales a las
geometrías, SketchUp ofrece la herramienta Paint con la que se pueden asignar texturas
secuencialmente a cada cara del modelo. Es destacable resaltar que la orientación de las caras
importa a la hora del renderizado de los materiales.
Fig. 65 Uso de la herramienta Push/Pull y Paint
Fig. 64 Herramientas Push/Pull, Follow me
Fig. 63 Herramienta Paint
Página 48 de 135
4 CASOS DE ESTUDIO DESARROLLADOS
Para demostrar que las tecnologías virtuales pueden aplicarse a diversos ámbitos en la
enseñanza y la divulgación científica se han desarrollado los casos de estudio de esta sección.
En el momento actual el profesor requiere nuevas estrategias, percepciones, experiencias y
conocimientos para intentar dar respuesta a los múltiples interrogantes que se le presentan
cada día.
La finalidad es enseñar tanto a docentes como alumnos a través del aprendizaje basado en
juegos y las tecnologías virtuales, una alternativa docente para diversas materias que sirven
como ejemplo, pero que, además muestran múltiples conceptos tecnológicos como son el
reconocimiento de objetos, tracking, modelado 3D, motores de juego…
Esta metodología permite que este último aprendizaje se realice de forma implícita, enseñando
al usuario las tecnologías subyacentes sin percatarse de ello.
El apartado se divide en dos secciones: El primero está destinado a los casos de estudio que
tratan el modelado y la realidad virtual, y el segundo, trata los casos de realidad aumentada.
Ambos apartados contienen una sección de introducción que contiene las directrices para la
configuración de los proyectos en Unity, así como cada caso de estudio la tiene para mostrar su
implementación y los conceptos lúdicos y tecnológicos aplicados.
Caso de
estudio Software
Ámbito de aplicación
Objetivo Tecnología
4.1.1 SketchUp
y Unity Arquitectura, modelado 3D
Introducirse en el modelado 3D e importación de modelos en Unity
VR no inmersiva
4.1.2 Unity Astronomía Conocer los componentes del sistema Solar a través de la AR
VR inmersiva
4.1.3 Unity Tecnología Conocer los principales conceptos de Unity a través de GBL
VR semi-inmersiva
4.2.1 Unity y Vuforia
Astronomía Conocer los componentes del sistema Solar a través de la AR
AR con marcadores multitarget
4.2.2 Unity y Vuforia
Química Conocer los compuestos químicos básicos
AR con marcadores Single
4.2.3 Unity y Vuforia
Ciencias naturales
Conocer la clasificación de los animales según su alimentación
AR con marcadores Multi y Single
4.2.4 Unity y Vuforia
Tecnología Conocer los principales conceptos de Unity y Vuforia a través de GBL
AR con marcadores
4.2.5 Unity Mujeres en la
ciencia y la ingeniería
Divulgación científica para la concienciación de la igualdad de género.
AR reconocimiento facial
Tabla 3 Tabla resumen Casos de estudio
Página 49 de 135
Para cada caso de estudio es necesario crear un proyecto Unity en 3D, y además de configurar
la plataforma destino, es necesario configurar los Player Settings para la implementación final.
Fig. 66 Nuevo proyecto 3D en Unity
Página 50 de 135
4.1 Preparación de un proyecto para la accesibilidad de la VR.
Para los casos de estudio de este subapartado es necesario indicarle a Unity que el proyecto está
destinado a la realidad virtual. Para ello es necesario tener en cuenta:
o Los GameObject predeterminados: La Main Camera y la Directional Light son los
GameObjects predeterminados al crear un proyecto en Unity, y en este caso, son
necesarios en la escena. La Main Camera es la cámara principal de la escena y es la
encargada de mostrar el entorno de juego al usuario, y, la Directional Light ofrece una
iluminación desde la misma dirección a todos los elementos de la escena.
o Es imprescindible habilitar la realidad virtual en Unity. Para ello en el menú Edit > Project
Settings > Player , en el apartado XR Settings
marcamos la opción destinada a este fin: Virtual
Reality Supported. Cuando está habilitado
automáticamente se activa:
- Visualización estereoscópica, con el fin de calcular la profundidad de las cosas. No se
requiere tener dos cámaras, pero para ello es necesario una plataforma destino
adecuada.
Para este fin usaremos el SDK
para las Google Cardboard, el
cual necesita un dispositivo
Android con Android 4.4 KitKat o
superior (API level 19) o superior y
un visor Cardboard [32] o similar.
Es importante destacar que el
editor de Unity siempre ofrece una
previsualización de la escena, pero
disminuye cuantiosamente el
grado de inmersión no usar visores
para lograr la estereoscopía.
- Se aplica a la cámara un input Headtracked (seguimiento de la cabeza) con un
determinado Field of View (Campo de visión). El Transform de la cámara es anulado
con la pose resultante del seguimiento de cabeza, lo que quiere decir que en nuestra
aplicación final podremos observar el entorno alrededor de nuestra posición.
A partir de esta configuración, el proyecto está preparado para crear escenas que admitan la
realidad virtual.
Fig. 67 Game Objects predeterminados VR
Fig. 68 Virtual Reality Supported
Fig. 69 XR Setting : VR Android
Fig. 70 XR Settings: PC, MAC & Linux Standalone
Página 51 de 135
4.1.1 Caso de estudio de modelos 3D en SketchUp e importación a Unity.
INTRODUCCIÓN
La creación de modelos 3D permite representar cualquier idea que el usuario imagine. Aunque
en Unity se pueden crear modelos 3D, es muy frecuente utilizar softwares externos para ello.
En este caso de estudio se detalla la creación de un modelo 3D en el software de modelado
SketchUp. Se muestra una secuencia de la creación del modelo a través de las herramientas
básicas y la adicción de materiales a este. Además, se especifica la debida importación del
archivo de modelo a Unity, incluyendo la configuración de sus materiales de origen. Para realizar
este proceso se tratan los siguientes aspectos:
- Creación de un modelo a través de las herramientas básicas de SketchUp.
- Características de materiales en SketchUp.
- Descarga y posicionamiento de objetos: Warehouse.
- Importación de modelos 3D SketchUp en Unity.
SKETCHUP
El objetivo es crear una construcción para que actúe como GameObject en Unity. A través de
la herramienta Rectangle se crea una cara inicial para actuar como superficie de las paredes y
mediante la herramienta Push/Pull se le ha dado volumen a lo largo del eje y.
Fig. 71 Creación de modelos con SketchUp (1)
Página 52 de 135
Combinando estás herramientas con la herramienta Line, se han ido añadiendo nuevas caras
para formar nuevas superficies a las cuales se le han ido aplicando diferentes extrusiones para
conseguir volúmenes.
El motor de inferencias ofrece gran utilidad a lo largo del modelado, y es destacable para crear
puertas y ventanas. Para “recortar” un sólido, es necesario dibujar la cara deseada sobre la
superficie y utilizar la herramienta Push/Pull teniendo en cuenta que el destino esté inferido
como On Edge.
Fig. 72 Creación de modelos con SketchUp (2)
Es importante atender a las caras de los materiales las cuales deben estar correctamente
orientadas para que no haya problemas ni en la importación ni en el renderizado del modelo.
Fig. 73 Creación de modelos con SketchUp (3): Caras de los materiales
Página 53 de 135
Una vez que todas las caras estén ubicadas correctamente, se pueden aplicar los
materiales al modelo. Esto se llevará a cabo con la herramienta Paint ubicada en
el menú lateral izquierdo. SketchUp pone a disposición del usuario multitud de
ateriales ordenados por categorías. Para aplicar los materiales solo es necesario
elegir un material e ir aplicandolo a cada superficie de forma secuencial.
SketchUp ofrece un componente para importar otros modelos .skt ubicado en el menú lateral
derecho, 3D Warehouse. Al importar un nuevo modelo, es necesario posicionarlo y
redimensionarlo. Este proceso se llevará a cabo con las herramientas Scale y Move ubicadas en
el menú lateral izquierdo.
Fig. 74 SketchUp: Herramienta Scale
Fig. 75 Modelo 3D en SketchUp
Una vez creado el modelo 3D se puede descargar el archivo con formato .skp desde SketchUp
indicando la versión deseada y guardarlo de forma local.
UNITY
Fig. 76 Proceso de importación .skp a Unity
Página 54 de 135
Unity admite la extensión de los archivos procedentes de SketchUp de forma nativa, por lo que
sólo es necesario arrastrar el archivo desde el administrador de descargas hasta la ventana del
proyecto.
Fig. 77 Importación del modelo .skt a Unity sin materiales
En la figura anterior se pueden observar las opciones de
importación del modelo procedente de SketchUp , el cual carece
de los materiales predefinidos. Unity permite extraer materiales
y texturas o dejarlos incrustados en el modelo. Para configurar
esto es necesario ir a la pestaña de materiales y configurar el
parámetro Location. Hay que indicarle a Unity que utilizaremos
los materiales externos ajustando este parámetro a Used External
Materials (Legacy). Esta opción extrae los Materiales y los guarda
de forma externa en una carpeta de Asset en lugar de guardarlos
dentro del modelo.
La importación del modelo realizado se puede observar en la
siguiente Figura. Como se ha podido apreciar, importar modelos 3D desde SketchUp es un
proceso sencillo. Es posible crear cualquier cosa que nos imaginemos en el software de
modelado para que forme parte del entorno virtual. A través de la ventana de importación de
Unity, se pueden configurar sus propiedades para guardar los materiales externamente
utilizados y a partir de esto, posicionar y configurar el modelo como cualquier otro GameObject
de la escena.
Fig. 78 Unity: Configuración materiales de un modelo .skp
Página 56 de 135
4.1.2 Caso de estudio visión estereoscópica: Sistema solar en VR
INTRODUCCIÓN
En este caso de estudio se detallan los pasos necesarios para construir un Sistema Solar en
Realidad Virtual. Nuestro entorno inmersivo en este caso será el espacio y los GameObject que
lo forman, el sol y los planetas. Intentaremos aumentar la inmersión y el realismo de la escena
incluyendo efectos realistas de iluminación y audio, además de renderizarlo en visión
estereoscópica. Los conceptos lúdicos y tecnológicos que trata en el proyecto son:
- Utilizar la realidad virtual para ver un lugar inaccesible: Vista del sistema Solar.
- Conceptos de rotación y traslación: comportamiento de GameObject vía Scripting.
- Creación del entorno inmersivo.
- Creación de GameObject primitivos y posicionamiento.
- Reutilización de Assets (Prefabs)
- Iluminación y audio
UNITY
Tras crear el nuevo proyecto, es fundamental preparar la colección de
Asset que se van a utilizar en la escena. Para ello, se han descargado
diferentes imágenes para emular las texturas de los planetas, el sol y la
luna, y una imagen para crear el fondo espacial.
Para crear el entorno inmersivo utilizaremos un material con un Shader
Skybox. Estos envuelven la escena por completo y muestra cómo se vería
el horizonte. Para ello es necesario crear un material en la ventana de
proyecto Create > Material y definir su Shader. Este último puede
definirse de diversas maneras, pero se sugieren dos: Skybox 6 Sided y Skybox Panoramic.
Ambos envuelven la escena, pero el primero genera un cubo con la imagen en sus 6 caras
correspondientes, y el segundo envuelve la imagen alrededor de una esfera. Queda a elección
del usuario cual escoger, pero es destacable comentar que, según el material elegido, las
esquinas del cubo o la costura de la esfera podrían apreciarse en escena y esto no es deseable.
Fig. 82 Asset importados para el proyecto
Fig. 80 Skybox: Panoramic
Fig. 81 Skybox: 6 Sided
Página 57 de 135
Una vez creado el entorno, hay que crear en el centro de la escena un GameObject Sphere para
simular el Sol. Para asignarle un material a esta esfera, simplemente se arrastra el Asset hasta el
GameObject en la vista de escena o se referencia la imagen deseada en el Albedo del material.
Para conseguir que el Sol emita luz en todas las direcciones, se le agregará un GameObject Point
Light. Este deberá ser hijo del GameObject Sol, para que en todo momento dependan en el uno
del otro y se mantengan juntos.
Ajustaremos la propiedad Color del Point Light para definir el color que tendrá la luz y la
propiedad Range para definir hasta que distancia alcanza dicha luz.
Fig. 85 GameObject Sol: Sphere
Fig. 83 Vista escena Skybox
Fig. 86 Vista de juego: Sol con iluminación
Fig. 84 GameObject Point Light
Página 58 de 135
De la misma forma que se ha creado el Sol, se crean los diferentes planetas del Sistema Solar
posicionandolos por su Transform y aplicandole las diferentes texturas elegidas. Como se puede
observar, en este momento es muy útil la visión sin perspectiva disponible en el Gizmo.
En la captura anterior se puede apreciar la jerarquía de proyecto con todos los planetas.
También se ha creado un Game Object para la Luna, que será hijo de la Tierra, y un GameObject
cilindro para el anillo de Saturno. Una vez creados los GameObject de la escena, se puede definir
como se van a comportar a través de Scripting. Para ello se crea en la ventana de proyecto un
Script C# llamado Rotar.
Fig. 88 Detalles de importación Script
Como se describe en la sección de Unity, la nueva clase creada deriva de la clase Monobehaviour
para que Unity ejecute algunas funciones automáticamente.
Fig. 89 Script Rotar en C#
Fig. 87 Vista de escena Sol y planetas
Página 59 de 135
Se definen dos variables públicas que serán visibles en la interfaz:
- Referente, para indicar alrededor de quien gira el GameObject.
- La velocidad de rotación a través de un número entero.
Si al iniciar el modo de juego el referente no está asignado, se asigna él mismo. En el método
Update se llama al método RotateAround del Transform, al que se le pasan 3 parámetros: la
posición del tranform sobre el que se rota, el eje de rotación, y la velocidad.
Este Script será asignado como componente a todos los GameObject que queremos que se
muevan, es decir, a los planetas. Todos ellos tendrán como referente el GameObject Sol, y será
necesario ajustar la velocidad con la que se mueven cada uno pero, como se puede observar en
la captura superior, hay excepciones:
- La luna tendrá como referente el GameObject Tierra, y por tanto girará alrededor de
ella, no del Sol. Este último movimiento estará implicito gracias al parentesco con el
Game Object Tierra.
- La Tierra tendrá dos componentes Script Rotar: uno dedicado al movimiento de
translación y otro dedicado al de rotación, es decir, uno de ellos hará que el Game
Object Tierra se mueva alrededor del referente Sol, y otro hará que la Tierra gire sobre
si referenciandose a ella misma.
Fig. 91 Vista de escena : Sistema Solar VR
Fig. 90 Detalle de los componentes Script en el GO Tierra
Página 60 de 135
Una vez creados los objetos virtuales que necesitamos para la
escena y de haber definido como se comportan, podemos
crear un Prefab para poder reutilizar este sistema solar. Esto
se hará arrastrando el GameObject Sol y todos sus hijos desde
la ventana de Jerarquía hasta la ventana de Proyecto.
Este paso es importante ya que, en el caso de estudio del
Sistema Solar en Realidad aumentada, se supondrá que esto
se ha llevado a cabo. Para aumentar la inmersión en la escena
incorporaremos efectos de audio. Para ello se ha obtenido un
Asset de tipo audio en formato mp3 de un ruido ambiente
simulando el espacio y se ha importado al proyecto. Para
aplicar el audio a la escena, es necesario añadir a la Main
Camera un componente Audio Source (El componente Audio
Listener lo tiene por defecto). En este es necesario referenciar
el archivo de audio en la propiedad Audio Clip como se muestra
en la siguiente figura:
Fig. 94 Main Camera: Audio Listener/Source
Para conseguir dibujar las órbitas de los planetas alrededor del Sol, añadiremos a cada planeta
un componente Trail Renderer. Este componente se usa para crear rutas que siguen el camino
del movimiento de un GameObject. La propiedad Time deberá ser ajustada en cada componente
Trail Renderer según el tiempo que cada planeta tarda en dar la vuelta al Sol, cualidad que indica
la velocidad del Script Rotar de cada planeta.
A partir de esto, ya tenemos creado nuestro sistema solar en realidad virtual a partir de
GameObjects primitivos, con texturas personalizadas y un comportamiento de rotación
definido. Además, nuestro entorno queda delimitado por un Material Skybox, tiene efectos
auditivos y una iluminación realista definida por un único punto de luz, el Sol.
Fig. 93 Componente Trail Renderer
Fig. 92 Previsualización Prefab: Sistema Solar
Página 61 de 135
Fig. 95 Vista de juego Unity: Sistema Solar VR
Para poder visualizarlo en realidad virtual, es decir, aplicar una visión estereoscópica, es
necesario construir nuestra aplicación en Android en el menú Build Setting, como se indica en
el apartado 4.2. En la siguiente captura se puede apreciar ya la aplicación finalizada y lista para
introducir el smartphone en el visor.
Fig. 96 Vista estereoscópica en Android: Sistema Solar VR
Página 62 de 135
4.1.3 Caso de estudio destinado a la física: Laberinto en Unity
INTRODUCCIÓN
En este caso de estudio se detallan los pasos necesarios para construir un Laberinto en Realidad
Virtual. Este tipo de actividades se suelen utilizar bastante ya que contienen muchos conceptos
básicos de la creación de entornos, y ofrecen una forma divertida de comprenderlos. Es el típico
caso de estudio ideal para gamificar, ya que contiene los elementos de juego más característicos,
como vidas y recompensas, y se puede dividir en varias sesiones. Los conceptos lúdicos y
tecnológicos que trata en el proyecto son:
- Creación de entornos y jugadores.
- Creación de elementos con GameObject primitivos en Unity.
- Importación de Prefabs y Asset Store.
- Animaciones de personajes.
- Interacción del jugador con elementos del entorno: Colliders y Triggers.
- Comportamiento de los GameObject vía Scripting.
- Realización de interfaces de usuario
UNITY
Para comenzar la actividad es necesario construir la estructura del laberinto. Esta acción se lleva
a cabo mediante GameObjects primitivos, en concreto, un plano que actúa como suelo y
diversos GameObjects cubo para las paredes, cuyo Transform ha sido alterado para conseguir
su correcta distribución.
Como las paredes tienen un componente Box Collider por defecto, se ha utilizado la acción de
ajuste Vertex snapping [33] para ajustar los vértices entre paredes y a la superficie, evitando así
problemas posteriores en el renderizado.
1 Ejemplo pared Laberinto
Página 63 de 135
Como se muestra en el ANEXO I, se aplican materiales y texturas a los GameObjects creados
para definir su apariencia. Cada GameObject tiene asignado un material en el cual se puede
definir su color, brillo, luminiscencia… y otras características a través de las texturas como
rugosidad o fricción. Para hacer esto posible, se han descargado imágenes de la web que emulan
paredes de ladrillo y suelo de azulejos, y han sido asignadas como referencia al Albedo de los
GameObject que componen la escena.
2 Estructura Laberinto con paredes y materiales
Cuando la estructura está creada, se procede a crear al jugador que corresponde con otro
GameObject primitivo, pero esta vez en forma de esfera. Para controlar su comportamiento, se
le añade un nuevo componente Script que será modificado para de momento definir su
movimiento en la escena.
3 Inspector: Player
Esto se consigue añadiendo un componente Rigidbody al que se le aplican fuerzas vía Scripting
determinadas por los inputs del jugador. Los inputs son elementos de entrada a través de los
Fig. 97 Scripting: Player Controller
Página 64 de 135
cuales interactúa el usuario, como pueden ser el teclado o el mouse, y quedan definidos en el
menú Project Settings. En este caso el input utilizado será el teclado.
Fig. 98 Project Settings: inputs
Hasta el momento, los GameObjects utilizados han sido modelos primitivos básicos de Unity,
pero se puede utilizar el Asset Store para descargar todo tipo de Asset ya predefinidos y más
complejos.
Se ha procedido a realizar una búsqueda para obtener Assets de monstruos que interactúen con
el jugador. Estos actuaran como enemigos, uno de los elementos básicos de los juegos. El Asset
seleccionado para este fin se muestra en la siguiente figura.
4 Asset Store: Free Monster
Para que el jugador pueda detectar cualquier elemento, es necesario que estos tengan un
componente Collider adjunto. En este caso, el Asset descargado no lo tenía, por lo que es
necesario editar su Prefab en el modo correspondiente y añadir dicho componente.
Página 65 de 135
Fig. 99 Adicción de Collider a monster
Los GameObjects básicos con los que interaccionará el jugador serán los Enemigos, las
recompensas y la Salida. Se crean dos GameObjects vacíos (menú: GameObject > Create Empty)
ya que se añade un número considerable de monedas y enemigos los cuales serán los
GameObject padre de cada grupo.
Fig. 100 GameObject Enemigos
Fig. 101 GameObjects recompensas
Página 66 de 135
Fig. 102 GameObject Salida
Para realizar las interacciones los GameObjects básicos quedan configurados como se muestra
en la siguiente tabla:
Nombre Laberinto Recompensas Salida Enemigo Player
Tag Untagged Recompensa Finish Enemy Player Collider Box Capsule Box Box Sphere Is Trigger No Si Si Si No Rigidbody No No No No Si Is kinematic No
Tabla 4 Relación Colliders GameObjects Laberinto
Se añade una etiqueta (Tag) a cada GameObjects según al grupo que pertenezca y se destaca
que todos poseen un componente Collider para interactuar entre ellos. Los GameObject básicos
con los que interactúa el jugador tienen activa la propiedad Is Trigger y no se comportan como
un cuerpo físico, es decir, se puede pasar a través de ellos. Cuando eso sucede, se llama a la
función OnTriggerEnter() que se configura más adelante en el jugador.
Las monedas son pequeños cilindros estrechos al que
se le ha agregado un material emulando oro y se ha
ajustado la propiedad Metallic para darle apariencia
metálica.
Las monedas no tienen un componente Rigidbody por
lo que no le afecta la gravedad. Están colocadas a una
pequeña distancia sobre el suelo y contienen un Script
Rotar, que hacen que giren sobre su propio Transform
en el aire. Se establece una variable pública visible en
el Inspector para determinar la velocidad de giro.
Fig. 103 Script rotar para monedas
Página 67 de 135
Fig. 105 Inspector: monedas
Además de controlar el comportamiento de los GameObjects vía Scripting, también se pueden
utilizar otro tipo de controladores como los de Animación.
El conjunto de Assets del enemigo descargado contiene diferentes clips de animación los cuales
contienen información acerca cómo ciertos objetos deberían cambiar su posición, rotación, u
otras propiedades en el tiempo. [34] Estos clips luego son organizados a un sistema con una
estructura similar a la del diagrama de flujo llamado Animator Controller
Animator Controller funciona como un “State Machine” que mantiene un seguimiento de qué
clip debería actualmente estar reproduciéndose, y cuando las animaciones deberían cambiar o
mezclarse juntas.[34] Este será un componente del enemigo utilizado.
Fig. 106 Controlador de animaciones enemigo.
Fig. 104 Inspector: salida laberinto
Página 68 de 135
La máquina de estados creada hace que el enemigo este moviéndose hacia los lados en la
escena continuamente, y para hacer que el enemigo “muera” cuando es atravesado por el
Player, se crea un nuevo script adjunto al enemigo para que active la transición a dicho estado
haciendo uso de su componente Animator Controller.
En el script del jugador se configuran las interacciones con los GameObjects básicos . Esto se
hace detectando eventos de Trigger cuando el Player entra en la zona donde está ubicado un
GameObject con la propiedad Is Trigger activa.
Según la etiqueta del Collider detectado se realizarán las siguientes funciones:
- Si el player colisiona con una GameObject etiquetado como recompensa, el
GameObject moneda desaparece y se aumenta el contador de estas. Además se
muestra en pantalla el valor actual de monedas.
- Si el player colisiona con un GameObject etiquedado como Enemy, se decrementa el
contador de vidas. Cuando el contador llegue a cero, se devuelve el GameObject a su
posición inicial, y se resetean los contadores de vidas y monedas. Además se muestra
en pantalla el valor actual de vidas.
- Si el player colisiona con un GameObject etiquetado como Finish, aparece el
recuento de monedas y el tiempo transcurrido en una interfaz de usuario.
Fig. 108 Inspector: Enemigo
Fig. 107 Script para Animator
Página 69 de 135
Fig. 109 Script Player Controller
Para introducir otros elementos de juego como el recuento de monedas, vidas y tiempo se
utilizan elementos UI. Como se indica en el ANEXO I, todos los elementos UI deben ser hijos de
un GameObject Canvas y tienen un componente Rect Transform en vez de un Transform para
posicionarlos.
Fig. 110 Vidas y monedas Laberinto
Página 70 de 135
Como se puede observar en la Fig. 109, vía Scripting se realiza el recuento de vidas y monedas,
y para poder mostrarlas durante el juego, se emplean GameObject Text en la interfaz de usuario,
mostradas en el margen inferior izquierdo en la Fig. 110.
Fig. 111 Canvas Laberinto
A esta interfaz se le asigna una imagen de fondo que estará desactivada por defecto (y por
ende, sus hijos) y aparecerá al final del juego. Esta contiene dos GameObjects Text que deben
indicar el recuento de monedas y tiempo empleado para llegar hasta la salida.
Los GameObject Text deben referenciarse con el valor de los contadores del script para poder
ser modificados y ser mostrados en la interfaz durante el juego.
Fig. 112 Script Player Controller (1)
Página 71 de 135
Para poder relizar dicha referencia, es necesario definir las variables públicas en el script del
jugador, asignarle el valor de los respectivos contadores y referenciar en el inspector los
GameObject de la escena con estas variables.
Fig. 113 Referencias elementos UI scripting
Siguiendo todos los pasos anteriores, se ha creado un laberinto, con un jugador que reacciona a
eventos de colisiones y trigger ante recompensas, enemigos y la salida del juego previamente
configuradas, haciendo un recuento de estos elementos vía scripting y mostrando su valor en la
interfaz de usuario.
Para la visualización del juego, la ubicación de la cámara determina su grado de inmersión:
o Si la cámara está posicionada en un punto fijo donde se observa todo el entorno de
juego, nos encontramos ante una visualización no inmersiva. En este tipo de VR, no hay
sensación alguna de inmersión aunque se pueda interactuar con los elementos de juego.
o Por el contrario, si la cámara se hace hija del jugador de la escena, nos encontraremos
ante una visualización semi-inmersiva. En este tipo, la situación de presencia aumenta
en cierta medida ya que el punto de visualización del entorno corresponde con los
movimientos de entrada que proporciona el usuario.
Fig. 114 Laberinto: Modo de juego no inmersivo
Página 72 de 135
Fig. 115 Laberinto: Modo de juego semi inmersivo
Fig. 116 Laberinto: Interfaz final
Página 73 de 135
4.2 Preparación de un proyecto para la accesibilidad de la AR
Para los casos de estudio de este subapartado es necesario indicarle a Unity que el proyecto está
destinado a la realidad aumentada. Para ello es necesario tener en cuenta:
o Es imprescindible habilitar la realidad aumentada en Unity a través de Vuforia. Para ello
en el menú Edit > Project Settings > Player , en el apartado XR Settings marcamos la
opción destinada a este fin: Vuforia Augmented Reality.
Cuando se activa, se descargan los Asset predeterminados para la utilización de Vuforia
en Unity, los cuales son visibles en la carpeta de proyecto. Además, se incorpora un
nuevo menú destinado a los GameObjects propios de la realidad aumentada con
Vuforia, GameObject > Vuforia Engine.
o Los GameObject predeterminados: La Main Camera y la Directional Light son los
GameObjects predeterminados al crear un proyecto en Unity, pero en este caso, no son
necesarios. La iluminación la aporta el mundo real, pero se necesita una cámara apta
para la realidad aumentada.
Unity pone a través del SDK de
Vuforia, un GameObject para este fin,
la AR Camera, de la que todos los GO
de la escena deben ser hijos. Para
comenzar un proyecto en AR, es
necesario borrar los GameObjects
predeterminados y añadir una AR Camera, donde se realizará la configuración de
Vuforia.
o Es necesario introducir la licencia de desarrollador en la configuración de Vuforia.
Podemos acceder a ella a través de la ARCamera.
Fig. 119 Inspector: AR Camera
Fig. 117 XR Settings: Realidad Aumentada
Fig. 118 GameObjects predeterminados AR
Página 74 de 135
Fig. 120 Configuración de Vuforia.
o Hay que descargar la base de datos de targets
que vayamos a utilizar en el proyecto desde la
página web de Vuforia. Podemos acceder a ellas
a través del botón Add Database de la
configuración, y es posible, añadir tantas como
queramos. Hay que tener en cuenta, que cada
vez que se descarga una base de datos de targets
se están descargando archivos en el proyecto, y
no es conveniente tener grandes cantidades de
estos, por tanto, hay que descargar solo las BBDD necesarias.
Fig. 122 Configuración Vuforia: múltiples BBDD
Estos pasos son imprescindibles a la hora de configurar un proyecto para AR, pero en la
configuración de Vuforia, hay otras propiedades importantes que iremos modificando en los
casos de estudio como Max Simultaneous Tracker Image, que delimita el número de targets
que puede detectar a la vez la AR Camera, o Enable video background, que activa o desactiva el
fondo del vídeo captado por la cámara dejando solo visibles los objetos virtuales.
Todos los marcadores utilizados en el proyecto están disponibles en el ANEXO III: Marcadores
AR utilizados en los casos de estudio.
Fig. 121 Descargar BBDD Vuforia
Página 75 de 135
4.2.1 Caso de estudio marcador multi: proceso de aumento Sistema solar en AR
INTRODUCCIÓN
En este caso de estudio se detallan los pasos necesarios para realizar el proceso de aumento del
Prefab del Sistema Solar creado en el apartado 4.1.2. Esta información es contenido digital y se
necesita un referente cuando la cámara capta la escena. Para ello se necesita un marcador.
Como se ha mencionado en la sección de Tecnologías utilizadas, existen marcadores comerciales
listos para utilizar, y en este caso de estudio se usará mergeCube.
En el proyecto es la demostración más simple que podría hacerse: Coger un marcador comercial
y añadirle un conjunto de GameObjects ya configurados cuando este aparezca en la escena. El
sistema Solar podría crearse de nuevo, pero para ampliar conceptos importantes de Unity, será
modificado parcialmente con el fin de tratar el sistema Prefab y los sistemas de partículas. Por
tanto, en este caso de estudio, los puntos principales a aplicar son:
• Creación de una base de datos con un marcador comercial en Vuforia.
• Descarga y configuración de la base de datos en Unity.
• Emplazamiento del contenido virtual en el marcador.
• Modificación de Prefabs.
• Sistemas de partículas en Unity.
• Configuración del comportamiento del marcador vía Scripting.
VUFORIA
El primer paso es añadir una base de datos en Vuforia que contenga el marcador que reconocerá
la cámara de escena. Este proceso se detalla de forma minuciosa en la sección 3.2. y en las
siguientes Figuras se puede observar el resultado de su desarrollo.
Fig. 123 Base de datos planetarioAR
La base de datos queda preparada para su
descarga tras añadir el marcador y añadir las
imágenes a cada cara del Cube. Es importante
insistir en poner atención a las dimensiones
del Target y la posición y rotación de las caras
para realizar un correcto proceso de
aumento.
Fig. 124 Detalle MultiTarget: mergeCube
Página 76 de 135
UNITY
Tras crear un nuevo proyecto, es necesario realizar la configuración inicial como se indica en el
apartado anterior. Como la base de datos tratada sólo tiene un marcador Cube, al realizar la
descarga, Unity lo importa directamente a la escena como un GO MultiTarget. Cada cara del
cubo se crea como hijo de este, con su nombre y la posición del lado correspondiente.
Fig. 126 Archivos importados desde Vuforia
Si no se crea de forma predeterminada, es posible crearlo en el menú GO Vuforia Engine >
Multitarget. Cada marcador posee dos componentes predeterminados:
• Multi Target Behaviour, donde se indica la
base de datos a la que pertenece el target, y
el nombre del target. En este caso,
planetarioAR y mergeCube respectivamente.
• El Script Default Trackable Event Handler,
para configurar el comportamiento del
marcador.
Para importar el Prefab Sol, sólo es necesario arrastrar el archivo correspondiente a la ventana
de proyecto actual, ya sea desde el directorio de Windows o desde la ventana de proyecto del
Sistema Solar VR. Una vez importado, se coloca en la escena como hijo del MultiTarget,
ajustando su escala al marcador mediante su componente Transform.
Fig. 128 Adicción de contenido digital al Multitarget
Como se puede observar, un Prefab se diferencia claramente de un GameObject ya que se
representa con un cubo azul en la ventana de Jerarquía y un signo para entrar al modo Prefab.
Fig. 125 Estructura jerárquica mergeCube Unity
Fig. 127 Detalles Inspector MultiTarget
Página 77 de 135
Con el fin de simular el polvo Solar se añade un sistema de partículas al Sol, pero para poder
modificarlo es necesario entrar en este modo y crear un GameObject Particle System.
Fig. 129 Modo Prefab: Configuración inicial del Sistema de partículas
Las Particles son pequeñas, imágenes simples o meshes que son mostrados en gran número
gracias a un sistema de partículas.[35]
Los sistemas son los encargados de emitir las partículas en una determina región de un espacio
cuya forma está definida por su Shape. Estas partículas se emiten en una dirección dentro de un
rango y tienen un tiempo de vida determinado. Estos sistemas tienen una gran cantidad de
propiedades y módulos, pero en este caso de estudio se utilizan principalmente Emission, Shape
y Renderer que son los activos por defecto.
- En el módulo Emission ajustamos el parámetro Rate over Timer para controlar el
número de partículas que creamos.
- El módulo Shape estará determinado por una esfera cuyo origen está ubicado en el Sol
- El módulo Renderer se queda el material que Unity ofrece por defecto para una
partícula (Default-Particle).
Fig. 130 Módulos Emission, Shape y Renderer
Otras configuraciones del sistema de partículas se configuran en las propiedades generales:
- El sistema tendrá una duración de 5 segundos y se activa la opción Looping para que se
vuelva a ejecutar cuando acaba el ciclo.
- Se activa la propiedad Prewarm para que no se inicien en un punto, sino que aparezcan
ya distribuidas, emulando el polvo solar que sale del sol.
- Los parámetros Start life time y Start speed son utilizados para controlar el tiempo de
vida de las partículas en segundos y la velocidad inicial.
- El tamaño de la partícula Start Size quedará determinado por un valor aleatorio entre
0.001 y 1 y su Start Color quedará determinado por un Gradiente para que las partículas
sean de diferentes tamaños y colores.
Página 78 de 135
Una vez ajustadas todas las propiedades deseadas podemos salir del modo Prefab, y el sistema
solar con el efecto de partículas queda como en la siguiente captura.
Fig. 131 Modo Prefab: Configuración final del Sistema de partículas
El último paso es definir el comportamiento del target vía Scripting con el componente indicado:
El script Default Trackable Event Handler.
Al comienzo de la clase se define una variable pública GameObject Sol visible en el Inspector,
que es utilizado para llamar al método SetActive() del GameObject referenciado. Esta está
determinada por una variable booleana, True o false, y determina si el GO es visible en la escena
o está desactivado.
Fig. 132 Scripting/Inspector: Variable pública Sol
Si el Target detectado por el algoritmo de Vuforia tiene el nombre mergeCube, se activará la
referencia de la variable Sol poniendo la variable del método SetActive() a true. Por el contrario,
cuando el Target deje de ser visible por la cámara de escena, se desactivará el contenido digital
poniendo la variable del método a false.
Fig. 133 Scripting/Inspector: Variable pública Sol
Página 79 de 135
Una vez guardados los cambios y referenciada la variable Sol como el GO Prefab Sol en el
Inspector, la aplicación final ya está creada y configurada: Un Sistema Solar en realidad
aumentada a través de marcadores con Unity y Vuforia.
Fig. 134 Sistema Solar AR Windows: No Enable video background
Fig. 135 Sistema Solar AR Android: Enable video background
Página 80 de 135
4.2.2 Caso de estudio marcadores single y GUI: Química en AR
INTRODUCCIÓN
En este caso de estudio se propone una actividad para conocer los compuestos químicos básicos
y su formulación sistemática, aplicando el aprendizaje basado en juegos. Como elementos de
estos se utilizan un formato de desarrollo en forma de puzle, un contador de tiempo y un
ranking.
La propuesta consiste en una actividad grupal y colaborativa, en la que los diferentes integrantes
deben de formar las fórmulas de los compuestos químicos básicos, que se corresponden con los
marcadores destinados a la Realidad aumentada.
Fig. 136 Conjunto de piezas para formar los marcadores
Los destinatarios de la actividad no dispondrán de las fórmulas establecidas en los targets si no
de los elementos químicos de los que se componen (Fig. 136) . Cuando encuentren la fórmula
pedida por la interfaz y Vuforia reconozca el marcador, colocará el contenido digital creado y
mostrará al usuario el siguiente compuesto a adivinar. Los participantes deben formar cada uno
de los targets que va mostrando la interfaz en el menor tiempo posible para situarse así en lo
alto del ranking.
Los conceptos lúdicos y tecnológicos que trata en el proyecto son:
• Compuestos químicos básicos y sus moléculas.
• Tipos de formulación para los compuestos químicos.
• Creación de bases de datos de marcadores en Vuforia.
• Emplazamiento de contenido virtual en los targets.
• Creación de elementos UI y contadores.
• Configuración del comportamiento de los Targets vía Scripting.
VUFORIA
Hay que añadir 6 single target a la base de datos de Vuforia en el portal de desarrolladores. Cada
uno de ellos se corresponden con las fórmulas de los compuestos químicos más comunes. Es
necesario tener en cuenta el tamaño de los marcadores, ya que hay elementos compartidos
entre las fórmulas y hay que tener en cuenta la relación de aspecto del marcador para
reutilizarlo.
Página 81 de 135
Fig. 137 Base de datos formulas_quimicas
Una vez realizado el paso anterior, podemos descargar la base de datos con los marcadores para
utilizarlos en Unity.
UNITY
El proyecto de Unity debe configurarse como se indica en el punto tal para que Vuforia Engine
esté disponible, y se puedan utilizar los GameObject de Vuforia.
En primer lugar, es necesario borrar la cámara por defecto de Unity y añadir al proyecto una
cámara adecuada para la realidad aumentada. Para ello se utiliza la AR camera de los GO de
Vuforia. En este momento, es necesario introducir la licencia en la configuración de Vuforia
Se añade un GO Image de Vuforia para cada target y configuramos la base de datos y el nombre
cada uno de ellos:
Fig. 138 Single Targets : formulas químicas
Se añade como contenido digital un plano y las moléculas que componen cada compuesto a
través de GameObjects primitivos para cada Target. Cada plano tiene un GameObject Text para
digitalizar el nombre del compuesto en forma común y en forma sistemática.
Página 82 de 135
Fig. 139 single Targets : Planos digitales
Fig. 140 Contenido digital: moléculas químicas
Una vez configurados los targets y añadido el contenido digital, se crea la interfaz de usuario.
Como se ha comentado, los elementos UI estarán dentro del GameObject Canvas. Estos
elementos constan de tres paneles, dos botones y elementos UI de texto.
El panel principal (PanelFondo GO) es el que se muestra al entrar en modo juego y contiene un
GO Text para el título y un botón para comenzar. A través de la propiedad Source image se le ha
añadido una imagen para el fondo, la cual debe estar configurada con Texture Type 2DSprite,
indicada para las IU. Como se puede apreciar en la siguiente Figura, en este caso se ha utilizado
una imagen con formato png que permite entre ver en el inicio el entorno del usuario.
Fig. 141 Interfaz principal Química en Realidad Aumentada
Página 83 de 135
En la Jerarquía hay dos paneles desactivados por defecto dedicados al tiempo y el compuesto a
reconocer. El botón Start del panel principal está destinado a comenzar la actividad activando
estos paneles y desactivando el panel principal.
Las funciones de los botones se establecen en la función On Click () de cada uno de ellos. Para
esto se referencian los tres paneles para activarlos o desactivarlos según estemos en la ventana
principal o en la de reconocimiento, lo mismo que se hace con los botones. Esto se realiza
llamando al método SetActive del GameObject referenciado.
Fig. 143 OnClick() Button Start
El botón salir del panel reinicia el contador de tiempo llamando al método reset de la clase
temporizador.
Este contador se realiza con una variable float que cuenta el tiempo que transcurre en cada
frame (Update()). Para mostrarla al usuario es necesario tener una pública que debe
referenciarse en el Inspector, con el GameObject Text hijo del panel tiempo.
Para usar los elementos UI en scripting es necesario usar UnityEngine.UI. El contador es
numérico y necesita asignarse a una variable de texto del Cavas, por tanto, es necesario
convertirla a string antes de asignarla.
Fig. 144 Script temporizador
Fig. 142 OnClick() Button Exit
Página 84 de 135
Para controlar el texto del panel del compuesto químico se utiliza el script por defecto que
ofrecen los marcadores. En este se configura la actividad: El texto de inicio determina el primer
target a detectar, y cuando este sea reconocido por la cámara AR, se establece el texto del
siguiente compuesto que el usuario debe de formar con las piezas.
Fig. 145 Interfaz de reconocimiento de Targets Química
A través de dos variables públicas se referencia el contenido digital, es decir, el plano con una
imagen y su nombre formulado, y el texto del compuesto en la interfaz.
Fig. 146 Química AR: variables públicas
Cuando Vuforia detecta un target (Fig. 147) se le impone una condición: que el nombre del
target detectado sea el del nombre del marcador requerido y el texto del compuesto sea el
definido en el componente de texto de la interfaz. Cuando esto sucede, se llama al método
SetActive() del GO plano para hacerlo visible tanto él como a sus hijos encima del marcador,
mezclando así información digital con información real. Además, se establece el siguiente
compuesto a detectar en el panel de la interfaz.
Aunque solo hay una variable plano, cada target tiene el componente script, y por tanto en cada
uno de ellos debe referenciarse como variable pública el plano del compuesto deseado.
Cuando el target deja de ser detectado (Fig. 148), con las mismas condiciones se desactivan
dichos planos, poniendo la variable del método SetActive() a false, pero el texto de la interfaz se
deja activo en la escena junto con el tiempo.
Página 85 de 135
Fig. 147 Método OnTrackingFound()
Fig. 148 Método TrackingLost() formulas
Cuando se detectan todos los compuestos propuestos , se recoge en un fichero las marcas de
tiempo de los equipos y se establece el ranking.
Página 87 de 135
4.2.3 Caso de estudio marcadores single y multi: Ciencias naturales primaria
INTRODUCCIÓN
Este caso de estudio es un claro ejemplo de la implementación de las TIC en la docencia para
alejar los métodos convencionales e introducir un nuevo atractivo en el aprendizaje. El fin es
aprender los mismos conceptos, pero a través de la Realidad Aumentada para llamar la atención
de los niños y niñas, intentando así que realicen un aprendizaje en primera persona haciéndoles
que interactúen tanto con los datos digitales como con los físicos.
Está dedicado a las ciencias naturales y se centra en la clasificación de los animales según su
alimentación. El ejemplo teórico seleccionado se muestra en la siguiente figura el cual pertenece
a una actividad de un libro de ciencias naturales de segundo de primaria.
Fig. 150 Ejemplo ejercicio teórico libro de 2º de primaria
El presente caso de estudio puede ser utilizado de diversas formas: puede orientarse para la
educación primaria haciendo una exhibición de la actividad virtualizada o incrementar su
complejidad para niveles de Secundaria realizando su estructura completamente.
Los conceptos lúdicos y tecnológicos que trata en el proyecto son:
• Integración de las TIC en la enseñanza convencional.
• Clasificación de los animales según su alimentación.
• Creación de bases de datos y marcadores con Vuforia para realidad aumentada.
• Adicción de contenido digital 2D y 3D a los marcadores.
• Comportamiento de la actividad vía Scripting.
VUFORIA
Se crea una base de datos con 3 single Targets en el portal de desarrolladores para cada
clasificador y se descarga en Unity. Además de esta nueva base de datos, también se utiliza la
del marcador comercial mergeCube.
Página 88 de 135
5 Base de datos: Animales
UNITY
Para comenzar a implementar el proyecto, se añadirán a la escena tanto los GameObjects single
target como el MultiTarget como se muestra en la siguiente figura:
Fig. 151 Distribución de marcadores en la escena
En casos de estudio anteriores, la configuración de los marcadores se realizaba de una forma
automática ya que sólo existían marcadores provenientes de una sola base de datos, pero en
este caso es necesario tener presente dicha configuración para realizar una correcta referencia
vía script de los marcadores.
Fig. 152 Diferentes bases de datos empleadas
Página 89 de 135
Una vez configuradas las bases de datos, se puede añadir contenido digital a la escena:
La primera interacción se realiza a través del MultiTarget donde cada cara del cubo corresponde
a un plano con una imagen de un animal. Para realizar un aumento de información
tridimensional, se han descargado Asset prefabricados de la tienda de Unity con Prefabs de los
animales, los cuales se posicionan de acuerdo a las imágenes sobre las caras del MultiTarget.
Estos modelos 3D estarán desactivados en la escena por defecto.
Fig. 153 Contenido digital 2D en el MultiTarget
Fig. 154 Contenido digital 3D en el MultiTarget
Fig. 155 Comparación del contenido digital MultiTarget
Página 90 de 135
Las siguientes interacciones se configuran vía script de acuerdo con la interacción del usuario
con la aplicación. Para ello se usa el Script que Vuforia ofrece por defecto donde se definen las
variables públicas para referenciar los modelos 3D de los animales y hacer que estos aparezcan
alrededor del MultiTarget acorde al marcador clasificador utilizado.
Esta activación se hace mediante el método SetActive del GameObject. Cuando los marcadores
sean reconocidos por el SDK de Vuforia (OnTrackingFound()) la variable del método mencionado
se pondrá a true para activar los GameObjects que pertenezcan a ese clasificador. De forma
opuesta, cuando deje de ser reconocido (OnTrackingLost()), la variable será false, y estos estarán
inactivos de nuevo.
Al igual que ocurre con las bases de datos, es necesario referenciar todos los modelos 3D de los
Assets en cada marcador ya que todos ellos tienen el script de configuración.
Fig. 157 Variables públicas visibles en el Inspector
Fig. 156 Método OnTrackingFound ()
Página 91 de 135
Por último, es necesario indicar en la configuración de Vuforia que como máximo el tracker
reconocerá en la escena dos targets de forma simultánea, y para ello es necesario indicarlo en
el parámetro Max Simultaneous Tracked de dicha configuración.
Fig. 158 Marcadores simultaneos en la escena
En las siguientes figuras se puede apreciar el funcionamiento de la actividad: Los alumnos deben
de interactuar y descubrir todos los animales del MultiTarget para luego comprobar cuales son
carnívoros herbívoros u omnívoros a través de los marcadores creados para este fin.
Fig. 159 Planos en las caras del MultiTarget
Fig. 160 Renderización de contenido 3D en el MultiTarget según marcadores Single
Página 92 de 135
4.2.4 Caso de estudio: Tracking a través de un laberinto AR
En este caso de estudio se detallan los pasos necesarios para realizar el proceso de aumento del
Prefab del Laberinto creado en el apartado 4.1.3. Esta información es contenido digital y se
necesita un referente cuando la cámara capta la escena. Utilizaremos el mismo marcador
MultiTarget que en casos anteriores, mergeCube.
Este caso de estudio puede formar parte de la gamificación del Laberinto, convirtiendo la parte
de Realidad Aumentada en una sesión formativa.
Además de todos los conceptos lúdicos y tecnológicos aplicados en el caso 4.1.3, se añaden los
siguiente:
• Funcionamiento de marcadores con Vuforia y Unity.
• Posicionamiento de contenido digital en AR.
• Materiales transparentes en Unity.
• Comprensión del concepto de Tracking.
VUFORIA
La base de datos de mergeCube ya ha sido creada en casos de estudios anteriores. El único paso
que realizar en Vuforia en este caso de estudio, es descargarla en Unity.
UNITY
Para poder reutilizar el Laberinto del caso de estudio 4.1.3, es necesario convertirlo previamente
en un Prefab, para que conserve su configuración y la de todos los elementos de juego.
Fig. 161 Jerarquía del Prefab del Laberinto con elementos para interactuar
Las únicas distinciones entre el laberinto de la sección anterior son:
• Se añade un material transparente que emula un cristal superior para que el jugador no
se salga de la estructura.
Página 93 de 135
Fig. 162 Detalle cristal transparente Laberinto
El valor alfa del color Albedo controla el nivel de transparencia del material. Esto sólo tiene un
efecto si el modo de renderizado para el material se establece en modo transparente, y no
Opaque. Es importante elegir el modo de transparencia correcto, ya que determina si seguirá
viendo o no reflexiones y reflejos. [36]
El Laberinto se coloca en la escena ubicado en una cara del marcador. En este caso, el jugador
no se controla vía Scripting, ya que su movimiento queda determinado por el tracking del
marcador.
Fig. 163 Laberinto en MultiTarget
Página 94 de 135
En las siguientes figuras se puede apreciar el resultado final: Se ha construido un laberinto apto
para la Realidad aumentada, que puede moverse y cuyo movimiento del jugador es
determinado por la orientación y posición del target.
Nos alejamos así de inputs físicos que podría limitarnos, y poder probar así la experiencia
simplemente con un visor y el target físico.
Fig. 164 Renderizado final laberinto AR: Vuforia Disable background
Fig. 165 Laberinto en Realidad aumentada
Página 95 de 135
4.2.5 Pasa palabra mujeres científicas
Las mujeres han contribuido notablemente a la ciencia y a la tecnología desde sus inicios, y para
contribuir a la difusión y divulgación de esta ardua tarea, se ha creado este caso de estudio con
el fin de poner de manifiesto esta gran contribución del género femenino y promocionar el
concepto de igualdad en un ámbito estudiantil.
Coincidiendo con la adopción de los Objetivos de Desarrollo Sostenible (ODS), la Asamblea
General de las Naciones Unidas declaraba el 11 de febrero como el Día Internacional de la Mujer
y la Niña en la Ciencia, una forma de visibilizar el vínculo entre dos cuestiones claves y
transversales en la nueva agenda global. Por un lado, la consecución de la igualdad de género
en todos los ámbitos, plasmado en el ODS 5, y, por otro la ciencia, la tecnología y la innovación
como uno de los motores de desarrollo sostenible. Se reconocía así que la exclusión o la falta de
participación en condiciones de igualdad de las mujeres en las comunidades científica y
tecnológica (ya sea como creadoras, tomadoras de decisiones o usuarias) suponen un lastre
importante para conseguir gran parte de los objetivos y metas de la agenda 2030. [37]
Ocasionalmente, las instituciones suelen realizar jornadas para la sensibilización de esta causa y
hay multitud de actividades, revistas, talleres… que los divulgadores utilizan para mostrarle a los
más jóvenes posibles referentes que no hubieran conocido de otra forma.
Este caso de estudio está basado en dos recursos educativos sobre este ámbito ya propuestos,
que se han unificado en una misma plataforma y han sido modificadas por medio de las TIC para
aplicar el aprendizaje basado en juegos:
• El primer recurso es un cómic creado por la ilustradora Raquel García Ulldemolins con la
colaboración de la Unidad de Igualdad de la Universidad de Sevilla , en la que se plasma la
obra de teatro: Científicas: pasado, presente y futuro ideada por Francisco Vega. Esta trata
entre otros la historia de mujeres que han aportado grandes avances a la ciencia y la
tecnología como son Ada Lovelace, Hipatia de Alejandría, Marie Curie, Rosalind Franklin y
Hedy Lamarr.
Fig. 166 Científicas el cómic
• El segundo recurso es una de las actividades propuestas al final del cómic, un juego tipo
«pasapalabra» con preguntas las científicas de las que acaban de leer.
Para unificarlos en la misma plataforma se ha creado una aplicación que es manejada a través
de una interfaz gráfica y sus elementos, donde el usuario puede interactuar con esta y elegir de
que científica quiere aprender. El segundo recurso ha sido gamificado a través de la realidad
aumentada y la adicción de los elementos de juego que lo caracterizan
Página 96 de 135
Los conceptos lúdicos y tecnológicos que trata en el proyecto son:
• Concienciación de la ardua labor y aportación de grandes referentes femeninos en la
ciencia e ingeniería.
• Gamificación de la actividad a través de la Realidad aumentada.
• Creación de interfaces de usuario para la ponencia teórica.
• Componentes de interacción para la gestión y operatividad de la interfaz.
• Parentesco en Unity
• Implementar un juego para afianzar los conceptos teóricos y aplicar el aprendizaje
basado en juegos.
INTERFAZ UNITY
En este caso de estudio la configuración de importación de los materiales es muy importante.
En el proyecto se utilizan imágenes importadas como Default para aplicar cualquier fondo a una
figura, Sprite 2D para interfaces de usuario y Normal map para texturas.
Fig. 167 Tipo de textura Sprite [2D and UI]
Para comenzar el caso de estudio, se crea los GameObject tipo Panel que se utilizan para el
desarrollo de la aplicación:
• El Panel principal es utilizado para dar la bienvenida al usuario, y mostrarle las opciones
disponibles que tiene.
• El Panel menú comic contiene los elementos teóricos en formato cómic acerca de la
historia de Hipatía de Alejandría, Hedy Lamarr, Ada Lovelace, Marie Curie y Rosalind
Franklin.
• El Panel – AR se encarga de activar la cámara de realidad aumentada para comenzar la
actividad práctica.
Fig. 168 Paneles de la escena
Página 97 de 135
Panel principal
Hacemos uso de los paneles para crear los diferentes fondos de las secciones de la actividad y
hacer que actúen como GameObject padre de los elementos de cada sección. Cada uno de ellos
tiene un componente Image para darle la apariencia que queramos, utilizando como se ha
mencionado imágenes con textura Sprite 2D
Fig. 169 GameObject Panel en Unity
Para mostrar el título se utiliza un GameObject Text, y para interactuar con la interfaz una serie
de botones. Dos de ellos están ubicado en un subpanel interno y están dedicados a publicitar la
UPCT y la ETSIT. Los otros dos determinan la siguiente acción a realizar por el usuario:
Fig. 170 Elementos UI del Panel Principal / Panel hijo enlaces UPCT - ETSIT
Para ubicar los elementos UI se utiliza su Rect Transform y los Anchors. Con estos últimos
podemos “anclar” cada elemento a una posición de la pantalla, para que la renderización se
adapte a cualquier tamaño y resolución, por eso, las siguientes capturas del caso pueden variar
en cierta medida a su relación de posicionamiento. En la siguiente figura se muestra la interfaz
principal inicial a la que se ha añadido una imagen ilustrativa.
Página 98 de 135
Fig. 171 Modificación de la apariencia de la escena
Los botones son componentes de interacción, y por tanto debe definirse su comportamiento
para que realicen la función deseada.
Por un lado, la funcionalidad del subpanel para los logos de la universidad, reside en la creación
a través de scripting de hiperenlaces a sus correspondientes páginas web.
Esto se lleva a cabo mediante la llamada al método OpenURL de la aplicación, cuyo argumento
debe ser la URL que se quiere hiperenlazar, en este caso https://upct. Es/ y http:/teleco.upct.es
Fig. 172 Script para enlaces web
Con la información descrita, deberíamos tener 2 script que abren dichas URL y cada uno de ellos
debe estar referenciado a su correspondiente botón en su propio método On Click () como se
muestra en la siguiente figura.
Página 99 de 135
Fig. 173 Inspector: Script para enlaces web
Los otros dos botones restantes se utilizan para cambiar entre paneles:
El botón científicas: se activa el panel teórico de la actividad. Para llevar a cabo esta función se
utiliza el método SetActive de los GameObjects Paneles, desactivándolos todos y habilitando
solamente el panel para los cómics.
Fig. 174 Botón para el Panel del cómic
El botón pasapalabra: cambia el panel principal por el panel con la actividad práctica. Igual que
en el caso anterior, se desactivan todos y solo se deja habilitado el panel del juego.
Fig. 175 Botón para el Panel AR
Página 100 de 135
Panel menú comic
Este panel sirve para alojar los contenidos teóricos de la actividad que consta de :
• Un botón para volver al menú principal
Fig. 176 Botón salir menú principal
• 5 botones para poder elegir sobre que científica queremos investigar que se describen más adelante.
Fig. 177 Panel del cómic
A cada mujer científica se le asignan 4 paneles: Estos están destinado a mostrar las 4 hojas del
cómic indicado en la introducción, que se han pasado a formato imagen y se han importado
como Asset Sprite 2D en la ventana de proyecto.
Fig. 178 Distribución en la jerarquía de los paneles y Assets para los comic
Página 101 de 135
Es importante destacar la importancia del parentesco en este caso de estudio. A través de los
botones se van desactivando y activando paneles, y, por ende, también se activan y desactivan
sus GameObjects hijos.
Para esta sección se crean 20 paneles nuevos, y puede resultar confuso manejar tantos
GameObjects a la vez, por ello como cada científica tiene 4 paneles y todos tienen la misma
distribución, se crean 4 paneles, y cuando se le asigna la funcionalidad, se duplican, se asignan
el material de la imagen y se renombran para las lograr los otros 16.
Fig. 179 Distribución inicial para cada cómic
Todos los paneles tienen una imagen destinada a la página del cómic, un botón que permite al
usuario volver al menú de las científicas, y dependiendo de la página observada, botones para
avanzar o retroceder en el cómic.
Los paneles están clasificados del 0 al 3, siendo el cero padre de todos los otros. Cuando nos
encontramos en la primera página (Fig 177) y queremos avanzar al siguiente, es necesario
indicarlo en el método OnClick del botón inferior derecho. En las siguientes capturas se
muestran las transiciones entre paneles que se realizan para Hipatia.
Fig. 180 Método OnClick botón avanzar en el Panel 0 y retroceder en el Panel 2 (activar página 1)
Fig. 181 Método OnClick botón avanzaren el Panel 1 y Retroceder en el Panel 3 (activar página 2)
Página 102 de 135
Fig. 182 Método avanzar en el panel 2 (activar página 3)
Para configurar el botón de salida al menú de selección de cómic de las científicas, es necesario
destacar que depende del cómic seleccionado. Por ejemplo, la Fig se muestra el método OnClick
del botón salir para el cómic de Hedy Lamarr. Como anteriormente se ha hecho, se activa el
panel deseado y se desactivan los demás, pero es necesario destacar que debe añadirse el Panel
padre dedicado a cada cómic para que se desactiven todas las “páginas” hijas.
Fig. 183 Botón salir del cómic de Hedy
Una vez configurados los botones de estos 4 paneles que sirven como ejemplo para una
científica, se duplica el Panel padre 4 veces más para conseguir 5 conjuntos. Una vez realizado
esto, se procede a renombrar los GameObject para asociarlos con la científica que les
corresponde, a insertar los Asset en las imágenes de los paneles y a referenciar los GameObjects
renombrados en los métodos OnClick() de sus botones.
Página 103 de 135
Este tipo de actividades suelen usarse en para hacerlas de forma grupal y colaborativamente.
Un usuario suele hacer solamente un cómic, y agrupándolos en conjunto con sus
compañeros/as, logran construir el libro de cómics de las mujeres científicas.
Fig. 184 Cómic Hipatia: Panel 0, 1, 2, 3
Fig. 185 Comic Hedy Lamarr: Panel 0, 1, 2,3
Fig. 186 Cómic Rosalind Franklin: Panel 0, 1, 2, 3
Fig. 187 Cómic Curie: Panel 0, 1, 2, 3
Fig. 188 Cómic Ada Lovelace: Panel 0, 1, 2, 3
Página 104 de 135
Como se ha dicho al principio de la explicación de este panel, hay 5 botones para poder elegir
sobre que científica queremos investigar. El comportamiento del botón será determinado por la
acción del usuario y consiste en nuevo en activar y desactivar los GameObjects convenientes.
A la hora de hacer estos botones, es necesario tener en cuenta que los GameObjects
pertenecientes a los cómics, son hijos de este panel y, por tanto, cuando queramos añadirle la
funcionalidad deberá estar activo junto con el Panel de la científica seleccionada.
Fig. 189 Button Hipatia: interacción para el cómic
Finalmente, tras la adicción de una imagen, el panel y sus funcionalidades quedarían completas.
Fig. Panel Científicas: El comic
Página 105 de 135
Panel AR
Una vez que se realiza el cómic, es hora de demostrar si realmente se han adquirido los
conceptos de aprendizaje deseados.
Para ello se recurre al aprendizaje basado en juegos, y se reconstruye un juego tipo pasapalabra
en formato de diapositivas a un método que proporcione más interacción y atractivo visual a
través de las tecnologías virtuales: Un pasapalabra en Realidad Aumentada.
Tras la lectura del cómic se propondrán las siguientes preguntas, cuya respuesta estaba
contenida en estos:
Letra Respuesta Enunciado
A Ada Nombre de pila de la primera programadora de la historia
B Babbage Constructor de la máquina analítica que usa Ada Lovelace
C Curie Apellido de la científica que inventó la palabra ‘radioactividad’
D Dalila Personaje cinematográfico que hizo famosa a Hedy Lamarr
E Espectro
ensanchado Invento de Hedy Lamarr para conexiones seguras
F Francia País de adopción de Marie Curie
G Genética Rama de la Ciencia que revolucionó la foto 51 de Rosalind
H Hipatia Nombre de la primera mujer científica de la historia
I Inglaterra País de nacimiento de Ada Lovelace y Rosalind Franklin
J Contiene
Alejandría Ciudad de nacimiento de Hipatia
K Contiene Franklin
Apellido de la gran cristalógrafa que hizo la foto 51
L Lamarr Apellido de actriz que inventó ‘la primera wifi’
M Marie Nombre de pila de la científica que descubrió el Radio
N Nobel Nombre de los premios más prestigiosos del mundo. Marie Curie tiene
2
O Orlando Ciudad en la que vivió hasta su muerte Hedy Lamarr
P Polonio Elemento químico que descubrió Marie Curie y le puso un nombre
parecido al de su país
Q Químicas Lo fueron Marie Curie y Rosalind Franklin
R Rosalind Nombre de la primera científica que describió el virus de la polio
S Sorbona Universidad francesa en la que trabajó Marie Curie
T Teón Padre de Hipatia
U Uranio Elemento químico que sirvió a Marie Curie para descubrir la
radioactividad
V Viena Ciudad donde nació Hedy Lamarr
W WiFi Invento que se desarrolló a partir de la patente de Hedy Lamarr
X Rayos X Rayos que ayudaron a Rosalind Franklin a estudiar el carbón
Y Contiene
Byron Apellido del padre de Ada, gran poeta inglés
Tabla 5 Preguntas pasapalabra
Para implementar el juego se utilizará este Panel AR, cuya peculiaridad con los anteriores es que,
al activarlo con el botón de panel principal, también activa la cámara AR.
Página 106 de 135
Este panel posee un botón para comenzar la actividad, un tiempo inicial y un botón para salir al
menú principal.
Fig. 190 Panel AR inicial
Cuando el botón GO es pulsado, este mismo se desactiva y se muestra el panel destinado a las
preguntas y respuestas predefinidas. Cuando esto pasa, un contador descendente definido vía
scripting y referenciado al texto de la imagen del tiempo, comienza a ejecutarse.
Fig. 191 Clase tiempo pasapalabra
Página 107 de 135
Fig. 192 Método OnClick() Botón Go
Se crea un Panel que contiene un gameobject text para el enunciado de las preguntas, las cuales
están definidas vía Scripting y también dos botones que activa el botón GO junto con el rosco.
Fig. 193 Panel AR cuando se pulsa GO
Cuando el usuario interactúa con la aplicación, determina la reacción de la interfaz: Si la
pregunta es correcta, la letra objetivo es sombreada de verde y si no lo es, es sombreada de
rojo.
Fig. 194 Visualización pasapalabra
Página 108 de 135
5 CONCLUSIONES
Llegados a este punto se ha cumplido el objetivo principal del proyecto: La evaluación de las tecnologías virtuales como recurso para la divulgación científica. Dada la situación excepcional ocasionada por la pandemia sanitaria del covid19, se ha tenido que adaptar la evaluación original que se pensaba realizar. Originalmente se pretendía realizar un estudio con la recogida de datos empíricos obtenidos de los participantes de varios talleres y su posterior análisis. Pero dada la imposibilidad de realizar dichos talleres se ha optado por realizar el trabajo aquí presentado. Para cumplir por tanto con el objetivo inicial, se ha realizado un estudio en profundad de las tecnologías virtuales existentes y se han propuesto un conjunto de actividades, que pueden ser auto formativas, y totalmente accesibles. Estas actividades abarcan los contenidos conceptuales propios de las tecnologías de estudio, así como conceptos propios de las diferentes materias seleccionadas para los casos de estudio (química, astronomía, ciencias naturales, etc.). Estas actividades propuestas permiten adquirir un conocimiento de forma incremental y adaptable por niveles educativos, y siguiendo la gamificación como metodología docente. En definitiva, se proporciona un marco de trabajo para el desarrollo de actividades docentes auto formativa que instruye desde lo más básico a lo más complejo y se demuestra a través de los casos de estudio que puede ser usado para la divulgación científica y como recurso docente alternativo. Con la estructura marcada en el proyecto, un usuario no relacionado con las tecnologías digitales es capaz de conocer sus características básicas y la de los softwares utilizados para su creación.
A través del estado del arte, se cumple con dos de los subobjetivos marcados:
• Por un lado, se muestra la gamificación y el aprendizaje basado en juegos como un recurso para la divulgación. Se pone de manifiesto las ventajas de utilizar las tecnologías virtuales en actividades docentes y como estas afectan de una forma positiva al aprendizaje, tanto en niveles primarios como en más profesionales.
• Por otro lado, se expone el marco teórico de las tecnologías virtuales. En esta sección se definen y se presenta su clasificación para ubicarlas en el espectro de la realidad. Además, se describen las características básicas de la AR y la VR, que tipos existen de cada una y como se produce su visionado a través de diferente hardware y software.
El subobjetivo de la accesibilidad se cumple utilizando potentes herramientas software que ofrecen una versión gratuita para desarrolladores, además de utilizar como plataformas destino dispositivos hardware de visualización que el usuario es posible que tenga en casa, como un PC, un smartphone o una Tablet.
Ya que la documentación de Unity y Vuforia son muy extensas y contienen información muy diversa, los conceptos y el funcionamiento básicos de dichos softwares se han recogido en dos anexos. Contienen todos los conceptos teóricos de los componentes utilizados en los casos de estudio, para poder adquirir una base previa a la creación de proyectos VR y AR y/o consultar conceptos durante la realización de dichos casos.
Esto último cumple otro de los subobjetivos: los casos de estudio implementados muestran de una forma más visual y práctica dentro de un proyecto Unity cómo funcionan esos componentes, pero, además extienden algunos más complejos, como pueden ser sistemas de partículas o animaciones, para profundizar aún más en el aprendizaje del motor de juego.
Todos los casos de estudio tienen un formato lúdico, ya sea como recurso docente alternativo para el aprendizaje de conceptos de diversas asignaturas como pueden ser la química, las
Página 109 de 135
ciencias naturales o la astronomía, o del propio motor de juego y sus SDKs. También se orientan como recurso orientado a la divulgación científica, con un tema tan sonado como es la igualdad de género o mostrando la transcendencia del paso de la mujer en la ciencia y la ingeniería.
Algunos de ellos son ideales para la gamificación y en otras se instaura el llamado aprendizaje basado en juegos, donde se introducen elementos propios de los juegos a la actividad, como tiempo, recompensas o rankings como vía de implicación, motivación y mejora del compromiso del estudiante hacia las actividades.
Asimismo, queda realizado un porfolio de actividades de distintos niveles y distintas temáticas utilizando las tecnologías virtuales.
Para finalizar esta sección, se plantean como trabajos futuros la implantación de los talleres propuestos y la recogida y análisis de datos de los participantes a los talleres, de manera que se demuestre empíricamente el alto alcance de estos recursos de divulgación y docencia.
Página 110 de 135
6 ANEXO I: Conceptos básicos Unity
6.1.1 Interfaz de Unity
Unity posee una interfaz muy intuitiva y amigable con el usuario. En este apartado se detalla la
funcionalidad de las ventanas principales [38] que la conforman y otras que pueden sernos de
gran utilidad. En la siguiente captura se puede observar una disposición personalizada de la
interfaz donde se aprecian las ventanas principales.
Fig. 195 Ventanas principales Unity
En la ventana de Jerarquía [39] se muestran todos los
GameObjects de la escena de un modo jerárquico, ya sean
Assets o Prefabs. Por defecto, los GameObjects están
dispuestos conforme se crean, pero pueden reordenarse o
utilizar la característica de parentesco que ofrece Unity.
Esta permite crear objetos padre y objetos hijo, haciendo
a estos últimos dependientes de su respectivo objeto
padre. Los objetos hijos heredan el movimiento y rotación
del objeto padre y pueden ser muy útiles para hacer
agrupaciones de GameObjects. Este tipo de parentesco
puede ser simple, donde un GameObject tiene unos
determinados hijos, o transitivo, determinados hijos
actúan como padre de otros hijos.
La barra de herramientas [40] es una parte de la interfaz
no reajustable. En ella se encuentra el Transform Tool, los
toggles del Gizmo y los controles de reproducción de
escena. El Transform Tool contiene las herramientas
básicas para gestionar y modificar los elementos de la
escena. Sirven para posicionar GameObjects, rotarlos o
escalarlos en dicha vista. Fig. 196 Parentesco en Unity
Página 111 de 135
Fig. 197 Barra de Herramientas: Detalle Transform Tools
Además, dispone de otros botones que dan acceso a los servicios de Unity Cloud y cuenta de
Unity, un menú Layers para la visibilidad por capas y un menú Layout para fijar diseños
alternativos de la interfaz.
La ventana de proyecto [41] muestra todos los Assets y Prefabs que están disponibles para ser
usados en el proyecto. Dispone de un buscador y una estructura de carpetas para navegar entre
ellos, además de varias funciones que permiten hacer un filtrado más preciso por tipo, etiqueta
o favoritos. Asimismo, se indica a través de diferentes iconos el tipo de GameObjects al que
pertenece cada Asset. También es posible realizar la búsqueda de Assets en el Asset store (del
que se hablará más adelante) a través de esta ventana.
Fig. 198 Ventana de proyecto Unity
La ventana de inspector [42] presenta las propiedades y componentes del GameObject
seleccionado o los ajustes de importación de Assets. Si se seleccionan varios GO, se muestran
solamente las propiedades o componentes comunes.
La vista de escena [43] proporciona una navegación visual para editar y gestionar la escena.
Asimismo, muestra una previsualización de la vista de juego. Esta ventana incluye el Gizmo de
escena [44] que muestra la orientación actual de la cámara y permite modificar el ángulo de
visión y el modo de proyección.
- Los brazos cónicos del Gizmo ajustan la vista de la cámara de escena al eje que representa. Para activar o desactivar la perspectiva, basta con presionar encima del cubo interior. Esta última opción es muy útil cuando se están desarrollando aplicaciones en 2D o interfaces de usuario. Además, Unity facilita la visualización de planos básicos a través de un menú que se muestra al presionar con el botón derecho encima del Gizmo.
Página 112 de 135
La vista de juego [45] representa la renderización final de la escena, es decir, como quedaría
la visualización final de la aplicación vista desde la cámara. Para iniciar el modo de juego, se
utiliza los controles de reproducción de la barra de herramientas. Es necesario tener en cuenta
que al entrar en modo Play, se pueden realizar cambios de las propiedades en el inspector, pero
cualquiera de ellos es temporal y todos ellos se revertirán al salir de este modo. Es destacable
mencionar que no es posible entrar en este modo si existen errores críticos en el proyecto.
Fig. 201 Vista de escena con previsualización y vista de juego
La ventana de consola [46] muestra registros de mensajes, advertencias y errores. En el
proyecto se utilizará con el fin de depurar el código y mostrar por consola cualquier dato que
nos pueda ser útil. Para ello se hace uso de la función Debug.Log en los scripts.
Fig. 202 Vista de la ventana consola
Fig. 200 Menú Gizmo de planos básicos Fig. 199 Vista de escena y previsualización vista de juego
Página 113 de 135
El Asset store es una biblioteca de assets gratuitos y comerciales creados por Unity Technologies
y también por miembros de la comunidad. Permite descargar e importar Assets directamente
en el proyecto. Dispone de un buscador y diferentes filtros para encontrar multitud de Asset,
tanto simples, como una textura, o tan complejos como podría ser un proyecto completo.
Fig. 203 Ventana Asset Store Unity
La interfaz predeterminada está formada por las ventanas
principales, sin embargo, estas y otras ventanas están
disponibles a través del menú Window de Unity [47]. Las
ventanas principales anteriormente mencionadas se
encuentran en la sección General.
Unity dispone de ventanas para animar GameObjects en la
escena. Con la ventana animación [48] es posible crear y
modificar clips a través de una línea temporal y gestionar los
correspondientes eventos de la animación.
La sección de rendering está destinada a la gestión de los
ajustes de iluminación y luces de la escena, y a la oclusión de
GameObjects durante la renderización. Está característica
desactiva el renderizado de GameObjects cuando son ocluidos
por otros, es decir, cuando no están visibles por la cámara de la
escena. Estas ventanas sirven para aumentar el rendimiento
durante el renderizado y disminuir las peticiones de
renderizado o draw-calls.
En la sección de Analysis destaca la ventana Profiler [49]puede ser destinada a investigar y
encontrar cuellos de botella en la línea de tiempo del renderizado. Dispone de características
que permiten analizar el rendimiento de la GPU, CPU, memoria y audio entre otros. Es útil para
saber que recursos se destinan a cada parte de la escena y si es necesario modificarlos para el
correcto funcionamiento en tiempo de ejecución (Evitar cortes de fluidez, tiempo destinado al
inicio…)
Fig. 204 Menú Window Unity
Página 114 de 135
6.1.2 Terminología de Unity: Asset, GameObject, Componentes, Prefab.
Un Asset es una representación de cualquier item que puede ser utilizado en el proyecto.
Pueden ser imágenes, animaciones, audios... creados dentro de Unity o desde otro software
como pueden ser achivos de modelo CAD. Para importar un Asset puede utilizarse el menú de
Unity Assets o arrastrarlos directamente a la ventana de proyecto. Cada tipo de Asset admitido
por Untiy tiene unas configuraciones de importación distintas que se mostrarán en el inspector.
Unity pone a disposición del usuario los Standar Assets[50], que son colecciones de archivos y
datos de proyectos complejos ampliamente utilizados, y muy útil a la hora de la creación de
escenas.
Fig. 205 Inspector: Tipos de GO y GO primitivos
Por otra parte, cada objeto en la escena de juego, y por tanto en la ventana de Jerarquía, es un
GameObject. [51]
Estos tienen una naturaleza muy diversa y pueden ser de diferentes tipos según su utilidad. Se
crean en la ventana de la jerarquía o desde el menú GameObject de Unity.
Los denominados GameObject primitivos[52] son representaciones virtuales de geometrías
básicas cuya utilización puede ser muy favorable a la hora de crear la escena. Se encuentran en
la sección 3D Object y pueden ser tan útiles como podría ser un cubo, una esfera o una cápsula
a la hora de crear paredes, planetas o colisionadores.
Cada GO tiene un nombre específico y es posible asignarle una etiqueta, un layer y/o iconos
personalizados que se mostraran en la vista de escena. Un tag o etiqueta [53] es una palabra
de referencia que se asigna a un GO para ayudar a su identificación. Pueden usarse los
predeterminados o crear tags personalizados.
Los GameObjects tienen una casilla de verificación para activar o desactivar su visibilidad en
dicha vista [54]. Es importante tener en cuenta que, si se desactiva un objeto padre, también se
desactivarán todos sus parientes. También puede marcarse como estáticos para indicarle a Unity
que esto GO no se moverán en tiempo de ejecución.
Los GameObjects no son capaces de hacer nada por si mismos si no se le asignan propiedades a
través de componentes [55]. Un GO siempre tiene un componente Transform [56] y no es
posible quitarlo. Este componente determina la posición, rotación y escala del GO dentro del
Página 115 de 135
espacio de juego. Para cambiar el valor de dichas propiedades, podemos desplazar los ejes del
componente, o modificar el panel derecho. Ambos hacen lo mismo, aunque el panel
proporciona más precisión en las unidades, lo que mejora la renderización.
Fig. 206 Detalle componente Transform
- La posición se mide en unidades de longitud. Por defecto, el motor de física asume que una unidad del espacio del mundo corresponde a un metro.
- La rotación se mide en ángulos de Euler y cuaternios, pero utilizaremos la primera opción. Es útil ubicar el GameObject “padre” de otros elementos hijos, en el origen de coordenadas (0,0,0) para que a la hora de incorporárselos sean concéntricos, comprobando así que los elementos hijos están posicionados correctamente.
- El escalado es una proporción. Si cambiamos el escalado de un objeto padre, se ha de tener en cuenta que el de los elementos hijos también lo hará. Debe evitarse el escalado no uniforme ya que reduce la velocidad de la renderización gráfica, aunque suele utilizarse bastante.
Los componentes tienen propiedades reajustables que pueden ser referencias o valores.[57]
- Los valores son cajas de texto, desplegables o casillas de verificación que nos ayudan a personalizar el GameObject seleccionado.
- Las referencias son asignadas arrastrando un GameObject a la propiedad o utilizando el “Object picker” a la derecha, que permite buscar entre los Asset disponibles del proyecto. Es decir, se referencia un GameObject, Asset u otro tipo de componente pertenecientes proyecto como propiedad.
Fig. 207 Propiedades por referencia y valor
Página 116 de 135
Es posible reutilizar un GO configurado de una manera particular convirtiéndolo en un
Prefab.[58] Unity proporciona el sistema Prefab que permite crear, configurar y almacenar un
GO completo como un Asset reutilizable. Además, proporciona un entorno de edición exclusivo
y permite mantener todas las copias sincronizadas, aunque es posible configurar ciertas
excepciones.
Fig. 208 Inspector: GO Asset Prefab con icono azul
Fig. 209 Detalle Prefab en la ventana de proyecto
Para crear un Prefab [59] hay que arrastrar un GO de la ventana de Jerarquía a proyecto, y, para
modificarlo es necesario abrirlo en modo Prefab[60]. Es relevante destacar que no se puede
eliminar un GO que sea parte de un Prefab.
Los Prefab son muy útiles cuando se requiere instanciar un GO en tiempo de ejecución que no
existían anteriormente en la escena.
Esta terminología es importarte ya que es básica en Unity y la utilizaremos a lo largo del
proyecto. A modo de resumen se puede concluir que:
- Un Asset es un archivo real alojado en el PC en la carpeta del proyecto. - Un GameObject es un Asset alojado en la escena, aparece en la Jerarquía y es parte del
entorno de juego. - Un GameObject actúa como una caja vacía para agregar componentes en los cuales
reside la funcionalidad. Esta se personalizará a través de propiedades. - Las propiedades pueden ser valores directamente ajustables o con la necesidad de
asignarle una referencia a un objeto (Ya sea un Asset, un GO o un Prefab) - Un Prefab actúa como plantilla de un GO con una configuración de componentes y
propiedades determinadas.
Página 117 de 135
6.1.3 Materiales y texturas
Los materiales y texturas se utilizan para definir la apariencia visual que tendrá el objeto tras la
renderización. Para realizar el renderizado de la escena, Unity distingue entre Materiales,
Shaders y Texturas:[61]
- El Shader utilizado determina que opciones están disponibles en un material, y es el encargado de realizar los cálculos para el renderizado, basándose en la iluminación y la configuración del material. Por defecto se establece un Shader Standard.[62]
- Los materiales definen como la superficie debe ser renderizada incluyendo referencias al Shader y define unos parámetros específicos para este.
- Las texturas son imágenes bitmap que representan otros aspectos del material como la rugosidad o relieve de la forma.
Es necesario destacar que se denomina Albedo al color básico de la superficie de un objeto. El
valor alfa del color controla el nivel de transparencia en el material, propiedad muy útil a la hora
de crear ventanas o cristales.
Se puede aplicar un solo color al Albedo, pero es más común referenciar un Asset. Para ello es
necesario descargarlo y realizar los ajustes necesarios en la importación de los archivos.
En el momento de buscar Assets de materiales y texturas en el navegador de Google, se ha
optado por elegir imágenes con licencia Creative Commons que permite a los usuarios utilizar
archivos protegidos por derecho de autor sin solicitar un permiso explícito.
Es recomendable crear una carpeta de Asset específica para los materiales que se utilizarán en
la escena. Se puede crear un material, en dicha ventana o en el menú Assets > Create > Material.
Unity muestra las opciones de importación de cada Asset en la ventana inspector cuando
cualquiera de estos está seleccionado. Esta configuración permite definir como Unity importa
un archivo.
Fig. 211 Inspector: Material – Albedo
Fig. 210 Detalle color Albedo
Página 118 de 135
6.1.4 Motor de física: Rigidbody, Collider y Triggers
Para conseguir que la escena se vea de una manera realista, los GameObjects deben acelerarse
correctamente y deben ser afectados por colisiones, gravedad y otras fuerzas. Para ello Unity
dispone de dos motores de física separados, uno para la física 2D y otro para la 3D.[63]
El componente que permite el comportamiento físico para un GO es el Rigidbody[64]. Cuando
un GO tiene un componente Rigidbody adjunto responde de una forma automática a la gravedad
y se le asigna una masa específica (por defecto 1kg). Este componente se mueve a través de
fuerzas.
Fig. 212 Unity: Componente Rigidbody
Si se configura como activa la propiedad Is Kinematic, Unity elimina el GO del motor de física,
por lo que no le afectarán colisiones o fuerzas, y posibilita que se mueva utilizando el Transform
desde Script. Aunque el motor de física no tenga en cuenta un Rigidbody Kinematic y no pueda
recibir fuerzas, estos si afectarán a otros objetos.
Con el fin de definir las formas de un objeto para
propósitos de colisiones físicas están los
denominados componentes Colliders [65]. Definen
una forma geométrica invisible que permitirá que
el GO sea movido por colisiones entrantes.
Para agregar un Collider a un GameObject no es
necesario tener un Rigidbody adjunto. Son los
denominados Static Colliders y se utilizan para
elementos que no se mueven en la escena ya que
no se mueven en respuesta a colisiones. En
contraposición, existen los Dynamic Collider donde
el GO tiene tanto un componente Collider como un
Rigidbody adjunto. En función de la configuración
del Rigidbody, se representa en el siguiente
diagrama como interactúan estos Colliders y por
tanto cuando se producen colisiones. Cuando esto
Fig. 213 Unity: Componentes Collider
Página 119 de 135
ocurre Unity llama a la función OnCollisionEnter ()[66].
Static Collider
GO sin Rigidbody No se mueven en respuesta a colisiones, pero interactúan con los dinámicos.
Dynamic Collider
GO con Rigidbody
Rigidbody Collider
No Kinematic
Reaccionan a colisiones y fuerzas. Se mueve a través de fuerzas. No aplica fricción.
Kinematic Rigidbody
Collider
Kinematic No responde a colisiones y fuerzas. Se mueve a través del Transform. Aplica fricción. Tabla 6 Tipos de Colliders
El motor de física de Unity asume que un GO se ha detenido cuando el Rigidbody no se mueve
una cantidad mínima. En este momento el GO se configura en modo “sleeping” y no se volverá
a mover hasta que no reciba una colisión o fuerza que lo “despierte”.
Un Collider con la propiedad Is Trigger Activa no se
comporta como un objeto sólido y permite a otros
Collider pasar a través de él. Con esta configuración es
necesario un Rigidbody adjunto para recibir eventos de
Trigger.
Se utiliza para detectar cuando un Collider entra en el
espacio de otro sin crear una colisión, y en este caso se
llama a la función OnTriggerEnter () [67].
Fig. 216 Entre que Colliders se producen Trigger
Fig. 214 Entre que Colliders se producen colisiones
Fig. 215 Unity: Componente Box Collider
Página 120 de 135
6.1.5 Audio e iluminación
Para aumentar el concepto de inmersión en la escena, en muchas ocasiones añadiremos
estímulos auditivos. Para sonorizar la escena Unity proporciona dos GO básicos que se muestran
en las siguientes capturas: Audio Source[68] y Audio Listener[69]
El componente Audio source actúa como una fuente de audio que reproduce un Audio Clip [70]
en la escena. Esta última es una propiedad por referencia al archivo de sonido que se reproduce.
Por defecto está marcada la propiedad destinada a que el Clip se reproduzca al entrar en modo
de juego, Play On Awake. Los formatos de archivos de audio que Unity puede importar son .aif,
.wav, .mp3, y .ogg.
Para reproducir el Clip, Audio Source hace uso del componente Audio Listener, que es el
encargado de reproducir el sonido en los altavoces. Este componente no tiene propiedades y
generalmente se ubica en la cámara principal.
Otra forma de introducir más realismo a la escena es mediante la iluminación. De forma
predeterminada, Unity coloca una Directional Light que ilumina todos los objetos de la escena,
pero existen otros recursos para diferentes alumbrados. En la siguiente tabla, se muestran los
tipos de Light [71] disponibles en el menú GameObject > Light.
Directional Light
Son fuentes distantes de luz que existen infinitamente lejos. Ilumina todos los objetos desde la misma dirección
Point Light Se encuentra en un punto del espacio y emite luz en todas las direcciones por igual.
Spotlight Tiene una posición específica, pero está limitado a un ángulo. Forma cónica.
Area Light Está definida por un rectángulo en el espacio que se emite en todas las direcciones por un solo lado del rectángulo.
Reflection Probe
Cámara de Unity que captura una vista esférica de sus alrededores en todas las direcciones.
Light Probe Group
Permite dentro de una escena capturar y almacenar información sobre la luz que pasa a través del espacio vacío.
Tabla 7 Tipos de GO Lights
Fig. 217 Unity: Componente Audio Listener
Fig. 218 Unity: Componente Audio Source
Página 121 de 135
6.1.6 Interfaz de usuario (UI)[72]
Una interfaz de usuario es un conjunto de controles que el usuario utiliza para interactuar con
la aplicación. Toda interfaz de usuario en Unity necesita un GameObject Canvas[73], que tendrá
que ser padre de los elementos UI de la escena. Si no se crea antes de crear otro elemento UI,
se crea automáticamente. Junto con este, se crea un objeto Event System que gestiona la UI y
ayuda en el sistema de mensajes.
Fig. 219 Elementos UI en Unity
El Canvas dispone de una propiedad Render Mode que permite elegir el renderizado para los
elementos UI.[74]
Screen Space – Overlay
El Canvas se muestra en la parte superior de la escena .
Screen Space – Camera
El Canvas se coloca a una distancia específica frente a la cámara.
World Space El Canvas se comporta como cualquier GO en la escena.
Tabla 8 Render Mode - canvas
Página 122 de 135
Unity ofrece los GameObject UI, componentes visuales y de interacción para la interfaz que se
pueden observar en la Figura superior. Todos ellos son elementos para interactuar con la GUI
de una forma distinta, pero tienen en común que utilizan un componente Rect Transform [75],
un diseño 2D del componente Transform. Este tiene las mismas propiedades que un Transform
tradicional y adicionalmente el ancho, la altura y un concepto llamado Anchors.
Los Anchors son tipos de anclaje para la esquina inferior izquierda y la esquina superior derecha
del rectángulo, referenciado a un punto de la interfaz u objeto. Unity pone a disposición de los
usuarios los Anchors preset, que son las opciones de anclajes más comunes, donde también se
indica la selección de Anchors actual.
Fig. 220 Componente Rect Transform
Las modificaciones del Rect Transform ocurren alrededor de un
pivote. Es posible moverlo cuando así se configura en la barra de
herramientas.
Un Canvas es un área rectangular, y por lo general se aplica una Image o Panel para obtener un
fondo. Para aplicar imágenes a los elementos UI es necesario que su tipo de textura sea UI
Sprites (2D/UI) .[76]
Los componentes elementos UI pueden dividirse entre componentes visuales [77] y
componentes de interacción[78]. Estos últimos tienen la propiedad Interactable para que el
sistema maneje la interacción como un input.
El elemento Button [79]es un claro ejemplo de componente de interacción, y además ofrece
una funcionalidad ampliamente utilizada: cuando el usuario pulsa el botón, se ejecuta la acción
implementada. Unity realiza este proceso llamando a la función OnClick () [80] del elemento.
Fig. 222 Elemento UI Button
Fig. 221 Toggles pivote Unity
Página 123 de 135
7 ANEXO II: Bases de datos de marcadores en
Vuforia
Cada aplicación creada con Vuforia necesita su propia clave de licencia, pero es posible tener la
misma licencia para una misma aplicación que vaya a ser construida en las diferentes
plataformas de destino admitidas.
Fig. 223 Añadir licencia Vuforia
Para adquirir las licencias de desarrollador, se debe acceder al administrador de licencias [81] a
través del portal web [27]y pulsar sobre Get Development Key.
Este proporciona herramientas y la información necesaria para crear y administras todas las
licencias de un mismo usuario .
Fig. 224 Vuforia: Administrador de licencias
Una base de datos es una infraestructura de almacenamiento para un conjunto de datos
estructurados que siguen un cierto esquema y, que por sí solos no aportan información, sino
que hay que procesarlos.
Vuforia pone a disposición del usuario en el portal web, un administrador para crear bases de
datos [82]. En este caso, los datos son targets y usaremos el administrador de Vuforia para
alojarlos, crearlos y gestionarlos.
Fig. 225 Vuforia: Administrador de Bases de datos
Página 124 de 135
Para crear una base de datos en Vuforia solo es necesario pulsar sobre Add Database y asignarle
un nombre.
Fig. 226 Crear base de datos Vuforia
Una vez creada, podemos comenzar a añadir targets. Un target o marcador representan
imágenes que el motor de Vuforia puede rastrear y detectar.
Estas imágenes deben tener extensión .png o .jpg para poder añadirlas a la base de datos de
Vuforia y, según la geometría del marcador pueden estar dispuestas en de diferentes maneras.
Fig. 227 Vuforia: Tipos de marcadores
Dicha geometría determina los tipos de target que pueden ser creados en el gestor:
- Un Single Target representa un plano y necesita una imagen que se adhiere al marcador. - Un Cuboid Target representa un cubo y necesita una imagen en cada cara de este. - Un Cylinder Target [83]representa un marcador en forma de cilindro y necesita una
imagen alrededor del cuerpo y una para cada tapa.
Fig. 228 Previsualización Target Cuboid y Cylinder
Página 125 de 135
Fig. 229 Vuforia: Targets en bases de datos AR
Los targets y las imágenes seleccionadas deben respetar una relación volumétrica, es decir, las
medidas del target digital deben respetar las del target físico. Para ello a cada target se le deben
asignar unas dimensiones en su proceso de creación, las cuales se muestran en la siguiente tabla:
TIPOS DE TARGET DIMENSIONES
Single Image Width
Cuboid Width, height, length
Cylinder Bottom Diameter, Top diameter, Side Length
Tabla 9 Vuforia: Dimensiones Targets
Un 3D Object no tiene dimensiones predefinidas, ya que se crea escaneando un objeto. No se
entra en mucho detalle ya que en el proyecto no se implementa ningún target de este tipo.
El motor de Vuforia rastrea y detecta a través de la cámara del dispositivo el entorno, y busca
características similares entre estas imágenes alojadas en la base de datos con los fotogramas
capturados en tiempo real.
El administrador de Targets también permite inspeccionar los marcadores contenidos en las
diferentes bases de datos.
Fig. 230 Vuforia: Características de un marcador single
Página 126 de 135
Ofrece una visualización de las características del target, que al fin y al cabo, son un borde afilado
o similar. La cantidad de características de una imagen determinan su trackability que se
representa en una escala de 0 a 5 estrellas en la propiedad Augmentable. Este valor representa
el grado de cuan buena es una imagen para ser detectada o “aumentada”.
Para ser detectados correctamente, los targets deben cumplir ciertas propiedades:
- Un Image target [84] debe ser rico en detalles con múltiples características, tener un buen contraste con regiones claras y oscuras, y carecer de patrones repetitivos ya que el algoritmo necesita cierto grado de aleatoriedad para no confundir patrones.
- Un Multitarget [85] (un target volumétrico) debe respetar las propiedades en todas sus imágenes al igual que un Image Target, pero además es necesario tener en cuenta la profundidad. Además, se espera consistencia, es decir, que todas las caras estén en su lugar.
Una vez que se detecta el objetivo, Vuforia Engine rastreará la imagen y aumentará su
contenido.
Página 127 de 135
8 ANEXO III: Marcadores AR utilizados en los casos
de estudio.
MultiTarget mergeCube
Fig. 231 mergeCube.Back
Fig. 232 mergeCube.Bottom
Fig. 233 mergeCube.Front
Fig. 234 mergeCube.Left
Fig. 235 mergeCube.Right
Fig. 236 mergeCube.Top
Página 1 de 135
Single Target en química: Compuestos básicos
Agua oxigenada
Agua:
sal:
Sosa caustica
Lejía
Acido cloridrico
Página 2 de 135
Single Target en Ciencias naturales: Clasificación de los animales según su alimentación
Página 3 de 135
9 BIBLIOGRAFIA
[1] A. P. Manzano y J. A. Baeza, «Gamificación transmedia para la divulgación científica y el fomento de vocaciones procientíficas en adolescentes», Comun. Rev. Científica Iberoam. Comun. Educ., n.o 55, pp. 93-103, 2018.
[2] «45cb187d-55a4-9577-a0ce-476fa0ed1b06.pdf». Accedido: dic. 08, 2020. [En línea]. Disponible en: https://www.aragon.es/documents/20127/674325/Estudio%20Prospectiva%20Analisis%20de%20tendencias%20RA%20y%20RV%20con%20formato.pdf/45cb187d-55a4-9577-a0ce-476fa0ed1b06.
[3] «Etesis_1.pdf». Accedido: dic. 08, 2020. [En línea]. Disponible en: https://www.tdx.cat/bitstream/handle/10803/8909/Etesis_1.pdf.
[4] A. B. Vera, «LAS TECNOLOGIAS DE INFORMACION Y COMUNICACIONES (TIC) EN LA DOCENCIA UNIVERSITARIA», vol. 12, p. 11, 2003.
[5] «Realidad Aumentada en Educación», p. 39. [6] X. Basogain, M. Olabe, K. Espinosa, y C. Rouèche, «Realidad Aumentada en la Educación:
una tecnología emergente», p. 8. [7] D. Z. Guillén, «La realidad virtual como recurso y herramienta útil para la docencia y la
investigación», Rev. Iberoam. Tecnol. En Educ. Educ. En Tecnol., n.o 6, Art. n.o 6, dic. 2011. [8] «La UNCuyo aplicará realidad virtual para simular neurocirugías», ECOCUYO - Diario Digital
de Negocios, abr. 29, 2019. https://ecocuyo.com/desarrollaran-entornos-de-realidad-virtual-para-neurocirugias-en-mendoza/ (accedido dic. 06, 2020).
[9] P. Cornellà, M. Estebanell, y D. Brusi, «Gamificación y aprendizaje basado en juegos.», Enseñ. Las Cienc. Tierra, vol. 28, n.o 1, Art. n.o 1, ago. 2020.
[10] «Vista de Los adolescentes aprenden jugando: La ludificación como estrategia de enseñanza | Revista de Educación de Puerto Rico (REduca)». https://revistas.upr.edu/index.php/educacion/article/view/16070/13613 (accedido dic. 05, 2020).
[11] F. Telefónica, Realidad Aumentada: una nueva lente para ver el mundo. Fundación Telefónica, 2011.
[12] «Memoria.pdf». Accedido: dic. 04, 2020. [En línea]. Disponible en: https://upcommons.upc.edu/bitstream/handle/2099.1/24986/Memoria.pdf.
[13] E. R. Escartín, «LA REALIDAD VIRTUAL, UNA TECNOLOGÍA EDUCATIVA A NUESTRO ALCANCE», p. 15.
[14] L. A. Luengas, D. A. R. López, y K. J. Galeano, «Realidad virtual no inmersiva: instrumentos electrónicos de aplicación educativa», Visión Electrónica, vol. 4, n.o 1, Art. n.o 1, jun. 2010, doi: 10.14483/22484728.275.
[15] M. Kohl y W. für P. und Elektrotechnik, «Estereoscopio de Wheatstone», Stéréoscope a miroir de Wheatstone, mar. 2016, Accedido: oct. 18, 2018. [En línea]. Disponible en: http://hdl.handle.net/10915/51674.
[16] «Memoria.pdf». Accedido: dic. 03, 2020. [En línea]. Disponible en: https://upcommons.upc.edu/bitstream/handle/2099.1/24986/Memoria.pdf.
[17] «Realidad Aumentada en Educación.pdf». Accedido: dic. 06, 2020. [En línea]. Disponible en: http://oa.upm.es/45985/1/Realidad_Aumentada__Educacion.pdf.
[18] «¿Qué es la realidad aumentada y cómo funciona?», Xperiencia Virtual, may 07, 2018. https://www.xperienciavirtual.es/es/que-es-la-realidad-aumentada/ (accedido dic. 06, 2020).
[19] «¿Qué es un motor de videojuegos? – Observatorio del Gabinete de Tele-Educación». https://blogs.upm.es/observatoriogate/2018/07/04/que-es-un-motor-de-videojuegos/ (accedido dic. 08, 2020).
Página 4 de 135
[20] «SDK: ¿qué es un software development kit?», IONOS Digitalguide. https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/software-development-kit/ (accedido dic. 08, 2020).
[21] «TFG-B.724.pdf». Accedido: dic. 03, 2020. [En línea]. Disponible en: http://uvadoc.uva.es/bitstream/handle/10324/13198/TFG-B.724.pdf?sequence=1&isAllowed=y.
[22] «Haas_IQP_Final.pdf». Accedido: nov. 13, 2020. [En línea]. Disponible en: https://web.wpi.edu/Pubs/E-project/Available/E-project-030614-143124/unrestricted/Haas_IQP_Final.pdf.
[23] «Unity 2020.2b», Unity. https://unity3d.com/es/beta/2020.2b (accedido nov. 13, 2020). [24] U. Technologies, «Creando y usando scripts - Unity Manual».
https://docs.unity3d.com/es/2018.4/Manual/CreatingAndUsingScripts.html (accedido dic. 02, 2020).
[25] U. Technologies, «Unity - Manual: Important Classes - MonoBehaviour». https://docs.unity3d.com/Manual/class-MonoBehaviour.html (accedido dic. 02, 2020).
[26] U. Technologies, «Unity - Manual: Vuforia». https://docs.unity3d.com/2018.4/Documentation/Manual/vuforia-sdk-overview.html (accedido nov. 23, 2020).
[27] «Vuforia Developer Portal |». https://developer.vuforia.com/ (accedido dic. 02, 2020). [28] «Getting Started with Vuforia Engine in Unity».
https://library.vuforia.com/articles/Training/getting-started-with-vuforia-in-unity.html (accedido nov. 12, 2020).
[29] «Software de diseño 3D | Modelado 3D en la web | SketchUp», Drupal. https://www.sketchup.com/es/page/pagina-de-inicio (accedido nov. 28, 2020).
[30] «Software de diseño arquitectónico | Herramienta arquitectónica basada en web | Visualización arquitectónica», Drupal. https://www.sketchup.com/es/industries/architecture (accedido dic. 02, 2020).
[31] «3D Warehouse». https://3dwarehouse.sketchup.com/?hl=es (accedido dic. 02, 2020). [32] «Quickstart for Google VR SDK for Unity with Android», Google Developers.
https://developers.google.com/vr/develop/unity/get-started-android?hl=es (accedido nov. 23, 2020).
[33] U. Technologies, «Posicionando GameObjects - Unity Manual». https://docs.unity3d.com/es/2019.4/Manual/PositioningGameObjects.html (accedido dic. 09, 2020).
[34] «Unity - Manual: Visión general del Sistema de Animación». https://docs.unity3d.com/es/530/Manual/AnimationOverview.html (accedido dic. 10, 2020).
[35] U. Technologies, «Qué es un Sistema de Partículas? - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/PartSysWhatIs.html (accedido nov. 24, 2020).
[36] U. Technologies, «Color Albedo y Transparencia - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/StandardShaderMaterialParameterAlbedoColor.html (accedido dic. 10, 2020).
[37] «Mujeres y ciencia: ¿discriminación basada en la evidencia?», La Vanguardia, feb. 10, 2017. https://www.lavanguardia.com/ciencia/opinion/20170210/414215473166/mujeres-ciencia-discriminacion-basada-evidencia.html (accedido dic. 10, 2020).
[38] U. Technologies, «Las ventanas principales - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/UsingTheEditor.html (accedido dic. 02, 2020).
[39] U. Technologies, «La ventana de Hierarchy (Jerarquía) - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/Hierarchy.html (accedido dic. 02, 2020).
Página 5 de 135
[40] U. Technologies, «La Barra de Herramientas - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/Toolbar.html (accedido dic. 02, 2020).
[41] U. Technologies, «The Project window - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/ProjectView.html (accedido dic. 02, 2020).
[42] U. Technologies, «The Inspector window - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/UsingTheInspector.html (accedido dic. 02, 2020).
[43] U. Technologies, «The Scene view - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/UsingTheSceneView.html (accedido dic. 02, 2020).
[44] U. Technologies, «Scene view navigation - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/SceneViewNavigation.html (accedido dic. 02, 2020).
[45] U. Technologies, «The Game view - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/GameView.html (accedido dic. 02, 2020).
[46] U. Technologies, «Console Window - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/Console.html (accedido dic. 02, 2020).
[47] U. Technologies, «Other windows - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/OtherViews.html (accedido dic. 02, 2020).
[48] U. Technologies, «Guía de la ventana de animación - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/AnimationEditorGuide.html (accedido dic. 02, 2020).
[49] U. Technologies, «Profiler overview - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/Profiler.html (accedido dic. 02, 2020).
[50] «Unity - Manual: Assets Estándar». https://docs.unity3d.com/es/530/Manual/HOWTO-InstallStandardAssets.html (accedido dic. 02, 2020).
[51] U. Technologies, «GameObjects - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/GameObjects.html (accedido dic. 02, 2020).
[52] U. Technologies, «Primitive and placeholder objects - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/PrimitiveObjects.html (accedido dic. 02, 2020).
[53] U. Technologies, «Tags (Etiquetas) - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/Tags.html (accedido dic. 02, 2020).
[54] U. Technologies, «Desactivando GameObjects - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/DeactivatingGameObjects.html (accedido dic. 02, 2020).
[55] U. Technologies, «Introducción a los componentes. - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/Components.html (accedido dic. 02, 2020).
[56] U. Technologies, «Transform - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/class-Transform.html (accedido dic. 02, 2020).
[57] «Unity - Manual: Usando Components». https://docs.unity3d.com/es/530/Manual/UsingComponents.html (accedido dic. 02, 2020).
[58] U. Technologies, «Prefabs - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/Prefabs.html (accedido dic. 02, 2020).
[59] U. Technologies, «Creating Prefabs - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/CreatingPrefabs.html (accedido dic. 02, 2020).
[60] U. Technologies, «Editing a Prefab in Prefab Mode - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/EditingInPrefabMode.html (accedido dic. 02, 2020).
Página 6 de 135
[61] U. Technologies, «Materiales, Shaders y Texturas - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/Shaders.html (accedido dic. 02, 2020).
[62] U. Technologies, «Standard Shader - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/shader-StandardShader.html (accedido dic. 02, 2020).
[63] U. Technologies, «Física - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/PhysicsSection.html (accedido dic. 02, 2020).
[64] U. Technologies, «Visión general del Rigidbody - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/RigidbodiesOverview.html (accedido dic. 02, 2020).
[65] U. Technologies, «Colliders - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/CollidersOverview.html (accedido dic. 02, 2020).
[66] U. Technologies, «Unity - Scripting API: Collider.OnCollisionEnter(Collision)». https://docs.unity3d.com/ScriptReference/Collider.OnCollisionEnter.html (accedido dic. 02, 2020).
[67] U. Technologies, «Unity - Scripting API: Collider.OnTriggerEnter(Collider)». https://docs.unity3d.com/ScriptReference/Collider.OnTriggerEnter.html (accedido dic. 02, 2020).
[68] U. Technologies, «Unity - Manual: Audio Source». https://docs.unity3d.com/2018.4/Documentation/Manual/class-AudioSource.html (accedido dic. 02, 2020).
[69] U. Technologies, «Unity - Manual: Audio Listener». https://docs.unity3d.com/2018.4/Documentation/Manual/class-AudioListener.html (accedido dic. 02, 2020).
[70] U. Technologies, «Unity - Manual: Audio Clip». https://docs.unity3d.com/2018.4/Documentation/Manual/class-AudioClip.html (accedido dic. 02, 2020).
[71] U. Technologies, «Tipos de luz - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/Lighting.html (accedido dic. 02, 2020).
[72] U. Technologies, «UI (Interfaz de Usuario) - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/UISystem.html (accedido dic. 02, 2020).
[73] U. Technologies, «Canvas - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/UICanvas.html (accedido dic. 02, 2020).
[74] U. Technologies, «Diseño Básico - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/UIBasicLayout.html (accedido dic. 02, 2020).
[75] U. Technologies, «Rect Transform - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/class-RectTransform.html (accedido dic. 02, 2020).
[76] U. Technologies, «Sprites - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/Sprites.html (accedido dic. 02, 2020).
[77] U. Technologies, «Componentes Visuales - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/comp-UIVisual.html (accedido dic. 02, 2020).
[78] U. Technologies, «Componentes de Interacción - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/comp-UIInteraction.html (accedido dic. 02, 2020).
[79] U. Technologies, «Button (Botón) - Unity Manual». https://docs.unity3d.com/es/2018.4/Manual/script-Button.html (accedido dic. 02, 2020).
Página 7 de 135
[80] «Unity - Scripting API: UI.Button.onClick». https://docs.unity3d.com/530/Documentation/ScriptReference/UI.Button-onClick.html (accedido dic. 02, 2020).
[81] «License Manager». https://library.vuforia.com/content/vuforia-library/en/tools/license-manager.html (accedido dic. 02, 2020).
[82] «Target Manager». https://library.vuforia.com/content/vuforia-library/en/tools/target-manager.html (accedido dic. 02, 2020).
[83] «Cylinder Targets». https://library.vuforia.com/content/vuforia-library/en/features/images/cylinder-targets.html (accedido dic. 02, 2020).
[84] «Image Targets». https://library.vuforia.com/content/vuforia-library/en/features/images/image-targets.html (accedido dic. 02, 2020).
[85] «Multi Target». https://library.vuforia.com/content/vuforia-library/en/features/images/multi-target.html (accedido dic. 02, 2020).