




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
AE中的表达式一、表达式概述当我们想要创建和链接复杂的动画,却又不想创建许许多多的关键帧时,可使用表达式。表达式很像一个小软件,具体讲像javascript,可以在某个时间点对某个图层的某个属性值进行计算。scripts告诉一个app去做些什么,而表达式是针对属性的。使用表达式,可以在图层的属性间创建关联、用一个属性的关键帧来动态地对其它图层产生动画.表达式语言是基于javascript的,但你不必非得掌握javascript才能使用表达式,可用pick whip来链接属性,或拷贝已有的表达式到表达式栏中并加以修改即可。动画预设也包括表达式,甚至完全是表达式。使用表达式而不是关系帧的动画预设有时被叫作“行为”(behaviors)。向属性添加了表达式后,可继续为该属性添加或编辑关键帧。表达式可使用由该属性的关键帧生成的值作为它的输入值,然后用该值生成一个新值(即在自身上操作),例如下边的表达式在rotation关键帧动画后又在rotation值上加了90度:value+90有些方法如wiggle-直接对关键帧属性值进行操作(参见属性和方法表达式参考)。下面的表达式作用于一个图层的位置属性,使得图层位置发生一点点抖动。wiggle(10,10)注意:使用wggle表达式比用Wiggler面板要快捷、容易。对文字进行动画时,可使用Expression selector来指定animator属性对每个字符产生多大的影响,可向同个animator组添加一个或多个Expression selector,该animator组可包含一个或多个属性。二、添加、编辑和移除表达式可手动键入、用Expression Language菜单、用pick whip或从其它属性的已有表达式中拷贝来创建表达式。Expression interface in the Timeline panel in layer bar modeA. 启用表达式开关B. 显示 Post-Expression Graph按钮C. Pick whipD. Expression Language 菜单E. 表达式输入框 Expression field比较常用的做法是用pick whip链接不同的属性,然后运用简单数学运算符对表达式进行适当调整:+:加、-:减、*:乘、/:除、*-1:对原初执行反操作,例如顺时针及逆时针等。添加、禁用或移除一个表达式:(1)添加:在时间轴面板上选择一个属性选择“Animation”菜单Add Expression或按Alt+Shift+=,或按Alt同时点击属性名左边的秒表(关键帧记录器)。(2)禁用:暂时禁用表达式,点击上图中的A按钮,禁用时A变为。(3)移除:选择有表达式的属性Animation菜单Remove Expression或按Alt同时点击属性名左边的秒表(关键帧记录器)。编辑用pick whip生成的表达式:如对javaScript或AE 表达式语言不熟悉,可用pick whip来充分利用表达式的强大功能:从一个属性拖动到另个属性上,则表达式文本就自动出现在表达式输入框中。(1)点击生成的表达式,进入文本编辑模式(2)进行编辑,偶尔使用Expression Language菜单(3)退出文本编辑模式:按小键盘上的Enter键或在表达式输入框的外边点击鼠标实例:用expression language菜单创建表达式(1) 建两个solid层:solid1和solid2(2) 用关键帧对solid1进行位置动画(3) 选择solid2的position属性后,选择expression language菜单add expressions或Alt同时点击秒表:则出现默认的表达式-transform.position。(4) 修改上边生成的表达式为: thisComp.layer(1).position.valueAtTime(time+2)。三、显示表达式和表达式曲线图(graph)在曲线图编辑模式下,单个的表达式输入框变为曲线编辑器底部的一个可调大小的框并只显示已选择属性的表达式。要同时显示出多个表达式,时间轴必须处于图层模式。四、在Text图层的Source Text属性上写表达式text图层的Source Text属性的类型是JavaScript String,可用pick whip从另个text图层取得文本,只使用目的层的第一个字符的格式。关于JavaScript String的更多知识,参考JavaScript书籍。在字符串中可用 “r” 来开始一新行文本,例如:把一图层上的文本进行复制并拷贝到该图层上,在另一行显示并变成大写的,用下边代码:text.sourceText + r + text.sourceText.toUpperCase()向一个comp添加一个text图层,然后向该图层的source text属性添加表达式经常用来检查其它图层的属性及属性值:thisComp.layer(index + 1).name + rOpacity = + thisComp.layer(index + 1).opacity.value下段代码用于报告使用的footage的名字,该footage处于堆栈最上方source_footage_name = ; for (i = 1; i = my_layer.inPoint & time Keyframe Assistant Convert Expression To Keyframes。九、访问属性和方法用表达式可访问图层的属性和方法,语法是:要访问一个值,使用由点号操作符分隔的对象引用链;要访问一个超出图层属性的值,如特效值、遮罩或文本动画值时,也可使用括号,例如把图层A的透明属性链接到图层B的高斯模糊的模糊属性上,在图层A的透明属性上添加下列代码:thisComp.layer(Layer B).effect(Gaussian Blur)(Blurriness)从左读到右,可发现是从高端到低端逐层到达的:用来引用当前合成的全局对象:thisComp该合成内的一个具体层用该层的名字来引用:layer(“Layer B”)该层的一个具体的特效由该特效的名字来引用:effect(Gaussian Blur)该特效的一个具体特效属性由该特效属性的名字来引用:(Blurriness)对于多维属性的第n个值,在尾部加上n,如访问y值:thisComp.layer(Layer B).effect(Advanced Lightning)(Origin)1一个表达式的默认作用对象就是该表达式所在的属性,所以不必写出属性,因而下边两句等价:wiggle(5,10)position.wiggle(5,10)引用别的图层的,则要写全:thisComp.layer(Layer A).rotation十、数组和多维属性AE中数组是存储一系列顺序化数字(number)的一个类型,由一对儿方括号里边用逗号分隔的数字来表示,如:13, 5。可把数组赋值给一个变量,这样在表达式的其它地方引用该数组就变得容易: myArray=13, 5; 用数组下标引用数组元素:如myArray0指的是13,myArray1指的是5。DimensionProperty1Rotation Opacity %2Scale x=width, y=heightPosition x, yAnchor Point x, yAudio Levels left, right3Scale width, height, depth3D Position x, y, z3D Anchor Point x, y, zOrientation x, y, z4Color red, green, blue, alpha位置坐标这样表示:position0表示位置的x坐标position1表示位置的y坐标position2表示位置的z坐标颜色用四维数组表示: red , green, blue, alpha 。颜色位深是8位或16位的项目中,颜色数组中的每个元素值取值范围是0-1,比如red为0表示没有红色,为1则全红。所以0,0,0,0表示黑色且透明,1,1,1,1表白色不透明。对于 32位深的颜色,则允许小于0和大于1的元素值。数组下标超出数组范围时AE会报错。想使用position动画的y值,让x值固定为9,可下边这样:y=position1;9,y;或者这样更高效:9, position1把图层A的position的x值与图层B的position的y值结合,可这样:x = thisComp.layer(Layer A).position0; y = thisComp.layer(Layer B).position1; x,y注意:需说明的情况(1)一维属性引用多维(多维属性给一维赋值)此时默认使用的是第一个数组元素值(除非显示指定用哪个值)。例如,如果用pick whip拖动图层A的Rotation属性至图层B的Scale属性,则会生成下列表达式:thisComp.layer(Layer B).scale0可见,默认使用了scale0,即scale数组中的第一个元素,也就是宽度维族的值。如果想引用第二个值,则需拖动pick whip至图层B的Scale属性的第二个值上,而不是拖动到属性名上,此时表达式为:thisComp.layer(Layer B).scale1(2)多维属性引用一维属性(一维属性给多维属性赋值)AE自动创建一个变量,把一维属性值赋给它,然后用这个变量构建二维或多维属性数组:如从图层B的Scale属性引用图层A的Rotation属性时,则背后发生:temp = thisComp.layer(1).transform.rotation; / 读取单值(一维)属性的值,存入变量temp中temp, temp; / 构建匹配数组十一、矢量/向量(Vectors)AE中许多属性和方法都接受或返回vectors。当一个数组代表的是空间中的一个点或一个方向时,AE就把它作为Vector来表示。例如AE把position作为Vector来表示。position是Vector,但audioLevels就不是。尽管audioLevels也是两维数组(左和右),但它表示的不是点或方向。有些方法的参数是Vectors,但却只有当传入的参数表示方向时才有意义 (即传入“点”position不可),如:cross(vec1, vec2) 。十二、索引和标签(Indices and labels)AE中对图层、遮罩和特效的索引是从1开始的,例如时间轴面板中第一个图层为layer(1)。显然,使用名字而不是索引更好,这样在图层等被调整位置时就不会出错,而且使用名字也可给代码编写者更好的可读性提示。例如下边第一条语句比第二条更易懂:effect(Colorama).param(Get Phase From) effect(1).param(2)十三、时间表达式(Expression time)表达式中的时间指的总是“合成的时间”,而不是“图层的时间”,而且单位为秒。默认时间是当前表达式正在被计算时的时间。下面两个表达式都使用默认的合成时间,且返回相同的值:thisComp.layer(1).position thisComp.layer(1).position.valueAtTime(time)如果想用相对时间,可在时间参数上加上或减去个值,如:thisComp.layer(1).position.valueAtTime(time-5) /比当前时间早5秒的那个时间引用被嵌套的合成的属性的默认时间使用的是原来合成的时间,而不是remapped时间;然而,if you use the source function to retrieve a property, the remapped time is used.十四、错误表达式(Expression error
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年影像学放射影像解读技能检验答案及解析
- 机构编制发展新质生产力
- 2025年耳鼻喉科学科听力评估与康复模拟考试答案及解析
- 2025年骨科外伤急救操作技能测评模拟考试答案及解析
- 民族团结的课件
- 2025年耳鼻喉科术后护理观察考核答案及解析
- 公考面试新质生产力应答指南
- 2025年神经外科手术并发症管理综合能力考核答案及解析
- 产业链协同与新质生产力
- 有关同学聚会的活动策划方案(精创)
- 粮库业务知识培训课件
- 医师临床“三基”训练综合试卷(含答案)
- 2025至2030年中国综合能源服务市场竞争策略及行业投资潜力预测报告
- 土地要素保障课件教学
- 2025-2026粤教粤科版(2024)科学三年级上册教学设计(附目录)
- 《鸿蒙应用开发项目教程》全套教学课件
- 2025年陕西省中考数学试题卷(含答案详解)
- 2025年注册计量师考试计量器具管理与维护试卷
- 国内公司外汇管理办法
- 高中数学教师学情分析现状的调查研究
- 起重作业安全知识考核试题(含答案)
评论
0/150
提交评论