Parámetros y atributos
Casi todos los valores de cada objeto, operador, generador y nodo de parámetros se pueden exportar siempre que tengan su propia entrada. Se trata de una potente función que te permite controlar las propiedades de un nodo desde el panel de modificación para que compartir y reutilizar tus estilos sea mucho más fácil, o puedes crear relaciones numéricas entre partes del gráfico mediante operaciones aritméticas y atributos exportados.
Exportación de parámetros
La exportación de parámetros es muy sencilla. Haga clic con el botón derecho en cualquier nodo y en la parte inferior del menú hay una opción para exportar Parámetros que contienen una lista de todos los valores que se pueden exponer para crear una nueva entrada.
Simplemente seleccione la propiedad y se creará una nueva entrada en la parte inferior del nodo.
Una vez que haya expuesto una propiedad, se puede conectar a otros 4 tipos de nodos:
- Nodos constantes: los nodos constantes permiten introducir un valor que solo se puede cambiar desde el editor de estilos. A diferencia del nodo numérico, esta propiedad no se puede animar.
- Numeric Nodes: Los nodos numéricos se utilizan para crear valores que se pueden editar fuera del editor de estilos en el panel Modificar. Se utilizan comúnmente para crear una interfaz simplificada para que el usuario pueda interactuar con el estilo sin necesidad de abrir o comprender el Editor de estilos. A diferencia del nodo Constante, este valor se puede animar.
- El tamaño actual del cuadro delimitador de un segmento se puede exportar desde prácticamente cualquier nodo. El proceso es muy similar a exportar un parámetro, simplemente haga clic derecho en un nodo, seleccione Atributo de exportación y elija el parámetro a exportar. Los nuevos atributos expuestos se agregarán al final de la lista de espacios de salida.
- Nodos aritméticos: los nodos aritméticos se utilizan para realizar operaciones matemáticas comunes en valores de nodos numéricos, nodos constantes y atributos adjuntos. Al usar expresiones, también es posible acceder a una serie de variables y funciones avanzadas.
Ceremonias
En este capítulo, para ilustrar cómo funcionan las expresiones, crearemos un patrón de mosaico a partir de un objeto de caja única. Usando expresiones podemos incluir las siguientes características, todas las cuales serán ajustables desde el panel de modificación:
-
Crea un patrón alternando filas y columnas de mosaicos de tamaño medio. El tamaño de los mosaicos pequeños se calcula automáticamente en función de las dimensiones de los mosaicos grandes.
-
Posibilidad de ajustar la altura, el ancho y el largo de los mosaicos grandes desde el panel de modificación.
-
Posibilidad de rotar el estilo desde el panel de modificación.
-
Posibilidad de activar/desactivar o desactivar las filas y columnas de patrones de tamaño medio.
Vea el vídeo a continuación para obtener una vista previa de este estilo.
Ejercicio: Configuración del estilo
Antes de comenzar a exportar y conectar los parámetros, creemos el estilo básico. En el archivo de escena de este capítulo solo se proporciona un cuadro y un estilo RailClone vacío. Agregue los mosaicos grandes y cree la matriz inicial siguiendo estos pasos.
-
Abierto
chapter_3_expressions_start.max
desde el descargas para esta guía. -
Seleccione el objeto RailClone y abra el Editor de estilos.
-
Cree una nueva matriz 2D arrastrando un A2S generador desde la Lista de elementos a la Vista de construcción.
-
Cree un nuevo nodo Spline y conéctelo al generador Spline de recorte aporte.
-
La ranura de recorte se puede usar para establecer automáticamente el tamaño de la matriz. Para ello, seleccione el generador y active Extender el tamaño X/Y al área desde las propiedades.
Esta característica se analiza con más detalle en Capítulo 6 de esta guía.
-
Seleccione el nodo Spline, haga clic en desde el panel Propiedades y seleccione
boundary_spline
de la escena. La matriz se creará de modo que llene el área representada por esta spline. -
Para agregar la geometría del mosaico, cree un nuevo Segmento nodo, vaya al panel de propiedades y haga clic en
luego elige
large_tile
de la escena. -
Como vamos a cambiar la escala de este segmento y no queremos que las texturas se distorsionen, podemos mapear automáticamente la geometría en cajas directamente en RailClone. Para ello, selecciona el nodo del segmento y ve a la pestaña Deformar del panel de propiedades. Active Apply Box Mapping e introduzca un valor de 300 cm para la longitud, la anchura y la altura.
-
Ahora tendrás un estilo de mosaico sencillo. Sin embargo, observe que, aunque hemos mapeado la geometría, la textura de cada mosaico es idéntica. Para añadir alguna variación, podemos aleatorizar las coordenadas del mapeo UV. Para ello, añada un operador UVW XForm y conéctelo entre el segmento y el generador.
-
Seleccione el operador UVW XForm y abra la pestaña Aleatorio en el panel de propiedades. Active Offset e introduzca un valor de
-150cm
paraU
yV \* Min
y150cm
en U y V Max. Activa también la rotación e introduce un valor de360
Para elMax
con un valor de paso de 90.
Veremos las opciones UVW Mapping y UVW Xform con más detalle en el siguiente capitulo
Ejercicio: Exportar parámetros y editarlos desde el panel Modificar
En este ejercicio agregaremos algunos controles para que el tamaño del mosaico y la rotación de toda la matriz se puedan controlar desde el panel de modificación. Para lograr ambas tareas es necesario exportar los parámetros y adjuntarlos a un Numérico nodo. Este es uno de los dos tipos de nodos en los que puede ingresar un número entero, flotante, unidades de escena, porcentaje o valor booleano. El otro tipo se llama Constante y sólo se diferencia en que no se puede ajustar desde el panel Modificar. En términos generales, querrá utilizar nodos numéricos donde es probable que el valor cambie periódicamente y nodos constantes cuando el valor no debe cambiarse.
-
Seleccione el nodo Segmentar y haga clic derecho. Las opciones de Parámetros de exportación se encuentran en la parte inferior del menú contextual. Elegir Tamaño fijo > Tamaño fijo > X y aparece una nueva entrada en el nodo Segmento. Haga lo mismo para exportar el Y y z parámetros de tamaño fijo.
-
Cree 3 nuevos nodos numéricos, uno para cada parámetro exportado y conéctelos a las entradas de tamaño. Verás que los nombres de los nodos numéricos cambian automáticamente para reflejar las entradas a las que están conectados, pero si quieres nombrarlos manualmente, puedes hacerlo desde el panel de propiedades.
-
Para cada nodo numérico, vaya al panel de propiedades y cambie el tipo a Unidades de escena. También puede establecer el tipo numérico como flotante, entero, porcentual o booleano, pero en el caso de las dimensiones, las unidades de escena son la opción lógica.
-
RailClone's Modificar La interfaz del panel tiene un Rollout llamado Parámetros . Contiene valores editables para cualquier nodo Numérico encontrados en el estilo. En el Lista de parámetros Deberías ver los 3 valores de tamaño que creamos en el paso anterior. Si edita estos valores, ¡la geometría del estilo cambia de tamaño!
precauciónSi ingresa un valor muy pequeño en el tamaño fijo X o Y, es posible que reciba una advertencia acerca de exceder el recuento de segmentos.
Esto sucede porque el tamaño pequeño de la geometría ha provocado que se creen demasiados segmentos. Si aumenta el tamaño, el objeto debería mostrarse correctamente.
Si desea evitar este problema, puede establecer un límite mínimo y máximo para el valor seleccionando el Numérico nodo en el Editor de estilos y activando Límites .
Sin embargo, en este ejemplo he optado por no hacerlo porque cuando el parámetro Tamaño fijo utiliza un valor de 0, en su lugar se utilizan las dimensiones de la geometría original. Esto me da la opción de establecer un tamaño manualmente introduciendo un valor, o usar las dimensiones originales dejándolas en 0.
-
También es posible exportar parámetros desde Generadores. En este ejemplo exportaremos la propiedad de rotación Z, para que pueda ajustarse desde el Panel de modificación. Haga clic derecho en el Generador E ir a Parámetros de exportación > Recorte > Rotación Z .
-
Crear un nuevo Numérico nodo y conéctelo al Entrada de rotación Z .
-
En el panel de propiedades, cambie el tipo del nodo numérico a flotante. La flotación tiene sentido en este caso, ya que el valor de rotación se mide en grados.
-
En el Panel de modificación, ahora tendrá un nuevo parámetro de Rotación Z. Al cambiar este valor se rota toda la matriz dentro de la spline de recorte.
Ejercicio: Exportación de atributos y cálculos simples con el operador aritmético
Ahora que tenemos el mosaico principal terminado, podemos agregar filas alternas de mosaicos de tamaño medio.
-
En primer lugar, cambia el material de la baldosa más pequeña. Para ello, añada un nuevo operador Material y conecte la salida del operador UVW XForm a la entrada del nodo Material.
-
Seleccione el nodo Material y, en el panel de propiedades, cambie el valor Desde y Hasta a a 2. Ya se ha aplicado un material con varios subobjetos que tiene una textura gris en la ranura ID 2..
-
Agregue un nuevo operador de transformación y conecte el nodo de material a su entrada. Los operadores de transformación permiten reutilizar la geometría cambiando el relleno, la alineación, el tamaño fijo y las transformaciones sin afectar al original. En este ejemplo, utilizaremos el operador de transformación para escalar el mosaico hasta la mitad de su tamaño, así que abre las Propiedades y activa el botón de anular el tamaño fijo.
-
Para poder controlar el Tamaño fijo exportaremos los parámetros de tamaño X e Y. Haga clic derecho en el nodo Transformar y haga clic Parámetros de exportación > Tamaño fijo > Tamaño fijo > X y Y .
-
A continuación necesitamos obtener el tamaño existente del mosaico grande. Para ello puedes exportar Atributos desde cualquier nodo. Estos le darán las dimensiones XY y Z actuales de cualquier nodo en cualquier punto del gráfico. Haga clic derecho en el nodo Segmento y seleccione Exportar atributos > Tamaño > X y Y .
-
Para calcular el nuevo tamaño de las teselas pequeñas, cree un nuevo nodo aritmético y conecte la salida del tamaño X del segmento a la primera entrada del nodo aritmético.
-
Conecte el Aritmética salida del nodo al Transformar nodos X Tamaño fijo aporte.
-
Para dividir el valor por la mitad, añada un nodo Constante e introduzca un valor de 2 en el panel Propiedades. Conecta esto a la segunda entrada del nodo aritmético.
-
Seleccione el nodo aritmético. Si vas al panel de propiedades, verás que tiene muchas operaciones diferentes, como sumar, restar, dividir, maximizar y minimizar. En este caso, configura la operación como Dividir.
-
Para calcular el tamaño Y del azulejo pequeño solo necesitamos repetir este proceso. Crea un nuevo nodo aritmético y conecta la salida del tamaño Y del segmento a la primera entrada del segundo nodo aritmético. Conecta la salida del nodo aritmético a la entrada de tamaño fijo Y del nodo de transformación. Conecta la constante existente a su segunda entrada y establece el modo en Dividir. Esto generará ahora un segmento de tamaño medio en ambos ejes.
-
Para ver esto en el estilo, conecte un operador de secuencia a la entrada predeterminada del generador. Conecta el nodo UVW Xform a la primera entrada y conecta el operador de transformación a la segunda entrada.
¡Felicidades! ahora ha exportado valores para controlar el tamaño de las teselas desde el panel de modificación y ha utilizado atributos y nodos aritméticos para generar automáticamente teselas que siempre tienen la mitad del tamaño de la tesela principal. En el siguiente ejercicio, moveremos las teselas a la posición correcta utilizando el relleno y los nodos de transformación fijos con una expresión simple.
Ejercicio: uso de expresiones
Si ha completado el ejercicio anterior correctamente, debería haber un patrón repetido en el eje X de un mosaico grande seguido de un mosaico de tamaño medio. A continuación, debemos agregar un segundo mosaico pequeño en el espacio marcado en amarillo en el siguiente diagrama:
Para hacer esto necesitaremos agregar otro mosaico pequeño a la secuencia y luego moverlo. izquierda y arriba en la posición correcta.
Mover el mosaico hacia arriba es bastante fácil, podemos usar la propiedad Y Fixed Translate Drop y el nodo aritmético existente que se usa para calcular el tamaño en Y del mosaico. Sin embargo, para moverlo hacia la izquierda no podemos usar X Fixed Translate porque dejaría un espacio en la matriz.
En su lugar, necesitamos usar Padding. Aquí se piensa que hay un pequeño problema, para alinear correctamente, el valor de relleno debe ser el mismo que el ancho del mosaico, lo que dará como resultado un segmento que no tiene medida en el eje X (ancho del mosaico - ancho del mosaico = 0 ). Un segmento con un tamaño de 0 no se tiene en cuenta en RailClone, ya que potencialmente puede resultar en la creación de un número infinito de segmentos. Para solucionar esto, restamos la mitad del tamaño del mosaico pequeño de la derecha del primer segmento y la mitad de la izquierda del segundo segmento pequeño. En la imagen debajo, el relleno de los mosaicos está marcado en gris oscuro, como puede ver cuando ignora estas áreas, el segundo mosaico se desliza hacia la izquierda y hacia la posición correcta.
-
Para crear el relleno necesitaremos duplicar el nodo Transform existente, ya que los dos mosaicos pequeños deben tener configuraciones diferentes. Para ello, selecciona el nodo de transformación , haz clic con el botón derecho y, a continuación, selecciona Copiar. Vuelva a hacer clic con el botón derecho y seleccione Pegar.
-
cablear el nuevo Transformar operador al Secuencia del operador tercero aporte.
-
Para mover el nuevo segmento hacia arriba, haga clic derecho en su nodo Transformar y seleccione Parámetros de exportación > Transformación fija > Traducción fija > Y .
-
Conecta el nodo aritmético existente que se usa para calcular la altura del mosaico pequeño a la traslación fija en Y Al introducir la ficha, ahora se moverá hacia arriba la altura de una ficha.
-
Para agregar el relleno, exporte el Relleno > Relleno derecho valor para el primer mosaico pequeño y Relleno > Relleno izquierdo para el segundo mosaico pequeño
-
Active Relleno en ambos nodos Transformar. Tenga en cuenta que los valores exportados se muestran en rojo.
-
El valor de relleno para ambas entradas debe ser la mitad del ancho del mosaico pequeño. Debido a que el mosaico pequeño ya tiene la mitad del ancho del mosaico grande, esto significa que el valor de relleno es un cuarto del ancho del mosaico grande. Además, para que los mosaicos se superpongan, debe ser un valor negativo. Podríamos hacer esto conectando dos nodos aritméticos como este:
Si tuviéramos que expresar esto en notación matemática estándar, entonces este conjunto de 4 nodos está creando la ecuación
-1 * (X Size / 4)
.Sin embargo, tuvimos que usar bastantes nodos para crear esa ecuación simple, por lo que otra opción es usar el editor de expresiones del operador aritmético para ingresar la ecuación usando la notación matemática estándar. Para ello, añade un nuevo nodo aritmético al grafo y conecta su salida a los dos valores de relleno que acabas de exportar.
-
Conecte el
Large_tile
segmento Tamaño X atributo a la entrada del nuevo nodo aritmético. -
Selecciona el Aritmética nodo y cambie el modo a Expresión desde el panel de propiedades
-
Haga clic en Editar expresión para abrir el Editor de expresiones ventana.
Fórmulas-
La ventana del editor de expresiones.
La ventana del editor de expresiones está dividida en 3 partes:
-
Panel de expresiones. Se encuentra a la izquierda y muestra todas las variables y funciones utilizables. Haga doble clic en un elemento de la lista para agregarlo a la ventana de edición o haga un solo clic para mostrar la ayuda.
-
Ventana de edición. Se utiliza para crear y editar la expresión. Para ver los efectos de una expresión, pulse Actualizar. Para crear una variable, puede escribirla manualmente o añadir variables y funciones haciendo doble clic en ellas en la lista de expresiones.
-
Ayuda con expresiones. Esta ventana proporciona información sobre la variable o función actualmente seleccionada o muestra el resultado de la expresión.
El editor utiliza la misma sintaxis que encontrará en el controladores de expresión encontrado en otras partes de Max.
Consiste en una sintaxis matemática sencilla que comprende operadores
+, -, *, /
, etc., constantes (pi, e, etc.), variables integradas de RailClone, entradas numéricas y funciones (incluidas funciones estándar, trigonométricas, vectoriales, de redondeo y condicionales que toman uno o más argumentos y devuelven un resultado).Para saber qué funciones, operadores y constantes integradas están disponibles, se incluye una lista completa en el panel de expresiones , en el lado izquierdo de la ventana.
Para ver una explicación de cada función, haga clic una vez en ella y se mostrará una descripción y un ejemplo de sintaxis en la ventana. Ayuda de expresiones panel en la parte inferior de la interfaz.
Puede leer más sobre esto y ver una lista completa de operaciones aritméticas admitidas en la documentación de Autodesk aquí (con la excepción de las variables predefinidas con valores variables, que no son compatibles). Además de las funciones proporcionadas por la clase de expresión de Max, hemos agregado una serie de variables específicas de RailClone. Verá la lista a la derecha del editor de expresiones y al hacer clic en cada uno de ellos obtendrá una breve descripción, pero para mayor comodidad encontrará un resumen a continuación.
-
-
Entradas
Input1,2,3, ... n
estos se refieren a cualquier valor conectado a las entradas de los nodos aritméticos. El número se refiere a la ranura de entrada contando de arriba hacia abajo. -
Variables splines
XSplineCoords,YSplineCoords
se refiere a la posición del segmento actual sobre el Spline en las coordenadas locales medidas desde el punto de pivote del objeto RailClone. Para acceder al valor de un eje en particular, el eje X, por ejemplo, debe agregar .x, .y o .z al final de la variable, p. XSplineCoords.x`XSectionLength, YSectionLength devuelve la longitud en unidades de escena de la sección actual donde una sección es la ruta entre dos segmentos de inicio, fin, esquina o uniforme.
XSplineLength, YSplineLength
devuelve la longitud en unidades de escena del spline actual.XSplinePosition, YSplinePosition
devuelve la posición del segmento actual en la spline. Esto no se mide como una medida absoluta en unidades de escena, sino como un valor decimal entre 0 y 1 que representa la posición del segmento actual a lo largo del spline.XSectionPosition, YSectionPosition
está arriba pero en lugar de devolver la posición a lo largo de la spline, devuelve la posición a lo largo de la sección de la spline donde una sección es la ruta entre dos segmentos de inicio, fin, esquina o uniforme.XSplineType
devuelve 0 si la spline es una línea y 1 si es una curva. Útil para declaraciones condicionales.XSplineMatID
devuelve el ID del material aplicado a la sección spline actual. -
Vértice X
XVertexType
Devuelve 0 si el vértice actual o anterior es del tipo suave, 1 si es una esquina, 2 si es un Bézier y 3 si es un Bézier-Corner. Útil para declaraciones condicionales.XVertexAngle
devuelve el ángulo entre los segmentos X Spline en el vértice actual medido entre0
yPI
radianes. (0 - 180 grados cuando se convierte)XVertexWideAngle
devuelve el ángulo entre los segmentos X Spline en el vértice actual medido entre0
y2 * PI
radianes. (0 - 360 grados cuando se convierte) -
Segmentos
SegmentXCounter, SegmentYCounter
devuelve el índice del segmento actual a lo largo de la ruta. Tenga en cuenta que hay dos contadores separados: uno para los segmentos predeterminados y otro para Inicio/Fin/Esquina/Combinación uniforme.
-
-
Introduzca la expresión
-1 * (Input1/4)
. En estas expresiones, Entrada1 es el valor canalizado por el nodo conectado a la primera entrada. 12. El estilo ahora se actualizará con un patrón alterno de un mosaico grande, seguido de dos mosaicos pequeños, uno encima del otro. Si edita el tamaño del mosaico grande, los mosaicos pequeños también se ajustan automáticamente.
Ejercicio: crear filas horizontales de mosaicos pequeños
El estilo está casi completo, sólo necesitamos crear filas horizontales alternas de pequeños mosaicos. Para hacer esto, siga estos pasos.
-
Cree un nuevo operador de secuencia y conéctelo entre el operador de secuencia existente y el del generador Entrada predeterminada
-
Seleccione el nuevo operador de secuencia y cambie el modo a Incremento en Y desde el Propiedades Panel.
-
No necesitamos que los segmentos de estas filas se superpongan, así que copia y pega el primero de los nodos de transformación existentes y, a continuación, haz clic con el botón derecho y desactiva el parámetro de relleno exportado.
-
Cablee el tercero (nuevo) Transformar operador al nuevo Secuencia del operador segundo aporte.
-
¡Ahora tiene un estilo con filas y columnas alternas de mosaicos pequeños y grandes con tamaño ajustable en los ejes X, Y y Z y rotación!
Ejercicio: activar/desactivar funciones
Finalmente, agregaremos una última función al estilo y demostraremos cómo deshabilitar nodos para que las características de un estilo se puedan activar y desactivar desde el panel de modificación. En este ejemplo, proporcionaremos dos casillas de verificación que activan o desactivan las filas horizontales o verticales de mosaicos pequeños habilitando y deshabilitando los dos operadores de secuencia.
Cuando un nodo con múltiples entradas está deshabilitado, la geometría conectada a la primera entrada se pasa al siguiente nodo activo en el gráfico. Se ignora cualquier geometría en las otras entradas. En este ejemplo estamos usando operadores de secuencia, por lo que deshabilitarlos permitirá que la primera entrada continúe hacia el generador, deshabilitando el patrón causado por el nodo.
-
Haga clic derecho en ambos generadores de secuencia y Exportar el Encendido apagado parámetros.
-
Para cada uno de estos parámetros exportados, cree un nuevo Numérico nodo y establezca el Tipo a Booleano .
-
Asigne a cada uno un nombre apropiado y conéctelo a las entradas de encendido/apagado exportadas. Ahora puede desactivar estos nodos haciendo clic en las casillas de verificación que se encuentran en el Rollout Parámetros del Panel Modificar.
Esto completa el estilo de mosaico. Si ha seguido todos los ejercicios de este capítulo, habrá exportado parámetros y atributos, creado nodos numéricos para controlar aspectos del estilo desde el panel de modificación y utilizado nodos constantes para establecer valores fijos. También habrá utilizado el editor de expresiones para crear una ecuación simple y minimizar la cantidad de nodos que deben crearse para funciones matemáticas comunes. En el próximo capítulo veremos las ID de materiales y UVws y usaremos valores exportados para realizar un control más avanzado de la aleatorización de ID de materiales.
Tutoriales relacionados
![Rollout general](/es/assets/media/railclone-tutorial-bookshelf-5825e6d8092e9-966d0d5-360.webp)
En este tutorial de Consejos y trucos, analizamos cómo se puede utilizar RailClone para crear muebles procedimentales. Siga este ejercicio para aprender cómo exportar muchas propiedades para permitir al usuario ajustar la altura, el ancho y la distancia entre estantes de una estantería directamente desde el panel de modificación
![Rollout general](/es/assets/media/railclone-tutorial-counting-5825e6d8255c5-b539a0c-360.webp)
Para algunos estilos es necesario crear números que se incrementen para cada segmento. En este episodio de Consejos y trucos analizamos dos formas de crear secuencias de números. El primer ejemplo ilustra cómo crear una serie de números recorriendo la geometría. En la segunda parte manipulamos las ID de materiales de un segmento usando expresiones para crear números usando materiales de objetos múltiples.
![Rollout general](/es/assets/media/railclone-tutorial-uvw-xform-5825e6d842231-1647296-360.webp)
En este ejercicio avanzado observamos un
Fragmento de gráfico que ahorra tiempo para mapear segmentos y aleatorizarlos con mosaicos o ladrillos individuales a partir de texturas.
Este tutorial presenta nodos numéricos, constantes, aritméticos y atributos exportados.
![Rollout general](/es/assets/media/railclone-tutorial-bridge1-5825e6d822c57-e90fabb-360.webp)
En la segunda parte de este tutorial intermedio sobre la creación de puentes, demostramos cómo usar el nodo aritmético y expresiones para crear un puente con una plataforma que puede deformarse en el eje Z con pilares que se escalan automáticamente para soportarlo.
Para obtener más información, consulte el Segmentos, Arreglos 2D - Generador A2S, Matrices 1D - Generador L1S, Exportación de parámetros y Aritmética secciones de la documentación en línea.