基于After Effects中表达式的特效研究与探索

2018-01-20 06:42王少豪
电脑知识与技术 2018年31期
关键词:表达式

王少豪

摘要:After Effects(AE)作为一款专业的影视后期制作软件,在图片、视频以及音频的合成包装上有其独特的技术处理。通过自带与第三方的滤镜插件,可以快速制作出震撼的二维、三维影视级动画效果。本文从表达式脚本的方向对AE进行研究,在不影响动画效果的前提下,将某些冗余复杂的有一定规律的特效制作过程简化,避免创建几十甚至上百个关键帧动画,以达到节省时间,提高工作效率的目的。

关键词: AE; 特效; 表达式

中图分类号:TP393        文献标识码:A        文章编号:1009-3044(2018)31-0212-02

计算机脚本是编程设计人员利用一系列的指令来告知应用程序如何操作的语言。在AE中,我们同样可以使用脚本指令来进行某些复杂或者重复的特效设置。但与普通脚本不同的是,脚本通常需要告知程序应该进行何种详细操作;而AE仅需要算出某个特定时间段的图层属性,使用者并不需要掌握精深的程序设计语言,通过一个在“时间线”面板上的基于JavaScript的一种扩展语言ExtendScript所设计的“表达式”功能,利用表达式中已经存有的语言进行创建、复制或者关联,再根据实际情况修改数值,就可以轻松地为图层特效创建相应的属性联系,从而生成华丽的特效。本文将从具体实例出发,对表达式进行研究。

1表达式简介

整个表达式功能一般分为五个部分:启用表达式开关、显示表达式动画曲线、表达式关联器、表达式语言菜单以及表达式输入框。如图1所示:

在AE中,如果对脚本语言比较熟悉,可以直接在表达式输入框中输入表达式,也可使用表达式语言菜单中存有的常用语言来进行编写,还能利用表达式关联器对已经有的某种属性的表达式规律进行复制关联。此外,如果用户对表达式的运算比较熟悉,可以结合一定的数学运算来进行特效的调整。如在表达式的末尾添加*3,则表达式的数值将变为原来的3倍;或者在表达式的末尾添加/100*50,则是将原取值为0~100的范围区间缩小为0~50。

2表达式使用方法

为动画图层属性添加表达式的方法主要有三种,在选中“时间线”面板中动画参数属性的大前提下:

①通过“Animation”下层的“Add Expression”菜单命令添加表达式。同样,可以使用这种方法将其删除。

②使用快捷键“ALT+SHIFT+=”打开表达式。

③同时按住“alt”与该属性前的“秒表”符号。

除了新加表达式内容之外,也可以通过“表达式关联器”上的拖拽按钮将其他的动画属性以参数值的形式赋予到新的表达式中。例如,如将合成中的某一图层属性与“图层1”的透明度相关联,则会得到以下关系式:

thisComp.layer("图层1").transform.opacity

其中,thisComp为全局对象,layer("图层1")为次级对象,opacity为相关属性

3表达式的实例研究

针对不同类型的特效需要设置不同的表达式脚本,接下来,将从火焰光影、滚动车轮、预警水温计等实例对表达式设置进行详细设置。

3.1火焰动态光影特效制作

为了追求逼真的火焰动画效果,常常需要制作出周围环境的光影摇曳效果。如果是常规的做法,我们需要设置一个光影层,并根据火光的强弱制作相对烦琐的关键帧光影闪烁动画效果,这种做法费时费力,最后的效果往往也不尽人意。

针对这种情况,采用表达式制作光影仿真的效果:

表达式的应用需要与各种图层以及属性操作相结合。首先,为制作一个火焰光影将会产生的一个大概范围,通过建立一个模仿光影的黄色固态层,并使用钢笔工具绘制出范围遮罩。其次作为火焰光影,需要将其置于火焰动画的下层并更改层模式为Soft Light模式。最后,为固态层的不透明度属性添加一个随机函数表达式random(50,100),表示透明度将在50%—100%之间随机性变化,使光影能模仿火光有随机性的透明度改变,有效代替了复杂操作。

3.2滚动车轮制作

对于一些重复性的运动,也可以使用表达式来进行制作。设计表达式制作车轮运动带动汽车行驶的动画。具体思路如下:

分别建立前后车轮以及车身与阴影的合成,为使汽车行驶的动画更加协调,通过新建一个“空对象层”并设置父层的方式使其建立联系,通过设置“空对象层”的位置移动来控制汽车的移动。同时选中“前车轮”图层,对其旋转属性添加表达式,由距离除以周长算出车轮需要旋转的圈数,具体如下:

距离=thisComp.layer("空对象").transform.position[0];

周长=width*Math.PI;

(距离/周长)*360

“后车轮”图层的旋转属性表达式只需要设置跟随“前车轮”图层旋转即可,具体如下:

thisComp.layer("前车轮").transform.rotation

通过简单的几个表达式语句即可轻松制作完这样的运动特效。

3.3预警水温计特效制作

不同特效需要不同的表达式设计,制作一个能自带文字显示的水温计特效,且文字的颜色随温度的提升将有所不同, 40度以下以绿色显示,超过40度则颜色逐渐趋于暖色,100度的水温时文字以红色显示,以此达到预警的效果。以下为制作该特效的合成流程图:

其中,“温度计样式”合成为制作好的水温计图像;“温度计”合成为关键表达式制作合成;“水温显示”则是加上摄像机与三维灯光效果的最终合成。

不同于简单的火焰光影特效,对于本特效而言,关键表达式主要有三部分组成。

①温度计的指示条制作。使用钢笔工具绘制好shape温度指示图形,添加修剪路径特效,并对其end属性添加随机抖动表达式wiggle(1,100),使溫度指示有随机的升降变化,且最大幅度为100。

②建立文字显示与温度指示条之间的联系。激活文字层的“源文本”表达式属性,并将其链接到温度指示条修剪滤镜特效的end属性上,自动生成表达式使两者相互关联。但由于关联后的温度显示包含有小数点后多位,因此在原表达式的基础上添加Math.round(vaule)语句,使获得的数值四舍五入。具体表达式如下:

Math.round(thisComp.layer("形状图层 1").content("修剪路径 1").end)

③为使数字有颜色的警示,因此为文本层添加一个色相饱和度滤镜特效,并勾选彩色化选项,使文本颜色可以通过数值表示,调整着色亮度与饱和度,接着为色相添加表达式。使用linear语句为数值与色相建立线性联系,并使其在数值显示40时赋予色相值为100(绿色),数值显示100时色相值为0(红色)。具体表达式如下:

temp=linear((thisComp.layer("形状图层 1").content("修剪路径 1").end),0,100,0,100)

if(temp>40)

{linear(temp,40,100,100,0);

}else

{100;}

通过以上这些关键表达式的操作设置,可以轻松完成所需要的特效,配合其他的滤镜美化以及灯光与三维效果,增加实例的拟真度。

本文从实例出发,探讨了AE特效制作中表达式语句的一些应用,在特效制作的过程中结合表达式语言对制作过程进行简化,无疑可以节省制作成本与时间,创作出更好的视频效果。

参考文献:

[1] 黎红,梁广荣.AE表达式在片头应用中的研究[J]. 长春师范学院学报,2013(6).

[2] 王青.After Effects影视特效与电视栏目包装实例精粹[M]. 清华大学出版社 , 2016  .

猜你喜欢
表达式
汉韩空间关系表达式差别的概念化原因
灵活选用二次函数表达式
一个混合核Hilbert型积分不等式及其算子范数表达式
表达式转换及求值探析
灵活选用二次函数表达式
浅析C语言运算符及表达式的教学误区
注意纠正百分率表达式错误
事件语义学与动词语义表达式
含二绝热过程和二同类多方过程的循环效率的简洁表达式
实验结果表达式物理内涵探讨