Desarrolla realidad aumentada

En esta sección iremos probando diferentes aplicaciones de desarrollo de contenido de realidad aumentada y os mostramos nuestra experiencia con ellas.

 

Desarrollar contenido (se necesitan algunos conocimientos técnicos)

 

 

 

 

 

Unity y Vuforia

Unity es un motor de videojuego multiplataforma creado por Unity Technologies. Unity está disponible como plataforma de desarrollo para Microsoft Windows, OS X o Linux.

Vuforia es una plataforma de desarrollo de aplicaciones de Realidad Aumentada (AR) y Realidad Mixta (MR) multiplataforma.

Crearemos una sencilla aplicación para Android (también disponible para iOS) de realidad aumentada integrando Unity y Vuforia.

Empezaremos descargando Unity 2019 en su página.

Al instalar nos dará a elegir los paquetes que deseamos incluir. Seleccionaremos Vuforia Augmented Reality Support. El proceso suele tardar unos minutos.

Descargaremos e instalaremos también el SDK de Google en su página, donde pulsaremos sobre Download Android Studio.

En la pantalla de selección del SDK marcamos Android 6.0 (API 23) ya que probaremos en un móvil con Android 7.0 y queremos que sean compatibles. Se pueden descargar más posteriormente desde el SDK de Android Studio si es necesario.

El siguiente paso será registrarnos en Vuforia y subir nuestro target sobre el que situaremos nuestros objetos 3D. En la siguiente página pulsaremos sobre register y pondremos nuestros datos. Tras el proceso, pulsaremos sobre Get Development Key, y completaremos con el nombre de nuestra aplicación y marcaremos sobre el check del acuerdo.

 

Vuforia registro

Vuforia key

Después pulsaremos sobre Target Manager para crear una base de datos con nuestra imagen (target). En esta pantalla pulsaremos sobre Add database y completaremos con el nombre de la base de datos.

vuforia database

El siguiente paso es pulsar sobre la base de datos creada y crear un nuevo target con la imagen (marcador o imagen objetivo). Nosotros utilizaremos el siguiente:

marcador AR

Descargaremos también algún objeto 3d. Nosotros obtuvimos un dragón de free3d.

Ahora ejecutaremos Unity, dando nombre a nuestro proyecto (en nuestro caso arpinpan) y pulsando sobre Create Project. A continuación eliminaremos la cámara por defecto Main camera y crearemos la nuestra.

En el menú superior elegimos GameObject-Vuforia Engine-Image. Ahora arrastramos y soltamos nuestro objeto 3d (en nuestro caso el dragón) sobre la nueva imagen creada y lo colocamos a nuestro gusto.

Unity dragon

También añadiremos una cámara que será la del dispositivo desde el que usemos la app: GameObject-Vuforia Engine-ImageAR Camera. Enfocaremos la cámara hacia el target y el dragón.

Unity 2019 image target

Unity cámara

Una vez agregada, la seleccionaremos y pulsaremos sobre Open Vuforia Engine Configuration.

Unity 2019 ar camera key

En el siguiente menú introduciremos la clave que nos dieron al registrarnos en la web de vuforia.

Unity 2019 key

 

 

Así queda la escena Unity tras añadir todos los objetos:

Unity vuforia final

Para compilar nuestra aplicación pulsaremos sobre File-Build Settings. Pulsamos sobre Switch Android y cuando termine la sincronización, sobre build:

Instalaremos el archivo .apk generado en nuestro móvil Android, escanearemos el target. El resultado es el siguiente:

 

 

 

Onirix SDK

Con Onirix SDK se pueden crear experiencias de realidad aumentada personalizadas casi sin esfuerzo. Este componente de la plataforma Onirix, permite a los desarrolladores despreocuparse de las complejidades de la realidad aumentada, su SDK lo hace por ti.

Onirix desarrolladores

Nosotros desarrollaremos una aplicación con objetivos en modo superficie siguiendo el tutorial de Onirix. Elegimos esta opción porque queremos visualizar objetos en cualquier superficie que elijamos.

Los recursos que necesitaremos serán los siguientes:

Comenzaremos creando un proyecto de objetivos (Targets) en Onirix Studio.

Onirix nuevo proyecto

En este proyecto incluiremos un nuevo target surface (objetivo superficie) e introduciremos algunos objetos 2D y 3D (assets).

Onirix target surface

Onirix dev assets

El siguiente paso es descargar Unity (al menos la versión 2018.2.7) en su página, instalarlo y crear un nuevo proyecto, asignando el nombre que quieras. Nosotros hemos utilizado la versión 2018.3.13 de Unity.

Onirix nuevo proyecto

Descargaremos el último paquete Onirix en el siguiente enlace. Con este SDK podremos colocar contenido virtual sobre cualquier imagen o superficie.

Una vez descargado haremos doble click sobre el paquete y pulsaremos sobre import. De esta forma incluiremos Onirix en nuestro proyecto Unity.

Onirix importar sdk

Llegados a este punto disponemos de dos opciones: usar el OnirixScene provisto con el SDK o construir su aplicación desde cero. Nosotros seguiremos con la primera opción por ser más sencilla y para familiarizarnos con el entorno de Onirix.

Arrastraremos onirixscene desde Assets-OnirixMobileSDK-Scenes a nuestro proyecto y eliminaremos el SampleScene creado por Unity por defecto.

Onirix eliminar escenar por defecto

Ahora eliminaremos el Onirix Default Controller, el Onirix UI Manager y los Onirix Touch Manager del objeto Onirix. Para ello haremos click en sus respectivos iconos de engranaje y pulsaremos sobre remove component.

Ahora crearemos una carpeta para contener nuestros scripts y crearemos uno en C# llamado MainController.

Onirix crear carpeta

Onirix crear script

Onirix main controller

Abriremos este script e incluiremos las siguientes lineas:

    using UnityEngine;
    using UnityEngine.UI;

    [SerializeField] private string _targetOid;
    [SerializeField] private Button _loadTargetButton;
    [SerializeField] private Text _statusText;

Además deberemos incluir estas otras instrucciones para evitar que el móvil entre en modo de suspensión, el comportamiento del botón o iniciar la detección de superficie.

El fichero MainController final lo podemos encontrar en el repositorio github de Onirix.

Ahora incluiremos este script al objeto de la escena, arrastrando el script y soltándolo debajo del último componente de la escena Onirix.

Onirix arrastrar maincontroller

En el siguiente paso crearemos una instancia de Canvas en la jerarquía y estableceremos la resolución de referencia (en nuestro caso 1920×1080).

 

Onirix crear canvas

Para ello, modificaremos el componente Canvas Scaler, estableciendo el UI Scale Mode a Scale With Screen Size.

Onirix canvas scale

Ahora añadiremos al canvas un botón (con texto Cargar destino) y un texto (Mirar alrededor para detectar superficies). El texto lo colocaremos centrado en la parte superior (top center). Además, modificaremos el párrafo para que el texto quede centrado.

Onirix canvas texto

ONirix canvas texto2

Ahora arrastraremos el texto y botón creados al script main controller.

Onirix texto y botón

Para continuar vincularemos nuestra aplicación con Onirix Studio. Para ello copiaremos los OID del proyecto y de nuestro objetivo para pegarlos en Unity.

Primero, copiaremos el OID del proyecto en Onirix Studio, y lo pegaremos en el apartado OID del script OnirixAuthManager en el inspector de Unity.

Onirix OID de proyecto

OID proyecto Unity

Ahora haremos lo propio con el OID del objetivo. 

OID del target Onirix

Onirix SDK oid

Una vez que ya tenemos conectada la aplicación a Onirix, sólo nos queda exportarla para Android (también se puede para iOS).

Haremos click en Edit – Project settings – Graphics. Nos deslizaremos hacia abajo hasta llegar a Shader preloading.

Precarga shaders

Ahora exportaremos a Android haciendo clic en File – Build Settings. Una vez en esta ventana seleccionaremos Android y pulsaremos sobre Switch Platform.

Android build settings

Una vez finalizado el proceso pulsaremos sobre player settings para configurar lo siguiente:

  • Sección XR
    • Marque la casilla de verificación compatible con ARCore .
  • Otros ajustes
    • Desmarque la casilla de verificación Procesamiento multiproceso .
    • Escriba el nombre del paquete de su elección.
    • Establezca Android 7.0 ‘Nougat’ (nivel de API 24) como nivel de API mínimo .
    • Establezca Automático (el más alto instalado) para el Nivel de API de destino .
    • Elija .NET 2.0 en lugar de .NET 2.0 Subset como nivel de compatibilidad de API .
    • Marque la casilla de verificación Permitir código “inseguro” .
  • Configuración de publicación
    • Opcionalmente, puede especificar el almacén de claves de su elección y completar la información de firma si desea realizar una compilación de lanzamiento.

Onirix SDK player settings

Finalmente pulsaremos sobe el botón de build y obtendremos el archivo .apk listo para instalar en un móvil o tablet Android.

Tras instalar la aplicación en nuestro móvil, el resultado es el siguiente: