Yo creo que nunca hay que dejar de intentar. En mis épocas universitarias (hace dos años… sonó a vejez) programaba y cuando no podía correr la aplicación, seguía intentando hasta que todo funcionara. Me tomaba 4 horas y si se hacía de noche, eso no era algún impedimento. Ahora por llegar cansado del trabajo tengo pocas energias para avanzar. De todas maneras me esfuerzo para darle dos horas a experimentar. Aunque yo no pueda hacer todo, siempre he estado rodeado de entusiastas de programación que muchas veces me han impulsado a seguir trabajando. Este post es un artículo colaborativo de un amigo mexicano que tuvo una idea hace meses y lo orienté en su trabajo. Hoy puedo decir que sale este tutorial a base de esfuerzo y dedicación de un verdadero programador y alentado por mi. De vez en cuando los papeles se invierten y eso es bueno pues de eso se trata una comunidad.
Autor: Neogeek
Correo: clcneogeek@gmail.com
Tutorial de realidad aumentada para Android
- Misión: Tener documentación de nyartoolkit para nuestra comunidad en hablahispana.
Ryu Iizuka (creador de Nyartoolkit) tiene demasiados proyectos y poco tiempo para documentar. Por eso estamos nosotros. Investigamos y publicamos resultados.
Bueno pues a petición de Emilio, ya que tampoco encontré documentación sobre nyartoolkit, me decidí a aportar un poco de lo que aprendí al tratar de hacer realidad aumentada con .md2 y NyArToolKit for Android. Para empezar este tutorial supongo que ya tienes instalado Android Bundle con la API de android de la version 2.3.2. Es obvio que usaremos eclipse para trabajar.
NOTA:
Debes saber que el modelo que quieras cargar será creado con Blender 2.49 o 2.47. Estas son versiones antiguas pero recordemos que la extensión .md2 también es muy antigua y el algoritmo para cargarlo también lo es. Así que debes aprender primero a usar esa versión de Blender y debes saber como crear un modelo y exportar su textura a un solo archivo o de otra manera no funciona, por ejemplo del video de Emilio de exportar el cubo con 1 sola textura podría funcionar. Ahora cuando nosotros usamos la librería ‘Nyartoolkit para processing’ solo usamos 1 librería, pero cuando usamos Ny ArToolKit For Android usamos:
- NyArToolKit For Android
- Min3d
Los algoritmos de ‘nyartoolkit for android’ solo sirve para hacer realidad aumentada y el de min3d es para cargar objetos 3d ya sean .md2 .3ds y .obj pero el ejemplo que ha hecho el autor solo está diseñado para que se puedan cargar los .md2 y si llegas a tratar de cargar un .3ds o un .obj jamas te mostrara nada (al menos a mi no me funciono).
Ya tenemos todo lo necesario para hacer el set-up: Programa, versión de android, archivo descargable y la versión de blender. Ahora vamos a comenzar a programar!
Para este punto damos por sobreentendido que has tenido cierto conocimiento de eclipse y la manera de cómo trabaja android con su SDK.
1) Abrimos ECLIPSE y creamos un nuevo proyecto
Luego, lo siguiente será importar el proyecto que descargamos de esta manera:
Si pudiste importar correctamente el proyecto debe aparecer algo así 🙂 Si te has equivocado en algo, intenta nuevamente. Al importar archivos por lo general tienen que saltar ciertas alertas en forma de dibujo. Mira este gráfico y date cuenta que el SRC sale un signo de alerta y los assets, bin presenta un dibujo encima de carpeta. Al importar se agrega documentación y archivos que se deben modificar o tener en cuenta, por ello el programa lo resalta.
Ahora obtenemos los siguientes directorios:
- src: Es la carpeta en donde se encuentra todo el código necesario.
- raw: Es en donde pondremos nuestros modelos .md2
Ahora veamos el código que necesitamos modificar y este se ubica en NyArToolKitActivity.
El código de Nyartoolkitandroidactivity encierra todo el trabajo que podemos armar. Si bien está algo desfazado, es necesario utilizarlo pues sigue siendo un referente en la programación de realidad aumentada.
Droid y droidr son los nombre de los archivos .md2 que estan en la carpeta raw.
Ahora en la carpeta drawable debemos meter la textura de cada uno de los modelos que queramos cargar es importante que las texturas o archivos png o jpg sean con el mismo nombre que el de los modelos. Osea si mi modelo se llama mimodelo.md2, la textura se debe llamar mimodelo.png
Patthiro y pattkanji son los 2 marker por defecto pero podemos cambiarlos sin ningún problema. Ahora por si queremos agregar nuestros propios markes solo faltaría hacerlos con el marker generator que se encuentra en la web y guardarlos la carpeta drawable y modificar esta linea de código.
Espero que con esta pequeña explicación entiendan un poco como modificar el ejemplo, yo hice el cubo del la exportación .md2 para processing que tiene Emilio en su canal y funciono correctamente.
Gracias por el aporte de Neogeek. Así como el, muchos pueden escribir sus descubrimientos y experimentos. A más información, mejor será para todos.
Aquí les dejo un link de la documentación en PDF y el archivo fuente. No se olviden de compartir y comentar!
Hola, como puedo hacer para que me lea modelos que esten en la memoria internal o externa, para no meter los modelos dentro del apk.
y otra pregunta, se pueden cargar imagenes o videos, o solo sirve para modelos 3d?
Hola Jorge
El código inicial está para utilizar los modelos dentro del apk. Para hacer lo que tu deseas debes modificar desde la base el tema de la lectura de los archivos. Sí se pueden cargar imágenes pero también tendrías que modificar el código. Yo te recomiendo que puedes generar un archivo plano (cuadrado) en md2 y ahí le agregas la textura, eso hará que se visualicen las imágenes bajo una superficie. Suelo trabajar así para tener facilidad de dominio del formato.
Gracias por comentar
Slds
de hecho si quieres agregar imagenes a nyartoolkit puesdes hacerlo en los ejemplos de min3d vienen ejemplos de como cargar 3ds, obj, md2, texturizar cubos, donas, cilindros, esferas….etc velo tu mismo…
https://code.google.com/p/min3d/
como cargar 3ds
http://www.rozengain.com/blog/2010/05/19/loading-a-3ds-file-min3d-framework-for-android/
cargar md2
http://www.rozengain.com/blog/2010/05/25/loading-an-animated-md2-file-min3d-framework-for-android/
cargar 3ds
http://www.rozengain.com/blog/2010/05/17/loading-3d-models-with-the-min3d-framework-for-android/
Que buena información Neo!
Hola me gusta mucho este aporte, quisiera hacer una consulta después de importar todos los archivos me aparece un error en el adroidmanifest.xml cuando entro el archivo esta en blanco porfavor ayudenme a solucionarlo soy un poco nuevo en esto de android y realidad aumentada
Hola. El tutorial me ayudo mucho al realizar aplicaciones de realidad aumentada para androd, pero me surgio un problema la aplicacion se detiene en android 5.0.2. A que se dene esto ?
Emilio hola mi nombre es Gabriel’m de Brasil y tengo que hacer una sencilla aplicación para que pueda ver una sola imagen en este marcador en mi smartphone con Android. Yo puedo hacer esto en Nyartookit ? Cuando digo imágenes en formato estándar ( .png, .jpeg ) y trataron de poner otros modelos de tipo md2 en Nyartookit y fracasaron. Espero una respuesta , gracias .
como puedo hacer para adquirir los instaladores de los desarrolladores
Quisiera aprender lo que se necesita para poder realizar una aplicación de realidad aumentada?
lo básico por favor gracias.
Espero tu respuesta.