- wiggle的使用。
- AE制作手持摄影的呼吸感。
1、绘制小火箭
按住Option/Alt键绘制形状,能够让形状上的点可以编辑。另外一种编辑的方法是,右击路径属性,单击Convert To Bezier Path(转化为贝塞尔曲线),之后形状层变得可以编辑。

绘制火箭翅膀要用到修改器,所以新建了一个形状图层(没有和火箭主体放在同一个图层上):
这里是用到了Merge Paths,用下面的圆减去上面的圆。如果做MG动画,形状层的修改器能够实现很多效果,以后如果做专门的MG动画教程时候再来细说。
这里还用到了另外一个修改器,就是Wiggle Paths,简单的理解就是让这个形状随机抖动,可以用来形成波浪一样的效果。
修改各项参数。其中 Wiggles/Second ,可以理解成抖动的频率,数值越大,抖动频率越高。有点类似wiggle表达式里第一个参数。接着就来说一说wiggle表达式。
2、wiggle表达式
wiggle表达式是非常非常常用的一个表达式。
在AE的表达式语言菜单里,wiggle表达式共有5项参数:
wiggle(freq, amp, octaves=1, amp_mult=.5, t=time)
AE表示语言菜单里,有“=”号的参数都有默认值,可以不修改,甚至不用写出来。比如Wiggle表达式,多数时候只会给它两个参数,频率和振幅。
下面这段解释来自于AE官方说明:After Effects 帮助 / 表达式语言引用(AE网站已改版)
返回类型:数值或数组。
参数类型: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 像素。
freq 和 amp 这两个值不需要解释。
octaves 和 amp_mult 我们用例子来看一下效果:
1至5号小球,均是为位置的y轴添加了wiggle,其设置分别为:
- wiggle(3,200)//频率为3,振幅为200
- wiggle(3,200,2)//octaves高于默认值1,我的理解是:基波频率不变,获得更多细节(有更多细碎的抖动),相当于抖动过程中还有次一级的抖动
- wiggle(3,200,.5)//octaves低于默认值1,基波频率不变,细节更少
- wiggle(3,200,.5,.1)//这个值是个乘积,amp_mult更接近0,获得更少细节
- wiggle(3,200,.5,.9)//amp_mult更接近1,与基本频率相同的振幅添加谐波,我的理解是,在ae里能够增添更多细节
t 值用到时候很少,我只找到一个案例:
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)
回归正题,来看下不同参数的曲线图:
wiggle(3, 200)
wiggle(3, 200, 2)
octaves值大于1,可以看到波峰和波谷明显多了很多细微的抖动,增添了很多高于基波频率的小波(谐波)。(在振动学里认为一个振动产生的波是一个具有一定频率的振幅最大的正弦波叫基波,那些高于基波频率的小波就叫作谐波。)
wiggle(3, 200, 10)
octaves值越大,谐波也就越多。我们可以通过这个值控制谐波的频率。
wiggle(3,200, .5)
octaves值低于默认值1的时候,小波更少,曲线显得更平滑。
wiggle(3,200, .1)
wiggle(3,200, .5,.1)
wiggle(3,200, .5,.9)
amp_mult更接近 1 可以与谐波的振幅更接近基波。
wiggle(3,200, 2,.1)
wiggle(3,200, 2,.9)
这里amp_mult的值为0.9,相当接近1 ,所以谐波的振幅几乎接近基础频率(基波)的振幅(这个例子里是200)了。
因为一般基波的振幅都比谐波大,所以取值在0~1之间的amp_mult值,越靠近1谐波振幅越大,越靠近0振幅越小,我们可以通过这个值控制谐波的振幅。
下图效果1-5分别是表达式:
wiggle(3, 200) wiggle(3, 200, 10) wiggle(3, 200, .1) wiggle(3, 200, 2, .1) wiggle(3, 200, 2, .9)
总结一下,wiggle表达式的四个值可以简单理解为:
在AE里,使用wiggle大多数情况下只需要定义前面两个值,后面的三个值则使用默认值。但是,谐波能够让抖动有更多的细节(更多次一级的小抖动,让抖动更丰富),比如在模拟手持摄影感的时候,我们想要在振幅最大的正弦波只有,有更多的小抖动。
3、手持摄影的呼吸感
这个小案例中,我们希望画面生动一下,让镜头有一点轻微的晃动,模拟长焦拍摄火箭时候的那种晃动(或者是火箭升空时候地面震动引起的镜头晃动)。
手持的抖动的呼吸感,应该是频率小,振幅小的。这里我们分别设成1和10 。
但是,手持的抖动不应该仅仅是围绕某个值的左右浮动,也就是在基本的抖动之外,还应该有次一级的抖动(高于基波频率的小波),所以我们给octaves一个大于1的值,增添谐波,丰富一下抖动的细节。这里我们给的值是2。amp_mult的值依然用默认值0.5 。
wiggle(1,10,2,0.5)
Good!