表达式书写P位置例子:[100,100]如果打开三维开关则写为[100,100,300]如果想得到3维效果,[100,100,index*5],然后直接复制该图层很多。这里面的数值都可以通过滑块儿来控制。1.运动回弹KeyframeOvershoot:freq=3;decay=5;n=0;if(numKeys0){n=nearestKey(time).index;if(key(n).timetime)n--;}if(n0){t=time-key(n).time;amp=velocityAtTime(key(n).time-.001);w=freq*Math.PI*2;value+amp*(Math.sin(t*w)/Math.exp(decay*t)/w);}elsevalue2.物体下缀重力回弹KeyframeBounceBack:e=.7;g=5000;nMax=9;n=0;if(numKeys0){n=nearestKey(time).index;if(key(n).timetime)n--;}if(n0){t=time-key(n).time;v=-velocityAtTime(key(n).time-.001)*e;vl=length(v);if(valueinstanceofArray){vu=(vl0)?normalize(v):[0,0,0];}else{vu=(v0)?-1:1;}tCur=0;segDur=2*vl/g;tNext=segDur;nb=1;//numberofbounceswhile(tNextt&&nb=nMax){vl*=e;segDur*=e;tCur=tNext;tNext+=segDur;nb++}if(nb=nMax){delta=t-tCur;value+vu*delta*(vl-g*delta/2);}else{value}}elsevalue3.循环表达式loopOut(type=cycle,numKeyframes=0)loopOut=往向循环cycle表示为类型有以下四种cycle、pingpong、continue、offsetnumKeyframes=0表示从第几帧开始循环0是全部关键帧,1为倒数第二帧,以此类推。loopOutDuration(type=cycle,numKeyframes=0)numKeyframes=00表示为关键帖,全部循环,1表示以最后一帧向前数1一个关键帧开始循环。以此类推。说明:循环的表达式其实就是预设里的,cycle(类型)可以用以下四种方式。cycle=当第三帧播放完后立马跳到第一帧然后循环播放pingpong=第三帧播完后进行一个逆向运动(沿着原路径),然后循环continue=以第三帧开始,沿着第三帧的方向做一个直线运动,不受到外力影响(用该方式,表达式必须删除,duration=0),否则会报错)也就是说保持最后两帧的运动方式不变。offset=按照前三帧的曲线轨迹来继续这个曲线运动,让以后的循环第一帧的数值与上一循环的第三帧相同,呈递增形循环。说明:loopinDuration是以第一个关键帧为起点,向前进行循环。4.抖动表达式函数:wiggle(freq,amp,octaves=1,amp_mult=.5,t=time)参数:freq频率=具体的数字amp振幅=具体的数字octaves原有振幅上再增加抖动(英语翻译为八度音)=具体数字amp_mult频率倍频amp_mult=.5.5表示0.5t持续时间说明:频率和振幅是必须具备的参数其他选填写例如wiggle(50,100)对图层进行的S(缩放属性)填写wiggle表达式时,想让X,Y同时进行放大和缩小,用以下语句,其中两个0值定义为X和Y的数值相等。s=wiggle(20,50);[s[0],s[0]]5.slider表达式的运用通过expressioncontrol中的slider控制一个定值变化假如控制变化的随机位移然后让其停止slider=effects(SliderControl)(Slider)然后对slider做函数运算例如随机函数wiggle(8,slider)这样就可以控制表达式。也可以控制摄像机镜头的调整。6.index(图层的编号)的应用Index在AE里表示插件或者图层上的具体位置透明度参数opacity,填写index*20就是使其透明度的值为20%如果把图层打成三维层,对position参数,填写value+[0,0,index*2]这是你在不断复制相同的图层,图层里的图片会不断在z轴的方向以2像素的复制,最终形成类型于三维物体的效果。指数表达式虽然比较少用,但是它的作用还是很强大的,可以使图片变成三维的效果。扩展应用,先画一个形状图层,再复制一层,在复制的图层上,位置信息加入表达式thisComp.layer(index-1).transform.position+[100,0]意思是这个图层复制的时候,往右移动100个像素。7、if语句If(判断条件)执行1;else执行2例如:if(time2)10;else20;再例如:if(time2)value;elsewiggle(10,20);时间在2秒前执行value(指定的一个数值),2秒之后执行wiggle。再例如start=1;end=4;if((timestart)&&(timeend)){wiggle(10,20);}else{value;}表示1秒前以指定的数值运动,1-4秒以指定的wiggle运动,4秒这后再以固定的数值运动。8.timeTime用于文字文字――源文本time*501秒50个数Time用于旋转time*50顺时间针旋转50为旋转的角度数time*50*-1逆时针旋转9.Math.sin用于位置和空间用于位置时一定要将X、Y单独尺寸然后再写下边的表达式。Math.sin(time*n)*m——n频率,m振幅,时间单位为秒。n/s、m/sMath.sin(time*5)*4010.Math.floorMath.floor也是应用于旋转(Position),旋转方式和time有所不同。Math.floor(time*n)*m——n表示每秒旋转次数,m旋转幅度。Math.floor(time*2)*1011.ValueattimeValueattime应用于延迟运动物体的开始时间。(前提是父级为运动物体)Valueattime(time-0.05)valueAtTime(time-n)——n减缓开始时间的时间,单位为秒可以用于位置,缩放,透明度等等。valueAtTime(time-0.2)例子:thisComp.layer(形状图层4).transform.position.valueAtTime(time-0.2)这个表达式不是单独使用,前面要加上定语。扩展应用,延迟动画,前提是父级图层已做好关键帧动画。thisComp.layer(index-1).transform.position.valueAtTime(time-0.2)+[100,0]意思是这个合成的图层每复制一层延迟0.2秒,X轴右移100像素12.sourceRectAtTime(1)新建一合成(2)建立文字层(3)双击形状图层,建立一个与合成大小相同的形状图层(4)打开形状图层――矩形路径――大小(5)调整大小比例(6)复制以下表达式这个形状图层就随着打字还是延伸,类似word的下划线效果。x=thisComp.layer(aelwovao).sourceRectAtTime().width;[x,value[1]]13.value数值位置value[0],[1],[2]代表xyz写法[value[0],value[1]]也可以写为x=thisComp.layer(形状图层1).transform.position[0]+200;[x,value[1]]这样写是为了更改X或者Y的位置,意思是X位置=这个合成的另外一个合成的X值再右移200像素。扩展可以写为:x=thisComp.layer(index+1).transform.position[0]+200;[x,value[1]]意思是加入index+1后,所有复制的图层将依次往右移动300像素。14.linear&easelinear(t,tMin,tMax,value1,value2)线性运动t为指定图层或者合成tmin最小值tmax最大值value1当最小值时返回的作用数值,value2当最大值时返回的作用数值。t=thisComp.layer(圆形).transform.position[1];linear(t,-299,299,90,-90)意思为这个图层Y轴与另外的图层Y值相同,当最小值是-299时,该图层旋转90度,当最大值是299时,旋转-90度。15.clamp锁定举例子:将一图层的X、Y单独尺寸X输入表达式180Y输入clamp(transform.yPosition,200,-200)解释:transform.yPosition=将此图层绑定在Y轴数值,并且数值固定在200—-200。16.toWorld(anchorPoint)或toComporPoint)从层坐标转换到世界坐标或合成坐标当图层1已绑定到父级空对像时,再复制图层1得到图层2,将图层2的位置P写入表达式,绑定到图层1的位置P时,图层2的P位置就乱了,为解决此问题,就要加入toWorld(anchorPoint)17.Math.abs18.Math.roundt=time*10;Math.round(t);19.random随机例子:将图层的XY单独尺寸显示在X或者Y加入表达式random(600,800)该图层在X轴向产生随机运动20.距离产生缩放效果a=thisComp.layer(空10).transform.position[1];b=transform.position[1];t=length(a,b);s=linear(t,0,100,120,100);[s,s];意思是a=空物体的Y值b=自身的Y值t=a和b的距离s=linear(t,0,100,120,100)为AE的内置函数linear(t,tMin,tMax,value1,value2)linear是个映射函数,完整的公式表达是linear(t,tMin,tMax,value1,value2)返回类型:数值或数组。参数类型:t、tMin和tMax是数值,value1和value2是数值或数组。当t=tMin时返回value1。当t=tMax时返回value2。当tMinttMax时,返回value1和value2之间的线性插值。21.valueValue是指自身例如控制一个图层的XY轴,锁定Y轴,可以移动或者调整X轴则写为value[0],value[100];用于缩放时,只对图层的Y轴进行缩放,可以写为[value[0],wiggle(20,30)[1]]22.AE图层的空间转换toComp(point,t=time)可以将图层的位置信息转换为合成的位置信息例如:toComp(thisComp.layer(空13).transform.position)这是将一个插件的位置信息(X,Y)绑定到一个空物体上,且空物体打开3维开关,那么这个插件的X,Y就变成了具有3维属性的位置信息,thisComp.layer(空13).toComp([0,0,0])