Material del curso Maya Intermedio : Rigging en Maya. Mtro. Roberto A. Padilla Sobrado. Se pone el modelo, y se le asigna una capa nueva, y se pone en template. Posteriormente, se dibujan los ts a utilizar en la pierna, y se nombran de la siguiente forma:
1
Luego, se hace el reverse foot control, para que se pueda mover el pie con otros ts. Al hacer el reverse foot control queda en el centro, y se ajusta exactamente al pie seleccionando el reverse foot control desde su raíz, luego activando el eje X, que es en el que se va a mover desde la vista frontal, posteriormente se pone “v” en el teclado y apretando el clic de en medio del Mouse se mueve a la posición deseada, porque es como un snap de vertex. Posteriormente se nombran en orden, de la siguiente manera: leftRLBase, leftRLToe, leftRLFoot, leftRLAnkle.
Luego se hace un nuevo layer, se pone un color y se le nombre “left controls”, y se hace otro layer con otro color que se llame “right controls” IK Handle Posteriormente se van a poner los ik handles. Vamos a ikhandle tool, en Skeleton , abrimos su ventana y escogemos la opción: Ikrpsolver: inverse kinematiks rotate plane solver. Esta da la oportunidad de mover la rodilla con base a un tercer punto, que será el pole vector. Ikscsolver: Este es para dedos, por ejemplo, que solo se mueven en una dirección., y significa inverse kinematiks single chain solver. Se escoge ikhandle y se da clic en el t de la cadera. Posteriormente se da clic en el t del tobillo y queda lista. De ahí escogemos otra vez ikhandle pero ahora le cambiamos la modalidad a cs solver, para poner la caden del t del tobillo a la bola del pie, y de ahí otra vez a la punta.
2
. El primer ik se nombra IKhandle_leftLeg Los siguientes se nombran IKHandle_leftFoot, y IKHandle_leftToe Posteriormente, se emparentan los IKhandles con los ts del reverse foot controls que le correspondan, los que estan abajo, que se tienen que juntar un poco más para que ajusten mejor, (pegaditos). Se selecciona el ikhandle, shift t, y p de parent. MIRROR TS Luego nos vamos a duplicar la cadena completa de la pierna. Nos vamos a Skeleton--mirror ts y nos metemos a su ventana, y ahí en sus opciones ponemos YZ, luego abajo Orientation, y en las ventanas inferiores ponemos en search for “left” y luego en replace with ponemos “right”. Esto sirve para que todo lo que dice left se sustituya automáticamente con right. Luego hacemos lo mismo com el reverse foot control, ya que no se duplica con la pierna. Y al hacerlo, hay que emparentar los IKHandles con su respectivos ts, ya que eso no se realiza automáticamente. Asignamos los controles derechos a su respectivo layer.
3
CREAR CURVAS DE CONTROL Se hace un círculo de nurbs normal. Luego, con el círculo seleccionado, procedemos a apretar “v” y con clic de en medio del Mouse lo ponemos justo en el ik handle de la bola del pie, para que ajuste perfectamente.
Le cambiamos el tamaño y la forma al círculo, para que ajuste al pie como debe de ser. Al tener la forma final, nos vamos a modify—freeze transformations, que nos va a mandar todos los parámetros a cero. Luego le borramos la historia. 4
Se le cambia el nombre a leftFootControl. Posteriormente, le vamos a poner un atributo a la curva, un reverse foot control. Vamos a modify-- add attribute, y en la ventana le ponemos por nombre footRoll, marcamos la opción “float”, y abajo en minimum le ponemos -10, en maximum le ponemos 10 y en default le ponemos 0. Se le da OK y se agrega un atributo en el channel box.
Se le cambia el nombre a leftFootControl. Y posteriormente lo vamos a duplicar. Se duplica igual, y después en su channel box en Scale X se pone -1, y con “v” se da un snap para que quede en la misma posición que el primero pero del lado contrario, y se le da modify—freeze transformation,--delete history para dejarlo en ceros, y lo renombramos como rightfoot control. Pole vectors (controladores de la rodilla). Se hacen las curvar de control. Para hacerlas con texto, se hace una letra, puede ser “r” y “l”, y al tenerlas en pantalla se les da ungroup 2 veces. Luego se le da center pívot. Para mandar el comando de center pívot al shelf, se pone control shift y se selecciona el comando que se va a agregar al shelf. Luego se ponen con “v” en las rodillas las 2, y luego se jalan hacia delante y se les da freeze transformations y se ponen en sus respectivos layers. No olvidar cambiar el nombre a las letras, deben quedar leftKneeControl y rightKneeControl.
5
Para hacer el Pole Vector, se selecciona una de las letras, luego shift select el tobillo donde está el ikhandle primero, luego vamos a menú constrain—pole vector y listo.
Hacemos lo mismo con la otra letra. SET DRIVEN KEY y el footRoll Se escoge una de las curves que se hicieron para manejar los pies.
Nos vamos a menú animate—Set Driven Key, y escogemos como driver la curva y escogemos su atributo footRoll del lado derecho. Seleccionamos los ts del reverse foot control foot, toe y base, de su respectivo lado, los 3 al mismo tiempo con shift, y le damos load DRIVEN. Luego seleccionamos los 3 atributos que pusimos en driven, y como lo que se va a animar es la rotación el x, seleccionamos del lado derecho de esa ventana driven “rotate x”. Después apretamos la tecla “key” en la ventana de Set Driven Key, para establecer un valor de keyframe. En el channel box se pone color carne. Hay que checar que el driver en su atributo de footRoll en el channel box esté en cero. Luego, vamos a escoger en channel box la opción footRoll y le vamos a poner 10, que va a indicar cuando el pie esté levantado. Este parámetro lo vamos a poner en channel box cuidando que en la ventana de set driven key esté en driver el atributo footRoll seleccionado.
6
Vamos a escoger el parámetro de “leftRLFoot”, el primero de la lista driven, y con el rotate x seleccionado en el lado derecho, vamos a levantar el pie en la pantalla hasta que esté en unas 22 unidades en rotate x en el channel box, y le vamos a dar “key”. Para checar si quedó bien, se selecciona el left foot control en su atributo “footRoll” y con clic de en medio apretado se jala sobre la pantalla para ver si se mueve, que se debe mover si es que quedó bien. Ahora, en el atributo de footRoll, le ponemos “5”, para regresarnos a medio camino, y escogemos en la ventana de driver el “leftLRToe”, rotate x, y le damos “key”.
7
Esto va a provocar que cuando se levante un poco el pie, se quede pegado al piso por un poco más de tiempo la bola del pie. Ahora, nos vamos otra vez al atributo de footRoll del driver y le ponemos 10, y en el leftRLToe le alzamos con rotate en la pantalla hasta que quede derecho, probamos si funciona. (Funcionó bien).
Podemos según el resultado variarle y ajustar según como nosotros queramos para que sea lo más exacto posible a lo que necesitamos. Ahora, en footRoll attribute, le vamos a poner -10, y vamos en driver a escoger el base, y lo vamos a mover hacia atrás, hasta que se pare en el talón (-35). Finalmente, vamos a escoger en la pantalla al t base (el talón), shift select la curva de control y le ponemos parent. Con esto nos aseguramos que cuando se mueva la curva se mueve todo el pie. Al terminar se checa si quedó bien y se hace el otro pie, sacando los mismos parámetros del anterior del graph editor.
8
COLUMNA VERTEBRAL Nos vamos a la vista lateral, y se ponen comúnmente 8 ts. Se van a poner 7 ts como parte del ejercicio para insertar otro más adelante.
Se nombran los ts como root, hip, back1, back2, back3, neck, headbase y skull. Ahora, le vamos a poner un Spline handle tool a la columna. Nos vamos a skeleton—spline handle tool. Lo ponemos de neck a hip.
9
Con este ikhandle, en la ventana que estemos utilizando, en show, si apagamos los ts, vamos a ver solamente una curva, que tiene la forma de los huesos. Si movemos esta curva a través de sus vértices, vamos a mover también todos los ts. Ahora, vamos a poner un cluster, con su letra “c” en cada vértice, para poderlo manejar mejor. Vamos a apretar F8 del teclado, para acceder al modo por componentes de la columna vertebral, y seleccionamos la vertebra t neck. Nos vamos a Deform—Create cluster (ventana). Se pone reset settings y se activa “relative”. Es muy importante porque nos permite emparentar el cluster al rig y no nos da doble transformación. Se pone create. Nos aparece una pequeña letra “c” justo en el t.
Nos vamos a ir al editor de atributos del cluster, y en Cluster1handelshape (pestaña), vamos a buscar el origin, que tiene 3 parámetros a modificar. Si mantenemos la tecla control presionada, y sobre la última ventanita (la tercera) le damos clic & drag (jalamos) podemos sacar la “c”, que en si es el Handle o manejador del cluster y sacarlo. Esto se hace con clic izquierdo. Repetimos la operación en cada vértice hasta que tengamos todos los clusters fuera.
10
Ponemos la máscara de selección para object type y al seleccionar la “c” del cluster, lo movemos con el manejador y tenemos que se mueve la columna. Se arreglan los pivotes, poniendo la tecla insert para mover el pivote, seleccionandolo y apretando “v” y jalando con drag y botón de en medio para ajustarla al t que le corresponde. El único que varía un poco es el tercer t de arriba hacia abajo, que se jala el pivote al segundo t de abajo hacia arriba de la cadena, al que se llama back 1.
11
Después , se cambian los nombres de los clusters a Clusterneck, ClusterChest, ClusterAbs y ClusterHip. Después se seleccionan todos los Clusters, Shift select el root y se pone parent. Posteriormente, se selecciona una pierna, shift select Hip (ojo, NO EL ROOT) y se pone parent. Luego la otra pierna, shift select Hip y se pone parent.
CONTROLES DE LA ESPALDA
12
Se hace un cubo de polys o nurbs normal, y con cv curv tool vamos a trazar el cubo otra vez, presionando “v” para machar a los vértices perfectamente bien.
Luego lo vamos a hacer pequeño y lo vamos a ajustar a la columna vertebral, también con v, en el chest bone.
De ahí lo hacemos más grande, y lo ajustamos en los vértices para machar la forma de la columna lo más posible.
13
Luego se hace otro layer que se llame “upper body” y meto el controlador (la caja) ahí. Cambiamos el nombre “chestcontrol”. Luego, con el controlador seleccionado, lo duplicamos, para con este último hacer el controlador de la cadera. Aquí hay un truco, ya que con v lo vamos a pegar al hueso de la raíz, abajo, y luego vamos a seleccionar todos sus vértices y los vamos a subir. Esto hace que el pivote siga en el hueso raíz.
Se acomodan los vértices como nosotros queremos y necesitamos.
14
Al seleccionar con object mode el cubo, al cual nombramos como hipcontrol y lo metemos a su layer. , observamos que el pivote está a la altura del hueso raíz.
Le ponemos freeze transformations para que todo quede en ceros. Luego, vamos a hacer un círculo de nurbs, y con v lo vamos a ajustar al t de back1. Lo ajustamos al tamaño y luego ponemos freeze transformations.
15
HIP SWAY CONTROL Se hace otro círculo de nurbs y se meten los vértices como se indica en la ilustración.
Posteriormente lo vamos a colocar con “v” y clic de en medio en el hip y lo vamos a escalar hasta que quede el tamaño que deseamos, le ponemos freeze transformations, delete history y lo vamos a nombrar como hipSwayControl. Hay que meter al layer upperbody los controles de cadera y hip que acabamos de hacer.
16
Ahora creamos el control para la espalda. Esto lo vamos a crear con la forma de una flecha. Esto lo hacemos con cv curve. Lo vamos a escalar al tamaño que queramos y lo colocamos en la parte de la espalda, arriba, por el cuello.
Vamos a colocar el pivote en el t . Ponemos en menú modify “center pívot”. Seleccionamos “insert” y con v, movemos el pivote con clic de botón de en medio hacia la posición, recordando que solo movemos el pivote, no la flecha completa, que se queda atrás. Volvemos a poner insert para regresar a modo normal. Ponemos freeze transformations y delete history. Cambiamos el nombre a backControl.
17
UNIR CONTROLADORES A LA ESPALDA Vamos a unir los controles a la espalda, y vamos a usar los llamados “constraints”. El primero que vamos a utilizar es el point constraint, y lo usamos en el control de flecha de la espalda. Lo utilizamos de la siguiente forma: Vamos a seleccionar la flecha controlador de la espalda, luego, le vamos a dar shift select al cluster (letra c) y nos vamos a menú Constrain—point constrain.
18
Cuando se mueve la espalda, se mueve al mismo tiempo el cluster de la columna, por lo que controlamos su movimiento desde afuera. Vamos a hacer lo mismo con el chestcontrol y su cluster, con el abs control y su cluster y con el hipsway control y su cluster. Luego, vamos a crear un layer con el nombre de “Don´t touch” y vamos a seleccionar las letras “c” de los clusters y las vamos a meter a ese layer, y le vamos a quitar la visibilidad al layer. Esto para que no se toquen y no pase nada. LA CADERA La cadera la vamos a unir de forma especial, o distinta a lo que hemos venido realizando. Seleccionamos el círculo de abscontrol, shift select el cubo de hip y le ponemos “parent”.
Luego seleccionamos el hipsway control, shift select el control de la cadera y damos parent. Seleccionamos el chest control, shift select el control de la cadera y le damos parent. Luego seleccionamos el control back (flecha), shift select la cadera y le damos parent. Checamos que todo se mueva.
19
Ahora, vamos a unir el hueso raíz al hip control de forma distinta. Seleccionamos el hipcontrol, luego shift select el root t, y le damos constrain— parent constrain, para no mover el pivote.
CONECTAR EL ATRIBUTO TWIST DEL IK HANDLE. Ahora, vamos a conectar el rotate y del chest control con el atributo twist del ik handle de la columna (se selecciona arriba, y en su channel box está el twist).
20
Para esto, vamos a necesitar ir a menú Window—general editors—connection editor. Al abrirse el connection editor, seleccionamos el chest control, y le ponemos en la ventana “Reload Left” Luego, seleccionamos el IK handle y le ponemos “Reload Right”. Luego, vamos a buscar en la parte izquierda, donde pusimos el chest control, el atributo Rotate, vamos a abrir la flechita a la izquierda para seleccionar rotate y.
Después seleccionamos en el lado derecho de reload right el atributo “twist”, y cuando los dos están seleccionados, se ponen los nombres en letras cursivas, lo que nos indica que están conectados. Lo probamos seleccionando el chest control y rotandolo, y vemos que ahora está unido al ik handle. PONER UN NUEVO T EN EL CUELLO Se selecciona el t head, que es el que está arriba del t neck del ik handle y nos vamos a Menu Edit—unparent. Luego nos vamos a t tool y ponemos un solo t en la base del cuello, y lo renombramos como “neck”. Al que antes se llamaba neck, le vamos ahora a cambiar el nombre por back4.
21
Ahora vamos a emparentar el t de la cabeza con el t neck, que acabamos de hacer, y después emparentamos el neck con el back4. Después de hacer esto, vamos a poner un IK Handle. Este lo ponemos con IKRPsolver, desde sus preferencias. Este lo ponemos desde el t Neck, al t siguiente hacia arriba que sería base head. Nos va a dar un poco más de control.
22
Ahora le vamos a hacer un controlador a la base del cuello. Ponemos un círculo de nurbs como lo habíamos estado haciendo, con “v” lo encajamos al t headbase , le cambiamos la proporción al tamaño que se desea y lo posicionamos. Le ponemos freeze transformations y le ponemos delete history, y le cambiamos el nombre a Neck control.
Seleccionamos el círculo (neck control) luego shift select el ikhandle, (arriba lo seleccionamos) y le ponemos “point constrain”). Luego seleccionamos la curva de control de la cabeza, shift select el hueso de la cabeza ( head t) y después le vamos a poner un orient constrain. Ahora, cuando lo probamos rotando el tronco, la cabeza ya no se mueve. Esto es porque le pusimos un orientación a la curva en relación de la cabeza. Después, emparentamos el control de la cabeza (círculo), con el control de la espalda, que es la flecha.(seleccionamos el círculo, luego shift a la flecha y ponemos parent.) PONER HUESOS DE LOS BRAZOS. Se ponen los ts correspondientes en la ventana front, comenzando por uno muy cercano al t del cuello. Vamos a poner 2 en el antebrazo para que gire. Después de ponerlos, los vamos a renombrar. Leftclavicle, leftShoulder, leftElbow, leftForeArm, leftWrist. Los ts quedan así:
23
Luego hay que alinear el brazo, para que todo quede en su lugar. Con F8 nos vamos al component mode , apretamos el signo de interrogación en las maskmodes y checamos los local rotation axis, para que todos machen. Ya que este todo alineado, vamos a proceder a poner IKHandles. Para salir del component type se aprieta el signo de interrogación otra vez y se pone F8.
IKHandles Vamos a poner 2 IKHandles, con RP solver. Uno lo vamos a poner del primer t al segundo, (de la clavícula al hombro), y lo nombramos como ikHandle_clavicle. 24
El segundo lo vamos a poner del hombro hasta el t forearm. Que es el que parte al antebrazo a la mitad. Ahora vamos a hacer una modificación a este ikhandle. El borde final del ikhandle se llama effector, y lo vamos a modificar para que llegue hasta la muñeca.
Para ver esto gráficamente, vamos a sacar el Hypergraph, en donde vamos a seleccionar el IK handle correspondiente, y en el desglose de sus elementos vamos a seleccionar el effector. Se hace el desglose con el botón de input and output connections.
25
Con el effector seleccionado en el hypergraph, ponemos la tecla insert, la cual nos va a dar la capacidad de mover el pivote, y con v lo movemos al t de la muñeca, y volvemos a poner tecla insert para dejarlo ahí.
Esta técnica da la ventaja de que podemos nosotros rotar el forearm, que es donde estaba antes el effector, de forma independiente de la rotación que le demos a la muñeca. (una especie de mezcla de ik y fk). Después vamos a sacar un duplicado la cubito que teníamos abajo, el de puras curvas, y le vamos a dar con “v” un snap a la muñeca y le vamos a poner leftArmControl.
26
De aquí nos vamos a texto, porque vamos a hacer una letra que nos sirva como el controlador del hombro. Vamos a text y hacemos el mismo procedimiento que al inicio con los otros controladores. Ponemos la letra “s” y después de damos ungroup 2 veces seguidas y le ponemos “center pívot”. Luego con v le damos snap justo sobre el shoulder t y lo ponemos ahí, lo vamos a subir afuera del modelo, lo hacemos más pequeño hasta donde queramos y le damos freeze transformations, delete history, y después le damos con la tecla insert aparecer pivote, el cual por medio de snap v lo movemos hacia el t del shoulder, y le volvemos a dar insert para regresar al modo normal. Se le pone ¿leftclavicle control?, Creo que leftshoulder control sería mejor.
MANOS Y DEDOS
Para poner las manos y los dedos vamos a comenzar por los huesos de los dedos, procurando que cada t quede en una división de geometría. Posteriormente, hay que meterse a componentes para corregir los ejes, ya que deben de quedar cada uno dirigiéndose hacia el otro hueso, esto es muy importante porque si no se hace los huesos se doblan ligeramente hacia abajo, y no hacia adentro, como debería de ser. Antes de esto vamos a emparentar los dedos para formar la mano.
27
Los ts se comienzan a ajustar a la forma de la geometría, seleccionando cada uno y apretando la tecla “d” y dejándola apretada (aparece el símbolo de mover pivote, pero no se mueve solo el pivote, sino todo el t) movemos en el eje deseado t por t a que mache con la geometría que necesitamos. Posteriormente vamos a emparentar todos los dedos a la “mano”, para tenerlos todos unidos. Para esto vamos a seleccionar el primer t de cada dedo, shift select el t de la muñeca hasta que queden todos seleccionados.
28
Ahora vamos a meternos a componentes (f8 o la mascarilla componentes, signo de interrogación) para mover los ejes de rotación de los dedos.
Todos deben quedar apuntando hacia el otro, como una gran línea recta. Si no están alineados los ejes de los ts con los ejes de los huesos el dedo se dobla ligeramente hacia abajo, y no hacia adentro. Se puede hacer uno por uno o seleccionarlos todos de una vez y rotarlos.
29
El pulgar se tiene que corregir, ya que los ts no se encuentran alineados correctamente. Hay que mover también los local rotation axis del t que va emparentado directamente a la muñeca, para que el eje x quede viendo hacia el otro t.
DUPLICAR LOS BRAZOS Ahora vamos a emparentar los brazos. Seleccionamos el t del hombro, luego shift select al t back4 y ponemos parent.
30
Ahora procedemos a duplicar los brazos. Seleccionamos el t Clavicle, y ponemos menú Skeleton - mirror ts, en donde checamos los elementos anteriores, como son orientation y sustituir left por right. Luego hay que hacer lo del ikhandle del brazo, modificar el effector, y meterse a los dedos a modificar el local rotation axis otra vez, porque puede que no lo haya registrado. Para ver esto gráficamente, vamos a sacar el Hypergraph, en donde vamos a seleccionar el IK handle correspondiente, y en el desglose de sus elementos vamos a seleccionar el effector. Se hace el desglose con el botón de input and output connections. Con el effector seleccionado en el hypergraph, ponemos la tecla insert, la cual nos va a dar la capacidad de mover el pivote, y con v lo movemos al t de la muñeca, y volvemos a poner tecla insert para dejarlo ahí. Hay que volver a alinear los ts en component type, en su eje de rotación, porque se mueven, para que queden alineados a la misma dirección, y checar si al poner el effector de este lado no se rotó un poco la mano. En caso que así sea hay que rotarla para que mache con la mano. Posteriormente, vamos a seleccionar la “S”, que es el manejador del hombro, (la curva letra s), le vamos a poner “duplicar”, y con v seleccionada la mandamos al t del otro hombro, y le cambiamos el nombre de left a right.
Ahora vamos a duplicar el cubo controlador de la muñeca, con la misma técnica. Se duplica con “duplicate”, y luego se mueve con v hacia el otro lado, en el t contrario y se renombran.
31
Ahora le vamos a dar delete history y freeze transformations a la “S” y a los controladores que acabamos de duplicar. EMPARENTADOS CON CONSTRAIN Ahora vamos a seleccionar la letra “S” izquierda, shift select el ikhandle del hombro y le ponemos constrain- point constrain. Eso hacemos del otro lado también. Seleccionamos las 2 letras “S” con shift, les damos “Group” y al grupo le ponemos “Clavicle Group” (yo diría Shoulder group). Con el grupo de las 2 “S” seleccionado, con shift select seleccionamos la flecha de la espalda y emparentamos. (p).
32
Ahora, seleccionamos el controlador de la muñeca (cajita) shift select el ikhandle que esta en al muñeca, y le damos point constrain. POLE VECTORS PARA LOS BRAZOS Cuando movemos los brazos hacia delante, los codos se van para arriba. Esto se va a solucionar poniendo pole vectors para los codos. Para esto, vamos a seleccionar la letra “l” del pole vector de la rodilla izquierda y le damos duplicate. La subimos a la altura del codo izquierdo, y le vamos a dar con “v” para ponerla justo en el t del codo. Lo mismo hacemos con la letra “r” de right.
Posteriormente, seleccionamos las 2 letras y le damos con move para atrás.
33
Ahora, le ponemos delete history y freeze transformations a cada uno, y les cambiamos el nombre a “leftElbowControl” y a “rightElbowControl”. Ahora, seleccionamos la curva de control, es decir, la letra, shift select el ik handle, nos vamos a constrain – pole vector. Lo mismo hacemos con el otro lado.
WRIST CONTROL Para evitar que la mano se mueva para todos lados cuando movemos el brazo o el pole vector, le vamos a poner un controlador. Hacemos un círculo de nurbs, con “V”lo ajustamos al t de la muñeca, le damos rotación de 90 grados y le damos delete history y freeze transformations. Duplicamos la curva y la pasamos al otro lado.
34
Ahora, seleccionamos la curva, shift select la muñeca (que se vean todos los ts de la mano seleccionados) y le pongo constrain – orient constrain. (para seleccionar la muñeca, se puede dar clic en uno de los huesos de la mano y selecciona todo. Ahora, seleccionamos el cubo (wrist control, que está dentro del círculo) shift select la curva (círculo) y nos vamos a constrain – point. Ahora, cuando seleccionamos el cubo y lo movemos, se mueve el brazo pero no la mano.
PONER UNA EXPRESION Ahora vamos a poner una expresión que nos permita, cuando movemos la mano con su controlador, girar el antebrazo también, simulando el movimiento natural. Vamos a seleccionar el t forearm (a la mitad del antebrazo), y en su channelbox seleccionamos el nombre de rotate X, y cuando este color negro le damos clic derecho y en la ventana emergente buscamos expressions. Al salir la nueva ventana, vamos a seleccionar el texto que esta en la opción Selected Obj & Atrr , (highlight). Una vez que esta todo seleccionado en azul, con click izquierdo lo movemos hacia abajo a la ventana Expression, y ahí lo soltamos. Ahora, vamos a continuar escribiendo después de lo que pegamos, y le vamos a poner después un signo de igual, y nos seguimos escribiendo esto: leftForearm rotate X = leftWristControl.rotateX*0.3 Hay que tener cuidado con los espacios y con las mayúsculas, ya que si no esta todo bien escrito el programa nos marca “syntax error”. Se pone el asterísco y luego 0.3 porque si no se lo ponemos, va a girar todo lo que gire la muñeca, con esto solo gira la tercera parte.
35
NOTA: La expresión se encuentra seleccionada para facilitar su lectura en el documento, pero al hacerlo en maya NO se selecciona la expresión final. Se Checa que funcione correctamente, rotando el círculo. Se repite lo mismo pero del otro lado, todo en right.
36
Si por algún motivo hay que mover la mano porque salió de lugar, al moverlo se le pone freeze transformations.
PONER UN SET DRIVEN KEY EN LA MUÑECA. Vamos a seleccionar la curva que controla la muñeca, es decir, el leftWristControl. (círculo). Luego nos vamos al channel box, y en channels, nos vamos a “add attribute” En esa ventana le vamos a poner como nombre al atributo “fist” . A este atributo le vamos a poner: minimum 0 maximum 1 default 0.
Luego nos vamos a menú Animate – set driven key . el leftWristControl y su atributo fist va a ser el driver, y el driven van a ser todos los ts de los dedos (los cuatro a excepción del pulgar en este momento. Se seleccionan desde el t de la punta de los dedos hacia la mano.) Se seleccionan todos los ts de los 4 dedos y le ponemos en la ventana de Set driven key “load driven”. Se seleccionan todos para sacar del lado derecho “rotate y”. probamos si funciona el atributo. Ahora, después de checar y volver a la posición original, le ponemos en la ventana de set driven key “Key”. El valor de “fist” en el channel box es de cero. Ahora vamos a poner otros valores.
37
Ahora nos vamos a fist control, en el channel box, y le ponemos como valor “1”. Luego nos vamos a volver a seleccionar todos los ts de los dedos, en driven. Y entonces le ponemos en lado derecho “rotate z”, y en el channel box cambiamos de valor en “rotate z” a -51, y en la ventana de set driven key le ponemos key. (doblamos los dedos hasta que queden como puño). Checamos que haya quedado bien. Ahora vamos a poner un set driven key para el pulgar. Abrimos otra ventana de set driven key y le ponemos el leftWristControl como driver, y luego seleccionamos los ts del dedo pulgar hasta el que va dirigido hacia la muñeca, pero sin seleccionar el de la muñeca.
38
En la ventana de set driven key le vamos a poner “load driven”. Con estos ts seleccionados, del lado derecho de la ventana seleccionamos todos los canales de rotación, x,y,z, , y ponemos “key”. Esto se hace así para que cuando pongamos el valor de uno en fist, y se doblen los dedos, tengamos total libertad para mover los dedos. Ahora, nos vamos al atributo fist en la ventana de set driven key y le ponemos “1” Después vamos a ir a seleccionar, en dicha ventana, abajo, los ts del pulgar, y sus atributos rotate x,y,z., y los vamo a doblar hasta que queden como nosotros deseamos. Al estar como queremos, ponemos “Key”, en la ventana de set driven key.
TWIST A LA CLAVICULA Vamos a seleccionar ahora la letra “S” que sirve como controlador del hombro izquierdo, que podría servir como clavícula. En su channel box le vamos dar en channels la opción add atribute, y a este atributo lo vamos a llamar “Clav twist”, y los vamos a dejar sin valores, porque lo demás lo hacemos desde el connection editor. Ahora, vamos a sacar de Window—connection editor. La letra “S” la seleccionamos y le ponemos reload left. Y luego seleccionamos el ikhandle de la clavícula y a ese le damos reload right.
39
Ahora vamos a conectar el atributo “Clavtwist” del lado izquierdo, con el twist del lado derecho.
Con esto, conectamos el atributo, que nos va a servir para cuando gire el hombro el personaje y se marquen dobleces en la “piel”. CONTROLADOR GLOBLAL Este controlador nos va a servir para que podamos mover y escalar el rig.
40
Se hace un círculo de nurbs, lo suficientemente grande como para que quepa toda la figura. En inputs se le ponen 16 subdivisiones, para seleccionar los puntos nones, y con scale, reducirlos.
Ahora, vamos a sacar el outliner, para tener visible todo lo que hemos hecho. Vamos a seleccionar, desde la pantalla normal, todos los controladores, con shift select. Seleccionamos los controladores de los pies, luego shift select los pole vectors, luego shift select el hipcontrol (Al seleccionar este control se seleccionan todos los demás del torso) , shift select los controles de los codos, agarramos los controladores de la muñeca y del brazo, (cubos y círculo). Ya que todos estos estan seleccionados, vamos a poner Control g para agruparlos. Y a este grupo le ponemos : controlCurvesGroup. Ahora, seleccionamos el GlobalControl, control clic el controlCurvesGroup , y nos vamos a constrain- parent constrain, e inmediatamente ponemos constrain- scale constrain. Ahora seleccionamos el Roott, y ponemos control g, lo agrupamos sobre sí mismo. Lo nombramos este grupo como RootGroup. Ahora seleccionamos el globalControl, control clic el RootGroup y nos vamos a constrain- scale constrain. Ya casi está listo. Ahora seleccionamos desde el outliner todos los IKhandles y ponemos control g, los agrupamos y a ese grupo le ponemos IKGroup. Luego seleccionamos el GlobalControl control clic el IKGroup, vamos a constrainscale constrain. Hasta aquí, el rigg ya está listo para animar. 41
KNEE LOCK Cuando movemos las piernas con el controlador del pie, tenemos el problema de que el pole vector se queda atrás, por lo que hay que seleccionar los 2 al mismo tiempo para que no tengamos ese problema. Para hacerlo automático hay que hacer lo siguiente: Seleccionamos el pole vector de la izquierda, es decir, el left Knee Control (letra l), y en el outliner ponemos nuestro cursor encima de una superficie en blanco, y sin clic le damos la letra “f” del teclado, es decir, “frame”, y nos abre la jerarquía de donde se encuentra lo que queremos seleccionar. Ahora, con el control seleccionado, (letra l), procedemos a agruparlo sobre sí mismo, poniendo control g, y nombrándolo como “leftKneeControlGroup”. Vamos a poner la tecla insert, para ver el pivote del grupo, que se encuentra en el pie izquierdo, y con v y clic de en medio lo vamos a clavar al t base del control del mismo pie, justo en ese t.
Ahora seleccionamos el t base del reverse foot control, (donde pusimos el pivote), con control seleccionamos en el outliner la letra “l”, es decir, el control de la rodilla de ese lado, nos vamos a constrain – point constrain. Con esto, cuando movemos el pie, movemos también la rodilla, automáticamente. Ahora, hacemos lo mismo del otro lado. Seleccionamos el rightKneeControl, (letra r), y lo agrupamos sobre si mismo. Lo renombramos como rightKneeControlGroup, luego le cambiamos el pivote al t base del control del pie derecho (rightFootControl). Posteriormente en el outliner seleccionamos el t base del rightFootControl y luego
42
con control seleccionamos la letra r, es decir, el rightKneeControl, y después vamos al menú constrain – point constrain. (para poner un atributo switch on y off, empieza abajo del 18 del time line). Para agregar un atributo nuevo, se utiliza un método distinto. Con la “l” seleccionada, es decir, con el leftKneeControl seleccionado, nos vamos a menú modify- add attribute, y vamos a poner un atributo que se llame “kneelock”. Abajo, en la misma ventana, en sus opciones, le vamos a poner en Data Type “Boolean”, que en este caso quiere decir que puede estar apagado o prendido. IK / FK BLENDER Para controlar el cambio de controles en los brazos usando inverse kinematics y pasar a forward kinematics, tenemos que utilizar un atributo que ya está puesto. Si seleccionamos el IKHandle del brazo (su control está en la muñeca) y nos vamos a su channel box, bajamos y al final del primer nodo se encuentra “ikblend” con un número 1 como valor. Si quitamos ese número 1 y lo ponemos en valor 0, entonces el controlador caja no funciona y el ik tampoco, y podemos mover los brazos con forward kinematics. Si nos decidimos a hacer esto, hay que realizar algunas modificaciones al rigg para que funcione directamente sin tener que seleccionar los ts.
RIGGING DE LA CABEZA. En caso de que la cabeza esté unida al cuerpo: Hay que separar la cabeza del cuerpo. Seleccionamos las caras de la zona que vamos a separar y le ponemos Polygons-extract. Se separa la cara, pero todos los poligonos se separan totalmente. En los nodos de inputos del channel box o del editor de atributos, hay que buscar “polyChipoff”, e irse hacia abajo, hasta abajo, y buscar el atributo “keep faces toge”, y ponerle on. Esto va a ocasionar que los poligonos se unan. Cuando ocurre la separación, vamos a tener la situación de que en la cabeza que se separa no hay textura. Si abrimos el hypershade y buscamos la textura del modelo y se lo ponemos encima al modelo, se va a ajustar perfectamente, porque el UV layout no se modifica, se queda igual. Al volver a unir las piezas, hay que unir con merge vértices, uno por uno, porque merge multiple edges no funciona.
43
Para animar la cabeza del personaje, lo primero que hay que hacer es poner 3 layers distintas. Las capas se nombran como faceLayer, eyesBlendsLayer, mouthBlendsLayer. Se asigna toda la cara al layer que se llama faceLayer. Luego se seleccionan las cejas, y se agrupan, y se le pone al grupo el nombre de eyeBrowsGroup. Luego seleccionamos los ojos, la parte interior del ojo y la parte exterior del mismo, esto lo hacemos en el outliner. Y ya en el outliner, vamos a cambiar el nombre del grupo a “eyesGroup”. Ahora, vamos a poner los ts. Los ts van a quedar de la siguiente forma: El primero va en la base del cuello. Luego el segundo, en la base de la mandíbula, y el tercero en el tope de la cabeza. Los nombramos como neck, head, y topead.
Ahora vamos a poner los huesos de la mandíbula. El primer hueso va debajo de la lengua, en el pivote de la mandíbula, encima del hueso. El otro t va por debajo de los dientes inferiores, poquito atrás, y se nombran como “jaw” y “jawEnd”.
44
Después de hacer esto, vamos a poner un IK Handle. Este lo ponemos con IKRPsolver, desde sus preferencias. Este lo ponemos desde el t Neck, al t siguiente hacia arriba que sería base head. Nos va a dar un poco más de control. Ahora le vamos a hacer un controlador a la base del cuello. Ponemos un círculo de nurbs como lo habíamos estado haciendo, con “v” lo encajamos al t headbase , le cambiamos la proporción al tamaño que se desea y lo posicionamos. Le ponemos freeze transformations y le ponemos delete history, y le cambiamos el nombre a Neck control. Ahora, cuando lo probamos rotando el tronco, la cabeza ya no se mueve. Esto es porque le pusimos un orientación a la curva en relación de la cabeza. Después, emparentamos el control de la cabeza (círculo), con el control de la espalda, que es la flecha.(seleccionamos el círculo, luego shift a la flecha y ponemos parent.) Seleccionamos el círculo (neck control) luego shift select el ikhandle, (arriba lo seleccionamos) y le ponemos “point constrain”). Luego seleccionamos la curva de control de la cabeza, shift select el hueso de la cabeza ( head t) y después le vamos a poner un orient constrain. (misma técnica pág. 22). En caso de que el hueso de la cabeza se rote, es porque la orientación del hueso del cuello es diferente que la orientación de la curva de control; hay que ponerle en orient constrain options “mantain offset”. (se puede checar la orientación yendo a f8 (modo por componentes) y con la mascarilla de signo de interrogación se checan las cosas, por separado o seleccionando los 2 al mismo tiempo. Nota: En este ejercicio, (cabeza individual) se pone ahora un GlobalControl para toda la cabeza, este va a ser en forma de locator, que sacamos de Create--locator, se pone en el t neck con v, le borramos la historia y le damos freeze transformations y se pega a
45
él con parent constrain, seleccionando primero el locator, luego shift select el t y le damos parent constrain. A este lo nombramos como neckControl. Luego, seleccionamos el circulo de control de la cabeza, shift select el locator y le damos parent.(normal). Luego seleccionamos el ikhandle, le damos “group”, y lo nombramos como ikgroup, luego en el outliner, seleccionamos PRIMERO el locator, luego el ikGroup y le ponemos Constrain-parentconstrain.
AGREGAR UN ATRIBUTO DE MOVIMIENTO DE MANDIBULA Seleccionamos la curva de control de la cabeza. Luego, con la curva seleccionada vamos a ir a Modif.—add attribute y a la ventana de atributos la vamos a dejar igual, es decir, no la vamos a poner ni mínimos ni negativos, solo le vamos a poner por nombre “Jawx”. Esto va a servir para mover la mandíbula en el eje x. Luego, vamos a poner 2 atributos más. Uno que se llame “Jawy” y otro que se llame “Jawz”. De aquí nos vamos a window—general editors--- conection editor. Seleccionamos el círculo-curva de control, y le damos a la ventana reload left. (driver). Luego, vamos a bajar de ese lado hasta tener a la vista los atributos “Jaw” que acabamos de poner. Ahora, seleccionamos los ts de la mandíbula seleccionando el hueso que está en medio de “jaw” y de “jawend”, y le vamos a dar reload right. Aquí vamos a buscar el atributo rotate, y le damos clic en el signo de más a su lado para abrirlo.
46
Ahora vamos a conectar atributos. Primero vamos a seleccionar JawX y luego seleccionamos rotateX. Luego seleccionamos JawY y luego seleccionamos rotateY. Después seleccionamos JawZ y después rotateZ. Al seleccionar cada par se quedan en cursivas, que nos indica que estan conectados. Con esto, cuando seleccionamos en channelbox el atributo jawX del control, con clic derecho sobre la pantalla jalamos con drag y movemos la mandíbula. EMPARENTAR LA GEOMETRIA Vamos a emparentar la geometría a los huesos. Ponemos el x-ray mode .Vamos a seleccionar el cabello (si es que está separado del rostro), luego seleccionamos el t del tope de la cabeza (el último, head top), y le damos p de parent. Seleccionamos el grupo de las cejas, y lo emparentamos también a ese t. Hacemos lo mismo con el grupo de los ojos y con los dientes superiores. Los dientes inferiores los vamos a emparentar a los huesos de la mandíbula. La encía la vamos a emparentar al headbase o head t, para que se mueva correctamente. BINDING DEL ROSTRO Seleccionamos el rostro (geometría), luego el raíz de los huesos de la cabeza) y le ponemos Skin—bind skin--smooth bind, con los valores de default. Nota: con cntrl shift select haciendo una caja vamos a poder ir seleccionando y añadiendo a la selección vértices.
47
AÑADIENDO PESOS. La primera parte de los pesos se va a realizar con el component editor. (window— general editor—component editor). Vamos a escoger los vértices de la cabeza, hasta dejar libres los que están en la mandíbula y en el component editor seleccionamos la columna “head” (el t al cual vamos a poner los pesos) y le damos a todo el peso de “ 1.00 “. Automáticamente todos los demás pasan a tener 0.
Para asignar el cero se selecciona la primera casilla, luego nos vamos hasta abajo y con shift select seleccionamos, y luego en la primera seleccionada ponemos “1.00”. También en el component editor tenemos abajo en esa ventana la facilidad de mover los pesos con un slider. Seleccionamos los pesos con negro, y posteriormente le movemos al slider hasta ver que queden bien puestos. Ahora, vamos a empezar a mover la mandíbula con los atributos que pusimos, para ver que hay que ajustar. En primer lugar le quitamos influencia a la mandíbula en la parte del cuello, seleccionando los vértices y poniendo cero en los ts necesarios para que no se mueva. Ahora, hay quitar la influencia de la mandíbula en la parte del labio superior, llevando los valores a cero. Las mejillas hay que arreglarlas con el slidebar de la ventana de componentes, hasta que veamos que se mueve bien. ENCIAS, CREAR CLUSTERS. Para que la encía quede bien, vamos a seleccionarla e irnos a vertex mode. Ahí vamos a seleccionar los vértices inferiores de la encía,
48
De ahí nos vamos a ir a deform—create cluster y en su ventana le vamos a poner relative. Al tener el cluster hecho le vamos a poner “cluster gums”. Luego, tomamos el cluster, le damos shift select el t head y le ponemos parent.Nos va a dar un aviso el programa para avisarnos que se tuvo que agrupar el cluster. Luego vamos a unirlo a la mandibula para que siga el movimiento de la misma. Para esto, tenemos que mover el pivote del cluster para mandarlo al t “Jaw”. Seleccionamos el cluster. Luego nos vamos a f8 para irnos al component mode. En el component mode vamos a seleccionar el icono de un circulo con un punto adentro, que dice pivots. Luego, con v lo unimos al t “Jaw” y nos salimos del modo de componentes. Luego, seleccionamos el t “Jaw” shift select el cluster y después nos vamos a Constrain—point constrain. CONTROLADORES DE LOS OJOS Se hacen con curvas. Vamos a agrupar la geometría doble del ojo, la interna y la externa, y posteriormente ese grupo es el que vamos a unir la controlador. Vamos a tomar el grupo del ojo y darle center pívot. Vamos a tomar su controlador y le vamos a dar center pívot. Luego seleccionamos el controlador, shift select el ojo y del damos aim constrain, metiéndonos a su ventanita para poner mantain offset. Entonces ahora podemos ver que cuando movemos el controlador, movemos el ojo también. Posteriormente vamos a seleccionar los controladores de los ojos y los agrupamos como EyeControlGroup. Ya que lo tenemos vamos a seleccionar el t de la cabeza, el head, shift select el grupo de los controladores de los ojos y le vamos a dar Parent constrain. Luego, lo vamos a conectar con el controlador maestro de la cabeza ¿parent constrain?
BINDING Y SKINNING Se selecciona la geometría, después shift-select los ts, y se le da skin—bind skinsmooth bind y se abre la ventana. En esa ventana, lo dejamos todo igual a excepción de las máximas influencias, lo cambiamos a 3. Esto es el número de ts que estaba alrededor de cada punto, y que tiene influencia sobre él. Cuando ya está emparentado, vamos a seleccionar la geometría y la vamos a mover. Luego, vamos a poner F8, pero no vamos a poner ningún signo en las mascarillas.
49
Seleccionamos los ts que queremos aislar, ejemplo sería una pierna, para quitarle influencia sobre otro t. Luego, nos vamos a window-general editor-component editor. Nos vamos a la pestaña que dice Smooth Skins, y a a la derecha vamos a ver el nombre del objeto, y debajo de nombre vamos a ver todos los vértices que tenemos seleccionados. En el lado derecho vamos a tener todos los ts. Se busca el t que se está moviendo cuando jalamos, por ejemplo: si tenemos seleccionados los vértices de la pierna izquierda, vamos a buscar los ts de la pierna derecha que tienen un valor de influencia. Los vamos a seleccionar todos, seleccionando el primero de arriba hacia abajo, luego shift el último y al primero le damos cero, y luego enter. Con esto vamos a ver que cuando movemos las cosas, observamos que todo se mueve bien. A veces se puede poner valor 1.0 para que un t tenga todo el peso. En caso de que sea mucho, lo que se puede hacer es abajo, en esa ventana, utilizar una barra como scroll para moverla y ajustar los ts. Primero se seleccionan todos los ts, luego en la barrita la empezamos a mover y de esa forma ajustamos.
50