Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Mobile Development
Code

Realidad Aumentada del Estilo de Pokémon GO con Vuforia

by
Difficulty:BeginnerLength:MediumLanguages:
This post is part of a series called Create a Pokémon GO Style Augmented Reality Game With Vuforia.
Create a Pokémon GO Style Augmented Reality Game With Vuforia

Spanish (Español) translation by Javier Salesi (you can also view the original English article)

1. Introducción

Gracias al tremendo éxito de Pokémon GO, la realidad aumentada (RA) está llamando mucho la atención en el mundo del desarrollo móvil. La idea de realidad aumentada no es nuevo, pero sólo ahora la tecnología se está acercando finalmente a la madurez y viabilidad comercial. ¿Pero qué es exactamente realidad aumentada?

Éste es un concepto realmente amplio que puede tomar muchas formas diferentes. La idea puede ser aplicada al entretenimiento, ciencia, ejército, educación, cualquier cosa. Aunque lo que tienen en común éstas aplicaciones, es una conexión de tiempo real entre el mundo físico y el digital.

Una visión directa o indirecta de un entorno físico del mundo real cuyos elementos son aumentados (o suplementados) por información sensorial generada por computadora como datos de sonido, video, gráficos o GPS. -Wikipedia

Concretamiente, RA es frecuentemente realizada en experiencias interactivas que sobreexponen objetos 2D o 3D en la pantalla de una cámara, informados por los datos de algún sensor.

Sin embargo, creando una experiencia entretenida de realidad aumentada dede cero puede ser un verdadero desafío. Afortunadamente, hay algunas soluciones disponibles que pueden facilitar éste trabajo. Uno de las herramientas más sólidas de realidad aumentada que existen es Vuforia, una librería de RA que es compatible con Android, iOS, UWP, y algunas marcas de gafas inteligentes.

En éste tutorial exploraremos realidad aumentada usando Vuforia. Exploraremos las funcionalidades, posibilidades y desafíos de Vuforia, y también veremos cómo funciona el SDK y sus funciones principales. No exploraremos ningún código en éste tutorial-los siguientes tutoriales en ésta serie profundizarán sobre la codificación en Vuforia, con guías paso a paso apuntando a las principales funcionalidades de la librería.

2. Vuforia

Originalmente desarrollado por Qualcomm y recientemente adquirido por PTC, Vuforia está en su sexta versión. Su SDK está constantemente evolucionando y es compatible con Android, iOS, UWP y Unity. Desafortunadamente, Vuforia no es de código abierto, pero su rango de precio es razonable, y no hay costo inicial para desarrollo o educación. Puedes crear casi cualquier clase de experiencia de RA en las plataformas móviles más populares usando Vuforia.

2.1. ¿Cómo funciona?

Vuforia utiliza la pantalla de la cámara del dispositivo combinada con datos del acelerómetro y del giroscopio para examinar el mundo. Vuforia usa la visión de la computadora para entender lo que 've' en la cámara para crear un modelo de entorno. Después de procesar los daos, el sistema puede ubicarse de manera pura y dura en el mundo, sabiendo sus coordenadas: dónde es arriba, abajo, izquierda, derecha, etc. Lo que hagas con ésto depende de tus objetivos de desarrollo.

Hay múltiples posibilidades:

  • Usando coordinadas del Mundo: Cualquier clase de objeto puede ser exhibido usando alguna referencia arbitraria, ignorando obstáculos reales pero considerando la ubicación obtenida en el mundo. El objeto puede estar fuera de la vista y continuar "existiendo" en la misma posición. Éste es un sistema similar al utilizado por Pokémon GO.
  • Reconociendo targets (objetivos): Vuforia puede buscar imágenes específicas como "targets". VuMarks, por ejemplo, una imagen del estilo de código QR altamente reconocida por el sistema, puede ser usada como puntos ancla o referencias para cualquier clase de objeto proyectado en el mundo. Una revista pudiera ser "expandida" con éste recurso, con páginas que incluyan fabulosas interacciones como videos, audios, etc.
  • Reconociendo objetos simples: objetos simples como cuadros y cilindros pueden ser reconocidos y usados como puntos ancla. Éste método es útil para reconocer paquetes y hacerlos interactivos.
  • Reconociendo objetos complejos: Vuforia también puede buscar objetos complejos, como juguetes, partes de computadoras, gadgets,etc. Esos objetos son previamente escaneados, conforme a requerimientos específicos, y después pueden ser reconocidos por el sistema. Ésta funcionalidad puede usarse, por ejemplo, para convertir juguetes en criaturas que cobran vida, o para crear asistencia interactiva en el área de la mecánica o a personas que brindan un servicio a la comunidad.
  • Buscando palabras: palabras en idioma inglés también pueden ser comprendidas por Vuforia. El sistema puede buscar palabras específicas y dirigir alguna interacción en ellas. Ésto podría ser útil para herramientas de aprendizaje para niños o para traducción de lenguaje.
  • Reconociendo el terreno del mundo: Una de las características más poderosas disponibles en Vuforia es la capacidad de reconocer el mundo como es. Vuforia le permite al usuario escanear su ambiente y puede hacer algún proceso para interpretar el mundo al crear una visión de computadora en 3D del mundo real y sus objetos. Imagina un juego similar a Pokémon GO donde los Pokemones pueden esconderse detrás de objetos reales. ¿No seria fabuloso?

2.2. Desarrollando con Vuforia

Vuforia es compatible con sistemas múltiples. Su kit de desarrollo de software (SDK) está disponible para Android, iOS, UWP y Unity. Una vez que descargues e instales el SDK, necesitarás registrarte para tener una cuenta de desarrollador y crear una clave de aplicación antes de empezar a codificar.

Aunque Vuforia es compatible con muchos sistemas, la forma más fácil de crear experiencias de RA adictivas utilizando su SDK es definitivamente usando Unity. No me malinterpretes, puedes accesar a casi todo lo que ofrece Vuforia cuando se desarrolla directamente para Android o iOS. Sin embargo, el proceso es mucho más simple cuando se usan los prefabs ofrecidos en el SDK de Vuforia para Unity.

3. Targets de Vuforia

Como se mencionó antes, Vuforia puede buscar 'targets' (objetivos) en la pantalla de la cámara para crear puntos ancla o referencias para ser usadas por experiencias de RA. Esos targets pueden asumir muchas formas, y cualquier archivo que ha sido procesado previamente por el gestor de target de Vuforia puede ser reconocido. Los targets pueden ser creados por el desarrollador o creados por el usuario durante la ejecución.

3.1

3.1. Image Targets (Objetivos Imagen)

Cualquier clase de imagen puede ser un Image Target de Vuforia. Sin embargo, mientras más detallada e intrincada es la imagen, mejor será reconocida por el algoritmo. Muchos factores serán parte del cálculo de reconocimiento, pero básicamente la imagen debe tener un nivel razonable de contraste, resolución, y elementos distintivos. Una fotografía del cielo azul no funcionaría muy bien, pero una imagen de césped funcionaría correctamente. Image Targets pueden ser incluídos en la aplicación, creados después y subidos a la aplicación a través de un sistema en la nube, o directamente creados en la aplicación por el usuario.

A image target being recognized on a application

3.2. VuMarks

Un VuMark funciona muy similarmente a un Código QR; sin embargo es mucho más versátil. Puede asumir muchas formas y colores y adaptarse a un gran número de entornos. Su mayor ventaja es que está en total conformidad con el algoritmo de reconocimiento de Vuforia y será fácilmente 'encontrado' por cualquier aplicación de RA de Vuforia. Vuforia también ofrece un plugin de Adobe Illustrator que crea VuMarks.

3.3. Cylinder y Cube Targets

También es posible usar cubos y cilindros como Image Targets. Ésto es muy apropiado para crear adicción con paquetes del producto. Una vez reconocido, el objeto primitivo es usado como un punto ancla y parece existir en la visión de la computadora del sistema, permitiendo a los objetos virtuales interactuar directamente con el primitivo. El objeto virtual pudiera rastrear la posición y orientación del objeto real, por ejemplo.

Cylinder and Cube targets

3.4. Objetos como Targets

Uno de las funcionalidades más interesantes de Vuforia es la posibilidad de reconocer objetos complejos. Un juguete, un teléfono, una placa de computadora y otras clases de objetos pueden ser usados como targets u objetivos.

Para usar éste recurso, tienes que escanear el objeto usando la herramienta Vuforia Object Scanner (escáner de objetos de Vuforia), que se ejecuta sólo en los Galaxy S6 y S7 de Samsung. El escaneo de datos es subido al Vuforia Target Manager (gestor de target de Vuforia), y el objeto escaneado será reconocido por cualquier dispositivo compatible usando esos datos.

3.5. Gestionando Targets

Hay múltiples formas de crear un target:

  • La aplicación puede incluir una serie de targets.
  • La aplicación puede recibir targets online a través del sistema en la nube ofrecido por Vuforia.
  • Los mismos usuarios pueden usar la cámara del dispositivo para crear un target.

Como desarrollador, no tienes mucho control sobre cómo el usuario creará su objetivo; todo lo que puedes hacer es proporcionar al usuario algunos consejos sobre cómo elegir una imagen apropiada como target. Sin embargo, la situación es diferente para los targets procesados usando el Target Manager.

Target Manager

El portal de desarrollador de Vuforia nos ofrece la herramienta Target Manager (Gestor de Target) para ayudar a gestionar todos los targets de nuestra aplicación. El gestor es muy fácil de usar: creas una base de datos para guardar los targets, subes un archivo que corresponde a un target, y esperas hasta que el archivo es procesado. El target recibirá un ID único y un score relacionado con que tan reconocible es y luego llegará a ser parte de la base de datos, disponible para descargarse o para almacenarse en la nube.

Hay tres diferenes tipos de base de datos de targets:

  • Device Databases son bases de datos locales de targets imágenes u objetos que son guardados en el dispositivo del usuario.
  • VuMark Databases son bases de datos locales de VuMarks que son guardados en el dispositivo del usuario.
  • Cloud Databases son bases de datos de Image Targets guardados online y consultados en internet.

4. Smart Terrain

Cuando se desarrolla una aplicación de Vuforia en Unity, hay una opción realmente emocionante, el Smart Terrain. Le permite a una aplicación replicar mallas 3D de objetos vistos por la cámara.

El proceso funciona como un escaneo, donde el usuario utiliza la cámara del dispositivo como un escaner 3D. Mientras la cámara escanea el entorno, la aplicación crea modelos 3D de los objetos reconocidos, dando a la aplicación la posibilidad de ajustar el escenario al mundo real, creando una experiencia profundamente entretenida.

5. Conclusión

Hay cientos de posibilidades para explorar con realidad aumentada, y solo estamos en la etapa inicial. Muchos creen que la RA será parte de nuestro futuro y que la usaremos diariamente. Éste es un campo que promete crecer mucho en los siguientes años, y Vuforia nos proporciona magníficas herramientas para crear experiencias cautivantes.

5.1 Lo Que Sigue

En los próximos tutoriales de ésta serie, trabajaremos con algunas de las herramientas más importantes de Vuforia. Dearrollaremos muchos experimentos pequeños para ilustrar las capacidades del SDK, y ya que Unity es el entorno más amigable con la RA, todo será desarrollado en él.

No será necesario ser un experto en Unity para seguir los tutoriales-ya que nuestro foco es el SDK de Vuforia, te ofreceré guías paso a paso que requieren solo una experiencia mínima con Unity.

Si quieres aprender un poco más de Unity, consulta algunos de los otros tutoriales.

¡Nos vemos pronto!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.