2010-11-20 21 views
11

Si tengo un modelo 3D de cuerpo humano, que quiero animar caminando, ¿cuál es la mejor manera de lograrlo? Aquí están las posibles maneras en que veo que esto se implementa:Animación OpenGL

  • Crea varios modelos con las patas en diferentes posiciones y luego interpola entre estos modelos.
  • Cargue el modelo en OpenGL, y de alguna forma calcule qué vértices corresponden a las patas y realice las transformaciones apropiadas.
  • Implementar un esqueleto o armadura (similar a esto: blender animation wiki).
+0

Generalmente, el modelo importado contiene la animación. ¿Por qué necesitas animarlo en OpenGL? ¿No debería ser manejado por un artista? –

+0

@Seth, estoy haciendo esto como un proyecto personal. Entonces, si el modelo contiene la animación, ¿necesito interpolar entre los diferentes cuadros clave que me da? –

+0

Sí, exactamente. Hay muchos recursos sobre esto. http://gpwiki.org/index.php/OpenGL:Tutorials:Basic_Bones_System –

Respuesta

11

La técnica que describió en la primera opción se llama morph target animation y se usa a menudo para algunos detalles de animación como animación facial o tal vez apertura y cierre de manos.

La segunda opción es la animación de procedimiento o física que funciona de manera similar a la robótica, donde le das al cuerpo de tu personaje cierta velocidad para avanzar y calcula qué piernas deben hacer para evitar caerse. Pero no lo harías directamente en los vértices, sino en el esqueleto. Vea el siguiente.

La tercera opción es la animación esquelética que anima el esqueleto y los vértices lo siguen según el conjunto de reglas. Adjuntar vértices al esqueleto se llama despellejar.

Sugiero que, después de caerse de cosas opengl (modelos de visualización y posicionamiento en el espacio, la cámara, etc.), comience con la animación esquelética.

Necesitará un modelo amañado y animado para su aplicación 3d de su elección. Luego puede escribir un exportador en su formato personalizado o elegir un formato que quiera leer desde su aplicación. Ese formato de archivo debe contener una descripción del modelo, esqueleto, skinning y fotogramas clave. Luego de leer y usar esos datos de tu código para construir la malla, esqueleto y animar sobre cuadros clave.

+0

+1 por buena publicación. Personalmente, recomendaría los archivos .3DS ya que los fotogramas clave de animación, los datos esqueléticos y el modelo están contenidos en un archivo. – Bojangles

2

Si yo fuera tú, descargaría Blender de http://www.blender.org y trabajaría con algunos tutoriales de animación. Por ejemplo, éste:

http://wiki.blender.org/index.php/Doc:Tutorials/Animation/BSoD/Character_Animation

Una vez hecho esto, a continuación, puede exportar su modelo y animaciones usando, por ejemplo, el exportador Ogre. Creo que esta es la última versión, pero asegúrese de:

http://www.ogre3d.org/tikiwiki/Blender+Exporter&structure=Tools

A partir de ahí, sólo tiene que escribir el código C++ para cargar todo en, interpolar entre los fotogramas clave, etc. Tengo código que pueda mostrarle esto si está interesado.

+0

Debo añadir que se requirió un poco de cuidado y manipulación para que todo funcione cuando lo hice, pero se puede hacer :) –

+0

gracias, ya había pasado por el tutorial que menciona, voy a echar un vistazo a la exportador ogro. –

+0

@StuartGolodetz Me gustaría ver el código, por favor? –

Cuestiones relacionadas