Modelado: herramienta Array (Matriz)

En este apunte conoceremos las diversas herramientas de matrices que nos ofrece 3DSMAX, también conocida como Array. Array es un comando que nos permite realizar copias utilizando filas y columnas, pero que también nos permitirá realizar las copias en niveles o “pisos” (respecto al eje Z). Comenzaremos conociendo las funciones principales de la herramienta Array mediante una primitiva base y luego se realizará un pequeño ejercicio de aplicación.

El archivo base de este ejercicio se puede descargar al hacer clic en el siguiente enlace: Descargar archivo base.

Conociendo el comando Array

Comenzaremos el apunte conociendo los parámetros más importantes de Array y sus efectos sobre una forma 3D específica. Para ello, abrimos 3DSMAX y luego cargamos el archivo base llamado 3dsmax_array.max, el cual contiene lo siguiente:

Como vemos, el archivo contiene un cilindro ya texturizado y girado en 90° respecto al eje X. También notaremos que este está elevado a 2,5 en el eje Z. No alteraremos esto ya que más adelante nos servirá para la realización de un ejercicio. Una vez abierto nuestro archivo, nos vamos a la herramienta Array seleccionándola desde el menú Tools de 3DSMAX, mediante Tools >> Array:

Como su nombre lo indica, la herramienta Array (o también llamada “matriz”) nos permite crear matrices formadas por copias del objeto seleccionado objetos mediante el ya clásico sistema de filas y/o columnas que definirán las copias tanto en los ejes X, Y e incluso en el eje Z, ya que en este último caso se definen a modo de “pisos”. En el caso de nuestra escena, primeramente seleccionamos el cilindro y luego invocamos a la herramienta Array. Al hacerlo, nos aparecerá el siguiente llamado precisamente Array:

Los parámetros de este cuadro son los siguientes:

  • 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 en cambio, estableceremos los valores totales dependiendo del número de elementos que tengamos en el Array. 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).

En el ejemplo se ha establecido el valor Y=20 en Incremental con las copias establecidas por defecto, y podemos ver su representación previa mediante el botón Preview. Nótese como en la opción Totals, el valor de Y es 200.

El mismo ejemplo anterior pero esta vez se ha agregado en Incremental el valor X=20 con las copias establecidas por defecto, y podemos ver su representación previa mediante el botón Preview. Nótese como en la opción Totals, el valor de X es 200.

El mismo ejemplo anterior pero esta vez se ha agregado en Incremental el valor Z=20 con las copias establecidas por defecto, y podemos ver su representación previa mediante el botón Preview. Nótese como en la opción Totals, el valor de X, Y y Z es de 200.

  • Move, Rotate y Scale: estas flechas son muy importantes pues nos permitirán seleccionar las variables que queramos incrementar en el movimiento (Move), rotación (Rotate) o escala (Scale) de las copias del Array, tanto entre elementos como en los totales. Presionando cada flecha podemos establecer si elegimos el modo Incremental o Totals en cada transformación.

De esto se desprende que podremos ejecutar matrices de tipo rectangular, polar y/o escalada modificando los valores de X, Y y/o Z respectivos, ya sea eligiendo el incremento por elemento o los totales mediante Incremental y Totals.

En el ejemplo, se han especificado mediante las flechas el tipo de transformación del objeto, y su resultado previo mediante Preview.

En el caso de Incrementals y Totals, las unidades en que expresaremos los valores 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). Si desmarcamos la opción Re-Orient, se desactivará la Rotación desde Array y si marcamos la opción Uniform, la escala por eje se desactivará y por ello, esta será siempre uniforme ya que bastará indicar el porcentaje en X.

  • Type of Object: mediante esta opción podemos elegir el tipo de copia que realizará Array al generar las copias, de acuerdo a los tres tipos de copia que ya conocemos en 3DSMAX: Copy, Instance o Reference.

  • Array Dimensions: nos permite establecer la cantidad de copias que necesitemos (mediante Count), el tipo de matriz y el o los ejes en los cuales se crearán las copias. También disponemos de la opción Incremental Row Offset, el cual definirá la magnitud del desplazamiento en los ejes respectivos de las copias 2D y 3D. Por defecto, siempre debemos tener al menos una copia en 1D.

Ahora bien, si elegimos 1D, las copias se crearán en una única dimensión o eje según los valores que definamos en Incrementals o Totals. Si elegimos 2D, agregaremos una segunda dimensión o eje y si elegimos 3D, tendremos las copias en las 3 dimensiones del espacio 3D.

En el ejemplo se ha configurado 1D con 5 copias, con el valor de Y=20 en Incremental Move.

En el ejemplo se ha configurado el Array con 5 copias en 1D y 4 en 2D, con el valor de X=60 en Incremental Row Offset.

En el ejemplo se ha configurado el Array con 5 copias en 1D, 4 en 2D y 2 en 3D, con el valor de Z=25 en Incremental Row Offset.

Podremos ver la previsualización de nuestras copias presionando el botón Preview.

En Total in Array veremos el total de los elementos o copias que compondrán nuestra matriz y si hacemos clic 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. si presionamos le botón Reset All Parameters, se volverá a los parámetros por defecto de la herramienta Array.

Aunque en principio parece un poco difícil entender las funciones de esta herramienta, realizaremos algunos ejercicios donde nos quedará claro el uso de ella y posteriormente realizaremos algunos ejercicios de aplicación. Para ello, volvemos a nuestro cilindro, colocaremos el valor 60 a Incremental X en Move y en 1D asignemos el valor 4, junto con presionar Preview para ver el resultado, el cual debe ser el siguiente:

Notaremos que el cilindro se ha copiado 3 veces en el eje X lo que nos da un total de 4 copias, y la distancia entre el punto de pivote de cada uno de los cilindros es de 60, lo que hace un total de 240 si vemos el valor de Totals en X. Ahora coloquemos -20 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 -20 entre cada elemento. 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” (la línea diagonal virtual) 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 -40, tal como se ve en la secuencia siguiente:

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 Y=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 secuencia siguiente:

Rotando el cilindro en el eje Y=360 establecido en Totals, y configurando 16 copias en 1D.

Rotando el cilindro en el eje Z=360 establecido en Totals, y configurando 16 copias en 1D.

Para el caso que utilicemos la opción Scale es exactamente igual que en los casos anteriores, aunque la diferencia es que los valores estarán expresados 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 Y y 120 (120%) 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 120%. El resultado en Y en nuestro cilindro es el siguiente:

El resultado en X, esta vez utilizando el mismo 120% será el siguiente:

El resultado en Z, esta vez utilizando un 70% 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 (escala 1:1), 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 Offset donde además debemos asignar la distancia entre los elementos de esta segunda dimensión.

Para aclarar esto, volvemos a nuestro Array y esta vez asignamos en 2D la cantidad de 5 copias en Count, y asignamos el valor 70 en Incremental Row Offset en X y activamos Preview. Con esto, hemos creado una matriz en 2D y como apreciamos, se crean 5 columnas en el eje X y la distancia entre los objetos es de 70.

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 Array modificamos el valor de Incremental Row en Y a 50, notaremos como la matriz 2D se mueve en diagonal hacia el eje Y tomando como referencia la distancia 50 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. Podemos comprobar esto ajustando los parámetros de Incremental Row Offset colocando el valor 20 en Z y manteniendo el valor de Y en 50.

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 Offset 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 Offset moverán los elementos de la matriz 3D en torno a X, Y y Z. En la imagen siguiente por ejemplo, el valor en X de Incremental Row Offset es 50 y el de Z, 120. Los elementos de la fila en Z se mueven hacia la derecha, en torno al eje X.

Finalmente en este otro ejemplo, el valor en Y de Incremental Row Offset es 150 y el de Z, 120. Los elementos de la fila en Z se mueven fuera de nosotros, en torno al eje Y.

Podemos realizar varias veces estas operaciones para obtener diferentes resultados según lo que se necesite modelar. Una vez conocidos los parámetros base, realizaremos un pequeño ejercicio de aplicación usando el mismo archivo. Lo que debemos hacer es hacer visibles los elementos ocultos de este mediante la opción Unhide All.

Ejemplo de aplicación

Al realizar el Unhide All a nuestro archivo, notaremos que se desbloquean varias formas 3D que forman una rueda de madera, a la cual le modelaremos los rayos utilizando las funciones propias de la herramienta Array.

Para ello, seleccionamos el cilindro original e invocamos a Array:

Una vez invocada la herramienta, lo que haremos será simplemente activar la opción de Rotate y en Totals escribiremos 360 en el eje Z. En Array Dimensions, establecemos el valor 20 en 1D. El resultado es el siguiente:

Aceptamos las copias mediante OK y con esto ya tenemos modelada nuestra rueda, y podemos realizar un render mediante F9 para ver el resultado definitivo del ejercicio:

Print Friendly, PDF & Email

¿Qué tan útil fue este artículo? Haga click en una estrella para puntuarlo

Puntuación media 0 / 5. contador de votos: 0

No hay votos. Sea el primero en calificar esta publicación.

0
(0)

2 thoughts on “Modelado: herramienta Array (Matriz)

  1. Hace poco que descubrí este sitio y es de lo mejor que he visto en las redes. Excelentes tutoriales, las descargas de materiales y muchas otras cosas interesantes, todo hecho con mucha calidad. Felicidades.

Deje un comentario en este artículo