

REALIDAD AUMENTADA
UTN
PROYECTOS REALIDAD AUMENTADA UTN
Proyecto ImbaLake 3D
En esta sección se presenta el proyecto denominado "ImbaLake 3D" que consiste en el desarrollo de una APLICACIÓN MÓVIL PARA FOMENTAR EL TURISMO EN LAS PRINCIPALES LAGUNAS DE IMBABURA UTILIZANDO REALIDAD AUMENTADA.
​
A continuación se detalla los principales pasos a seguir para el desarrollo de la aplicación.
Instalación de las Herramientas
​
Instalación Unity 3D.
​
-
Para iniciar con la instalación de la plataforma Unity se debe dirigir directamente a la página web oficial del software https://unity3d.com/es/unity, en dicha página se podrá observar las diferentes opciones para la obtención del producto ya sea que se opte por una versión de paga o la versión gratuita.
​
​
-
Ejecutamos el instalador que se ha descargado y se presentara el asistente de descarga de Unity.
-
Se debe aceptar los términos de licencia
-
Se debe percatar que la opción de Vuforia Augmented Reality Suport este activo.
-
Se define la ruta de descarga e instalación de Unity.
-
Una vez terminada la descarga la instalación comenzará de forma automática
-
Una vez terminada la descarga e instalación de todos los complementos aparecerá una pantalla la cual indicara que la instalación a finalizado.
​
​
Instalación Vuforia
​
En caso de no haber instalado Vuforia directamente con Unity se debe seguir las siguientes instrucciones
-
Se debe ingresar al sitio web oficial de Vuforia mediante el siguiente enlace https://developer.vuforia.com/downloads/sdk una vez en la página web se debe escoger el sdk para la plataforma Unity “Download Unity Extension (legacy)”.
-
En caso de tener una cuenta de desarrollador de Vuforia pedirá iniciar sección y se presentará un cuadro de dialogo donde se deberá aceptar los términos de licencia.
-
Una vez aceptado los términos comenzara la descarga.
-
En caso de no tener una cuenta de desarrollador se podrá crear una en ese instante dando clic sobre la opción “Create account now”
-
Una vez llenado el formulario se enviará al correo electrónico con el cual se registró un mail con un enlace para confirmación y verificación del correo
-
Ya estando registrados se puede proceder tal y como se lo indica en el paso 2 y 3 y se debe esperar a que la descarga finalice.
-
Una vez se haya finalizado la descarga, será momento de dirigirse al entorno de desarrollo Unity 3D sobre el proyecto que se desea trabajar e importar el paquete para lo cual en la barra de herramientas sobre la opción Assets -> Import Package -> Costum Package.
-
Siguiendo estos pasos podremos ver una ventana en la cual se deberá buscar y seleccionar el archivo descargado y se da clic en el botón abrir
-
Ya seleccionado y abierto el archivo se presentará una ventana indicando todos los archivos que se van a importan, en dicha pantalla se debe dar clic en import
-
Finalmente, cuando el proceso de importación haya finalizado podremos apreciar en el espacio de trabajo una carpeta la cual contendrá todos los archivos necesarios para empezar a trabajar
​
Instalación AutoDesk Maya
​
​Para la instalación de AutoDesk Maya se realiza lo siguiente.
​
-
En el sitio web del AutoDesk Maya https://latinoamerica.autodesk.com/products/maya/overview, se escoge la opción de prueba gratuita.​
-
Esto los redirige a una página donde se estable que la versión de prueba que se va a descarga es válida por 30 días.
-
Al dar clic en el botón “Descargar Prueba Gratuita” se mostrará una ventana emergente en la cual se especifica los requerimientos mínimos para el funcionamiento del software.
-
Al dar clic en el botón siguiente se podrá apreciar la pantalla donde se debe seleccionar el tipo de uso que se le dará al software, al seleccionar la opción de Alumno o Profesor se activará la opción de ir a la comunidad de educación.
-
La ventaja de la comunidad de educación es que a alumnos se les otorga una licencia de tres años para el uso de software, si ya se tiene una cuenta se deberá iniciar sesión para proceder a seleccionar las características del software del cual se va a descargar, caso contrario se deberá crear una cuanta.
-
En caso de no tener la cuenta y dar clic en el botón “CREAR UNA CUENTA” se abrirá un formulario, el cual pedirá datos de país, función, y fecha de nacimiento.
-
Al llenar el formulario llegará un mensaje al correo ingresado el cual contendrá un enlace para la verificación del correo valido
-
Se descargará un archivo el cual servirá la para gestionar la instalación del producto
-
Luego de haber dado clic en instalar se deberá escoger las herramientas que se desea instalar, para este caso únicamente se dejará seleccionado Autodesk Maya 2018.
-
Luego de esto se deberá esperar a que el proceso de instalación termine y la herramienta Audesk Maya estará lista para ser utilizada.
​
Marcadores
La herramienta Vuforia cuenta con una opción denominada Vuforia Target Manager, esta es una herramienta basada en la web que le permite crear y gestionar bases de datos de destino en línea, dentro de los tipos de base de datos que Vuforia permite están:
​
-
Device
-
VuMark
-
Cloud
​
​
El tipo device corresponde a bases de datos locales de imágenes u objetos cuyos datos están almacenados en el dispositivo del usuario, una de las principales ventajas es el rápido reconocimiento de Imagen, Cilindro o Multi-Objetos, se utilizan cuando el aplicativo no necesita cambiar el conjunto de objetos con mucha frecuencia. Los parámetros que se definen para un target difieren según el tipo de objetivo, al igual que el flujo de trabajo para asignar y configurar archivos de destino, como imágenes y archivos de datos de objeto
​
Para la carga de marcadores dentro de la plataforma Vuforia se debe:
-
primero se debe ingresar a la pagina web de vuforia y loguearse.
-
se crea un base de datos
-
dentro de la base de datos se carga las images que se desea reconocer como marcador
-
se obtiene la base de datos de marcadores

Estructura de la Aplicación
​
Para iniciar con el desarrollo de una aplicación de realidad aumentada dentro de la herramienta Unity se debe especificar que el tipo de proyecto, en este caso: proyecto 3D.
Nota: El Rating Mínimo para que un marcador se considere bueno es de 3 estrellas
​

Además de la configuración del proyecto, se debe reemplazar la cámara por defecto proporcionada por Unity por una cámara proporcionada por el SDK de realidad aumentada, en este caso específico: Vuforia, la cual se encuentra en la opción: GameObjects -> Vuforia -> AR camera

En esta nueva cámara se debe colocar un elemento denominado Image, que será el encargado de cargar el marcador contenido dentro de la base de datos de Vufuria (creado previamente), éste podría ser considerado uno de los pasos más cruciales dentro del proceso, ya que esta Image será detectada mediante la cámara y dentro de ella se asociará el objeto tridimensional; este objeto se encuentra dentro de GameObject -> Vuforia -> Image

Una vez creado el Image Target se procede a importar la base de datos de Vufuria dentro del proyecto, en la cual ya se encuentran todos los marcadores creados con anterioridad y que serán asociados a un modelo 3D. Para que esto último suceda se debe arrastrar el archivo con extensión “unitypackage” al proyecto. Cuando el Image Target se encuentre en el panel de propiedades se deberá escoger la base de datos y el marcador con el que se desea trabajar

Cumplido el proceso descrito, se importa el objeto 3D que se asociará al marcador, para lo cual se debe arrastrar hacia el espacio de trabajo denominado Assets y posteriormente ser colocado dentro de la escena para completar el proceso de asociación

Inicialmente es necesario configurar las variables SDK y JDK correspondientes a Android, dentro de la opción Edit de la barra de menú se encuentra la opción Preferences, que abre una ventana en cuyo costado izquierdo se tiene la opción llamada External Tools y dentro de ella se deberán colocar las rutas de los archivos solicitados

Una vez establecidas las variables de funcionamiento de Android se debe configurar el aplicativo para lo cual se deberá acceder a la opción de Build Settings mediante la barra de menú o de una manera más rápida ocupando la combinación de teclas Ctrl+ Shift+B.
Una vez se haya accedido a dichas configuraciones, se abre una ventana en la que debe seleccionarse la plataforma sobre la que se desea trabajar. Para el proyecto en desarrollo: plataforma Android, posteriormente se procede a dar clic sobre el botón de Player Settings

​
Al presionar el botón Player Settings se desplegará en la parte derecha del entorno de Unity un menú de configuración de distintos parámetros
​
-
Resolution and Presentation: Permite realizar ajustes para la resolución de pantalla y otros detalles de presentación como si el aplicativo debería estar por defecto en un modo de pantalla completa.
​
-
Icon: Esta opción permite colocar el icono del aplicativo.
​
-
Splash Image: En esta sección se coloca la imagen que es mostrada mientras el aplicativo se está iniciando.
​
-
Other Settings: Permite la configuración de cualquiera de los ajustes específicos de la plataforma.
​
-
Publishing Settings: En esta sección se podrá configurar detalles acerca de cómo la aplicación construida es preparada para su lanzamiento desde la app store o página web.
-
XR Settings: Dentro de estas opciones se podrá realizar la configuración sobre los complementos de realidad aumentada.

Finalmente, una vez terminadas todas las configuraciones de los aspectos respectivos con la plataforma Android se procede a deployar la aplicación mediante la pantalla construir, al pulsar el botón Build, el software solicitará la ruta en la que se desea guardar el archivo del aplicativo, mismo que se genera con una extensión apk.
SCRIPTS
​
Dentro de la creación del aplicativo de vuforia se debe crear varios scripts o funcionalidades para comportamientos un tanto especiales dentro del aplicativo movil, dichos scripts se los creo en lenguaje C#
​
AUTO FOCUS PARA CAMARA
​
using UnityEngine;
using System.Collections;
using Vuforia;
public class CameraFocusController : MonoBehaviour {
private bool mVuforiaStarted = false;
void Start ()
{
VuforiaARController vuforia = VuforiaARController.Instance;
if (vuforia != null)
vuforia.RegisterVuforiaStartedCallback(StartAfterVuforia);
}
private void StartAfterVuforia()
{
mVuforiaStarted = true;
SetAutofocus();
}
void OnApplicationPause(bool pause)
{
if (!pause)
{
if (mVuforiaStarted)
{
SetAutofocus();
}
}
}
private void SetAutofocus()
{
if (CameraDevice.Instance.SetFocusMode(CameraDevice.FocusMode.FOCUS_MODE_CONTINUOUSAUTO))
{
Debug.Log("AutoFocus");
}
else
{
Debug.Log("El dispositivo no soporta AutoFocus");
}
}
}
​
CONTROLES DE REPRODUCTOR DE VIDEO
​
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Video;
[RequireComponent(typeof(VideoPlayer))]
public class VideoPlayerController : MonoBehaviour {
private VideoPlayer player;
private void Awake()
{
player = GetComponent<VideoPlayer>();
}
private void OnEnable()
{
player.prepareCompleted += OnPreparedCompleted;
}
private void OnPreparedCompleted(VideoPlayer source)
{
source.Play();
}
public void PlayCurrentClip()
{
if (player.isPlaying)
{
player.Pause();
}
else {
if (!player.isPrepared)
{
player.Prepare();
}
else
{
player.Play();
}
}
}
public void StopPlay()
{
player.Stop();
}
public void ResetPlay()
{
player.Stop();
player.time = 0f;
}
public void PausePlayer()
{
player.Pause();
}
public void SeekPlayer(float perc)
{
if (perc > 100)
{
perc = 100;
}else if (perc < 0)
{
perc = 0;
}
perc /= 100;
player.Pause();
player.frame = (long)(perc * player.frameCount);
}
}
​
​
ROTACIÓN AUTOMÁTICA DE OBJETOS
​
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Rotacion : MonoBehaviour {
= void Start () {
}
void Update () {
transform.Rotate( new Vector3(0,0.5f,0));
}
}
NAVEGACIÓN ENTRE ESCENAS
using System.Collections;
using System.Collections.Generic;
using UnityEngine.SceneManagement;
using UnityEngine;
public class OptionManager : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
public void caragar(string laguna)
{
SceneManager.LoadScene(laguna);
}
public void cerrar()
{
Application.Quit();
}
}
APLICAR FUNCIÓN DE ATRÁS
​
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class NavegacionAtras : MonoBehaviour {
int escenaMenu;
// Use this for initialization
void Start()
{
escenaMenu = 0;
}
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.Escape))
SceneManager.LoadScene(escenaMenu);
}
}
​
​
APLICACIÓN DE FUNCIÓN SALIR
​
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class ControlEscena : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if (Input.GetKeyDown(KeyCode.Escape))
Application.Quit();
}
}
​
Manual de Usuario de la App
A continuación, se detalla cada uno de los pasos a seguir para utilizar ImbaLake 3D, que es una aplicación con realidad aumentada que tiene como temática promocionar las cinco lagunas de la provincia de Imbabura: San Pablo, Yahuarcocha, Cuicocha, Puruhanta, Mojanda.
​
​La aplicación consta de cuatro funcionalidades por cada laguna: leer un marcador y proyectar un modelo 3D de la laguna elegida, proyectar un video, visualizar una galería de imágenes y mostrar información sobre el sitio elegido.
1. Una vez instalada la aplicación en el dispositivo móvil, se procede a abrirla con lo que muestra primera pantalla que contiene el menú de funcionalidades de la misma. La primera vez es necesario otorgar permisos para acceder a la cámara.
​
​
​
​
​
​
​
​
​
2. Los marcadores que se van a utilizar son los siguientes:
-
San Pablo
​
​
​
​
​
​
​
-
Yahuarcocha
​
​
​
​
​
​
​
-
Cuicocha
​
​
​
​
​
​
​
-
Puruhanta
​
​
​
​
​
​
​
-
Mojanda
​
​
​
​
​
​
​
​
3. Al dar clic sobre el botón que corresponde a una de las lagunas, se abrirá otra pantalla donde se mostrarán 4 botones con las funcionalidades ya especificadas al inicio. Cada nueva pantalla que se abra cuenta con un botón que permite regresar a la pantalla anterior.
​
​
​
​
​
​
​
​
​
​
4. Al elegir la opción de “Realidad Aumentada” se abrirá la cámara del dispositivo para leer el marcador y sobreponer el modelo 3D de la laguna seleccionada.
​
​
​
​
​
​
​
​
​
​
​
​
5. Al elegir la opción de “Video” se reproducirá un video promocional de la laguna seleccionada como destino turístico; además, la pantalla cuenta con botones de control para pausar, reproducir y detener el video.
​
​
​
​
​
​
​
​
​
​
6. Al elegir la opción de “Galería”, se mostrará una serie de imágenes que describen el paisaje de San Pablo.
​
​
​
​
​
​
​
​
​
​
7. Y la última opción de “Información”, muestra una pantalla de datos informativos relevantes acerca del sitio turístico San Pablo.
​
​
​
​
​
​
​
​
​
​
​
​
​
​
Se debe repetir el proceso para cada una de las lagunas consideradas en el proyecto.
​
​
​
​
​
​
​
​
​











