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

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

1) El formato de salida del renderizado final.

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

3) El tiempo total de renderizado.

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

Formatos de Salida

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

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

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

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

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

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

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

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

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

Algunos de estos formatos pueden verse en la imagen siguiente:

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

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

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

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

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

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

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

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

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

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

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

– 320 x 240 píxeles (borrador).

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

– 720 x 486 píxeles (DVD).

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

– 1280 x 720 píxeles (HD).

– 1920 x 1080 píxeles (HD).

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

 

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

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

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

– 72 DPI (periódico, Internet).

– 150 DPI (Formato A2 y calidad media).

– 300 DPI (Calidad Óptima).

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

Tiempo de renderizado

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

Animaciones previas o de prueba:

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

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

Animaciones finales:

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

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

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

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

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

Representando la animación en 3DSMAX

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

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

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

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

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

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

Time Output

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

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

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

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

Area to Render

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

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

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

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

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

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

Output Size

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Este es el fin de este tutorial.

Bibliografía utilizada:

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

– 3DSMAX User Guide reference.

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

 

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

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

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

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

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

Constraints o Restrictores de animación

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

En total tenemos siete tipos de constraints los cuales son:

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

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

5) Link Constraint

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

6) LookAt Constraint

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

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

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

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

Aplicación de Keep Initial Offset.

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

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

En el ejemplo, la longitud de Viewline es 70.

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

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

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

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

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

7) Orientation Constraint

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

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

a) Animación de celosías

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

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

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

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

Rotación en el eje X.

Rotación en el eje Z.

Rotación en el eje Y.

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

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

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

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

b) Animación de dirección de ruedas

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

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

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

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

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

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

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

Este es el final de este tutorial.

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

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

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

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

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

Constraints o Restrictores de animación

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

En total tenemos siete tipos de constraints los cuales son:

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

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

1) Attachment Constraint

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

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

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

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

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

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

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

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

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

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

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

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

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

Otras opciones de la tabla Attachment Parameters son:

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

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

Align to Surface activado.

Align to Surface desactivado.

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

Manual Update activado.

Manual Update desactivado.

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

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

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

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

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

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

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

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

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

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

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

Testeando la animación final en el cuadro 50.

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

2) Surface Constraint

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3) Path Constraint

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

4) Position Constraint

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

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

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

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

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

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

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

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

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

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

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

Este es el final de este tutorial.

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

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

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

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

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

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

Constraints o Restrictores de animación

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

En total tenemos siete tipos de constraints los cuales son:

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

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

Path Constraint

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

Ejemplos de diferentes tipos de recorridos o Paths.

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

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

a) Animación de recorrido normal

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

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

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

Recorrido del avión en la vista Top.

Recorrido del avión en la vista Front.

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

El panel de animación o Motion Panel

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Otras funciones del panel Path Parameters son las siguientes:

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

El avión del ejercicio sin Bank  activado.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Vinculando la cámara al primer recorrido.

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

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

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

Este es el fin de este tutorial.

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

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

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

Jerarquías en 3DSMAX

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

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

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

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

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

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

Realización de la jerarquía.

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

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

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

Realización de la jerarquía.

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

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

Este último ejemplo puede apreciarse en la imagen siguiente:

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

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

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

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

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

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

El ayudante Dummy

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Hierarchy

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Schematic View abierto.

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

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

Este es el fin de este tutorial.

AutoCAD 2D Tutorial 13: textos en AutoCAD parte 2, texto Multiline

En este nuevo tutorial de AutoCAD veremos una materia que extrañamente no se había publicado anteriormente en el blog, pero que resulta fundamental para el correcto dibujo de planimetrías en Arquitectura: se trata de los textos en AutoCAD, los cuales nos permitirán definir los diferentes componentes escritos que forman un plano ya sea símbolos y valores de ejes, nombres de recintos, nombres de planos y otros textos complementarios al proyecto que dibujemos. En esta segunda parte del tutorial veremos los comandos asociados a los textos complejos o también llamados Multiline. También se verá la relación de estos con los estilos y con otras funciones complementarias.

Definición de Textos Multiline en AutocAD

Como ya lo estudiamos en la primera parte del tutorial de textos, en AutoCAD disponemos de dos tipos base los cuales son:

1) El Single Line o Text.

2) El Multiline Text o Mtext.

Multiline es el texto más moderno de AutoCAD y por ello es el que posee más funciones asociadas a la edición de texto, ya que al invocarlo podremos editar el texto de forma parecida a procesadores de texto como Word. Como ya sabemos, ambas funciones de texto las podemos encontrar en la persiana principal (Home), en el grupo llamado Annotation:

Si hacemos click en la flecha que está debajo de la letra “A” de la opción Text, podremos acceder a ambos tipos de texto:

En el caso del texto de tipo Multiline, este se encuentra por defecto y en este tutorial nos referiremos específicamente a este y a todas sus funciones.

Texto Multiline

El texto complejo o de varias líneas (Multiline) es la versión moderna de inserción y edición de textos del programa y por ello funcionará exclusivamente mediante el comando MTEXT y luego enter, mediante la letra T y luego enter o también presionando el icono de Multiline Text. En este caso, si invocamos el comando para colocar un texto nos aparecerá lo siguiente en la barra de comandos:

Como notamos en la imagen, el programa nos pedirá el punto de inserción o de inicio en el cual comenzará a escribirse nuestro texto pero a diferencia de Single Line, en este caso debemos definir un área o rectángulo en el cual se definirá nuestro texto. Por ello, si hacemos click para definir el primer punto, el programa nos pedirá especificar la otra “esquina” del texto, tal como se muestra en la imagen siguiente:

Con esto definiremos el ancho de nuestro cuadro de edición de texto y nos aparecerá lo siguiente en el área de trabajo:

Si comenzamos a escribir un texto cualquiera, notaremos que en la parte superior nos aparece un menú similar a los de algunos comandos ya vistos como Array o Block, ya que este nos permitirá ajustar o editar el texto mismo. Este menú se conoce como Text Editor:

Este menú posee funciones muy similares a un procesador de texto (como Word) y por ello podremos editar del texto de manera similar. Sin embargo, debemos tomar en cuenta que para que estos cambios se realicen de forma efectiva debemos seleccionar previamente el o los textos que están dentro del área del Mtext mediante el arrastre del mouse, tal como se aprecia en la siguiente secuencia:

Texto sin seleccionar.

Texto seleccionado mediante el arrastre con el mouse.

Las funciones principales de este menú son las siguientes:

A) Grupo Style:

Este grupo contiene los estilos de texto que hayamos creado y que están relacionados con Single Line ya que al igual que este último, el texto Multiline también dependerá de los estilos en uso aunque en este caso sí podremos editar el texto de manera independiente de este. Si clickeamos la flecha inferior derecha accederemos a los diferentes estilos de texto disponibles y podremos aplicárselo a nuestro texto.

Por esto mismo, si escribimos nuestro texto por defecto el estilo aplicado será Standard, pero podremos cambiarlo al que hemos creado y mantendrá todas sus cualidades como tamaño, tipo de letra o algún efecto especial que agreguemos.

Las opciones extras que disponemos en este grupo son:

1- Annotative: esta opción definirá si el texto es anotativo o no, de forma similar a lo ya visto en Single Line.

2- Cuadro de tamaño de texto o Text Height: esta opción cambia el tamaño o altura del texto según el valor que definamos. Si hemos elegido un estilo previamente creado, por defecto nos mostrará el tamaño definido por este. Una ventaja del texto Multiline es que podremos cambiar el tamaño de nuestro texto en cualquier momento, independiente del del estilo de texto que tengamos definido por defecto.

En el ejemplo se ha cambiado el tamaño del texto de 12 a 18 mediante Text Height.

3- Mask Text: esta interesantísima opción nos permitirá enmarcar nuestro texto con un fondo o máscara ya que al activarlo, nos aparecerá el siguiente cuadro llamado Background Mask:

En este podremos activar el uso o no de la máscara marcando la casilla Use Background Mask, definir la distancia de Border offset o cuánto margen tenemos desde el texto, y el color del fondo mediante la opción Fill Color. En este último caso, podremos elegir un color cualquiera o incluso, podremos utilizar el color del área de trabajo como máscara al activar la opción Use drawing background color.

En el ejemplo se ha colocado un fondo rojo con el Border Offset predefinido 1.5000 mediante Mask Text.

B) Grupo Formatting:

Este grupo contiene las funciones relativas al formato del texto mismo, ya que podremos elegir los efectos clásicos de este como el tipo, estilo de fuente y otros efectos específicos. Las funciones de este grupo son las siguientes:

1- Match: si tenemos seleccionado un texto con un tipo y estilo ya definidos, al seleccionar esta opción podremos cambiar todos los textos del Mtext a este mediante un solo click a cada texto.

2- Font style: podremos definir un estilo para cada tipo de texto mediante los efectos de Negrita, cursiva, tachado, Subrayado, Subrayado superior o Fracción. En este último caso, podremos activarlo si tenemos nuestras letras y el símbolo “/” en medio (LETRA/LETRA).

En el ejemplo se han colocado los estilos subrayado superior, cursiva, subrayado y negrita respectivamente.

Una función interesante de Font Style es Stack ya que esta nos permitirá representar una fracción de forma matemática (texto arrida, división y texto abajo), siempre y cuando tengamos dos textos mediados mediante el carácter slash (“/”) y previamente seleccionados, tal como se aprecia en la secuencia siguiente:

3- Name Text: aquí podremos definir el tipo de fuente o nombre de texto, independiente del estilo que hayamos definido previamente. El tipo de fuente se le puede cambiar a cualquier letra y así generar varios tipos en un solo texto.

En el ejemplo, el tipo de texto de la primera línea es Century Gothic mientras que el de abajo es Chiller, gracias a Name Text.

El mismo ejemplo anterior pero en este caso se han mezclado varios tipos de texto en la línea de abajo, gracias a Name Text.

4- Color/Layer text: en esta opción podremos definir el color del texto o el layer al que este pertenece, de forma similar a como lo hacemos con las propiedades. El color de fuente se le puede aplicar a cualquier letra y así generar varios de ellos en un solo texto.

En el ejemplo, el color de texto de la primera línea es blanco mientras que el de abajo es rojo, gracias a Color/Layer Text.

El mismo ejemplo anterior pero en este caso se han mezclado varios colores en la línea de abajo, gracias a Color/Layer Text.

5- Superscript/Subscript: determina si el texto es de tipo Superíndice (Ejemplo: cuadrado o cubo) o Subíndice (ejemplo: elemento químico).

6- Uppercase/Lowercase: esta opción nos permitirá cambiar nuestro texto entre mayúsculas (Uppercase) y minúsculas (Lowercase). Esto se aplicará siempre a la selección de textos que realicemos con el mouse.

7- Clear: esta opción nos permitirá borrar el formato del texto (Remove Character Formatting), el formato del párrafo (Remove Paragraph Formatting) o ambos (Remove All Formatting).

Si presionamos la flecha inferior del grupo Formatting, podremos acceder a funciones extras de este grupo las cuales son:

1- Oblique Angle: mediante esta opción podremos indicar el ángulo en que se deforma el texto. Si el valor es positivo la deformación será hacia la derecha, y si es negativo será hacia la izquierda.

2- Tracking: mediante esta opción podremos indicar la distancia de separación entre las letras que componen el texto. Mientras mayor sea el valor la distancia entre las letras será más grande y si es menor que 1, será más pequeña hasta pegarse.

3- Width Factor: mediante esta opción podremos indicar el ancho del texto. Mientras mayor sea el valor el texto será mucho más ancho y si es menor que 1, el texto tenderá a comprimirse.

C) Grupo Paragraph:

Este grupo contiene las funciones relativas a la distribución y otros formatos específicos del texto mismo, ya que podremos elegir la alineación de este o la numeración. Las funciones de este grupo son las siguientes:

1- Justification: esta opción es similar a Single Line ya que podremos determinar la posición del texto respecto de la caja que lo contiene, y tenemos las siguientes posiciones: Top Left, Top Center, Top right, Middle Left, Middle Center, Middle Right, Bottom Left, Bottom Center y finalmente Bottom Right.

2- Bullets and Numbering: en esta opción podremos establecer un sistema de numeración mediante viñetas, letras o números según elijamos. Si presionamos este botón nos aparece el siguiente menú:

En este podremos elegir si queremos que el sistema sea numerado (Numbered), por letras (Lettered) o mediante puntos (Bulleted). Es interesante apreciar que si elegimos Lettered, podremos establecer letras mayúsculas (Uppercase) o minúsculas (Lowercase) para los listados de palabras. También podremos determinar si queremos que el sistema se cree de manera automática mediante la opción Allow auto Bullets and Numbering, o permitir listas y puntos mediante la opción Alow Bullets and Lists.

Numeración mediante números utilizando la función Numbered.

Numeración mediante letras mayúsculas utilizando la función Lettered >> Uppercase.

Numeración mediante puntos utilizando la función Bulleted.

3- Line spacing: en esta opción podremos determinar el espacio entre cada línea de texto. Por defecto es 1x pero también tenemos 1.5x, 2.0x y 2.5x. Además podremos aumentar el espaciado mediante la opción more… En este último caso, podremos crear espacios personalizados gracias al siguiente menú de opciones llamado Paragraph:

En este podremos determinar el espaciado y asignar un número al tabulador de forma similar a un procesador de texto, gracias a la opción Tab. También podremos modificar los parámetros de sangría del texto mediante Left y Right Indent, alinear el párrafo y determinar el espaciado mediante Paragraph Alignment y Paragraph Spacing respectivamente, y finalmente asignar el espacio mediante la opción Paragraph Line Spacing.

Texto espaciado a 2.0x utilizando Line Spacing.

Texto espaciado de manera personalizada utilizando el cuadro Paragraph de Line Spacing.

4- Text Alignment: en estos paneles se determina la alineación del texto, de forma similar a un procesador de texto. En este caso tenemos las siguientes alineaciones:

1) Default (por defecto).
2) Left (izquierda).
3) Center (centro).
4) Right (derecha).
5) Justify (justificado).
6) Distribute (distribuir).

Esto puede verse de forma más clara en el ejemplo siguiente:

Texto alineado en torno al centro utilizando Center de Text Alignment.

El caso de la opción Distribute es bastante interesante pues al activarlo, nos distribuirá cada línea de texto de forma homogénea por todo el ancho del cuadro, tal como se aprecia en la imagen siguiente:

Texto distribuido en torno al cuadro utilizando Distribute de Text Alignment.

5- Combine Paragraphs: esta opción nos aparece al presionar la flecha inferior derecha del grupo, y nos permitirá combinar todos los textos seleccionados que estén en distintos párrafos en uno solo, si tenemos suficiente espacio lateral en el cuadro de edición de texto.

D) Grupo Insert:

Este grupo contiene las funciones relativas a la inserción de elementos complementarios al texto o la distribución de columnas del cuadrio de edición y del texto mismo. Las funciones de este grupo son las siguientes:

1- Columns: mediante esta opción podremos determinar la cantidad de columnas que necesitemos para el cuadro de edición, de forma similar a un procesador de texto. Las opciones de columnas que disponemos son las siguientes:

– No Columns: no inserta columnas en nuestro cuadro de edición.

– Dynamic Columns: esta es la opción por defecto, y podremos definir la altura de la columna de forma manual (Manual Height) o de forma automática (Auto Height). Si seleccionamos la opción Auto Height, al finalizar una línea automáticamente nos creará una nueva columna, tal como se aprecia en la siguiente imagen:

Ajustando cantidad y altura de las columnas mediante Auto Height.

Si dejamos la opción por defecto Manual Height, podremos modificar las columnas simplemente tomando el extremo inferior derecho del cuadro de edición de texto (marcado en verde) y moviéndolo con el mouse para definir cantidad y altura de columnas.

Ajustando cantidad y altura de las columnas mediante Manual Height.

– Static Columns: especifica la cantidad de columnas para nuestro cuadro de texto. Por defecto puede definir de 2 a 6 columnas, pero podemos agregar más en la opción More.

La opción More… también es el cuadro de Column Settings, ya que en este podremos definir tanto el tipo de columnas (dinámicas, estaticas o sin columnas), su altura (Height) y el ancho (Width) en el cual podremos especificar tanto el ancho de la columna como el espacio entre columnas (Gutter), y el total de ambos.

En el siguiente ejemplo nos queda claro el uso de este cuadro de configuración.

En el ejemplo, en el cuadro Column Settings se ha escogido la opción Static Columns con un total de 2 columnas, se han modificado los valores de Height y Width, y se muestra el resultado final en pantalla.

– Insert Column Break Alt+Enter: si elegimos Dynamic Columns o No Columns, inserta una columna al escoger esta opción o mediante las teclas Alt+Enter.

En el caso que elijamos Static Columns y por ende definamos un número de columnas, esta opción nos servirá para pasar de una columna a otra.

2- Symbol: esta opción nos permitirá insertar símbolos de forma similar a un procesador de texto, pero en este caso también se incluyen por defecto los más utilizados en dibujo técnico como por ejemplo Degrees (grados), Plus/Minus (±) o el símbolo de diámetro (Ø). Si realizamos click en la opción nos aparece el siguiente menú:

En este encontraremos los símbolos más utilizados en dibujo técnico y diseño como los ya antes mencionados Degrees, Plus/minus y Diameter. El resto de símbolos que encontramos son:

– Almost Equal.
– Angle.
– Boundary Line.
– Center Line.
– Delta.
– Electrical Phase.
– Flow line.
– Identity.
– Initial Length.
– Monument Line.
– Not Equal.
– Ohm.
– Omega.
– Property Line.
– Subscript 2.
– Squared.
– Cubed.

Los cuales pueden verse representados en la imagen de abajo, ordenados de izquierda a derecha y de arriba hacia abajo:

En la imagen se visualizan en pantalla todos los símbolos por defecto del menú Symbol.

Además del menú mismo, también podremos insertar un espacio si elegimos la opción Non-Breaking Space Ctrl+Shift+Space (o simplemente presionando las teclas Ctrl+Shift+Space), y si elegimos Other podremos acceder al cuadro clásico de inserción de símbolos de windows (mapa de caracteres), donde podremos insertar otros símbolos especiales o que no se encuentren por defecto:

3- Field: esta opción nos permitirá insertar diversos formatos de “campo” (como por ejemplo, un autor, comentarios o una fecha) ya que posee una base de datos con los formatos más utilizados para campos, de forma similar a EXCEL. Estos se insertan como textos en el cuadro de edición, pero por ser campos estos no pueden ser editados.

En el ejemplo se inserta una fecha específica mediante el campo CreateDate.

E) Grupos Spell check, Tools y Options:

Estos grupos contienen funciones relativas a la revisión de los textos y opciones generales. Las funciones de este grupo son las siguientes:

1- Spell Check: esta opción es el corrector ortográfico el cual permite revisar el texto y corregir errores de ortografía, de forma similar a Word.

2- Edit Dictionaries: esta opción nos permite definir el diccionario principal que utilizaremos para las revisiones ortográficas. si presionamos la opción nos aparece el siguiente menú:

En este podremos definir el diccionario que utilizaremos mediante Current main dictionary y también podremos agregar diccionarios propios mediante la opción Current custom dictionary. Para realizar esto último, debemos importar archivos especiales de extensión .CUS mediante la opción Import.

Si presionamos la flecha inferior derecha del grupo Spell check, podremos acceder a un cuadro de opciones llamado Check Spelling Settings:

En este cuadro donde podremos ignorar o no ciertos tipos de palabras para facilitar la revisión de textos. Estos son:

– Ignorar palabras en mayúsculas para Texto de Autodesk y DWG (Ignore words in uppercase/capitalized words).
– Ignorar palabras con casos mixtos para Texto TrueType (Ignore words with mixed cases).
– Ignorar palabras con números para ISO9000 (Ignore words with numbers).
– Ignorar palabras que contengan puntuación para TA/3 (Ignore words containing punctuation).

3- Find and Replace: esta opción es el equivalente a “buscar y reemplazar” que poseen procesadores de texto como Word.

Si clickeamos la flecha derecha que está al lado del grupo Tools, podremos acceder a dos funciones complementarias llamadas Import Text y All CAPS.

La más interesante de las dos es Import Text ya que si la seleccionamos, podremos importar cualquier texto sin formato (en TXT) o de texto enriquecido (en formato RTF) para poder colocarlo en nuestro cuadro de edición de textos, tal como se aprecia en la secuencia siguiente:

Importando un texto desde un archivo TXT mediante Impot Text.

En el caso de All CAPS, si lo seleccionamos nos permitirá escribir todos nuestros textos en mayúsculas de forma automática sin necesidad de utilizar las teclas Bloq Mayus o Shift.

4- More: literalmente significa “más” y por ende, nos da más opciones para la modificación del cuadro de edición de textos. Entre estas tenemos:

– Character Set: nos permite elegir el lenguaje de codificación que deseemos para nuestro texto. Entre los alfabetos tenemos disponible el arábigo, cirílico (ruso), japonés, koreano y hebreo entre otros.

– Editor Settings: nos permite editar varias funciones del cuadro de edición de los textos. En este caso, disponemos de las siguientes opciones:

– Always Display as WYSIWYG: si seleccionamos esta opción el texto se nos mostrará “tal cual es” en la pantalla, de acuerdo con el sistema WYSIWYG de los procesadores de texto (en inglés “What You See Is What You Get” o en español, “lo que ves es lo que obtienes”).

– Show Toolbar: esta opción nos mostrará o no la barra de edición de textos de versiones antiguas de AutoCAD (barra Text Formatting).

– Show Background: esta opción nos mostrará o no el fondo del cuadro de edición de texto. Si lo desactivamos, el fondo será transparente.

– Text Highlight Color: esta interesante opción nos permitirá definir el color de fondo que tenga el campo de selección del texto. Podemos cambiarlo gracias a la paleta de selección de color (Select Color).

– Ruler: muestra o no la regla superior del cuadro de edición de texto. Por defecto está activada pero si presionamos el botón, se desactiva.

– Undo/Redo: deshace y rehace el último texto ya escrito, de forma similar a un procesador de texto.

Finalmente, podremos cerrar el cuadro de edición del texto mediante el botón Close Text Editor lo cual hará que nos salgamos del modo de edición y nuestro texto Multiline se mostrará en pantalla con todos los cambios que realizamos en este. Podremos volver a ingresar al panel de edición del texto las veces que queramos haciendo doble click en el texto respectivo y lo podemos editar una y otra vez, a diferencia del texto Single Line el cual depende en el 100% del estilo de texto que le definamos.

Este es el fin de este tutorial.

AutoCAD 2D Tutorial 13: textos en AutoCAD parte 1, Single Line y estilos de texto

En este nuevo tutorial de AutoCAD veremos una materia que extrañamente no se había publicado anteriormente en el blog, pero que resulta fundamental para el correcto dibujo de planimetrías en Arquitectura: se trata de los textos en AutoCAD, los cuales nos permitirán definir los diferentes componentes escritos que forman un plano ya sea símbolos y valores de ejes, nombres de recintos, nombres de planos y otros textos complementarios al proyecto que dibujemos. Debido a su extensión, en esta primera parte del tutorial veremos los comandos asociados a los textos simples o también llamados Single Line. También los estilos de creación y modificación para los textos en sí, y las relaciones de los textos con otras funciones complementarias como por ejemplo, las cotas.

Definición de Textos en AutocAD

En AutoCAD disponemos de dos tipos de texto base los cuales son los siguientes:

1) El Single Line o Text.

2) El Multiline Text o Mtext.

Single Line es el texto antiguo de AutoCAD y por ello es el más limitado en cuanto a configuración, pero tiene la ventaja de trabajar mediante los estilos de texto ya que los toma como base para definirlos en el área de trabajo. Multiline en cambio, es la versión más moderna de los textos y por ello dispone de funciones parecidas a cualquier editor de texto como Word o similar, y al igual que en el caso de single Line también toma los estilos de texto como base. Ambas funciones de texto las podemos encontrar en la persiana principal (Home), en el grupo llamado Annotation:

Si hacemos click en la flecha que está debajo de la letra “A” de la opción Text, podremos acceder a ambos tipos de texto:

En el caso del texto de tipo Multiline, este se encuentra por defecto ya que es la versión moderna pero también podremos acceder al comando antiguo mediante Single Line y si bien este último es más limitado en cuanto a opciones, tiene la ventaja de ser relativamente simple de configurar y además trabaja directamente con los Estilos de texto. En este tutorial nos referiremos específicamente a single Line y sus funciones mientras que en una segunda parte haremos lo propio con Multiline Text.

Texto Single Line

El texto simple o de una sola línea (Single Line) es la versión antigua del programa y por ello funcionará exclusivamente mediante el comando TEXT y luego enter o también presionando el icono de Single Line. En este caso, si invocamos el comando para colocar un texto nos aparecerá lo siguiente en la barra de comandos:

Como notamos en la imagen, el programa nos pedirá el punto de inserción o de inicio en el cual comenzará a escribirse nuestro texto. Si hacemos click para definir el punto, el programa nos pedirá especificar la “altura” del texto la cual por defecto es de 2.5, tal como se muestra en la imagen siguiente:

Podemos dejar esa altura o especificar alguna otra para definirla y por ende, especificar el tamaño que tendrá el texto en pantalla. En este caso definiremos la altura con el valor 10 y luego presionamos enter, y luego iremos a la siguiente pantalla:

Aquí se nos pedirá el ángulo en el que rotará nuestro texto. Esta función es bastante interesante puesto que el texto Multiline no la tiene, y consiste en girar el texto respecto a algún ángulo que le definamos. En este caso dejaremos el valor por defecto 0 ya que este nos indica que el texto se escribirá de forma horizontal. Presionamos enter y luego llegamos al final del comando:

En esta fase podremos escribir el texto que queramos y con ello definiremos el contenido de este. Es importante destacar que si presionamos enter NO saldremos del comando sino que en este caso nos saltaremos a la siguiente línea de nuestro texto y por ello podremos seguir escribiendo (como en Word). Si no escribimos nada y presionamos enter, el comando se cancelará y quedará el último texto que escribimos.

Otra forma de salir del modo texto y por ende cancelar el comando es realizar un click en el área de trabajo fuera del área del texto. Si lo hacemos correctamente, el texto quedará definido en su posición inicial pero a la vez insertaremos otra área para comenzar a escribir otro texto, tal como se aprecia en la imagen siguiente:

En este caso podremos escribir el texto o simplemente presionar ESC para salir del modo texto y cancelar de manera definitiva el comando.

Ejemplo de definición de dos textos mediante el comando TEXT. En este caso, se ha escrito la primera palabra y luego se ha clickeado fuera para definir el segundo texto. Posteriormente, se vuelve a hacer click fuera para finalmente presionar ESC.

Si escribimos otro texto y luego repetimos el proceso para cancelar, notaremos que los textos se definen de forma precisa pero serán independientes uno del otro, tal como se aprecia en la imagen:

Si queremos cambiar el texto que introducimos al principio, nos bastará hacer doble click en el texto a editar o mediante el comanto TEXTEDIT (TEXTE). Si lo hacemos por esta última vía, primeramente invocamos el comando y luego seleccionamos el texto que queramos editar:

Editando el contenido del primer texto mediante el comando TEXTEDIT.

Luego de la edición, hacemos click fuera del área del texto y luego presionamos ESC para cancelar. Una curiosidad de TEXTEDIT es que si presionamos enter en medio de la edición, no se cancelará el comando ni saltaremos a la siguiente línea sino que seguiremos dentro del comando y tendremos que nuevamente seleccionar el texto para seguir editándolo. Otro aspecto a destacar de este texto es que si bien al principio podremos escribir saltándonos varias lineas mediante enter, al salir del comando o cancelarlo los textos serán líneas independientes al ser seleccionados o editados (de allí su nombre “Single Line”), tal como se aprecia en la secuencia siguiente:

Podemos aprovechar las funciones de altura o de rotación que nos da este tipo de texto para crear varios efectos complementarios a nuestros textos, tal como se aprecia en la imagen siguiente:

En el ejemplo se han creado cuatro textos mediante TEXT utilizando las siguientes configuraciones: altura 20 y ángulo 0, altura 15 y ángulo 30, altura 10 y ángulo 45 y finalmente altura 5 y ángulo 90.

Si bien el texto Single Line es relativamente fácil de configurar y de definir, notaremos que sus funciones son bastante limitadas y que por defecto el texto que podremos definir sólo tiene un tipo de fuente la cual es Arial (o TXT en versiones muy antiguas de AutoCAD). Esto ocurre porque el texto Single Line se rige necesariamente por una función llamada Estilo de Texto, la cual funciona de manera similar a los estilos de cotas y a los layers ya que mediante estos definiremos atributos específicos del texto como por ejemplo su tipo, tamaño, si este es negrita, cursiva o tiene efectos más específicos como anchura o ángulo oblicuo. La ventaja de los estilos de texto es que podremos crear tantos atributos de texto específicos para cada parte de nuestro dibujo como sea necesario, como por ejemplo: un estilo para nuestros nombres de recintos, otro para los ejes de nuestro plano, otro para las cotas y así sucesivamente. Por defecto, el estilo de texto que viene por defecto es el llamado estilo Standard el cual es similar al layer “0” ya que este no puede ser borrado, puesto que es en este estilo en el cual se aplican nuestros textos al definirlos mediante Single Line.

Creando y definiendo Estilos de texto

Si queremos crear un estilo de texto o modificar y/o ver los ya existentes en AutoCAD, lo podremos hacer mediante el comando STYLE (o ST) y luego presionando enter, o también seleccionando el icono de Estilos de texto el cual se encuentra extendiendo la flecha inferior del grupo Annotation:

Si realizamos cualquiera de las operaciones anteriores llegaremos al siguiente cuadro llamado precisamente Text Style:

En este cuadro encontramos los estilos que están creados por defecto llamados Annotative y Standard. En el caso del texto Annotative o Anotativo, tiene por ventaja principal el hecho que, si lo asociamos a una o más escalas de trabajo en el espacio model y en la ventana gráfica del layout, mantienen el mismo tamaño de impresión aunque el dibujo o plano esté en diferentes escalas en las ventanas gráficas o viewports. El estilo Standard en cambio, no posee esa cualidad y se escalará en función de la escala de la ventana gráfica, tal como se aprecia en los siguientes ejemplos:

Texto anotativo versus Texto Standard. En el ejemplo la misma planta está en escalas 1:50 y 1:100 y el texto anotativo está a igual tamaño en ambas, mientras que el Standard se achica en la planta 1:100.

Volviendo al cuadro de edición de textos, este tiene las siguientes opciones o partes:

1) Styles: en este cuadro podremos ver los estilos predeterminados y/o que hayamos creado, y también podremos seleccionar alguno para editarlo o dejarlo como estilo activo o Current. Está relacionado con la función View Styles (4).

2) Font: define el tipo y estilo de las fuentes de texto del estilo que queramos editar. En Font Name podremos definir el tipo de texto mientras que en Font Style definiremos el estilo que contenga ese tipo: Regular, Cursiva, Negrita o Negrita Cursiva.

Definiendo el tipo de texto mediante Font Name.

Definiendo el estilo de texto mediante Font Style.

3) Set Current, New y Delete: estos botones nos permitirán crear, borrar o activar un estilo de texto. New nos permite crear un estilo nuevo el cual será una copia del estilo seleccionado por defecto o en modo Current (activo). Si presionamos New, nos aparecerá un cuadro en el cual podremos un mobre a nuestro texto y luego presionamos OK para crearlo. Si creamos un estilo, lo modificamos y presionamos OK, este quedará activo por defecto.

Creando un estilo de texto nuevo llamado “estilo 1” mediante el botón New.

Current nos define el estilo “activo” y al igual que en el caso del layer Current, al definir un estilo como “Current” implicará que al ocupar los comandos TEXT, T o MTEXT el estilo que se nos dibujará en el plano o área será precisamente el seleccionado como Current o activo. Si creamos un estilo nuevo y lo guardamos, quedará como activo por defecto. Por supuesto que podremos asignar este estado a cualquiera de los estilos que poseamos y en cualquier momento si accedemos al cuadro de Text Styles.

Escribiendo en el área de trabajo con el estilo creado ya que este queda como Current o activo.

Delete nos permitirá borrar un estilo de texto siempre y cuando este no esté activo o Current y no tenga textos definidos con ese mismo estilo en el dibujo o lo que es lo mismo, que el estilo esté en uso.

En el ejemplo, el estilo creado llamado “estilo 1” NO puede borrarse ya que este está en uso. Es decir, el texto está definido en el área de trabajo.

En el ejemplo, el estilo creado llamado “estilo 1” SÍ puede borrarse ya que este no está utilizándose. Es decir, el texto regido a ese estilo fue borrado en el área de trabajo.

4) View Styles: en este cuadro podremos ver todos los estilos en el cuadro superior (All Styles) o sólo el Estilo Current y todos los que tengamos utilizados en nuestro dibujo (Styles in use).

5) Size y Height: la opción Size nos indica si queremos que los textos sean anotativos o no al marcar la casilla Annotative. Si además de esta seleccionamos Match text orientation to Layout, igualaremos las orientaciones de textos definidas en las ventanas graficas del espacio papel con la orientación del layout. Height en tanto nos indicará la altura del texto de nuestro estilo y si definimos un valor, al crear el texto mediante Single Line notaremos que el comando ya no nos pedirá la altura, puesto que asume la que definimos previamente al crear el estilo.

En el ejemplo se ha definido el estilo llamado “estilo 1” y en Height se ha establecido la altura 50.

Tip: es muy importante tener en consideración que si establecemos la altura o Height en “0” (0.0000), podremos asignar cualquier altura al definir el texto ya que el parámetro 0 indica literalmente “la altura a definir por el usuario”. Por esta misma razón es que los estilos predeterminados Annotative y Standard poseen el valor de Height en 0.

5) Effects: esta opción nos permite aplicar varios efectos alternativos a nuestro estilo. Los efectos de los que disponemos son:

a) Upside down: invierte el texto en vertical.

b) Backwards: invierte el texto en horizontal.

c) Width Factor: especifica el factor de anchura del texto. El múmero 1 representa el valor por defecto y el tamaño original de nuestro texto. Si colocamos valores menores que 1 el texto se estrecha, mientras que valores mayores harán que este se expanda.

Aplicando Width Factor de 0.5 y de 2 respectivamente.

Demás está decir que podremos mezclar todos estos efectos y aplicárselos a nuestro estilo personalizado de texto, de forma parecida a la siguiente imagen:

Aplicación de todas las opciones de edición de text Style en un estilo personalizado, y su resultado en pantalla.

Como ya se había dicho antes, la ventaja de los estilos de texto es que podremos crear atributos de texto específicos para cada parte de nuestro dibujo ya que podremos definir atributos para valores de cotas, ejes, recintos y otros textos que necesitemos en nuestro dibujo. También notaremos que al crear uno o más estilos, estos serán visibles al extender el menú del grupo Annotation si presionamos la flecha inferior del menú del lado del icono Text Styles:

En el ejemplo, el estilo personalizado llamado “estilo 1” es visible en el menú Annotation.

Esto es importente que lo comprendamos puesto que este cuadro nos permitirá cambiar uno o más textos a un estilo diferente primeramente seleccionando el o los textos, luego yendo a este menú y finalmente cambiarlo por el estilo que deseemos.

Esto es sumamente importante ya que, si modificamos los parámetros de un estilo que está en uso en el cuadro Text Style y aceptamos, notaremos que el texto definido en el área de trabajo no es afectado. Podemos remediar esto seleccionando el o los textos, luego cambiándolos de estilo y luego volviendo al original, de acuerdo a la siguiente imagen:

En el ejemplo se ha cambiado Width Factor a 0.5 del estilo personalizado “estilo 1” y posteriormente se han seleccionado los textos, luego se cambian a otro estilo cualquiera y finalmente se vuelve al estilo original para apreciar los cambios.

Ahora bien, si volvemos a nuestro texto Single Line y ejecutamos el comando TEXT, notaremos que antes de insertar el texto encontramos lo siguiente en la barra de comandos:

Lo cual se resume en los siguientes subcomandos: Justify y Style.

Justify (J): permite determinar la posición del texto. En este caso tenemos los siguientes subcomandos:

Left (L): posiciona el texto a la izquierda, colocando su punto de inserción allí.

Center (C): posiciona el texto al centro, colocando su punto de inserción allí.

Right (R): posiciona el texto a la derecha, colocando su punto de inserción allí.

Align (A): alinea y ajusta el texto entre dos puntos que definamos. En este caso la escala del texto será mayor cuanto más corto sea el texto que escribamos.

Middle (M): define primeramente el punto medio del texto y luego podremos escribir respecto a este.

Fit (F): encaja el texto de manera precisa entre dos puntos que definamos. El texto se mantendrá en un tamaño constante.

Top Left (TL): posiciona el texto arriba a la izquierda, colocando su punto de inserción allí.

Top Center (TC): posiciona el texto arriba al centro, colocando su punto de inserción allí.

Top Right (TR): posiciona el texto arriba a la derecha, colocando su punto de inserción allí.

Middle Left (ML): posiciona el texto arriba a la izquierda, colocando su punto de inserción allí.

Middle Center (MC): posiciona el texto arriba al centro, colocando su punto de inserción allí.

Middle Right (MR): posiciona el texto arriba a la derecha, colocando su punto de inserción allí.

Bottom Left (TL): posiciona el texto abajo a la izquierda, colocando su punto de inserción allí.

Bottom Center (TC): posiciona el texto abajo al centro, colocando su punto de inserción allí.

Bottom Right (TR): posiciona el texto abajo a la derecha, colocando su punto de inserción allí.

Style (S): permite asignar el estilo de texto en el cual trabajaremos. Si lo invocamos, podremos asignar el nombre de un estilo para que sea este el que defina nuestro texto al dibujarlo en la pantalla.

Ahora bien, también encontraremos la opción ? la cual nos será de ayuda ya que, si no conocemos el nombre del estilo, esta opción nos permitirá listar todos los estilos que tengamos disponibles. En este caso, al invocar la opción nos aparece lo siguiente en la barra de comandos:

Si presionamos enter veremos la lista de todos los estilos lo cual nos ayudará a recordar y luego colocar el nombre de este en el subcomando Style, tal como se aprecia en la imagen:

En la siguiente imagen vemos un claro ejemplo de aplicación de estilos de texto y textos Single Line: en este caso tenemos una planta de vivienda donde se han creado tres estilos diferentes los cuales definirán los textos de los nombres de los recintos (mediante el tipo de letra Century Gothic), los símbolos de los ejes (en Arial) y los valores de las cotas (en Calibri), ya que como sabemos estas se rigen mediante el estilo predeterminado Standard. Estos tres estilos se han aplicado mediante Single Line en el dibujo donde vemos claramente los tres tipos y tamaños de texto diferentes.

Si vamos al editor de estilos de cota del ejemplo anterior podremos apreciar que en Text Style se ha definido el estilo de las cotas llamado “Texto para cotas”, el cual tiene una altura o Height de 8 y que quedará fijo para este tipo de textos, además que por supuesto se aplicarán todos los cambios que realicemos a su estilo.

En la segunda parte del tutorial veremos los textos de tipo Multiline y conoceremos las funciones propias de estos, y sus diferencias respecto a los textos simples.

Este es el fin de este tutorial.