Every operator in TouchDesigner has a set of control Parameters that can be integer or floating point numbers, menus, binary toggles, text strings or operator paths, which determine the output of the operator.
The parameter dialog is normally at the top-right of the network editor. Pressing 'p' turns off and on the parameter dialog. The parameter dialog for any operator can be opened by right-clicking on the operator and selecting "Parameters...".
Parameters in TouchDesigner only exist in Operators (OPs or "nodes"). Parameter types include:
- numbers, both integer and floating point
- number pairs, triples or quadruples (e.g. width and height, XYZ position, RGBA color)
- on-off flags (toggles)
- text strings
- paths to other nodes in TouchDesigner networks
- "pulse" buttons that initiate actions like running scripts
- python objects - any python object that you can make using numbers, True/False values, strings, lists and dictionaries. The python object has to be self-contained - it cannot refer to other operators or parameters, for example.
See the Component Editor to create custom parameters and see the range of parameter types that are available.
Parameter Modes and Evaluationedit
Every Parameter can be in one of four modes: Constant Mode, Expression Mode, Export Mode or Bind (Binding) Mode. An "evaluated parameter" is resulting value of the parameter based on its mode, expressions, exports or binds.
TIP: Pressing ctrl-e/Cmd+e with the cursor in a parameter brings up the current parameter’s expression in your text editor, making it easier to see and edit long expressions.
Parameters can be driven by CHOPs by Exporting CHOP channels to a parameter, putting the parameter in Export Mode. In the example Parameter Dialog below, the Y-Translate parameter is being controlled via a CHOP channel export. This is indicated by the green color of the parameter in the dialog (think green for CHOPs!).
op('pattern1').par.phase is the python parameter object which usually gets converted to an evaluated value for you, like when you use it in a parameter expression. More safely, especially when using a parameter in scripts, use
op('pattern1').par.phase.eval(), which always gives you the final evaluated value.
Parameters have numerous other attributes, some are parameter type-dependent.
- name (internal python name you see when you roll over the parameter)
- default value
- minimum, maximum, clamp low, clamp high, clamp low value, clamp high value (for integers and floats)
- menu entries
- enable flag and enable expression (determines if you can access the parameter - usually means it it not relevant in the current state of other parameters)
- read-only - the parameter is active and evaluating but you can't hand-edit it until you turn off read-only
- section divider - in UI a line appears after the prior parameters
Custom Parameters are user created parameters which can be added to Components, Custom Operators, and Script Operators (Script TOP / Script CHOP / Script SOP / Script DAT). In the case of Components and Script Operators, you can create/edit/delete them in the Component Editor.
For more information see Custom Parameters.