收藏 分享(赏)

AE中的表达式.doc

上传人:scg750829 文档编号:7666193 上传时间:2019-05-23 格式:DOC 页数:11 大小:232.50KB
下载 相关 举报
AE中的表达式.doc_第1页
第1页 / 共11页
AE中的表达式.doc_第2页
第2页 / 共11页
AE中的表达式.doc_第3页
第3页 / 共11页
AE中的表达式.doc_第4页
第4页 / 共11页
AE中的表达式.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、- 1 -AE 中的表达式一、表达式概述当我们想要创建和链接复杂的动画,却又不想创建许许多多的关键帧时,可使用表达式。表达式很像一个小软件,具体讲像 javascript,可以在某个时间点对某个图层的某个属性值进行计算。scripts 告诉一个 app 去做些什么,而表达式是针对属性的。使用表达式,可以在图层的属性间创建关联、用一个属性的关键帧来动态地对其它图层产生动画.表达式语言是基于 javascript 的,但你不必非得掌握 javascript 才能使用表达式,可用 pick whip 来链接属性,或拷贝已有的表达式到表达式栏中并加以修改即可。动画预设也包括表达式,甚至完全是表达式。使

2、用表达式而不是关系帧的动画预设有时被叫作“行为” (behaviors ) 。向属性添加了表达式后,可继续为该属性添加或编辑关键帧。表达式可使用由该属性的关键帧生成的值作为它的输入值,然后用该值生成一个新值(即在自身上操作) ,例如下边的表达式在 rotation 关键帧动画后又在 rotation 值上加了 90 度:value+90有些方法如 wiggle-直接对关键帧属性值进行操作(参见属性和方法表达式参考) 。下面的表达式作用于一个图层的位置属性,使得图层位置发生一点点抖动。wiggle(10,10)注意:使用 wggle 表达式比用 Wiggler 面板要快捷、容易。对文字进行动画时

3、,可使用 Expression selector 来指定 animator 属性对每个字符产生多大的影响,可向同个 animator 组添加一个或多个 Expression selector,该 animator 组可包含一个或多个属性。二、添加、编辑和移除表达式- 2 -可手动键入、用 Expression Language 菜单、用 pick whip 或从其它属性的已有表达式中拷贝来创建表达式。Expression interface in the Timeline panel in layer bar modeA. 启用表达式开关B. 显示 Post-Expression Graph

4、按钮C. Pick whipD. Expression Language 菜单E. 表达式输入框 Expression field比较常用的做法是用 pick whip 链接不同的属性,然后运用简单数学运算符对表达式进行适当调整:+:加、-:减、*:乘、/:除、*-1 :对原初执行反操作,例如顺时针及逆时针等。添加、禁用或移除一个表达式:(1)添加:在时间轴面板上选择一个属性选择“Animation”菜单Add Expression 或按 Alt+Shift+=,或按 Alt 同时点击属性名左边的秒表(关键帧记录器) 。(2)禁用:暂时禁用表达式,点击上图中的 A 按钮 ,禁用时 A 变为 。

5、(3)移除:选择有表达式的属性Animation 菜单Remove Expression 或按 Alt 同时点击属性名左边的秒表(关键帧记录器) 。编辑用 pick whip 生成的表达式:- 3 -如对 javaScript 或 AE 表达式语言不熟悉,可用 pick whip 来充分利用表达式的强大功能:从一个属性拖动 到另个属性上,则表达式文本就自动出现在表达式输入框中。(1)点击生成的表达式,进入文本编辑模式(2)进行编辑,偶尔使用 Expression Language 菜单(3)退出文本编辑模式:按小键盘上的 Enter 键或在表达式输入框的外边点击鼠标实例:用 expressio

6、n 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)在曲线图编辑模式下,单个的表达式输入框变为曲线编辑器底部的一个可

7、调大小的框并只显示已选择属性的表达式。要同时显示出多个表达式,时间轴必须处于图层模式。- 4 -四、在 Text 图层的 Source Text 属性上写表达式text 图层的 Source Text 属性的类型是 JavaScript String,可用 pick whip 从另个 text 图层取得文本,只使用目的层的第一个字符的格式。关于 JavaScript String 的更多知识,参考 JavaScript 书籍。在字符串中可用 “r” 来开始一新行文本,例如:把一图层上的文本进行复制并拷贝到该图层上,在另一行显示并变成大写的,用下边代码:text.sourceText + “r“

8、 + 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 用数组下标引用数组元素:如

9、myArray0指的是 13,myArray1指的是5。Dimension Property1 Rotation Opacity %2 Scale x=width, y=heightPosition x, yAnchor Point x, yAudio Levels left, - 9 -Dimension Propertyright3 Scale width, height, depth3D Position x, y, z3D Anchor Point x, y, zOrientation x, y, z4 Color red, green, blue, alpha位置坐标这样表示:pos

10、ition0表示位置的 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;或者这样更高效

11、:9, position1把图层 A 的 position 的 x 值与图层 B 的 position 的 y 值结合,可这样:x = thisComp.layer(“Layer A“).position0; y = thisComp.layer(“Layer B“).position1; x,y- 10 -注意:需说明的情况(1)一维属性引用多维(多维属性给一维赋值)此时默认使用的是第一个数组元素值(除非显示指定用哪个值) 。例如,如果用 pick whip 拖动图层 A 的 Rotation 属性至图层 B 的 Scale 属性,则会生成下列表达式:thisComp.layer(“Laye

12、r B“).scale0可见,默认使用了 scale0,即 scale 数组中的第一个元素,也就是宽度维族的值。如果想引用第二个值,则需拖动 pick whip 至图层 B 的 Scale 属性的第二个值上,而不是拖动到属性名上,此时表达式为:thisComp.layer(“Layer B“).scale1(2)多维属性引用一维属性(一维属性给多维属性赋值)AE 自动创建一个变量,把一维属性值赋给它,然后用这个变量构建二维或多维属性数组:如从图层 B 的 Scale 属性引用图层 A 的 Rotation 属性时,则背后发生:temp = thisComp.layer(1).transform

13、.rotation; / 读取单值(一维)属性的值,存入变量 temp 中temp, temp; / 构建匹配数组十一、矢量/向量(Vectors)AE 中许多属性和方法都接受或返回 vectors。当一个数组代表的是空间中的一个点或一个方向时,AE 就把它作为 Vector 来表示。例如 AE 把 position 作为 Vector 来表示。position 是 Vector,但 audioLevels 就不是。尽管 audioLevels 也是两维数组(左和右) ,但它表示的不是点或方向。有些方法的参数是 Vectors,但却只有当传入的参数表示方向时才有意义 (即传入“点”positi

14、on 不可) ,如:cross(vec1, vec2) 。十二、索引和标签(Indices and labels)AE 中对图层、遮罩和特效的索引是从 1 开始的,例如时间轴面板中第一个- 11 -图层为 layer(1)。显然,使用名字而不是索引更好,这样在图层等被调整位置时就不会出错,而且使用名字也可给代码编写者更好的可读性提示。例如下边第一条语句比第二条更易懂:effect(“Colorama“).param(“Get Phase From“) effect(1).param(2)十三、时间表达式(Expression time)表达式中的时间指的总是“合成的时间” ,而不是“图层的时间

15、” ,而且单位为秒。默认时间是当前表达式正在被计算时的时间。下面两个表达式都使用默认的合成时间,且返回相同的值: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 retr

16、ieve a property, the remapped time is used.十四、错误表达式(Expression error)如果一个表达式不能被处理,AE 就显示一条解释错误的信息并自动禁用该表达式-在表达式左边出现一个黄色的警告标志 ,再次点击这个标志可再次看错误信息。注:要显示哪个表达式出错了,选择一个或多个层,在时间轴面板中右键点击选中的层,从弹出的快捷菜单中选择“Reveal Expression Errors” 。有些表达式使用的是图层或图层属性的名字,此时如果修改了名字,AE 会尝试更新表达式来使用修改后的新名字。然而在某些复杂情况下,AE 不能自动更新表达式,此种情况下表达式就可能会生成错误信息,需要我们人工更新表达式。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报