bokeron fx - studios || Carlos Reding ..:: On-Line Portfolio ::..


Main    Gallery    In progress    Animation    Projects    Tutorials    Links    About                                                 


Carlos Reding | On-line Portfolio

Tutorial: Configuración de huesos en LightWave

By Carlos Reding

Back

    En este tutorial, aprenderemos cómo crear un sistema de huesos que se ajuste a nuestro personaje, así como la adición de una serie de controladores sencillos. Esta forma de configurar los huesos no es la única, ya que cada animador tiene sus propias preferencias. ¡Manos a la obra!

    Una cosa que debemos tener en cuenta, es que crear el esqueleto no es para nada complicado, si acaso un tanto aburrido y pesado a veces. Es tan sencillo, que si sabemos cómo crear una cadena simple de huesos (3 o 4 huesos) con la IK, ya estamos preparados para poder construir el esqueleto y los controladores, que no te asuste la palabrería: un esqueleto es, simplemente, un conjunto de muchas cadenas simples de IK que están coordinadas. Antes de comenzar, vamos a cargar en el winamp unos cuantos mp3 para que se nos haga más ligera la cosa (si queremos, tambien una coca-cola y algún muñeco vudú, puede resultarnos útil en algún momento).

 

Construyendo el esqueleto

    ¿Todo listo? ¿tienes la música cargada y la lista a tope?... pues ponte los auriculares y arranca Layout. Te habrás dado cuenta de que he personalizado algo la interfaz. Deberías hacer lo mismo, pon la interfaz a tu gusto para sentirte cómodo con el programa, te pones a mano tus herramientas favoritas y demás, con lo que trabajaremos más rápido. Lo primero que vamos a hacer cuando arranque layout es añadir un nulo:

    Este nulo, llamado "Main_character_ctrl", será el controlador principal de toda la jerarquía de nuestro personaje: geometría, controladores, ropas... todo lo que nuestro personaje necesite, deberá ser emparentado a este nulo. Para distinguir bien, me gusta cambiar un poco las formas, colores y, si acaso, añadir algún comentario en el nulo (shot). El motivo de que absolutamente todo lo relacionado con nuestro personaje, jerárquicamente hablando, esté emparentado a este controlador principal, es que cuando necesitemos mover el personaje por la escena junto a toda la parafernalia de nulos y controladores, lo haremos moviendo este nulo, evitandonos de ir seleccionando cada cosa individualmente para situarla en la nueva posición. Esta idea más que importante, es cómoda, no pasa nada si te saltas este detalle (excepto lo comentado). Una vez hecho, añadiremos otro nulo que, en este tutorial, funcionará a modo de la geometría del personaje (si tienes la geometría puedes utilizarla en lugar de este nulo y aplicar los pasos siguientes). Cuando añadimos el nulo, lo renombramos y lo situamos donde estaría el pivot de nuestro personaje imaginario y, si queremos, modificamos el aspecto del nulo (shot), recuerda que debes emparentar este nulo/geometría al controlador principal que añadimos en el primer paso (Main_character_control). Una vez hechos estos preparativos, podemos comenzar a añadir los huesos. En este tutorial se explicará cómo hacerlo desde layout, ya que podremos hacer una comparación con messiah (por medio del tutorial de messiah). Si lo prefieres, puedes añadir los huesos en modeler usando los skelegons y luego convertirlos a skeletons en layout.

    Si vamos a añadir los huesos desde layout, debemos personalizar los visores para hacer más fácil esta tarea (shot). Una vez más, lo hice según mis preferencias, pero si te es más sencillo puedes trabajar con una sola vista o como te guste. Bien, hecho esto añadimos el primer hueso, que será el hueso principal de todo el esqueleto, del que "nacen" todos los demás y por el que podremos mover todos los huesos a la vez (parecido al controlador principal de la geometría y controladores, pero aplicado a los bones). Además, sirve para determinar una orientación concreta en el sistema de coordenadas así como evitar el bloqueo de ejes ó Gimbal lock (*ojo*, esta orientacion de los ejes es extremadamente importante, tan importante que si los huesos están aparentemente bien situados, y las coordenadas mal, el sistema de huesos no sirve). Así pues, seleccionamos nuestro nulo/geometría y usamos la herramienta "Add bone" (nota: podemos usar la herramienta "draw bone"/"draw child one", pero puede resultar bastante incómoda), y lo renombramos con un nombre que de a entender que es el hueso principal, como "root bone". Este hueso lo puedes dejar tal cual, o bien lo puedes rotar 180º. A continuación, escala el hueso hasta 0m. Cuando lo hagas no veremos el hueso (tan pequeño que no se ve). El propósito de hacer este hueso tan pequeño es, principalmente fijar las coordenadas y que no afecte excesivamente a la rotación de la cadena de huesos: donde termina el hueso comieza el siguiente, asi que si tenemos este hueso muy grande pues, el inicio del resto de huesos se retrasa (shot). Este root_bone deberá ser bloqueado posteriormente, para no rotarlo ni modificarlo de forma accidental. Ahora comenzaremos a añadir los huesos que conformarán la espina dorsa, añade tantos huesos como el personaje necesite, incluido los huesos o el hueso para el cuello. Deberíamos ver algo así. Aqui se puede apreciar lo que comentaba sobre los ejes de coordenadas: cada eje está en un plano distinto, lo que permitirá que la cadena se mueva como queremos, ya que si los ejes se encuentran mezclados, la cadena se moverá mal cuando la rotemos. Ahora, a partir del hueso del cuello, o del ultimo hueso de los que hemos puesto para el cuello, vamos a añadir otro más que será el hueso del que "nazca" la cabeza, y lo rotamos hasta que esté completamente horizontal. El motivo de no añadir el hueso para la cabeza directamente es que, si lo hacemos directamente, la cabeza adoptará la orientación del eje de coordenadas de la espina dorsal, y no se podrá mover como debe de moverse, así, si añadimos este hueso, lo que haremos será un "reset" en el sistema de coordenadas, volviendo al original del hueso "root_bone". Cuando añadas este hueso, lo escalamos a 0m, para hacerlo..."desaparecer", despues añadimos otro hueso, que será el definitivo para la cabeza, observa y compara los ejes de coordenada de este hueso de la cabeza con el anterior (shot). Mola, ¿eh?

    Ahora vamos a añadir los huesos para los hombros, si estás usando la geometría de tu personaje, ponlos a la altura donde se encuentran los hombros (oh, seguro que si no te lo digo no lo sabes, eh?). Si estás usando el nulo, pues h azlo uno o dos huesos bajo el cuello, donde quieras. Añade uno, que será el "shoulders_root", ,del que nacerán el resto de huesos de los hombros, y alinealo como el hueso root_bone, la misión de este hueso es la misma que el usado en la cabeza. Este hueso podemos escalarlo a 0m, o hacerlo más o menos pequeño (shot). A partir de éste hueso, añade otro y giralo según el hombro, este hueso conformará el hombro en sí. Añadimos un nuevo hueso, que será el inicio de la cadena del brazo, y lo rotamos, de tal forma que el conjunto de huesos que forman el inicio de los hombros, los hombros y el inicio del brazo forma una especie de "U" (shot). A partir de éste último hueso, añadimos los que necesitemos para construir la parte del brazo, cuando acabes el brazo, añade otro hueso extra y escalalo a 0m, este hueso será donde aplicaremos la cinemática, los goal (shot). Cuando esté todo, utiliza las herramientas "mirror item" y "clone hierarchy" para duplicar la cadena que va desde el hombro hasta el final del brazo hasta tener algo parecido a esto. Observa cómo, una vez más, los ejes de rotación están alineados en el mismo plano.

    Siguiendo este mismo patrón, añadiremos los huesos de la cadera, manos, piernas y pies. Construye la cadera de forma similar a los hombros, teniendo en cuenta esta estructura en "U" y añade los huesos de la pierna. En las piernas debemos tener en cuenta un pequeño detalle, este último hueso que es escalado a 0m y al que aplicaremos la IK, debe estar alineado como el hueso root_bone, para que los ejes de rotación del pie sean correctos, igual que para la cabeza. Tomate tu tiempo para hacer el esqueleto, que no por hacerlo rápido pagan más ni eres más bueno, hay que mirar siempre por el resultado. Si es la primera vez que haces un esqueleto, tomate más tiempo, ya que habrá veces que no salgan las cosas bien, pero es cuestión de practicar. Ten siempre en cuenta que los ejes de rotacion se deben alinear en el mismo plano (shot). En el caso de las piernas, podrás observar que los ejes heading y bank están en el mismo plano, por lo que uno de los ejes queda anulado (lo que se denomina Gimbal lock), pero el eje pitch está bien alineado, es el que interesa ya que el movimiento de la pierna se basa mayoritariamente en este eje. El gimbal lock lo evitaremos haciendo uso del hueso pequeño que forma parte de la "U" que da lugar al inicio de la pierna. Bien, pues el trabajo más duro está hecho, hacer un esqueleto decente que nos sirva para animar bien. Bueno, ¿aún seguis vivos y el muñeco vudú sin utizar?... eso significa que vamos bien. Si construyes el esqueleto en layout, la herramienta Bone-X-Ray puede ayudarte mucho.

Trucos: En las articulaciones puedes añadir pequeños huesos para controlar la deformación, aunque deberás animarlos a mano (shot).

Configurando la cinemática inversa

    Este proceso es más sencillo (o no) que el anterior. Vamos a configurar los huesos y algunos controladores sencillos para poder animar cómodamente nuestro personaje. Vamos allá... oh! no olvides añadir más música en winamp, coger otra lata de coca-cola también iría bien:

    ¿Qué tal si comenzamos por la parte más fácil?... te pillé. Vamos a añadir un nulo (no olvides emparentarlo *antes de nada* al nulo main_character_control) que será el controlador de la cabeza, una vez añadido lo situamos a la altura de la cabeza, seleccionamos el hueso de la misma y abrimos el motion panel. Aqui, en el parámetro "target", seleccionamos el controlador de la cabeza (deberíais ver que aparece una línea discontinua desde el hueso al nulo). Mueve y prueba el controlador para verificar. La "pega" de este tipo de control es que el eje bank lo debemos animar a mano. TAmbien puedes animar completamente a mano el hueso de la cabeza si te es más cómodo. Ahora vamos a cofigurar las piernas y brazos, el proceso es muy similar para ambos (joer, es el mismo!) y también veremos el por qué los simple constraints son inútiles para esta causa. Comencemos por las piernas (repite el mismo proceso para los brazos):

    Añade un nulo y emparentalo al controlador principal. Este nulo será el controlador general de la pierna, por lo que todo los controladores que situemos en la peirna deben estar emparentados a éste nulo. Una vez añadido, lo situamos al final de la cadena de la pierna, justo en la posición de ese hueso pequeñito que usamos para resetear las coordenadas del pie. Añade otro nulo, emparentalo al controlador de la pierna (no el principal), ya que será el controlador del pie. Sitúalo al final de la cadena del pie. Debemos tener algo asi. Una vez situados los nulos, selecciona los huesos pequeños de cada pierna, y abrimos el motion panel. Lo primero que debemos hacer es activar la opción "unaffected by IK of descendants", de esta forma independizamos las cadenas de la pierna y del pie. Después, en el parámetro "Goal", indicamos el controlador que corresponde a cada pierna (no confundir con el del pie). Por ultimo, en la pestaña "controllers and limits", activamos la cinemática inversa en aquellos canales donde sea necesario: en el caso de la pierna estaría activada en el pitch para los dos huesos principales de la pierna, y en el bank del hueso del inicio de la pierna (el pequeño que forma parte de la "U") (shot). A continuación prepararemos un controlador clave, el controlador de la orientación de la rodilla, donde veremos el fallo de los simple constraints. A continuación añadimos un nulo, lo emparentamos al controlador principal de la pierna y lo situamos justo frente de la rodilla (shot). Ahora, trataremos de configurarla mediante los simple constraints: selecciona el primer hueso de la pierna, el que actúe como femur, abrimos el motion panel y, en la lista de modificadores, seleccionamos "SimpleOrientConstraint". Este constraint funciona, o debería funcionar, como el kneeconstraint the messiah, pole vector de maya o up vector de XSI. Hagamos doble click en simpleorientconstraint para abrir la interfaz:

    Aqui aparece la configuración que, en teoría, debería funcionar: el constraint afectará al eje H (heading) del hueso, el cual estará dirigido por el item seleccionado (el controlador de la rodilla, en este caso), haz click en OK y cierra el motion panel. Prueba a rotar el controlador de la pierna o a mover el controlador de la rodilla, verás el que el movimiento es magnífico (¿de qué se queja el tío este? pensareis...). Salvad aqui la escena, es una idea muy oportuna. Crea un par de keys y mueve la pierna, una mini animación del movimiento de la pierna... aaah, ¿ahora qué? Los huesos se han vuelto loco, el pie mira hacia la meca y otras barbaridades. Esto se evitaría añadiendo la opción "After IK", ¿y dónde encontramos esta opción? en "follower". Ve al motion panel, quita el simpleorientconstraint y añade el follower en su lugar. Configuralo para que siga el canal H del controlador de la rodilla y asegúrate de que "After IK" está desactivada. Ahora repite esa mini animación y verás lo bien que funciona. Vamos con el controlador de la cadera. Añadimos.... un nulo, exacto, y lo emparentamos al controlador principal del personaje. Muevelo a la posición de la cadera (para este personaje imaginario se ha movido hasta la posición del pivot). Añade el modificador "Follower" en los dos huesos de la cadera y, tras activar en ambos la opción "Unaffected by IK of descendants", introduce la siguiente configuración:

Para el hueso izquierdo de la cadera

Para el hueso derecho de la cadera

    Comprueba que la cadera responde al controlador de forma correcta (shot). Para la espina dorsal, añadimos un nulo y lo situamos a la altura del hueso del que nacen los hombros. Este nulo, además de controlar la espina dorsal, va a controlar la orientación de los hombros. Seleccionamos este hueso y, en motion panel, seleccionamos el nulo de la espina dorsal como goal. Además, añadimos el follower y lo configuramos de forma similar a la cadera para que los hombros respondan a la rotación de este controlador. Por último (para la espina dorsal), añadimos el follower en todos los huesos de la espina dorsal excepto los del cuello, indicando que sigan al eje de rotación que está en el plano horizontal, bank en este caso. Comprueba el controlador (shot). Bien, ¡ya queda poco para terminar!

    Ya estamos acabando, los brazos se configuran de forma muy similar a las piernas excepto por la orientación del codo (shot). Para el codo, al igual que en el caso de la rodilla, tampoco podemos usar los constraints, por lo que deberemos utilizar el "follower". Añade un nulo y situalo a la altura de los hombros, pero de espaldas al esqueleto. Algo tal que asi. Selecciona el primer hueso del brazo, añade el follower y configuralo para que la rotación del eje bank del brazo siga la rotación de un eje (H en este caso) del nulo "up vector", de nuevo asegúrate de que "After IK" está desactivada. Prueba a rotar el H del up vector y... yeah, el codo gira de miedo. Puedes ver un ejemplo aqui. ¿Ya lo tienes? ¡bueno macho! eres un monstruo. Puedes descargar la escena (LightWave 7.5) aqui. En la sección de animaciones puedes ver cómo funciona, para ello descarga la animación "Walk cycle".

Últimos conceptos : si quieres controlar una mano con IK, simplemente añade una cadena de huesos por dedo y le pones su IK, así de fácil.

Back


All artwork on this site is © copyright 2001-2005 Carlos Reding unless otherwise stated