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.

AutoCAD 3D Tutorial 10: Animación en AutoCAD, parte 2: Anipath (recorrido)

Desde los tiempos primitivos el hombre ha intentado representar el movimiento, pasando por diferentes inventos que van desde 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 que el cerebro humano retiene sólo durante unas fracciones de segundo la imagen que captan sus ojos, los cineastas descubrieron que, al ver una secuencia de imágenes a gran velocidad, el cerebro no es capaz de individualizarlas y por ende, este crea la ilusión de movimiento continuo. Esta secuencia de imágenes a gran velocidad es lo que conocemos como animación.

En este tutorial aprenderemos a realizar animaciones de recorrido mediante el comando anipath de AutoCAD, y además crearemos (y guardaremos) vídeos en relación a ello. También veremos las distintas calidades de vídeo y formatos específicos de renderizado para estas.

Para el correcto desarrollo de este tutorial se necesitará un archivo específico, el cual puede ser descargado en este enlace. Sin embargo, antes de proceder debemos primeramente conocer el concepto base en el cual trabajan las animaciones, es decir, el concepto de FPS o “cuadros por segundo”.

Concepto de Cuadros por segundo o FPS (Frames Per Second)

En animación, cada una de las imágenes estáticas que la componen se denomina cuadro o frame, y la fluidez de esta dependerá de la cantidad de imágenes “en un segundo” que “pasen” ante nuestros ojos. Por ende, a medida que tengamos más cuadros en un segundo la animación será más fluida y viceversa. Resumiendo, el concepto de “cuadros por segundo” o Frames Per Second (FPS) nos indica precisamente el número de imágenes que se muestran en un segundo de tiempo. Este concepto base es el utilizado como norma para las transmisiones de televisión y filmes, y dependiendo del lugar geográfico se establece según los siguientes sistemas de televisión analógica:

NTSC (National Television System Committee)
Norte y la mayor parte de Sudamérica, Japón, Chile.
29,97 FPS (se asume 30 FPS).
PAL (Phase Alternating Line)
Europa, Asia, Argentina, Brasil y algunos países de Centroamérica.
25 FPS.
SECAM (Séquentiel Couleur à Mémoire)
Francia.
25 FPS.
FILM
Formato para cine.
24 FPS.

En el caso de Chile, el sistema utilizado por norma es el NTSC y por lo tanto, en este tutorial las animaciones serán creadas utilizando esta norma base.

La animación en AutoCAD

A diferencia de programas para renderizado como 3DSMAX, AutoCAD no es un programa optimizado para animación ya que es más bien un programa técnico donde la precisión es lo más importante, y por ello los comandos de animación que tiene son muy limitados y además suelen estar ocultos en el programa. Por lo tanto, debemos invocarlos mediante su nombre respectivo o el icono correspondiente. Para acceder al grupo de los comandos de animación iremos al espacio de trabajo (workspace) 3D Modeling y lo llamaremos clickeando con el botón secundario del mouse en cualquier parte de los grupos de la persiana Visualize (Render), y presionando el botón secundario del mouse elegiremos Show Panels >> Animation tal como se aprecia en las imágenes de abajo:

acad_animacion00

Llamado al grupo de animación mediante el mouse en AutoCAD 2013 y 2017 respectivamente.

Al activarlos aparecen los controles respectivos de animación donde podremos animar un modelo 3D de tres formas diferentes las cuales son:

– Walk (caminar).
– Fly (volar).
– Animation Motion Path (Animación por recorrido en movimiento).

En el primer tutorial sobre animación ya vimos la opción Walk and Fly. Por ello, en este tutorial ocuparemos el comando llamado Animation Motion Path. En este caso utilizaremos el archivo terminado y mejorado del Tutorial 02 (templo griego) el cual abriremos en el programa. Si lo renderizamos, el resultado debe ser algo similar a la imagen de abajo:

Ahora animaremos el templo mediante mediante Animation Motion Path o también conocido como el comando anipath. Como su nombre lo indica, para realizar este tipo de animación necesitaremos una o la unión de varias líneas: una curva abierta o una forma cerrada (llamada Path) que nos servirá como recorrido, y una cámara virtual desde la cual enfocarán los objetos para realizar la animación la cual es insertada de manera automática por el comando. Si ejecutamos el comando anipath y luego presionamos enter, obtendremos el siguiente cuadro:

Este cuadro se denomina Motion Path Animation (Animacion de movimiento por recorrido). Antes de proceder a efectuar la animación respectiva, primeramente debemos entender el lado izquierdo del cuadro. Este nos indica que la “cámara virtual” que nos inserta anipath puede ser enlazada a dos elementos geométricos diferentes:

1) un punto cualquiera en el espacio (point).
2) un recorrido (path), el cual puede ser cualquier forma abierta o cerrada. Si el recorrido se realiza mediante líneas o line, este deberá ser unificado mediante join.

Y respecto a la cámara virtual misma, podemos enlazar tanto esta (camera) como el objetivo al cual apunta (target) a los elementos geométricos anteriores. Por ello, las posibles combinaciones que podemos realizar mediante estos enlaces son las siguientes:

a) Enlazar camera a path y target a point.
b) Enlazar camera a point y target a path.
c) Enlazar camera a path y target a nada (none).
d) Enlazar camera y target al mismo path.
e) Enlazar camera y target a distintos path.

Enlazar camera y target a point no es posible ya que no habría animación, puesto que la cámara y el target siempre estarían fijos. De este análisis se desprende que los tipos de animación de cámara que podremos realizar mediante el comando anipath 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.

En este tutorial veremos todos estos tipos.

Opciones de Motion Path Animation

Antes de crear las animaciones pertinentes, podremos configurar los parámetros de estas mediante las siguientes opciones del cuadro Motion Path Animation:

Frame Rate (FPS): con esta opción elegiremos la unidad o sistema en que queremos trabajar nuestra animación sea NTSC, PAL, FILM o la cantidad de FPS que deseemos.

Number of frames/Duration (seconds): con esta opción elegiremos la unidad de tiempo ya sea en cantidad de frames o cuadros, o en el tiempo de duración (en segundos) que queremos para nuestra animación. Si elegimos aumentar la cantidad en Duration, automáticamente se ajustará la cantidad de frames en Number of frames, y visceversa.

Visual Style: en esta opción elegiremos cómo queremos que se vea nuestra animación ya que tendremos todas las opciones de estilos visuales e incluso podremos “renderizar” la animación de forma sencilla al elegir la opción Rendered. Si elegimos la opción As displayed, la animación se renderizará según el estilo visual que tengamos activo en la viewport.

Debemos tener cuidado con esta opción puesto que si queremos testear la animación y tenemos activados los materiales, luces, sombras, GI y elegimos Rendered, la animación se demorará muchísimo más que si elegimos otro estilo visual. Para testear animaciones se recomienda la elección de estilos visuales más simples como Hidden, Conceptual o Realistic.

También podremos configurar la calidad del render en la animación y esta influirá en la calidad de la imagen y en el tiempo de renderizado. Para las versiones antigua de AutoCAD, Draft es la más básica y rápida mientras que Presentation es la mejor pero la más demorosa. En la versión moderna (2016 en adelante) tenemos las opciones Low (baja), Medium (media) y High (alta).

Format: en esta opción elegimos el formato de salida para nuestro vídeo. Los formatos disponibles son los siguientes:

– AVI (Audio Video Interleave), o Audio Video Entrelazado.
– MOV (Quick Time de Apple). Este formato ya no existe en las versiones nuevas de AutoCAD.
– MPG o MPEG (Moving Picture Experts Group), formato usado para DVD.
– WMV (Windows Media Video).

Los formatos más aceptados para vídeo son MPG y AVI, mientras que el formato WMV se puede usar para el testeo de nuestras animaciones debido a su bajo peso.

Resolution: aquí elegimos el tamaño del vídeo. Mientras más pequeño (160 x 120) el vídeo se creará más rápido pero al aumentar de tamaño se verá pixelado y si es más grande (1024 x 768) se demorará más, aunque se verá mucho mejor. Por ello se recomiendan tamaños pequeños para pruebas o testeos mientras que los mayores son para la animación definitiva.

Reverse: si activamos esta opción, la animación tomará el otro extremo del recorrido o invertirá la vuelta si es una forma cerrada.

Corner Deceleration: esta opción desacelera automáticamente la animación al llegar a las esquinas de un recorrido para efectuar transiciones suavizadas. Si lo desactivamos se creará un recorrido continuo en estas. Esta opción funciona de mejor forma en recorridos con esquinas rectas.

When Previewing show camera preview: esta opción nos permite ver la previa de la animación en la ventana de Animation Preview. Si la desactivamos no podremos verla.

Una vez estudiados estos parámetros procederemos a crear las animaciones respectivas tomando como referencia nuestro templo griego ya modelado. Si estudiamos más en profundidad el archivo veremos que está estructurado mediante varios layers que hacen referencia a las animaciones que crearemos, y que además estos poseen los recorridos respectivos los cuales iremos ocultando o desocultando mediante los comandos hide y unhide respectivamente, según cada tipo de animación que realicemos.

1) Creando un giro o recorrido de cámara

Antes de comenzar necesitaremos una línea o forma cerrada que nos sirva como referencia para realizar el recorrido de nuestra cámara o target. Estas líneas pueden ser rectas, curvas o formas cerradas como una elipse, círculo o un rectángulo. Si establecemos varias líneas al mismo tiempo debemos asegurarnos que se dibujen mediante polyline o si las dibujamos con line las unifiquemos con el comando join para que anipath considere todo el recorrido. Para nuestro ejercicio, activaremos el layer llamado recorrido recto y notaremos que hay una polilínea y un rectángulo. La idea es ocultar este último mediante el comando hide y mantener la polilínea recta que forma el recorrido abierto, como se aprecia en la secuencia siguiente:

Una vez realizado esto, lo siguiente es ejecutar el comando anipath en la barra de comandos o también presionar el botón Animation Motion Path:

Al hacerlo, nos aparece el cuadro Motion Path Animation ya visto:

Como vemos, el cuadro nos muestra las opciones de “linkeo” o link to tanto de la cámara “física” (camera) como del target u objetivo. Ahora debemos realizar lo siguiente: en Link Camera To marcaremos la opción Path (recorrido) y presionamos el cuadro del lado derecho señalado en verde:

Esta acción nos permitirá volver al espacio de trabajo y elegir la línea o recorrido que queremos asignar a nuestra animación. Elegiremos mediante click el recorrido respectivo:

Luego de realizar esto volveremos a Motion Path Animation, donde ahora se nos muestra un nuevo cuadro llamado Path Name. Este cuadro nos pedirá asignar un “nombre” a nuestro recorrido y podemos renombrarlo o dejarlo por defecto (Path 1).

Lo que en realidad hemos hecho con esta operación es decirle al comando que coloque la cámara física o camera en el recorrido y por ello, esta lo recorrerá al iniciar la animación tomando como referencia el primer punto con el que comenzamos a dibujar nuestro recorrido. Ahora iremos a la opción Link target to y cambiaremos su opción a Point, y presionamos el cuadro del lado derecho (en verde):

Esta acción nos permitirá volver al espacio de trabajo y elegir un punto cualquiera del espacio ya que este representará al “target” u objetivo al cual apuntará nuestra cámara. Con nuestro archivo abierto, elegiremos mediante click el punto intersección de las dos líneas dibujadas debajo de nuestro templo, indicadas en verde:

Luego de realizado esto volveremos a Motion Path Animation, donde ahora se nos muestra un nuevo cuadro llamado Point Name. Este cuadro este nos pedirá asignar un “nombre” a nuestro punto y podremos renombrarlo o dejarlo por defecto (Point 1).

Lo que en realidad hemos hecho con esta operación es decirle al comando que el target u objetivo apunte hacia las coordenadas del punto que hemos definido, y por ello permanecerá fijo al iniciar la animación.

Para finalizar y crear la primera animación del tutorial configuraremos lo siguiente: activaremos la casilla Corner Deceleration, dejaremos la opción Conceptual en visual style, el tiempo lo dejaremos en 10 segundos o 300 frames, elegiremos el formato AVI, dejaremos la resolución en 320 x 240 y realizaremos la vista previa de la animación mediante preview. Una vez que terminemos de ver la animación en la ventana, la cerramos para volver al cuadro de Motion Path Animation. Ahora presionamos en OK para guardar la animación, y nos aparece el cuadro final de guardado:

En este cuadro basta indicar el nombre de archivo y la ruta en que guardaremos nuestro vídeo. Si nos equivocamos al configurar la animación o no lo hicimos en el cuadro anterior, podremos volver a hacerlo presionando en el botón Animation Settings. Ahora sólo es cosa de presionar Save y con esto ya creamos nuestro vídeo. Ahora se nos muestra el cuadro de progreso que indica la cantidad de frames que se van creando y cuánto falta para terminar el vídeo. Como este vídeo inicial no está renderizado se creará de forma más o menos rápida.

El resultado de la animación es el siguiente, en modo Conceptual:

Ahora realizaremos otro ejercicio usando el rectángulo oculto. Para esto, lo desocultamos mediante el comando unhide y luego ocultamos el recorrido abierto mediante hide.

Si realizamos la vista previa de la animación utilizando este como path, el recorrido de la cámara será una vuelta completa. El resultado de la animación de este nuevo ejercicio es el siguiente, en modo Conceptual:

Si realizamos los dos ejercicios y abrimos cada video con un reproductor notaremos que las animaciones no son muy buenas pues al ser rectas las líneas, los quiebres en las esquinas son muy notorios y se desaceleran al llegar a estas, y por ello son muy molestos en la animación final. Si realizamos nuevamente ambas animaciones pero desactivamos la opción Corner Deceleration en el cuadro Animation Motion Path, el resultado es el siguiente:

Animación del recorrido abierto con Corner Deceleration desactivado.

Animación del recorrido cerrado con Corner Deceleration desactivado.

En este caso el recorrido es continuo y ya no es tan molesto al pasar la cámara por las esquinas del recorrido, sin embargo notaremos que las formas rectas no son lo ideal para realizar animaciones puesto que no son suaves y por lo tanto, sólo se recomiendan para ciertos tipos de enfoques o movimientos de cámara como por ejemplo los travellings.

Como consejo general, para obtener una buena animación se recomienda lo siguiente:

– Si establecemos uno o más recorridos cerrados, es preferible establecer como paths formas curvas cerradas 2D como circle, arc o ellipse.
– Si establecemos uno o más recorridos abiertos, preferentemente debemos utilizar las curvas realizadas mediante el comando spline, ya que estas nos crearán recorridos mucho más suaves y realistas que si los realizáramos con formas rectas como un rectángulo o las líneas que acabamos de realizar.
– Si establecemos uno o más recorridos mediante líneas rectas, debemos mejorarlas redondeando sus bordes mediante comandos como fillet, ya que esto suavizará el recorrido.
– Es mejor desactivar la opción Corner Deceleration para que la animación sea continua entre las curvas.

Ahora visualizaremos esto en el siguiente ejercicio: apagamos el layer recorrido recto y ahora activamos el layer recorrido recto con fillet. si observamos bien notaremos que son las mismas líneas de los ejercicios anteriores pero esta vez se les ha aplicado fillet. Ahora tomaremos las curvas de la imagen y ocultarlas mediante hide:

Ahora nos bastará con repetir el proceso de creación de la animación en la curva respectiva y desactivar la opción Corner Deceleration. Configuraremos los parámetros de la animación de la misma manera en que lo hicimos con los primeros ejercicios.

El resultado de la animación es el siguiente:

Ahora haremos lo mismo con el rectángulo primero desocultando todo mediante unhide y luedo ocultando todos los recorridos abiertos. Repetiremos el proceso de creación de la animación y desactivamos la opción Corner Deceleration. Configuraremos los parámetros de la animación de la misma manera en que lo hicimos con los primeros ejercicios.

El resultado de la animación es el siguiente:

Como los recorridos son formas editables podremos transformarlos mediante comandos como 3DMove o move para cambiar la altura de la elevación y por ello el ángulo en que la cámara enfoca los objetos. La idea de esto es lograr otras perspectivas para nuestra animación y enriquecer esta. En nuestro archivo notamos que al desocultar todo nuevamente, tenemos tres recorridos abiertos los cuales son copias y están a diferentes alturas. Podemos ir ocultando o desocultando estos para ir testeando las distintas animaciones que se forman en función de la posición de estos en el eje Z, tal como se aprecia en los siguientes ejemplos:

El recorrido abierto del primer ejercicio pero en este caso este está en Z=0 (se ha desactivado la opción Corner Deceleration):

Arriba, la animación resultante de esta operación.

El recorrido abierto del primer ejercicio pero en este caso este está bajo el plano XY y por ello, bajo Z=0 (se ha desactivado la opción Corner Deceleration):

Arriba, la animación resultante de esta operación.

Con estos principios básicos podremos crear tantas animaciones como queramos además de colocar más recorridos en una misma escena y, por ejemplo, jugar con los atributos de las curvas Spline para crear recorridos que no sólo giren alrededor de un objeto, sino que la cámara pueda elevarse o descender en cierto momento del trayecto. Ejemplificaremos esto apagando el layer recorrido recto con fillet y luego activando el layer recorrido con spline. En este caso veremos dos spline y realizando los pasos vistos anteriormente, crearemos las animaciones respectivas tal como se aprecia en los siguientes ejemplos:

Este recorrido se ha realizado mediante spline, con todos los puntos en un mismo plano.

Arriba, la animación resultante de esta operación.

Este recorrido es el mismo de arriba pero en este caso, se han manipulado los puntos de control de la spline subiéndolos o bajándolos  en el eje Z mediante modo ortho (F8), y con ello logramos efectos de ascenso y/o descenso de la cámara:

Arriba, la animación resultante de esta operación.

Un aspecto importante a considerar es que la gran ventaja de crear varios recorridos y/o puntos en la escena al mismo tiempo es que estos quedarán guardados en el cuadro de Motion Path Animation y podremos escogerlos en cualquier momento al realizar la animación:

Con estos pasos hemos creado el primer tipo de animación (cámara móvil y objetivo fijo) y hemos conocido los aspectos más relevantes de esta. Debemos hacer mención que mientras mayor sea el tiempo asignado a la animación, esta será más lenta y viceversa. Este principio es válido para todos los tipos de animación que realicemos.

2) Creando un recorrido panorámico o paneo

Para crear este tipo de recorrido nos bastará con realizar lo inverso de lo realizado anteriormente, es decir, dejar la cámara en un punto fijo y que el target apunte al recorrido. Ahora invocaremos al comando anipath y dejaremos las siguientes opciones en Link To:

Camera: link to point (antes se debe configurar el Target en Link to path para que aparezca la opción Point).
Target: link to path.

Demás está decir que podremos crear nuevos recorridos, nuevos puntos o elegir los ya existentes. Con estos cambios haremos que el objetivo se mueva en el recorrido mientras que la cámara permanece fija, esto es ideal para crear vistas panorámicas o mostrar lugares cerrados como habitaciones. Ejemplificaremos esto apagando el layer recorrido con spline y activando el layer recorrido paneo. Ahora procederemos a invocar a anipath y elegiremos como Point la intersección de la cruz inferior derecha, mientras que el path será la curva spline respectiva.

Ahora nos bastará con repetir el proceso de creación de la animación y desactivar la opción Corner Deceleration. Configuraremos los parámetros de la animación de la misma manera en que lo hicimos con los primeros ejercicios. El resultado de la animación es el siguiente:

En este caso puntual hemos generado un recorrido de cámara de tipo panorámico o de “paneo”. Demás está decir que el recorrido puede ser lineal, curvo, abierto o cerrado. También podremos modificar la spline para ascender/descender en el recorrido mismo o utilizarlo para otros fines específicos como por ejemplo, mostrar la parte superior o inferior de un espacio.

Si queremos ejemplificar la animación de un espacio interno notaremos que en el interior del templo tendremos un par de recorridos interiores y un punto interno respecto de este. Procedemos a ocultar mediente hide el recorrido en “diagonal” de tal manera de dejar sólo el recorrido paralelo al plano XY de la imagen siguiente:

Procedemos a realizar el paneo respectivo, vinculando camera en el punto de intersección de la cruz interior mientras que target irá vinculado al recorrido interno. El resultado de la animación es el siguiente:

Al igual que en los otros casos, se puede modificar esta curva jugando con las alturas de los puntos de control del nuestro recorrido para lograr otros tipos de animación para nuestra panorámica. Para esto desocultamos todo medianter unhide y cuando realicemos el paneo elegiremos esta vez la curva “diagonal”, ya que esta es originalmente una copia de la misma curva anterior pero se le han modificado las alturas de los puntos de control respectivos:

El resultado de la animación es el siguiente:

3) Creando una cámara subjetiva o de primera persona

Si queremos que tanto la cámara como el target se muevan por el recorrido (y de esta forma creamos una animación con cámara en primera persona o subjetiva), sólo debemos ir al comando anipath y dejar las siguientes opciones en Link To:

Target: link to path (una vez aquí debemos elegir la opción none).
Camera: link to path.

Tip: también se puede enlazar el target al mismo path en lugar de la opción none.

Volvemos a nuestro archivo para aplicar este principio y por ello crear este tipo de animación. Activaremos el layer recorrido subjetivo y luego escondemos la curva en diagonal mediante hide, de tal modo que sean visibles la curva de la imagen siguiente:

Como podemos apreciar, se ha dibujado una spline en el interior de nuestro templo la cual está a una altura media respecto al interior y está paralela al plano XY. Ahora activamos anipath y linkearemos la cámara a esta curva, mientras que el target irá vinculado a la opción none. Esto puede resumirse en el cuadro Motion Path Animation:

La curva se ha denominado recorrido interno subjetivo. En este caso, la cámara se moverá en esta línea mientras que el target seguirá el movimiento de la cámara, ya que de por sí este no está linkeado a ningún elemento. La animación resultante es la siguiente:

En este caso puntual hemos generado un recorrido de cámara “subjetiva” o de primera persona. Demás está decir que el recorrido puede ser lineal, curvo, abierto o cerrado. También podremos modificar la spline para ascender/descender en el recorrido mismo o utilizarlo para otros fines específicos como por ejemplo, subir a un piso superior. Esto puede ejemplificarse en el siguiente ejercicio de nuestro archivo:

Desocultamos todas las líneas mediante unhide y luego de eso ocultamos la curva original, de modo que sean visible el recorrido de la imagen siguiente. En este caso, es la misma spline del ejemplo anterior pero en este caso esta tiene modificada la altura de cada punto de control.

La animación resultante es la siguiente:

4) Creando un recorrido travelling

Finalmente, si se crean varios recorridos podremos linkear tanto la cámara como el target a dos paths o recorridos diferentes. Para ello, sólo debemos ir al comando anipath y dejar las siguientes opciones en Link To:

Target: link to path.
Camera: link to path (debe ser diferente del primer recorrido).

Volvemos a nuestro archivo para aplicar este principio y por ello crear este tipo de animación. Activaremos el layer recorrido travelling y luego escondemos las líneas curvas mediante hide, de tal modo que sólo sean visibles las líneas rectas de la imagen siguiente:

Como podemos apreciar, se han dibujado dos líneas rectas que configurarán nuestro traveling. Activamos anipath y linkearemos la cámara a la línea más larga mientras que el target irá vinculado a la más corta. Esto puede resumirse en el cuadro Motion Path Animation:

La línea larga se ha denominado travelling lineal largo. En este caso, la cámara se moverá en esta línea mientras que el target lo hará en la línea corta, denominada travelling lineal cortoLa animación resultante es la siguiente:

En este caso puntual hemos generado el “travelling” de cámara gracias a los recorridos paralelos. Demás está decir que estos recorridos pueden ser lineales, curvos, utilizar dos recorridos iguales o totalmente diferentes. En este último caso, se pueden producir animaciones curiosas según el tipo de recorrido y las alturas que este tenga. Esto puede ejemplificarse en los siguientes ejercicios de nuestro archivo:

Desocultamos todas las líneas mediante unhide y luego de eso ocultamos las líneas rectas junto con las curvas en diagonal, de modo que sean visibles las líneas curvas de la imagen siguiente. En este caso, ambas son splines pero están contenidas en un mismo plano.

La animación resultante es la siguiente:

Para apreciar el segundo ejemplo, desocultamos todas las líneas mediante unhide y luego de eso ocultamos las líneas rectas junto con las curvas que están en el mismo plano, de modo que sean visibles las curvas de la imagen siguiente. En este caso, son las mismas splines del ejemplo anterior pero en este caso estas tienen modificadas las alturas de los puntos de control.

La animación resultante es la siguiente:

Creando la animación final

Es bueno recordar que podremos realizar varias animaciones de prueba las cuales se demorarán relativamente poco ya que normalmente no utilizan luces GI ni iluminación artificial. Sin embargo, si realizamos la animación final debemos tomar en cuenta lo siguiente:

1) 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.

2) Usar la calidad media (medium) o Draft ya que es la standard y no es tan demorosa como las más altas. Si el PC nos lo permite, podemos usar calidades más altas. Como la configuración del render afecta a la calidad de la animacíon final, debemos primero configurar la calidad de este especialmente si trabajamos con la versiones modernas de AutoCAD, ya que allí podremos establecer el tiempo de duración del render y la calidad respectiva.

3) La creación y el renderizado de la animación final demora mucho tiempo (en no pocos casos incluso se puede demorar algunos días) por lo que se recomienda realizarlas con anticipación y no utilizar tiempos excesivamente largos (la animación no debiera durar más de 2 minutos como máximo) ni tampoco demasiado cortos que no permitan ver la animación de forma óptima (al menos 10 segundos).

4) Siempre se deberá realizar una animación de prueba creando un video de baja calidad y sin renderizar, ya que la vista previa mediante el PC NUNCA nos mostrará la velocidad real de la animación ya que el video será el que lo hará.

Para finalizar el tutorial se renderizará la primera animación del recorrido subjetivo. En nuestra escena y si no lo hemos hecho, colocaremos la luz del sol y la iluminación GI, ajustamos los parámetros del render, ejecutamos anipath y en la opción de Visual Style elegimos “Rendered“. En el ejemplo se han asignado 30 segundos de tiempo y procedemos a guardar la animación. Como el video rendereará cada cuadro de forma similar a un render individual, debemos esperar mucho tiempo para crear la animación total (en este caso son 600 cuadros), por lo que se recomienda renderizar preferentemente de noche para dejar trabajando al PC.

El video final de la animación de ejemplo es este (con 30 segundos de tiempo total y en calidad Rendered/Draft) y en 640 x 480:

Este segundo video final es la misma animación anterior, pero renderizado en calidad Rendered/High y en 320 x 240:

Como corolario final: en la versión de AutoCAD 2017 hay un problema con el comando anipath pues al elegir cualquier punto de la opción Point, SIEMPRE nos marcará el punto 0,0,0. Este es un problema de esta versión del programa y NO tiene solución, por lo que en este caso se recomienda realizar los ejercicios de este tutorial en otra versión del programa (2018, 2016, etc.) o mover el modelo 3D completo para adaptarlo al punto respectivo, aunque esto último sea muy molesto.

Este es el fin de este Tutorial.

Descargar material del tutorial: ir a página de descargas.

AutoCAD 3D Tutorial 10: Animación en AutoCAD parte 1, Walk and Fly

Desde los tiempos primitivos el hombre ha intentado representar el movimiento, pasando por inventos desde el zootropo hasta llegar a los dibujos animados modernos. Valiéndose del principio físico de la persistencia de la visión, 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, este crea la ilusión de movimiento continuo. Esta secuencia de imágenes a gran velocidad es lo que conocemos como animación. En este tutorial realizaremos animación de recorridos mediante los comandos Walk and Fly de AutoCAD y aprenderemos a generar videos donde esta se representa.

Cuadros por segundo o FPS (Frames Per Second)

En animación cada una de las imágenes estáticas que la componen se denomina cuadro o frame, y la fluidez de esta dependerá de la cantidad de imágenes “en un segundo” que pasen ante nuestros ojos.

El concepto de “cuadros por segundo” o Frames Per Second (FPS) nos indica precisamente el número de imágenes que se muestran en un segundo de tiempo. Este formato se utiliza en cine y en televisión, y dependiendo del lugar geográfico se establece de la siguiente manera:

NTSC Norte y sudamérica, Japón, Chile. 29,97 FPS
(se asume 30 FPS).
PAL/SECAM Europa, Asia, Argentina, Brasil. 25 FPS.
FILM (cine) 24 FPS.

La animación en AutoCAD

A diferencia de 3DSMAX, AutoCAD no es un programa optimizado para animación ya que es más bien un programa técnico donde la precisión es lo más iportante, por ello los comandos de animación que tiene son muy limitados y además suelen estar ocultos en el programa. Por lo tanto, debemos invocarlos mediante su nombre respectivo o el ícono correspondiente. Para acceder al grupo de los comandos de animación iremos al espacio 3D Modeling y lo llamaremos clickeando con el botón secundario del mouse en cualquier parte de los grupos de la persiana Render y presionando el botón secundario del mouse, donde elegiremos Show Panels >> Animation.

acad_animacion00

Ejemplo de llamado al grupo de animación mediante el mouse.

Al activarlos aparecen los controles respectivos de animación donde podremos animar un modelo 3D de tres formas diferentes las cuales son:

acad_animacion01

– Walk (caminar).
– Fly (volar).
– Animation Motion Path (Animación por recorrido en movimiento).

En este tutorial estudiaremos la opción de Walk and Fly. Para ello, repetiremos el ejercicio del Tutorial 09 donde realizaremos la misma composición de objetos y aplicaremos materiales e iluminación. El resultado de estas operaciones debe ser algo similar a la imagen de abajo:

acad_animacion02

Ahora animaremos mediante la opción Walk. Como su nombre lo indica, Walk emulará el acto de “caminar” y para que funcione bien debemos estar siempre en vista perspectiva (si lo tenemos en isométrica el programa nos pedirá cambiar al modo perspective) y en la barra de comandos lo escribimos como 3dwalk. Si lo invocamos nos aparecerá el siguiente cuadro:

acad_animacion03

En este caso el punto rojo será la cámara desde la cual enfocamos la composición mientras que el punto verde será el target u objetivo de esta. Si nos colocamos en cualquiera de los dos puntos, realizamos click con el mouse y mantenemos el botón presionado, podremos ir moviendo la cámara y/o el target en el plano XY para encuadrar nuestra composición y si hacemos lo mismo pero en el medio del cono de target, podremos mover todo el conjunto. Si giramos la rueda del mouse haremos Zoom. Además tendremos a nuestra disposición los siguientes indicadores:

Position Indicator Color: nos permite cambiar el color del punto de la cámara (por defecto es rojo).

Position Indicator Size: nos indica el tamaño de este punto (Small, Medium o Large). Por defecto está en la opción Small.

acad_animacion03b

En el ejemplo se ha modificado Position Indicator Color a amarillo y su Size a Large.

Position Indicator Blink: nos permite definir si queremos que el conjunto parpadee o no. Por defecto está apagado (Off).

Position Z: nos indica la altura en que está la cámara respecto al plano horizontal.

Target Indicator: nos permite definir si queremos que se vea el cono de Target o no.

Target Indicator Color: nos permite cambiar el color del punto del target de la cámara (por defecto es verde).

Position Z: nos indica la altura en que está el target de la cámara respecto al plano horizontal.

acad_animacion03c

En el ejemplo se ha modificado Target Indicator Color a magenta y las opciones Size Z a 200 y Target Z a 0, donde vemos cómo cambia la vista de cámara.

Preview Visual Style: podremos cambiar el estilo visual de los elementos del cuadro (por defecto es Realistic).

Ahora haremos lo siguiente: moveremos la cámara y el target de la forma en que indica la foto de abajo y daremos en ambas posiciones Z el valor de 10. El resultado es el siguiente:

acad_animacion03d

Para animar lo que debemos hacer es presionar el botón REC (el círculo de la imagen siguiente) que está en los controles de animación y que veremos una vez que estemos dentro de 3dwalk.

acad_animacion03e

Lo presionamos y luego moveremos la cámara hasta la posición que indica la foto de abajo:

acad_animacion03f

Notaremos que en los controles de animación están activados lo sbotones Play y Stop. Si presionamos Play veremos el resultado de la animación en el viewport y si presionamos el botón Stop, guardaremos la animación, la cual se guardará siempre en formato AVI. El resultado de nuestra animación es el siguiente:

Animación resultante con los parámetros de Walk and Fly por defecto. Tiempo: 13 segundos.

Como se puede ver, en este caso AutoCAD nos guarda la animación del movimiento que hicimos en un lapso de tiempo que el programa guarda por defecto y por ende no podremos establecer una cantidad de tiempo de forma personalizada, pero podremos cambiar las opciones en Walk and Fly Settings (comando walkflysettings):

acad_animacion03g

En este cuadro podremos elegir si queremos que el cuadro de Walk (o de Fly) se muestre o no, cambiar el tamaño de los pasos en DU (step size) o definir cuántos pasos daremos en un segundo (Steps per second). Modificando las últimas opciones podremos dar más o menos tiempo o avanzar más lento o rápido según la opción que elijamos:

La misma animación anterior pero se ha modificado el parámetro Step Size a 12 DU, donde notamos que el tiempo de animación es menor que el anterior y se avanza más rápido ya que el tamaño de cada paso es más grande. Tiempo: 8 segundos.

La misma animación de arriba pero esta vez se ha dejado el parámetro Step size en 6 y se ha modificado el parámetro Steps per second a 4, donde notamos que el tiempo de animación es la mitad de la anterior y se avanza mucho más rápido ya que se da el doble de pasos en un segundo. Tiempo: 6 segundos.

Si presionamos REC, movemos nuestra cámara y luego detenemos la grabación dejaremos grabado ese movimiento y luego podremos ejecutar los mismos pasos anteriores para así poder mover de forma indefinida tanto la cámara y/o el target hasta que literalmente “detengamos” el video mediante Stop. Esto lo podemos utilizar para, por ejemplo, ejecutar animaciones más largas o que incluyan movimientos alrededor del proyecto, sin embargo debemos tomar en cuenta que como el tiempo dependerá del ajuste de los pasos, nos puede dar una animación muy larga o muy demorosa en renderizar, sobre todo si tenemos la iluminación y los materiales aplicados:

acad_animacion04

acad_animacion04b

acad_animacion04c

acad_animacion04d

acad_animacion04e

Secuencia de animación realizada mediante Walk moviendo la cámara alrededor de los objetos, y su resultado se muestra abajo. Tiempo: 1:18.

Una cosa muy intereante de este tipo de animación es que al presionar REC podremos realizarla mediante el movimiento de las teclas de dirección y el mouse con los cuales podremos indicar que el vuelo o la caminata avancen, miren hacia abajo y/o arriba según queramos, de forma similar a un videojuego. Las funciones son:

Tecla arriba (o W): Avanzar.
Tecla Izquierda (o A): Izquierda.
Tecla abajo (o S): Retroceder.
Tecla Derecha (o D): Derecha.

Click en el botón primario del mouse, mantenerlo presionado y arrastrar: mover hacia cualquier dirección (si además presionamos shift podremos ir hacia adelante y atrás).

acad_animacion06b

Si vemos el cuadro de Position Locator notaremos que el recorrido que vayamos realizando aparece en color rojo:

acad_animacion06

Animación resultante del recorrido anterior, usando las teclas de dirección y el mouse:

Ahora bien, si queremos guardar nuestra animación simplemente presionaremos el ícono de STOP y allí nos aparecerá el cuadro siguiente:

acad_animacion05

Aquí podremos dar un nombre a nuestro video y la ruta donde queremos colocar este en nuestro PC. Si clickeamos en la opción Animation Settings accederemos al cuadro de configuración de la animación:

acad_animacion05b

En este podremos determinar el estilo visual que queremos ver el video, el tamaño de resolución (por defecto es 320 x 240), el formato de video donde podremos elegir entre AVI, MPG, MOV y WMV y finalmente el FrameRate o formato de cuadros por segundo donde estableceremos la norma en que trabajaremos (por defecto es NTSC). Una vez definidos estos parámetros damos OK y se nos creará la animación previa.

Como se dijo antes, debemos tomar en cuenta que si queremos realizar la animación con la Iluminación y GI de AutoCAD lo debemos haremos mediante el comando Anipath ya que Walk and Fly sólo nos permite realizar una vista previa de la animación.

Para el caso de Fly el concepto es el mismo, pero con la diferencia que podremos movernos en todos los planos (Walk permite movernos sólo en el plano XY).

Este es el fin del Tutorial 10 parte 1.