por Malefico
Cuando animamos personajes en Blender lo
que hacemos es definir un conjunto de "poses" en el tiempo para
nuestros personajes variando las posiciones de piernas, brazos,
tentaculos u orejas segun nuestro parecer.
Sin embargo cuando lo que intentamos animar son maquinas o sistemas
mecanicos, que deben respetar determinadas leyes fisicas o sincronias,
este enfoque es inadecuado. Imaginense animar la biela de una
locomotora, y que las ruedas se muevan de acuerdo al impulso trasmitido
por esa pieza y no "locamente" como si fueran piezas independientes.
Esto claramente es algo que no puede ser hecho mediante poses.
En este tutorial intentaré
explicar el uso de Constraints para resolver algunos mecanismos
simples. Mecanismos mas complejos podran resolverse aplicando los
principios aqui delineados.
El primer ejemplo sobre este tema me fue explicado por primera vez por
el inefable Caronte a quien
le envio un abrazo y un saludo por su generosa y siempre desinteresada
ayuda.
ADVERTENCIA: Este tutorial requiere un conocimiento basico del manejo de Blender por lo que muchas operaciones basicas no serán explicadas.
Para seguir este tutorial necesitaran al menos la version 2.22 de Blender.
Una biela es una pieza muy popular en
cualquier maquina. Su funcion es la de convertir un movimiento circular
en un movimiento lineal y viceversa. La biela se encuentra unida por
uno de sus extremos y excentricamente a una rueda mediante una pieza
que se llama cigüeñal.
El otro extremo de la biela se encuentra restringido en su movimiento
mediante una corredera, otra biela, o alguna otra pieza mecanica. Al
girar el cigüeñal, la biela solo transmite la
componente del movimiento que es colineal con la pieza que la restringe.
Veamos paso a paso como se puede recrear en Blender este mecanismo de modo que al animar un objeto, por ejemplo la rueda, el resto de los objetos se anime automaticamente.
Iniciemos una escena nueva de la forma
acostumbrada y seleccionemos la vista frontal. Crearemos un cilindro en
esta vista a modo de rueda. Curiosamente, llamaremos a este cilindro
"Rueda". Movamos el cursor en algun punto lejos del centro del cilindro
pero aun asi dentro del mismo y agreguemos un empty al que llamaremos
"Empty0". Lo más aconsejable es ajustar la posicion de los
objetos mediante la grilla. Para que esta sea la conducta por defecto
de Blender conviene setear la opcion GrabGrid
en el Panel del Usuario de
Blender.En este momento debemos tener algo similar a esto:
![]() |
Movamos el cursor hasta la posicion del
Empty0 (si no está allí ahora) y agreguemos un
plano. En modo edicion alarguemoslo hacia la izquierda unas cuantas
unidades de forma que quede algo parecido a la figura. Este plano
hará las veces de biela y asi lo nombraremos "Biela1".
Lo mas importante es tener en mente que el centro del plano (el centro
segun Blender, indicado por un punto rosado, no necesariamente el
centro "geometrico") se encuentre donde se indica. Esto es muy
importante porque el eje de giro de la biela pasará por este
punto. Si no me creen, seleccionenla y girenla un poco...
![]() |
Ahora movamos el cursor hacia el otro
extremo de la biela y agreguemos otro empty y emparentemoslo a la
biela. Este será el "Empty1".
En la posicion del nuevo empty agreguemos otro plano. Alarguemoslo para
formar otra biela un poco mas gruesa que la inicial. La llamaremos
"Biela2" para salirnos un poco de lo común. Seguramente el
centro de esta segunda biela nos ha quedado donde estaba el Empty1.
Para corregir esto movamos el cursor hacia la zona central de la Biela2
y recentremos el plano con CentreCursor en los botones de Edicion.
Ahora movamos el cursor nuevamente a la posicion del segundo empty, y
agreguemos un tercero. Emparentemoslo a la segunda biela.
Hasta ahora las cosas se deben ver asi:
![]() |
¿Para qué tantos
emptys y cosas raras?. Ahora veremos. Seleccionemos la biela 1 y
vayamos a los botones de Restricciones (el icono de los eslabones).
Agreguemos una restricción Copy Location, y pongamos el
nombre del primer empty en la caja OB. Probemos a girar el
cilindro-rueda. Verán como la biela se mantiene paralela al
eje X mientras acompaña el movimiento del Empty. Perfecto.
Ahora lo que intentaremos es que la Biela2 se oriente apuntando hacia
el Empty 1. Para ello seleccionemos la Biela2 y añadamosle
una restriccion TrackTo y escribamos el nombre del Empty1 en la caja
OB. Puede ocurrir que al hacer esto la biela asuma una posicion rara.
Para resolver este problema iremos a los botones de Animacion y
probaremos con el grupo de botones TrackX,Y,Z y UpX,Y,Z
hasta lograr que la biela
tome la posicion correcta nuevamente. Cosas de Blender ;)
Analogamente añadiremos otra restriccion a la Biela1,
haciendo un TrackTo al Empty2.
|
Restricciones para la Biela1 : |
![]() |
|
Restricciones para la Biela2 : |
![]() |
Corrijamos cualquier
"extrañeza" y ya estamos.
Ahora si hacemos rotar sobre su eje la rueda veremos como las bielas se
mueven solas como deberían si estuvieran unidas en el mundo
real.
![]() |
Cambiando la posicion del Empty0 acercandolo o alejandolo del centro de la rueda cambiará la longitud de la carrera realizada por la Biela2 al girar la rueda. No es fabuloso ?
La tentación es comenzar a
modelar las piezas antes de probar el sistema funcionando.
Personalmente creo que no es buena idea, lo mejor es asegurarse que el
mecanismo funciona bien usando piezas simples como hemos visto y luego
modelar las piezas mecánicas con detalle y emparentarlas a
los planos y cilindros.
Para evitar que los objetos originales sean rendereados
bastará con moverlos a una capa que mantendremos apagada.
Cuando hagamos esto, puede pasar que Blender muestre cosas muy raras al
disparar la animación con Alt + A. No le demos importancia,
cuando rendericemos todo saldrá bien. Una pequeña
animación (codec DivX) de ejemplo pueden verla aquí.
Lo bueno de este enfoque es que así toda la parte funcional
del mecanismo la podremos modificar y ajustar sin manejar todos los
vertices de las mallas finales.
Como todo lo bueno en el mundo este tutorial ya se acaba pero si tienen
alguna duda o quieren ver el ejemplo funcionando sin tanto trabajo
pueden bajarse un ejemplo desde aquí.