Nuke tcl脚本
Nuke tcl脚本
lingyunTCL 帮助文档
http://www.nukepedia.com/reference/Tcl/
basic表达式
pi
: 圆周率pix, y
: x和y的坐标width, height
: 长和宽frame
: 当前帧first_frame, last_frame
: 工程的第一帧,和最后一帧
?:
判断表达式,例子 frame<50?1:0
, 当帧数为50的时候,
值为1,否则为0。
它也可以进行多层嵌套:frame<50?(frame>25?0.5:1):0
math
sqrt(a)
开根号
hypot(a, b)
先把a和b平方结果相加,再开根号
pow(a, b)
幂函数,返回a的b次方a
bs(a)
取绝对值
min(a, b), max(a, b)
返回参数的最小,最大值
clamp(a, x, y)
将a的值限制在x和y之间
if a<x, a==x;if a>y, a==y
如果不传参,x和y的默认值为0和1。
取整
int(a)
直接去小数点取整
ceil(a)
向上取整
floor(a)
向下取整
角度弧度计算
degrees(pi)
返回180 (公式为:180 * 弧度 / pi)radians(180)
返回3.14159
sin cos tan asin acos atan
三角函数
noise random
噪波和随机函数
curve 关键帧
默认的给动画key了关键帧,右键打开表达式,都会显示一个curve的函数
可以对其进行修改(修改后,虚线为之前的,实线为修改后的):curve(1)
将所有关键帧都改为第一帧的数值curve(frame)
没有任何更改,曲线为每一帧本身的数值curve(frame+10)
向前偏移10帧curve(frame+TimeOffset2.time_offset)
关联节点”TimeOffset2”的time_offset参数
一个例子: transform节点位移的时候指针始终指向位移的方向。degrees(atan(translate.y.derivative/translate.x.derivative))
判断像素是否正常
有时候会遇到rgb的数值,为inf或者为nan
为素材添加一个Expression节点(这里的例子是红通道为inf,绿通道为nan)isinf(r)?0:r
isnan(r)?0:g
input
一个节点的input端口
可以用在继承节点input端口的某个属性input0.white
(这里是创建了两个Grade节点为例子)
topnode
一套节点的最上一个节点[topnode].boxsize
(这里继承的是一个CheckerBoard节点的boxsize参数)
parent
父节点,比如将两个节点打包,整个包就是被打包节点的父节点。
用法:
可以在group上添加一个knob,比如名为test_a
然后在group里选择一个节点属性,添加表达式parent.test_a
value
返回指定参数的值
比如创建一个Blur节点
在节点Node标签,Label里写[value size]
或者使用[python int(5.0)]
(这里显示的是python运行这行代码的输出结果)
inrange(a, x, y)
数值a是否在x到y的范围内,
如果a在x到y的范围内,返回1
反之,则返回0.
这里的一个例子是,后台渲染的时候,开启defocus节点,
当nuke以Gui打开的时候,禁用defocus节点。
这里会用到nuke的一个变量,$gui
当nuke以窗口打开的时候 $gui 为1,以后台打开则为0
在defocus节点的disable属性添加一个表达式$gui