3DSMAX Tutorial 12: Animación en 3DSMAX, Representación final en vídeo

En este tutorial aprenderemos a generar la salida final de cualquier animación realizada en 3DSMAX, así como también vamos a conocer los formatos más utilizados en imagen y en vídeo para la correcta visualización de esta. Sin embargo, antes de representar un render o un vídeo debemos tomar en cuenta los siguientes aspectos previos:

1) El formato de salida del renderizado final.

2) La resolución en la pantalla y/o tamaño de impresión.

3) El tiempo total de renderizado.

En este tutorial veremos todos estos aspectos y además, aprenderemos a representar la animación en vídeo mediante 3DSMAX utilizando el cuadro Render Setup.

Formatos de Salida

Como ya sabemos, al presionar la tecla F9 representaremos los objetos 3D de una escena en 3DSMAX mediante un Renderizado o Render, el cual significa literalmente “interpretar” o “representar” ya que el programa toma todos los objetos, materiales, luces, fuerzas, entorno, animaciones y parámetros que hemos aplicado en la escena, y los convierte en un formato apto para ser visualizado y exportado a medios multimedia, además de ofrecer la mejor calidad. En este caso tenemos dos tipos de formato de salida que son:

a) Imagen estática: este formato corresponde a una fotografía o gráfico en formato bidimensional, donde apreciamos el resultado de nuestro trabajo en la escena. Si tenemos una animación ya realizada en 3DSMAX, la imagen será diferente según el cuadro en el cual apliquemos el renderizado. Si en cambio no animamos, el resultado será siempre el mismo independiente del cuadro en el que se renderice. En el caso de las imágenes, 3DSMAX dispone de los siguientes formatos conocidos:

– JPG: este es el más popular de todos ya que al ser un formato de imagen comprimido, posee muy bajo peso y es fácil de manipular y editar. Debido a su naturaleza, este formato no se recomienda para renders finales o impresión en plotter ya que este pierde calidad a medida que se comparte, o se disminuye su resolución. Sin embargo, es bueno para enviar borradores o vistas previas de un trabajo antes del renderizado final.

– BMP: es un formato de imagen no comprimido y por lo tanto no se pierde calidad, aunque tiene por desventaja su excesivo peso y además no soporta Canal Alfa o Alpha Channel, el cual nos permite transparentar el fondo.

– PNG: es el formato ideal para renderizar ya que posee relativamente bajo peso y no se pierde calidad, además de soportar el Canal Alfa. Se utiliza preferentemente para renderizados en páginas web o trabajos finales que no requieran ser impresos.

– TGA: formato ideal para realizar videos profesionales para TV o cine, ya que soporta Canal Alfa y posee la mejor calidad de imagen a pesar de su relativamente alto peso. Para trabajar con este formato, se suele imprimir cada fotograma en TGA y luego se lleva toda la secuencia a un editor de vídeo, donde se convierte en la película final.

– TIFF: es el formato indicado para la impresión mediante plotter o de forma física puesto que nos permite determinar la cantidad de DPI (puntos por pulgada) y el tamaño de impresión final, y ofrece excelente calidad aunque con un peso relativamente alto. Este formato se utiliza para realizar los renders finales.

También existe otro formato que no posee 3DSMAX pero que se debe conocer:

– GIF: formato pensado inicialmente para páginas web ya que posee bajo peso, soporta transparencias y se puede animar, aunque está limitado sólo a 256 colores simultáneos.

Algunos de estos formatos pueden verse en la imagen siguiente:

Comparación de calidad entre los formatos JPG, PNG y TIFF.

b) Vídeo: este formato corresponde a una secuencia de fotografías o gráficos en formato bidimensional, donde apreciamos el resultado de nuestro trabajo en la escena. Esta secuencia es guardada en un único archivo el cual podrá ser reproducido en un dispositivo físico o virtual en forma de película. En este caso, 3DSMAX dispone de los siguientes formatos:

– AVI: el más popular de todos ya que se utiliza en vídeo digital y TV y, por ende, se puede utilizar tanto para enviar pruebas de animación como para el renderizado final. Ofrece buena calidad en general a un peso de archivo aceptable.

– MPG: es un formato que se utiliza para dispositivos DVD ya que su resolución es de 720 x 480 o 720 x 486. Por ello, es un archivo pesado pero con buena calidad de imagen.

– MOV: formato pensado inicialmente para videos Web de Apple el cual posee bajo peso y calidad aceptable, aunque actualmente ya no se encuentra disponible en las versiones nuevas de 3DSMAX.

Existe un tercer formato más moderno que sería el de la impresión 3D, sin embargo este no se considera como formato de animación o de Render ya que que sólo sirve para imprimir de forma física el modelo 3D.

La importancia de conocer los formatos de imagen y vídeo radica justamente en que sepamos cual o cuáles ocupar en caso que necesitemos enviar una prueba, un vídeo final o una imagen para imprimir en forma física. Elegir el más adecuado dependerá de lo que necesitemos realizar.

Resolución y/o tamaños de impresión

Además de los formatos en sí mismos, también deberemos tomar en cuenta la “resolución” de una imagen o un vídeo. La resolución se define simplemente como el tamaño que tendrá la fotografía o el vídeo en la pantalla de un PC, y afecta a una imagen o a una animación completa. En este caso siempre tomaremos en cuenta lo siguiente:

La resolución de una imagen o vídeo es medida en Píxeles (puntos de la pantalla) y por ende, una mayor resolución posee más calidad aunque también agregará más peso por imagen y por ende, hará más demoroso el proceso de renderizado. En cambio, menores resoluciones disminuirán la calidad pero harán más livianos los archivos y por ello, el proceso de renderizado será más rápido.

Las resoluciones Standard más utilizadas y que existen en 3DSMAX son:

– 320 x 240 píxeles (borrador).

– 640 x 480 píxeles (PC antiguo).

– 720 x 486 píxeles (DVD).

– 800 x 600 píxeles (PC Standard).

– 1280 x 720 píxeles (HD).

– 1920 x 1080 píxeles (HD).

En cuanto a los tamaños de impresión, sólo funcionan en el caso que queramos imprimir una fotografía en un medio físico y por ende usando el formato TIFF. El tamaño de impresión se mide en “Puntos por pulgada” o Dot Per Inch (DPI), el cual precisamente representa la cantidad de “puntos” que las impresoras de tinta pueden imprimir en el espacio lineal de una pulgada (2,54 cm). Esto puede apreciarse en el ejemplo siguiente:

 

Imágenes a 10 y 72 DPI respectivamente. Ambas poseen 580 x 580 pixeles de resolución de pantalla para realizar la comparación, pero la primera se pixelea demasiado debido a que en 10 DPI esta debiera tener una resolución de 81 x 81 pixeles. Sin embargo, el tamaño de impresión en plotter para ambas es de 20,46 cms.

Un aspecto interesante de los DPI es que se relaciona directamente con el tamaño de un formato de papel y por ende, mientras la imagen sea de mayor tamaño menos DPI serán requeridos. Por ejemplo, si queremos imprimir un documento en un formato A0 requeriremos unos 76 DPI, mientras que si queremos imprimir el mismo documento en un formato carta o A4, requeriremos 300 DPI para lograr una calidad óptima. Por ello, la cantidad de DPI dependerá siempre del tamaño final del papel.

Hay muchas resoluciones en DPI pero los más utilizados son:

– 72 DPI (periódico, Internet).

– 150 DPI (Formato A2 y calidad media).

– 300 DPI (Calidad Óptima).

Sin embargo, es bueno aclarar también que se pueden colocar más DPI a tamaños grandes y así se logrará una mejor calidad, aunque también a un alto costo de impresión y render.

Tiempo de renderizado

De acuerdo a los puntos 1) y 2), podemos concluir que ambos influirán notoriamente en el tiempo final del proceso de renderizado, aunque también se debe considerar el tipo de PC del que dispongamos y el tiempo que durará nuestra animación. Por esto mismo, al realizar cualquier animación en 3DSMAX se recomienda lo siguiente:

Animaciones previas o de prueba:

– En lo posible se deben realizar varias animaciones de prueba antes del renderizado final. Estas se demorarán relativamente poco ya que normalmente no utilizan luces GI ni iluminación artificial. También se deben realizar ya que el tiempo de animación mostrado por la Viewport del programa NO necesariamente es el mismo tiempo del renderizado final, ya que en este último caso suele reproducirse de forma más lenta.

– Para la animación de prueba siempre se deben usar bajas resoluciones (320 x 240), y en lo posible sin materiales ni iluminación aplicados.

Animaciones finales:

– Usar resoluciones altas en video, mínimo de 640 x 480 píxeles. Nunca usar pequeñas pues se verán pixeladas en pantalla al agrandar el video.

– Usar calidad alta, pero si esto no es posible usar la calidad media ya que esta posee una resolución aceptable y no es tan demorosa como las más altas. Si el PC nos lo permite, podemos usar calidades más altas. En motores de render como ART Render, usar calidad Medium o superior y Noise Filter en un 50% al menos.

– En general, la creación y el renderizado de una animación de forma profesional demora muchísimo tiempo (desde algunas horas hasta varios días incluso) y por lo tanto, se debe realizar con mucha anticipación. Para el caso de proyectos de Arquitectura, se recomienda no utilizar tiempos excesivamente largos (2 minutos como máximo), ni tampoco demasiado cortos que no permitan ver la animación de forma óptima (mínimo de 10 segundos).

– En lo posible, trabajar con varias escenas y luego componer todas las animaciones finales en un editor de vídeo como Premiere o similar. Si se trabaja de forma profesional o para TV, siempre se debe renderizar la animación en una secuencia de imágenes TGA, ya que los formatos de vídeo de 3DSMAX poseen calidad inferior a las que pueden generar el editor de vídeo.

Ya vistos estos principios previos al renderizado final, procederemos con la representación correcta de una animación en el render de 3DSMAX.

Representando la animación en 3DSMAX

Representar o renderizar la animación es una tarea relativamente sencilla en el programa, ya que nos bastará con ir a la opción llamada Render Setup presionando el botón respectivo (imagen inferior) o mediante la tecla F10:

Una vez que accedamos a Render Setup iremos a la persiana Common, ya que allí configuraremos los aspectos básicos de la salida como la resolución o el tipo de renderizado que queremos, además que es la persiana que está activa por defecto.

Nos daremos cuenta que en Common Parameters >> Time Output se encuentra activada por defecto la opción Single (solo). Esto significa que cuando presionemos el botón Render (1) nos aparecerá el cuadro Rendering (2) y el resultado final se representará una sola imagen, la cual aparece dentro del cuadro llamado Rendered Frame Window (3).

En la parte superior izquierda de Rendered Frame Window tendremos varios iconos donde podremos realizar varias operaciones relativas a la gestión de la imagen renderizada. Estas son:

1) Save Image: guarda la imagen en el formato que estimemos conveniente.
2) Copy Image: copia la imagen en el portapapeles.
3) Clone Image: realiza una copia exacta de la imagen pero dentro de la misma interfaz del programa.
4) Print Image: imprime la imagen.
5) Clear Image: limpia o borra la imagen, dejando el marco negro en Rendered Frame Window.

Volviendo a la persiana Common, tenemos las siguientes opciones de configuración del render:

Time Output

– Single: renderiza una imagen única. Si es una animación se renderizará la imagen del cuadro en el que esté posicionado el regulador de tiempo.

– Active time Segment: selecciona todos los cuadros de la línea de tiempo y los renderiza imagen por imagen, o mediante vídeo si lo elegimos. Si previamente no guardamos el video o las imágenes, la secuencia se perderá una vez finalizado el render.

– Range: nos permite establecer un rango de animación en la línea de tiempo. Esto es útil para renderizar la escena por partes y así acortar los procesos de renderizado si la escena es muy compleja. Por ejemplo, si tenemos una animación de 0 a 100 podemos dividir la escena en dos secuencias: una que irá de de 0 a 50 y otra desde 51 a 100.

– Frames: podemos elegir la cantidad de frames que queramos, de forma similar a cómo elegimos las páginas a imprimir en Word. Podemos establecer el número de cuadro seguido de una coma (,) para seguir con el siguiente, o indicar un rango mediante línea (-).

Area to Render

En Area to Render podemos elegir el área que queremos que se renderice, y por defecto es la opción View lo que implica que la imagen se renderizará en toda la ventana o viewport activa. Además de esto tenemos las siguientes opciones:

Select: muestra el render de uno o más objetos seleccionados previamente en la viewport, obviando el resto de los objetos que tengamos en la escena.

Region: selecciona una porción o región de la viewport (la cual podremos definir de forma libre tomándola desde los cuadrados) y la muestra en Rendered Frame Window. Si anteriormente se ha renderizado otra imagen, la región seleccionada se renderizará encima de esta. Esta opción es sumamente útil cuando queremos testear ciertos detalles sin tener que renderizar toda la imagen.

Si activamos la opción Auto Region Selected, en el render final se recortará de forma automática todo lo que no se use en la escena.

Crop: similar a Region ya que podremos realizar lo mismo, pero la región renderizada sólo tomará la región seleccionada y cortará toda el área no utilizada en Rendered Frame Window, mostrando bordes grises.

Blowup: similar a Crop ya que podremos realizar lo mismo, pero el render utiliza toda el área de Rendered Frame Window además que al editar la región mediante los cuadros, esta siempre se escalará de forma proporcional a la viewport.

Output Size

En la opción Output Size tenemos los diferentes formatos de resolución de pantalla, con la opción Custom por defecto la cual nos muestra las siguientes resoluciones:

– 320 x 240.
– 720 x 486.
– 640 x 480.
– 800 x 600.

Además de las resoluciones personalizadas tenemos muchas otras para elegir. Las más importantes son NTSC D-1 y DV, PAL y HDTV (Alta resolución). En la resolución personalizada o Custom podremos modificar el tamaño de la imagen de pantalla mediante los parámetros ancho (Width) y alto (Height), lo cual a su vez modifica la opción Image Aspect el cual es la relación proporcional entre ambos parámetros. Por defecto este valor es 1,33, el cual representa la relación de la clásica pantalla de TV de 4/3.

En el ejemplo, se renderiza la imagen mediante valores personalizados de Width y Height.

Si establecemos el tamaño de imagen de forma personalizada y por ende modificamos Image Aspect, notamos que la imagen queda fuera de cuadro pero que podremos resolver editando el parámetro llamado Pixel Aspect, el cual modifica la escala vertical de encaje de la imagen.

En el ejemplo, se renderiza la imagen mediante valores personalizados de Width y Height pero a su vez se modifica el valor en Pixel Aspect.

Finalmente, podremos bloquear ambas relaciones de aspecto simplemente presionando el candado derecho de cada opción. Esto mantendrá siempre la proporción definida en Width y Height y por ende, bastará modificar un solo valor de estos (Width o Height) para que aumente el tamaño en pantalla.

Como ya sabemos, el tamaño de la película final siempre dependerá del tipo de presentación que queremos realizar ya que no es lo mismo realizar una prueba de animación que la película final. Por ejemplo, 320 x 240 pixeles es la resolución ideal para testear la animación de prueba mientras que para definir la película final deberemos renderizarla en NTSC DV o HDTV.

Si realizamos el render de una animación eligiendo una secuencia de imágenes (Active Time Segment o Range), nos aparecerá el siguiente cuadro:

Este nos advertirá que toda la secuencia se perderá una vez finalizado el renderizado debido a que esta no ha sido asignada a un archivo. Esto ocurre porque para el caso de los vídeos o las secuencias de imágenes, SIEMPRE debemos crear previamente el archivo antes de realizar el render puesto que de otra manera no podremos verlo en el PC una vez renderizados todos los frames. Por ello, debemos bajar por la persiana Common hasta llegar a la opción Render Output y una vez allí presionamos el botón Files…

Al hacerlo, nos aparecerá un nuevo cuadro llamado Render Output File, donde en File Name se nos pedirá el nombre del archivo que deseamos guardar y en el menú Save as Type aparecerán los formatos de vídeo o de imagen con los que guardaremos la película.

Save as Type nos permitirá elegir un formato de vídeo y además guardarla en formato de imagen como JPG, TIFF o TGA. Si elegimos estos formatos, la película se guardará en tantas imágenes como frames o cuadros posea la animación. Por ejemplo, si tenemos una animación de 100 frames y guardamos toda la secuencia como jpg y con el nombre de animacion, nos guardará en la carpeta 100 imágenes renombradas como animacion0001.jpg, animacion0002.jpg, etc.

Ahora bien, si trabajamos de forma profesional en el campo de la TV, debemos siempre guardar la secuencia de imágenes en formato TGA. Para el caso de la película final, también la podremos guardar en formato AVI para que 3DSMAX nos cree el archivo de vídeo respectivo. Si elegimos AVI y luego aceptamos, nos aparece el cuadro llamado AVI File Compression Setup:

En este cuadro elegiremos el compresor más adecuado para el video. En la versión moderna de 3DSMAX podremos elegir entre tres opciones: DV video Encoder, MPEG Compressor y Uncompressed. La mejor calidad la tiene esta última opción (puesto que es el vídeo AVI sin compresión) aunque a su vez el vídeo es por lejos el más pesado, mientras que MPEG Compressor nos dejará el vídeo en MPG el cual es apto para DVD. Las versiones antiguas de 3DSMAX además poseen compresores extras como Cinepak Codec, el cual es ideal para archivos pequeños o animaciones de prueba. Una vez que elegimos el compresor (usualmente DV Video Encoder), aceptamos mediante OK y con esto finalizamos la configuración.

Una vez que creamos nuestro archivo, en Render Output ahora está activa la casilla Save File. Esto creará el archivo definitivo de la película al presionar el botón Render.

Importante: una vez activada esta opción, si renderizamos mediante vídeo o imagen este render SIEMPRE sobrescribirá el archivo si este ya ha sido renderizado anteriormente, aunque por suerte el programa nos avisará sobre esto gracias al cuadro File Exists:

Si ya tenemos un vídeo renderizado y no queremos que al renderizar otra imagen se sobreescriba, debemos desactivar la casilla Save File para por ejemplo, ver y renderizar un frame o cuadro específico mediante una sola imagen (Single) sin que se necesite guardar todo el archivo. Si quisiéramos crear otro vídeo y conservar el archivo ya creado guardarlo debemos ir a Files… y asignar otro nombre al archivo al nuevo vídeo.

Una vez configurado todo lo anterior, ahora es cosa de ejecutar el render mediante la tecla F9 y esperar que el programa termine de representar todas las imágenes. Una vez que este finalice, nos vamos a la carpeta donde guardamos el archivo y ya podremos verlo con el reproductor de Windows.

Una cosa muy importante: como ya sabemos, el tiempo que demore nuestro render dependerá de la complejidad de la escena y de cómo hayamos aplicado las soluciones de texturizado e iluminación en los modelos. En el caso de escenas 3D muy complejas el tiempo de render será inevitablemente muy largo, por lo que se recomienda renderizar de noche dejando al PC trabajando “toda la noche” o incluso por algunos días si se es necesario.

Este es el fin de este tutorial.

Bibliografía utilizada:

– Tutorial Animation Essentials del profesor Sebastián Huenchual H., Carrera Animación Digital 3D, Instituto DGM.

– 3DSMAX User Guide reference.

– Manuales USERS 3DSMAX por Daniel Venditti. Ediciones MP, Buenos Aires, Argentina.

 

3DSMAX Tutorial 10e: Animación en 3DSMAX, Constraints Parte 2

En el mundo de la animación 3D todo lo que se mueve, rota o escala, es decir, todo lo que es posible de “animar” siempre está manejado por un controlador. En el caso de 3DSMAX, un controlador es un plugin que controla el almacenamiento y la interpolación de todos los valores animados, es decir, gestiona todas las tareas de animación. En el programa tenemos tres tipos de controladores predeterminados y estos son los siguientes:

– Posición: Position XYZ.
– Rotación: XYZ Euler.
– Escala: Bezier Scale.

Además de los controladores de animación standard, también disponemos de un tipo especial de controladores llamados Restrictores o Constraints los cuales son precisamente “restrictores de movimiento” que nos facilitan bastante el proceso de animación, ya que gracias a estos se puede restringir y/o controlar la jerarquía, posición, rotación y escala de un objeto. Dependiendo del tipo de animación que deseemos realizar dependerá la cantidad de objetos que necesitemos para aplicar un constraint.

En este tutorial veremos los Constraints restantes de animación (Link, LookAt y Orientation Constraint) a excepción de Path Constraint, ya que este último fue visto en un tutorial pasado. Para la correcta realización de este tutorial, en la página de descargas de los archivos de tutoriales 3D está el archivo base llamado 3dsmax_animacion_constraints2.rar.

Constraints o Restrictores de animación

Como ya dijimos en un principio, un Constraint es un controlador o “restrictor” de animación y en el caso de 3DSMAX, tenemos varios tipos de estos los cuales se utilizan para diferentes tipos de animaciones según lo que necesitemos resolver. Los Constraints pueden encontrarse en el menú Animation >> Constraints de la parte superior de 3DSMAX:

En total tenemos siete tipos de constraints los cuales son:

1) Attachment Constraint: Asocia la posición de un objeto a la cara de otro.
2) Surface Constraint: Limita la posición de una superficie 2D a la superficie de otro elemento 3D.
3) Path constraint: Limita el movimiento de un objeto a lo largo de un recorrido.
4) Position constraint: Limita la posición de un objeto a la posición de otro.
5) Link Constraint: Genera uno o más vinculos entre el objeto que tiene la restricción y otros.
6) LookAt constraint: Limita la orientación de un objeto a la posición de otro.
7) Orientation constraint: Limita la rotación de un objeto a la rotación de otro.

Dependiendo de qué es lo que queremos animar dependerá el o los constraints que aplicaremos. Para este tutorial veremos los constraints de 5) a 7) a excepción de 3), el cual ya fue visto en su propio tutorial.

5) Link Constraint

Este es un constraint bastante útil puesto que se encarga de vincular o desvincular uno o más objetos dentro de un margen de tiempo. Por ello mismo es que se usa en animación para generar sistemas en serie como por ejemplo el mover un objeto, luego elevarlo y volverlo a colocar en otro lugar, o dejarlo estático. En este caso, veremos la herramienta mediante el siguiente ejercicio: abriremos el archivo llamado 3dsmax_animacion_linkconstraint.max y al hacerlo se nos mostrará lo siguiente:

Como podemos notar, el archivo representa a un sistema con el cual moveremos una caja dorada la cual primeramente se apoyará en la primera base (la cual es móvil), luego esta será tomada por la grúa la cual la depositará en la siguiente base para finalmente moverse junto con esta última. Todos los elementos ya están animados de antemano y por ende, no se debe hacer nada ya que sólo trabajaremos con la caja dorada. Para entender el funcionamiento del constraint, debemos primero generar el esquema de toda la animación asignando etapas:

Etapa 1: la caja se apoya en la base 1 la cual se mueve hacia la grúa, lo que implica que la caja deberá vincularse a la base en el lapso de tiempo en que esta se mueve.

Etapa 2: la caja será tomada por las tenazas de la grúa la cual luego girará para depositarla en la siguiente base, lo que implica que la caja deberá vincularse a un elemento de la grúa en el lapso de tiempo en que esta realiza toda la acción.

Etapa 3: la caja se apoya en la base 2 la cual sale desde la grúa, lo que implica que la caja deberá vincularse a la base en el lapso de tiempo en que esta se mueve.

Una vez analizado, es hora de llevar la animación a nuestro archivo. Lo que haremos será colocarnos en el cuadro 0, seleccionar la caja dorada y luego aplicaremos el constraint de la siguiente manera: iremos a Animation >> Constraints y elegiremos Link Constraint. Notaremos que al aplicarlo, veremos una línea segmentada similar a cuando vinculamos los objetos. En este caso, elegiremos la base que está debajo de la caja y realizamos Click para terminar de asignar el restrictor.

Si reproducimos la animación notaremos que la caja queda vinculada a la base 1 y por ende se moverá con ella, pero quedará restringida a esta mientras dure toda la animación. Como queremos que en un siguiente momento se vincule a la grúa, con la caja seleccionada observaremos el Panel de animación ya que en este encontraremos la siguiente tabla llamada Link Params:

Link Params nos muestra los parámetros de Link Constraint dentro de los que se destacan:

Add Link: añade un objeto el cual será el “objeto padre” en un lapso de tiempo predefinido. En este caso, siempre debemos definir previamente el cuadro en el cual comience la influencia del objeto vinculante.

Link to world: esta es la opción por defecto y lo que hace es vincular el objeto al “mundo”, es decir, al espacio libre lo que implica que el objeto no podrá estar sujeto a ninguna jerarquía ya que no se vincula a ningún otro objeto.

Delete Link: borra el vínculo entre un objeto y otro.

Start Time: nos permite cambiar el cuadro en el que empieza el vínculo de acuerdo a lo que seleccionemos en la tabla Frame#.

Key Mode: establece modos de creación de Keyframes. Por defecto es No Key, pero podremos establecer la creación de cuadros clave sólo si el objeto pertenece a una jerarquía y se le aplica una restricción. Estos modos son:

Key Nodes: los cuadros clave se crean según las opciones Child (hijo) y Parents (padre). En el primer caso, los Keyframes se aplican a los objetos hijos mientras si escogemos Parents el keyframe se crea para el objeto padre y todos sus hijos.

Key entire Hierarchy: los cuadros clave se crean en la jerarquía del objeto según las opciones Child (hijo) y Parents (padre). En el primer caso, los Keyframes se aplican a los objetos restringidos y sus padres mientras si escogemos Parents el keyframe se crea para el objeto, todos sus objetivos y su jerarquía superior.

Nota: si se agregan objetos a la jerarquía después de aplicar Link Constraint, las opciones anteriores no funcionarán y por ello debemos volver a aplicar el Constraint con una de las opciones seleccionadas. 

Volviendo a nuestro ejercicio, mediante el regulador de tiempo iremos al cuadro 100 y una vez allí presionamos Add Link, y seleccionamos el soporte horizontal de la grúa ya que la idea es que este quede vinculado a la caja. Si bien se hubiera podido seleccionar el cuerpo de la grúa como objeto vinculante, esto no funcionaría puesto que este no “sube” ni “baja” ya que sólo rota, y tampoco se pueden seleccionar la tenazas puesto que la orientación de la caja cambiaría al moverse estas. Por esto mismo es que debemos seleccionar el soporte ya que este el único objeto que realiza las dos acciones definidas en la etapa 2 del esquema.

Una vez realizado esto, notamos que en la tabla tenemos los dos primeros parámetros ya definidos: en el cuadro 0 se define el link “Base 1” mientras que en el cuadro 100 se establece como link el objeto “soporte”, tal como se aprecia en la imagen siguiente:

Si reproducimos la animación notamos que la caja queda vinculada de forma correcta, aunque desde el cuadro 220 en adelante la caja no se vincula a la base 2. Para resolver esto, simplemente elegimos la caja y nos vamos al cuadro 220. En el panel de animación y mediante Add Link, elegimos la base 2 para resolver totalmente el problema y definir la animación final.

El renderizado final de nuestra animación es el siguiente:

6) LookAt Constraint

Este es uno de los constraints más interesantes puesto que significa literalmente “mirar hacia” ya que, al restringir la orientación de un objeto a la posición de otro, el primer objeto literalmente “mira” hacia el otro, y por ende se utiliza en animación de personajes ya que gracias a este restrictor podremos controlar la mirada de un personaje o realizar animaciones de objetos que sigan a algún otro. En este caso y para no realizar el ya clásico ejercicio de la mirada, veremos la herramienta mediante el siguiente ejercicio: abriremos el archivo llamado 3dsmax_animacion_lookatconstraint.max y al hacerlo se nos mostrará lo siguiente:

Como podemos notar, el archivo representa a un misil con el cual sigue una trayectoria y a la vez hay cuatro antenas, las cuales seguirán al misil para detectarlo. El misil ya está animado de antemano y por ende, no se debe hacer nada ya que sólo trabajaremos con el Dummy que controla el pivoteo de las antenas ya que a este es el que se le aplicará el Constraint. Podemos probar la correcta jerarquización de las antenas seleccionando el Dummy y luego rotándolo, donde apreciamos que todo funciona sin problemas:

Ahora aplicaremos el constraint de la siguiente manera: seleccionamos el Dummy de la antena más cercana al misil y luego iremos a Animation >> Constraints, y elegiremos LookAt Constraint. Notaremos que al aplicarlo, veremos una línea segmentada similar a cuando vinculamos los objetos. En este caso, elegiremos el misil y realizamos Click para terminar de asignar el restrictor.

Notaremos que en el caso de nuestra antena, se gira un poco y se activará el panel LookAt constraint. Al igual que en el caso de Path Constraint, podremos agregar más objetivos de mirada o mejor dicho, la orientación de los objetos que queremos a los que nuestro Dummy se restrinja y ajustar la influencia o peso de cada uno. Podremos agregarlos mediante Add LookAt Target y borrarlos mediante Delete LookAt Target. También podemos corregir la posición de la antena manteniendo su posición inicial activando la casilla Keep Initial Offset.

Aplicación de Keep Initial Offset.

Sin embargo, en el caso del Dummy esto último no es necesario ya que si bien se aplicó la restricción esta no es correcta, puesto que lo que necesitamos es que sea la antena la que “mire” al misil y al aplicar el restrictor esto no ocurre, ya que por defecto LookAt Constraint define que la orientación del Dummy respecto al eje “X” sea la que realmente esté observando al misil. Corregiremos esto simplemente yendo a Select LookAt Axis y estableciendo “Z” como eje de mirada. Esto hará que el Dummy se oriente en esa posición y por ende, toda la antena mire al misil y así se resuelva el problema:

Si bien el problema ya ha sido resuelto es interesante conocer la opción Viewline Length, ya que esta nos permitirá ajustar la longitud de la línea de mirada que se forma al realizar el Constraint. Por defecto es 100, perpo podremos alargarla o acortarla según lo necesitemos.

En el ejemplo, la longitud de Viewline es 70.

Si nos vamos a la cámara y reproducimos la animación mediante play, notaremos que la antena ya sigue al misil sin ningún problema y con esto hemos aplicado correctamente el restrictor.

Animación de la antena y el misil en el cuadro 75.

Ahora todo es cosa de repetir el procedimiento en el resto de las antenas para resolver el ejercicio y renderizar nuestra animación final.

Configuración final y test de la animación de las antenas y el misil en los cuadros 60 y 114.

El renderizado final de nuestra animación es el siguiente:

7) Orientation Constraint

Este es un constraint que se encarga de restringir la orientación de un objeto a la de otro. Esto es sumamente útil para generar animaciones en las que necesitemos que varios objetos giren o roten al mismo tiempo y en el mismo sentido al ser animados, como podría ser por ejemplo una serie de cañones. Para que este Constraint se cumpla es fundamental que los objetos siempre queden en la misma orientación, y para conocer a fondo este restrictor realizaremos los dos siguientes ejercicios:

a) Animación de celosías.
b) Animación simple de una dirección de ruedas.

a) Animación de celosías

Para realizar este primer ejercicio debemos abrir el archivo llamado 3dsmax_animacion_orientationconstraint.max y al hacerlo se nos mostrará lo siguiente:

Como podemos notar, el archivo representa a un sistema de celosías móviles las cuales se activan mediante una manilla giratoria, la cual se conecta a un Dummy el cual será el que rotaremos para efectuar la animación y por ende, cada celosía se restringirá a la orientación de este. Para ello, lo que haremos será colocarnos en el cuadro 0, seleccionar la celosía inferior y luego aplicaremos el constraint de la siguiente manera: iremos a Animation >> Constraints y elegiremos Orientation Constraint. Notaremos que al aplicarlo, veremos una línea segmentada similar a cuando vinculamos los objetos. En este caso, elegiremos el Dummy y realizamos Click para terminar de asignar el restrictor.

Cuando aplicamos el Constraint notaremos que la celosía se gira en 90° y si bien esto no afecta a la animación final, lo mejor es dejar su posición original para poder manipular el Dummy de forma más sencilla. Para ello, iremos al Panel de animación y en el panel llamado Orientation Constraint activaremos la casilla Keep Initial Offset.

Si tomamos el Dummy y lo giramos en torno al eje X notaremos que el Constraint funciona perfectamente y por ello, nuestra celosía ya gira en la misma orientación que este. Podemos probar la rotación del Dummy respecto a los otros ejes para apreciar los otros efectos de la aplicación del Constraint.

Rotación en el eje X.

Rotación en el eje Z.

Rotación en el eje Y.

Al igual que en el caso de Position Constraint, podremos agregar más objetivos de posición o mejor dicho, la posición de los objetos que queremos a los que nuestra biela se restrinja y ajustar la influencia o peso de cada uno. Podremos agregarlos mediante Add Orientation Target y borrarlos mediante Delete Orientation Target. También podremos añadir el “mundo” como objetivo si seleccionamos Add World as Target. Si en este caso aumentamos el Weight de World, la restricción será más lenta y por ende, el objeto se girará más lento que el objetivo.

En el ejemplo se ha rotado la celosía con la configuración de la tabla adjunta.

Ahora todo es cosa de realizar el mismo proceso con el resto de las celosías y luego rotar el Dummy para definir la animación final. Como tip, podemos elegir todas las celosías restantes al mismo tiempo y aplicarles Orientation Constraint, aunque deberemos configurarlas posteriormente una a una.

Todo lo que nos queda por hacer es girar el Dummy y efectuar la animación final, ya que notamos que al girarlo todas las celosías se giran al mismo tiempo, abriendo o cerrando el panel. Un ejemplo de renderizado final de nuestra animación es el siguiente:

b) Animación de dirección de ruedas

Para realizar este segundo ejercicio debemos abrir el archivo llamado 3dsmax_animacion_orientationconstraint02.max y al hacerlo, se nos mostrará lo siguiente:

Como podemos notar, el archivo representa a un sistema de dirección de bus o vehículo cuyas ruedas se conectan a un volante vinculado a un Dummy, el cual será el que rotaremos para efectuar la animación y por ende, cada rueda se restringirá a la orientación de este. Si giramos respecto al eje Z cualquiera de los Dummys vinculados a cada rueda, notaremos que esta está correctamente jerarquizada:

La idea del ejercicio es restringir el giro de ambos Dummys a la orientación del Dummy que está en el volante (precisamente llamado “Dummy volante”) y así generar el giro de las ruedas de forma realista. Lo que haremos para ello será colocarnos en el cuadro 0, seleccionar el Dummy de la rueda izquierda y luego aplicaremos el constraint de la siguiente manera: iremos a Animation >> Constraints y elegiremos Orientation Constraint. Notaremos que al aplicarlo, veremos una línea segmentada similar a cuando vinculamos los objetos. En este caso, elegiremos Dummy volante y realizamos Click para terminar de asignar el restrictor.

Cuando aplicamos el Constraint notaremos que la esfera se gira en 90° y debido a su configuración esto no afectará a la animación final, así que en este caso no activaremos la casilla Keep Initial Offset y dejaremos todo tal cual. Ahora repetimos el proceso con el siguiente Dummy (Dummy derecha) y una vez realizado ya podremos testear el controlador Dummy volante de forma correcta.

Podemos probar la correcta aplicación del restrictor girando el Dummy del volante en torno al eje Z, ya que notaremos que las ruedas se giran en el mismo sentido de este junto con el volante, ya que este último está vinculado al Dummy:

Todo lo que nos queda por hacer es girar el Dummy volante y efectuar la animación final. Un ejemplo de renderizado de nuestra animación es el siguiente:

Como pudimos apreciar, los restrictores son fundamentales para lograr animaciones creíbles y realistas puesto que el principio de estos es justamente emular la realidad ya sea mediante la modificación de la jerarquía, posición, orientación o escala de uno o más objetos. El o los constraints a aplicar a los objetos 3D dependerán exclusivamente del tipo de animación que deseemos realizar en 3DSMAX.

Este es el final de este tutorial.

3DSMAX Tutorial 10d: Animación en 3DSMAX, Constraints Parte 1

En el mundo de la animación 3D todo lo que se mueve, rota o escala, es decir, todo lo que es posible de “animar” siempre está manejado por un controlador. En el caso de 3DSMAX, un controlador es un plugin que controla el almacenamiento y la interpolación de todos los valores animados, es decir, gestiona todas las tareas de animación. En el programa tenemos tres tipos de controladores predeterminados y estos son los siguientes:

– Posición: Position XYZ.
– Rotación: XYZ Euler.
– Escala: Bezier Scale.

Además de los controladores de animación standard, también disponemos de un tipo especial de controladores llamados Restrictores o Constraints los cuales son precisamente “restrictores de movimiento” que nos facilitan bastante el proceso de animación, ya que gracias a estos se puede restringir y/o controlar la jerarquía, posición, rotación y escala de un objeto. Dependiendo del tipo de animación que deseemos realizar dependerá la cantidad de objetos que necesitemos para aplicar un constraint.

En este tutorial veremos todos los Constraints de animación a excepción de Path Constraint, ya que este último fue visto en un tutorial pasado. Para la correcta realización de este tutorial, en la página de descargas de los archivos de tutoriales 3D está el archivo base llamado 3dsmax_animacion_constraints.rar.

Constraints o Restrictores de animación

Como ya dijimos en un principio, un Constraint es un controlador o “restrictor” de animación y en el caso de 3DSMAX, tenemos varios tipos de estos los cuales se utilizan para diferentes tipos de animaciones según lo que necesitemos resolver. Los Constraints pueden encontrarse en el menú Animation >> Constraints de la parte superior de 3DSMAX:

En total tenemos siete tipos de constraints los cuales son:

1) Attachment Constraint: Asocia la posición de un objeto a la cara de otro.
2) Surface Constraint: Limita la posición de una superficie 2D a la superficie de otro elemento 3D.
3) Path constraint: Limita el movimiento de un objeto a lo largo de un recorrido.
4) Position constraint: Limita la posición de un objeto a la posición de otro.
5) Link Constraint: Genera uno o más vinculos entre el objeto que tiene la restricción y otros.
6) LookAt constraint: Limita la orientación de un objeto a la posición de otro.
7) Orientation constraint: Limita la rotación de un objeto a la rotación de otro.

Dependiendo de qué es lo que queremos animar dependerá el o los constraints que aplicaremos. Para este tutorial veremos todos los constraints de 1) a 4) a excepción de 3), el cual ya fue visto en su propio tutorial.

1) Attachment Constraint

Attachment Constraint se encarga de asociar la posición de un objeto (mediante su punto de pivote) en la cara de otro, siempre y cuando la superficie o cara sea de tipo “mesh” y por ende, se recomienda que los objetos a los que se asocien sean de tipo Editable Mesh o primitivas básicas ya que si bien se puede ocupar Attachment Constaint en objetos de tipo Editable poly, la animación final no será visible en el render.

Para entender el funcionamiento de la herramienta desarrollaremos el siguiente ejercicio: animaremos una superficie de tipo Editable Mesh mediante Noise simulando un “mar”, y pondremos botes mediante Attachment Constraint. Por ello, abriremos el archivo llamado 3dsmax_animacion_attachconstraint.max y al hacerlo se nos mostrará lo siguiente:

Como podemos notar, el archivo posee una superficie de tipo Editable Mesh ya dividida y animada que simula agua, y cuatro yates. La idea es que los yates se vinculen a la superficie y sean mecidos por las ondulaciones del agua. Lo que haremos será colocarnos en el cuadro 0, seleccionar uno de los yates y luego aplicaremos el constraint de la siguiente manera: iremos a Animation >> Constraints y elegiremos Attach Constraint. Notaremos que al aplicarlo, veremos una línea segmentada similar a cuando vinculamos los objetos. En este caso, elegiremos la superficie y realizamos Click para terminar de asignar el restrictor.

Como notamos, el yate se posiciona en la segunda cara de la superficie de acuerdo a la Tabla Attachment Parameters. Sin embargo, debemos entender este concepto para saber cómo funciona Attachment Constraint ya que de no entenderlo, podemos caer en el error de posicionar el objeto de forma incorrecta. 3DSMAX define como “cara” o “Face” al primer polígono fundamental que forma un polígono cuadrado el cual es un triángulo, lo que implica que cualquier polígono (el cual a su vez es parte de una malla) estará formado por dos caras ya que son dos triángulos los cuales definen a este, tal como se aprecia en la imagen de abajo:

En la imagen se selecciona la cara 1 del primer polígono en el plano.

De acuerdo a la subdivisión de la imagen, la superficie del agua de nuestro ejercicio tiene una división de trama de 15 x 15 polígonos y por ende tenemos en total 225 de estos. Pero como ya sabemos que un polígono está formado por dos caras, en total tenemos 450 de estas mismas. Por lo tanto, al modificar los parámetros de posición de Attachment Constraint, debemos tomar en cuenta que el total de caras será 450 y la primera de las caras se posiciona en la parte inferior derecha, que es donde está precisamente nuestro yate aunque por defecto, tomará la segunda cara como posición inicial.

Selección de todas las caras que forman el plano mediante la trama de 15 x 15 polígonos (total de caras: 450).

Selección de la cara 2 de las 450 totales que forman el plano anterior.

Podemos verificar fácilmente las caras de la superficie moviendo el parámetro Position >> Face en la tabla llamada Attachment Parameters, la cual se encuentra en el panel de animación. Notaremos que si asignamos la cara 451, volverá por defecto a la primera cara de nuestra superficie ya que comienza nuevamente con el conteo.

Posición del objeto en la caras 115 y 451 del plano.

Un aspecto interesante de la opción Position es que, además de poder cambiar la cara a la que se posiciona nuestro objeto mediante Face, podremos ingresar valores de coordenadas numéricas (A y B) para mover el objeto a través de la cara seleccionada, la cual se representa mediante el triángulo de contorno negro que está dentro de la misma tabla. También podremos hacerlo tomando el punto rojo con el mouse y luego arrastrándolo, presionando y manteniendo el primer botón de este. Podremos incluso salirnos de la representación gráfica de la cara y cambiarlo a otra posición aunque estará siempre asociado a la cara asignada en Face, tal como se muestra en los ejemplos siguientes:

Ejemplos de modificación de posición del objeto en la cara 115, mediante la modificación de los parámetros de A y B respectivamente. En la segunda imagen notamos que el punto rojo se sale del cuadro de la representación gráfica de esta.

Si queremos establecer la posición final del objeto, simplemente presionamos el botón Set Position. Esta opción es importante puesto que además de establecer la posición del objeto, nos permitirá animarlo de una cara a otra.

Otras opciones de la tabla Attachment Parameters son:

Attach to: Permite cambiar la superficie o el objeto al que está restringido el objeto al cual se le aplica la restricción, presionando el botón Pick Object y luego seleccionando el objeto.

Align to Surface: es la opción activada por defecto y permite que el objeto se alinee en torno a la superficie de la cara en el que está posicionado. Si esta opción se desactiva, el objeto mantendrá siempre su posición original respecto a esta. Como el restrictor no modifica la orientación del objeto, podremos girar este mediante Select and Rotate.

Align to Surface activado.

Align to Surface desactivado.

Manual Update: al establecer esta opción, Attach to Surface se desactiva y por ello, el objeto siempre permanecerá en su posición original, es decir, no se moverá junto a la superficie si esta es animada, aunque seguirá vinculado a ella. Podemos actualizar manualmente si presionamos el botón Update.

Manual Update activado.

Manual Update desactivado.

Key Info: permite ir a uno o más cuadros clave mediante las flechas < > y a la vez nos muestra el cuadro exacto en el que estamos en la línea de tiempo mediante la opción Time. Esto nos permitirá animar el movimiento del objeto desde una cara hacia otra, ya que por defecto al crear la restricción se crea un keyframe en el cuadro 0. Si queremos animar el objeto debemos realizar lo siguiente: activamos Auto Key, elegimos el frame que queremos en la línea de tiempo, luego presionamos Set Position para establecer la posición que deseemos mediante A y B y asignamos una cara mediante Face. Con esto podremos se creará un segundo cuadro clave y ya animar el objeto, puesto que este se moverá hacia la siguiente cara asignada, ejemplificada en la siguiente secuencia:

Animando los cuadros 0 y 50 mediante Set Position y auto Key, y testeando la animación en el cuadro 25.

Podremos repetir el mismo proceso creando todos los cuadros clave que estimemos conveniente y eligiendo otras caras para nuestra animación.

TCB: sólo funciona si agregamos la rotación de tipo TCB al objeto, y por ello la orientación del objeto de origen también se interpola y se ve afectada por esta configuración. Sus parámetros son los siguientes:

Tension (Tensión): controla la cantidad de curvatura en la curva de animación. La alta tensión produce una curva lineal. La baja tensión produce una curva muy ancha, redondeada. Por defecto su valor es 25.

Continuity (Continuidad): controla la propiedad tangencial de la curva en el Keyframe. La configuración predeterminada es el único valor que produce una curva de animación suave a través del Keyframe. Todos los demás valores producen una discontinuidad en la curva de animación que provoca un cambio brusco en la animación. Por defecto su valor es 25. Valores de Continuity altos crean un sobreimpulso curvo en ambos lados de la tecla, mientras que valores bajos crean una curva de animación lineal.

Bias (Parcialidad): controla dónde se produce la curva de animación con respecto al Keyframe. Por defecto su valor es 25. Valores de Bias altos empuja la curva más allá del Keyframe. Esto produce una curva lineal que entra en la clave y una curva exagerada que sale de la clave, mientras que los valores de Bias bajos tira de la curva antes del Keyframe. Esto produce una curva exagerada que entra en la clave y una curva lineal que sale del Keyframe.

Ease To (Facilidad para): reduce la velocidad de la curva de animación a medida que se acerca al Keyframe. Por defecto su valor es 0. Valore altos de Ease To hacen que la animación se desacelere a medida que se acerca al Keyframe mientras que valores bajos harán lo contrario. La configuración predeterminada no causa desaceleración adicional.

Ease From (Facilidad de): disminuye la velocidad de la curva de animación cuando sale del Keyframe. Por defecto su valor es 0. Valores altos hacen que la animación comience lentamente y se acelere al salir del Keyframe, mientras que valores bajos harán lo contrario. La configuración predeterminada no causa cambios en la curva de animación.

Ya conociendo estas opciones, lo que nos queda es ir posicionando nuestros yates aplicando Attachment Constraint y dejando Align to Surface activada en todos los casos. Podremos girarlos si lo deseamos mediante Select and Rotate aunque en este caso no moveremos los barcos sino que más bien, estos se mecerán con el movimiento del agua ya animado previamente. Rotaremos nuestros yates colocando el modo Local en Reference Coordinated System, luego activando Angle Snap, seleccionando cada yate y finalmente girando cada uno en 90° o 180° mediante Select and Rotate, ya que el Attachment Constraint NO restringe la orientación de los objetos. Con esto realizado, ya podremos iniciar la animación.

La idea de nuestra animación es que todos nuestros barcos sean visibles desde la cámara detalle que incorpora el archivo, tal como se aprecia en el ejemplo siguiente:

Testeando la animación final en el cuadro 50.

El renderizado final de toda la escena desde la cámara de detalle es el siguiente:

2) Surface Constraint

Este Constraint nos permite enlazar un objeto (mediante su punto de pivote) a la superficie o cara de otro y a su vez nos permite su animación en torno a esta. Sin embargo, este constraint no puede ser aplicado a todos los objetos puesto que está limitado solamente a objetos 3D que puedan ser representados de forma paramétrica. Por lo tanto, las superficies de los objetos en los cuales puede ser utilizado este Constraint son:

– Esfera o Sphere.
– Cono o Cone.
– Cilindro o Cylinder.
– Dona o Torus.
– Quad Patch (creado mediante la opción Patch Grids).
– Objetos realizados mediante la operación compuesta llamada Loft.
– Curvas de tipo NURBS.

(imagen con objetos 3D que pueden usar el constraint)

Para entender el funcionamiento cabal de la herramienta desarrollaremos un ejercicio sencillo ya que realizaremos una animación de tanques en un terreno con inclinaciones. Por ello, abriremos el archivo llamado 3dsmax_animacion_surfaceconstraint.max y al hacerlo se nos mostrará lo siguiente:

Como podemos notar, el archivo posee cuatro pequeños tanques y un terreno realizado mediante Loft el cual posee montículos. La idea es que los tanques se vinculen a esta superficie y se muevan en línea recta por esta. Lo que haremos será colocarnos en el cuadro 0, seleccionar uno de los tanques verdes y luego aplicaremos el constraint de la siguiente manera: iremos a Animation >> Constraints y elegiremos Surface Constraint. Notaremos que al aplicarlo, veremos una línea segmentada similar a cuando vinculamos los objetos. En este caso, elegiremos la superficie y realizamos Click para terminar de asignar el restrictor.

Como notamos, el tanque queda vinculado a la superficie y por ende, se coloca en la esquina superior izquierda de esta.

Lo que corresponde ahora es hacerlo caminar por el terreno y para eso, con el tanque seleccionado, iremos a la tabla llamada Surface Controller Parameters que se ubica en el panel de animación:

En este caso el panel es sencillo de controlar ya que, además de poder cambiar la superficie o terreno a escoger mediante Current Surface Object, podremos mover el objeto vinculado por la superficie mediante los parámetros U Position y V Position, los cuales representan el movimiento en X e Y respectivamente ya que en verdad el Constraint NO vincula a la superficie real, sino más bien crea una superficie virtual de manera similar a cuando se coloca una textura en un objeto. En el caso de nuestro tanque, colocamos en U el valor 99,9 y en V el valor 7. El resultado es el siguiente:

Si bien se podría colocar el valor 100, el problema al hacer esto es que si lo alineamos y luego efectuamos la animación final el tanque se invertirá. Por esto mismo es que realizaremos lo mismo con el resto de los tanques, es decir, les aplicaremos Surface Constraint y colocaremos el mismo valor en U a todos. En el caso de V colocaremos el valor 16 para el segundo tanque, 27 para el tercero y 45 para el último. El resultado de la operación es el siguiente:

Antes de realizar la animación final es importante ver el resto de los parámetros de Surface Controller Parameters, ya que además de mover un objeto en U y V podremos elegir el cómo se alinea este en la superficie. La opción No Alignment no alinea el objeto, mientras que Align to U hará que su pivote en X se alinee en torno a U y finalmente, Align to V hará que su pivote en X se alinee en V. Al activar cualquiera de las dos opciones anteriores podremos invertir el objeto activando la casilla Flip. Podemos ver aplicaciones de estas opciones en el ejemplo siguiente:

En el ejemplo, los tanques de color verde tienen seleccionada la opción Align to U. Notamos que el primero de estos no posee la opción Flip activada y por ello queda invertido. En cambio, los tanques de color café tienen activada la opción Align to V, pero el tanque inferior posee la opción Flip activada.

Para terminar el ejercicio, en todos los tanques seleccionamos la opción Align to V y aplicaremos la opción Flip. Sin embargo, notaremos que todos apuntan hacia fuera del terreno lo cual hará que al animarlos, se dirijan en modo “marcha atrás”:

Solucionaremos esto simplemente colocando el modo Local en Reference Coordinated System, luego activando Angle Snap, seleccionando cada tanque y finalmente girando cada uno en 180° mediante Select and Rotate, ya que Surface Constraint NO restringe la orientación de los objetos. Con esto realizado todos nuestros tanques ya apuntarán hacia el frente y por ello, podremos iniciar la animación definitiva.

Una vez realizada esta acción, ya podemos testear el movimiento de nuestros tanques simplemente modificando los valores de U, en la tabla Surface Controller Parameters. Notaremos que los tanques se mueven por la superficie de manera similar a un tanque real:

Para animarlos, seleccionamos cada tanque y establecemos Auto Key, nos vamos al cuadro 200 y colocamos el valor 0 en U. Con esto nuestro tanque se moverá por la superficie desde un extremo a otro de esta. Si lo queremos, podremos animar el parámetro en V pero en este caso debemos ser cuidadosos, ya que valores altos harán poco creíble el movimiento. Realizamos esto mismo en el resto de los tanques.

El renderizado final de toda la escena desde la cámara de detalle es el siguiente:

3) Path Constraint

Este Constraint ya posee su propio tutorial donde se explica a fondo su funcionamiento y opciones, y se puede ir a este haciendo click en este enlace.

4) Position Constraint

Este es un constraint que se encarga de restringir la posición de un objeto a la de otro. Esto es sumamente útil para generar animaciones en las que necesitemos que un objeto quede siempre en una misma posición independiente si este se está orientando en un ángulo diferente. El mejor ejemplo de esto son los pedales de una bicicleta ya que estos deben permanecer en posición horizontal mientras se pedalea para girar el plato. En este caso haremos otro ejercicio diferente, ya que animaremos una biela de ferrocarril para entender el funcionamiento del constraint. Por ello, abriremos el archivo llamado 3dsmax_animacion_positionconstraint.max y al hacerlo se nos mostrará lo siguiente:

Como podemos notar, el archivo representa a un sistema de ruedas de locomotora las cuales están vinculadas a dos Dummys, los cuales a su vez están conectados entre sí mediante Wire Parameters (que veremos en un siguiente tutorial). Por ello, si tomamos el Dummy llamado Dummy eje padre y lo rotamos en Y, podremos animar todas las ruedas a la vez tal como se muestra en la imagen:

Como notamos, las bielas no se vinculan a nada y por ello flotan en el aire. Para entender la diferencia entre un vínculo y el constraint, primeramente enlazaremos cada biela a su respectivo pivote y luego moveremos las ruedas para apreciar el efecto, tal como se aprecia en la siguiente secuencia:

Enlazando las bielas a su respectivo pivote en ambas ruedas mediante Select and Link.

Si giramos el Dummy eje padre notaremos que las bielas se rotan junto con los pivotes y por ende, la animación no es realista ya que necesitamos que estas siempre estén en posición horizontal mientras las ruedas giran. Resolveremos esto desvinculando las bielas de los pivotes y esta vez aplicaremos Position Constraint. Lo que haremos será colocarnos en el cuadro 0, seleccionar cualquier biela y luego aplicaremos el constraint de la siguiente manera: iremos a Animation >> Constraints y elegiremos Position Constraint. Notaremos que al aplicarlo, veremos una línea segmentada similar a cuando vinculamos los objetos. En este caso, elegiremos su pivote y realizamos Click para terminar de asignar el restrictor.

Cuando aplicamos el Constraint notaremos que la biela se mueve un poco hacia adentro y si bien esto no afecta en la animación final, lo mejor es dejarla en la posición original en la cual fue modelada. Para ello, iremos al Panel de animación y en el panel llamado Position Constraint podremos definir los parámetros del restrictor.

Al igual que en el caso de Path Constraint, podremos agregar más objetivos de posición o mejor dicho, la posición de los objetos que queremos a los que nuestra biela se restrinja y ajustar la influencia o peso de cada uno. Podremos agregarlos mediante Add Position Target y borrarlos mediante Delete Position Target. En el caso de nuestra biela, mantendremos su posición inicial activando la casilla Keep Initial Offset.

Si giramos el Dummy eje padre notaremos que la biela esta vez se anima correctamente ya que debido a la naturaleza de Position Constraint, esta siempre permanece en posición horizontal. Ahora todo es cosa de repetir la operación con la siguiente biela y luego podremos animar para finalizar el ejercicio.

Un aspecto curioso es que si aplicamos el Position Constraint de la biela al pivote de la segunda rueda en lugar de la inicial, la posición será respecto del pivote de la segunda rueda y se puede aplicar Keep Initial Offset. En este caso puntual, no hay problema al animarlo ya que el restrictor se aplica de igual manera que el anterior.

Ahora todo es cosa de animar el Dummy eje padre y efectuar la animación final (podemos animar el giro al cuadro 30 y luego usar la curva de animación para repetir la secuencia). El renderizado final de nuestra animación es el siguiente:

En la segunda parte del tutorial veremos los siguientes restrictores de animación, los cuales son: Link Constraint, LookAt Constraint y Orientation constraint.

Este es el final de este tutorial.

3DSMAX Tutorial 10c: Animación mediante Path Constraint

En el mundo de la animación 3D todo lo que se mueve, rota o escala, es decir, todo lo que es posible de “animar” siempre está manejado por un controlador. En el caso de 3DSMAX, un controlador es un plugin que controla el almacenamiento y la interpolación de todos los valores animados, es decir, gestiona todas las tareas de animación. En el programa tenemos tres tipos de controladores predeterminados y estos son los siguientes:

– Posición: Position XYZ.
– Rotación: XYZ Euler.
– Escala: Escala Bézier.

Además de los controladores de animación standard, también disponemos de un tipo especial de controladores llamados Restrictores o Constraints los cuales son precisamente “restrictores de movimiento” que nos facilitan bastante el proceso de animación, ya que gracias a estos se puede restringir y/o controlar la posición, rotación y escala de un objeto. Dependiendo del tipo de animación que deseemos realizar dependerá la cantidad de objetos que necesitemos para aplicar un constraint.

En este tutorial veremos animación de objetos mediante el constraint especial llamado Path Constraint ya que al igual que en el caso de Anipath de AutoCAD, este controlador nos permitirá animar cámaras enlazándolas a uno o más recorridos llamados PATH, los cuales pueden ser abiertos o cerrados ya que en el caso de la Arquitectura, la animación base son las cámaras las cuales se utilizan para enfocar o mostrar el exterior e interior de un proyecto o edificación. Si bien este constraint es el más indicado para animar cámaras y/o los objetivos de estas, también es útil para realizar algunas animaciones 3D las cuales también serán vistas en este apunte.

Para la correcta realización de este tutorial, en la página de descargas de los archivos de tutoriales 3D está el archivo base llamado 3dsmax_animacion_pathconstraints.rar.

Constraints o Restrictores de animación

Como ya dijimos en un principio, un Constraint es un controlador o restrictor de animación y en el caso de 3DSMAX, tenemos varios tipos de estos los cuales se utilizan para diferentes tipos de animaciones. Estos pueden encontrarse en el menú Animation >> Constraints de la parte superior de 3DSMAX:

En total tenemos siete tipos de constraints los cuales son:

1) Attachment Constraint: Asocia la posición de un objeto a la cara de otro.
2) Surface Constraint: Limita la posición de una superficie 2D a la superficie de otro elemento 3D.
3) Path constraint: Limita el movimiento de un objeto a lo largo de un recorrido.
4) Position constraint: Limita la posición de un objeto a la posición de otro.
5) Link Constraint: Genera uno o más vinculos entre el objeto que tiene la restricción y otros.
6) LookAt constraint: Limita la orientación de un objeto a la posición de otro.
7) Orientation constraint: Limita la rotación de un objeto a la rotación de otro.

Dependiendo de qué es lo que queremos animar dependerá el o los constraints que aplicaremos. Para este tutorial ocuparemos específicamente el Constraint llamado Path Constraint, ya que es el que más se utiliza en el área de la Arquitectura, aunque también veremos otros casos puntuales de animación. El resto de los Constrains serán enseñados en un siguiente tutorial.

Path Constraint

Como ya definimos anteriormente, Path Constraint es un restrictor que limita el movimiento de un objeto a lo largo de un Path o recorrido que definamos previamente, creando los cuadros de animación necesarios para efectuar la animación. Este recorrido puede ser cualquier forma lineal 2D como por ejemplo círculos, elipses, líneas rectas, curvas, splines, etc. sean estas abiertas o cerradas, siempre y cuando estén unificados sus vértices. Estos recorridos podrán ser creados fácilmente mediante las herramientas de líneas o Splines.

Ejemplos de diferentes tipos de recorridos o Paths.

Para entender el funcionamiento cabal de la herramienta desarrollaremos tres ejercicios base:

a) Animación de un avión mediante un recorrido normal.
b) Animación de un tren en una vía continua (muchos elementos en el mismo recorrido).
c) Animación de un proyecto de vivienda mediante cámaras.

a) Animación de recorrido normal

Para este caso abriremos el primero de los archivos base llamado 3dsmax_animacion_pathconstraint01.max, el cual nos muestra un avión con su respectivo “aeropuerto” y el recorrido base el cual animaremos mediante Path Constraint. Al abrir el archivo, se nos muestra lo siguiente:

Como notamos en el archivo, tenemos una cámara que apunta hacia nuestro avión la cual nos mostrará todo el proceso de animación aunque en principio no enfoca a este. En este caso, la dejaremos tal cual debido a que ya está animada y porque lo que nos interesa realmente es animar el avión mismo. También notaremos que este está vinculado a un Dummy ya que la idea es que la restricción se aplique a este y no al avión mismo, tal como se especificó en el tutorial de Jerarquías. Para aplicar el Path Constraint realizaremos lo siguiente: seleccionamos el Dummy del avión e iremos a Animation >> Constraints y elegiremos Path Constraint. Notaremos que al aplicarlo, veremos una línea segmentada similar a cuando vinculamos los objetos. En este caso, elegiremos el recorrido definido en la pista de aterrizaje y realizamos Click para terminar de asignar el restrictor.

Al terminar la operación notaremos que el avión y el Dummy se conectan con el inicio del recorrido y aparentemente el avión está listo para “volar”. También notaremos que se han creado cuadros clave en 0 y en 1000 y con ello, ya podremos ver la animación. Pero, si presionamos play para reproducirla, notaremos que al elevarse y al doblar la curva el avión no vuela de forma realista puesto que no “sigue” el patrón del recorrido, tal como se aprecia en la secuencia siguiente:

Recorrido del avión en la vista Top.

Recorrido del avión en la vista Front.

Para resolver esto debemos conocer a fondo el panel de animación, el cual es similar al panel para modificar los objetos 3D pero que como su nombre lo indica, está pensado para editar los parámetros de las animaciones.

El panel de animación o Motion Panel

Cuando realizamos cualquier animación de un objeto mediante la aplicación de un Constraint, inmediatamente podremos acceder al Panel de Animación o Motion. Este se encuentra por defecto en el área derecha de la interfaz junto al resto de los comandos ya que de hecho, es el cuarto de los paneles principales:

Ubicación del panel de animación o Motion Panel en la interfaz de 3DSMAX.

Además de las persianas Assign Controller y PRS Parameters, podemos acceder a los paneles más importantes de este: Position List y Path Parameters. Position List nos mostrará todos los Constraints que se han aplicado en el objeto y en el caso de nuestro Dummy, claramente podremos ver Path Constraint con una flecha que indica que este está activo:

Como vemos en la imagen, podemos dejar el Path Constraint ya aplicado mediante el botón Set Active (establecer como activo). Si queremos terminar el vínculo, dejar los objetos en la posición original y por ende, eliminar el Path Constraint, lo seleccionamos y presionamos Delete. La opción Cut nos permitirá cortar la restricción y aplicarla en otro momento. Weight establece el nivel de dependencia del vínculo o el “peso” de este entre los objetos, y por defecto siempre será 100 (por ciento), lo que implica la conexión total del objeto al recorrido o Path. Si disminuimos este valor el vínculo del objeto al recorrido será menor y si el peso es 0, el objeto no se vinculará al recorrido y por lo tanto no se animará.

Animación del avión en el cuadro 120, con Weight 50.

Animación del avión en el cuadro 120 con Weight 0, donde el objeto no se anima y por lo tanto, queda en su posición inicial.

Al aplicar el Path Constraint y tener el Dummy del avión seleccionado, notaremos lo siguiente en el panel Path Parameters:

En este panel podremos editar los parámetros referentes al recorrido mismo. Notamos los botones Add Path y Delete Path. Lo interesante de estos botones es que Add Path nos permitirá agregar más recorridos al ya existente e incluso distribuir los pesos en estos, lo cual nos creará un recorrido promedio el cual dependerá de los pesos que establecemos aunque si agregamos un Path, el peso por defecto será de 50. Si en un recorrido colocamos un peso de 100 y el otro en 0, el objeto se vinculará al del recorrido con el peso total. Podremos borrar uno o más recorridos seleccionándolo primeramente en el panel y luego presionando Delete Path.

En el ejemplo, el avión se ha vinculado a dos recorridos lineales rectos mediante Add Path: un recorrido A y otro B los cuales poseen un peso o weight de 50, y la animación final es una recta que a la vez es la bisectriz entre las líneas anguladas que forman cada recorrido.

Path Options nos muestra varias opciones relevantes para mejorar la animación del objeto en nuestro recorrido. Por ejemplo, % Along Path (porcentaje de recorrido) nos permitirá definir la distancia de nuestro recorrido expresada en porcentaje, ya que si dejamos el regulador de tiempo en cualquier cuadro veremos el porcentaje del recorrido total en ese mismo cuadro. Podemos hacer una prueba sencilla simplemente colocándonos en la mitad de la animación (en el ejercicio es el cuadro 500) donde notamos que el valor de % Along Path será de 50 lo cual representa el 50% del recorrido total. Mediante esta opción podremos modificar este valor para adelantar o retrasar la posición del objeto en el recorrido mismo y por ende, alentar o apurar la animación entre un rango de cuadros. Si queremos cambiar este valor en cualquier tramo de un recorrido, debemos activar Auto Key y luego colocar el nuevo porcentaje para apreciar el efecto.

En el ejemplo, se ha establecido un 1% en % Along Path, donde notamos que el avión parte más adelante en el cuadro 0 al iniciar la animación.

Más abajo encontramos las opciones Follow y Bank. Follow nos permitirá seguir el recorrido mediante el punto de pivote del objeto y en el caso de nuestro ejercicio, permitirá que el avión vuele de forma realista si simplemente activamos la casilla.

Al activarla notaremos que si bien el avión vuela, este queda invertido respecto al recorrido. Podremos resolver el problema simplemente presionando la casilla Flip (voltear) que se encuentra en la opción llamada Axis, donde además notamos que el eje está marcado en X. Podemos ir cambiando el eje para apreciar el resultado, ya que esta opción nos permitirá orientar el objeto en todos los ejes para asegurarnos que quede siguiendo al recorrido de forma correcta, como se aprecia en las imágenes siguientes:

Avión con Axis en el eje Y activado, sin Flip.

Avión con Axis en el eje Z activado, sin Flip.

Avión con Axis en el eje X activado, con Flip encendido.

Otras funciones del panel Path Parameters son las siguientes:

Bank: esta interesante opción permitirá al objeto poder ladearse al enfrentar las curvas, lo cual en el caso de nuestro ejercicio activaremos para generar un viraje realista. Podremos aumentar el ángulo de giro al aumentar el valor de Bank Amount. La opción Smoothness nos permitirá controlar la rapidez con la que cambia el ángulo de balanceo a medida que el objeto se mueve a través de la curva en el recorrido. Valores pequeños harán que el objeto responda mejor a los cambios sutiles en la curva, mientras que los valores más grandes suavizarán las sacudidas.

El avión del ejercicio sin Bank  activado.

El avión del ejercicio con Bank activado, donde apreciamos el efecto de este en las curvas.

Allow Upside Down: esta opción nos permitirá invertir el objeto. Esto puede utilizarse en caso que un objeto se voltee cuando realiza un giro en un recorrido vertical ya que al activar esta opción se evita esto.

Constant Velocity: al encenderlo, mantiene la velocidad constante del objeto durante todo el trayecto. Cuando la opción está apagada, la velocidad del objeto dependerá de la distancia entre todos los vértices del recorrido o Path. Por lo tanto, si queremos una animación más realista, lo ideal sería apagar esta opción o modificar los valores de % Along Path donde se quiera modificar la velocidad.

Loop: repite la animación al terminar el recorrido.

Relative: esta opción iniciará la animación no en el recorrido mismo, sino que tomará en cuenta la posición inicial del objeto antes de ser vinculado y el recorrido estará basado en esa posición, aunque igualmente se vincula al Path.

Vínculo al recorrido con la opción Relative desactivada (normal).

Vínculo al recorrido con la opción Relative activada.

Habiendo conocido ya las funciones del panel Path Parameters, procederemos a preparar la animación final de nuestro avión. En el caso del ejercicio, el panel nos deberá quedar con la siguiente configuración:

Ahora todo es cosa de reproducir la animación para ver el resultado final de nuestro ejercicio. El renderizado final de la animación se puede ver en el siguiente vídeo:

b) Animación con varios elementos en un mismo recorrido

Para este segundo ejercicio ocuparemos la misma lógica usada con el avión, pero en este caso vincularemos varios objetos en un mismo recorrido. Para ello, animaremos el tren del ejercicio de jerarquías aunque en este caso se le ha agregado un vagón más y se han dejado los puntos de pivote de los vagones y la locomotora en el centro de cada Dummy. La idea es animar todo el conjunto a través de un recorrido ovalado el cual representará a las vías de nuestro tren. Si abrimos el archivo llamado 3dsmax_animacion_pathconstraint02.max veremos lo siguiente:

Como notamos en el archivo, este es el tren del ejercicio de jerarquías con pequeños cambios y sus respectivas vías en forma de óvalo. Esta vez tenemos dos cámaras que nos ayudarán con el proceso de renderizado: una que irá en el tren mismo (ya vinculada) y otra que nos enfoca la visión general de todo el conjunto, es decir, el tren mismo y todas las vías. Al igual que en el caso del avión, aplicaremos Path constraint de la siguiente forma: seleccionamos el Dummy de la locomotora e iremos a Animation >> Constraints y elegiremos Path Constraint. Notaremos que al aplicarlo, veremos una línea similar a cuando vinculamos los objetos. En este caso, elegiremos el recorrido definido en el centro de las vías y realizamos Click para terminar de asignar el restrictor.

Una vez realizado esto, iremos al Panel de animación y en Path Parameters activaremos la opción Follow y luego Flip. Si presionamos play para ver la animación, notaremos que la locomotora se anima sin mayor problema y por ende, ya podremos animar el resto de los vagones. Sin embargo, si aplicamos Path Constraint en el siguiente vagón nos ocurre lo siguiente:

Como notamos en la secuencia, el tender queda en la misma posición que la locomotora lo cual hará que al animarlo ambos sigan el mismo patrón lo que resultará en una animación irreal, ya que ambos modelos quedan traslapados. El truco para resolver esto está simplemente en tomar el Dummy del tender, ir al Panel de animación y en Path Parameters, modificar el valor de % Along Path. Establecemos el valor -2,33 y luego presionamos enter para ver el resultado:

Como vemos, el vagón se ha colocado justo detrás de la locomotora y con ello al reproducir la animación se nos muestra de forma más real y convincente. Finalizamos la configuración del tender yendo a Path Parameters y activando la opción Follow y luego Flip. Ahora todo es cuestión de vincular el siguiente vagón (el de pasajeros de color Cyan) y establecer el siguiente valor de % Along Path: -4,51.

Notaremos que el vagón de pasajeros queda más bajo que la locomotora y el tender pero eso tiene una solución fácil, ya que este último está en la altura correcta y por ende, lo que debemos hacer es bajar la locomotora y el tender sin tener que mover el Dummy de la jerarquía que tiene aplicado el Constraint. Para hacer esto, bastará tomar la base del tender y de la locomotora y, usando Select and Move, dejar la altura en Z=20,03 (esta es la altura de la base del vagón de pasajeros). Al ser la base del tender y de la locomotora el padre de la jerarquía de ambos objetos, al modificar su altura esto hace que ambos se muevan por completo y por ende, se resuelva el problema. Este proceso puede visualizarse en la secuencia siguiente:

Una vez corregido el problema de las alturas en el tren, seleccionamos el Dummy del vagón de pasajeros y en Path Parameters activamos Follow y Flip. El resultado debe ser el siguiente:

Ahora todo es cuestión de realizar el mismo proceso en el resto de los vagones de pasajeros y en estos casos, los valores de % Along Path son los siguientes:

Vagón 2 (Verde): -6,74.
Vagón 3 (Rosado): -8,97.
Vagón 4 (Naranjo): -11,2.

Activaremos Follow y Flip en el resto de los vagones y si lo hacemos bien, el resultado sería el siguiente:

Ahora todo es cosa de reproducir la animación para ver el resultado final de nuestro ejercicio. El renderizado final de la animación de todo el conjunto se puede ver en el siguiente vídeo:

Y el resultado de toda la animación desde la perspectiva del tren mismo se puede ver en este otro vídeo:

c) Animación de cámaras mediante Path Constraint

En este último ejercicio aplicaremos la misma lógica de los anteriores, pero esta vez animaremos cámaras ya que el archivo es un pequeño proyecto de Arquitectura y por ende, utilizaremos las cámaras como patrón de animación. Si abrimos el archivo llamado 3dsmax_animacion_pathconstraint03.max veremos lo siguiente:

Como se aprecia en la imagen, el archivo corresponde a una casa de dos pisos la cual posee sus correspondientes muros perimetrales y entrada, en un terreno plano y rodeada de varios recorridos o Path. La idea es mostrarlo mediante la animación de cámaras usando los cuatro movimientos de cámara básicos que se suelen utilizar para mostrar un proyecto de Arquitectura. Estos son los siguientes:

1 – La cámara se moverá por el recorrido o path, mientras que el target (objetivo) se mantendrá fijo en un punto y apuntará hacia el o los objetos enfocados. Esto se conoce como giro o recorrido de cámara.

2 – La cámara permanece fija en un punto y sólo el target u objetivo se moverá a través del recorrido o path. Esto se conoce como recorrido panorámico o paneo.

3 – Tanto la cámara como el objetivo se moverán por el mismo recorrido o path. Esto se conoce como cámara libresubjetiva o de primera persona.

4- La cámara y el objetivo se mueven por diferentes recorridos o paths. Esto se conoce como travelling.

Si analizamos el archivo notaremos que también hay varias cámaras las cuales se nombran según cada tipo de movimiento a animar ya que a diferencia de AutoCAD, en 3DSMAX sí tenemos que crear las cámaras ya que deberemos aplicar a cada una un Path Constraint, el cual nos servirá tanto para la cámara misma como también para el Target de esta puesto que ambos son objetos independientes. Una ventaja en particular de 3DSMAX es que podremos ver todas nuestras cámaras en la misma escena y animarlas todas sin mayor problema, ya que aplicaremos el Constaint a cada objeto en particular y no necesitaremos Dummys ni ayudantes extras. Comenzaremos creando el recorrido de cámara seleccionando la cámara llamada Camara Recorrido, aplicamos Path Constraint en ella y finalmente seleccionamos el recorrido circular llamado Recorrido de cámara. El resultado es el siguiente:

Como notamos, la cámara se vincula al recorrido y por ende ya podremos testear la animación mediante Play. En este caso, no debemos modificar el panel de animación ya que el target queda fijo y por ende, sólo se moverá la cámara.

Vista desde la cámara vinculada al recorrido mediante Path Constraint, en el cuadro 195.

Si reproducimos o renderizamos la animación, el resultado es el siguiente:

Un aspecto interesante de cualquier Path es que podremos modificarlo a nuestro gusto aún cuando se haya aplicado Path Constraint lo cual nos permitirá alargar, acortar, modificar o cambiar el punto de inicio (usando Make First) el recorrido según lo necesitemos y por ello, tendrá efecto sobre la animación final. En el caso de ser una forma circular o no ser dibujada mediante líneas (Circle, Rectangle, Star, etc.), podremos aplicar el modificador Edit Spline para editarla.

Edición de Path mediante aumento de radio y mediante el modificador Edit Spline, y su efecto en la vista de cámara del recorrido.

Ahora haremos el recorrido de tipo Panorámico. Para ello, animaremos la cámara llamada Cámara Panorámica, pero en este caso sólo animaremos el Target de esta. Por ello, lo seleccionamos y aplicamos Path Constraint en el recorrido curvo llamado Recorrido panorámico. El resultado es el siguiente:

Como notamos, el target se vincula al recorrido y por ende ya podremos testear la animación mediante Play. En este caso, no debemos modificar el panel de animación ya que la cámara queda fija y por ende, sólo se moverá el target el cual sigue de manera automática al recorrido. Si reproducimos o renderizamos la animación, el resultado es el siguiente:

El siguiente recorrido que realizaremos será el de tipo subjetivo. Para ello, seleccionamos la cámara llamada Cámara subjetiva ya que esta es de tipo Free o libre (es decir, sin target), lo que implica que siempre apuntará hacia adelante. Aplicamos el Path Constraint y la vinculamos al recorrido llamado Recorrido subjetivo. El resultado es el siguiente:

Como notamos, la cámara se vincula al recorrido y por ende, ya podremos testear la animación mediante Play. En este caso, sí debemos activar Follow en Path Parameters para que la cámara siga al recorrido y se nos muestre la perspectiva de primera persona. Sin embargo, notaremos que esta se invierte hacia la izquierda así que solucionaremos esto cambiando en Axis el eje X a Y:

Si reproducimos o renderizamos la animación, el resultado es el siguiente:

Ahora sólo nos queda realizar el Travelling de cámara, y para eso debemos hacer dos Path Constraints: en el primero seleccionamos la cámara llamada Camara travelling y la vinculamos al recorrido llamado Recorrido Travelling cámara. Luego realizaremos el segundo seleccionando el Target de la cámara y lo vinculamos al recorrido llamado Recorrido Travelling target. el resultado es el siguiente:

Vinculando la cámara al primer recorrido.

Vinculando el target de la cámara al segundo recorrido.

Como notamos, la cámara se vincula al primer recorrido y el target de esta al segundo, y por ende ya podremos testear la animación mediante Play. En este caso, no debemos modificar el panel de animación ya que la cámara y su target se desplazan por distintos recorridos y por ende, lo siguen automáticamente. Si reproducimos o renderizamos la animación, el resultado es el siguiente:

Como hemos visto en todos los ejercicios anteriores, Uno de los Restrictores más importantes usados en la animación en 3DSMAX es Path Constraint ya que su uso no solamente se enfoca a la Arquitectura y la animación de cámaras, sino que también se utiliza en el ámbito de la animación 3D. Este nos permitirá mostrar a cabalidad un proyecto, modelo o espacio ya que además de generar la animación respectiva podremos modificar los vértices de nuestros Path para subir de pisos o niveles, o alentar el recorrido para dar énfasis en ciertos espacios o aspectos.

Este es el fin de este tutorial.

3DSMAX Tutorial 10b: Animación en 3DSMAX, Cinemática Directa o Jerarquías entre objetos

En el mundo real, los movimientos o rotaciones de muchos objetos dependen de otros a los que están subordinados o subyugados. Por ejemplo, si vemos las ruedas de un auto notaremos que estas giran gracias a la rotación del eje a la que están unidas y a su vez, este eje puede rotar gracias a su conexión con el motor el cual también está relacionado o vinculado con sus respectivas piezas como por ejemplo, los pistones y el cigueñal. Esta relación de dependencia se conoce como Jerarquía o Cinemática Directa, y su uso en animación es vital pues nos permite animar objetos compuestos o establecer relaciones de dependencia cercanas a la realidad. En 3DSMAX, una jerarquía es una cadena de objetos vinculados entre sí que contienen una relación ascendiente/descendiente. Esto quiere decir que existe un “objeto padre” que es el que manda en la relación y un “objeto hijo” que está subordinado a este lo que implica que si el objeto padre se transforma, lo hará también el objeto hijo. Al igual que en el mundo real, un objeto padre puede tener muchos “objetos hijos” pero los objetos hijos no pueden tener más de un solo “padre”. En este tutorial aprenderemos conceptos y principios básicos sobre jerarquías entre objetos o Cinemática directa, y su importancia en el proceso de Rigging y animación propiamente tales.

Para la correcta realización de este tutorial, en la página de descargas de los archivos de tutoriales 3D está el archivo base llamado 3dsmax_animacion_jerarquias.max.

Jerarquías en 3DSMAX

En 3DSMAX podemos crear jerarquías de forma más o menos sencilla gracias al grupo de botones Select and Link, los cuales se encuentran en la parte superior izquierda de la interfaz del programa:

Estos nos permitirán crear una jerarquía o relación de vínculo entre dos o más objetos. De izquierda a derecha, primer botón es precisamente Select and Link el cual creará la jerarquía mientras que el segundo es Unlink Selection, el cual nos servirá para deshacerla. El último botón es Blind to Space Warp o lo que es lo mismo, vincular a un efecto especial. Este último botón solamente se puede usar junto con las Space Warp o efectos especiales.

Si queremos crear una relación jerárquica en 3DSMAX, debemos tener en cuenta que por norma básica siempre será el objeto “hijo” el que se vinculará directamente al “padre”. Por lo tanto, al formar la relación debemos asegurarnos de elegir siempre el objeto que será el futuro “hijo”. Para crear la jerarquía bastará con seleccionar el objeto a vincular, seleccionar Select and Link y con el botón del mouse presionado, elegiremos el objeto padre (el cursor cambiará a dos cuadros entrelazados). Este último se resaltará y con ello ya hemos creado la relación.

Sin embargo y antes de proceder con el tutorial mismo, debemos conocer los dos modos que tenemos para generar relaciones de jerarquía en 3DSMAX. Estos son los siguientes:

1) Relación directa de el o los hijos a un solo padre: en este caso todos los objetos hijos se vinculan a un solo gran objeto padre, el cual es el que domina toda la jerarquía. Los objetos hijos no tienen relación entre sí, sino que cada uno se puede transformar de manera independiente pero se subyuga solamente al objeto padre.

Esta relación puede ejemplificarse a partir de la siguiente secuencia:

Realización de la jerarquía.

Relación directa entre objetos. El objeto verde es el padre y al transformarse este todos los hijos lo siguen, pero estos se pueden transformar de manera independiente a la del padre.

2) Relación en cadena: consiste en una descendencia directa entre el objeto padre y el objeto hijo, pero este último también pasa a ser padre de otro u otros objetos que se le vinculen, de forma similar a la vida real. En este caso, el último objeto de la jerarquía podrá transformarse de forma independiente pero se subyugará a su propio padre, el cual a la vez se subyugará a otro objeto padre y así sucesivamente, hasta llegar al objeto padre de toda la jerarquía.

Esta relación puede ejemplificarse a partir de la siguiente secuencia:

Realización de la jerarquía.

Relación en cadena entre objetos. El objeto verde es el padre y al transformarse este todos los hijos lo siguen, pero estos a su vez son padres de los que se le relacionen y al transformarse, los hijos se subyugan a estos mientras que el último objeto (el Azul) es el único que se puede transformar de manera independiente respecto de su objeto padre (objeto amarillo). Esta relación jerárquica es la base para el sistema de Bones o huesos de 3DSMAX.

Demás está decir que se pueden generar las descendencias que queramos y también podremos combinar ambos métodos para generar sistemas jerárquicos más complejos y por ende, preparar nuestros objetos para ser animados. Dominar las jerarquías es clave ya que es la base del Rigging (configuración para animación) de personajes o de objetos, ya que podremos establecer las relaciones entre los diferentes objetos de manera realista y de esta manera tener un personaje u objeto “listo” para ser animado constantemente en cada escena. También podremos animar o transformar modelos compuestos como por ejemplo, una puerta y sus respectivas manillas ya que ambos elementos se deben modelar aparte. En este caso, la jerarquía hace posible que estas se mantengan relacionadas ya que la manilla sería el objeto hijo mientras que la puerta sería el objeto padre. Si la jerarquía no existiera, al abrir la puerta la manilla simplemente flotaría en el aire.

Este último ejemplo puede apreciarse en la imagen siguiente:

En el ejemplo se han modelado dos puertas y a la de la derecha se le ha vinculado la manilla como objeto hijo a la puerta misma mediante jerarquía, lo que hace posible la interacción real de la manilla con la puerta al abrirse esta.

Para ejercitarnos en el tema de las jerarquías utilizaremos el archivo del tutorial 01 (el tren de juguete), pero en este caso le agregaremos unos carros para mostrar los dos tipos base de enlaces que tenemos en 3DSMAX y además formar una relación jerárquica compleja que nos permitiría en un futuro animar el tren en un futuro. También conoceremos al ayudante llamado Dummy, el cual nos ayudará a definir controladores para la jerarquía y facilitar el proceso de rigging.

Al abrir el archivo llamado 3dsmax_animacion_jerarquias.max, nos aparece la siguiente escena:

Como apreciamos, es el mismo tren del tutorial 01 pero que ha sufrido algunas modificaciones ya que se le ha cambiado la cabina y además se han agregado más vagones para generar el tren completo. Sin embargo, si tomamos la cabina o cualquier otra pieza del tren y la movemos, notaremos que estas no están relacionadas con el total ya que se manejan de forma independiente, lo cual ocurre por defecto al modelar varios objetos en 3DSMAX:

Para resolver el problema podríamos agrupar la locomotora y los vagones mediante Group, pero sin embargo esto no nos serviría para animar ya que no podríamos mover las ruedas puesto que el grupo siempre se comporta como un solo objeto. Por esto mismo, debemos establecer relaciones de jerarquía para poder animar correctamente cada elemento y además para facilitar la transformación del conjunto completo sin tener que seleccionar objeto por objeto. Lo primero que haremos será esquematizar las relaciones entre los objetos para facilitar la labor. En el caso de la locomotora, debiéramos realizar el siguiente esquema de enlazado:

Si bien a primera vista el esquema parece complejo la verdad es que no lo es, ya que los elementos más cercanos a la base de la locomotora estarán vinculados directamente a ella. En el caso de las ruedas, estas deberán estar relacionadas a sus respectivos ejes para que puedan ser giradas en un futuro, y los ejes mismos estarán vinculados a la base. Las chimeneas superiores se relacionan directamente con la caldera y el techo de la cabina se relaciona con esta última, la cual a su vez se enlazará a la base al igual que la caldera. En el caso de los topes y los pistones, estos últimos se vinculan de forma directa a la base y los topes mismos se vinculan a la base, vinculando previamente ambas piezas. Si observamos un poco más a fondo el esquema, notaremos que también se podría haber vinculado la caldera a la cabina o viceversa, lo cual nos indica que hay más de una forma de resolver las jerarquías entre objetos. Otra cosa que notamos es que si bien la base de la locomotora es el “padre” de toda la jerarquía, por un tema práctico NUNCA se tomará directamente. En este caso, lo mejor será vincular la base misma a un objeto ficticio llamado “Dummy”, el cual nos permitirá poder tomar el conjunto completo y poder transformarlo ya sea moviéndolo, rotándolo o escalándolo. A este, en un futuro, también se le podrán aplicar restrictores y otras funciones de animación.

El ayudante Dummy

Este es uno de los ayudantes que nos provee 3DSMAX y es de los más importantes, puesto que nos facilita enormemente las tareas de Rigging o configuración de objetos o personajes a animar ya que este es un cubo virtual “sin parámetros”, el cual puede alinearse con cualquier objeto y al que se le pueden aplicar transformaciones y comandos de animación. La gran ventaja del Dummy es que nos permitirá poder tomar la jerarquía completa sin tener que tomar el objeto principal y así evitar confusiones, además que recibe de mejor manera las transformaciones y restrictores de animación que se le apliquen y se evitan errores ya que si se vinculan formas 3D puras, hay riesgo que estas no se animen de forma correcta debido a la naturaleza misma de las mallas 3D.

Podemos encontrar a Dummy en la persiana Helpers de la barra de comandos de 3DSMAX, indicados en la imagen:

Si presionamos el botón Dummy y lo dibujamos en el espacio de trabajo, este se realizará de igual forma que una esfera y notamos que se nos crea un cubo virtual de color verde, el cual literalmente no tiene parámetros editables si lo seleccionamos y luego vemos el panel modificar, puesto que solamente podremos modificar el nombre del objeto.

Volviendo a nuestro archivo, una vez que lo definimos lo mejor será alinear el Dummy dibujado respecto a la base de la locomotora mediante la herramienta Align. Lo alineamos respecto a la base en los ejes X, Y y Z tomando como puntos de contacto los Pivot Point de ambos y aceptamos. Con esto ya estamos listos para proceder con la jerarquía.

Comenzaremos la jerarquización relacionando las chimeneas superiores a la caldera mediante una relación directa. Si queremos seleccionar más de un objeto, debemos presionar y mantener la tecla CTRL. El resultado debe verse con en la imagen siguiente:

Si lo hacemos correctamente, la caldera se resaltará y la jerarquía estará realizada.

Tips: podremos comprobar la jerarquización correcta de los elementos si presionamos las teclas Re Pag y Av Pag, ya que Re Pag nos selecciona los objetos padre y Av Pag los objetos hijo, siembre y cuando seleccionemos cualquier objeto que esté dentro de la jerarquía (esto vale para cualquier jerarquía que realicemos). Si por el contrario, nos equivocamos y queremos eliminar una jerarquía entre dos objetos, simplemente seleccionamos el objeto a desvincular y presionamos el botón Unlink Selection.

Otra forma de verificar que la jerarquía está realizada es simplemente mover la caldera y luego deshacer el movimiento mediante CTRL+Z, tal como se aprecia en la imagen siguiente:

Una vez hecho esto, lo siguiente es vincular el techo a la cabina mediante una relación directa, y luego tomar la caldera y la cabina para vincularla a la base en una nueva relación directa, tal como se aprecia en la secuencia siguiente:

Si observamos la jerarquía recién realizada, notaremos que se ha formado una relación en cadena en los objetos techo, cabina y base. Ahora vincularemos los pistones laterales a la base misma, tal como se aprecia en la imagen:

Ahora debemos vincular los topes a la base. Para ello, primeramente crearemos una relación directa entre el tope y su soporte de tal forma que este último sea el padre de la jerarquía, y una vez finalizado repetiremos el proceso con el otro tope, tal como se aprecia en las imágenes siguientes:

Finalizamos la relación vinculando ambos soportes a la base de la locomotora:

Finalizaremos las jerarquías base de la locomotora vinculando el enganche a la base de la misma.

Ahora solamente nos faltarían las jerarquías de las ruedas lo cual es bastante sencillo ya que, en este caso, colocaremos la vista Bottom (B) y procederemos a vincular las ruedas traseras a su eje. Repetiremos el proceso con las ruedas restantes para finalizar la jerarquía.

Estando en la misma vista, procederemos a seleccionar todos los ejes y los vinculamos a la base de la locomotora mediante una relación directa, y con esto hemos terminado todas las jerarquías base del modelo 3D de nuestra locomotora.

Volvemos a colocar la locomotora en Perspective y realizamos una última prueba para revisar las jerarquías mediante Re Pag y Av Pag. Finalmente, vinculamos la base de la locomotora al Dummy para finalizar de manera definitiva el Rigging base de nuestro modelo:

Si tomamos el Dummy y le aplicamos alguna transformación como mover, rotar o escalar, notaremos que la locomotora completa se subyuga a este ya que este es el padre de toda la jerarquía. Como dijimos antes, por un tema práctico siempre es recomendable que cualquier objeto compuesto esté bajo el yugo de un Dummy, ya que esto nos evita tener que buscar el objeto padre de nuestro modelo al querer animarlo o transformarlo.

Rotando y escalando la locomotora mediante la transformación respectiva, aplicada al Dummy el cual es el padre de la jerarquía.

Para el caso de los vagones seguiremos exactamente la misma lógica que en el esquema de la locomotora, sólo que su parte superior será mucho más sencilla de resolver puesto que en el caso del tender, nos bastará enlazar la tapa a la cisterna y esta a la base mientras que en el caso de los vagones de pasajeros, enlazaremos el techo a la cabina de pasajeros y luego la cabina será vinculada a la base de cada carro. Como en el caso de la locomotora, colocaremos un Dummy a cada elemento para que este pueda ser transformado sin mayor problema.

En las imágenes siguientes vemos las relaciones padre-hijo del tender del tren:

La solución del final de todo el sistema sería la de la siguiente imagen:

Como hemos visto se ha creado un sistema de jerarquías el cual aún no está terminado del todo, ya que lo que nos queda será hacer tal vez lo más interesante de todo: generar los enganches y girar los vagones de manera realista. Para ello, primeramente en la vista Top moveremos un poco cada carro de modo que el enganche quede dentro del aro para generar el efecto de enganche, tal como se aprecia en la imagen siguiente:

Una vez realizado lo anterior, realizamos una jerarquía mediante una relación directa entre todos los Dummys, partiendo desde el Dummy del último vagón hasta el Dummy de la locomotora, tal como se indica en el siguiente esquema:

Con esto, el Dummy de la locomotora se convierte en el padre de toda la jerarquía y nos permitirá mover el tren completo con sólo seleccionarlo. Lo único que nos falta ahora es establecer un nuevo punto de “pivote” para los vagones, ya que si tomamos los Dummys de cada uno estos no girarán de manera realista ya que tomará el centro de este en lugar del punto del enganche, tal como lo haría un tren real. Para resolver esto, conoceremos y aplicaremos las funciones de la persiana llamada Hierarchy.

Tip: si hacemos doble click en el padre de toda una jerarquía, automáticamente se seleccionarán todos los elementos de esta.

Hierarchy

Una función importante de la que disponemos en el tema de las jerarquías es el panel llamado Hierarchy (que significa precisamente “jerarquía”), en donde podremos editar los puntos de relaciones base de cualquier objeto o de una jerarquía ya realizada. Esto es importante si queremos, por ejemplo, cambiar el punto de pivote de una primitiva ya que esta por defecto posee un punto de “pivote” o giro predefinido (por ejemplo, si queremos establecer el punto de giro de una puerta debiéramos cambiar el punto de pivote del box que la define a una esquina) o también modificar la transformación del objeto mismo sin afectar su punto de pivote. El panel Hierarchy es el siguiente:

Este panel tiene cinco botones importantes que tienen que ver con la edición del pivote los cuales son:

1) Affect Pivot Only (afectar solamente al pivote): activando esta opción podremos desvincular el punto de “pivote” predeterminado de un objeto, lo cual nos permitirá independizarlo de este y por ende, colocarlo en cualquier posición. Si lo desactivamos, al pivote se vuelve a vincular al objeto pero el primero queda en su nueva posición.

En el ejemplo, se ha cambiado de posición el punto de pivote del Dummy de la locomotora mediante Affect Pivot Only.

2) Affect Object Only (afectar solamente al objeto): activando esta opción podremos desvincular el objeto mismo de su punto de “pivote”, el cual se mantendrá en su posición original. Si lo desactivamos, el objeto se vuelve a vincular al pivote pero el primero queda en su nueva posición.

En el ejemplo, se ha cambiado de posición el Dummy de la locomotora mediante Affect Object Only.

3) Affect Hierarchy Only (afectar solamente a la jerarquía): si activamos esta opción, podremos transformar toda la relación jerárquica de ese objeto sin afectar su punto de pivote ni al objeto en sí, siempre y cuando se realice mediante las transformaciones Move y Scale ya que en estos casos, las relaciones jerárquicas rotarán o se escalarán según la transformación que se utilice.

Rotando la relación jerárquica del Dummy de la locomotora mediante Affect Hierarchy Only.

Escalando la relación jerárquica del Dummy de la locomotora mediante Affect Hierarchy Only.

4) Alignment (alineación): estas opciones funcionan sólo si activamos Affect Pivot Only o Affect Object Only, y alinearán el pivote o el objeto según las siguientes opciones:

– Center to Pivot/Object: sólo funciona si aplicamos la transformación Move, y centra el objeto o pivote respecto del pivote u objeto según corresponda.

– Align to Pivot/Object: sólo funciona si aplicamos la transformación Rotate, y alinea la orientación del pivote u objeto respecto a las coordenadas locales X, Y y Z del objeto o pivote según corresponda.

– Align to World: sólo funciona si aplicamos la transformación Rotate, y siempre alinea la orientación del pivote u objeto respecto a las coordenadas universales X, Y y Z del espacio de trabajo, también conocido como World o “mundo”.

5) Reset Pivot (resetear pivote): vuelve el punto de pivote a su posición por defecto respecto del objeto. Si rotamos el objeto mediante Affect Object Only y lo activamos, tomará por base las coordenadas locales X, Y y Z del objeto, tal como se aprecia en el ejemplo de abajo:

Ya habiendo conocido las opciones de Hierarchy, volvemos al ejercicio y lo que haremos será justamente cambiar el punto de pivote del Dummy de cada vagón para colocarlo en el enganche correspondiente. Lo que haremos será entonces será seleccionar el Dummy del vagón de tender, luego iremos a Hierarchy, activamos Affect Pivot Only (1), y finalmente alinearemos el pivote respecto del aro de enganche mediante Align (2) tomando Pivot Point como base de alineación, tal como se aprecia en la imagen:

Una vez hecho esto y SIN desactivar Affect Pivot Only, movemos un poco en el eje X el punto de pivote para centrarlo en el aro y terminar de manera definitiva la configuración. Esto se realizará a ojo (podemos ayudarnos con la vista Top si tenemos problemas).

Repetiremos todo lo anterior en el resto de los vagones, desactivamos Affect Pivot Only y con esto ya queda listo nuestro tren. Podemos probarlo simplemente tomando el Dummy de la locomotora y transformándolo mediante Move para observar toda la jerarquía, y girar cada vagón para notar que el punto de pivote ahora se coloca en torno al enganche, de forma similar a un tren real.

Por último, si queremos visualizar todas las relaciones jerárquicas de nuestros objetos, podemos abrir el panel llamado Schematic View el cual nos permite ver el esquema de estas y se encuentra en la parte superior de 3DSMAX, de acuerdo con la imagen siguiente:

Schematic View abierto.

Un acercamiento a Schematic View, donde vemos el esquema de todas las relaciones del ejercicio anterior.

En este ejercicio hemos visto conceptos relacionados con la configuración de animación ya que lo que hemos realizado es un primer Rigging básico que nos servirá para controlar los diferentes objetos de la escena y con ello facilitar el proceso de animación. En el caso del tren, podremos colocar sus vagones en diferentes posiciones o mover el tren completo si es necesario y con mucha práctica, podremos realizar giros del conjunto completo. Sin embargo, si queremos animar el tren de manera que recorra un circuito de forma continua, debemos hacerlo mediante un Constraint de animación el cual se estudiará en el siguiente tutorial, y de paso veremos animación aplicada a la Arquitectura ya que el mismo Constraint será utilizado para ello.

Este es el fin de este tutorial.

3DSMAX Tutorial 10: Animación en 3DSMAX, introducción y conceptos básicos

Desde los tiempos primitivos el hombre ha intentado representar el movimiento, pasando por inventos como el zootropo hasta llegar a los dibujos animados modernos. Valiéndose del principio físico de la persistencia de la visión, es decir, en la que el cerebro humano retiene durante unas fracciones de segundo la imagen que captan sus ojos, los cineastas descubrieron que el cerebro, al ver una secuencia de imágenes a gran velocidad no es capaz de individualizarlas y por ende, esta confusión crea la ilusión de movimiento continuo. Esta secuencia de imágenes a gran velocidad es lo que se conoce como animación. Actualmente la animación puede ser de dos tipos base: en 2D y en 3D. En la categoría 2D se incluye la animación tradicional en papel, Flash, Anime Studio u otro software similar, y en el caso de 3D se consideran las animaciones mediante gráficos computarizados o CGI (Computer-Generated Imagery) y las “Stop Motion”, o animación cuadro a cuadro realizada con modelos 3D físicos.

En este tutorial aprenderemos conceptos y principios básicos de animación, y realizaremos una introducción a ella en el software 3DSMAX. En futuros tutoriales se verán elementos específicos de animación en el programa como por ejemplo, constraints y curvas. Para la correcta realización de este tutorial, en la página de descargas de los archivos de tutoriales 3D está el archivo base llamado 3dsmax_animacion_intro.max.

Concepto de FPS y normativa relacionada

En una animación cada una de las imágenes o dibujos que definen esta se denomina cuadro o frame, y la fluidez de la animación dependerá de la cantidad de cuadros “por segundo” que pasen ante nuestros ojos. Básicamente la cantidad de “cuadros por segundo” nos indica el número de imágenes que se muestran en un segundo de tiempo, y se simboliza como FPS o mejor dicho, Frames Per Second.

En base a este principio fundamental se establece el concepto de FPS como norma para determinar el formato que se utiliza en las películas de cine y las transmisiones de televisión, y dependiendo de la zona geográfica se establecen las siguientes normativas:

Norma NTSC
Significado National Television System Comittee
Países que abarca Norte y Sudamérica, Japón, Chile, parte de áfrica 
FPS 29,97 (se asumen 30)

Variantes: NTSC-M, NTSC 4,43 y NTSC-J (Japón).

Norma PAL
Significado Phase Alternating Line
Países que abarca Europa, Asia, Argentina, Brasil, Oceanía, parte de África.
FPS 25

Variantes: PAL-M (Brasil), PAL-N (Argentina).

Norma SECAM*
Significado Séquentiel Couleur à Mémoire
Países que abarca Europa (Francia), Rusia, Parte de África
FPS 25

Variantes: SECAM L-L’ (Francia), SECAM B/G (Arabia Saudita), SECAM D/K (Europa del Este), SECAM H, SECAM K, SECAM M (Camboya y Vietnam).

*La norma SECAM es la base de la norma PAL, y por lo tanto ya está obsoleta.

Norma FILM
Significado Cine
Países que abarca Todo el mundo 
FPS 24

De todo lo anterior se deduce que la normativa utilizada en Chile es NTSC, y por ende los ejercicios y tutoriales de animación en 3DSMAX estarán acogidos a esta norma.

Concepto de cuadro clave

En las primeras décadas del siglo XX (y aún hoy) los dibujos animados eran realizados dibujando el o los personajes “cuadro por cuadro”. Al ser esta una tarea titánica ya que, por ejemplo, para realizar 5 minutos de animación debemos dibujar unos 7.200 cuadros, los animadores se encargaban de dibujar las poses principales de los personajes para que luego animadores secundarios o asistentes dibujaran los cuadros intermedios y con ello completaran la animación. A partir de esto, nace el concepto de cuadro clave o keyframe.

Un cuadro clave es básicamente la o las poses que definen los diferentes estados de una acción y por ende son vitales para que la animación funcione correctamente. En una animación sencilla como por ejemplo mover un objeto de un lado a otro, la posición inicial y la final de este son los cuadros clave. Si agregamos complejidad a esta misma secuencia girando 180° el objeto en la mitad de la animación, debemos definir dos nuevos cuadros clave: uno que inicie la rotación y otro que finalice el movimiento, este último puede coincidir o no con el cuadro final dependiendo de lo que queramos realizar. El ejemplo anterior puede ejemplificarse en el esquema siguiente:

De igual forma podemos deducir los cuadros clave para animaciones más complejas como por ejemplo, la animación de personajes u otros objetos. Sin embargo, debemos evitar abusar de los cuadros clave ya que si colocamos demasiados en la escena, podemos terminar confundidos a la hora de editar el movimiento mismo.

Principios básicos de la animación

Estos principios fueron propuestos por los animadores de Disney Ollie Johnston y Frank Thomas en su libro The illusion of life: Disney Animation, y el objetivo era que los personajes animados se apegaran a las leyes de la física aunque también se enfocaron a otros factores que enriquecen a la animación como por ejemplo, el carisma y las emociones de los personajes. En total tenemos 12 principios base y se aplican a 2D y a 3D, y son los siguientes:

1) Estirar y encoger: es el principio fundamental pues al deformar una figura nos da una sensación de peso y/o flexibilidad, lo cual nos genera animaciones realistas. Un ejemplo de esto es el rebote de una pelota de goma en el suelo, la cual se aplasta al impactar la tierra y luego se estira tras el rebote.

2) Anticipación: es la acción previa a un acto concreto que busca preparar a los espectadores. Si ejemplificamos esto en una persona parándose, notaremos que esta nunca se para directamente sino que tenderá a inclinarse antes, o a apoyarse en una silla si esta está sentada.

3) Puesta en escena: esto busca presentar claramente el concepto que se quiere decir en cada escena ya sea una emoción o un acto concreto en un contexto adecuado, de forma similar al teatro.

4) Animación directa y pose a pose: el primer concepto consiste en dibujar la animación directamente, es decir, comenzar con el primer dibujo y luego seguir dibujando cuadro a cuadro hasta completar la animación total. La segunda consiste en definir poses “clave” (keyframes) y luego otros animadores dibujan los rellenos entre estas para completar la animación (intercalación).

5) Acción complementaria y acción superpuesta: la primera consiste en que los elementos móviles ajenos del cuerpo de un personaje son independientes del movimiento de este, como por ejemplo la ropa la cual se sigue moviendo aunque el personaje haya dejado de hacerlo (aunque están relacionados entre sí ya que esta seguirá la dirección de movimiento del personaje). La segunda se define como los rangos de movimiento del cuerpo de un personaje ya que se mueven de diferente manera y/o tiempo. Si ejemplificamos esto podemos afirmar que la cabeza no se mueve de igual forma que un ojo o una pierna.

6) Acelerar y desacelerar: para que una animación sea más fluida y realista, tendremos mayor cantidad de dibujos en el inicio y el final de una acción mientras que en la mitad de esta tendremos menos.

7) Uso de Arcos: en la realidad la mayoría de las acciones poseen trayectoria de movimiento en forma de arco o de parábola, y por ende en cada acción se deberá usar como referencia el arco para definir la trayectoria. Sin embargo, existen excepciones a esta regla como por ejemplo la mecánica ya que la trayectoria suele ser recta.

8) Acción secundaria: es una acción extra que se añade a la escena para generar más énfasis en ella misma sin que por ello afecte a la acción principal, podemos ejemplificar esto en dos personas cenando a la luz de una vela la cual obviamente se anima para generar la sensación de intimidad en la escena.

9) Timing: se define como el proceso de alentar o apurar la animación de acuerdo a la cantidad de dibujos. Por esto mismo, muchos dibujos tenderán a alentar la acción mientras que menor cantidad de estos generan una sensación de rapidez.

10) Exageración: si bien la animación muchas veces busca acercarse a la realidad, en ciertos casos conviene exagerar las acciones para dar más énfasis o humor a determinadas situaciones o personajes de la escena.

11) Dibujo sólido o estructura: un buen dibujo debe tener siempre una estructura que se basa en líneas de acción y el reconocimiento de los volúmenes o primitivas que dan forma a los personajes, además de la tridimensionalidad implícita y sensación de peso lo cual hará más creíble y realista la animación.

12) Atractivo visual: una animación atractiva hace que el espectador ponga atención en ella y se conecte con los personajes. También se le conoce como “carisma”.

Como podemos apreciar, la animación en general es un proceso muy complejo ya que además de seguir estos 12 principios base, se requiere de muchísima práctica y bastante observación de la realidad para lograr resultados convincentes y/o realistas. Sin embargo, si llevamos los principios de la animación al ámbito de la Arquitectura, esta se limita básicamente a animar “cámaras” ya que lo que realmente haremos será destacar el exterior y/o el interior de un proyecto y por ende, mediante estas se mostrarán los diferentes aspectos que se requieran ya sea su visión general, espacios internos u otras funciones que necesitemos. En algunos casos muy puntuales podemos abrir o cerrar puertas, colocar vehículos moviéndose o personas caminando aunque esto último requiere de mucha destreza, ya que estaríamos hablando derechamente de animación de personajes.

Animando en 3DSMAX: interfaz y funciones base

A diferencia de la animación 2D tradicional, en 3DSMAX tenemos la ventaja que el programa dibuja los cuadros intermedios (o también llamados interpolación o intercalación) de forma automática mientras nosotros sólo debemos definir los cuadros clave. Otra ventaja particular del programa es que si dominamos el modelado 3D orgánico y sobre todo el rigging, podremos animar lo que nosotros queramos ya que este software está especialmente diseñado para animación de personajes y render, por lo que podremos crear nuestro propio mundo virtual en este y realizar sin problemas una película o un videojuego.

Como principio fundamental en el programa, debemos entender perfectamente cómo crear y editar keyframes ya que esto es fundamental para crear animaciones realmente convincentes y realistas.

Si nos vamos al programa y lo cargamos, veremos la siguiente interfaz:

Las zonas en verde definen los comandos necesarios para crear y producir la animación en el programa. En la parte superior veremos el menú de animación llamado Animation y el Curve Editor, mientras que en los paneles de comandos esta tiene su propia persiana llamada Motion, donde podremos modificar o editar una animación en específico de forma similar al panel de modificar. La zona más importante es sin duda la inferior, ya que allí vemos la mayoría de los controles de animación de 3DSMAX.

Lo primero que apreciamos en esta zona inferior es la llamada línea de tiempo, la cual va es una especie de regla que va desde el “0” hasta el “100” y que por defecto está medida en Frames o cuadros. Si aplicamos esto a la norma NTSC, tenemos 3,33… segundos de tiempo.

Encima de esta tenemos un botón que nos indica el número de Frame o cuadro en el cual estamos posicionados según el formato Frame actual/Frames totales (en el ejemplo es 61/100), y se conoce como Regulador de tiempo. Las flechas laterales de este nos permitirán avanzar cuadro a cuadro por nuestra animación a la izquierda o derecha. El cuadro en amarillo (o celeste en versiones más antiguas de 3DSMAX) indica exactamente el Frame en el cual se posiciona la línea de tiempo y que se corresponde con el primer valor.

Tip: si colocamos el mouse dentro del regulador de tiempo, presionamos el primer botón y luego arrastramos, podremos mover libremente al regulador por toda la línea de tiempo.

Barra de controles de animación

La barra de controles de animación se encuentra en el lado inferior derecho del programa, y nos sirve para controlar la creación de Keyframes, el modo de animación y otros parámetros importantes.

Controles de animación en versiones antiguas de 3DSMAX.

Controles de animación en versiones nuevas de 3DSMAX.

Si analizamos la barra más a fondo, esta está compuesta de las siguientes partes:

1) Set Key: esta función determina la animación de tipo manual. En este caso deberemos establecer los Keyframes cada vez que iniciemos y/o terminemos una determinada animación. Por ende, podremos crear un keyframe en cualquier momento presionando el signo (+). Por norma SIEMPRE debemos crear un keyframe en el cuadro “0” al iniciar cualquier animación si usamos este parámetro, ya que de otra manera la animación no funcionará.

2) Auto Key: esta función determina la animación de tipo automática. En este caso bastará con activarla y luego realizar alguna acción para que esta funcione, ya que no necesitamos crear keyframes puesto que el parámetro mismo los establece automáticamente al realizar cualquier acción. Por norma, al usar Auto Key siempre debemos ir a un frame mayor (o menor) que “0” y luego realizar la acción ya que de otro modo la animación no funcionará.

3) Selected:

4) Controles de reproducción de animación: este control nos permite reproducir la animación o ir a ciertos cuadros de esta. Los controles del panel son los siguientes:

a) Go to Start: ir al primer cuadro.
b) Previous Frame: ir al cuadro anterior al posicionado.
c) Play/Pause: Play reproducirá la animación mientras que si lo presionamos de nuevo tendremos la pausa.
d) Previous Frame: ir al cuadro siguiente al posicionado.
e) Go to End: ir al último cuadro.

5) Tangents to Default: define el tipo de tangentes a definir por defecto al iniciar o crear cualquier animación mediante Set Key o Auto Key. Por defecto la tangente es una forma de “S”, pero puede ser modificada mediante las curvas de animación. Si mantenemos el botón del mouse presionado podremos ver todas las tangentes disponibles.

6) Key filters (Open filter Dialog): esta interesante opción permitirá a Set Key decidir que podrá animar o qué no, ya que al activarla nos aparece un menú donde podremos decidir lo elementos a animar. Si queremos que Set Key permita animar todo simplemente elegimos la opción All.

7) Key Mode Troggle: nos permite cambiar los parámetros del reproductor de animación de tal forma que en lugar de ir a un frame o cuadro específico nos permita ir a cuadros clave, siempre y cuando seleccionemos un objeto previamente y este contenga keyframes. Al activarla, las funciones Previous Frame y Next Frame cambian a Previous Key(frame) y Next Key(frame) respectivamente, tal como se destaca en la imagen siguiente:

En verde las nuevas funciones Previous Key y Next Key, las cuales aparecen al activar Key Mode Troggle.

8) Frame Number: nos indica el cuadro o Frame donde está posicionado el regulador de tiempo. Podemos ir a los siguientes o anteriores si presionamos las flechas laterales.

9) Time Configuration: esta opción nos permitirá configurar parámetros relacionados al tiempo o escala de la animación. Al activarlo, accederemos al cuadro siguiente:

Las funciones que disponemos son las siguientes:

1) Frame Rate: nos permite asignar la normativa de FPS a aplicar en la animación. Por defecto es NTSC pero también podremos elegir la norma PAL, Film o incluso asignar una normativa personal mediante la opción Custom. Un aspecto interesante es que si estamos trabajando en una norma como NTSC, activamos Adjust Keys y la cambiamos a otra como PAL, los cuadros clave se escalarán a la nueva norma y estas modificarán la línea de tiempo.

En el ejemplo una animación en norma NTSC.

La misma animación en norma PAL pero sin la opción Adjust Keys.

La misma animación en norma PAL pero con la opción Adjust Keys activada.

La misma animación pero con norma Custom, donde se definen 50 FPS.

2) Time Display: mediante esta opción podemos establecer el método para mostrar el tiempo en el regulador de tiempo y en el programa. Por defecto es en cuadros o Frames, pero también podremos establecer el tiempo en minutos, segundos y centésimas si lo deseamos (SMPTE). También podremos establecer el tiempo mediante cuadros/impulsos (FRAME/TICKS) y minutos y segundos/impulsos (MMSS/TICKS). Para entender esto último, hay que saber que Internamente 3DSMAX fracciona el tiempo en impulsos, donde 1 impulso equivale a 1/4800 partes de 1 segundo.

La animación del ejemplo anterior pero en este caso el tiempo se ha definido mediante SMPTE.

La animación del ejemplo anterior pero en este caso el tiempo se ha definido mediante FRAMES/TICKS.

La animación del ejemplo anterior pero en este caso el tiempo se ha definido mediante MMSS/TICKS.

3) Playback: mediante este panel podemos establecer la velocidad de reproducción que queramos en la o las viewports: esta puede ser en tiempo real o Real Time el cual dependerá de la capacidad de nuestro PC, además que disponemos de 5 velocidades de reproducción:

1/4x (cuatro veces más lento).
1/2x (dos veces más lento).
1x (velocidad normal, por defecto).
2x (dos veces más rápido).
4x (cuatro veces más rápido).

Si queremos reproducir la animación sólo en la vista seleccionada activaremos Active Viewport Only, si queremos activar o desactivar la repetición infinita de la animación marcaremos o desmarcaremos Loop. Un aspecto interesante es que si desactivamos la opción Real Time, accederemos a la función Direction la cual nos permitirá reproducir la animación de tres formas distintas: Forward (hacia adelante), Reverse (hacia atrás) y Ping Pong (hacia adelante y luego hacia atrás).

Cabe recalcar que las funciones de Playback sólo serán válidas en la o las viewports de trabajo, pues al renderizar la animación la velocidad de esta será siempre de 1X. Podemos ver algunos ejemplos de esta función en los vídeos siguientes:

Animación reproducida en 1/4X

Animación reproducida en 1X (velocidad normal)

Animación reproducida en 1X (Render)

4) Animation: nos permite determinar la duración total o parcial de nuestra animación, según el tipo de tiempo que hemos definido previamente en Time Display. Esta función dispone de las siguientes opciones:

a) Start Time: podemos elegir el inicio de nuestra animación, el cual no tiene que ser necesariamente “0” ya que podemos iniciarla en algún frame específico incluso si este es negativo (ejemplo: -30).

b) End Time:
podemos definir el final del último cuadro de nuestro segmento de tiempo. Cabe destacar que si tenemos una animación creada entre los cuadros por defecto 0 y 100 y agregamos más tiempo mediante End Time, esto NO escalará la animación. Si por el contrario acortamos el tiempo, los cuadros clave sólo se mostrarán hasta el tiempo asignado.

c) Lenght:
se relaciona con las anteriores y representa la cantidad de tiempo total. Si modificamos este factor también lo hará End Time.

d) Frame Count:
se relaciona con las anteriores y nos indica el cuadro de conteo o lo que es igual, el número de imágenes o cuadros necesarios para que la animación se renderice correctamente. Por ello, SIEMPRE será la longitud total más uno (+1).

e) Current Time:
nos muestra la posición actual del regulador de la línea de tiempo.

f) Re-scale Time:
esta interesante opción nos permitirá reescalar el segmento completo de animación activo para ajustarlo a un nuevo tiempo, sea este mayor o menor. Si presionamos el botón Re-scale Time se nos abrirá el cuadro siguiente:

En este podremos definir los nuevos parámetros de tiempo ya que las funciones son las mismas de Animation, y con ello podremos escalar TODOS los objetos que tengamos animados en la escena ya que por definición Re-scale time es una escala de tiempo y por ello todos los cuadros clave son re-escalados, lo cual nos permite acelerar o desacelerar una animación.

Tip: como norma general, se recomienda primeramente realizar todas las animaciones en los frames por defecto de 0 a 100 y luego aplicar Re-scale Time para definir el tiempo final de estas.

Métodos de creación de animación en 3DSMAX

Para crear animaciones en 3DSMAX existen dos caminos básicos que son los siguientes:

a) Transformar un objeto mediante operaciones de transformación de objetos como mover, rotar o escalar: en este caso nos bastará mover, rotar y/o escalar un objeto en el tiempo siempre y cuando tengamos alguna opción de animación activa.

b) Transformar un objeto mediante la aplicación de modificadores u otros, o editar algún parámetro en el tiempo: en este caso podemos animar un modificador o jerarquía en el tiempo, o definir algún restrictor (constraint) de animación. Por defecto, todos los modificadores son animables en 3DSMAX si por defecto establecemos el modo de animación Auto Key.

Modos de animación en 3DSMAX

Cuando comenzamos a animar en 3DSMAX, cada cuadro en el cual realizamos un cambio se transforma en un keyframe y el programa realiza la interpolación automática de los frames intermedios hasta llegar al keyframe anterior. Para animar en 3DSMAX podemos elegir los siguientes modos de animación ya definidos:

1) El modo de animación automático o Auto Key.

2) El modo de animación manual o Set Key.

Como ya dijimos antes, el modo automático no requiere la creación de un Keyframe previo en el cuadro “0” mientras que en el modo manual sí debemos hacerlo. Además, los resultados son diferentes según se ocupe un modo u otro ya que en la mayoría de los casos, Set Key permite un mejor control de la animación a pesar de ser más trabajoso que Auto Key. Sin embargo, en ciertos tipos de animaciones (como por ejemplo los Constraints y los modificadores) Auto Key es la solución más eficiente y rápida. Para entender la diferencia entre ambos modos, haremos un pequeño ejercicio de animación. Para ello utilizaremos el archivo llamado 3dsmax_animacion_intro.max y cuando lo abramos, nos aparecerá la siguiente escena:

En este caso tenemos un par de autitos muy sencillos llamados “AUTO” y “SET” junto a un camino curvado y un plano. La idea del ejercicio es realizar la siguiente animación: primeramente avanzaremos por el camino en torno al eje X, luego giraremos 90° en la curva para finalmente seguir por el camino en torno al eje Y. El auto azul representará a Auto Key mientras que el rojo será Set Key. Si esquematizamos la animación a realizar para cada vehículo, el resultado es el siguiente:

En total tendremos 4 cuadros clave ya que primeramente iniciamos el movimiento en el eje X, luego en el inicio de la curva iniciamos el giro hacia Y para terminar este en el final de esta, para finalmente seguir por el camino dado por el eje Y.

Comenzaremos animando el auto que representa a Auto Key. Para ello, presionaremos el botón Auto Key y de inmediato notaremos que la línea de tiempo se vuelve roja, lo cual nos indica que está en modo de animación. Ahora colocamos el regulador de tiempo en el cuadro 30 y movemos el auto por la recta en X hasta llegar al inicio de la curva. Una vez que lo movamos notaremos que en 0 y en 30 se han creado 2 cuadros rojos. Estos son los cuadros claves que ha creado el programa de manera automática y que vemos en la imagen siguiente:

Ahora procederemos a colocar el regulador de tiempo en el cuadro 55, giramos el auto en 90° y al mismo tiempo lo movemos en XY de manera que este apunte hacia el camino del eje Y al final de la curva (en este caso, se debe usar Angular Snap para que el giro sea preciso). Una vez hecho esto, notaremos que en ese cuadro se ha creado un nuevo Keyframe:

Finalizamos la animación del auto “AUTO” colocando el regulador de tiempo en el cuadro 100 y luego moviendo el auto en el eje Y hasta llegar al final del plano. Con esto nuestra animación está completa.

Ahora corresponde el turno de animar el auto “SET”. En este caso, lo primero que haremos será activar Set Key y notaremos que la línea de tiempo se vuelve roja, indicándonos que estamos en el modo de animación. Como Set Key es la animación manual, debemos presionar el signo (+) para establecer el primer Keyframe en “0”. Es importante realizar esto ya que de otro modo, la animación no funcionará. Una vez hecho esto, procedemos a realizar lo mismo que en el otro vehículo, es decir, nos colocamos en el cuadro 30 y luego movemos el vehículo en X hasta llegar al inicio de la curva. Al finalizar este paso, nuevamente debemos presionar el signo (+) para establecer el cuadro clave. El resultado debe ser similar a la imagen siguiente:

Ahora procederemos a colocar el regulador de tiempo en el cuadro 55, giramos el auto en 90° y al mismo tiempo lo movemos en XY de manera que este apunte hacia el camino del eje Y al final de la curva (en este caso, se debe usar Angular Snap para que el giro sea preciso). Una vez hecho esto, presionamos nuevamente el signo (+) para establecer el tercer Keyframe:

Finalizamos la animación del auto “SET” colocando el regulador de tiempo en el cuadro 100, luego moviendo el auto en el eje Y hasta llegar al final del plano y finalmente presionando el signo (+) para definir el cuarto y último keyframe. Con esto nuestra animación ya está completa.

Si renderizamos la animación final de ambos vehículos, el resultado será el siguiente:

Como se aprecia en el vídeo, notamos que el auto “AUTO” literalmente “derrapa” al doblar la curva mientras que el auto “SET” la enfrenta de manera más realista. En el caso de “AUTO”, esto ocurre porque Auto Key asume que al aplicar la transformación de rotación esta comienza en el Frame “0” y por ello cuando aplicamos Rotate, Auto Key inmediatamente crea un cuadro clave en esa posición. En el caso de Set Key, el problema se resuelve ya que cada cuadro clave creado por este modo asume por defecto que las transformaciones se inician precisamente en el cuadro clave creado y no en el Frame “0”, y por lo tanto podemos establecer la rotación sin afectar a lo animado en los cuadros anteriores. Por esto mismo es que Set Key es el más utilizado de los modos ya que a pesar de ser evidentemente más lento que el modo automático, a la larga es el más ventajoso puesto que se tiene mayor y mejor control de la animación. Otro ejercicio interesante que podemos realizar es tomar cualquiera de los vehículos y en la línea de tiempo podremos editar los Keyframes de las siguientes formas:

– Mover: seleccionamos el Keyframe con el cursor del mouse, luego presionamos el primer botón de este y arrastramos el Keyframe manteniendo el botón presionado. Al seleccionar un Keyframe, por defecto cambiará a color blanco.

Moviendo el Keyframe desde el cuadro “0” hasta el cuadro 15.

– Copiar: es mover el keyframe pero además presionando y manteniendo la tecla SHIFT. Podemos copiar tantos Keyframes como queramos.

Copiando el Keyframe desde el cuadro “0” hasta el cuadro 15.

– Borrar: seleccionando cualquier Keyframe, presionamos la tecla SUPR (Suprimir).

Podemos practicar estos modos de edición en el ejercicio anterior para lograr distintos efectos en nuestra animación de base. El dominio de la edición de Keyframes es fundamental para crear animaciones realmente convincentes y realistas, al igual que su edición mediante las llamadas Curvas de animación las cuales nos permitirán suavizar o endurecer las trayectorias. Cabe decir que cuando transformamos un objeto ya sea moviéndolo, rotándolo o escalándolo, automáticamente se crean curvas de trayectoria en los ejes en los cuales hemos aplicado la transformación las cuales serán visibles al abrir el editor de curvas o Curve Editor.

Trayectorias de X y Y de la animación del auto “SET” del ejercicio anterior, vistas en el Curve Editor.

En los siguientes tutoriales se verán conceptos más profundos sobre animación en 3DSMAX, como por ejemplo:

Jerarquías o Cinemática directa.
– Curvas de animación o Curve Editor.
– Constraints o restrictores de animación.
– Animación de cámaras.
– Animación mediante Rigging (Wire Parameters).
– Cinemática inversa (IK Chain).

Este es el fin de este tutorial.

Bibliografía utilizada:

– Tutorial Animation Essentials del profesor Sebastián Huenchual H., Carrera Animación Digital 3D, Instituto DGM.

– 3DSMAX User Guide reference.

– Manuales USERS 3DSMAX por Daniel Venditti. Ediciones MP, Buenos Aires, Argentina.