Rigging de bípedos


Veremos cómo crear y configurar un armature para animar un personaje bípedo. La primer parte muestra cómo crear el armature, y la segunda cómo configurarlo agregandole constraints para hacerlo completamente funcional.
Rigging Parte 1: Creando el armature
Rigging Parte 2: Añadiendo Restricciones
Rigging Parte 3: Ajustando límites de rotación
Parte 1: creando el armature
Introducción


Hemos visto las propiedades básicas de un armature, ahora utilizaremos los conceptos aprendidos para crear un personaje bípedo tradicional que son la mayoría de los personajes.
Durante este capítulo utilizaremos el modelo "malefico", disponible para descarga.
Comenzando

Cargaremos el modelo de nuestro personaje en la vista frontal. Si bien podríamos crear el armature completamente sin la ayuda de ningún personaje modelado, el tenerlo allí como referencia será útil a los fines didacticos.
Colocaremos el personaje en el centro de coordenadas, y allí ubicaremos el cursor. Vamos a crear un armature de tres huesos verticales como hemos visto en el capítulo anterior. Los 3 huesos haran las veces de cadera, abdomen y pecho por lo que les daremos dimensiones apropiadas. Crearemos los tres huesos haciendo clik en la pantalla con CTRL pulsado. Una vez terminados, los ajustaremos para que queden perfectamente verticales. Les daremos nombres apropiados a cada uno.

Rigging de bipedos-a2.jpg


Rigging de bipedos-a3.jpg


Ahora duplicaremos esta cadena y la usaremos para crear un brazo, también en la vista frontal. Solo haremos el brazo derecho. Nombraremos los 3 huesos de la siguiente manera: "B1.R", "B2.R" y "B3.R".
Ya hemos visto el significado del ".R" final.
Crearemos ahora la pierna derecha del personaje, moviendo el cursor a la zona derecha de la cadera, y usando el toolbox -> Add Bone. Crearemos una cadena de dos huesos solamente, con la articulación en la "rodilla" del personaje. Nombraremos los huesos como "P1.R" y "P2.L".
Saldremos momentaneamente del modo Edición y ubicaremos el cursor en el centro del armature.

Rigging de bipedos-a4.jpg



Sin cambiar el cursor de lugar, entraremos otra vez a Modo Edición y seleccionaremos las cadenas del brazo y pierna (pulsar "L" sobre un hueso de cada cadena para seleccionarla entera). Las duplicaremos (ambas a la vez) usando
SHIFT+D y presionando la barra espaciadora SIN MOVER los huesos nuevos. Ahora activaremos la REFERENCIA CURSOR, y pulsaremos "M" para entrar al menú "Mirror Axis". Elegiremos la opción "X Global" y pulsaremos la barra espaciadora para confirmar el comando. Quizás notemos algún tipo de rotación axial de los huesos al hacer el "mirror", si esto ocurre, lo corregiremos con CTRL+N (Recalc Roll Bones Angle) las veces que haga falta.

Rigging de bipedos-a5.jpg


Tenemos ahora las dos cadenas en la posición opuesta, pero con nombres inútiles para nuestros fines. Seleccionaremos únicamente estas dos cadenas, y pulsaremos "W" y la opción "Flip Left-Right Names". Ya está ! tenemos ahora un armature básico listo!

Rigging de bipedos-a6.jpg


Modelado simétrico.

Activaremos la opción "X-Axis Mirror Edit" en los botones de edición. Con esta opción activada y habiendo nombrado los huesos siguiendo la convención ".R/.L", al editar una mitad del armature se actualizaran los cambios en la otra mitad.
Hasta ahora habíamos trabajado exclusivamente en la vista frontal, no tenemos idea del aspecto de nuestro armature en la vista lateral, pero les aseguro que no esta nada bien.
Teniendo activado el "X-Axis Mirror Edit" solo deberemos preocuparnos de editar una mitad del armature. Haremos entonces los ajustes necesarios en la vista lateral. Sera de suma utilidad emplear los controles de traslación (widgets) accesibles a través del icono de la palma en la cabecera de la ventana 3D.
La idea es que los huesos queden totalmente cubierto por la malla del personaje, como lo estarían los huesos cubiertos por carne en una persona real.

Rigging de bipedos-a7.jpg


Seleccionaremos la cola del hueso P2.R y extrudaremos una vez "hacia atras" en la vista lateral (facilmente pulsando la tecla "Y" luego de la "E" de extrudar).
Veremos que al mismo tiempo un hueso homólogo se crea en la otra mitad del armature.
Volveremos a seleccionar la cola del hueso P2.R y otra vez extrudaremos, pero esta vez "hacia adelante" hasta la punta del pie (otra vez usaremos la tecla "Y" para restringir a esa coordenada). Seleccionaremos este hueso entero, y los subdividiremos
una vez (W -> Subdivide).

Rigging de bipedos-a8.jpg


Los huesos que van "hacia atras" los llamaremos "IKpie.R" e "IKpie.L" respectivamente.
Haremos algo similar en los brazos. Seleccionaremos la cola del hueso B3.R y lo extrudaremos "hacia abajo", luego volveremos a extrudarlo "hacia adelante" para crear un hueso que abarque totalmente el largo de la mano.

Rigging de bipedos-a9.jpg


Los huesos que hicimos "hacia abajo" los llamaremos "IKmano.R" e "IKmano.L" respectivamente.
Por ahora no crearemos más huesos en la mano, eso lo veremos en un capítulo más adelante.

Jerarquías y emparentados.

Seleccionaremos el hueso P1.R y sin deseleccionarlo, seleccionaremos también el hueso Cadera (en ese orden). Emparentaremos ambos huesos pulsando CTRL+P.
Elegiremos la opción "Keep Offset". Una línea punteada se dibujara uniendo ambos huesos. Emparentaremos a la cadera el hueso P1.L también (de la misma manera).
Al emparentar estamos creando una jerarquía de huesos, significa que si movemos el hueso cadera (en modo Pose) también se moveran los huesos P1.L y
P1.R, que a su vez moveran al resto de los huesos de las piernas del personaje.
Podemos distinguir entonces dos tipos de emparentado, aquel que une el hueso
P1.R y al hueso P2.R por ejemplo, que sería un emparentado "Conectado" ya que no medía entre ambos huesos ninguna distancia o separación; y aquel que une al hueso Cadera al hueso P1.R, o un emparentado "manteniendo la distancia", que se indica con una línea punteada.
Emparentaremos ahora los brazos (huesos B1.R y B1.L) al hueso Pecho.
Basicamente hemos terminado, tenemos un armature humanoide.
Como último paso de la creación de este armature nos aseguraremos que la orientación de los ejes de cada hueso sea coherente, de modo que cuando hablemos del "eje Z del hueso X", estemos seguros que ese eje apunta en la misma dirección
que en los otros huesos.
Para ello nos pondremos en la Vista Frontal, seleccionaremos todos los huesos en Modo Edición (pulsar tecla "A") y luego pulsaremos CTRL+"N", lo que nos preguntara "Recalc Bone Roll Angle? ". Haremos clic con el ratón para afirmar.
Si somos observadores, veremos que algunos huesos se realinean a la vista de manera que ahora todo se ve más regular.
Ahora es el momento de empezar a añadir Constraints para que el armature se porte como es debido.

Parte 2: Constraints

Introducción

En la parte 1 hemos creado una serie de huesos, los hemos nombrado y aplicado jerarquías. En esta parte terminaremos el rigging básico aplicando "restricciones" o "Constraints" que automatizaran el comportamiento del armature completo dándole funcionalidades muy útiles para animar.
Las constraints son entidades que restringen el movimiento de los huesos y nos permiten controlar un armature y animarlo de manera más realista y natural. Las aplicaremos siempre en Modo Pose, y muchas veces será importante el orden de selección de los huesos por lo que se recomienda seguir las instrucciones "al pie de la letra".
CinematicaInversao"IK"
Cuando creamos los huesos de manos y pies, usamos nombres que a priori pueden parecer arbitrarios, en particular llamamos a algunos huesos "IKmano" o "IKpie". El prefijo "IK" que usamos esta relacionado con "Inverse Kinematics" o Cinemática Inversa que es un mecanismo muy útil que pasaremos a explicar.
Cuando tenemos una cadena de huesos como se vió en "Jerarquías y emparentados", al mover el hueso raíz de la cadena, toda la cadena se mueve. Esto se llama "Cinematica Directa" o "Forward Kinematics" ("FK") en inglés. Imaginemos el caso de un brazo. Esto significaría que estando la raíz de la cadena en el hombro, si yo quisiera mover la mano (por ejemplo llevarla al pecho del personaje), debería primero rotar el hombro, luego rotar el biceps, y por último rotar la mano hasta la posición deseada.
Con el uso de IK en cambio, lo único que deberíamos hacer es tomar la mano y llevarla hasta el pecho del personaje. El hombro y el biceps rotarían automáticamente haciendo pivote en la raíz de la cadena.
Esta claro que este tipo de sistemas son muchísimo más cómodos y practicos para animar extremidades, que el sistema FK.
Vamos a ver como implementamos esta solución a nuestro armature en Blender.
Primero vamos a hacer unos ajustes a nuestro armature. El sistema de IK funciona con lo que se llama un "target" o blanco. Es decir, un hueso que al moverse indica la posición que debera resolverse mediante rotaciones de los componentes de la cadena. Estos "targets" serán los huesos que hemos llamado "IKmano" o "IKpie".
Para que puedan funcionar como targets, no deben estar emparentados a ningún hueso de la cadena que se quiere resolver por IK.

Rigging de bipedos-a10.jpg


Por ello entraremos en Modo Edición, seleccionaremos el hueso "IKmano.R" y en los botones de edición, dejaremos en blanco el campo "Child of" ("hijo de").
Haremos lo mismo para todos los huesos "IK". Listo, ya podemos proseguir.
Restringiendo
Seleccionaremos el armature y entraremos en modo Pose. Vamos a crear una restricción llamada "IKSolver" en las extremidades de nuestro personaje que es la manera de aplicar en Blender la teoría explicada antes.
Seleccionaremos el hueso IKmano.R. y LUEGO el hueso B3.R. Ahora pulsaremos CTRL+I y elegiremos la opción "To Selected Bone".La lógica de selección sería, primero el target, luego el hueso que alojara la restricción.
Si bien hemos decidido usar huesos como blanco de las restricciones IK,también es posible utilizar empties. Usar uno u otro dependerá de la situación, a veces es más sencillo utilizar empties, otras veces convendra utilizar huesos.

Rigging de bipedos-a11.jpg


El hueso B3.R se pondrá de color amarillo indicando que posee ahora una restricción de tipo IK Solver. Al mismo tiempo, aparecerá una línea punteada amarilla que va desde el "pivote" de la cadena, hasta el final de la misma. Los parámetros de esta restricción los podremos ver en los botones de Objeto, en el panel "Constraints", siempre que tengamos el hueso "amarillo" seleccionado en Modo Pose. Vemos que tiene activado el botón "Use Tip". Esto simplifica la configuración, ya veremos otros
casos donde no se usara así.
Si ahora (siempre en modo Pose) tomamos el hueso IKmano.R y lo movemos (no rotarlo) veremos como la cadena del brazo se acómoda para seguir a este hueso.
No solo eso, otros huesos rotaran también, por ejemplo los huesos de la espina del personaje.
Esto se debe a que por defecto, la cadena IK se propaga siguiendo todas las relaciones jerarquicas que existan.
Para limitar el efecto, deberemos indicar un valor distinto de cero en la casilla ChainLen (Longitud de cadena) de la restricción IK, en este caso usaremos un valor igual a 3, puesto que la cadena se compone de 3 huesos.
Seguiremos poniendo restricciones IK para los huesos B3.L (apuntando a IKmano.L), el hueso P2.R (usando como target a IKpie.R), y P2.L (usando como target a IKpie.L).
Podemos probar la configuración moviendo estos huesos en Modo Pose. Los brazos y piernas deberían moverse en consonancia con los "blancos".

Rigging de bipedos-a12.jpg


También podemos agregarle una restricción IK, a la columna. Probemos seleccionando el hueso "Cabeza" y luego el hueso "Pecho" y pulsando CTRL+I. Ahora al mover el hueso Cabeza, la columna se moverá haciendo pivote en el hueso "Cadera".

Algunas Bisagras

Observemos por un momento el pie del personaje. De la manera que hemos configurado los IK de pies y manos, si tomamos el hueso Cadera en Modo Pose y lo movemos "hacia abajo", veremos que ocurre algo curioso.
En efecto, los pies del personaje rotan haciendo pivote en el "talón". Esto por supuesto es algo extraño y complicara la animación pues deberemos rotar los pies para mantenerlos horizontales (es decir, "apoyados en el suelo").
Hay una manera muy sencilla de evitar este comportamiento y es mediante el uso de
"Bisagras" ("Hinges" en inglés).
Cualquier hueso puede ser configurado como una bisagra con lo cual, la rotación del hueso precedente, no lo afectara de ninguna manera. En este caso lo que deseamos es que la rotación del hueso P2 no afecte a la orientación de los huesos P3.
O lo que es lo mismo, queremos que P3 sea un hueso bisagra.
Para ello seleccionaremos el hueso P3 en Modo Edición y pulsaremos el botón
"Hinge" en los botones de edición. Eso es todo.

Rigging de bipedos-a13.jpg


Si ahora volvemos a mover el hueso Cadera en Modo Pose, veremos como el pie se mantiene horizontal, independientemente de lo que ocurra con el resto de la pierna.

Parte 3: Límites de Rotación

Introducción

En la parte 2 hemos empezado a configurar nuestro armature añadiendole algunas restricciones IKSolver. Si bien todo parece funcionar maravillosamente, hay aún algunos detalles que deberemos ajustar.
Cuando movemos el blanco de una cadena IK, por ejemplo para animar el brazo de un personaje, puede ocurrir que la cadena adopte rotaciones o angulos anti naturales. Rotaciones que normalmente serían imposibles en un personaje real.
Las rotaciones posibles de un hueso se conocen como sus "grados de libertad" o "Degree of Freedom" (abreviado DoF, no confundir con Depth of Field, que también se abrevia DoF y que se refiere al bien conocido efecto de "Profundidad de Campo"). Así
si un hueso tiene DoF=1 significa que solo puede rotar en un eje, si fuera DoF=2, podría rotar alrededor de 2 de sus ejes, etc.
Para evitar estos resultados desagradables, disponemos de una manera efectiva de limitar o acotar las rotaciones de los huesos que forman una cadena IK, es decir limitar sus grados de libertad.

Límite spara las piernas


Para cada hueso que forma una cadena IK podemos optar entre bloquear completamente la rotación sobre cualquier eje local, o bien restringir esta rotación entre un par de valores desde -180 a +180 grados.Estos angulos deben entenderse como tomados desde el cero en el eje local del hueso en reposo, y teniendo valores positivos en sentido antihorario, de la misma manera que se hace normalmente.

Rigging de bipedos-a14.jpg


El rango -180 a +180 aparece como un círculo rojo.
Ni bien activamos los botones "Limit X", "Limit Y" o "Limit Z", aparecerán gráficados en Modo Pose fragmentos de arco indicando el rango permitido de rotación.
Si limitamos más de un eje, aparecerá también gráficada el área elipsoidal cubierta por estos rangos.
Si seleccionamos el hueso P1.R de la pierna derecha de nuestro armature en Modo Pose y vamos a los botones de edición, veremos en el panel Armature Bones, los botones de límites de rotación.

Para el muslo del personaje, podemos pensar que lo natural sería limitar las rotaciones en X (hacia adelante y atras) y en Z (hacia izquierda y derecha). La rotación alrededor del eje Y (longitudinal) podemos anularla completamente pulsando el botón "Lok Y". Le daremos a Limit X un valor límite de modo que al levantar el muslo, no supere el rango entre 0 y -100 grados, de esta manera la rodilla del personaje se articulara siempre de manera natural. Para Limit Z usaremos un rango que limite las rotaciones laterales del hueso. En este caso opté por un rango -60 a +60 grados.

Rigging de bipedos-a15.jpg


Los límites de rotación aparecen como áreas de esfera.
De la misma manera, limitaremos la rotación del hueso P2.R para que la rodille nunca se doble "hacia adelante" (rotación alrededor del eje X) superando el ángulo de la rodilla (-20 grados), y que nunca se doble"hacia atras" tanto como para que el
personaje se pegue con los talones en las nalgas (70 grados). Los valores se resumen en la figura que sigue. Para las rotaciones "laterales" del hueso P2.R he optado por un valor conservativo de -30 a +30 que es más o menos lo que puedo mover yo mismo sin quebrarme la pierna y le he añadido un valor de Stiffness (Rigidez) a esa articulación para hacerla menos flexible.

Rigging de bipedos-a16.jpg


Valores optativos para las piernas, he añadido algo de "Stiff" que actúa como "Rigidez" de la articulación.

Límites para la columna

Procederemos a aplicar límites a los huesos de la columna, de forma que la cadera no pueda rotar libremente sobre el eje longitudinal Y (se vería realmente extraño si uno pudiera retorcerse 360 grados) y acotaremos las posibilidades de flexión de la cintura.

Rigging de bipedos-a17.jpg


Vista frontal y lateral de la columna y sus límites de rotación
Observar que una vez activados los botones Limit, siempre se visualizaran en Modo Pose, los rangos de rotación permitidos de cada hueso.

Límites para los brazos

Para el caso de los huesos del brazo, adoptaremos límites que correspondan con los giros normales de hombro, biceps y antebrazo. Observar que si bien el biceps no puede "retorcerse", es decir, girar sobre su eje longitudinal, el antebrazo sí puede
hacerlo en cierto grado, al igual que la muñeca. El hombro en cambio esta más limitado.

Conclusión

Ahora que hemos aplicado algunos límites de rotación, nuestras cadenas IK se comportan de manera más realista. Por supuesto, en cada personaje serán convenientes distintos valores de límites, podemos querer que nuestros personajes se porten más o menos rigidamente según la animación, así que estos valores que se muestran deben considerarse simplemente como ejemplos y no como leyes universales de la animación.

Tutorial creado por Malefico3D.