El sistema de parámetros en TouchDesigner implementa cuatro modos de operación fundamentales para establecer referencias y dependencias de datos: Constante, Expresión, Exportación y Vinculación (Bind). Estos modos dictan cómo un parámetro obtiene y procesa su valor. El modo por defecto, Constante (ícono gris), asigna un valor estático que persiste hasta su modificación manual directa. El operador Constant CHOP sirve como un generador primario de canales, creando por defecto un canal `chan1` con un valor flotante de 0.0 en un rango normalizado de 0 a 1. La adición de canales a través de su interfaz de parámetros genera nuevos parámetros de valor numérico. Es crucial observar que el nombre de un parámetro en la interfaz de usuario (UI), al ser inspeccionado mediante un hover, revela su nombre de miembro interno accesible vía Python, que es fundamental para la escritura de scripts y expresiones. Por ejemplo, un menú desplegable con la etiqueta ‘Triangle’ puede corresponder al valor de string ‘tri’.
El modo Expresión (ícono azul) permite la asignación de valores mediante una expresión de Python evaluada en tiempo real. Una referencia a un canal CHOP se establece arrastrando el canal de un operador de origen al campo de un parámetro de destino. Esto genera automáticamente una expresión con la sintaxis `op(‘nombre_operador’)[‘nombre_canal’]`. Esta expresión es editable, permitiendo la integración de operaciones aritméticas y lógicas de Python para manipular el valor de entrada, como `op(‘null1’)[‘v1’] / 2` o `op(‘null1’)[‘v1’] + 2`. Las rutas a operadores anidados dentro de contenedores se resuelven utilizando una sintaxis de barra inclinada, por ejemplo: `op(‘container1/operator1’)[‘channel1’]`. Esto permite la referenciación de datos a través de diferentes niveles jerárquicos de la red sin necesidad de operadores de salida intermedios como Out CHOPs.
El modo Exportación (ícono verde) establece un enlace de datos unidireccional y optimizado desde un origen (típicamente un canal de un DAT que procesa datos CHOP, como un CHOP Execute, o directamente desde un CHOP a través de la tabla de exportación del operador) a un parámetro de destino. Al arrastrar un canal y seleccionar ‘Export Chop’, el campo del parámetro de destino se bloquea (se vuelve no editable) y adopta un color verde, indicando una conexión directa. Esta metodología es eficiente para grandes volúmenes de datos, ya que el valor se «empuja» desde el origen al destino en lugar de ser «tirado» por el destino en cada frame, como ocurre con las expresiones.
El modo Vinculación (Bind, ícono morado) crea una sincronización de parámetros bidireccional. Cualquier cambio en uno de los parámetros vinculados se refleja inmediatamente en el otro. Para establecer una vinculación intra-operador, se arrastra el parámetro de valor de un canal al de otro dentro del mismo diálogo de parámetros, generando una expresión relativa que utiliza el objeto `me`: `me.par.value_parameter_name`. Para vinculaciones inter-operador, el proceso es similar pero entre ventanas de parámetros flotantes de distintos operadores. La sintaxis resultante es absoluta, especificando la ruta del operador de origen: `op(‘nombre_operador_origen’).par.parameter_name`. Al igual que las expresiones, los parámetros vinculados pueden ser manipulados aritméticamente, por ejemplo `me.par.bind_a + 0.2`, aunque esto rompe la simetría de la vinculación bidireccional, creando una dependencia unidireccional modificada. La nomenclatura de canales en operadores como el Constant CHOP es crítica: los espacios en los nombres de los canales son interpretados como delimitadores, resultando en la creación de múltiples canales. Por lo tanto, se debe utilizar guion bajo (`_`) o guion medio (`-`) para nombres de canales compuestos.