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

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

1) El formato de salida del renderizado final.

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

3) El tiempo total de renderizado.

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

Formatos de Salida

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

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

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

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

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

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

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

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

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

Algunos de estos formatos pueden verse en la imagen siguiente:

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

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

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

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

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

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

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

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

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

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

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

– 320 x 240 píxeles (borrador).

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

– 720 x 486 píxeles (DVD).

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

– 1280 x 720 píxeles (HD).

– 1920 x 1080 píxeles (HD).

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

 

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

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

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

– 72 DPI (periódico, Internet).

– 150 DPI (Formato A2 y calidad media).

– 300 DPI (Calidad Óptima).

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

Tiempo de renderizado

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

Animaciones previas o de prueba:

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

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

Animaciones finales:

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

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

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

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

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

Representando la animación en 3DSMAX

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

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

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

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

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

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

Time Output

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

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

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

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

Area to Render

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

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

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

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

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

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

Output Size

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Este es el fin de este tutorial.

Bibliografía utilizada:

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

– 3DSMAX User Guide reference.

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

 

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

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

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

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

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

Constraints o Restrictores de animación

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

En total tenemos siete tipos de constraints los cuales son:

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

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

5) Link Constraint

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

6) LookAt Constraint

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

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

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

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

Aplicación de Keep Initial Offset.

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

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

En el ejemplo, la longitud de Viewline es 70.

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

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

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

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

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

7) Orientation Constraint

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

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

a) Animación de celosías

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

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

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

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

Rotación en el eje X.

Rotación en el eje Z.

Rotación en el eje Y.

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

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

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

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

b) Animación de dirección de ruedas

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

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

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

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

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

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

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

Este es el final de este tutorial.

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

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

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

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

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

Constraints o Restrictores de animación

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

En total tenemos siete tipos de constraints los cuales son:

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

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

1) Attachment Constraint

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

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

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

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

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

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

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

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

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

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

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

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

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

Otras opciones de la tabla Attachment Parameters son:

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

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

Align to Surface activado.

Align to Surface desactivado.

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

Manual Update activado.

Manual Update desactivado.

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

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

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

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

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

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

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

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

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

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

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

Testeando la animación final en el cuadro 50.

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

2) Surface Constraint

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3) Path Constraint

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

4) Position Constraint

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

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

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

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

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

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

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

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

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

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

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

Este es el final de este tutorial.

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

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

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

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

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

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

Constraints o Restrictores de animación

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

En total tenemos siete tipos de constraints los cuales son:

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

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

Path Constraint

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

Ejemplos de diferentes tipos de recorridos o Paths.

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

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

a) Animación de recorrido normal

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

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

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

Recorrido del avión en la vista Top.

Recorrido del avión en la vista Front.

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

El panel de animación o Motion Panel

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Otras funciones del panel Path Parameters son las siguientes:

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

El avión del ejercicio sin Bank  activado.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Vinculando la cámara al primer recorrido.

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

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

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

Este es el fin de este tutorial.

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

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

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

Jerarquías en 3DSMAX

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

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

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

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

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

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

Realización de la jerarquía.

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

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

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

Realización de la jerarquía.

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

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

Este último ejemplo puede apreciarse en la imagen siguiente:

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

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

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

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

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

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

El ayudante Dummy

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Hierarchy

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Schematic View abierto.

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

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

Este es el fin de este tutorial.

3DSMAX Tutorial 11: motor ART Render, Introducción y configuración

En el mundo real, la iluminación afecta nuestras vidas desde ángulos muy variados: permite distinguir siluetas y formas, afecta nuestros estados de ánimo (por ejemplo, las luces de una discoteca), nos alerta sobre peligros u otras indicaciones (semáforo, sirenas, etc.), nos entretiene, etc. Existen muchas fuentes de luz natural y artificial que nos generan muchas variables de iluminación. Intentar emular esas variables en un espacio 3D es el objetivo de las herramientas de iluminación en 3DSMAX. El programa basa a su representación de la iluminación en el ángulo que inciden los rayos en las caras de los objetos. Si este ángulo es perpendicular la iluminación es máxima, en ángulos menores esta irá decreciendo hasta desaparecer cuando los rayos queden tangentes a la superficie.

En este tutorial nos introduciremos al motor de render que viene por defecto en 3DSMAX 2017, y se trata nada más ni nada menos que del motor llamado ART Render (Advanced RayTrace Render). Estudiaremos la configuración global de este y su integración con la nueva cámara llamada Physical Camera.

Para este tutorial usaremos un archivo base ya descargado desde otra web: descargar archivo base.

Preparando la escena

Una de las cosas más interesantes del nuevo motor ART Render es que nos permite lograr resultados bastante aceptables sin necesidad de realizar tantas configuraciones como ocurre, por ejemplo, con Mental Ray. Al igual como sucede con otros motores de render, ART Render trae sus propios materiales llamados Physical Material y además incorpora una nueva cámara llamada Physical camera. Ambos serán tratados en profundidad en un siguiente tutorial. Para analizar los parámetros de este motor de render prepararemos una escena básica y sin aplicar materiales de tipo Physical sino que sólo con colores base. En nuestro caso la escena es la siguiente:

En este caso tenemos un bloque de 3DSMAX con un plano base y le hemos aplicado una cámara llamada Physical camera. Esta cámara es la que agrega por defecto 3DMAX 2017 cuando la colocamos mediante CRTL+C, y es parte importante de este motor de render ya que este tipo de cámara incorpora un “exposure control” propio para así poder diferenciar el render de la vista de la cámara del de otras perspectivas o del envolvente completo, las cuales utilizarán el valor EV de la exposición global o Exposure global.

Configurando el motor de render mediante ART Render Setup

Para configurar el motor de render debemos ir al icono de Render Setup, el cual tiene un diseño algo diferente respecto a las versiones anteriores de 3DSMAX. En esta opción llegamos al menú de render y configuración donde ya notamos que el motor de render por defecto es ART Render, y el diseño del panel es mucho más sencillo de manejar.

Ya en Render Setup, nos vamos a la persiana Renderer para visualizar la opción ART Renderer y así acceder a los parámetros de este motor de render:

Como se ve en la imagen, y a diferencia de otros motores de render como Mental Ray, el panel de configuración de ART Render es mucho más sencillo ya que no requiere de configuraciones excesivas ni detalles tan elaborados para lograr un buen resultado. Este motor es similar al que viene en AutoCAD 2016 ya que también podremos configurar el render según calidad, tiempo o cantidad de iteraciones (levels). Entre sus parámetros más importantes se destacan:

Render Quality: esta opción nos permite definir la calidad del render mediante valores expresados en dB (Noise Level o nivel de ruido), lo cual implicará que a mayor cantidad de dB mejor calidad del render pero también más tiempo de renderizado.

Si renderizamos la escena anterior mediante F9, notaremos que el motor ya incluye la iluminación global y además el render tendrá mayor o menor ruido o granizado (noise) dependiendo de la calidad en que hayamos renderizado. Si elegimos Min (1 dB) el nivel de ruido en el render será el máximo mientras que en Max (100 dB) tendremos prácticamente “0” nivel de ruido, pero el tiempo de render aumenta de forma muy considerable.

Renderizado en calidad Min, 1 dB.

Renderizado en calidad Draft, 20 dB.

Renderizado en calidad Medium, 28 dB.

Renderizado en calidad High, 33 dB.

Renderizado en calidad X-High, 55 dB.

Stop rendering ever quality is not attained (detener el renderizado siempre que la calidad no sea lograda): al igual que en AutoCAD, esta opción nos permite además de definir la calidad de render, el tiempo o la cantidad de iteraciones (o levels) que queremos que este se realice. Podremos activar estas opciones si es que el render se demora demasiado (como al renderizarlo en calidad Max) o si no queremos la calidad por defecto que establecimos previamente en Render Quality.

Lightning and material Fidelity (fidelidad de la iluminación y materiales): esta opción controla la técnica utilizada para renderizar la imagen. Por defecto nos aparece la opción Fast Path Tracing que nos dará renders relativamente rápidos y optimizará la iluminación indirecta para minimizar el ruido (noise) aunque comprometen la iluminación y la fidelidad del sombreado, y la opción Advanced Path Tracing es la que nos da los mejores resultados y calidad ya que la fidelidad es muy alta, aunque el tiempo de render aumentará.

Render en calidad High, realizado mediante Fast Path Tracing.

Render en calidad High, realizado mediante Advanced Path Tracing.

Noise Filtering (filtrado de ruido): esta opción nos permite filtrar en porcentaje el ruido o granizado del render, no importando el tipo de calidad de este. Podemos elegir desde el 0% o Unfiltered (sin filtro) hasta la calidad 100% o Fully filtered (totalmente filtrado).

Evidentemente, mientras más se filtre el ruido y/o la calidad sea mejor, el tiempo de render aumentará.

Render realizado en calidad medium, con 0% o Unfiltered.

Render realizado en calidad medium, con 50% de Noise Filtering.

Render realizado en calidad medium, con 100% o Fully filtered.

Anti-Aliasing: nos permite ajustar el antialiasing o eliminar los “dientes de sierra” de los bordes de un modelo o de un render. En este caso al mínimo de píxeles que podemos configurar es 1,0 y conforme lo vayamos aumentando, la imagen sufrirá un “blur” o desenfoque debido al efecto propio del antialisado. El valor por defecto es 3.

Render realizado en calidad medium, con 1 píxel de antialiasing.

Render realizado en calidad medium, con 3 píxeles de antialiasing (valor por defecto).

Render realizado en calidad medium, con 10 píxeles de antialiasing.

Si bien este motor de render ya cuenta con la iluminación global aplicada, los aspectos más importantes de edición de esta (como zona geográfica o el Norte) no pueden ser modificados a primera vista. Para esto debemos configurarla mediante un nuevo parámetro de luz llamado Sun Positioner.

Configurando la iluminación global en ART Render

Para configurar la iluminación global en ART Render necesitaremos colocar una nueva luz solar llamada Sun Positioner. Este posicionador de Sol nos permitirá editar parámetros como la zona geográfica, lugar, tiempo y girar el Norte geográfico si es necesario. Para colocarla en la escena, nos vamos a la vista Top y en el panel de “añadir elementos” vamos al icono de luces y elegimos la persiana Photometric:

Una vez aquí elegiremos la opción Sun Positioner y la insertaremos de forma similar a Daylight de Mental Ray, es decir: clickeamos en el origen para definir el target de la luz, luego giramos con el mouse para definir el norte y mediante click y el movimiento de este, definir la altura orbital. En nuestra escena, insertaremos la luz en la vista Top:

Definiendo la luz Sun Positioner en la escena.

Al igual que en el caso de Mental Ray, sólo debemos colocar una luz en toda la escena. Debemos tener cuidado al seleccionarla puesto que no nos servirá tomarla por el “Sol”, sino que este tipo de luz deberá seleccionarse exclusivamente tomando el compass rose o la rosa de los vientos:

Selección de la luz Sun Positioner mediante el compass rose o rosa los vientos.

Si tomamos el compass rose y luego nos vamos al panel de modificar, encontraremos los siguientes parámetros:

Display: en este menú podemos elegir si queremos que se muestre la rosa de los vientos o no (show), ademas podremos definir el radio de esta y lo más importante: podremos girar el Norte geográfico mediante la opción North Offset. También podremos definir la distancia del sol al terreno (altura orbital) mediante Sun Distance.

Sun Position: al igual que en el caso de Daylight de Mental Ray, en esta opción podremos definir los parámetros generales de la iluminación como la fecha, el tiempo y la locación donde queremos que se aplique la iluminación del sol. Las opciones son:

Date, Time and Location: permite definir parámetros de tiempo, lugar y zona geográfica. Podremos definir la fecha mediante day, month y year además de las horas mediante el parámetro time. Lo interesante de esta opción es que podremos definir el lugar geográfico de manera similar a Mental Ray ya que si hacemos click en el lugar por defecto (San Francisco, CA) dentro del parámetro, podremos cambiarlo a otra zona geográfica y el Norte junto a la trayectoria solar se ajustarán.

Weather data File: esta opción nos permite cargar archivos especiales de lugar y tiempo llamados “EnergyPlus Weather Data File” cuya extensión es EPW, y que se usan principalmente en simulaciones climáticas con programas especiales como Energy plus o también Ecotect. Algunos de estos archivos pueden descargarse en https://energyplus.net/weather.

Inserción de un archivo EPW en la escena.

Manual: permite mover el Sol de forma manual ajustando los parámetros de Azimut y Altitude (Altitud), ya que no podemos mover el Sol de forma directa.

Moviendo el Sol de forma manual mediante los parámetros de Azimut y Altitude.

Si renderizamos la escena una vez insertado el Sun Positioner, el resultado será el siguiente:

Como vemos, la imagen es prácticamente blanca y por ende no muestra el resultado. Esto ocurre simplemente porque no hemos ajustado el parámetro de Exposure Control y además el valor de EV (Exposure Value) es muy bajo. Para ajustarlo, debemos ir a Rendering >>> Exposure control:

Estando ya en Exposure Control notaremos que al agregar el Sun Positioner, tendremos un nuevo tipo de Exposure control llamado Physical Camera Exposure Control, y que en el mapa de cielo se nos agrega uno nuevo llamado Physical Sun & Sky Environtment (mapa de cielo de Sun Positioner). Si bajamos un poco la persiana encontraremos un parámetro llamado Global Exposure donde notamos que efectivamente el valor de EV es 6, el cual es bajo para una escena exterior como en este caso.

En nuestra escena, si ajustamos el valor de EV de Global Exposure a 15 y realizamos un render, el resultado cambia de forma notable ya que logramos ver el modelo sin problemas:

Ajuste de valor a EV=15 y render resultante.

En el caso que tengamos una escena interior con luces, el valor de EV se debe ajustar a esas condiciones específicas (mediante valores bajos) de manera similar a Mental Ray. Volviendo a la escena en sí, además de Exposure Value tenemos otro parámetro muy importante llamado White Balance o balance de blancos, el cual nos permite ajustar la escena a los tipos de iluminación más comunes mediante tipos de lámparas o también un color específico. Las tres opciones que tenemos disponibles son:

Iluminant: esta opción nos permite elegir muchos tipos de iluminaciones ya configuradas como Daylight (por defecto), halógenos, flourescentes, lámparas de sodio, etc.

Render realizado con Daylight.

Render realizado con Sunlight.

Render realizado con Shade.

Render realizado con Halogen.

Render realizado con Low Pressure Sodium.

Temperature: ilumina la escena tomando en cuenta los grados K° (Kelvin). En valores menores los tonos serán cálidos y en valores mayores serán fríos, aunque en ete caso puntual tendremos variaciones de tonos según la cantidad de K° especificados. El valor de K° por defecto es 6400.

Render realizado con 100 K°.

Render realizado con 1.000 K°.

Render realizado con 3.000 K°.

Render realizado con 6.000 K°.

Render realizado con 10.000 K°.

Render realizado con 20.000 K°.

Custom: permite elegir un color para la iluminación y el balance. Esto afectará el entorno global de la escena.

Configuración y render resultante aplicando el color celeste.

Configuración y render resultante aplicando el color verde olivo.

Exposure Control y Physical Camera

Una de las ventajas interesantes de ART Render es que si tenemos colocada una cámara de tipo Physical Camera (por defecto en 3DSMAX 2017) podremos utilizar los parámetros de EV de esta ya que como se enunció antes, este tipo de cámara viene con su propio Exposure Control. Si seleccionamos la cámara y nos vamos al panel de modificar, encontraremos el siguiente menú:

En este menú tendremos las mismas opciones del cuadro Exposure Control de Rendering. Podemos modificar el valor de EV en Exposure Gain mediante la opción Target o hacerlo mediante la opción Manual, aunque en este último el valor estará dado en unidades ISO.

Además de lo anterior, también tendremos la opción White Balance ya explicada anteriormente. Lo interesante de esto es que si alteramos el valor de EV de la cámara, este afectará a la vista que esté afecta a la cámara en sí y no al resto de la iluminación global, por ende los parámetros que configuremos en esta sólo afectará al el render de la vista en sí y no a todo el proyecto completo.

Si queremos que los parámetros configurados en la Physical Camera se apliquen sólo a la vista de esta, debemos ir nuevamente a Rendering >>> Exposure Control y una vez allí activaremos la casilla Use Physical Controls if Available. Con esta opción los parámetros que se aplicarán en la vista serán los de la cámara y no los de GE (Global Exposure), siempre y cuando la Viewport a renderizar esté en la vista de la cámara:

Exposure Control con el parámetro Use Physical Camera If Available desactivado. En este ejemplo, en toda la escena prima el valor de EV de Global Exposure y el valor de este es 11.

Render del ejemplo anterior.

El mismo ejemplo anterior pero esta vez con el parámetro Use Physical Camera If Available activado. En este caso, en toda la escena prima el valor de EV de la vista de Physical Camera y el valor de EV de esta es 15 en lugar de 11.

Render del ejemplo anterior.

Si renderizamos una vista distinta de la cámara o una cámara que no sea Physical, notaremos que el valor de EV que prima es el de Global Exposure, ya que el valor de EV de Physical Camera sólo Afecta a la vista de esta y no al proyecto completo.

El mismo ejemplo anterior, con el parámetro Use Physical Camera If Available activado pero esta vez enfocado en una vista distinta de la Physical Camera. En este caso, en toda la escena prima el valor de EV de Global Exposure y en el ejemplo, el valor de EV de este es 11.

Render del ejemplo anterior.

Si agregamos una segunda o más cámaras de tipo Physical, podremos controlar el valor de EV de cada una de estas y renderizarlas de forma independiente según cada vista.

El mismo ejemplo anterior con el parámetro Use Physical Camera If Available activado pero esta vez se ha agregado una segunda Physical Camera. En este caso, el valor de EV de esta cámara es 13. La primera cámara mantiene sus mismos parámetros originales.

Render del ejemplo anterior.

Render de la vista superior del ejemplo anterior. En este caso la vista no está afecta por una Physical Camera ya que es una Perspectiva, y por ello este render toma el valor de EV de Global Exposure el cual es 11.

Este es el fin de este tutorial.

3DSMAX Tutorial 08b: mr Portal Sky (iluminación interior con Mental Ray)

En el mundo real, la iluminación afecta nuestras vidas desde ángulos muy variados: permite distinguir siluetas y formas, afecta nuestros estados de ánimo (por ejemplo, las luces de una discoteca), nos alerta sobre peligros u otras indicaciones (semáforo, sirenas, etc.), nos entretiene, etc. Existen muchas fuentes de luz natural y artificial que nos generan muchas variables de iluminación. Intentar emular esas variables en un espacio 3D es el objetivo de las herramientas de iluminación en 3DSMAX. El programa basa a su representación de la iluminación en el ángulo que inciden los rayos en las caras de los objetos. Si este ángulo es perpendicular la iluminación es máxima, en ángulos menores esta irá decreciendo hasta desaparecer cuando los rayos queden tangentes a la superficie.

En este tutorial veremos la forma más sencilla para iluminar un espacio interior utilizando el motor de render denominado Mental ray, que viene junto a 3DSMAX.

Preparando la escena

Para lograr una adecuada iluminación interior en cualquier motor de render se requiere de varios procedimientos o pasos previos ya que al contrario de lo que se cree, iluminar un interior en 3D no es sólo colocar una o más ampolletas sino que además requeriremos de varias luces auxiliares que iluminarán las zonas no visibles u oscuras, y en algunos casos se requerirá la utilización de algunas luces especiales exclusivas del motor de render.

Un sistema de iluminación básico de un objeto se compone de lo siguiente:

– Una luz principal que proyecta la sombra e ilumina el objeto completo (puede ser una luz artificial o la luz del Sol), con una intensidad moderada-alta y sombras activadas.

– Dos luces denominadas “de relleno” que se colocan en la parte trasera del objeto (usualmente una en cada lado), que tienen por función iluminar las zonas oscuras de este. Estas luces tienen mucho menos intensidad y tienen desactivadas las sombras.

Esto se puede ejemplificar claramente en el siguiente esquema:

imuminacionmr_esquema00

imuminacionmr_esquema

Planta y vista de cámara de un esquela básico de luces. La luz omni amarilla corresponde a la luz principal (de intensidad 1) que proyecta la sombra y en verde, las omni utilizadas para cubrir las zonas oscuras (de intensidad 0,4, de relleno). Abajo, el render generado por este sistema.

imuminacionmr_esquemarender

En este caso el sistema básico puede funcionar bien en escenas exteriores aunque por ser precisamente “básico”, debemos mejorarla agregando el rebote de luz o GI y cambiando la luz principal por un sistema de iluminación solar más preciso como Daylight. Sin embargo, para el caso de las escenas interiores y sobre todo si renderizamos con el motor de render Mental Ray, nuestra iluminación deberá considerar los siguientes pasos:

– Colocar un sistema de iluminación solar (Sunlight o Daylight).
– Asignar un fondo de “cielo” mediante una imagen bitmap o utilizar el mapa mr Physical Sky.
– Agregar la Iluminación Global o GI (Photon Mapping).
– Agregar la o las luces fotométricas requeridas por el espacio interno o nocturno.
– Agregar luces auxiliares sin sombras, para iluminar zonas oscuras o no iluminadas por las luces principales.
– Emular la luz de los vanos mediante la luz llamada mr Sky Portal.
– Agregar efectos como volume Light (optativo).
– Controlar la claridad y el control de exposición de nuestro render mediante la opción Exposure control.
– Controlar parámetros de render, como Diffuse bounces y Noise reduction. También se debe ajustar la calidad de la imagen.

Para este tutorial utilizaremos una escena básica de un espacio interior sencillo, y puede ser descargada en el siguiente enlace:

Descargar archivo base para el tutorial (3DSMAX 2015)

Ahora abrimos 3DSMAX y configuramos el motor de render en Mental Ray. Abrimos el archivo de la escena en el programa y tenemos lo siguiente:

imuminacionmr_00

En este caso tenemos una espacio sin materiales aplicados. Lo primero que haremos será insertar el sistema Daylight desde el ícono Systems del panel de creación. Es importante colocar el valor de EV en 15 tal como nos indica el Daylight al ser insertado en la escena (clickeando en la opción “Yes”):

imuminacionmr_00b

Al dibujar el Daylight, intentaremos dejar el compass (puntos cardinales) más o menos en el centro de la habitación para que la iluminación sea más precisa. Luego de hacerlo, vamos a motion y configuramos los parámetros de fecha, lugar y hora de acuerdo a la imagen del lado. En este caso dejaremos como zona geográfica Santiago de Chile, la hora será las 10:00 am, el mes será el 6 (Junio) y North direction estará en 270. Un aspecto importante a considerar es que si tenemos el 3DSMAX Design este automáticamente nos preguntará si queremos asignar el cielo especial para mental Ray llamado “Mr Physical sky”, pero si tenemos el 3DSMAX normal debemos configurarlo mediante el panel de modificar del sistema Daylight.

Para esto seleccionamos la luz Daylight y en el panel modificar cambiaremos la opción de Sunlight (luz de Sol) por mr Sun y en Skylight (luz de cielo) por mr Sky. Al elegir esta última opción, el programa nos dará la opción de asignar el cielo mr Physical Sky y evidentemente elegiremos la opción “yes”.

imuminacionmr_00d

Aceptamos y luego realizaremos un render para ver el resultado:

imuminacionmr_02

En este caso la imagen no tiene GI aplicado ni tampoco se han configurado otras opciones, por lo tanto ahora agregaremos el GI desde Render Setup >> Indirect Ilumination >> Enable Gobal Ilumination (GI) o Photon Mapping (GI).

imuminacionmr_19

Si realizamos un render nuevamente, el resultado es el siguiente:

imuminacionmr_03

Como vemos la escena está demasiado saturada de luz y por ello no es realista. Para mejorar el render iremos a Rendering >>> Exposure Control y ajustaremos los valores de exposure control. Elegiremos la opción mr Photographic Exposure Control:

imuminacionmr_03b

Ahora ajustaremos los valores de EV (Exposure Value). En el caso de iluminaciones con Mental Ray, los valores recomendados son:

Para escenas exteriores: 15 o 16.
Para escenas interiores: 10 a 12.
Para iluminación nocturna: 2 a 6, dependiendo de la iluminación aplicada. Se recomienda dejar Daylight en una hora nocturna en lugar de apagarlo o removerlo y si hacemos lo último, podremos colocar una luz Skylight (de tipo standard) y activando el mapa mr Physical Sky.

Tip: los valores de EV también pueden no ser cerrados, es decir, podremos asignar valores como 11.5, 10.34, etc.

Para nuestro ejemplo colocamos el valor de EV=15 y realizamos un render:

imuminacionmr_04

Notamos que nuestro render es demasiado oscuro ya que como vimos antes, este valor se recomienda para escenas exteriores. Para nuestro ejemplo, colocamos el valor de EV=11 y realizamos un render:

imuminacionmr_05

Nuestro render está mucho mejor y ya tiene una apariencia más realista. El siguiente paso es colocar luces artificiales que serán las que lleva nuestro espacio por defecto. En la vista top, colocaremos una luz photometric de tipo free en el plafón y luego realizamos un render:

imuminacionmr_06

Tip: se recomienda insertar las Free Lights en la vista Top, ya que por defecto apuntarán hacia abajo. Si luego se quiere especificar un target activamos la opción Targeted.

Evidentemente el plafón no tiene material aplicado pero esto lo resolveremos más tarde. Para el resto de las lámparas, estas serán de tipo Photometric y serán spotlights pero invertidas hacia arriba y ajustando los parámetros de HotSpot y Falloff.

imuminacionmr_06b

En este caso, las copias de las tres luces deberán ser de tipo instance. Realizamos el Render para ver el resultado:

imuminacionmr_07

Ahora colocamos la luz del apliqué la cual deberá ser similar a las anteriores, pero en este caso es una copia de las luces de la lámpara. realizamos un render para ver el resultado:

imuminacionmr_08

En este caso ya tenemos la iluminación artificial aplicada pero puede que tenga demasiada intensidad de luz. Podremos ajustar esto simplemente modificando la cantidad de Cd (candelas) junto con varias los parámetros de EV y hacer pruebas de render hasta conseguir un resultado adecuado, aunque dependerá de qué tipo de iluminación estemos realizando. Debemos recordar que los valores en candelas son reales y dependerán del tipo de lámparas o ampolletas utilizadas en la iluminación de los espacios. Los valores más comunes en Candelas para las luces más conocidas son:

Vela o bujía: 1 Cd.
LED de potencia:  90 Cd.
Lámpara incandescente 40 W: 40 Cd.
Lámpara incandescente 100 W: 130 Cd.
Lámpara fluorescente 40 W: 200 Cd.

En nuestro ejemplo ocuparemos los valores dados en los templates de la luz fotométrica pero NO ocuparemos el template mismo pues estos cambiarán el tipo de luz. Los valores a utilizar son:

– Plafón de cielo: 140 Cd (100W),
– Lámparas: 70 Cd (60 W)
– Apliqué lateral: 95 Cd (75 W).

Al realizar el render el resultado es el siguiente:

imuminacionmr_09

En este caso las luces artificiales son mucho menos notorias que al principio ya que las candelas son valores reales de iluminación y además debemos recordar que en el caso de la iluminación diurna, la luz natural siempre predominará por sobre la artificial. Si queremos ajustar la iluminación a Nocturna por ejemplo, debemos dejar el Daylight a una hora que sea de noche (20:00 hrs en adelante) y además bajar los valores de EV para conseguir un resultado óptimo:

imuminacionmr_08b

El mismo render anterior pero esta vez se ha asignado el valor de EV=5 y la hora de Daylight es 22:00 hrs.

Volviendo a nuestra escena, a pesar de que esta está iluminada mediante luz natural y artificial, notamos que hay zonas que están un poco oscuras. Podemos mejorar esas zonas aplicando luces auxiliares que resaltarán estas sin afectar a la composición general. Lo importante es que estas luces tengan una distribución de tipo uniform diffuse para no sobreiluminar el resto de los elementos, y que por supuesto tengan una menor intensidad de Cd.

imuminacionmr_10b

En el ejemplo se ha considerado una luz con un emit from shape de tipo rectangle y con una intensidad de 70 Cd para la zona detrás del sillón, y abajo el render resultante:

imuminacionmr_09

Render original.

imuminacionmr_10

Render con luz de relleno detrás del sillón.

Es importante destacar además que este tipo de luces tiene desactivada la opción shadows ya que al ser de “relleno”, no nos interesa que proyecten sombras.

Luz mr sky Portal

Si realizamos el render notaremos que la luz de los vanos no es emulada de forma correcta ya que en la realidad, al entrar la luz a través de estos tienden a formar zonas iluminadas en los cielos y en los lados adyacentes a estos. Para resolver este problema agregaremos un tipo de luz exclusivo de Mental Ray: se trata de mr Sky Portal. Este es un tipo de luz de área que al ser colocado en los vanos, emula el efecto de la luz que se producen en estos.

imuminacionmr_18a

Para colocar la mr Sky Portal, la dibujaremos de la misma forma que un rectángulo y de preferencia en las vistas donde sean visibles los vanos (Left o Right) ya que lo que debemos tener en cuenta es que las medidas del rectángulo de esta luz deben ser similares a las del vano y también debemos considerar que se deben colocar de lo más cerca posible de la abertura. Otra cosa que notaremos en mr Sky Portal es que en su centro existe una flecha la cual nos indicará hacia dónde se generará el efecto, la cual siempre deberá apuntar hacia el interior del espacio.

imuminacionmr_11

imuminacionmr_11b

Realizamos un render para ver el resultado. En este caso se compara el render original versus el nuevo render con mr Sky Portal aplicado:

imuminacionmr_10

Render original.

imuminacionmr_12

Render con mr Sky Portal en el vano de la ventana.

Si tomamos nuestro mr Sky Portal y nos vamos al panel modificar, encontraremos los siguientes parámetros:

mr Skylight Portal Parameters:

imuminacionmr_18ab

On Multiplier: determina la intensidad de la luz del portal. Su valor por defecto es 1.

imuminacionmr_12b

El render anterior pero con parámetro On multiplier en 10.

Filter Color: es el color de filtro del portal. Podemos cambiarlo clickeando el color por defecto (blanco).

imuminacionmr_13

El render anterior con On Multiplier en 1, pero con Filter Color en amarillo.

imuminacionmr_13b

El render anterior con On Multiplier en 1, pero con Filter Color en rojo.

imuminacionmr_13c

El render anterior con On Multiplier en 1, pero con Filter Color en verde.

Shadows On: activa o desactiva la proyección de sombras. Por defecto sólo las arroja en los objetos que están en el sentido de la flecha.

imuminacionmr_12

Render original.

imuminacionmr_14

El render anterior pero con sombras desactivadas (shadows off).

From “Outdoors”: cuando está activado este además arroja sombras en los objetos fuera del portal; es decir, en el lado contrario al que apunta el ícono de la flecha. Está desactivado por defecto, debido a que encenderlo puede aumentar significativamente los tiempos de render.

Shadow Samples: determina la calidad general de las sombras proyectadas por el portal. Si la imagen renderizada aparece granulada, se debe aumentar este valor (aunque aumentará también el tiempo de render).

imuminacionmr_12

Render original con Shadow samples en 16.

imuminacionmr_14c

Render con Shadow samples en 256.

Dimensions: determina el largo (Lenght) y ancho (Width) del rectángulo del portal. En este caso la idea es que sea lo más parecido posible a la dimensión original del vano.

imuminacionmr_20c

Flip Light Flux Direction: determina la dirección en la que fluye la luz a través del portal. El icono de la flecha siempre debe apuntar hacia el interior para que el portal pueda emitir luz desde el cielo o el medio ambiente. Si la flecha apunta hacia afuera, se debe activar esta configuración para invertirla ya que provocará errores en la iluminación.

imuminacionmr_20

imuminacionmr_20b

Advanced parameters:

imuminacionmr_18ab1

Visible to Renderer: al activarlo, el portal será visible en el render. Si se activa esta opción evitaremos que los objetos que están fuera de la ventana aparezcan en nuestra escena.

imuminacionmr_15

Render original en el cual se ha agregado un cilindro afuera del espacio.

imuminacionmr_15b

Render con la opción visible to render activada, que hace que no se vea el cilindro.

Transparency: filtra la vista fuera de la ventana. El cambio de este color no cambia la luz que entra pero tiene el efecto de oscurecimiento de los objetos externos, que puede ayudar si están sobre expuestos.

imuminacionmr_15c

Render con Transparency color en amarillo.

imuminacionmr_15d

Render con Transparency color en rojo.

Color Source Group: establece la fuente de la luz a partir del cual el mr Sky Portal deriva su iluminación. En este parámetro tenemos 3 opciones que son:

Use Existing Skylight: utiliza la Skylight. Por defecto, mr Sky Light usa el mapa de entorno llamado mr Physical Sky en sus valores predeterminados y este tiende a dar una iluminación azulada, como la luz de cielo en el mundo real.

Use Scene Environment: utiliza el mapa de entorno (environment map) para el color de la iluminación. Se debe usar esta opción si environment map y skylight son de diferentes colores, y se desea utilizar este último para la iluminación interior.

Custom: permite utilizar un mapa personalizado o una textura para la coloración de iluminación.

Es importante que agreguemos mr Sky Portal en CADA UNO de los vanos que queremos que se aplique el efecto, por lo tanto podremos dibujar una de estas luces para después copiarla (como copy o instance) para luego colocarla y editarla en el resto de los vanos si es necesario.

imuminacionmr_17b

Aplicación de mr Sky Portal en un ejemplo concreto.

Ajustando el render mediante Final Gather

Una vez que tengamos los mr Sky colocados aplicaremos materiales. en el archivo del tutorial esto es fácil ya que estos ya vienen predefinidos al activar el editor de materiales (M), por ello es cosa de ver los nombres de estos y luego arrastrarlos a los elementos. Una vez terminada la materialización realizamos un render:

imuminacionmr_17

Nuestro render ya se ve de una manera más creíble y realista pero tendrá granos en la imagen. Podremos editar el render en cualquier momento modificando los materiales, las luces, los mr Sky Portals y las configuraciones en Exposure Control. También podremos mejorar nuestro render yendo a Indirect Ilumination >> final gathering y modificando los parámetros generales de Final Gather:

imuminacionmr_18

Los parámetros que podremos modificar son:

Enable Final Gather: activa la opción Final Gather la cual permite que la escena se ilumine debido a la luz directa y también al efecto del rebote de los rayos, mejorando la calidad de la solución de iluminación global o GI. Debemos tener cuidado con esta opción pues si tenemos uno o más mr Sky Portals colocados, GI activado y desactivamos Final Gather nos arrojará error en la iluminación de los mr Sky Portals.

imuminacionmr_20e

Render de la escena sin GI ni Final Gather, con un mr Sky Portal colocado.

imuminacionmr_20f

Render de la escena sin GI pero con Final Gather activado, con un mr Sky Portal colocado.

imuminacionmr_20d

Render de la escena con GI activado, mr Sky Portal colocado y Final Gather desactivado, mostrando un error en la iluminación del mr Sky Portal.

Multiplier: controla la intensidad de la luz de final Gather (por defecto es 1). Mientras más alto es el valor mayor es la iluminación dada por Final Gather.

imuminacionmr_20g

Render de la escena con Multiplier de Final Gather en 5.

FG Precision Presets: esta opción ajunta automáticamente los valores inferiores del cuadro, y permite configurar diversas calidades de render desde Draft (borrador) a Hery High (muy alta). A mayor calidad de Final Gather mayor será el tiempo de render. Si modificamos de forma arbitraria los valores, FG Precision Presets pasará al modo Custom.

imuminacionmr_21c

imuminacionmr_21a

Render de la escena en calidad Draft.

imuminacionmr_21d

imuminacionmr_21b

Render de la escena en calidad High.

Los parámetros inferiores de Final Gather que podemos editar son los siguientes:

Initial FG Point Density: se refiere a la densidad de la trama de puntos de medición de la luz del render (por defecto es 0,8). Un número mayor de puntos reducirá la cantidad de ruido (noise) de la imagen dándole a esta más detalle. Sin embargo en esta opción lo ideal es colocar valores menores a 10 pues valores mayores generarán mucho tiempo de render.
Rays per FG Point: al igual que en el parámetro anterior, a mayor cantidad de rayos por punto menos noise (ruido) y mayor detalle en la imagen final (por defecto es 250). Sin embargo, debemos tener cuidado con los valores que asignemos para no aumentar innecesariamente el tiempo de render. Los valores aconsejables para este parámetro son:
– Cuando sólo hay un punto de luz: de 100 a 500 rays (aunque se puede llegar a 1.000 o incluso 10.000).
– Si la escena tiene varios puntos de luz: 50 rays.
Interpolate Over Num. FG Points: esta opción hace que Final Gather coloque puntos en la escena que recojan información de la luz y la envíen a la cámara (por defecto es 30). Si subimos el valor disminuirá el ruido o noise. Interpolate se define como los pasos para llegar de un píxel a otro de la imagen. Por ende a mayor valor de interpolate, habrá mayor suavidad en la imagen. Debemos tener en cuenta que si aplicamos valores muy altos el suevizado será demasiado y por ende se perderá detalle (el efecto será similar al desenfoque o blur). Sin embargo, un mayor valor de interpolate Over Num. FG Points no aumenta el tiempo de render. Por ello se recomiendan valores menores a 200.
Diffuse Bounces: asigna el número de rebotes de luz difusa. Mientras tengamos valores más altos más se iluminará nuestra escena, como consecuencia de la luz indirecta. Los rebotes no afectrán al noise ni al suavizado, pero aumentan el tiempo de render.  Usualmente los valores de este están entre 2 y 5, sin embargo no se recomiendan valores mayores a 10.
Tip: si a pesar de aumentar el número de Diffuse Bounces seguimos necesitando aumentar el brillo de nuestra escena podemos hacerlo manejando los valores de EV en mr Photographic exposure Control.
También podemos ajustar el parámetro Noise Filtering a fin de reducir la cantidad de ruido y la granulometría que tenga el render, seleccionando las opciones High, Very High o Extremely High (aunque esto aumentará el tiempo de render).

imuminacionmr_18b

imuminacionmr_17c

El render anterior pero con Noise filtering en High.

Otro cambio que podemos hacer y que ayudará mucho a la calidad del render es ajustar la opción Image Precision (Antialiasing) al valor Min 1, Max 16 o superior, ya que esto hará que los granulos iniciales desaparezcan aunque evidentemente esto aumentará significativamente el tiempo de render. Esta opción puede ser modificada en los parámetros de la imagen que se ubican debajo de la imagen renderizada, tal como se muestra en la imagen:

imuminacionmr_19

O también en la persiana Render Setup >>> Renderer >>> Sampling Quality, donde modificaremos loa valores de Minimun y Maximum:

imuminacionmr_21e

imuminacionmr_19b

El render anterior pero con Shadow Samples de mr Sky Portal en 64 y Noise filtering en Standard. En este caso el valor de Image Precision es de Min 1, Max 16 y FG Bounces (Diffuse bounces) en 2.

A pesar de este tutorial es bueno recordar que la iluminación de escenas requiere muchísima práctica y sobre todo realizar muchas pruebas de iluminación y render, además que debemos tomar en cuenta la adecuada colocación de materiales en nuestra escena.

imuminacionmr_22

Render realizado con Image Precision (Antialiasing) en 1/16, FG Precision Presets en medium, con el valor de EV=11 y con el valor de multiplier de Photon Mapping (GI) en 2.

imuminacionmr_22b

Render realizado con Image Precision (Antialiasing) en 1/16, FG Precision Presets en medium y con el valor de EV=11, pero se han cambiado los materiales de las lámparas y el apliqué por un material standard, a excepción del material del plafón.

imuminacionmr_22c

El mismo render pero esta vez es de carácter nocturno, realizado con Image Precision (Antialiasing) en 1/16, FG Precision Presets en medium y con el valor de EV=5, se ha desactivado el fondo mr Physical Sky y la luz de relleno, además que se le ha cambiado el material de los marcos de la ventana.

Este es el fin de este tutorial.

Bibliografía utilizada:

Blog de Roberto Ortiz, tutoriales de Mental Ray y V-Ray.

http://robertortizrobertuz.blogspot.cl/2014/10/3ds-max-mental-ray-vray-varios-trucos-y.html