Herramienta Array (matriz)
Transcripción
Herramienta Array (matriz)
TUTORIAL 03B: HERRAMIENTA ARRAY (MATRIZ) En este tutorial conoceremos las diversas herramientas de matrices que nos ofrece 3DSMAX como Array. array nos permite realizar copias mediante filas y columnas, pero además podremos realizar las copias en pisos (eje Z). Comenzaremos conociendo las funciones de Array mediante la construcción de primitivas base y luego aplicando la herramienta correspondiente. Para comenzar, Abrimos 3DSMAX (no necesitaremos modificar ningún parámetro por ahora). Aplicando Array: Antes de comenzar a utilizar esta herramienta previamente dibujaremos una línea ortogonal (presionando Shift) mediante los shapes de 3DSMAX y dibujaremos un cilindro que tendrá los siguientes parámetros: Radius: 5, Height: 100. Centramos el cilindro en el punto de origen y guardamos. Ahora procederemos a aplicar Array a este cilindro, seleccionándolo previamente. Como su nombre lo indica, Array (matriz) nos permite crear matrices de objetos mediante filas y columnas que definirán copias tanto en los ejes X, Y y/o Z. Podemos seleccionar esta herramienta en Tools >> Array. En el caso de nuestra escena, primeramente seleccionamos el cilindro y luego ejecutamos Array. Nos aparecerá el siguiente cuadro: Donde tenemos lo siguiente: Incremental/Totals X, Y y Z: si seleccionamos Incremental nos permite incrementar los valores de las distancias, rotaciones o escalas entre cada elemento, en Totals estableceremos los valores totales dependiendo del número de elementos. Ambos parámetros están relacionados entre sí ya que por ejemplo, si tenemos 4 elementos en Count y en Totals X establecemos la distancia 100, la distancia entre cada elemento en Incremental X será 25 de (ya que 25 x 4 = 100). Move, Rotate y Scale: estas flechas son muy importantes pues nos permitirán seleccionar las variables que queramos incrementar, tanto entre elementos como en los totales. Presionando cada flecha podemos establecer si elegimos Incremental o Totals en cada transformación. De esto se desprende que podremos ejecutar matrices de tipo rectangular, polar y escalada. En el caso de los Incrementals y Totals, las unidades serán las siguientes: en el caso de move los valores serán los que trabajamos por defecto o la unidad de medida que le asignemos a 3DSMAX. En el caso de Rotate la unidad será en grados (degrees) y en el caso de Scale, será de porcentaje (percent). Array Dimensions: nos permite establecer el tipo de matriz y el o los ejes en los cuales se crearán las copias. Si elegimos 1D, las copias se crearán en una dimensión según los valores que definamos en Incrementals. Si elegimos 2D agregaremos una segunda dimensión o eje y si elegimos 3D, tendremos las copias en las 3 dimensiones del espacio 3D. Podremos ver la previsualización de nuestras copias presionando el botón Preview. En Total in Array veremos el total de los elementos que compondrán nuestra matriz y si hacemos click en Display as Box las copias se mostrarán como una caja en lugar de las formas 3D. Cuando hayamos configurado los parámetros presionamos OK para confirmar o Cancel para cancelar la operación. También podemos elegir el tipo de objeto resultante (Copy, Instance o Reference). Aunque en principio parece un poco difícil entender este cuadro, realizaremos algunos ejercicios donde nos quedará claro el uso de esta herramienta. Para ello volvemos a nuestro cilindro, ahora coloquemos el valor 20 a Incremental X en Move y en 1D asignemos el valor 6, junto con presionar Preview para ver el resultado, el cual debiera verse tal como en la foto de abajo: Notaremos que el cilindro se ha copiado 5 veces en el eje X lo que nos da un total de 6 copias, y la distancia entre el punto de pivote de cada uno de los cilindros es de 20, lo que hace un total de 120 si vemos el valor de Totals en X. Ahora coloquemos -10 a Incremental Y sin cambiar el resto de los parámetros. Esto hará que los elementos de la matriz se muevan en diagonal y hacia nosotros ya que ahora hemos agregado en el eje Y la distancia de -10 entre cada elemento, tal como se ve en la imagen de abajo. Esto es así porque recordemos que en el plano cartesiano, las distancias negativas en Y van hacia abajo. Si el valor fuera positivo las formas formarían una diagonal pero hacia arriba de la línea de origen. Notaremos que las copias se mantienen en la diagonal ya que como hemos elegido la opción 1D, no crea más copias que en una sola “dimensión” aún cuando podemos manejar los valores de X, Y y Z, pero afectarán sólo a esta fila o columna de copias. Para corroborar esto, asignemos ahora el valor -10 a Incremental Z. Esto hará que la distancia entre cada elemento de la matriz tome el valor -10 en el eje Z y por ende las formas bajan. Notaremos también que el valor Totals en Z es de -60, tal como se ve en la imagen de abajo: De esto se desprende que si queremos realizar copias en el eje X sólo basta colocar la cantidad de elementos en 1D y luego la distancia entre los elementos en Incremental X, en el caso de Y lo hacemos en Incremental Y y en el caso de Z lo realizamos en Incremental Z. En el caso que utilicemos la opción Rotate, es mejor utilizar los valores en Totals ya que como se expresan en grados, es más fácil realizar las divisiones si se conoce el ángulo total. En este caso la matriz será de tipo polar y tomará como base el punto de pivote del primer cilindro, y la rotación se efectuará en torno al eje que escojamos, en la foto de abajo por ejemplo, la rotación se efectúa en X. Y aquí está el resultado de la rotación en torno a los ejes Y y Z, aplicando el valor 360. En caso que realicemos la rotación en Z, debemos tener el cilindro en posición horizontal para ver el resultado, tal como se ve en la imagen de más abajo: Para el caso que utilicemos la opción Scale, es exactamente igual que en los casos anteriores, la diferencia es que los valores estarán ex- presados en porcentaje y los incrementos se aplicarán uno sobre otro. Es decir, si por ejemplo en nuestro cilindro aplicamos el valor 16 en incremental X y 111 (111%) en Incremental X Scale, la siguiente copia se escalará con ese valor, y la subsiguiente será la copia anterior ya escalada y se le volverá a aplicar ese 111%. El resultado en X en nuestro cilindro es el siguiente: El resultado en Y, esta vez utilizando un 128% será el siguiente: El resultado en Z, esta vez utilizando un 82% será el siguiente: nótese que esta vez, la escala disminuye y por ende el tamaño de los objetos de la matriz. Debemos recordar que en el caso de Scale, el valor 100 corresponderá al tamaño real de la forma 3D, y bajo ese margen estaremos reduciendo. Por el contrario, valores superiores al 100 agrandarán las dimensiones y por ende el objeto. Y por supuesto, y al igual que en el caso de Spacing Tool, podemos combinar estos valores para formar diversos efectos en la matriz como podemos ver en la foto de al lado donde se han modificado los valores en Move, Rotate y Scale logrando este curioso efecto en el total de la matriz 1D: Ahora bien, ya somos capaces de entender el manejo de las matrices en 1D, pero ahora ¿cómo creamos una matriz en 2 o 3 dimensiones? La respuesta está en el cuadro Array Dimensions y para activar la matriz en 2D simplemente cambiamos el modo a 2D y en el valor de Count asignamos la cantidad de copias. Sin embargo debemos tener en cuenta la opción Incremental Row donde además debemos asignar la distancia entre los elementos de esta segunda dimensión. Para aclarar esto, volvemos a nuestro cilindro y esta vez asignamos el valor 20 en incremental en X (move), cambiamos a 2D y asignamos el valor 5 en Count. En Incremental Row Y escribimos el valor 20 y activamos Preview. Hemos creado una matriz en 2D y el resultado es el de la foto de la derecha. Como apreciamos, se crean 5 columnas en el eje Y y la distancia entre los objetos es de 20. Al igual que en el caso de las matrices 1D, podemos modificar el movimiento de esta matriz simplemente manipulando los valores de Incremental Row. Si en el caso de nuestro cilindro modificamos el valor de Incremental Row en X a 10, notaremos como la matriz 2D se mueve en diagonal hacia el eje X tomando como referencia la distancia 10 entre los objetos. También podemos realizar lo mismo en Z pero en este caso, la matriz subirá o bajará en diagonal tomando como referencia la distancia entre objetos en Z. En el caso de la imagen de abajo, se han modificado los parámetros de Incremental Row colocando el valor -29 en Z y manteniendo el valor de Y en 20. Finalmente, si queremos obtener una matriz en 3 dimensiones simplemente cambiamos el modo de Array Dimensions a 3D, además de cambiar los valores de Count y la distancia de Incremental Row en Z para ver el resultado. En el caso de este ejercicio, en el modo 3D el valor de Count será 2 y la distancia en Z será de 120 para ver el resultado, el cual es el de la foto de abajo: Debemos tomar en cuenta que si en el modo 3D cambiamos los valores de Count en 1D y 2D, esto afectará a los elementos de toda la matriz. Y al igual que en los casos anteriores, los valores que escribamos en X, Y y Z en Incremental Row moverán los elementos de la matriz 3D en torno a X, Y y Z. En la imagen de abajo por ejemplo, el valor en X de Incremental Row es 30 y el de Z, 110. Los elementos de la fila en Z se mueven hacia la izquierda, en torno al eje X. Finalmente en este otro ejemplo, el valor en Y de Incremental Row es -60 y el de Z, 110. Los elementos de la fila en Z se mueven hacia nosotros, en torno al eje Y. Este es el fin del tutorial 03b. TUTORIAL 03A: SPACING TOOL (ESPACIADO) En este tutorial conoceremos las diversas herramientas de matrices que nos ofrece 3DSMAX como Spacing Tool, la cual nos permite ir distribuyendo de manera precisa copias de un objeto a través de un recorrido. Comenzaremos conociendo las funciones de Spacing Tool mediante la construcción de primitivas base, y luego aplicando la herramienta correspondiente. Para comenzar, Abrimos 3DSMAX (no necesitaremos modificar ningún parámetro por ahora). Aplicando Spacing Tool: Antes de comenzar a utilizar esta herramienta previamente dibujaremos una línea ortogonal (presionando Shift) mediante los shapes de 3DSMAX y dibujaremos un cilindro que tendrá los siguientes parámetros: Radius: 5, Height: 100. Centramos el cilindro en el punto de origen y guardamos. La idea es que la escena nos quede de forma similar a la foto de abajo: Como su nombre lo indica, Spacing Tool nos permite distribuir copias de manera uniforme de un objeto en torno a un espacio determinado o recorrido. Podemos seleccionar esta herramienta en Tools >> Align >> Spacing Tool (imagen de abajo a la derecha). En el caso de nuestra escena, primeramente seleccionamos el cilindro y luego ejecutamos spacing Tool. Nos aparecerá el siguiente cuadro: Si presionamos el botón Pick Path (obtener recorrido), podremos seleccionar la línea en la cual las copias se distribuirán de forma uniforme según el número de copias que establecimos en el campo Count. Si en cambio elegimos la opción Pick Points (obtener puntos), podremos elegir puntos cualesquiera en el espacio y en la recta que se forma entre estos se distribuirán nuestras copias. En esta imagen de abajo vemos la aplicación de Spacing Tool mediante la opción Pick Points: en el caso de nuestra escena, seleccionamos el primer extremo de la línea y hacemos click, luego el siguiente para finalizar con click: El resultado final es que las copias se distribuirán a lo largo de la recta formada entre estos puntos, indicada en verde. Esto puede realizarse en cualquier coordenada del espacio 3D si utilizamos esta opción, sin necesidad de dibujar una línea. Ahora bien, si elegimos la opción Pick Path nos bastará con elegir la línea para que las copias se distribuyan en ella. En el caso de nuestra escena establecimos el valor 6 en Count lo cual se refleja claramente en el resultado final (imagen de abajo), además que el botón de Pick Path ahora cambia al nombre de la línea. Entre los parámetros más importantes de Spacing Tool encontramos los siguientes: Count: indica la cantidad de elementos. Podemos determinar la cantidad de elementos que queremos distribuir en la línea o el espacio. Spacing: espacio entre los puntos de pivote de cada elemento. Por defecto este nos distribuye equitativamente el espacio de los elementos de acuerdo al recorrido o los puntos que hemos elegido, pero si lo activamos podemos modificar a nuestro antojo esta distancia, la cual puede ser menor que el recorrido o salirse de este (foto de arriba). Start Offset: nos permite definir la distancia de inicio de la distribución de los elementos. Por defecto la primera copia se establece en el primer extremo de una línea o primer punto, pero si la activamos podremos modificar esta distancia a nuestro antojo. En el caso de nuestra escena (imagen del abajo), se ha aplicado el valor 50 a Start Offset y claramente vemos como la distribución empieza a moverse 50 UG respecto al primer extremo de la línea. End Offset: nos permite definir la distancia final de la distribución de los elementos. Por defecto la última copia se establece en el segundo extremo de una línea o segundo punto, pero si la activamos podremos modificar esta distancia a nuestro antojo. En el caso de nuestra escena (imagen de abajo), se ha aplicado el valor 50 a Start Offset y claramente vemos como la distribución empieza a moverse 50 UG respecto al extremo inferior de la línea. Una cosa interesante de Start Offset y End Offset es que ambas pueden combinarse y aplicarse al mismo tiempo, lo que influirá evidentemente en la distancia final de las copias. Sin embargo, si activamos ambas al mismo tiempo no podremos activar la opción de Spacing. Debajo de estas opciones también podemos ver un menú desplegable que nos indica particularmente qué tomaremos en cuenta en la subdivisión, como por ejemplo activar o desactivar las opciones. Las opciones de este menú son: Free Center: centro libre. Divide Evenly, Objects at ends: divide equitativamente objetos en los extremos. Esta es la opción por defecto. Centered, Specify Spacing: Centrado, se puede especificar espacio mediante Spacing. End Offset: especificar final de recorrido. End Offset, divide Evenly: final de recorrido, dividir equitativamente. Start Offset, Specify Spacing: final de recorrido, especificar espacio. Start Offset: especificar inicio de recorrido. Start Offset, divide Evenly: inicio de recorrido, dividir equitativamente. Start Offset, Specify Spacing: inicio de recorrido, especificar espacio. Specify Offsets and Spacing: especifica inicio, fin de recorrido y espacio entre los elementos. Specify Offsets, Divide Evenly: especifica inicio, fin de recorrido y dividir equitativamente. Space from end, Unbounded: al activarlo y aumentar el valor de Space, End Offset tomará el mismo valor de forma ilimitada. Space from end, Specify Number: al activarlo y aumentar el valor de Count, End Offset tomará el mismo valor que Spacing y los objetos se irán distribuyendo en el recorrido (tomando el extremo inicial como base), aunque a mayor cantidad de objetos más pequeño es el valor de spacing. Space from end, Specify Spacing: al activarlo y aumentar el valor de Spacing, los objetos irán disminuyendo su número. Si disminuimos su valor, los objetos aumentarán en cantidad y se distribuirán a lo largo del recorrido a partir del extremo final. Space from Start, Unbounded: al activarlo y aumentar el valor de Spacing, Start Offset tomará el mismo valor de forma ilimitada. Space from Start, Specify Number: al activarlo y aumentar el valor de Count, Start Offset tomará el mismo valor que Spacing y los objetos se irán distribuyendo en el recorrido (tomando el extremo final como base), aunque a mayor cantidad de objetos más pequeño es el valor de spacing. Space from Start, Specify Spacing: al activarlo y aumentar el valor de Spacing, los objetos irán disminuyendo su número. Si disminuimos su valor, los objetos disminuir en cantidad y se distribuirán a lo largo del recorrido a partir del extremo inicial. Specify Spacing, Matching Offsets: dividir equitativamente los objetos, pero estos se distribuyen hacia los extremos del recorrido y disminuirán en cantidad según aumentemos el valor de Spacing. Divide Evenly, No Objects at Ends: dividir equitativamente los objetos, pero estos se distribuyen hacia los extremos del recorrido según aumentemos los objetos en Count. Context: esta herramienta nos permite elegir bajo qué relación se especifica la distribución de los objetos. En el caso de la opciòn llamada Edges, tomará como punto un lado de la forma 3D de acuerdo a la imagen de abajo: Y en el caso de Centers tomará el centro de esta (normalmente el punto de pivote): Una opción muy interesante de context es Follow (seguir), si la activamos permitirá a formas no redondas seguir el recorrido de la línea, tomando como referencia los ejes locales de los objetos. Esto es muy útil sobre todo cuando lo aplicamos en elementos ortogonales. En la imagen podemos ver la distribución típica de una box 3D a lo largo de una línea curva mediante Spacing Tool: En la imagen de abajo (con Follow aplicado) vemos claramente que las formas siguen a la línea. Type of Object: en esta opción podemos elegir el tipo de copia que realizará spacing Tool de acuerdo a los tipos que conocemos: Copy, Instance o Reference. Finalmente podemos aplicar la transformación presionando Apply o cancelarla mediante Cancel. Spacing Tool funciona tanto en formas rectas o curvas, también lo hace en formas 2D cerradas como rectángulos o elipses, aunque los efectos serán dispares según activemos la opción Follow o no. Este es el fin del tutorial 03a.