wiggle函数是一个比较常用的函数,不过通常只会定义freq和amp这两个值。剩下的三个参数,一般都是默认值不会改(ae自带函数写入带“=”表示默认值,可以不输入数值)。很多地方说道wiggle的时候,都只会解释前面两个参数,向安宇很想弄清楚后面三个参数的用处,无奈找了很多地方,没有一个很好的解释。
wiggle(freq, amp, octaves=1, amp_mult=.5, t=time)
下面这段解释来自于AE官方说明:After Effects 帮助 / 表达式语言引用
返回类型:数值或数组。
参数类型:freq、amp、octaves、amp_mult 和 t 是数值。
随机摇动(摆动)属性值。
freq 值是每秒摆动的频率。
amp 值是向其应用了此值的属性单位中的振幅。
octaves 是要加在一起的噪声的八度数。此值控制摆动的详细程度。使此值高于默认值 1 可在摆动中包括更高的频率,使此值低于默认值 1 可在摆动中包括振幅谐波。
amp_mult 是 amp 乘以每个八度的值。此值控制谐波减弱的速度。默认为 0.5;使其更接近 1 可以与基本频率相同的振幅添加谐波,使其更接近 0 可以添加更少的细节。
t 是基础启动时间。此值默认为当前时间。如果您希望输出成为在不同时间采样的属性值的摆动,请使用此参数。
示例:position.wiggle(5, 20, 3, .5) 每秒产生约 5 次摆动,平均大小约 20 像素。除了主要摆动之外,其他两个级别的详细摆动发生的频率为每秒 10 次和 20 次摆动,各自的大小为 10 和 5 像素。
对于二维属性(例如缩放),以下示例按相同值摆动两个维度:
v = wiggle(5, 10); [v[0], v[0]]
对于二维属性,以下示例仅沿着 y 轴摆动:
freq = 3; amp = 50; w = wiggle(freq,amp); [value[0],w[1]];
freq 和 amp 这两个值不需要解释。octaves 和 amp 很高端的样子,但是视觉上差别并不大,一般情况下用不着。向安宇做了一个gif,可以感受一下:
1至5号小球,均是为位置的y轴添加了wiggle,其设置分别为:
- wiggle(3,200)//?频率为3,振幅为200
- wiggle(3,200,2)//?octaves高于默认值1,获得更高频率
- wiggle(3,200,.5)//?octaves低于默认值1,获得振幅谐波
- y?=?wiggle(3,200,.5,.1)//?amp_mult更接近0,获得更少细节
- y?=?wiggle(3,200,.5,.9)//?amp_mult更接近1,与基本频率相同的振幅添加谐波
6号小球则是用到了AE官方说明里提到的Dan Ebberts 在其 MotionScript 网站上提供的演示如何使用 wiggle 方法的时间参数创建循环动画。
其表达式为:
- freq?=?3;
- amp?=?200;
- loopTime?=?1;
- t?=?time?%?loopTime;
- wiggle1?=?wiggle(freq,?amp,?1,?0.5,?t);
- wiggle2?=?wiggle(freq,?amp,?1,?0.5,?t?-?loopTime);
- linear(t,?0,??loopTime,?wiggle1,?wiggle2)
请登录以参与评论
现在登录