Expresiones en Nuke: obtener el filename de un Read activo por un Switch.

Para usar el valor de un parámetro en Nuke desde otro operador, basta con llamarlo mediante una expression (ej. [value knob.parameter] ) apuntando al parámetro en cuestión. Un caso práctico de esto puede ser usar el mismo nombre de archivo de la imagen de entrada en un Read, en un Write. En sí, esto no sería demasiado aconsejable en la mayoría de casos ya que sobreescribiríamos el archivo original. Pero si puede ser útil, coger toda o parte de la ruta o bien, solo el nombre de archivo, para guardar en la misma ubicación con diferente nombre, o con idéntico nombre en otra ubicación.

Ahora bien, si necesitamos obtener el valor de un parámetro que está detrás de un nodo Switch, pero en función del valor de este, debemos recurrir a una sentencia condicional.

En mi caso, he necesitado obtener el filename del Read activo de entre tres nodos Read, determinado por un Switch que controlo manualmente. Para ello he usado una expression como esta:

[ if {[value Switch1.which]==”0”}{return [value Read1.file]} else { if {[value Switch1.which]==”1”}{return [value Read2.file]} else {if {[value Switch1.which]==”2”}{return [value Read3.file]}} } ]