1、110电视技术 第 46 卷第 12 期(总第 565 期)ACQUISITION&PROGRAMMING采集与制作文献引用格式:温逸娴.After Effects 表达式在三维路径制作中的应用 J.电视技术,2022,46(12):110-115.WEN Y X.The application of After Effects expression in 3D path producingJ.Video Engineering,2022,46(12):110-115.中图分类号:TN948.13 文献标识码:A DOI:10.16280/j.videoe.2022.12.025After E
2、ffects 表达式在三维路径制作中的应用温逸娴(河北工程大学 教育技术中心,河北 邯郸 056038)摘要:Adobe After Effects 是一款在动画和影视后期制作方面不可或缺的软件,在特效制作方面有着优秀的表现,而且它还拥有大量的插件来丰富它的各种功能。After Effects 表达式在视频制作中的使用,能避免一些烦琐无趣的工作,可以精确地控制各种属性,从而大幅提高工作效率。基于此,介绍 After Effects 表达式的语法、特点和优势,并把表达式应用在三维曲线路径建立方面,完成粒子在三维空间穿梭镜头的制作。关键词:After Effects 表达式;影视后期;动画;曲线路
3、径The Application of After Effects Expression in 3D Path ProducingWEN Yixian(Educational Technology Center,Hebei University of Engineering,Handan 056038,China)Abstract:Adobe After Effects is the industry standard software application for creating special effects,motion graphics and video compositing
4、used in TV and post-production.Especially,this software is best used to apply special effect on the footage.the great things about After effects is the proliferation of plug-ins that can help produce remarkable effects.With After Effects expressions,you can precisely control layer properties,can sav
5、e a lot of time by not having you to manually key-frame every animation.This paper explains the After Effects expression language and its features and advantages,describes a three-dimensional path with After Effects expression,and produces the visual effects of particles animating along the curved p
6、ath.Keywords:After Effects expression;post-production;animation;curved path0 引 言使用 Adobe After Effects 软件制作一些科技商务风格的片头时,经常需要制作一些粒子或线条在空间穿梭的镜头。想要制造出震撼大气的开场,少不了对粒子线条路径的设计。蜿蜒曲折的游走路径,配合摄像机不同的观察角度,能体现出科技商务迅猛流畅、复杂多变、灵感碰撞等风格特点。为了突出 LOGO 或主题,很多制作者将光效粒子的路径在最后汇聚成一点,形成爆炸状,从而烘托出主题。在 Adobe After Effects 软件中绘制三维曲
7、线,不像想象中的那么简单,往往需要在正视图、顶视图、右视图及用户视图等各种视图中不断切换,不停地添加、删除关键帧和调整曲线的斜率。如果想制作一些精确且复杂的路径曲线,靠手动添加关键帧和调节曲线手柄几乎做不到。但利用 After Effects 中的表达式,结合一些数学公式,可以轻松快速地解决这类问题。1 After Effects 表达式简介1.1 适宜使用 After Effects 表达式的动画类型在实际工作中,制作动画往往需要添加许多关键帧。有些时候,手动添加、修改和删除关键帧非常方便灵活,有时则非常困难。比如模拟物体弹性碰撞的时候,依靠手动设置关键帧,很难表现得完美流畅。但是给属性添加
8、一个弹性表达式,就能模 作者简介:温逸娴(1976),女,本科,实验师,研究方向为多媒体技术。E-mail:。电视技术 第 46 卷第 12 期(总第 565 期)111ACQUISITION&PROGRAMMING采集与制作拟得非常逼真。另外,在一些非常有规律的周期变化和非常随机无规律的变化中,一些有相互控制驱动关系的动画元素或属性中运用表达式进行动画制作,可以事半功倍1。1.2 After Effects 表达式的特点和优势After Effects 表达式的突出特点和优势是功能强大且灵活。它可以让制作者无需手动添加关键帧便可生成动效,也可以对设置好的关键帧进行控制,如循环往复运行下去。表
9、达式可以在不同图层的各种属性之间建立联系。使用表达式关联器为图层属性创建连接时,制作者不需要写任何代码,After Effects 可以自动生成表达式,从而大幅提高工作效率。制作复杂的动画时,表达式可以通过编写代码快速地控制和完成动画,还可以将含有表达式的动画保存成预设,让其他工程文件调用。表达式还可以转换为关键帧。这些关键帧可以进一步编辑2-4。1.3 After Effects 表达式语法编写 After Effects 表达式,使用的是 JavaScript 语言,所以在书写时一定要注意以下几点语言规范:(1)字母要区分大小写;(2)中文的标点是不能识别的;(3)句末用“;”结束;(4)
10、除了字符串中的空格外,其他的空格和换行将被忽略2-3。1.4 After Effects 表达式的常用函数After Effects 表达式有以下几个比较常用的函数。(1)“time”函数,就是时间函数。它的值就是当前合成的时间,单位为秒。它可以提供一个持续变化的数值。在实际使用中经常写成“n*time”。n取一个常数,可以增大或缩小函数值。(2)“wiggle”函数。“wiggle”函数一般形式为 wiggle(freq,amp,octaves=1,amp_mult=.5,t=time)。Freq 指的是频率,amp 指的是振幅。通常在使用 wiggle 函数时,只需指定前两个参数即可。它可
11、以使属性的值在参数范围内随机变化。当属性是多维时,函数对每个维度都同时有效。(3)“value”函数,是当前属性的数值。(4)“Math.cos(value)”函数,value是一个数值,这个函数返回 value 的余弦值。(5)“Math.sin(value)”函数,value是一个数值,这个函数返回 value 的正弦值2-3。2 案例分析与制作下面用一个粒子旋转前进的案例来分析用After effects 表达式制作运动路径的方法。2.1 案例概述本案例制作一个光效粒子旋转前进的镜头。首先用 After effects 表达式制作出灯光运动的路径,其次配合 After effects 的
12、 Particular 和 Deep Glow 等插件制作出绚丽的粒子形态,最后制作出粒子在灯光的带动下在镜头前舞动出优美曲线的镜头。这里重点分析用 After effects 表达式写出路径的过程,从数学公式开始分析,用After effects表达式的代码编写,并对曲线路径做适当变形扩展。2.2 案例要点分析2.2.1 基本思路分析先在XY平面上建立一个圆形路径,让粒子旋转起来,再给Z轴方向一个速度,这样就形成了旋转向前的路径。首先制作一个平面内的圆形路径,根据圆参数方程:cossinXKYK=(1)式中:是旋转的角度,K是圆的半径。旋转是一圈又一圈连续不断进行的,角度随着时间不断增长,所
13、以在这里可以用时间来代替 5。取K为一个常数,这时可以把方程变形成式(2):()()cossinXKtimeYKtime=(2)还可以利用三角函数 2sinAtkT+中的参数来改变旋转的速度,调节旋转的起始位置。根据公式 2sinAtkT+,改变旋转速度,需要改变三角函数的周期T。调节起始位置,可以改变三角函数的相位参数,应用到圆的公式中,可以写成:()()cossinXba timecYba timec=+=+(3)用b的大小来控制圆的半径大小,用a来调整旋转的速度,用c来表示旋转起始的位置。112电视技术 第 46 卷第 12 期(总第 565 期)ACQUISITION&PROGRAMM
14、ING采集与制作按照 After effects 表达式的规范,可以在图层位置属性上写出表达式如下:a=0.5;b=100;c=Math.PI/2;x=Math.cos(a*time+c)*b;y=Math.sin(a*time+c)*b;x,y,;这时,路径就从 2的位置开始,以半径 100 的大小开始画圆。并且,a的数值越小,转速越慢。用线条表示的路径如图 1 所示。图 1 画圆路径前视图这时,在Z轴上给予一个向前行进的速度,就形成了旋转向前行进的路径。具体的表达式如下:a=0.5;b=100;c=Math.PI/2;x=Math.cos(a*time+c)*b;y=Math.sin(a*
15、time+c)*b;z=b*time;x,y,z;该表达式应用后的效果如图 2、图 3 所示。图 2 旋转向前行进的前视图可以进一步增加路径的数量,比如四条路径起始位置在圆周上均匀分布,每两条路径之间相隔 2,只需要在每个位置属性的表达式上改变参数c的值即可。第一个写 c=Math.PI*0,第二个写成 c=Math.PI/2,第三个写成 c=Math.PI,第四个写成c=Math.PI*1.5。四个参数改完后形成的路径如图 4、图 5 所示。图 3 旋转向前行进的右视图图 4 增加路径后的前视图图 5 增加路径后的右视图2.2.2 扩展分析还可以继续调整,比如把四条路径的旋转速度调成各不相同
16、的,这只需要调节a的值即可。让不同路径上a参数的值彼此不同,比如让a分别取0.5,1,2,4 等,得到的路径如图 6图 10 所示。图 6 右视图(a=0.5)电视技术 第 46 卷第 12 期(总第 565 期)113ACQUISITION&PROGRAMMING采集与制作图 7 右视图(a=1)图 8 右视图(a=2)图 9 右视图(a=4)图 10 前视图可以把圆形旋转改为椭圆形旋转,把X轴坐标的参数b1改成与Y轴坐标中的参数b2不同的值,也就是b1b2,得到的路径如图 11、图 12 所示。还可调整圆半径b,让半径越来越小。这样,路径就会从四周向中心相聚。为了让b逐渐变小,得把b从一个常量转变成一个变量,还需用到time这个变量。time的值随时间增大,1time的值随时间减小。为了避免time=0 时做分母没有意义,把time变成time+1。让半径 1brtime=+5。根据这个思路,表达式编写如下。结果如图 13、图 14 所示。图 11 椭圆形旋转前视图图 12 椭圆形旋转右视图a=0.5;b=500;c=Math.PI/2;d=time+1x=Math.cos(a*t