23
GUIA DEL RETO 1: Fundamentos de programación de realidad aumentada VUFORIA – UNITY3D Tipo de documento Guion Reto 1 Fundamentos de programación de realidad aumentada Código del documento Revisión 1.0 Nº total de páginas 23 Elaborado por Felipe Martínez Álvarez Modificaciones respecto a la revisión anterior Lista de distribución Revisado por Aprobado por

Guia Reto 1 - Fundamentos de programación de realidad aumentada

Embed Size (px)

Citation preview

GUIA DEL RETO 1:

Fundamentos de programación de realidad aumentada

VUFORIA – UNITY3D Tipo de documento Guion Reto 1 Fundamentos de programación de realidad aumentada Código del documento

Revisión 1.0

Nº total de páginas 23

Elaborado por Felipe Martínez Álvarez Modificaciones respecto a la revisión anterior Lista de distribución Revisado por

Aprobado por

º

Página 2 de 23

ÍNDICE

1. RETO : MI PRIMERA APLICACIÓN DE REALIDAD AUMENTADA CON VUFORIA ........................... 3 1.1. Overview Vuforia ................................................................................................................................ 3 1.2. Instalación Software ........................................................................................................................... 6 1.3. Entorno Unity .................................................................................................................................... 14 1.4. Target Manager ................................................................................................................................. 18

º

Página 3 de 23

1. RETO: FUNDAMENTOS DE PROGRAMACIÓN DE REALIDAD AUMENTADA

[Video Introductorio]

La Realidad Aumentada nos permite la superposición de un entorno virtual en 2D/3D al contenido real que estamos visualizando con nuestros dispositivos en un momento determinado mediante el reconocimiento de patrones o imágenes. Vuforia es un increíble SDK de Realidad Aumenta desarrollado por Qualcomm que nos facilita este reconocimiento de patrones o imágenes y del cual vamos a hablar con más detalles a lo largo del curso. Nos serviremos del interfaz gráfico que nos facilita Unity como motor de desarrollo para programación de videojuegos para implementar nuestras aplicaciones en un entorno multiplataforma. En este reto vas a aprender a moverte por el entorno de Unity haciendo uso del SDK de Vuforia y vas a poder crear tus primeras aplicaciones que podrás ejecutar en tu propio Smartphone o, si no tienes, en un entorno simulado de Unity. Acepta el reto y aprende a crear tus propias aplicaciones de Realidad Aumentada como base o complemento de tu negocio.

1.1. Overview Vuforia

[ScreenCast de Websites // Videos de Fondo // Transparencias]

[ScreenCast con el Mobil de funcionalidades de nuestro juego FutbolReal]

Generalidades: Vuforia es un SDK que permite construcción de apps que hagan uso de realidad aumentada a través del reconocimiento de patrones.Vuforia ha sufrido un fuerte crecimiento en los últimos años contando con una comunidad de 42.000 desarrolladores registrados y un conjunto de 2500 apps desarrolladas. Existen multitud de ámbitos de uso donde utilizar Realidad Aumentada: Por ejemplo tenemos apps de: Juegos: Con capacidad de detectar la acción desde cualquier ángulo; respuesta a eventos físicos. Instructivas o Educacionales: Usando tu dispositivo como un manual de usuario con instrucciones visualmente interactivas. Interactivas: Mejorando las experiencias de usuario desde un punto de vista empresarial y de uso.

º

Página 4 de 23

Visión basada en Realidad Aumentada Funcionamiento de Vuforia Desde el punto de vista operativo Vuforia permite el reconocimiento de los siguientes patrones:

• Imágenes de Librería • Objetos 3D • Frame Markers u Imágenes Predefinidas • Imágenes de Usuario

Por otro lado nos permite aumentar nuestra creatividad haciendo uso de:

• Botones Virtuales • Gestión de Oclusión • Recursos multimedia: video, audio, etc. • Características propias del entorno asociado: Unity, Android, etc.

Oferta de Vuforia

º

Página 5 de 23

Oferta de Vuforia

Evolución de Versión

Componentes del Sistema

º

Página 6 de 23

Entornos Disponibles

1.2. Instalación Software Dependiendo del sistema operativo tendremos que realizar una instalación u otra ,empezaremos realizando la instalación enWindows8 WINDOWS8/PC: Paso 1: Instalación de Java Abriremos la página oficial Oracle para descargarnos el JDK de Java: http://www.oracle.com/technetwork/java/javase/downloads/index.htmly pulsamos sobre el botón “Download”. Nos aparecerá una nueva pantalla donde tendremos que aceptar los términos de la licencia y podremos elegir la versión específica para nuestro Sistema Operativo, en nuestro caso será la versión de 32 o 64 bits para Windows dependiendo de la versión de Windows que estemos corriendo. Hacemos click sobre el fichero para iniciar la descarga.

º

Página 7 de 23

Una vez finalizada la instalación deberemos comprobar que la variable del sistema JAVA_HOME está correctamente configurada y apunta a la ruta correcta. Para realizar esta comprobación nos dirigimos a la siguiente ruta: Panel de Control > Sistema y Seguridad > Sistema > Configuración avanzada del sistema > Variables de entorno o bien desde la búsqueda de Windows teclear “Variables de Entorno”. Si la variable no estuviese creada pulsamos sobre el botón de “Nueva” y asignamos la ruta de instalación de nuestra versión de Java.

Paso2: Instalación del SDK de Android Abriremos la página oficial de Android para descargarnos el SDK: http://developer.android.com/sdk/index.html y pulsaremos sobre el enlace desplegable “DOWNLOAD FOR OTHER PLATFORMS” Dentro del apartado de “SDK tools Only” pulsaremos sobre el fichero “android-sdk_rXX.X-windows.zip” Se descomprime el fichero zip y renombramos la carpeta final que contendrá el SDK. Paso 3: Descarga de Paquetes desde el Android SDK Manager Una vez que tenemos instalado el SDK de Android deberemos descargarnos los diferentes paquetes que ofrece Google para cada una de las versiones del SDK. Por defecto seleccionamos todos los paquetes y pulsamos sobre el botón “Install” para iniciar la descarga.

º

Página 8 de 23

Paso4: Instalación de Unity Abriremos la página oficial de Unity: http://www.unity3d.com/ y pulsaremos sobre el enlace de Download.

Pulsaremos sobre el botón de Download Unity para descargarnos el software de Unity correspondiente a la última versión disponible (UnitySetup.X.X.X.exe). Ejecutamos el instalable descargado. Paso 5: Registro como desarrollador de Vuforia

º

Página 9 de 23

Es necesario registrarse como desarrollador para poder descargar el SDK de Vuforia. Para registrarse nos dirigimos a la página: https://developer.vuforia.com/user/register y completamos el formulario de registro Paso6: Instalación del SDK Vuforia para Unity Abriremos la página oficial de Vuforia para descargarnos el SDK:https://developer.vuforia.com/resources/sdk/unityy pulsaremos sobre el enlace “Download Unity Extensión X.X.X foro Android” nos aparecerá una pantalla para introducir nuestros datos de registro como desarrollador de Vuforia , introducimos estos datos(Email y Contraseña) y pulsamos sobre el botón “Log in”.

º

Página 10 de 23

Este instalable no es compatible con Windows8 por lo que tendremos que ejecutarlo en modo de compatibilidad con Windows7 ya que si no nos dará un error. Deberemos copiarnos el paquete que nos ha creado la instalación de Vuforia dentro de la instalación de Unity concretamente dentro de la carpeta Editor >Stándar Package de esta forma podremos disponer del paquete Vuforia al crear un nuevo proyecto. iOS/MAC: A continuación vamos a continuar viendo la instalación en sistemas iOs/Mac. Si disponemos de un Mac podremos hacer despliegue de apps sobre iOs y Android , instala solamente la plataforma final que vayas a utilizar. Paso 1: Instalación de Java (Solamente si desarrollamos sobre Android) Abriremos la página oficial Oracle para descargarnos el JDK de Java: http://www.oracle.com/technetwork/java/javase/downloads/index.htmly pulsamos sobre el botón “Download”. Nos aparecerá una nueva pantalla donde tendremos que aceptar los términos de la licencia y podremos elegir la versión específica para nuestro Sistema Operativo, en nuestra caso será la versión de 64 bits para Mac Os. Hacemos click sobre el fichero para iniciar la descarga. Ejecutamos el instalable descargado.

Paso 2: Instalación del SDK de Android Abriremos la página oficial de Android para descargarnos el SDK: http://developer.android.com/sdk/index.html y pulsaremos sobre el enlace desplegable “DOWNLOAD FOR OTHER PLATFORMS” Dentro del aparatado de ADT Bundle pulsaremos la versión para Mac Os “adt_bundle_mac-x86_64_YYYYMMDD.zip”. Las versiones bundle contienen una versión de Eclipse configurada especialmente para trabajar con Android.

º

Página 11 de 23

Descomprimimos el zip descargado , dentro de la carpeta que se ha creado al descomprimir el zip podemos encontrar el SDK de Android y una versión específica de Eclipse. Renombramos la carpeta y la copiamos en a otra localización del disco duro.

Paso 3: Descarga de Paquetes desde el Android SDK Manager Abriremos Eclipse ,tenderemos que indicarse un espacio de trabajo. Seguidamente iniciamos el SDK Manager desde la opción del menú Windows > Android SDK Manager. Seleccionamos todos los paquetes no instalados desde la opción “new”. Pulsamos sobre el botón “Install Packages” para iniciar la descarga y aceptamos las licencias de uso. Paso 4: Instalación de Xcode/iOs (Solamente si desarrollamos sobre iOs) Abriremos el App Store desde el dock y haremos una búsqueda por “Xcode”. Introduciremos nuestro identificador de registro y contraseña, en caso de carecer identificador tendremos que registrarnos antes de descargar el software. Iniciamos la instalación pulsando sobre el botón “Instalar”, por defecto el software se instalara en la ruta “Applications >Xcode.app”

º

Página 12 de 23

Opcionalmente podemos realizar la descarga desde la web http://developer.apple.com/. Paso 5: Instalación de Unity Abriremos la página oficial de Unity: http://www.unity3d.com/y pulsaremos sobre el enlace de Download.

A continuación pulsaremos el botón de Download Unity para descargarnos el software de Unity correspondiente a la última versión disponible (UnitySetup.X.X.X.exe). Ejecutamos el instalable descargado y seleccionamos el paquete de instalación Unity.pkg. Aceptamos licencias e instalamos en la ruta por defecto.

º

Página 13 de 23

Paso 6: Registro como desarrollador de Vuforia Enlace Paso 7 Instalación del SDK Vuforia para Unity Abriremos la página oficial de Vuforia para descargarnos el SDK: https://developer.vuforia.com/resources/sdk/unityy pulsaremos sobre el enlace “Download Unity Extensión X.X.X for Android and iOS” nos aparecerá una pantalla para introducir nuestros datos de registro como desarrollados de Vuforia , introducimos estos datos(Email y Contraseña) y pulsamos sobre el botón “Log in”. Descomprimimos el zip descargado e iniciamos el ejecutable de la instalación. Aceptamos licencias e instalamos en la ruta por defecto. Deberemos copiarnos el paquete que nos ha creado la instalación de Vuforia dentro de la instalación de Unity concretamente dentro de la carpeta Editor > Stándar Package de esta forma podremos disponer del paquete Vuforia al crear un nuevo proyecto. COMPROBAR ENTORNO: Finalmente vamos ejecutar Unity para comprobar que el entorno está correctamente configurado. Al iniciar Unity por primera vez nos solicitara el tipo de licencias que queremos usar, tendremos que indicarle que queremos hacer uso de la versión Pro durante 30 días para probar el producto sin ninguna limitación. A continuación nos solicitara una cuenta de usuario que tendremos que crear pulsando sobre el botón “Create Account”. Introducimos un email y una contraseña para activar nuestra cuenta. Nos dirigimos al menú Edit > Preferences… para mostrar la pantalla de preferencias generales de Unity. Pulsamos sobre el apartado External Tools ,dentro de esta ventana nos aparecerá el editor de código que tenemos asociado en la opción de “External Script Editor” , podemos elegir cualquier editor de los que tengamos instalados en nuestro equipo. Dentro del apartado “Android SDK Location” tendremos que confirmar que la ruta asociada al sdk de android se corresponde con la adecuada, de no ser así habría que cambiarla. También activaremos la casilla “iOs Xcode 4.x Support”

º

Página 14 de 23

También vamos a cambiar el aspecto visual del entorno seleccionando el skin “Light” desde el apartado General > Skin (Pro Only)

1.3. Entorno Unity

[ScreenCast de Websites // Video de Fondo]

Websites Página Oficial http://unity3d.com Documentación Oficial sobre Unity http://unity3d.com/company/support/documentation/ Página de la comunidad hispanohablante: http://www.unityspain.com/ Asset Store : http://unity3d.com/asset-store/ WIKI Unity : http://wiki.unity3d.com/index.php/Main_Page Foro Oficial de Unity: http://forum.unity3d.com/forum.php

º

Página 15 de 23

Que es Unity3D Es un motor de desarrollo especializado en la creación de juegos 2D/3D y aplicaciones interactivas. Entorno Grafico para la edición visual y jerárquica de los elementos gráficos que intervienen en las

escenas de un juego/app Soporta el desarrollo de apps/juegos para múltiples plataformas. No es una herramienta de modelado 3D ,pero puede importar objetos creados desde otro software de

modelado como 3ds Max, Maya, Blender …etc Características de Unity Construcción de objetos propias Rendering & Luces Física de Elementos Audio Comunicaciones Cualquier elementos que necesites para la construcción de un juego actual mediantes

extensiones o paquetes. Scripting Desarrollo usando Mono – Software Libre basado en .Net Soporta varios lenguajes de programación como C#, JavaScript o Boo

Sistema basado en componentes flexibles Uso de Objetos simples como base del desarrollo Reutilización de objetos

Funcionalidades del Paquete Vuforia para Unity Representación visual de los objetos detectados en la escena Los objetos detectables soportan la edición mediante scripts Soporta los requisitos de cualquier aplicación que implemente Realidad Aumentada Reconocimiento de objetos 2D/3D almacenados localmente o en la nube. Configuración automática de la cámara del dispositivo para adaptarla a la proyección de la escena

representada Aplicación de transparencias a los objetos virtuales de la escena

º

Página 16 de 23

[Sceencast]

Vistas de Unity Vamos a familiarizarnos con el entorno de trabajo que usaremos a lo largo del curso. La pantalla principal de Unity se compone de diferentes vistas, así pues tenemos: 1. Scene View o Vista de Escena. Es la vista de la escena, y permite añadir nuevos objetos en ella ,

seleccionarlos , editar el escenario, etc. En esta vista destacamos los siguientes atajos: 1- Seleccionando cualquier objeto de la escena y pulsando la tecla “f” centraremos la vista sobre el

objeto seleccionado. 2- Pulsando la tecla “espaciadora” maximizamos/restauramos la vista actual. 3- Haciendo Scrolling con la rueda del ratón podremos haber zoom aumento/disminución sobre la

escena. 4- Pulsando la rueda de ratón y arrastrando (drag&drop) activaremos la herramienta mano para

poder movernos alrededor de la vista de la escena.

2. Game View o Vista de Juego – Es la vista del videojuego y muestra cómo se verá la aplicación al ejecutarse. Nos servirá de emulador si no disponemos de dispositivos físicos haciendo uso de una webcam.

3. Hierarchy View o Vista de Jerarquía.– Es la vista de jerarquía y muestra la lista de todos los objetos

que hay ahora mismo en la escena, ordenados alfabéticamente. Nos permitirá seleccionarlos fácilmente a partir de su nombre en lugar de buscarlos en la escena.

4. Project View o Vista de Proyecto – Es la vista del proyecto y muestra la lista de todos los assets

(recursos) que hay disponibles para usar en la aplicación, ya sean sonidos, modelos 3D, texturas...

º

Página 17 de 23

5. Inspector View o Vista de Inspector – Es la vista de inspección y muestra una lista con todas las

propiedades del objeto que tienes seleccionado actualmente, permitiendo modificarlas. Si no hay ningún objeto seleccionado no nos mostrará nada.

Barras de Herramientas La barra de Herramientas de Transformación se encuentra en la parte superior izquierda , está compuesta de cuatro botones que nos permitirán mover, posicionar, rotar y escalar, respectivamente.

1. La herramienta Mano: Nos permite posicionarnos dentro de la ventana de la escena .Haciendo click con el botón derecho del ratón y moviendo este podemos apreciar cómo nos movemos en un plano horizontal o vertical. Si adicionalmente pulsamos la tecla “Alt” podremos hacer rotaciones sobre la posición señalada con el cursor. Adicionalmente también podremos hacer zooms con la rueda del ratón o click con el botón derecho para rotaciones sobre la posición actual. Podemos observar como al realizar movimientos rotaciones el símbolo de la mano cambia por un ojo.

2. La herramienta Mover: Si la pulsamos mientras tenemos un objeto seleccionado, se mostrarán 3

flechas, una para cada eje en el espacio 3D. Los colores rojo, verde y azul se corresponden con los ejes x, y, z, respectivamente. Para mover un objeto hacemos click izquierdo en la flecha que represente el eje en el que quieres mover el objeto y movemos el ratón para modificar su posición. Observamos cómo cambian los valores de su posición en el panel de la Vista de Inspector. También podemos introducir directamente los valores numéricos en ese panel. Otra forma más avanzada de modificar la posición de un objeto del videojuego es hacer clic sobre él para seleccionarlo, y a continuación mover la Vista de Escena de forma que mire a la posición donde queremos mover el objeto. Si hacemos clic en las pestañas superiores y seleccionamos: Game Object> Move to View, el objeto se moverá a la posición a la que mira la cámara actualmente.

3. La herramienta Rotar: Si seleccionamos un objeto y a continuación pulsamos esta tecla se

mostrará la herramienta de rotación. Para rotar el objeto sobre cualquiera de sus ejes, mantenemos presionado click izquierdo sobre el eje que quieres rotar y mueve el ratón. De la misma manera, el panel de la Vista de Inspector también cambiará sus valores al mismo tiempo que rotamos el objeto, y podremos introducirlos manualmente si lo así lo deseamos. Otra forma más avanzada de modificar la rotación es mover la Vista de Escena de forma que mire en la dirección con la que queremos alinear el objeto. Si hacemos clic en las pestañas superiores y seleccionamos: Game Object > Align with View, el objeto se quedará alineado en la dirección a la que mira la cámara de la Vista de Escena. Esto nos será sobre todo útil para orientar luces direccionales o cámaras para que apunten a donde queremos.

4. La herramienta Redimensionar: Si seleccionamos un objeto y a continuación pulsamos esta tecla se mostrarán3 cubos pequeños correspondientes a cada uno de los ejes y un cubo más grande en el origen de coordenadas. Podemos escalar visualmente cualquier objeto haciendo clic en los cubos pequeños que aparecen en el extremo de cada eje, o bien haciendo click en el cubo que se encuentra en el origen de coordenadas para un escalado uniforme en los tres ejes. Al igual que sucedía con la traslación y la rotación podremos realizar directamente el escalado usando la Vista de Inspector tecleando los valores pertinentes.

º

Página 18 de 23

La barra de Herramientas del modo Play nos permitirán simular la ejecución de nuestra escena dentro de la Vista de Juego. Principalmente usaremos el botón de Play para iniciar la simulación y tendremos que volver a pulsarlo para detener la simulación de nuestra escena. Para poder hacer uso de esta funcionalidad en nuestras aplicaciones de Realidad Aumentada deberemos tener instalada una Webcam en nuestro ordenador.

1.4. Target Manager

[Sceencast]

El Target Manager o Gestor de Targets nos permitirá gestionar bases de datos de los targets o imágenes que usemos en el reconocimiento de patrones. Iniciaremos el Gestor dirigiéndonos a la página: https://developer.vuforia.com/target-managerdonde introduciremos nuestro email y contraseña que previamente habíamos usado al registrarnos como desarrolladores de Vuforia.

º

Página 19 de 23

Nos aparecerá una pantalla con dos pestañas: “Device Databases” y “ Cloud Databases”, pulsaremos sobre la primera para crearnos una base de datos que posteriormente nos podremos descargar e integrar con nuestra aplicación. Crear una BBDD Para iniciar el proceso de creación de BBDD pulsamos sobre el botón “Create Database”. Aparecerá un dialogo para introducir el nombre que deseamos para nuestra BBDD.

Una vez creada la BBDD aparecerá en la pestaña de “Devices Databases” Crear Targets 2D A continuación añadiremos imágenes o targets a nuestra BBDD. Pulsaremos sobre nuestra BBDD para poder añadir imágenes o targets pulsando sobre el botón “Add Target”. Aparecerá un dialogo donde deberás introducir los siguientes datos: Target Name: Introduciremos un nombre representativo de nuestro target o imagen Target Type: Al tratarse de una imagen simple seleccionaremos “Simple Imagen” Target Dimensión: Introduciremos el ancho en pixels de nuestra imagen

º

Página 20 de 23

Target Imagen File:Localizaremos nuestra imagen. El formato de la imagen tiene que ser JPG o PNG con un tamaño inferior a los 2 MB Finalmente pulsa sobre el botón “Add” para procesar la imagen. Nuestra imagen se mostrará dentro de la BBDD con el literal “Procesing…” Tendremos que dejar pasar unos minutos para que el sistema procese nuestra imagen y aparezca la imagen real con un índice en forma de estrellas que nos indicará las posibilidades de reconocimiento de la imagen. Si nuestra imagen obtiene menos de tres estrellas en este índice es posible que tengamos problemas de reconocimiento por lo que tendremos que modificar la imagen o usar otra como patrón de reconocimiento. Por regla general las imágenes con multitud de detalles y buen contraste obtendrán buenos índices mientras que las imágenes con patrones repetitivos o bordes no definidos obtendrán pobres resultados. Crear MultiTargets 3D Un Multi-Target consiste en un conjunto de imágenes que tienen una relación espacial fija. Mediante el uso de Multitargets podremos usar objetos 3D como patrón de reconocimiento en nuestra aplicaciones de Realidad Aumentada.

º

Página 21 de 23

A continuación añadiremos Multi-Targets a nuestra BBDD. Pulsaremos sobre nuestra BBDD para poder añadir Multi-Targets pulsando sobre el botón “Add Target”. Aparecerá un dialogo donde introducir los siguientes datos: Target Name: Introduciremos un nombre representativo de nuestro objeto 3D. Target Type: Al tratarse de un objeto 3D no uniforme seleccionaremos “Cuboid”. Target Dimensión: Introduciremos el ancho, alto y largo (en pixels) de nuestro objeto 3D basándonos en las dimensiones de las imágenes que formaran el objeto 3D. Finalmente pulsamos sobre el botón ”Add” para procesar la imagen. Nuestro objeto 3D se mostrará dentro de la BBDD con el literal “No Image” ya que todavía no le hemos asociado las imágenes que usaremos como texturas. Para poder aplicar las imágenes seleccionamos el objeto haciendo “Click” sobre él, aparecerá una pantalla donde podrás asociar las imágenes a cada una de las superficies de tu objeto 3D. Al igual que sucedía con los Targets 2D o imágenes tendremos que dejar pasar unos minutos para que el sistema procese nuestras imágenes y aparezca el objeto texturizado con nuestras imágenes.

º

Página 22 de 23

Descarga de la BBDD Una vez que hemos terminado de crear todos los targets 2D/3D que necesitemos para nuestro proyecto tendremos que descargarnos la BBDD desde el Gestor a nuestro dispositivo en Local para poder hacer uso de la BBDD desde el entorno de Unity.

Para poder iniciar la descarga de la BBDD seleccionamos el checkbox de cada uno de los targets que deseamos incluir en el Dataset que se descargará. Una vez seleccionados pulsamos sobre el botón “Download Selected Targets”.

Nos parecerá una pantalla donde indicaremos que el formato debe ser Unity. También podremos indicar un nombre de fichero para la descarga. Pulsa finalmente sobre el botón “Create” para iniciar la descarga del paquete a tu dispositivo local.

º

Página 23 de 23

Uso de la BBDD Para poder hace uso de los targets de la BBDD solamente debemos importar el paquete descargado como cualquier otro paquete de Unity.