1. abs(x)
目的:返回浮点数 x 的绝对值。
参数:x(任意数值)
示例:
abs(-5) # 返回5
abs(3.14) # 返回3.14
2. acos(x)
目的:计算 x 的反余弦值(余弦为 x 的角度),x 超出 [-1,1] 时返回 nan。
参数:x(需满足 – 1≤x≤1)
示例:
acos(0) # 返回1.5708(π/2弧度)
acos(2) # 返回nan
3. asin(x)
目的:计算 x 的反正弦值(正弦为 x 的角度),x 超出 [-1,1] 时返回 nan。
参数:x(需满足 – 1≤x≤1)
示例:
asin(0.5) # 返回0.5236(π/6弧度)
asin(2) # 返回nan
4. atan(x)
目的:计算 x 的反正切值,返回值范围为 [-π/2, π/2]。
参数:x(任意数值)
示例:
atan(1) # 返回0.7854(π/4弧度)
atan(0) # 返回0
5. atan2(x, y)
目的:计算向量 (x,y) 与 x 轴的夹角,常用于角度计算。
参数:x(横向分量),y(纵向分量)
示例:
atan2(1, 1) # 返回0.7854(π/4弧度)
atan2(0, 1) # 返回1.5708(π/2弧度)
6. ceil(x)
目的:将 x 向上舍入到最接近的整数。
参数:x(任意数值)
示例:
ceil(3.2) # 返回4
ceil(-2.8) # 返回-2
7. clamp(x, min, max)
目的:将 x 限制在 [min, max] 范围内。
参数:x(目标值),min(最小值),max(最大值)
示例:
clamp(5, 0, 3) # 返回3
clamp(-1, 0, 1) # 返回0
8. clamp(x)
目的:将 x 限制在 [0.0, 1.0] 范围内。
参数:x(目标值)
示例:
clamp(1.5) # 返回1
clamp(-0.3) # 返回0
9. cos(x)
目的:计算弧度 x 的余弦值。
参数:x(弧度值)
示例:
cos(0) # 返回1
cos(pi/2) # 返回0
10. curve(frame)
目的:返回指定帧的动画曲线 y 值(默认当前帧)。
参数:frame(可选,默认当前帧)
示例:
curve(100) # 获取第100帧曲线值
curve() # 获取当前帧曲线值
11. degrees(x)
目的:将弧度 x 转换为角度。
参数:x(弧度值)
示例:
degrees(pi) # 返回180
degrees(pi/2) # 返回90
12. exp(x)
目的:计算自然常数 e 的 x 次幂(e^x)。
参数:x(任意数值)
示例:
exp(0) # 返回1
exp(1) # 返回2.7183
13. fBm(x, y, z, octaves, lacunarity, gain)
目的:生成多层分形布朗运动噪波,常用于自然纹理。
参数:
- x,y,z:坐标
- octaves:叠加层数(≥2)
- lacunarity:频率倍增(>1)
- gain:振幅衰减(<1)
- 示例:
fBm(frame*0.1, 0, 0, 3, 2, 0.5)
14. fabs(x)
目的:返回浮点数 x 的绝对值(同 abs,更适用于浮点数)。
参数:x(任意浮点数)
示例:
fabs(-5.5) # 返回5.5
fabs(3) # 返回3
15. floor(x)
目的:将 x 向下舍入到最接近的整数。
参数:x(任意数值)
示例:
floor(3.9) # 返回3
floor(-2.1) # 返回-3
16. frame()
目的:返回当前帧号。
参数:无
示例
frame() # 若当前为第50帧,返回50
17. from_sRGB(color_component)
目的:将 sRGB 值转换为线性光值。
参数:color_component(sRGB 值 0-1)
示例:
from_sRGB(0.7416) # 返回0.5(线性值)
18. hypot(x, y)
目的:计算直角三角形斜边长度(√(x²+y²))。
参数:x(直角边 1),y(直角边 2)
示例:
hypot(3, 4) # 返回5
hypot(0, 5) # 返回5
19. int(x)
目的:将 x 截断取整(向零取整)。
参数:x(任意数值)
示例:
int(3.8) # 返回3
int(-2.3) # 返回-2
20. lerp(a, b, x)
目的:在 a 和 b 之间线性插值,x=0 时返回 a,x=1 时返回 b。
参数:a(起始值),b(结束值),x(系数 0-1)
示例:
lerp(10, 20, 0.5) # 返回15
lerp(0, 1, frame/24) # 24帧内从0过渡到1
21. log(x)
目的:计算 x 的自然对数(ln (x))。
参数:x(正数)
示例:
log(exp(1)) # 返回1
log(10) # 返回2.3026
22. max(x, y, …)
目的:返回多个数值中的最大值。
参数:多个数值
示例:
max(5, 10, 3) # 返回10
max(-2, 0) # 返回0
23. min(x, y, …)
目的:返回多个数值中的最小值。
参数:多个数值
示例:
min(5, 10, 3) # 返回3
min(-2, 0) # 返回-2
24. mix(a, b, x)
目的:同 lerp (a, b, x),在 a 和 b 之间线性插值。
参数:a(起始值),b(结束值),x(系数 0-1)
示例:
mix(0, 100, 0.3) # 返回30
25. noise(x, y, z)
目的:生成 3D Perlin 噪波,值范围 [-1,1],整数坐标处为 0。
参数:x(必填),y,z(可选)
示例:
noise(frame*0.2) # 随帧变化的一维噪波
noise(0, 0, 0) # 返回0(整数坐标)
26. pi()
目的:返回圆周率 π(3.141592654…)。
参数:无
示例:
pi() # 返回3.14159...
27. pow(x, y)
目的:计算 x 的 y 次幂(x^y)。
参数:x(底数),y(指数)
示例:
pow(2, 3) # 返回8
pow(10, 0.5) # 返回3.1623(√10)
28. radians(x)
目的:将角度 x 转换为弧度。
参数:x(角度值)
示例:
radians(180) # 返回pi
radians(90) # 返回pi/2
29. random(x, y, z)
目的:生成 [0,1] 伪随机数,相同参数返回相同值,无参数时随机变化。
参数:x,y,z(可选,用于固定随机种子)
示例:
random() # 生成0-1随机数
random(frame) # 每帧固定随机数
30. sin(x)
目的:计算弧度 x 的正弦值。
参数:x(弧度值)
示例:
sin(0) # 返回0
sin(pi/2) # 返回1
31. sqrt(x)
目的:计算 x 的非负平方根。
参数:x(非负数)
示例:
sqrt(25) # 返回5
sqrt(2) # 返回1.4142
32. tan(x)
目的:计算弧度 x 的正切值。
参数:x(弧度值)
示例:
tan(pi/4) # 返回1
tan(pi/2) # 返回无穷大
33. to_sRGB(color_component)
目的:将线性光值转换为 sRGB 值。
参数:color_component(线性值 0-1)
示例:
to_sRGB(0.5) # 返回0.7416(sRGB值)
34. true()
目的:始终返回 1。
参数:无
示例:
true() # 返回1
35. value(frame)
目的:获取指定帧的参数 y 值(默认当前帧)。
参数:frame(可选,默认当前帧)
示例:
value(200) # 获取第200帧参数值
value() # 获取当前帧参数值
36. x()
目的:返回当前帧号(同 frame ())。
参数:无
示例:
x() # 返回当前帧号
37. y(frame)
目的:获取指定帧的动画 y 值(默认当前帧)。
参数:frame(可选,默认当前帧)
示例:
y(50) # 获取第50帧y值
y() # 获取当前帧y值
案例:
一、椭圆运动与淡入淡出表达式
1. 位置动画(Translate 属性)
sin()和cos()函数的相位差为 90 度,形成圆形轨迹
- 若 X/Y 轴振幅不同(如 X 轴 150,Y 轴 100),则形成椭圆形
X 轴表达式:
nuke.root().format().width()/2 + 100 * sin(frame*0.1)
Y 轴表达式:
nuke.root().format().height()/2 + 100 * cos(frame*0.1)
2. 淡入淡出动画(Opacity 属性)
min(frame/50, 1) * 100
二、表达式分解与参数调整
1. 椭圆运动参数
frame/50:前 50 帧从 0 线性增长到 1
min()函数确保值不超过 1(防止透明度溢出)
*100:将 0-1 的系数转换为 0-100 的百分比
| 参数 | 作用 | 调整建议 |
|---|---|---|
100 | 椭圆半径(振幅) | 增大值使运动范围更广 |
0.1 | 运动频率(速度) | 增大值使运动更快 |
sin()/cos() | 控制 X/Y 轴相位差(椭圆形状) | 可替换为cos()改变方向 |
2. 淡入淡出参数
| 参数 | 作用 | 调整建议 |
|---|---|---|
50 | 淡入持续帧数 | 修改为 100 则延长至 100 帧 |
100 | 最终透明度(百分比) | 改为 50 则最终半透明 |
三、实际应用步骤
- 选择节点:右键点击需要添加动画的节点(如 Transform、Position 等)
- 打开表达式编辑器:
- 对于 Translate 属性:右键点击
Translate→Edit Expression
- 对于 Translate 属性:右键点击
- 对于 Opacity(value) 属性:右键点击
value→Edit Expression
- 对于 Opacity(value) 属性:右键点击
- 打开表达式编辑器:
- 粘贴表达式:
- 在
Translate.X输入框粘贴 X 轴表达式
- 在
- 在
Translate.Y输入框粘贴 Y 轴表达式
- 在
- 在
value输入框粘贴淡入淡出表达式
- 在
- 粘贴表达式:
- 调整参数:根据需要修改振幅、频率、淡入时间等数值
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END












暂无评论内容