|
|
|
|
27 – Para el cuello vamos a utilizar una expresión. Las expresiones en maya nos permiten controlar eventos que ocurren a través del tiempo. Funcionan como una programación para animación y permiten no solo establecer eventos vinculados a atributos como los Driven Keys sino también establecer operaciones matemáticas, trigonométricas y lógicas para controlar los nodos.
En este caso realizaremos la labor simple de dividir la rotación del controlador del cuello entre los tres huesos del cuello.
Abrimos el Expression Editor; Windows > Animation Editors > Expression Editors. Seleccionamos el control Cuello. Si damos un valor sobre el atributo Rotate X desde el Channel box veremos que en el Script Editor aparece el nombre del atributo, también podemos encontrarlo desde la misma ventana del Attribute Editor

Le damos un nombre a la expresión. Escribimos luego:
$CX = Cuello.rotateX;
Y damos clic en el botón crear. Ahora en select Filter escogemos la opción By Expression Name esto lo hacemos para trabajar mas cómodamente si no lo hiciéramos cada vez que seleccionemos un objeto se nos desaparece la expresión que estamos trabajando.
Los Atributos siempre tendrán la misma lógica para nombrarlos:

Cada vez que declaremos una variable dentro de la expresión llevara el signo $ adelante. Así $CX es una variable que obtendrá en este caso el valor de la rotación en X del controlador Cuello.
Todas las lineas de la expresión deben terminar con un ;
Las expresiones son sensibles al uso de mayúsculas y minúsculas. Se deben utilizar los nombres correctos siempre.
Hasta ahora esta expresión es tonta, no hace nada. Hagamos que controle los huesos. Modificamos la expresión de la manera siguiente y damos Edit.
$CX = Cuello.rotateX;
J_Cuello01.rotateZ = $CX;
J_Cuello02.rotateZ = $CX;
J_Cuello03.rotateZ = $CX;
Lo que hacemos aquí es transmitir directamente la rotación en el eje X del controlador cuello a los ejes X de los tres huesos del cuello. Esto es algo que podríamos hacer de igual manera con el connection editor. Pero al transmitir la rotación completa a los tres joints estamos multiplicando por tres los grados de rotación así si giro el controlador 90º la rotación resultante sera la suma de las 3 rotaciones mas o menos 270º. Modificaremos una vez más la expresión para dividir la rotación.
$CX = Cuello.rotateX*0.33;
J_Cuello01.rotateZ = $CX;
J_Cuello02.rotateZ = $CX;
J_Cuello03.rotateZ = $CX;
Al multiplicar por 0.33 estamos sacando realmente el 33% del valor de la rotación de manera que cara Joint recibirá solo el 33% de la rotación.

Generamos el resto de la expresión conectando los otros ejes de rotación del control cuello con los ejes correspondientes.
X -> Z
Y -> X
Z -> Y
Debe quedar algo similar a esto:
$CX = Cuello.rotateX*0.33;
J_Cuello01.rotateZ = $CX;
J_Cuello02.rotateZ = $CX;
J_Cuello03.rotateZ = $CX;
$CY = Cuello.rotateY*0.33;
J_Cuello01.rotateX = $CY;
J_Cuello02.rotateX = $CY;
J_Cuello03.rotateX = $CY;
$CZ = Cuello.rotateZ*0.33;
J_Cuello01.rotateY = $CZ;
J_Cuello02.rotateY = $CZ;
J_Cuello03.rotateY = $CZ;
28 - Para la cabeza como los ejes locales están orientados en los ejes del mundo podemos conectar en el connection editor toda la rotación del control cabeza con el J_Cabeza. En caso de tener otra orientación de ejes podemos conectar a discreción de manera cruzada los ejes como hicimos en la espalda.
29 – Ahora ya tenemos listo el control de la espalda pero a la hora de girarla notaremos que los controles se quedan fijos en sus posiciones a veces siendo ocultados por el modelo. Vamos a evitar esto.
Creamos 4 Locators y los centramos con los Cabeza, Cuello, Torax y Lumbar, luego emparentamos los lacators de a los Joints de esta manera.

Una vez emparentados seleccionaremos todos los atributos de los locators menos la visibility y damos Lock and Hide. Por último hacemos que cada uno de los controladores sea hijo de su respectivo locator. Ahora los controles de la espalda seguirán a la espalda cuando esta se arquee. Los controladores Cintura y Cadera serán hijos de Raiz.

30 – Para el control de las mandíbulas crearemos dos esferas que ubicaremos y re nombraremos como indica el gráfico y haremos hijas del locator del controlador Cabeza.

En el Connection Editor Conectaremos la rotación total de MandibulaSup con la rotación de j_MandibulaSup y la rotación de MandibulaInf con la de J_MandibulaInf.
|
|
 |
|