返回 0 到 1 之间的值,该值表示参数在最小值和最大值之间的比例值。利用该函数可以在某个时间范围内将属性(例如“不透明度”(Opacity))从 0 线性增加到 1。
float linstep(float start, float end, float parameter)
如果 parameter 小于 start,linstep 会返回 0。
如果 parameter 大于 end,linstep 会返回 1。
假设已使用“粒子工具”(Particle Tool)创建了名为“云”(Cloud)的粒子集合:
进一步假设,已将动态每对象属性“不透明度”(Opacity)添加到“云”(Cloud)中(请参见使用粒子属性)。然后为云的粒子形状节点编写以下运行时表达式:
CloudShape.opacity = linstep(0,5,age);
该表达式会在对象存在的前 5 秒内将“CloudShape”的每对象属性“不透明度”(Opacity)均等地从 0 增加到 1。由于已使用“粒子工具”(Particle Tool)创建了对象,因此粒子将从动画的第一帧开始存在。
在播放的第一帧中,粒子年龄为 0,因此,linstep 函数会针对“不透明度”(Opacity)返回 0。值为 0 的“不透明度”(Opacity)表示是透明的。
在后续的每个帧中,linstep 函数会返回一个按比例增大的不透明度值。当对象年龄达到 5 时,linstep 函数会针对不透明度返回 1。值为 1 的不透明度表示 100% 不透明。
当年龄超过 5 时,linstep 函数将返回 1。不透明度将保持在 100% 不透明状态。以下是针对对象的不透明度返回的一些值:
年龄 | 不透明度 |
---|---|
0.0417 | 0.0083 |
0.0833 | 0.0166 |
0.125 | 0.025 |
0.1667 | 0.0333 |
0.2083 | 0.0417 |
2.5 | 0.5 |
1.0 | 0.2 |
3.75 | 0.75 |
5 | 1 |
5.041 | 1 |
5.083 | 1 |
10 | 1 |
如下表所示,不透明度在对象年龄的前 5 秒中以线性增量增加。在指定的 0 到 5 秒年龄范围内的中点处,不透明度为 0.5。在 0 和 5 秒的 3/4 处,不透明度为 0.75。在对象年龄的 5 秒处,不透明度为 1。5 秒后,不透明度将保持为 1。
CloudShape.opacity = linstep(5,10,age);
这会在对象年龄从 5 秒增加到 10 时将“不透明度”(Opacity)属性从 0 线性增加到 1。
particleShape1.opacity = 1-linstep(0,5,age);
这会在对象年龄的前 5 秒内将“不透明度”(Opacity)属性从 1 线性减少到 0。从 1 中减去 linstep(0,5,age) 会导致不透明度淡出而不是淡入。