Clausura¶
El nodo Clausura definirá una zona que encapsulará una sección de nodos reutilizable, que se comportará como una función. Se especificarán entradas y salidas, así como una lógica interna, y podrá ser ejecutada en cualquier parte del árbol de nodos, mediante el uso de un nodo Evaluar clausura.
Las clausuras permitirán a los usuarios incorporar una lógica procedimental a grupos de nodos, permitiendo crear herramientas más modulares y adaptables. En vez de tener que duplicar o editar un grupo existente, una clausura permite exponer un comportamiento definido por el usuario, preservando a la vez la estructura del sistema principal.
Una zona de clausura vacía.¶
Entradas¶
En las clausuras se definirán entradas, que actuarán como parámetros para la lógica interna de nodos. Estas entradas podrán ser creadas arrastrando el conector libre de entrada hacia otro conector o agregando conectores de forma manual en las propiedades del nodo. Cada entrada será un parámetro que podrá recibir la clausura cuando sea evaluada en otra parte del árbol de nodos.
Propiedades¶
El nodo Clausura no contiene propiedades funcionales en sí mismo, sin embargo su interfaz es configurable desde la pestaña Nodo de la Barra lateral. Será posible agregar, eliminar y renombrar sus entradas y salidas, para definir la firma de la clausura.
- Sincronizar conectores
Updates the current node to match the socket signature of the connected nodes. Use this after renaming, adding, or removing sockets.
- Definir firma
Marcará a la zona actual como el origen de una firma de clausura a la cual otros nodos podrán hacer referencia. Esto asegurará definiciones consistentes de entradas y salidas a lo largo de las distintas instancias de la clausura.
Elementos de entrada¶
- Lista de conectores de entrada
Mostrará una entrada por cada conector definido en la clausura. Hacer doble clic sobre una entrada para renombrarla.
- Agregar elemento
Permitirá agregar un nuevo conector de entrada a la clausura.
- Eliminar elemento
Borrará el conector de entrada seleccionado.
- Tipo
Permitirá definir el tipo de datos para el conector seleccionado (p.ej: Decimal, Vector, Geometría, Objeto, Paquete). Para los datos de tipo valor, se mostrará un control de valor predefinido y será usado cuando el conector se encuentre libre.
- Forma
Defines the data structure supported by the input socket, such as a Single value, Field, or Grid. The shape determines how the data is evaluated and passed through the node network. See Forma de conectores for more information.
Elementos de salida¶
Disponible cuando se seleccione el nodo de salida de la clausura.
- Lista de conectores de salida
Mostrará una entrada por cada elemento de la clausura. Hacer doble clic para renombrar.
- Agregar elemento
Add a new output socket to the closure.
- Eliminar elemento
Delete the selected output socket.
- Tipo
Permitirá definir el tipo de datos para el conector seleccionado (p.ej: Decimal, Vector, Geometría, Objeto, Paquete). Para los datos de tipo valor, se mostrará un control de valor predefinido y será usado cuando el conector se encuentre libre.
- Forma
Defines the data structure supported by the input socket, such as a Single value, Field, or Grid. The shape determines how the data is evaluated and passed through the node network. See Forma de conectores for more information.
Salidas¶
Closures define outputs that return values to the node tree in which they are evaluated. Outputs can be created by dragging a socket from within the zone into the blank socket on the closure’s output, or by adding sockets manually in the node’s properties.
Uso¶
Closures define reusable logic that can be injected into another node tree. They are commonly used in procedural systems where part of the behavior should remain user-defined.
Typical use cases include:
Defining a custom scattering rule for a terrain generator.
Describing how to distribute or modify instances procedurally.
Providing adjustable mappings, field evaluations, or transformation logic.
Using External Values¶
Closures can capture values from outside their zone. A captured value is stored as part of the closure definition and remains available even when the closure is evaluated in a different context.
Captured values make it possible to preserve external parameters—such as scale, density, or color—without creating explicit input sockets. This makes closures cleaner and easier to reuse in different node trees.
Capturing an external input value inside a closure.¶
Ejemplo¶
In a terrain generator node group, replace the tree distribution logic with an Evaluate Closure node.
Expose the closure input on the group’s interface.
In the main node tree, create a Closure Zone and connect it to that input.
Inside the closure zone, define the desired tree placement logic.
When the generator evaluates the closure, the custom distribution defined in the zone is executed instead of the default behavior.
A Closure Zone defining a custom distribution pattern for tree scattering.¶