- 摆动
wiggle(freq, amp, octaves, amp_mult, t)
返回随机摆动(抖动)的属性值(数值或数组)。
一般来说,使用前两个参数就够用了,即:
wiggle(freq, amp)
参数 freq:每秒摆动的次数(频率)。
参数 amp:基于原属性值的正、负摆动幅度。
比如,旋转属性值为 100,当 amp 设为 50 时,旋转属性值将在 50 ~ 150 之间随机摆动。
wiggle 根据所在的属性返回对应类型的数据。比如,在位置属性使用 wiggle ,则返回二维数组数据。
//位置属性表达式。仅在水平方向摆动。
wiggled = wiggle(5,50);
[wiggled[0],position[1]]
还可以结合滑块控制摆动的频率和幅度。
f = thisComp.layer("空对象控制").effect("频率控制")("滑块");
a = thisComp.layer("空对象控制").effect("幅度控制")("滑块");
wiggle(f,a)
//提示:还可对滑块设置关键帧,从而控制摆动的快慢。
例 1,为形状图层添加以下表达式。复制多个形状图层,以创建随机舞动的星形效果。
//形状图层的位置属性表达式
wiggle(2,300);
//形状图层的缩放属性表达式
x = wiggle(2,20)[0];
[x,x]
//形状图层的不透明度属性表达式
wiggle(1,100)
例 2,如下所示,对文字添加填充效果,并使颜色摆动。
//对填充效果中的颜色属性添加 wiggle 表达式
wiggle(3,30)
然后将线条形状图层的描边颜色链接到填充效果的颜色属性。
- 随机数
seedRandom(seed, timeless)
用在 random、gaussRandom、wiggle等方法之前,用于设置随机数种子值。
参数 seed :种子,数值类型。
参数 timeless :默认为 false,即每一帧都会产生一个新随机数。设为 true 时,表示不使用当前时间作为随机种子的输入。即,始终只生成一个随机数值,该值不会随计算时间而改变。
random( )
返回 0 ~ 1 之间的随机数(数值)。
random(最大值)
返回 0 到 最大值 之间的随机数值或数组。
random(最小值, 最大值)
返回 最小值 到 最大值 之间的随机数值或数组。
下例中,对文本图层的位置、缩放、源文本及颜色平衡(HLS)效果中的色相属性,添加类似表达式。
复制多个文本图层,以实现位置、缩放、大小写及文字颜色的随机变换。
//位置属性表达式
//通过空对象图层的复选框来控制随机种子。
if(thisComp.layer("空对象控制").effect("复选框控制")("复选框")==1)
a = true;
else
a = false;
// a 为 false 时,random 会为每帧都产生一个随机数,a 为 true 时在合成时间内只产生一个随机数
seedRandom(1,a);
//将位置变换限制在合成内。
random([thisComp.width/2 + thisLayer.sourceRectAtTime().width,thisComp.height + thisLayer.sourceRectAtTime().height/2])