linstep
 
 
 

返回 0 到 1 之间的值,该值表示参数在最小值和最大值之间的比例值。利用该函数可以在某个时间范围内将属性(例如“不透明度”(Opacity))从 0 线性增加到 1。

float linstep(float start, float end, float parameter)

start 和 end 用于指定最小值和最大值。

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)创建了对象,因此粒子将从动画的第一帧开始存在。

对象中的所有粒子会在动画的前 5 秒内从透明淡入不透明。

在播放的第一帧中,粒子年龄为 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) 会导致不透明度淡出而不是淡入。