wiggle表达式控制

今天在做一个视频的时候,需要做个画面随音乐鼓点抖动的效果。可以手动K帧,但我嫌麻烦,用了表达式。却不知道如何控制表达式,好在问了群友,找到了答案。

效果如下:

抖动

简单来说就是希望通过画面能随机抖动来模拟镜头晃动,然后再在某一时刻抖动回到原来的位置,但是写了表达式不能再自己手动K帧,所以只能通过表达式来控制。

表达式如下:

在位置属性写入:

1
2
3
4
5
6
var t = timeToFrames(time)
if (t >= 10) {
[960,540]
}else{
wiggle(12,200)
}

声明变量t,并将timeToFrames(time)的值赋给t,当t>=10,位置属性为[960,540]timeToFrames(time)是帧数第几帧,wiggle就不解释了,可以去看上一篇文章。所以,这段表达式的意思是:第10帧之前,位置属性每秒抖动12次,每次抖动200个像素。到第10帧和第10帧以后,位置属性为[960,540]

但是这个时候第9帧到第10帧的过渡不是很自然,看起来跳帧(画面直接闪现到原来的位置)没有中间帧过渡。所以一般还是用wiggle绑定两个滑块控制,给滑块控制K帧。