Diseño y animación de una figura articulada

Hemos visto básicamente como se puede trasladar, rotar y escalar un objeto en animación 3D. POV-Ray trae ejemplos que muestran como animar objetos simples y también el de una polea que mueve una rueda. En este caso, al tratarse de un objeto mecánico compuesto por partes, se anima cada una de ellas independientemente, tratándolas como objetos simples. Moray (un modelador para POV-Ray) utiliza lo que se conoce como IK Inverse Kinematics (Cinemática Inversa) y trae como ejemplo un Brazo-Robot industrial, con varias articulaciones que se controlan "a mano", cuadro por cuadro, utilizando el ratón.

En el caso de querer realizar un modelo que imite a la figura humana, sus poses y movimientos, habremos de recurrir en principio a las técnicas clásicas y reconocidas, a modo de estudio, para poder utilizar luego modelos y técnicas mas sofisticados que nos permitan llegar a un resultado mas interesante. Podemos diseñar un "esqueleto" utilizando esferas y cilindros, o algún modelo un poco mas elaborado. En este ejemplo vamos a recurrir a una de las técnicas que utilizan los dibujantes artísticos, a la hora de dibujar sus personajes y de animarlos. Para ello crearemos un "mono", aquella figura que los dibujantes trazan en sus bocetos utilizando elipses u óvalos. Esta técnica permite determinar rápidamente los volúmenes de la figura, ajustar su postura y expresividad, mantener sus proporciones y dotarla de armonía en sus líneas. Claro está, que al trabajar con 3 dimensiones nuestro personaje adquirirá el aspecto del muñeco de madera que utilizan para estudiar las poses de sus personajes, ya que estaremos utilizando esferas en lugar de círculos.

Loomis Figure Template - Moray Design

Para este ejemplo utilicé como modelo antropométrico un boceto de la figura masculina de Andrew Loomis, tomado de su libro "Dibujo de Figura en todo su Valor". Utilicé el programa Moray, llenando con esferas los principales volúmenes o grupos musculares de la figura. Luego determiné los puntos de flexión, que corresponden a las articulaciones. Como resultado nos queda un modelo al que llamaré Figura1, constituido por 17 elementos (Cabeza, Cuello, Torax, Abdomen, Pelvis, Brazos, Antebrazos, Manos, Muslos, Pantorrillas, Pies) que se flexionan en 16 articulaciones: Nuca, Cuello, Espalda, Cintura, Hombros, Codos, Muñecas, Cabezas de Femur, Rodillas y Tobillos. Si agregamos un punto de articulación en la ingle (punto 17), podremos además inclinar o rotar todo el muñeco a voluntad, por ejemplo, para las poses en que no está apoyado en sus pies (ej. natación)

Si variamos los ángulos de las articulaciones obtenemos una nueva pose. Para no complicarnos con los cálculos implicados utilizamos la macro Rotate_Around_Trans(PuntoaRotar, PuntodeRotacion) que suministra el programa en el archivo "transforms.inc". Un aspecto a cuidar es que para recalcular la posición de cada miembro debe considerarse la complexión del modelo. Por ejemplo para obtener la nueva posición del pie deberá calcularse su rotación en el tobillo, luego en la rodilla y por último en el fémur.

 #include "transforms.inc"
  object{Pie_Dr 
  Rotate_Around_Trans(PieDrAng,   RotPtTobDr)   // Pie
  Rotate_Around_Trans(PantDrAng,  RotPtRodDr)   // Pantorrilla
  Rotate_Around_Trans(MusloDrAng, RotPtFemurDr) // Muslo
  Rotate_Around_Trans(CuerpoAng,  RotPtIngle)   // Cuerpo    
  }

Es decir que la posición de cada miembro estará definida por el ángulo de rotación (flexión) correspondiente a cada articulación y a cada pose, y será aplicable a cualquier figura que presente los mismos elementos de composición y articulaciones. Una vez obtenidas dos poses claves, realizamos la transición entre la primera y la segunda interpolando los ángulos correspondientes. Supongamos que el codo en la primera pose está flexionado a 60 º y en la segunda a 30 º. Con una fórmula como la siguiente generamos la línea de movimiento entre los cuadros clave (keyframes) en un tiempo de reloj (de 0 a 1):

 #declare Angulo= AnguloInicial + clock * (AnguloFinal - AnguloInicial);

El primer término de la suma es el ángulo de la articulación en la primera pose. El segundo es la diferencia entre ambos, multiplicada por el valor del reloj.

Figure Poses
Escenas 1 a 4: El muñeco en cuclillas - Muestra de algunas poses - Ensayo de texturas para una animación sobre columnas que caen (basada en una antigua presentación del programa CQC) - El muñeco caminando en círculos, sobre una spline.
POV-Ray - Figure Animation
En la página de macros hay una explicación mas detallada de los procedimientos que realizan las tranformaciones del muñeco, junto con un archivo de inclusión y una plantilla de figura animable para descargar.


Copyright 2006 Rodolfo Nothstein
Created: Oct 10 2005 - Last Change: Mar 19 2007