Mostrando entradas con la etiqueta Ogre3D. Mostrar todas las entradas
Mostrando entradas con la etiqueta Ogre3D. Mostrar todas las entradas

miércoles, 12 de octubre de 2011

Bullet Physics y Ogre3d

En el siguiente vídeo muestro un pequeño escenario de prueba en el cual ya se encuentran añadidas las físicas y colisiones gracias a Bullet Physics y utilizando como motor gráfico Ogre3D. Para esto no se utilizo ningún wrapper como OgreBullet sino que se enlazo Bullet a Ogre3D directamente.

En el vídeo se muestran levemente objetos de colisión estaticos como las escaleras en la cual la forma de colisión fue hecha directamente en blender ya que blender usa Bullet esto es muy sencillo, después esta forma de colisión fue importada como un archivo .bullet en la aplicación. En otras shapes como en la pequeña muralla que soporta la puerta se utilizo formas compuestas de colisión.

En el vídeo se muestra como el personaje interactúa con objetos dinámicos como la caja siendo esta un rigibody y con una pelota la cual es un softbody.

Nuestro personaje por el momento solo tiene una capsula como su forma de colisión lo cual lo hace poco flexible, lo ideal es que la forma este ajustada al personaje y que cada parte cambie de acuerdo a la animación del mismo.

Para la puerta se utilizo un trigger el cual nos detecta cuando un objeto de colisión esta cerca para abrir la puerta  y nos detecta cuando el objeto esta saliendo del trigger para cerrar la puerta. En cuanto a la puerta ya que es un rigidbody dinámico en ella también aparecen las mismas fuerzas que en cualquier otro objeto por lo que si no la ajustamos a algo fijo esta puerta simplemente se caerá debido a su forma, Por esto se utilizo un slider constraint el cual nos permite ajustar la puerta a un movimiento lineal.

Y aquí esta el vídeo!


jueves, 8 de septiembre de 2011

Humanoide caminando en Ogre3D

Ahora coloco un vídeo en el cual se muestra al humanoide caminando en el engine Ogre3D. En la primera parte del vídeo aparece el render hecho en blender, en la segunda y tercera parte aparece el humanoide en ogre3D caminando a distintas velocidades.

Nota: en el cambio de velocidad se hizo necesario cambiar la velocidad de la animación en blender para que coincida con la traslación en Ogre.

A continuación el vídeo:



El humanoide aprendió a caminar!.

martes, 6 de septiembre de 2011

Exportando animación de blender a Ogre3D

Para exportar las mallas, el sistema de huesos y las animaciones utilizo el plugin que se puede bajar de aquí:

http://code.google.com/p/blender2ogre/

Antes de instalar el plugin es necesario bajar OgreCommandLineTools que se puede encontrar en la pagina de Ogre3D ya que estos ejecutables nos transforman los archivos xml que produce el exportador a archivos .mesh, .material, .skeleton necesarios en Ogre.

Primero instalar OgreCommandLineTools y luego el plugin los reconocerá automáticamente.

Este plugin hay que adicionarlo a blender, para hacer esto se descomprime el archivo y se copia el archivo con extensión .py en la carpeta addons de blender, para encontrar esta carpeta en windows se debe habilitar ver archivos ocultos del sistema y luego entrar a la siguiente ruta según el usuario y la versión de blender.

RUTA: C:\usuarios->nombreusuario->AppData->Roaming->Blender Foundation->Blender->version->scripts->addons

Después de copiar el archivo simplemente se habré blender, luego se presiona en user preferences y en la pestaña Add-Ons buscar Ogre Exporter y despues se activa el cuadro que esta al frente del nombre en el cual debe aparecer una marca de verificación.

Para que la animación hecha en blender pueda se exportada correctamente a ogre 3D es necesario lo siguiente:

1. Lo usual para crear una animación es crear huesos de deformación y otros de control, la animación se suele hacer rotando, escalando y moviendo estos huesos de control y lógicamente insertando sus respectivas keyframes. Pero si exportamos la animación de la manera anterior esta no funcionara en ogre ya que ogre solo utiliza los huesos de deformación por lo que cuando se inserte una keyframe del hueso de control se hace necesario hacer lo mismo con los huesos de deformación que se utilicen.

2. Es necesario que la rotación de la armature este en el mismo valor que la rotación de la mesh esto se ve en el panel de propiedades que se abre presionando N.

3. Si se tiene algún problema en la animación es necesario rotar la mesh con respecto a la armature para que coincida en Ogre3D.

4. Máximo cuatro huesos de deformación pueden estar asociados a un vertex si no es así cambiar los valores de weight a cero en los vértices que sobrepasen este limite.

5. Se requiere abrir el NLA editor y allí crear el strip respectivo a la acción, se cambia el nombre en el panel de propiedades presionando N en el NLA editor y se cambia el nombre en Active Track, ojo este sera el nombre que necesitaremos para llamar a la acción en Ogre.

Para Exportar se selecciona la mesh y la armature, despues se activan la opciones como se ve en la imagen:
Muchas veces no coincide la animación con la mesh en Ogre y puede generar mala animación como se ve en la siguiente imagen:
Para arreglar lo anterior es necesario rotar la mesh con respecto a la armature hasta que coincida en Ogre.
En la siguiente imagen se explica de una manera visual algunos puntos anteriores.


Esto es todo, en el próximo post mostrare al humanoide caminando en Ogre3D.

jueves, 25 de agosto de 2011

Humanoide en Ogre3D

Ahora pongo un vídeo y una fotos desde distintos lugares de el modelo humanoide en el motor Ogre 3D.
Para el bump mapping se usan shaders creados en CG.

Enseguida el vídeo:

Algunas Fotos:





Esto es todo, próximamente humanoide animado.