Controles y restricciones (Animación asistida)

Controles y restricciones (Animación asistida)

Qué son los controles y las restricciones en Max?

FORMAS DE CREAR ANIMACIÓN EN MAX

La primera es la convencional mediante cambios manuales y la creación de keyframes (fotogramas clave) que almacenan los cambios que hayamos realizado. Contamos con las herramientas “set Keyframe” y “auto keyframe”

La segunda forma es más elaborada e involucra simulaciones (tela, partículas, colisión de sólidos) que, a pesar de ser bastante realista, requiere que tengamos una escena preparada de forma minuciosa a escala real pues la gravedad y todas las fuerzas relacionadas trabajan en función al tamaño de los objetos (no pesará lo mismo una tela de 40*40 cm que una tela de 40*40 metros). Entre otras herramientas contamos con el sistema cloth y el mass Fx.

La tercera forma permite que las geometrías o los elementos de la escena interactúen en base a la situación o cambios de otro elemento. Esta forma de animar involucra programación de las acciones o cambios de cada elemento interviniente. Afortunadamente contamos con asistentes como el “wire parameters” o es “reaction manager”.

La cuarta forma es la que nos atañe en esta ocasión.  La animación se ve generada gracias a que sometemos a nuestros objetos a ciertas reglas que les prohíben o permiten hacer determinados cambios o transformaciones en la escena. Esos permisos o prohibiciones serán conocidos como restricciones y pueden condicionarse con funciones internas llamadas controles.

Aclaramos una cosa, al final todo tiene que ver con los controles, es sólo que lo que se denomina “restricciones” hace referencia a un conjunto de herramientas pre definidas para hacernos la vida más fácil.

Para muestra tenemos la siguiente animación:

El sonido fue proporcionado por Arsenic1987. Pueden ver su canal de youtube con melodías muy pegadizas

Controles.-

Toda la animación ha tenido en cuenta controles y restricciones varios, y el centro de mando de estas herramientas es el panel “motion”

Si partimos de con una escena limpia en MAX y creamos una geometría cualquiera (en este caso la esfera) y vamos al panel Motion nos encontraremos con el primer set de controles relativos a las tres transformaciones básicas (posición, rotación y escala).

El control de posición es un control llamado “position XYZ” que separa en tres criterios individuales la información de desplazamiento en XY y Z.

Lo mismo para rotación (canales separados). El cambio radica en la palabra “Euler” que es la matemática interna que se usa para calcular la rotación de un objeto en el espacio 3D. (el otro método es el quaternion).

Y por último, la escala que guarda la información de todos los ejes en los que se concoe como un Criterio “Bezier”. El nombre hace referencia al tipo de curva que interpreta Max al escalar para que la transición sea orgánica.

Debajo de los controles asignados tenemos botones que nos ayudan a crear keyframes para las transformaciones. Podemos considerar a esta parte el núcleo interno de lo que sucede cuando realizamos una animación manual.

Si se quiere animar con keyframes solamente nada de esto se tocaría, pues ya viene preparado para ello.

Asignar controles de la lista de controles.-

Si seleccionamos, por ejemplo, el control de posición veremos que en la parte superior izquierda de la lista de controles se ilumina un botón. Si pasamos con el mouse por encima salta la etiqueta “assign controller”. Al presionarlo nos encontramos con una lista de todos los controles o fórmulas con las que se puede controlar a la posición de un objeto.

También podemos asignar controles de forma individual. Para ejemplificar lo que se puede hacer asignaremos un control a la transformación de posición en X.

 

 

1.-Observaremos que el control que guía en estos momentos a X es un control Bezier. Si Recordamos lo que dijimos de este control (cuando mencionamos que se encargaba de la escala) sabremos que se trata de la versión manual (set y auto keyframe) y que regula una entrada y salida orgánica (suave) de keyframe a keyframe.

2.-Elegiremos de la lista el control “waveform float” que se encuentra al final de la lista. Podemos confirmar que lo elegimos ya sea con un doble click o presioanndo el botón aceptar.

Al hacerlo pasan varias cosas:

3.-Prrimero nos daremos cuenta que en la lista de controles principal el valor de X tiene otro nombre asociado Ya no el de Bezier, sino el de Waveform.

Segundo veremos que ha aparecido un panel nuevo. Este panel corresponde a los parámetros del control “waveform”

Tercero. Si alejamos un poco la esfera como se ve en la captura, y le damos al Play en la línea de tiempo, observaremos que la esfera se anima de forma automática de izquierda a derecha, en respuesta al nuevo control sobre el eje X que se le ha asignado.

Desarrollando los parámetros de los controles

Hay bastante que contar de los controles, pero al ser este un artículo de referencia, sólo haremos lo necesario para que podamos ubicarnos en el contexto de la potencia de los controles y restricciones.

En el panel de waveform centraremos nuestra atención primero en dos valores: el Periodo o frecuencia (period) y la amplitud.

El periodo o frecuencia es la cantidad de veces que se repetirá la acción de cambio el valor por defecto es el 10. Ese 10 indica que la bola habrá cambiado de posición hacias X y –X una vez hasta volver a su posición. Todo eso en los 10 primeros fotogramas de la línea de tiempo. Si se quiere comprobar sólo hay que mover el cabezal poco a poco del fotograma 0 al fotograma 10 y podremos observar que la bola ha hecho un “recorrido completo” de X a –X y ha vuelto a su sitio original. En 100 fotogramas Habrá hecho 10 idas hacia X y 10 hacia –X haciendo un total de 20 cambios de posición para que al final retorne al sitio de partida.

Mientras más grande sea al número de la frecuencia, más lento hará el recorrido de X a –X (menos repeticiones).

La amplitud, por otra parte, es la encargada de decirle a la esfera cuanto debe ser su recorrido en X y –X . El valor por defecto es 100, quiere decir que, la esfera se mueve en un rango de 100 unidades a la izquierda y 100 a la derecha a partir del centro de eje de coordenadas.  Si miramos desde el visor Top veremos que el pivot de la esfera de mueve exactamente este tramo en X.

Si cerramos la ventana del control Waveform, podemos volver a verla haciendo doble click sobe el eje X que es el que es controlado por este parámetro.  Esto sucede con cualquier control salvo con los Bezier que no tienen panel de configuración por pertenecer al modo manual de animación.

Ahora bien, Al cambiar el control hemos delegado a una función matemática la misión de decidir dónde en X se encuentra nuestro objeto. Sólo que el control que se le ha dado es total.

Intentemos mover el objeto con el Gizmo (de forma manual) en los tres ejes. Nos daremos cuenta que si bien la esfera se puede mover libremente por Y (adelante y atrás) y Z (arriba y abajo) pero en X está “clavada” y no hace nada de caso.

Al asignar el control con las opciones de frecuencia y amplitud hemos restringido el movimiento de X en 100 unidades positivas y 100 negativas a partir del cero del eje de coordenadas.

Antes de continuar tenemos que deshacer la asignación del control. Repetimos el proceso de asignar controles, pero esta vez elegiremos “Bezier FLoat”

El “error” de nuestro primer control fue el de asignar el 100% del movimiento en X a la función Wave.

Es ahora cuando entra en escena otro tipo de control que nos permite apilar instrucciones para poder tener dos o más niveles de maniobrabilidad sobre nuestros objetos.

El control se llama FLoatList

Control float list

Al asignar este control podemos ver que en el Eje en cuestión (X) se ha creado una especie de desplegable que viene encabezado por el ya conocido Bezier. Debajo de este, se encuentra la palabra “Available” (Disponible) si hacemos click sobre esta palabra veremos que es posible acceder a la lista de controles. Asignaremos de nuevo el control Waveform. Y sin tocar nada más saldremos del menú de parámetros.

Con este procedimiento le estamos diciendo a Max que tome en cuenta el control waveform con los parámetros que sean (frecuencia y amplitud), pero siempre luego de considerar la posición que se le haya asignado al objeto (esfera) previamente de forma manual (mediante keyframe). Hemos convertido al contador de desplazamiento de coordenadas absolutas (referentes al cero del eje de coordenadas) en desplazamiento de coordenadas relativas. Ahora podremos mover nuestra esfera hacia donde queramos y aprovechar el movimiento automático del control waveform.

Recordar que la lista es infinita y que por cada control que se asigne aparecerá una casilla de disponible debajo. Esto es porque además se puede controlar cuándo debe intervenir un control en concreto.

Si hacemos doble click en el encabezado de Float list veremos que aparece un mini menú que me indica “el peso” de influencia que tiene cada control sobre el objeto. Estos Pesos son por porcentaje y se pueden animar para aumentar o disminuir su efecto en la línea de tiempo.

 

Podríamos, por ejemplo, dejar sin efecto (valor cero) el waveform y que la esfera se desplace de forma directa con nuestros keyframes y en un momento dado dejar que sea el waveform que tome las riendas y haga que se mueva de forma peculiar.

A todo esto. En nuestro video de ejemplo tenemos a los fantasmas que se mueven de forma automática en una acción de “flotar” y además uno de ellos persigue a PacMan. No es difícil imaginar de qué forma se hizo, verdad?.

Restricciones (constraints)

Ya hemos visto la función de los controles Es hora de saber a qué nos referimos con restricciones.

Las restricciones son funciones que vienen “pre cocinadas” para que podamos aprovechar los controles.

Los encontramos en el menú de animación.

Como podemos ver existen 7 restricciones. Desarrollaremos 2 de ellas.

Path constraint (restricción de recorrido)

Esta restricción hace que el objeto siga un recorrido determinado por una spline. La spline dibujará el camino que va a recorrer el objeto.

Para ejemplificar esto usaremos una tetera y un recorrido como el de la captura. Añadiremos también un plano a modo de suelo. Recordar siempre tener en cuenta la vista frontal para reproducir los ejercicios y así habrá menos incoherencias entre el resultado que saque uno en casa y el que sale en la guía.

El spline también debería estar dibujado de forma que el primer vértice sea el indicado con el número uno y el ultimo con el número dos.

Los constraints siempre tienen en cuenta el pivot del objeto para referencia de cualquier restricción. Ubicar el pivot en un lugar adecuado es indispensable para que todo salga bien.

Ahora se selecciona la tetera y vamos al menú de animación a buscar la restricción. Al elegir “path constraint” veremos que aparece una línea punteada que espera que le indiquemos el recorrido que sirva de guía . Indicamos que es la spline.

Al terminar de elegir la spline vemos  que en la línea de tiempo aparecen dos keyframes para la tetera y que la tetera ha saltado de forma automática hasta la posición del primer punto de la spline. Esos keyframes indican el comienzo y el final del recorrido de la tetera.

Si le damos al play la tetera hará todo el recorrido del fotograma 0 al 100.

También veremos que la solapa activa en el menú de la derecha es la de animación “motion”

En ese menú vemos que ha aparecido una position list (recordar que un control “list” funciona para colocar varias órdenes en un   objeto) y que a parte de un xyz position tenemos un path constraint añadido.

Cada menú de estas restricciones viene con un set de parámetros. Se encuentran debajo de los parámetros que ya hemos visto en el menú de controles.

De estos parámetros podemos resaltar la primera parte de “Add path” o “delete path” y es que podemos añadir y quitar “rutas” en nuestro recorrido.

El porcentaje de peso sólo funciona cuando hay más de un recorrido.

En la parte de Path options tenemos el “% along path” este es el responsable que la tetera se mueva por el recorrido. Al jugar con el cabezal de la línea de tiempo y observar este valor podemos apreciar que el porcentaje varía en cada parte del recorrido de 0 a 100 por ciento.

Con este valor podremos decirle a nuestro objeto que marche más rápido o más lento o incluso retroceda o se mantenga en una posición en concreto.

Justo debajo del valor de recorrido tenemos una casilla llamada Follow (seguir). Veremos que si se activa podemos orientar la tetera de manera que “mire” siempre hacia adelante. Y acate la orientación del recorrido.

Mientras esta restricción esté activa las modificaciones que se hagan a la forma de la spline afectarán al recorrido de la tetera.

   Attachment constraint.

Esta restricción permite Adherir cualquier objeto a una superifice de otro, de manera que todas las deformaciones de la superficie afecten a la posición del primero. Un botón a una camisa o un pin a una solapa. La ventaja en animación de un constraint sobre el simple comando attach es que uno puede animar la parte de superficie a la que el objeto está adherido sin necesidad de estar físicamente vinculado.

Para ejemplo pondremos a un barco en un mar picado.

Para el mar picado usaremos un plano con bastantes segmentos. (30*30) y un modificador noise. Luego a este modificador le activaremos la casilla de animado (animated) y así con algún ajuste más tendremos un mar con olas. Distorsionaremos el plano sobre el eje Z, para que hayan diferencias de altura entre la olas.

Para el barco podemos hacer uno como en la captura, pero si tenemos pereza también nos vuelve a ser útil la tetera. Sólo porque nos indica la dirección a la que se ve orientada cuando vaya por la superficie.

Al activar la restricción veremos como el barco salta al principio de lo que considera el plano.

Ahora si le damos al play el barco estará fijo en esta parte del plano y se moverá en sincronía con las olas.

Para llevar al barquito a donde quisiéramos en las olas sól hay que presionar el botón Set position y deslizar el mouse haciendo click sobre la zona que queremos. El barco se posicionará y quedará ligado a la superifcie .

Conclusiones.-

Mucho se puede decir sobre los controles y las restricciones ya que son los responsables de muchas de las automatizaciones de animación en MAX. Pero esto es sólo una pequeña muestra.

Más adelante hablaremos de más restricciones y de cómo se puede interactuar con casos prácticos y sencillos como este, pero entretenidos.

 

Escribe un comentario