10 may. 2014

Cómo realizar una oruga de tanque animada con Blender 2.70

Aprenderemos en este tutorial a cómo realizar orugas funcionales usando el Blender 2.70. Es decir, si queremos diseñar un tanque de guerra, una maquinaria pesada para excavación o un vehículo robot para explorar la superficie de algún planeta entre otras muchas otras creaciones, necesitaremos que las orugas estén animadas, por supuesto.
Todo se hará usando Drivers y aplicando Constraints a los objetos, no con Bones. Antes de comenzar, debo dar el crédito correspondiente al videotutorial en el cual me basé para realizar éste (videotutorial fuente). El mismo lo descubrí hace bastante gracias a unos trabajos que hizo Dani de Saro al respecto de un lanzamiento de cohete, cuya lanzadera era precisamente una oruga que trasladaba el artefacto. Si embargo, ya sea por la versión de Blender diferente o por otros motivos, algunas cosas no me funcionaron y las tuve que cambiar. Pero básicamente este que presentaré aquí es un tutorial muy similar al mostrado en ese video, a cuyo autor agradezco el haberlo compartido.

Oruga realizada en Blender 2.70

Comienzo del tutorial

Para empezar, diseñamos las orugas. Creamos un círculo Bezier y lo deformamos de la siguiente manera o similar. A continuación, duplicamos ese círculo y los colocamos a ambos simétricos con el eje X.


Acto seguido diseñaremos las partes móviles de la oruga. Como se sabe, estas partes tienen pernos y bisagras para articular, y rugosidades para obtener mejor agarre con el suelo. En fin, hacemos algo similar o mejor a lo que se ve en la imagen de más abajo en los tres primeros cuadros.
Luego tomamos esa porción de oruga y la trasladamos a la posición del círculo Bezier derecho, por ejemplo, y le aplicamos un modificador Array y por debajo un Curve. Y en este punto ya se notará si tenemos o no una buena pc al momento de desplazar la oruga. Porque si el segmento de oruga tiene demasiados vértices, estos se multiplicarán al aplicarle el modificador Array y luego se duplicarán al hacer la otra oruga. De manera que quizás, dependiendo del pc, habrá que hacerlo lo más Low Poly posible (última foto de la siguiente imagen).

Oruga de tanque o de maquinaria pesada realizada en Blender 2.70
Ahora tomamos ese segmento de oruga, lo duplicamos y trasladamos al otro círculo Bezier y le asignamos dicho círculo.


Llega el momento de diseñar las llantas o ruedas a la manera que más nos gusten. Pero para tener una idea de las muchas formas de hacerlo, podemos usar la herramienta Spin. Primero creamos el perfil de la rueda copiándola de algún lado o imaginándonos cómo quedará al revolucionar:

Perfil de la rueda que se hará revolucionar en el eje X
Como se ve, colocamos el cursor a la altura del último punto, en el cual haremos la revolución de 360º en torno al eje X en este caso (Es la misma función matemática que se usa en cálculo para realizar un sólido de revolución). De manera que nos posicionamos desde la vista Right y en modo Edit con todos los puntos seleccionados presionamos Spin (en el desplegable izquierdo T):

Función Spin en Blender 2.70
Y seleccionamos el número de Steps y el Angle en 360º


Luego removemos los vértices dobles, seleccionando todo en modo Edit y presionando Remove Doubles.
Marcamos alternativamente las caras de la parte frontal de la rueda, extruimos y escalamos dos veces con la opción Median Point. Y ya tenemos una rueda de bajos polígonos.


Después le podemos agregar tuercas para que cuando gire se note aún más la rotación o también ponerle imperfecciones. Como mencioné más arriba, tuve que realizar las ruedas y las orugas en bajos polígonos dadas mis limitaciones de pc.


Con la otra rueda hacemos algo similar, aunque viendo modelos de tanques, es bastante más simple. Lo que es importante es limpiar rotaciones para no tener problemas a la hora de animar:

Limpiar rotaciones en cero y en modo Edit recolocar el objeto de ser necesario
Si a estos objetos metálicos le damos Smooth, sería conveniente aplicar el modificador Edge Split para que queden con apariencia de tales objetos.
Quizás se nos ocurra asimismo aplicar el modificador Array para duplicar las ruedas en el mismo lado. Luego de aplicarlo, en modo Edit presionamos P y la opción By Loose Parts. Esto es para separar todos los sectores de nodos que no estén conectados por aristas.
Luego, para crear las ruedas del otro lado, se puede aplicar el Mirror pero habrá que separarlas pues las orugas se animarán de manera independiente, dado que cuando estos artefactos doblan una oruga se mueve en el sentido contrario que la otra.

Animando las orugas

A esta altura ya tenemos todo listo para animar: las ruedas todas separadas y con sus centros colocados en el centro físico del objeto. Además, las articulaciones de la oruga estarán aplicadas a la curva Bezier
Lo siguiente es crear un cubo que moverá el sistema completo y al cual le emparentaremos como hijos a todo lo demás. El centro de este cubo estará en lo que será el suelo.

Orugas listas para ser animadas
Hecho lo anterior, seleccionamos una de las orugas y le fijamos un Driver (con clic derecho sobre la variable y seleccionando Add Single Driver) en el eje Y.
Para entender mejor cómo funciona esto de los Drivers, visitar este tutorial. 
Separamos la pantalla y le decimos que al mover el cubo en Y, se desplace la parte de la oruga también en Y. (Colocar la opción Local Space o o las otras dos para notar las diferencias al animar).
Para evitar movimientos accidentales, le cerramos con candados todas las demás variables:


Como se ve arriba, al mover el cubo al que denominamos cubo padre en Y, la oruga derecha también se mueve en Y. El cubo padre podrá rotar con todo lo demás, pero la oruga derecha siempre se mantendrá moviéndose en Y Local. Con la otra oruga hacemos lo mismo. Para hacerlo más rápido usamos la opción Copy / Paste Driver. Si la oruga se mueve en sentido contrario al que debería, colocar -var en lugar de var.

Animando las ruedas

Ahora tomamos una de las ruedas, en este caso elegí una que denominé Rueda madre (la trasera derecha asumiendo que la oruga se mueve hacia la parte positiva del eje Y) y le bloqueamos todo menos la rotación en X. Luego le indicamos en un Driver que cuando el cubo se desplace en Y, la rueda en cuestión rote en X:


Repetimos lo mismo con la rueda izquierda y a las demás ruedas de un mismo lado le asigmanos una Constraint Copy Rotación de las sendas ruedas madres de cada lado. 
Entonces, para resumir, el Driver controla la rueda madre haciéndola girar cuando el cubo padre se desplaza. Y esta rueda madre controla todas las demás de cada lado haciéndolas rotar de la misma manera que ella.


Parte final. Haciendo mover las ruedas y las orugas de forma diferencial

Como se dijo más arriba, cuando un vehículo provisto de oruga dobla, lo hace moviendo las orugas una en sentido contrario de la otra. Para lograr esto, creamos un objeto que no se renderizará y lo posicionaremos en cada uno de los círculos Bezier como hicimos con las secciones de las orugas. A este objeto le asignaremos un Driver que le indique su movimiento en el eje Y cuando el cubo padre rote en el eje Z. Al objeto lo emparentamos como hijo del cubo padre y a la oruga la emparentamos como hija de ese objeto.
Por último, le tenemos que decir a las ruedas que también hagan lo propio cuando el cubo padre rota. Entonces, sobre ambas ruedas madre posicionamos dos cubos como se indica en la siguiente figura y a las ruedas las emparentamos como hijas de estos nuevos objetos que podemos nombrar como rotor:

Orugas animadas en Blender 2.70 finalizadas.
A estos dos nuevos objetos denominados rotores les agregamos un Driver que los haga rotar de la misma manera que las orugas cuando el cubo padre rote. Para ello, en Drivers copiarán del mismo modo que las orugas el desplazamiento de aquel otro objeto que pusimos sobre ellas (ver imagen anterior a esta de arriba).
Cuando hagamos lo mismo con las dos orugas, ya todo debería funcionar. Si las demás ruedas no se mueven copiando el movimiento de la rueda madre, probar pasando las Constraint de Local Space a World Space, al igual que en los Drivers, cambiar de Local Space, World Space o Transform Space (esto todavía no lo comprendo del todo).

Abajo, un video donde se muestran las orugas en funcionamiento

(No he tenido tiempo de diseñar el aparato que contendrá dichas orugas, las mismas se mueven y se mantienen cohesionadas en toda su estructura de forma misteriosa, gracias quizás a una fuerza sobrenatural provista vaya uno a saber por qué ente).




Última aclaración: todos esos objetos que nos sirvieron para animar las orugas: el cubo padre, los dos rotores de las ruedas y los dos manejadores de las orugas van en una Layer aparte que no se renderiza.

Pf. Mariano Miguel Lanzi

1 comentario:

Melani Vidal dijo...

muy buen tutorial, gracias por su tiempo. me a funcionado para hacer un tiger II