AECS4常用表达式及表达式使用详解.docx_第1页
AECS4常用表达式及表达式使用详解.docx_第2页
AECS4常用表达式及表达式使用详解.docx_第3页
AECS4常用表达式及表达式使用详解.docx_第4页
AECS4常用表达式及表达式使用详解.docx_第5页
免费预览已结束,剩余12页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

AE中表达式中使用的合成属性和方法/层属性和方法/层子对象/层属性的特性相互关系及引用一览表合成属性和方法layer(index/layername)marker.nearestKey(t)marker.numKeysmarker.key(t)numLayerswidthheightdurationdisplayStartTimeShutterAngleShutterPhasebgColornameactiveCamera图层的属性和方法widthheightmarker.Key(t)marker.nearestKey(t)marker.numKeysindexanchorPointpositionscalerotationopacitytimeRemapnameparenthasParentinPointoutPointstartTimeActiveaudioActivesampleImage(pt,radius=.5,.5,postEffect,t)图层子对象sourceeffect(“effectname”)mask(index/name)当为3D图层时增加的属性orientationrotationXrotationYrotationZlightTransimissionmetalspecularambientdiffuseacceptsLightscastsShadowacceptsShadow图层属性的特性和方法valuevalueAtTime(t)velocityvelocityAtTime(t)key(index/markername)nearestKey(t)numKeyswiggle(freq,amp,octaves,t)temporalwiggle(同上)smooth(width,samples,t)loopIn(type,numKeyframes)loopOut(type,numKeyframes)loopInDuration(type,duration)loopOutDuration(type,duration)name这些特性和方法大部分图层属性可以使用,切记不每个属性都可以使用;实践出真知图层子对象属性图层子对象可以引用其自身的一些属性;maskShapemaskFeather比方说particular的XY引用effect(“Particular”)(“Position XY”)这些属性可以引用部分的图层属性的特性关键帧的属性valuetimeindex灯光图层的属性和方法其作为图层对象有着和图层对象相关的属性和方法除了(source,effect,mask,width,height,anchorPoint,scale,opacity,audioLevels,timeRemap)以下为其特有属性和方法:pointOfInterestintensitycolorconeAngleconeFeathershadowDarknessshadowDiffusion象机图层的属性和方法其作为图层对象有着和图层一样的属性和方法除了(source,effect,mask,width,height,anchorPoint,scale,opacity,audioLevels,timeRemap)以下为其特有的属性和方法(无scale属性但可通过NullObject的scale实现此功能)pointOfInterestzoomdepthOfFieldfocusDistanceapertureblurLevelactive标记的属性durationcommentchapterurlframeTargeteventCuePointcuePointNameparameters注:图层属性及使合成属中marker.key(t)及marker.nearestKey(t)将返回一个marker对象也可引用此属性以上这些属性和方法将配合JavaScript语言及一些数学方法,图层空间转换方法、空间数学向量方法、随机函数、颜色转换、插值方法进行动画设计;注:全局属性和方法是可以在全局引用;如thisComp/引用当前合成;thisLayer及thisProperty等;timeToFrames(t),time等等;footage(fileName/pre-compName) 方法相当与图层子对象返回一个对象,但其可以直接相用项目面板里的footage项及一此相关参数;width,height,duration,frameDuration pixelAspect,name对象属性之间引用的方式: comp(“compName”).layer(“layername/index”).propertyNpertyName 或 comp(“compName”).layer(“layername/index”).effect(“effectName”)(“PropertyName”).propertyNpertyName例:comp(“comp 1”).layer(“circle”).position.velocity0; /返回一个图层circle的位置上X方向的速率 。comp(“Comp 1”).layer(“circle”).effect(“Particular”)(“Position XY”).velocity0向量的数学方法返回值参数类型描述add(vec1, vec2)返回数组对象两个参数都是数组两个数组相加sub(vec1, vec2)返回数组对象两个参数都是数组两个数组相减mul(vec, amount)返回一个数组对象vec为数组类型,amount为数字类型通过amount和vec每个元素相乘得出一个新的向量数组div(vec, amount)返回一个数组vec为数组类型,amount为数字类型通过amount和vec每个元素相除得出一个新的向量数组clamp(value, limit1, limit2)返回一个数组value、limit1、limit2是数字类型或数组类型value每组值被束缚在limit1与limit2之间;dot(vec1, vec2)返回一个数字类型vec1、vec2为数组类型由向量参数返回一个点的结果;cross(vec1, vec2)返回Array2 or 3vec1或vec2是2维或三维数组返回一个vec1和vec2交差的结果normalize(vec)返回一个数组参数为数组类型标准化向量数组使其长度为1.0;length(vec)返回一个数字型参数为数组类型(或向量数组的差值)返回向量的一个长度值(其距原点的距离-左上角)length(point1, point2)返回一个数字类型参数为数组类型返回两个点之间的距离lookAt(fromPoint, atPoint)返回一个3维数组两个参数为3维数组fromPoint是你想确定方向图层的世界坐标空间的位置。atPoint是你想指定方向的位置;通过这个表达式可以锁定灯光及相机的orientation属性,解决他们的方向问题:如在相机的此属性下lookAt(position, thisComp.layer(2).position);随机数的方法返回值参数类型描述seedRandom(offset, timeless=false)返回类型为noneoffset为数字类型;timeless为布尔类型random和gaussRandom方法使用种子值控制序列数字random()返回一个数字类型无参数返回一个随机数其值在0-1之间;random(maxValOrArray)返回一个数字或数组类型参数是一个数字或数组类型返回一个0到maxOrArray之间的数字或数组random(minValOrArray, maxValOrArray)返回一个数字或数组类型参数是一个数字或数组类型返回一个minValOrArray到maxValOrArray之间的数字或数组gaussRandom()返回一个数字类型无参数返一个数字随机值,其有一个高斯分配,大约在0-1之间取90%这样一个范围gaussRandom(maxValOrArray)gaussRandom(minValOrArray, maxValOrArray)noise(valOrArray)返回一个数字类型参数为数字或2、3维数组返回数字的取值范围是-1到1之间;如果要一个动画近似自然运动:rotation+360*noise(time)随机数的方法2返回值参数类型描述linear(t,tMin, tMax, value1, value2)返回一个数字或数组类型t,tMin,tMax是数字类型,value1, value2是字类型,或数组类型Returns value1 when t = tMax. Returns a linear interpolation between value1 and value2 when tMin t tMax.示例:需要透明属性从20%到80%之间线性渐变,从0秒到6秒之间;linear(time, 0, 6,20,80)如果要在整个时间线上重复这样的渐变只需要将time与时间间隔求余;即: t=time%6;Linear(t,0,6,20,80);linear(t,value1, value2)返回一个数字或数组类型t是一个数字类型,value1、value2是数字类型或数组类型当t从0到1范围,返回一个从value1到value2的线性插值;当t=1返回value2ease(t,value1,value2)返回一个数字或数组类型t is a Number, and value1 and value2 are Numbers or Arrays.Similar to linear with the same arguments, except that the interpolation eases in and out so that the velocity is 0 at the start and end points. This method results in a very smooth animationease(t, tMin, tMax, value1, value2)easeIn(t,value1, value2)Similar to ease, except that the tangent is 0 only on the value1 side and interpolation is linear on the value2 side.easeIn(t,tMin, tMax, value1, value2)Similar to ease, escept that tangent is 0 only on the tMin side and interpolation is linear on the tMax side.easeOut(t, value1, value2)Similar to ease, except that the tangent is 0 only on the value2 side and interpolation is linear on the value1 side.easeOut(t, tMin, tMax, value1, value2)Similar to ease, except that the tangent is 0 only on the tMax side and interpolation is linear on the tMin side.角度与弧度的数学方法返回值参数类型描述degreesToRadians(degrees)返回值为数字类型参数为一个度数的数字类型转换一个角数到弧度;其对应关系为:180度等一个值,360度等于平分2值;720度等4值,以此类推radiansToDegrees(radias)返回值为数字类型参数为一个弧度的数字类型转换一个弧度到角度Triangle / Inverse TriangleFunctionInput RangeResults, in radiansin DegreesMath.asin(number)-1 to 1-Pi/2 to Pi/2-900 to 900Math.acos(number)-1 to 10 to Pi00 to 1800Math.atan(number)-inf to inf-Pi/2 to Pi/2-900 to 900Math.atan2(y, x)-inf to inf, 2D-Pi to Pi-1800 to 1800Math.sin(number/radians)-1 to 1Math.cos(number/radians)-1 to 1图层空间变换的方法返回值参数类型描述toComp(point, t=time)Array2 or 3是一个两维或三维的空间中的一个点的坐标值;在AE合成中图层空间,合成窗口的左上角为原点,向下为Y轴正向,向右为X轴正向;fromComp(point, t=time)Array2 or 3是一个两维或三维的空间中的一个点的坐标值;从合成空间到图层空间的一个点。这个结果点在一个3维图层里点有一个非零值,即使其在图层空间;toWorld(point, t=time)Array2 or 3变换一个点从图层空间到一个独立视图的世界空间。fromWorld(point, t=time)Array2 or 3toCompVec(vec,t=time)Array2 or 3vec是一个两维或三维的数组变换一个向量从图层空间到合成空间fromCompVec(vec, t=time)Arrray2 or 3变换一个向量从合成空间到图层空间toWorldVec(vec, t=time)Array2 or 3变换一个向量从图层空间到世间空间p1=effect(“Eye Bulge 1”)(“Bulge Center”);p2=effect(“Eye Bulge 2”)(“Bulge Center”);toWorld(sub(p1,p2);fromWorldVec(vec, t=time)Array2 or 3变换一个向从世界空间到图层空间;fromCompToSurface(point, t=time)Array2point可以是一个Array2 or 3,t是时间Projects a point located in composition space to a point on the surface of the layer (zero z-value) at the location where it appears when viewed from the active camera. This method is useful for setting effect control points. Use with 3D layers only.注:通过图层引用的一组空间转换的方法,用于图层空间坐标与合成坐标及世界坐标相互转换的方式方法颜色转换的方法返回值参数类型描述rgbToHsl(rgbaArray)返回一个四维数组的一个RGBA四维数组转换一RGBA颜色到HSLA空间;输入的数组值,R、G、B、A值的范围都是从0.01.0;返回的值H、S、L、A值也是0.01.0;rgbToHsl.effect(“Change Color”)(“Color To Change”)hslToRgb(rgbaArray)略略功能与RgbToHsl(hslArray)相反解决对象使用控制对象的rotation属性进行旋转,另一个图层效果对其位置的跟踪一、 建一个控制对象,对其rotation的属性进行运动;二、 另一个对象将其绑定为父对象;三、 注意此对象的anchorPoint放置需要位置;四、 然后在另一个图层效果属性位置属性引用以下表达式:如particular位置属性:x=thisComp.layer(“bindedObjectName”).toWorld(thisComp.layer(“bindedObjectName”)anchorPoint)0;y=thisComp.layer(“bindedObjectName”).toWorld(thisComp.layer(“bindedObjectName”)anchorPoint)1;x,y;注:对于图层的旋转属性都是相对于anchorPoint属性进行的;在运动指向上的一个实例:球B绕着球A运动,而A的箭头始终指向B运动的位置1、制作B绕A的运动;2、在A的Rotation属性添加如下表达式;this_point=position;that_point=thisComp.layer(“B”).position;delta=sub(this_point, that_point);angle=Math.atan2(delta1, delta0);radiansToDegrees(angle);使3D图层的(仅Y轴)指向像机水平移动:1、在该3D图层的Y轴旋转加上如下表达式Bouncing Ball Expression(弹跳球表达式)?Poistion:-bounceSpeed=1;flight=0.85;bounceHeight=250;t=Math.abs(time*2*bounceSpeed)%2-1);t=linear(t,flight,0,0,1);b=Math.cos(t*Math.PI/2);value-0,bounceHeight*b;Scale:-bounceSpeed=1;squash=0.5;stretch=1.2;flight=0.85;t=Math.abs(time*2*bounceSpeed)%2-1);t=(tflight)?easeOut(t,flight,1,stretch,squash) : easeIn(t,0,flight,1,stretch);value0/Math.sqrt(t), value1*t ;当一个现实中摆动的物体受重力影响的运动轨迹表达式?rotation属性:没有重力freq = 1.0; /oscillations per second amplitude = 50; decay = 0; /no decayamplitude*Math.sin(freq*time*2*Math.PI)/Math.exp(decay*time)有重力freq = 1.0; /oscillations per second amplitude = 50; decay =.7; /no decayamplitude*Math.sin(freq*time*2*Math.PI)/Math.exp(decay*time)模仿球在地板上向前弹跳到静止的方法及表达式?一、 建立一个X轴方向运动的关键帧动画;二、 在其Position属性添加如下表达式freq=1.0; /oscillation per second.amplitude=200;decay=.5;posCos=Math.abs(Math.cos(freq*time*2*Math.PI);y=amplitude*posCos/Math.exp(decay*time);position-0,y;示例:使用音频控制一组相处幻灯回放效果一、 将一组图片制作成一个合成片;在合成内使用PhotoOrientationFixer.jsx脚本调整图片的方向;调整后如果有图片的大小超出合成大小;使用Fit2Frame.jsx改变其大小适合合成大小;二、 将所有图片的变化时间调整到1帧;三、 然后通过Sequence Layers将图片序列化;修成合成到图片序列的时间变化长度;四、 手动修改图片序列中单张图片的大小及其位置;五、 挑选节奏感强的音乐,使用Keyframe AssistantCoverAudio to Keyframes生成一个音乐节奏控制器;六、 使用AudioToMarkers脚本调选一定节奏帧生成标签;七、 在图片序列合成上使用Time Remap效果;并添加如下表达式:markerLayer=thisComp.layer(“Audio Amplitude”);myNearestKey=markerLayer.marker.nearestKey(time);markerCounter=0;if(time=myNearestKey.time)markerCounter=myNearestKey.index;elsemarkerCounter=myNearestKey.index-1;framesToTime(markerCounter);或控制视频修改framesToTime(markerCounter*SliderControl)八、 最后根据图片展示和音乐的需要进行手动调整图层的标签的位置和数量;在平面上表示一个点的位置有两种方式一、 标准坐标(x,y);二、 极坐标(A,r);三角定理:r2=x2+y2正切函数tan(A)=y/x;A=arctan(y/x);那么在JavaScript使用的方式如下JavaScript中的数学方法:Math.sin(angle);Math.cos(angle);Math.tan(angle); /注这些angle是对应角度的弧度值;可通过degreesToRadians(angle)这里为角度radiansToDegrees(angle)这是angle为弧度;得到弧度的公式为:radians=Math.atan2(x, y);x,y为平面上坐标值;注:故得到一个圆周上的坐标(1Radians为模型,中心点0,0);radius*Math.cos(degreesToRadians(angle), radius*Math.sin(degreesToRadians(angle);在时间轴上画圆(通过position绘制)的表达式就为:x=radius*Math.cos(time);y=radius*Math.sin(time);x,y+position;如果,我们要使得一个对象绕某个轴进行旋转将以下代码加入相的rotation属性:x=radius*Math.cos(time);y=radius*Math.sin(time);angle=radiansToDegrees(Math.atan2(y,x);计算一个圆的物体按合成的宽度进行旋转的表达式方法:d=width;PI=Math.PI;circle=d*Math.PIrotation_Pixel=360/circle;objScale=thisLayer.scale0/100;rotationAngle=rotation_Pixel*thisLayer.position0*rotation_Pixel*objScale;控制正弦振幅、频率表达式:amplitude*Math.sin(angle*frequency);以下为一个应用示例的代码以某个对象为中心,为绕其重复一个图层构成一个围墙:center=thisComp.layer(“center”).position;radius=80;interval=30;layer_num=index-1;angle=degreesToRadians(layer_num*interval);x=radius*Math.cos(angle);y=radius*Math.sin(angle);add(center, x,y);波形叠加或是培增代码示例:frequency_one=10;amplitude_one=10;frequency_two=1;amplitude_two=30;wave_one=Math.sin(time*frequency_one)*amplitude_one;wave_two=Math.sin(time*frequence_two)*amplitude_two;-y=wave_one+wave_two;/叠加;培增是y=wave_one*wave_two;x=time*32;add(effect(“Write-on”).param(1), x, y);表达式访问图层标记和合成标记里参数值对于图层标记和合成标记可以使用同样的方法访问他们的值。访问图层标记对象thisLayer.marker;访问合成标记对象thisComp.marker;为表达式引用,标记是一个关键帧对象的一个特殊类型,故可以使用nearestKey(time)这样的方法访问标记,标记也有时间和索引属性。如,返回标记所有属性内容表达式?m=thisLayer.marker.nearestKey(time);/返回离指定时间最近的关键帧的标记对象。s=”time: ” + timeToCurrentFormat(m.time) + “r” +“duration: “ + m.duration + “r” +“key index: “ +m.index + “r” +“comment: ” +ment + “r” + “chapter: ” +m.chapter + “r” +“URL: ” +m.url + “r” +“frame target: ” + m.frameTarget + “r” +“cue point name: ” + m.cuePointName + “r” +“Event cue point?” + m.eventCuePoint + “r”;for(param in m.parameters) s+=”parameter: ” +param + “ value: “ +m.parametersparam +”r”;s;duration:返回类型为数字类型comment:返回字符串类型,是标记对话框里注释的内容;chapter:返回字符串类型,是标记对话框里章节域的内容;url:返回字符串类型,是标记对话框里URL域的内容;frameTarget:返回字符串类型,是标记对话框里的Frame Target域的内容;eventCuePoint:返回的是布尔类型,在标记对话框里设置cue point类型,True是事件,false为导航;cuePointName:返回字符串类型,在标记对话框里cue point Name域里的内容;parameters:返回字符串关联数组,是在标记对话框里,参数名和参数值的内容;因为在一个影片项里的XMP元数据能被转换成基于图层作为图层标记的那些项,表达式能与XMP数据相互作用;如下为sampleImage(point, radius=.5,.5, postEffect=true, t=time)一个制作白云经过明光时,月光的亮度随云层是否有云,及云彩的透明度发生相应变化?1、创建一个云层,使用Fractal Noise制作云层动画,图层命名为clouds;2、使用Knoll Unmult使云层透明;3、创建天空底层,在其上使用Lens Flare效果;4、在Lens Flare的Flare Brightness属性上创建表达式var target=thisComp.layer(“clouds”);var alpha=target.sampleImage(effect(“Lens Flare”)(“Flare Center”), 3.5,3.5)3;linear(alpha, 0,0.36, 80, 10);图示为表达式分析:通过一个图层位置变化,线性控制其他图层模糊值?/Fast Blur with control layer. Aplied to Blurriness parameter./Point1 is current layer, point2 is control layerpoint1=thisLayer.position;point2=thisComp.layer(“Drag Me”).position;/Find the vector between the 2 pointsdelta=sub(point1, point2);/Now find the lengthdistance=length(delta);linear(distance, 0,80,40,0); / linear(distance,0,80,250,250,75,75);使用向量数组求两点之间距离?JavaScript 方式:/Pick 2 point;point1=thisComp.layer(“A”).position;point2=thisComp.layer(“B”).position;/Find the vector between themdelta=sub(point1,point2);使length函数,在AE里直接写成;distance=length(delta);x=delta0;y=delta1;/Now find the lengthdistance=Math.sqrt(x*x+y*y);Flash脚本读取AE输出的图层标记的Flash Cue Point中的参数值:1、 使用AE跟踪运动,生成一个一些关键帧;2、 然后选择Motion Trackers里的Attach Point属性全部关键帧;3、 FileScriptsConvert Selected Properties to Markers(其实这个命令生成的就是Flash Cue Point,当然也可通过设置Marker让其成为其他的标记用途);4、 通过AE导出FLV格式文件;5、 然后再Flash中导入这个视频;6、 制作细节略;7、 Flash代码部份:import fl.video.*;var prop: String;var obj:Object;var val:*;myVid.addEventListener(MetadataEvent.CUE_POINT, cp_listener);toggle_button.addEventListener(MouseEvnet.CLICK, toggleDataView);function cp_listener ( eventObject:MetadataEvent) : void obj=eventO.parameters;for(prop in obj)val=objprop;if(prop=”Track Point 1_Attach Point”) var results:Array=val.split(/,/);racerData.y=Number(results1); /racerData为一个要显示图片实例或符号实例racerData.x=Number(results0); else if (prop=”EOV”) myVid.seekToNavCuePoint(0.0);function toggledDataView(eventObject:MouseEvent):void if (!racerData.Visible) racerData.Visible=true; else racerData.Visible=false;racerData.visible=false;使用脚本制作一个多层立体的延迟帧动画效果一、 建立一个场景动画元素场景;1500X1500二、 建立一个合成将动画元素场景拖入到此合成中,此合成命名为元素动画场景;1500x1500为元素动画场景图层的position,rotation属性制作动画:position加入如下表达式temp0=transform.position0 + random(-2,2);temp1=transform.position1+ random(-2,2);temp0, temp1;rotation动画:打两个关键帧制作一个顺时针旋转动画;添加表达式:transfrom.rotaion+random(-1,1);三、 再建一个使成命名为最终场景,将元素动画场景拖入;1024x756建立一个控制层使用Solid,或空对象,或调整层命名为Controle;为控制层添加如下效果,表达式控制,Chechbox Control命名为avant/apres,三个Slider Control分别命名为decalage、exposition、distance将元素动画场景拖入此合成;将其转换为3D图层;对该图层添加TimeRemap和Exposure效果;分别为该层的TimeRemap,Exposure,Position属性添加如下表达式:TimeRemap:if(index1)temp=thisComp.layer(“Controle”).effect(“decalage”)(“Slider”)/25;if(thisComp.layer(“Controle”).effect(“avant/apres”)(“Checkbox”)=0)decal=1;elsedecal=-1;timeRemap=thisComp.layer(index-1).timeRemap + temp*decal;elsetimeRemap;Exposure:if(index1)thisComp.layer(index-1).effect(“Exposure”)(“Exposure”)+thisComp.layer(“Controle”).effect(“exposition”)(“Slider”)/4;else0;Position:if(index1)temp=thisComp.layer(index-1).transform.position2 + thisComp.layer(“Controle”).effect(“distance”)(“Slider”);elsetemp=0;position0, position1,temp四、 然后复制元素动画场景层,达到想要的最终效果;五、 当然还可以再加一些自己想的修饰的效果;如何思考表达式控制闪光灯?考

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论