讲解一下AE表达式

 

先发一张图,镇贴。本想用这个做封面,但是还是犹豫了,呵呵。

 

 

好我们进入正题。。。

 

每一个人都有使用表达式的权利,让文件看起来更屌。请注意,我说的是”每 - 个 - 人”,所以我要强调一下,表达式对于每一个人来说都是开放的,被表达式吓尿的小伙伴们,只是因为你没有认真的了解它,看了这篇文章后你与表达式之间多少会建立一些新的认识。

Pickwhip"橡皮筋"的使用

 

Pickwhip"橡皮筋"功能是创建表达式最简单最快速的工具,它可以帮助我们快速的建立一些复杂的表达式。

假如你的领导给了你一个任务,需要把20个颜色层迅速的调节为同一个颜色,最笨的办法是调节好一个之后,将滤镜复制给其它的19个。如果颜色经常需要变化,这种方法就有点白痴了,你的领导也会觉得你比较Low的。下面这个方法让你瞬间屌起来,其实就是简单的用用橡皮筋工具。

如下是解决这个鸟问题的方法:

为你的第一个图层添加“Tint”特效。

将“Map Black To”参数调节成你想要的颜色。

然后在第二层,再次添加一个“Tint”特效。

针对第二个图层的“Tint”特效,ALT-Click“Map Black To”,此时时间线会延长。

下图第三个按钮就是Pickwhip"橡皮筋"。不要点选任何地方,拖动橡皮筋至第一个图层的“Map Black To”参数。

完成拖动操作后,将第二个图层的“Tint”特效复制给其它图层,这样当你再次修改第一个图层的颜色时候,其它的图层都会一起修改。

PS:这里有个小窍门,我们可以新建一个名为“控制”的控制层,将第一个特效添给这个控制层,这样你的文件看起来会更专业。

 

 

如果你没看懂,可以看看这个GIF。

 

这样的表达式非常适合同步各种需要同时更改的信息,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)

 

 

 

 

 

 

 

 

如果你没看明白,看看这个GIF。

变量 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度,这样就合理多了。

 

如果没看明白,可以看一下我的屏幕截图。

学习了这种方法后,回头看看很多高级的模板,作者都会把所有的控制以这种方式添加到一个唯一的控制层上面,这样做你的文件会非常容易打理,而且别人在开你的文件的时候也会顿时有一种“春风拂面”的感觉。

表达式的学习需要一个很漫长的过程,代码编写与视频制作还是有非常大的区别的,但是勤加练习,相信你的两种技能会相辅相成,促使你更加强大。

 

 

全教程完,学完记得交作业。如果本教程对您有所帮助,请推荐给你的朋友。

【原创教程 投稿邮箱: ps@16xx8.com】

长按二维码关注我们

关注我们微博:@photoshop教程论坛

推荐教程