Rigging y configuración de ojos

Por Manuel "Picasus" Pérez

Este capítulo ha sido escrito por Picasus, con mínimos retoques míos. Picasus es responsable de varias animaciones entre ellas, las escenas de vuelo de Juan (el gorrión) en la demo de Plumíferos. Así que los dejo con el maestro...

Introducción:

En este capítulo nos pondremos a configurar los ojos de nuestro personaje aplicando las técnicas y herramientas nuevas de Blender 2.40. Prepararemos un setup para nuestro personaje que sea a la vez efectivo y cómodo de utilizar.

Utilizaremos una combinación de “IPO drivers” y huesos. En versiones anteriores de Blender solo utilizábamos huesos o emptys para dirigir la mirada, ahora podremos combinar este movimiento acompañado con el movimiento del mesh que cubre los ojos (definidos mediante ShapeKeys) para simular los movimientos de parpados segun la mirada.

Rigging inicial.

Al Armature que hemos generado para nuestro personaje en los capítulos anteriores, le agregaremos unos huesos más para los ojos.

En la vista lateral derecha agregaremos cuatro huesos en la zona del ojo derecho como se ve en la figura. 

riggingojos

ojosrigging2

Es importante que las puntas de los huesos lleguen hasta donde se ve en la imagen y deben nacer en el centro del ojo, para lograr una buena animación.
En modo edición del Armature, emparentaremos los huesos “arriba.R” y “abajo.R” (según nombres de la imagen) al hueso “general.R” los emparentaremos de la forma “Keep offset”.

De esta forma lograremos que los huesos “arriba.R” y “abajo.R” sean movidos por el hueso “general.R”
También emparentamos los huesos “general.R” y “ojo.R” (en nuestro caso) al hueso “cabeza” que es lo más lógico si no queremos dejar los ojos por ahí al andar...

Antes de seguir, duplicaremos los huesos y haremos un mirror de los mismos usando el cursor como referencia en el centro del armature, para que queden posicionados sobre el ojo izquierdo. Los dejaremos allí y volveremos sobre ellos hacia el final del capítulo.

Skinning de ojos

Aunque podríamos utilizar Envolventes para hacer el skinning de los ojos, en este caso en particular, es muchísimo más efectivo hacerlo mediante Grupos de Vertices creados manualmente.

Seleccionaremos la malla y entraremos en Modo Edición. Una vez allí crearemos tres grupos de vértices uno que llamaremos ojo.R (al que asignaremos los vertices del globo ocular), arriba.R (que incluirá solo los vertices del parpado superior) y abajo.R (que incluirá los vertices del parpado inferior. En la imagen se pueden apreciar los 3 grupos creados.

ojos-grupos

Para aprovechar estos grupos de vertices, activaremos el botón "Vert. Groups" del modificador Armature que posee nuestro personaje (creado en capítulos anteriores).

vertgroups

Entrando en el modo pose del armature confirmaremos que todo esté bien rotando los huesos. La malla debería moverse según lo que se buscaba.

Creando un control (widget)

Ahora haremos algo más simple para descansar un poco las seguramente agotadas neuronas. Si bien, podriamos comenzar a animar agregando keyframes a los huesos que hemos creado, existe una manera mucho más conveniente de trabajar y es usando un widget (o control) con IPO drivers para automatizar la animación facial que acompañará a la animación de los ojos.

Lo que haremos será crear uno de estos controles a medida de nuestras necesidades usando geometría simple. Esto puede hacerse también mediante un script python que viene incluido en Blender y que explicaremos más adelante. Por ahora utilizaremos el método manual.

En una ventana 3D nueva generaremos un plano (add –> mesh ->plane). Esta ventana 3D será nuestro "centro de control". Sin escalar el plano ni nada, saldremos del modo edición y pulsaremos la tecla N para ver el panel de transformaciones del objeto. Pondremos “0” (cero) en las tres coordenadas de LOC (es muy importante que este plano tenga las coordenadas de “Loc” en cero y “Size” en 1 (uno) ).

Una vez realizado esto, llevaremos el cursor al centro del plano con SHIFT+ S -> “cur->sel”. Agregaremos un
círculo, no importa la cantidad de vértices (pero mientras menos sean, mejor para evitar un aumento innecesario de vertices en la escena), lo que a uno le parezca cómodo estará bien. Lo escalamos un poco para que quede como la siguiente imagen y lo llamaremos “cont_ojo”.

widget

Ahora emparentamos el circulo al plano, y posicionaremos el plano donde nos quede cómodo para trabajar.

(veremos que las coordenadas del circulo en LOC siempre serán cero cuando se encuentra en el centro del plano y uno cuando llega a los bordes, que es justo lo que necesitamos para nuestro siguiente paso.

Animando (una vez) los ojos

Vamos a definir las poses que serán controladas por nuestro "control". Simplemente insertaremos keyframes de rotación en los huesos del ojo para luego asignárselos a nuestro “controlador” mediante los “IPO drivers”.

Solo fijaremos key en los huesos “general.R” y “ojo.R”. Comenzaremos con el hueso “general.R” (el mas simple).

Fijaremos 3 keyframes rotando solamente en “Z” (podemos ayudarnos con el widget de rotación en coordenadas Normal), uno en el centro (sin rotación), otro rotando hacia abajo y otro hacia arriba.

Lo rotaremos en el rango lógico posible que nuestro personaje tenga para su mirada.

El primer Key lo insertaremos en el cuadro 2, así que nos iremos allí, y sin mover nada pulsaremos la tecla “I” -> “rot”.

El segundo keyframe, lo insertaremos en el frame 1, así que volvemos y lo rotamos hacia abajo (tener en cuanta el limite que tenga nuestro personaje en su mirada).

Por último insertaremos el keyframe final en el frame 3, nos iremos allí y rotaremos la mirada hacia arriba e insertaremos el keyframe (en los tres casos agregar solo key de rotación o utilizar la opción "Avail" en los últimos dos).

animaojos

Bien, tanto en la ventana de “Ipo Curve” como “Action editor” veremos los key frame que pusimos. Nos vamos a la ventana de “Ipo Curve” y en “Pose” seleccionamos todas las curvas, entramos en edición (TAB) y apretamos “v” asi tendremos curvas lineales.

Salimos del modo edición de las curvas y teniendo todas las curvas seleccionadas, las moveremos"hacia atrás" de manera que quede el primer keyframe en el cuadro –1, el segundo en el cuadro 0 y el tercero en el cuadro 1. (debería quedar algo parecido a la imagen siguiente). Ahora seguiremos casi los mismos pasos con el hueso “ojo.R” aunque este tiene un agregado mas que lo hace mas complicado, pero a no desesperar, ya estamos cerca de terminar.

En el frame 2 fijamos un Key sin mover nada, en el frame 1, rotamos el hueso hacia la nariz y fijamos key, y por último en el frame 3 rotamos el hueso hacia afuera, en las tres ocasiones pondremos key en rotación, y rotaremos en X.

Hasta ahora solo tenemos la rotación del ojo sólo en “x”, pero también necesitaremos la rotación en “y”, no lo hicimos antes porque se vuelve un tanto engorroso, así que lo haremos a mano.

Para esto seleccionamos la curva “QuatZ”, si está todo bien los tres “key” que hay en ésta estarán en “0”. Corregiremos el primer key y el tercero, dejando al del medio como está.

Seleccionamos la curva y entramos en modo edición (TAB), seleccionamos el primer key y apretamos “n” y donde dice “Vertex Y” pondremos un valor de 0.20. Antes de seguir, observar que la rotación que tomó el hueso se vea real para una mirada, pensar que en ese momento el personaje estaría mirando hacia su derecha y abajo, si aun falta o sobra (esto dependerá del personaje) se irá cambiando el valor hasta encontrar la posición correcta.

Ahora seleccionamos el key del cuadro 3 y le damos el mismo valor que en el cuadro 1, pero en negativo, en este caso pondremos en “vertex Y” un valor de –0.20.

Seleccionamos todas las curvas, entramos en modo edición y apretamos “V”, salimos de edición, volvemos a seleccionar todas las curvas y las llevamos para atrás como hicimos con el hueso anterior, llevándolas a que quedenen el frame –1, 0 y 1.

Si todo fue bien, debería quedar algo parecido a la siguiente imagen

animaojos2

Listo!! Ya casi estamos, ya hemos fijado todos los movimientos que puede realizar nuestro ojo, ahora a moverlo!!

Configurando el “Controlador” con IPO Drivers

Ahora empezaremos a darle vida a este ojo, que ya nos debe tener un tanto cansados, pero ya nos falta casi nada.

Empecemos seleccionando el hueso “general.R” (en modo pose), ahora agregaremos los drivers para “QuatW, X, Y y Z” cada uno de estos son individuales cuando agregamos un driver.

Seleccionamos “Quat W” y apretamos “n” y luego “Add Driver” y en “Ob” pondremos el nombre de nuestro olvidado circulo, en este caso “cont_ojo” y cambiaremos “loc x” por “loc Z” que será en la dirección que movamos el circulo para
animar este hueso.

Antes de seguir agregando drivers en las demás curvas, copiaremos el nombre del circulo, ya que lo usaremos unas cuantas veces, para esto, posicionamos el cursor sobre “ob” en el panel que abrimos con “n” y hacemos CTRL+C.

Ahora haremos lo mismo con “Quat X, Y y Z” usando CTRL.+V para pegar el nombre del circulo y poniendo en todos
los casos “Loc Z”.

Seguimos con el hueso “ojo.R” (ya terminamos!!). Vamos a hacer lo mismo que con el hueso anterior, seleccionamos cada “Quat” y le agregamos un IPO driver, pegamos el nombre del circulo y le haremos “Loc X” en “Quat X” y “Quat W”, y “Loc Z” en “Quat Y” y Quat Z”.

Y listo!!! Al mover el circulo dentro del cuadrado para todos lados nuestro ojo se moverá.

Sólo nos falta unos pequeños detalles para terminar y así tener una buena mirada de nuestro personaje, nos faltan dos pasos, uno, hacer que el otro ojo se mueva y suavizar un poco la malla.

Moviendo el compañero

Seleccionamos el “Armature” y pulsamos la tecla “/” ("Modo Local", para trabajar mas cómodos). En en modo “pose” seleccionamos el hueso “general.L” y en “editing” (F9) le agregaremos un Constraint (add constraint) de “Copy Rotation”. Le pondremos en “Ob:", "Armature" (nombre de nuestra Armature) y en “BO” : ”general.R”. Lo mismo haremos con el hueso “ojo.L” poniendo en esta ocasión en “BO” : “ojo.R”.

Ahora, al animarse un ojo,el otro se animará de igual manera.

Conclusión

Con este setup, es muy sencillo animar los ojos del personaje, bastará ahora con mover el control e insertarle keyframes y tendremos nuestros dos ojos animados. Pueden ver un ejemplo preparado por Picasus aquí.