NLA ? (Nunca Lograré Animar ?)

por Malefico


Con la llegada de Publisher algunos pocos afortunados pudieron disfrutar de la Animacion No Lineal. Ahora que Blender 2.25 fue liberado por la Blender Fundation todos tenemos la posibilidad de explorar las ventajas de esta nueva cualidad de Blender (y escribir tutoriales como este) pero desgraciadamente la documentación oficial es un tanto "concisa" por decir algo.

En este tutorial intentaré transmitirles las cosas que pude descubrir después de leer la documentación, preguntar por ahí y experimentar por aquí.

ADVERTENCIA: Este tutorial requiere un conocimiento intermedio del manejo de Blender en lo que respecta a operaciones de animación con armatures que no serán explicadas aquí.

Para seguir este tutorial necesitaran al menos la version 2.25 de Blender Publisher (dscargable de Blender Dot Org).

Viejos Problemas


Primero que nada dejenme recordar brevemente como se animan personajes con armatures en Blender. Como bien saben (o deberían si leyeron la ADVERTENCIA) lo que se hace es definir "acciones" para nuestra armature. Estas acciones contendrán las poses que queremos que nuestro personaje adopte a lo largo de la linea de tiempo. El problema comienza a vsilumbrarse cuando uno anima acciones ciclicas (como una caminata) pero al mismo tiempo quiere que el personaje haga otras cosas (como estornudar, guiñar un ojo, o agacharse un momento).

Lo más racional no es hacer una única acción donde el personaje camine, guiñe, estornude y se agache sino desdoblar la accion compleja en acciones más simples y luego componer la secuencia combinando estas acciones. Sino, las acciones no podrían reutilizarse de forma sencilla en otras escenas y todo sería malo y feo :-P.

Cuando no existía el NLA en Blender, el animador de personajes se encontraba con el siguiente escollo: para combinar las acciones en una secuencia uno debía crear una accion "depósito" donde pegar las veces que haga falta las acciones mas simples en forma secuencial (de ahí que esto se llamara "Animación Lineal"). Así se resolvía el problema de la reutilización de acciones, pero no el de simultaneidad de acciones puesto que no había forma de superponer poses. Este otro problemita podía resolverse si uno copiaba las "keyframes" de la accion "guiñar" por ejemplo y las pegaba en el moemnto oportuno de la accion "deposito", lo que resulta bastante laborioso y propenso a errores que no voy a describir aquí...

Soluciones Nuevas


Ahora que están mas o menos convencidos que antes todo era malo, dificil y oscuro, presentamos a la Animacion No Lineal o NLA, el amigo de los niños y defensor de los inmigrantes ilegales !!!

Para poder siquiera intentar algo necesitaremos un personaje modelado, un armature y un par de acciones definidas. Si no saben de donde sacar todo eso, bajenlo de aquí. Recuerden: jamás salir a tutorear sin llevar un blend ;-)

Cuando abran el blend verán cuatro ventanas, una ventana 3D con el personaje (criticas abstenerse), otra con la ventana de acciones, otra con curvas IPO (sin ninguna curva, en realidad) y por ultimo la ventana NLA. Si seleccionan el armature y van a la ventana de acciones verán que existen dos acciones definidas: "caminar" y "brazos". En cada una de estas acciones solo hay "keyframes" para los huesos del armature que nos interesan, en la acción "caminar" solo hay keys para las piernas y en "brazos"... adivinen.

La idea es trabajar en cada movimiento simple y luego combinar todo en la ventana NLA.

Para agregar acciones en la ventana NLA deberemos posicionar el ratón sobre el canal del armature que nos interese y pulsar SHIFT+A. Se desplegará un menú con los nombres de todas las acciones disponibles. Si no ubicamos el ratón sobre el canal del armature nos aparecerá un error con el mensaje "ERROR: Not an armature".

Será conveniente que al momento de agregar acciones, no tengamos asignada NINGUNA accion al armature. ¿ Por qué ? porque de hacerlo así nos aparecerán en la ventana NLA todos los keyframes de la accion seleccionada y al hacer ALT+A solo veremos aplicada esta accion y no las que agreguemos sucesivamente.

Entonces, sin tener ninguna accion activa en la ventana de acciones, pulsamos SHIFT+A y agregamos la accion "caminar" que aparecerá como una "banda NLA" amarilla mientras sea la banda activa, o rosada si no lo es.

Si de cualquier manera, vemos la accion como una sucesion de keyframes, podremos convertirla a "banda" seleccionando ese canal y pulsando "C" para convertirlo a banda. Esto además deselecciona la accion (no la borra) de la ventana de accion.

Como esta accion es una accion ciclica, nos interesa repetirla en el tiempo. Pero antes de empezar a copiar y pegar como locos, movamos el ratón sobre la banda amarilla y pulsemos "N".

Ahora podremos editar las propiedades de esta accion que se ven a continuación:

Aquí se ven varias cosas, entre ellas la cantidad de frames que tiene la acción (Action Range) y la duración de la misma dentro de la animación o linea de tiempo (Timeline Range) indicada por el frame inicial y final. Si modificamos este ultimo par de valores podremos alargar la accion en el tiempo produciendo una ejecucion de la accion "retardada" o "acelerada" a lo largo del tiempo. Nos vamos a concentrar en el valor "Repeat". Aquí podemos especificar cuantas veces queremos que la accion se repita a lo largo de la linea de tiempo. Como nuestra accion tiene 25 cuadros y la animacion entera la he hecho de 100, me pareció bien repetir el ciclo 4 veces. Sin embargo podría haber puesto otro número y Blender se habría encargado de fundir los ciclos de manera de no producir saltos en la animación. Pruebenlo por ejemplo con 7 y verán que el personaje camina más rápido.

Para que la animacion no comience o termine bruscamente se dispone de las opciones BlendIn y BlendOut donde se indicará el numero de cuadros que se usarán para "interpolar" movimientos. Esto es ideal para fundir acciones entre sí, lograndose una transición mas natural.

Ahora si se hace ALT+A en la ventana 3D se puede ver como el ciclo se repite suavemente. Claro, hasta ahora no hemos visto nada realmente nuevo. Volvamos a la ventana NLA y agreguemos otra accion, en este caso "brazos". Esta accion es mas corta, pues tiene 21 cuadros, pero la repetiremos 4 veces y le pondremos un timeline de 100 tambien (estos parametros ya estan ingresados en el blend, basta verlos pulsando N mientras se mueve el cursor sobre la banda de animacion. Podemos jugar con el numero de repeticiones, el cuadro inicial o final de la animacion en el timeline y ver los resultados de nuestra experimentacion: ahora mientras camina, el personaje balancea los brazos en forma natural.

La magia de la NLA


Esto no seria nada sino pudieramos aprovecharlo para hacer desplazamientos de los personajes. Para ello disponemos de las opciones "Use Path" y "Stride". Si emparentamos el armature de nuestro personaje a una curva de tipo PATH o sendero, y tenemos activada la opción "Use Path", la accion se ajustará al desplazamiento a lo largo del camino según lo indicado en el parámetro "Stride". Por ejemplo si ponemos Stride = 8, cuando la accion ejecute un ciclo, el armature avanzará 8 cuadros de PATH (recordemos que la longitud del path está definida en los botones de animación).

Para ver esto funcionando, cambien a la escena PATH en el blend de ejemplo y hagan ALT+A en la ventana 3D. Aquí he modificado el BlendIn y el BlendOut de la accion "caminar" y tambien modifiqué la curva IPO del path haciendola poligonal, para que no se vean las caracteristicas aceleradas y frenadas del principio y final del camino (ver la ventana IPO).

Algo más de variedad


Otras opciones que no comentamos aún son "Add" que activa el modo de mezclado "aditivo" de las acciones y "Hold" que fija el ultimo cuadro de una acción.

Con ADD activado, el efecto de una accion se sumará al de las precedentes, produciendo (si actuan sobre los mismos huesos) desplazamientos mayores de lo normal.

"Hold" se puede utilizar para obligar al personaje a mantener una postura luego de haberla alcanzado. Por ejemplo, podría haber una accion "GirarCabeza" y hacerla Hold para que la cabeza permanezca girada luego hasta el final de la animacion.

Ya no queda mucho por decir sobre la NLA aplicada a armatures. Ahora solo resta experimentar y mostrar los resultados de tus animaciones al mundo. Una ultima recomendacion: en la ventana NLA podemos editar keyframes, duplicandolos con SHIFT+D, arrastrandolos con G y borrandolos con X, pero al borrarlos, se borraran permanentemente tambien los keyframes de las acciones como si lo hubieramos hecho en la ventana de acciones. Asi que mucho cuidado y antes de borrar nada, mejor conviertan a "banda NLA" cualquier accion.

Mucha suerte blendermaniacos !