Cocinitas y huesos que se pegan a la cerveza

<center> cocinitas y huesos que se pegan a la cerveza.
/center> <center>.

Bueno, a partir de aquí ya más no hay. Para llegar hasta aquí, lectorcillo, has tenido que aprender las bases de la animación con Ipos, haber manejado las restricciones (constraints) y tener nociones de animación no lineal (nla y los nla-strips). Para esto y reírse todavía más, el tutorial de Maléfico sobre NLA: ¿nunca lograré animar? .
/center> esperemos que lo consiga algún día r.
<center>cuando animamos nuestro primer personaje con un esqueleto (armature) y a aprendido a caminar, siente la necesidad de agarrar cosas, llevárselas a la boca y, cuando se las ha bebido, apoyarse en las paredes y sujetarse por todas las farolas. Esto conlleva la creación de un sistema que permita:</center> .

  • permitir el posicionamiento fijo de un hueso, independientemente de que los demás se muevan (una mano apoyada). Igualmente, que los huesos encadenados a el no se separen y actúen con normalidad (el brazo). Esto lo hace una constraint IK-Solver.
  • transformar esa quietud (que es, en definitiva, un movimiento respecto de los otros huesos) en movimiento visible, o sea, en curvas ipo que puedan ser convertidas en acción. Esto lo hace el botón bake.

Veamos un ejemplo sencillo.[/list]esta restricción hace que el hueso (seleccionado en modo pose, esto es, pulsando Control + tab para que se vean los huesos azules), siga, junto con sus padres y abuelos etc, al hueso llamado apoyo que está en el objeto armature. Así, todo el brazo se moverá tras la mano.

center>el esqueleto</center> aquí hemos creado la armature de un brazo completo, y añadido un hueso llamado apoyo, que estará en cada momento situado en los lugares donde haya de colocarse la mano, en este caso el hueso carpo.

Este hueso apoyo no tiene por qué estar en el mismo esqueleto, de hecho (aunque aquí no esté así) es mejor que esté en una para el solo, o que esté en una con otros que harán la misma función agarradora, ¿cómo se comenta más adelante.

La restricción que le hemos de dar a carpo es precisamente la que está fotografiada encima de este cuadro.

El definir la mano (dedos) separados del brazo en una armature distinta es cosa mía, sólo por claridad. De cualquier forma, esta emparentada al hueso carpo para que de el mismo efecto.

<center>el porqué de todo esto</center> es que el tener una restricción en un hueso no permite crear acciones que funcionen. Así que tenemos dos opciones:
La primera conlleva una sola animación todo el tiempo, que hará que el apoyo vaya recorriendo los lugares a los que la mano apuntara, y por tanto esta tendrá su constraint IK Solver permanentementemente, y por lo tanto, no podremos agregar más acciones individuales. Toda la carga del movimiento será para el objeto guía.

Normalmete, en cinemática inversa (IK) usamos como guía un objeto nulo, un empty, pero aquí usaremos este hueso ficticio porque con empties, de momento, lo que sigue no funciona en Blender. Además, es mucho más compacto y claro.

center>mueve el es queto, nada-nada-nada</center> la segunda opción es crear la animación sin agarrar cosas ni apoyar, y luego ir agregando las acciones que harán esto, una a una. Así, el hueso apoyo estará en la posición (bien emparentado, o restringido a su vez con constraints copylocation y copyrotation) a cada objeto a agarrar.

Hagamos una. Nuestro brazo quiere hacer gimnasia y, para ello, decide acercarse al tugurio más cercano y levantar una hermosa jarra de cerveza bien fría y espumosa.

Para ello está bien claro que podríamos usar el camino inverso, es decir: crear constraints copylocation y copyrotation para la jarra y hacer que sea el brazo quien se mueva con normalidad, agarre la jarra, la suba y la baje. Una curva meseta para esas restricciones hará que sólo estén activas mientras dure el acto.

Como nuestro brazo no piensa y, aunque creamos lo contrario, no es nuestro, no resulta fácil definir el trayecto exacto que llevara la jarra si vamos moviendo los huesos. Además, puede que queramos que la jarra siga un Path, gire, no sé. Da igual, el caso es que quiero hacerlo de la otra forma.

Con una salvedad: no moveremos la jarra, sino el hueso apoyo. Para eso lo queríamos, ¿no? Si el movimiento no lo hace un hueso, la acción no tendrá keys en la ventana de acciones, o sea, no existirá tal acción a definir.
<center>he movido la jarra sólamente para que se vea la trayectoria, en realidad lo que hay que mover es el hueso. Así que sólo tenemos que emparentar la jarra al hueso con Control + p al hueso, o crear un par de constraints copylocation y copyrotation con idéntico resultado aparentemente. La diferencia es que después hay que desemparentar (Alt+p) y la jarra ya no se moverá (malo), mientras que con restricciones, podemos crear curvas meseta con el botón edit ipo.
otra solución (tal vez la mejor) es que el hueso apoyo esté en una armature distinta a la del brazo, y que haya un hueso para cada objeto que se vaya a agarrar y tenga que moverse.</center>

llegó el momento de mover el brazo: creamos, para carpo, la restricción de la que hablaba al principio, por eso vuelvo a poner la fotografía.

¿Qué por que no enganchamos carpo directamente a la jarra?

Lo he dicho antes, porque convertir acciones provenientes de restricciones sólo funciona si apuntamos a huesos.

Esperemos que en una próxima versión de Blender. De momento.

Por último, no basta con que la mano apunte. También tiene que girar con la jarra (o sea, con apoyo). Así que también haremos una constraint copyrotation para carpo:

[size=+2]¿Qué hacemos una vez que nos hemos bebido la cerveza?
No ir con la guardia baja, ya que el recordemos que teníamos que crear una acción para combinarla con los movimientos del brazo no restringidos.

O sea, que empieza el tutorial.

Vamos a la ventana de acciones. Como hemos movido el hueso apoyo en vez de la jarra, ahí están nuestras keys, amarillas o grises ellas. Ahora que esto es una acción y podemos convertirlo en nlastrip, ¿Qué hemos conseguido?

ni más ni menos: que podremos estar bebiendo tantas veces como queramos, y no sólo eso: a la velocidad que nos de la gana.
center> pero recordemos que nos interesa mover el brazo por sí mismo, no siguiendo a un hueso de forma restringida. Para eso está el botón bake (cocinar), que transforma nuestro movimiento en curvas ipo para cada hueso. Aunque de forma no optimizada, o sea, que genera una key por cada frame.

cuando pulsemos, nos dirá que ha generado la acción bebe. Baked, y sólo tenemos que ir a la ventana ipo y borrar las key que no nos gusten.
/center>

pues nada, ya podemos eliminar la restricción del hueso apoyo, o borrarlo si nos hemos cansado de él. En cuanto a las curvas que aparecen, bueno, haz lo quieras con ellas, las has hecho tú y son tuyas.

© Carlos López 2002.

.

Miniaturas adjuntas
Cocinitas y huesos que se pegan a la cerveza-1.jpg   Cocinitas y huesos que se pegan a la cerveza-2.jpg   Cocinitas y huesos que se pegan a la cerveza-3.jpg   Cocinitas y huesos que se pegan a la cerveza-4.jpg   Cocinitas y huesos que se pegan a la cerveza-5.jpg  

Cocinitas y huesos que se pegan a la cerveza-6.jpg   Cocinitas y huesos que se pegan a la cerveza-7.jpg   Cocinitas y huesos que se pegan a la cerveza-8.jpg  

Ver más sobre el tema y los comentarios en el foro