QualComm ha añadido algunas nuevas funcionalides con la versión 1.5 de la extensión para Unity, cuando tenga un rato lo revisare y lo intentaré actualizar.
Si alguno desconocéis cual es el concepto de realidad aumentada, ved el siguiente vídeo:
Basicamente esa es la idea, ver cosas en la pantalla que en realidad no estan en la vida real.
Tras esta rápida introducción, voy a comentar como configurar
Vuforia, una plataforma de realidad aumentada para móvil desarrollada por
QualComm, que nos permite realizar aplicaciones que incluyan esta característica tanto para
Android como
iOS, aunque me concentraré en el tema de
Android y la instalación/configuración para Windows.
En la página oficial podéis encontrar
tutoriales, en los que me he basado para crear este.
Como obtener Vuforia
Nos vamos a la siguiente página,
https://developer.vuforia.com/resources/sdk/android, podemos ver que tenemos un
Getting Started, para este tuto supondremos que ya tenemos un JDK, el eclipse, el SDK de Android y el ADT. En
este tutorial explico como obtener esas cosas.
Instalar cygwin
Así que empezamos con el
cygwin, nos bajamos el
setup, lo ejecutamos y elegimos la opción de instalar desde internet, deja la ruta por defecto para instalación y el sitio para descargar paquetes donde este el
setup.exe descargado anteriormente, (lo pilla por defecto).
En la selección de paquetes elegid solamente el paquete:
All -> Devel -> "make: The GNU version of the 'make' utility"
Click en skip hasta que ponga la versión actual (3.81-2).
Y elegid el servidor para la descarga que os quede más cerca (si sois de españa seleccionad rediris).
La instalacion debería automaticamente modificar las variables de entorno, sino lo hace, añadir la ruta de la carpeta bin de cygwin a la variable path de la siguiente forma. Nos vamos a
propiedades de Mi PC (Equipo en W7),
configuración avanzada del sistema (debemos ser administradores),
variables de entorno buscamos abajo path y pinchamos en editar, nos vamos al final de la línea y añadimos un ; y la ruta de la carpeta bin completa.
Para probar que funciona abrimos un terminal escribiendo
cmd en el cuadro de búsqueda de programas del menu inicio y una vez abierto probamos a escribir
bash. Debería aparecer algo tal que así:
Instalar Android NDK
Ahora que ya tenemos instalado el cygwin, instalamos el android ndk, para ellos no lo bajamos de
aqui. Descomprimis el zip y tenemos que añadir la ruta del directorio ndk a la variable path, que si lo has dejao por defecto será algo tal que asi:
C:\Development\Android\android-ndk-r6\
No useis espacios para la ruta y la ultima barra yo la quite porque me daba problemas, aunque en el tutorial oficial dice que se ponga.
Además yo tuve que hacer un paso extra que no aparece por el tutorial oficial, nos vamos a la ruta del ndk, y tenemos que modificar el
ndk-build.cmd, añadiendole en la primera linea lo siguiente:
GNUMAKE=C:\cygwin\bin\make.exe
Es decir la ruta donde tengamos el make.exe de cygwin, si lo habeis dejado por defecto estara ahí, sino poned la ruta que tengais.
Ahora para ver si esta to correcto abrimos de nuevo un cmd, y navegamos hasta la ruta de uno de los samples que encontramos bajo el directorio del ndk, por ejemplo el de
lib_plasma, una vez en esa carpeta, escribimos bash, para abrir un interprete de cywin, y ahora escribimos:
ndk-build
Y si va todo bien se compilará la aplicación de NDK de ejemplo y aparecerá algo parecido a lo de la imagen, indicando que se ha generado la librería dinámica
libplasma.so.
Instalar QCAR SDK
Lo anterior es necesario para poder usar el sdk de QCAR, lo descargamos desde
aquí. Y seguimos las instrucciones de instalación.
Ahora debemos abrir eclipse y añadirle una classpath,
windows>preferences>java>build path pinchamos en add y escribimos
QCAR_SDK_ROOT como nombre y el directorio del ndk como ruta. Tal y como se ve en la imagen.
Y listo, ya tenemos instalado el QCAR.
Para meter aplicaciones en el móvil directamente usando el adb tienes que tener habilitado el usb debugging y permitir instalar aplicaciones desde fuentes desconocidas, aunque a mi nunca me ha reconocido los móviles que he conectado.
Compilar y ejecutar una aplicación
Vamos a probar una aplicación de ejemplo.
Nos vamos al directorio de
qcar-android-xx-yy-zz/samples/ImageTargets y escribirmos
ndk-build desde el bash de cygwin, si no os da ningún error perfecto, si os da un error parecido al de la primera imagen teneis que darle permisos al archivo que os de follones, para que podais usarlo.
Ahora que ya tenemos el shared object podemos crear el apk.
Para ello usamos el eclipse, creamos un nuevo proyecto con ImageTargets de nombre y desde un existing source (el directorio del
ImageTargets.)
Si nos aparece algún error hacemos un
clean del proyecto y debería ir fino ya.
Teniendo el apk ya podemos instalarlo en el móvil al gusto (usando adb, ASTRO, etc).
Tenemos que hacer uso de estas imágenes, que son el patrón que reconoce la aplicación para dibujar la especie de cafetera que deberá aparecer.
 |
| Chips |
 |
| stones |
Para imprimirlas usad los pdf que vienen dentro de la carpeta
media del proyecto
ImageTargets. Algo así tendreis que ver.
 |
| Realidad Aumentada con HTC Desire S |
Esto esta bien, pero... ¿como hacer los modelos 3D?, usando el NDK se puede, pero puede ser muy pesado, asi que mejor usando un programa de diseño 3d, en este caso Unity.
Realidad Aumentada con Unity
Tan fácil como bajarse la extensión de
aquí e instalarla (descomprimirla en alguna carpeta). Obviamente necesitas tener instalado el Unity.
Ahora creamos un nuevo proyecto de Unity importando el
qcar-unity-android-xx-yy-zz.unitypackage.
También tenemos que añadir un
config.xml y
qcar-resources.dat, doble click en
qcar-unity-imagetargets-android-1-0-6.unitypackage y en la ventana que se abre elegimos el config.xml, el qcar-resources.dat y el directorio
Editor/QCAR/ImageTargetTextures. El proyecto debe quedar tal que así:
Ahora en la cámara que hay en medio, la seleccionamos y la eliminamos con suprimir, ya que vamos a meter la
ARCamera, para ello la elegimos de la carpeta
QualComm Augmented Reality/Prefabs y la arrastramos hasta la escena, hacemos lo mismo con el
ImageTarget, a este ImageTarget le añadimos el
chips_scaled que encontramos en la carpeta
ImageTargetTextures, arrastrándolo encima hasta la el ImageTarget que aparece en la
hierarchy, tras estos pasos y moviendo la vista en la escena ya podremos ver las patatas xD.
En la imagen se ve que el image Target esta a
EMPTY, hay que cambiarlo y elegir nuestro chips, sino no funcionará.
 |
| ImageTarget debe marcar Chips |
Ahora añadiremos un cubo a la escena (GameObject > Create Other > Cube) y lo agregamos al ImageTarget arrastrandolo encima en la vista de
Hierarchy y tambien añadimos una Directional light (GameObject > Create Other > Directional Light) pa darle vidilla.
Edito: Para la versión de la extensión 1.5 hay un TrackableEventHandler por defecto, es decir que no necesitas importarlo como se especifica en la siguiente parte.
Para que el cubo desaparezca si no se ve el
ImageTarget usamos un
TrackableEventHandler, para ello usamos un script ya hecho en otro de los samples, concretamente en el
ImageTargetTextures, igual que antes doble click sobre él y en la ventana buscamos el
Scripts/TrackableEventHandler y pinchamos en import.
Lo buscamos en la carpeta scripts y lo añadimos arrastrándolo encima del ImageTarget.
 |
| Vista del script |
Nuevo para la versión 1.5 también tenemos la opción de poder seleccionar distintos targets, puedes especificarlo en la opción Data Set Load Behaviour.
Para desplegar la aplicación, nos aseguramos que tenemos lo siguiente:
Vamos a Edit > Project Settings > Player > Android icon). Pinchamos en el simbolo de Android y nos aseguramos que
Default Orientation no esta en Auto Rotation, que
Minimum API Level esta a Android 2.1 'Eclair' (API level 7) o más y que el
Bundle Identifier esta a un nombre valido (e.g. com.mycompany.firstARapp).
 |
| Visión de panel de configuración |
Ahora salvamos la escena con File > Save Scene y configuramos el build con File > Build Settings, y aseguramos que este seleccionada nuestra escena, sino pinchamos en add current.
Intentad que la vista tenga una pinta similar a la imagen siguiente, para ello hay que ir moviendo los distintos elementos, cambiarle el tamaño al cubo y demás, nunca había uso Unity y lo conseguio hacer, así que no creo que os cueste mucho.
 |
| Vista General |
Ahora build & run y nos generara el .apk que podremos instalar en el movil.
Una vista del resultado
 |
| Se puede ver el cubo, penco pero se ve xD |
Y esto es todo, mas adelante intentaré hacer algún tuto más profundizando, como por ejemplo poder meter la RA solamente en una actividad de android, no tener que generar todo el .apk, pero para eso primero tengo que investigar, porque aun no sé siquiera si se puede!
Se ha quedao un tutorial bastante completo, pero he preferio meterlo to en uno, ya que esta to relacionao!
Nada mas, un saludo!