2011-01-21

python in expression

6.2になってexpression内でpythonを使うのがずいぶんと楽チンになった。
下記コードをgraph nodeにコピペしてTransform2ノードの 位置x のフィールドでショートカット[=]で、みてみると分かりやすいはず
set cut_paste_input [stack 0]
version 6.2 v1
push $cut_paste_input
Transform {
 translate {-565 -75}
 center {1024 778}
 name Transform1
 selected true
 xpos 118
 ypos -28
}
Transform {
 inputs 0
 translate {{"\[python -execlocal if\\ nuke.toNode('Transform1').knob('translate').value()\\\[0\\]\\ >\\ 0:\\n\\ \\ \\ a\\ =\\ \\ nuke.toNode('Transform1').knob('translate').value()\\\[0\\]\\nelse:\\n\\ \\ \\ \\ a\\ =\\ -1\\ *\\ (nuke.toNode('Transform1').knob('translate').value()\\\[0\\])\\nret=a]"} 0}
 center {1024 778}
 name Transform2
 selected true
 xpos 120
 ypos 34
}

で、こんな感じで、エクスプレッションウインドウの右にあるボタンを全てオンにする。ボタンは 左から複数行のコードを許すボタン、エクスプレッションを標準のtclでなくpythonにするボタン、最後が、返り値(ret、return)をエクスプレッションの結果として出力するボタン