每一个人都有使用表达式的权利,让文件看起来更屌。请注意,我说的是”每 - 个 - 人”,所以我要强调一下,表达式对于每一个人来说都是开放的,被表达式吓尿的小伙伴们,只是因为你没有认真的了解它,看了这篇文章后你与表达式之间多少会建立一些新的认识。
Pickwhip"橡皮筋"的使用
Pickwhip"橡皮筋"功能是创建表达式最简单最快速的工具,它可以帮助我们快速的建立一些复杂的表达式。
假如你的领导给了你一个任务,需要把20个颜色层迅速的调节为同一个颜色,最笨的办法是调节好一个之后,将滤镜复制给其它的19个。如果颜色经常需要变化,这种方法就有点白痴了,你的领导也会觉得你比较Low的。下面这个方法让你瞬间屌起来,其实就是简单的用用橡皮筋工具。
如下是解决这个鸟问题的方法:
为你的第一个图层添加“Tint”特效。
将“Map Black To”参数调节成你想要的颜色。
然后在第二层,再次添加一个“Tint”特效。
针对第二个图层的“Tint”特效,ALT-Click“Map Black To”,此时时间线会延长。
下图第三个按钮就是Pickwhip"橡皮筋"。不要点选任何地方,拖动橡皮筋至第一个图层的“Map Black To”参数。
完成拖动操作后,将第二个图层的“Tint”特效复制给其它图层,这样当你再次修改第一个图层的颜色时候,其它的图层都会一起修改。
PS:这里有个小窍门,我们可以新建一个名为“控制”的控制层,将第一个特效添给这个控制层,这样你的文件看起来会更专业。
这样的表达式非常适合同步各种需要同时更改的信息,Pickwhip"橡皮筋"可以很方便的连接一些相同的特效。但如果我们需要连接不同的参数时,我们该怎么办呢?
此时你的领导又来了,他希望你制作一个淡入淡出效果,在淡出的同时字体虚化,别告诉我你可以用关键帧哦,如果是字幕特效呢?你要一个一个调解吗?修改就更吐血了。
我们来看看下面这个解决方法:
为你的图层先添加一个“Fast Blur”。
ALT+Click点击“Blurriness”的码表。
添加表达式 linear(transform.opacity,0,100,50,0)
在没看这篇文章之前,大部分人看到这句话时直接晕了,但是既然说到这了,我们就看看这语法到底是啥个意思。
linear(transform.opacity,0,100,50,0)
在括号里面有5个参数,它们被逗号隔开。第一个是需要的属性,在这里我们需要告诉AE这个属性是transform.opacity,透明度。其实我们可以通过Pickwhip"橡皮筋"抓取这个属性,不用自己打字出来。
transform.opacity后面的0,100,是这个表达式的取值范围,这里是0-100。后面两个数是被执行的属性,在我们这个例子中是模糊的数值。说白了就是,0-100的透明度产出50-0的模糊值,为什么是50-0?不是0-50?
因为,当透明度是100时,我们希望模糊数值为0,而当图层完全透明的时候,我们希望它的模糊值是50。所以,如果希望更多的模糊,表达式可以修改为如下形式。
linear(transform.opacity,0,100,200,0)
可以将模糊值定为200,也可以减少至20。
linear(transform.opacity,0,100,20,0)
linear是表达式的一种算法,它保证数值根据时间逐渐发生变化,并产生影响。利用这个算法我们可以把透明度和旋转连接起来。比如,如下表达式可以完成,当一个图层旋转360度的时候,它会自动消失。
linear(transform.opacity,0,100,0,360)
变量 VARIABLES
如果你的领导上过小学,他应该算过这种数学题,如果y=x+4,x=6,问y=?。如果你没上过小学,那你就惨了。如果我还没记错,这里面的y和x就是变量。另一个认识变量的方式是,变量是“需要被定义的名称”。或者这么理解,变量是一个根据指定参数变化的数字。使用变量,我们可以做更多的事情。我们看看如下例子,这里的解释如果没明白,没关系,接着往下看。
你的领导又来了,他觉得这组拍摄的镜头抖动的不够剧烈,让你后期添加一些。添加摄像机抖动是一个很好的学习变量的例子(这里是指让一张图片或一个镜头抖动,不是让AE的摄像机抖动)。
我们来看看这个问题如何解决:
wiggle(A,B)
当把这个表达式添加至一个图层的位置参数时,它会自动的生成一些数字,对于我们这个例子就是随机的抖动的大小。Wiggle是AE的一个函数,A是每秒钟变化的数值,B代表了变化的距离。wiggle(5,10)的意思是,相机每秒钟抖动3次,每次移动10个像素。
这个表达式可以很方便的制作镜头抖动,但是如果我们的镜头拍摄的是地震,当地震来的时候画面抖动,然后振力逐渐消失。显然,目前的方法不太容易实现,但是稍加变通就可以了。我们可以利用一个变量,然后将这个变量连接至一个Slide Control上,这样就可以为这个地震效果添加关键帧来控制抖动的时间了。
好,让我们看一下实现步骤:
ALT-Click 图层位置参数的码表(Position)。
填入表达式wiggle(5,10)
从特效列表中添加一个“Slider Control”
将这个特效重新命名为“shakeAmount”
然后调节刚才设置的位置参数的表达式为wiggle(5,shakeAmout)
下面我们需要定义这个变量,所以AE才会知道ShakeAmout参考的是什么。
在wiggle(5,shakeAmout),上面添加一行新的语句,shakeAmount =。
当鼠标在=号后闪烁的时候,用橡皮筋工具拖拽至刚刚命名的"shakeAmount"上。
你的表达式会变成这样:shakeAmount = effect("shakeAmount")("Slider")
我们现在可以尝试将Slider Control设置成25,可以看到图像抖动了,并且它的位置参数变为了红色,表明它是被这个参数驱动的。现在我们的shakeAmount变量被shakeAmount Slider控制,同时这个变量决定wiggle的值。
现在我们就可以给shakeAmount Slider添加关键帧。根据上面的规则你是不是可以将抖动的频率也修改成一个变量呢?步骤我就不写了,表达式如下:
shakeAmount = effect("shakeAmount")("Slider")
frequency = effect("frequency")("Slider")
wiggle(frequency, shakeAmount)
现在我们就可以同时控制这两个参数了。看看还能搞点什么,我们是不是可以在控制抖动的同时,在控制一下旋转呢?
将所有的表达式复制粘贴至旋转参数,目前所有的变量都是正常连接的,所以我们可以用现有的变量控制旋转。
现在你可能发现我们的旋转参数数值比较大,每秒钟旋转10-20度确实不太现实,但是如果把数值缩小,抖动又没有效果了。这个问题其实也很好解决,在旋转的参数处添加一个除法,/10就可以了。
shakeAmount = effect("shakeAmount")("Slider")
frequency = effect("frequency")("Slider")
wiggle(frequency, shakeAmount)/10
这样处理后,当抖动值为20的时候,我们的旋转为每秒钟2度,这样就合理多了。
如果没看明白,可以看一下我的屏幕截图。
学习了这种方法后,回头看看很多高级的模板,作者都会把所有的控制以这种方式添加到一个唯一的控制层上面,这样做你的文件会非常容易打理,而且别人在开你的文件的时候也会顿时有一种“春风拂面”的感觉。
表达式的学习需要一个很漫长的过程,代码编写与视频制作还是有非常大的区别的,但是勤加练习,相信你的两种技能会相辅相成,促使你更加强大。