Exposing parameters | Substance 3D Designer
Exposing node inputs
In a Substance 3D Designer model graph, most node parameters can be exposed to other nodes in the graph as node inputs.
Exposing a parameter is done by any of the two buttons next to its Reset to default button, which results in an input connector being added to the node. The data received by this input connector is then used as the value for the exposed parameter.
These two buttons do the following:
- Create an input pin for this parameter: enabling this button exposes the parameters by creating an input connector on the node. If the connector is not connected to another node, or invalid data is passed to it, the parameter’s default value is used instead
- Copy value to a new node and link it to this parameter: this exposes the parameter, and automatically carries its current value to a new Constant node which is then connected to the parameter’s input pin
Exposed parameters can be reversed to their default state by clicking the Create an input pin for this parameter button. This removes the parameter’s input connector from the node and deletes any existing connection to it.
Exposing graph inputs
Constant nodes can be exposed to the end user as graph inputs. These are then available as node inputs in all instance nodes referencing this graph.
Click any Constant node and select the Exposed option in the contextual menu to expose its value.
The Properties panel will then display the properties of this new graph input.
Graph input properties
- Identifier String
Unique name of the graph input parameter.
It is recommended to use safe characters: letters A-Z a-z, numbers 0-9, hyphen -, underscore _. Unsupported characters are replaced by an underscore _.
- Current value Depends on value type
The current value of this graph input. It will also be used as the default value for this input in instance nodes referencing this graph.
This value can be reset to the default value for this type , by clicking the Reset to Default button next to the label
- Ranges (Optional )
- Soft range Depends on value type
The soft range is used to set the bounds of the parameter's widget in graph properties and instance nodes, and is always adjusted to both fit in the hard range and contain the value. When this parameter is reset to its default value in instance nodes, the range of the parameter widget is also reset to this soft range.
- Hard range Depends on value type
The hard range defines the bounds of accepted values. It is fixed and defined by the user. Input values out of this range are clamped to the range's closest limit.
- Soft range Depends on value type
- Description String
The bespoke description of the usage and impact of this graph input.
- Group String
Set a group name to group parameters together into collapsible sections, to keep long lists of parameters clean and manageable. Parameters are grouped together if they share the exact same group name. Use the
/character to create sub-groups – e.g.
My Group/My Sub-group
- Display Name String
The label of this graph input in the user interface. You may use any characters to make a more user-friendly label.
If this field is left blank, the Identifier is used as label.
- Visible If String
The parameter is displayed in instance nodes of this graph if one of these criteria is met:
- The expression is left blank
- The expression is invalid
- The expression is valid and returns True
- Input connector visible by default Boolean
When True , the input connector for this parameter will be exposed by default in instance nodes of this graph
All graph inputs are listed and can be interacted with under the Graph Inputs section of the Graph properties, which you can access by performing either of these actions:
- Clicking LMB on the graph item in the Explorer panel
- Double-clicking LMB on empty space in the Graph view
Using parameter functions
In the context of a Substance model graph, a function is a series of connected algebra and/or logic operations which provide a unique output of a given type – e.g. a Float value – similarly to what can be achieved in a Function graph.
Functions need to be implemented in the main graph using the available Constant, Operation and Cast nodes in the Library. The result can then be passed as a parameter value by using the input pin of exposed parameters.
You can toggle the display of numerical values in nodes by using the Display node result option in the Information drop down menu, located in the Graph View's toolbar.