Parámetros y atributos
Casi todos los valores de cada objeto, operador, generador y nodo de parámetro se pueden Exportado No, es que tiene su propia entrada. Esta es una característica poderosa que le permite controlar las propiedades de un nodo desde el panel de modificación para hacer que compartir y reutilizar sus estilos sea mucho más fácil, o puede construir relaciones numéricas entre partes del gráfico usando atributos exportados y operaciones aritméticas.
Exportación de parámetros
Exportar parámetros es muy sencillo. Haga clic derecho en cualquier nodo y en la parte inferior del menú hay una opción para Parámetros de exportación que contiene 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:
1. Nodos constantes
Los nodos constantes le permiten ingresar un valor que solo se puede cambiar desde el editor de estilos. A diferencia del nodo Numérico, esta propiedad no se puede animar.
2. Nodos numéricos
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.
3. Atributos exportados
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.
4. Nodos aritméticos
Los nodos aritméticos se utilizan para realizar operaciones matemáticas comunes con valores de nodos numéricos adjuntos, nodos constantes y atributos. Usando 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.
-
El spline de recorte se puede utilizar para establecer automáticamente el tamaño de la matriz, para ello seleccione el generador y encienda Ampliar tamaño X/Y al área de 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. -
Debido a que vamos a cambiar la escala de este segmento y no queremos que las texturas se distorsionen, podemos mapear automáticamente la geometría directamente en RailClone. Para hacer esto, seleccione el nodo del segmento y vaya a la Deformar pestaña de la Propiedades Panel. Encender Aplicar asignación de cuadros e introduzca un valor de 300cm Para el Longitud**AnchoyAltura** .
-
Ahora tendrás un estilo de mosaico simple. Sin embargo, observe que, aunque hemos mapeado la geometría, la textura de cada mosaico es idéntica. Para agregar alguna variación, podemos aleatorizar las coordenadas del mapeo ultravioleta. Para hacer esto agregue un Forma UVW X operador y cablearlo entre el segmento y el generador.
-
Seleccione el operador UVW XForm y abra el Aleatorio pestaña en el Propiedades Panel. Encender Compensar e introduzca un valor de
-150cm
paraU
yV \* Min
y150cm
en el U y V máx. . También enciende Rotación e introduzca 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. Notarás que los nombres de los nodos numéricos cambian automáticamente para reflejar las entradas a las que están conectados, pero si deseas nombrarlos manualmente, puedes hacerlo desde el Propiedades Panel.
-
Para cada nodo numérico, vaya a la Propiedades Panel y cambie el tipo a Unidades de escena . También puede configurar el tipo numérico como flotante, entero, porcentual o booleano, pero para las dimensiones, las unidades de escena es 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 elegí no hacer esto porque cuando el parámetro Tamaño fijo usa un valor de 0, se usan las dimensiones de la geometría original. Esto me da la opción de establecer un tamaño manualmente ingresando un valor o usar las dimensiones originales dejándolas configuradas 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 .
-
Desde el Panel de propiedades, cambie el valor del nodo numérico. Tipo a Flotar . Flotar 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 del azulejo más pequeño. Para hacer esto, agregue un nuevo Material operador y cablee la salida del Forma UVW X operador a la entrada del nodo Material.
-
Selecciona el Material nodo y desde el panel de propiedades, cambie el De y A valor a 2 Ya hay un material de objeto multisub aplicado que tiene una textura gris en la ranura de identificación 2.
-
Agregar un nuevo Transformar operador y conecte el nodo de material a su entrada. Los operadores de transformación le permiten reutilizar la geometría cambiando el relleno, la alineación, el tamaño fijo y las transformaciones sin afectar el original. En este ejemplo usaremos el operador de transformación para escalar el mosaico a la mitad de su tamaño, así que abra Propiedades y active el Tamaño fijo anular el botón de alternancia.
-
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 los mosaicos pequeños, cree un nuevo Aritmética nodo y cablear el Segmento X tamaño de salida 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, agregue un Constante nodo e introduzca un valor de 2 en el panel Propiedades. Conecte esto al Aritmética Segunda entrada del nodo.
-
Selecciona el Aritmética nodo. Si va al panel de propiedades, verá que tiene muchas operaciones diferentes, incluidas sumar, restar, dividir, máximo y mínimo. En este caso establezca la operación en Dividir .
-
Para calcular el tamaño Y del mosaico pequeño sólo necesitamos repetir este proceso. crear un nuevo Aritmética nodo y cablear el Tamaño Y del segmento salida a la primera entrada del segundo nodo aritmético. Conecte el Aritmética salida del nodo al Transformar nodos Entrada de tamaño fijo Y . Conecte la constante existente a su segunda entrada y establezca el modo en Dividir . Esto ahora generará un segmento de tamaño medio en ambos ejes.
- Para ver esto en el estilo, conecte un Secuencia operador al Valor predeterminado del generador aporte. Conecte el Forma X UVW nodo a la primera entrada y cablee el Transformar operador a la segunda entrada.
¡Felicidades! Ahora ha exportado valores para controlar el tamaño de los mosaicos desde el panel de modificación y ha utilizado atributos y nodos aritméticos para generar automáticamente mosaicos que siempre tienen la mitad del tamaño del mosaico principal. En el siguiente ejercicio, moveremos los mosaicos a la posición correcta usando relleno y 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 el Y traducción fija droperty y el nodo aritmético existente que se utiliza para calcular el tamaño Y del mosaico. Sin embargo, para moverlo hacia la izquierda no podemos usar X Fix Translate porque dejará 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 Transformar existente ya que los dos mosaicos pequeños deben tener configuraciones diferentes. Para hacer esto, seleccione el Transformar nodo, haga clic derecho y luego seleccione Copiar . Haga clic derecho nuevamente 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 .
-
Conecte el nodo aritmético existente que se utiliza para calcular la altura del mosaico pequeño al Entrada de traducción fija Y el mosaico ahora subirá la altura de un mosaico.
-
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 operador aritmético Editor de expresiones para ingresar la ecuación usando notación matemática estándar. Para hacer esto agregue un nuevo Aritmética nodo al gráfico y cablear su salida a los dos Relleno valores que acaba 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 enumera 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.
-
Editar ventana . Se utiliza para crear y editar la expresión, para ver los efectos de una expresión presione Actualizar. Para construir una variable, puede escribirla manualmente o agregar variables y funciones haciendo doble clic en ellas desde la lista de expresiones.
-
Ayuda de 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 integrados están disponibles, se incluye una lista completa en la 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.
-
Crear un nuevo Secuencia operador y cablearlo entre los existentes Secuencia operador y el Entrada predeterminada del generador
-
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 copie y pegue el primero de los nodos de transformación existentes y luego haga clic derecho y gire. Apagado 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
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
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.
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.
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.