在Effect Controls(特效控制)窗口或者时间线窗口上,找到需要添加表达式的属性:
方法一:option(Mac)或者alt(win)键,加左键单击参数前的码表。
方法二:快捷键 Shift + option/alt + “=” 。
之后就能在时间轴上呼出表达式面板。
白色框是表达式的编辑窗口。
属性参数后面下会出现并排的四个图标:
![]() |
单击启用和关闭表达式 |
![]() |
显示表达式运算后的曲线图表 |
![]() |
拾取器 |
![]() |
表达式语言菜单 |
如果所写表达式有错误,则会出现一个黄色三角的惊叹号,同时也表示这个表达式并没有起作用。
![]() |
表达式出错 |
在编辑区书写表达式的方法有四种:
- 直接写入
- 利用拾取器
- 利用表达式菜单
- 调用预设
我们先从在编辑区直接输入达式开始说起。
在理解表达式的时候,不要把它想得太复杂,它只不过是个数值而已。为了学习的方便,先来试试单个的数值,比如Rotation,在编辑窗口输入:
20
那么返回的值就是20,这时候对象的角度变成20 。
输入:
20+70
返回值为90,角度变为90 。
表达式同样遵循我们小学时候学到的运算顺序,先乘除后加减,先括号内后括号外。
输入:
20+5*4
返回40 。
输入:
(20+10)*2
返回60 。
Tips:写好表达式后,按主键盘区的Enter是换行,按小键盘区的Enter则是立刻执行表达式。
写表达式带时候一定要切换到英文半角输入法,中文全角输入法的会报错且不易检查出来。
拾取器的使用很简单,就是单击拾取器按住不放,拖到要拾取的数值之上,就能够拾取到该数值:
注意:光标位置在哪里,拾取到的值就会出现在哪里。
另外也可以直接拾取到合成/对象上,拾取到别的合成上,或者其他合成的某一数值之上。
这些我们后面用到的时候再来说,总之只要知道,拾取器很强大,很多时候直接拾取就可以。
小案例:
比如想要让一个小方块边缩小的时候边消失,怎样操作?
先给Scale缩放key帧,从100到0
然后点开透明度Opacity的表达式面板,按住拾取器图标不放,拖放到Scale这个英文单词上,或者拖放到Scale后面的数值上,这里两种方法结果一样,得到如下效果:
AE表达式很多时候不需要自己来输入英文单词,除了上面的拾取器,还可以利用表达式菜单。
比如常用的wiggle表达式:
点击小三角,打开表达式菜单,选择wiggle表达式就可以。
Tips:表达式菜单里,带“=”的参数属性,表示一般不用管,等号后面的数值就是默认值。
如wiggele表达式,后面的freq、amp都是需要自己定义的,而后面的三项参数,一般可以直接删掉,使用默认值。
AE自带的预设里,都是表达式来控制的,选中对象,双击相关预设,就会在该效果需要写入表达式的属性上,自动写入表达式。
不过这里我们是学习表达式,这种方法不讨论。
连按两下“E”键,能够显示该合成所有写了表达式的属性。
学习AE表达式,应该在一开始就形成良好的习惯,要让写的表达式整齐美观,其他的人也能够一眼看懂。
一个完整的表达式应该有三个部分:
- 给变量赋值
- 函数/计算
- 取值/输出
例如:
X=a; Y=b; Z=X+Y; Z
注释如下:(AE表达式基于JavaScript 语言, JavaScript 语言中,双斜杠“//”表示后面的内容是注释,不会纳入计算之中。)
X = a; Y = b;//给变量赋值。一般将调试时候需要更改值的参数放在前面(这里a、b表示常数)。 Z = X + Y;//声明,函数,计算。这里是告诉AE该如何计算变量值。 Z //输出。这里是告诉AE运算结束后应该输出的值是哪个。
一些简单的表达式可以简单的写,比如上面的表达式,直接写成:
a+b
那么输出的值就是a+b的计算结果。
简单的表达式直接写成一行没有问题,而复杂的表达式虽然也可以写成这样一行,但会很繁琐导致容易出错,也不美观。
看一个实际的例子:
probability = 4; r = Math.round(random(-probability+2,1)); v = clamp(r,0,1); s = wiggle(10,100*v); value = s
不引入变量,上面的表达式可以写成:
wiggle(10,clamp(Math.round(random(-2,1)),0,1)*100)
这种写法虽然短,可是很容易写错。括号的位置,逗号的位置等等,都可能导致表达式出错。
并且,写完后别人很难看懂。
另外很重要的一点就是,表达式不是写完就完的,实际应用中,需要不断调试。
比如上面一个表达式,第一种写法引入变量probability之后,只需要更改后面的数值,就能产生不同频率的效果。无需要在一堆表达式里去找需要更改的数值。
这种方法写好的表达式,还可以保存到文本,随时在别的地方应用,应用时候只需要将probability的值改到合适就可以。
必须要养成规范写脚本的习惯!
必须要养成规范写脚本的习惯!
1. 命名规范
1.1. 驼峰式命名法介绍:
驼峰式命名法由小(大)写字母开始,后续每个单词首字母都大写。
按照第一个字母是否大写,分为:
① Pascal Case 大驼峰式命名法:首字母大写。eg:StudentInfo、UserInfo、ProductInfo
② Camel Case 小驼峰式命名法:首字母小写。eg:studentInfo、userInfo、productInfo
1.2. 变量
- 命名方法:小驼峰式命名法。
- 命名规范:前缀应当是名词。(函数的名字前缀为动词,以此区分变量和函数)
- 命名建议:尽量在变量名字中体现所属类型,如:length、count等表示数字类型;而包含name、title表示为字符串类型。
1.3.函数
- 命名方法:小驼峰式命名法。
- 命名规范:前缀应当为动词。
- 命名建议:可使用常见动词约定
2、空格的使用问题
3.代码缩进
通常使用 4 个空格符号来缩进代码块。
4.语句规则
4.1. 简单语句的通用规则:
- 一条语句通常以分号作为结束符。
4.2. 复杂语句的通用规则:
- 将左花括号放在第一行的结尾。
- 左花括号前添加一空格。
- 将右花括号独立放在一行。
- 不要以分号结束一个复杂的声明。
5. 每行代码字符小于 80
为了便于阅读每行字符建议小于数 80 个。
6. 乘以负数打上括号
AE里面常常在表达式后乘以负1,将运动方向反过来,虽然*-1 和*(-1)效果一样,但是还是应该打上括号。
7.注释
7.1. 单行注释
说明:单行注释以两个斜线开始,以行尾结束。
语法:// 这是单行注释
使用方式:
① 单独一行://(双斜线)与注释文字之间保留一个空格。
② 在代码后面添加注释://(双斜线)与代码之间保留一个空格,并且//(双斜线)与注释文字之间保留一个空格。
③ 注释代码://(双斜线)与代码之间保留一个空格。
7.2 多行注释(ae里一般用不到)
说明:以/*开头,*/结尾
语法:/* 注释说明 */
使用方法:
① 若开始(/*)和结束(*/)都在一行,推荐采用单行注释。
② 若至少三行注释时,第一行为/*,最后行为*/,其他行以*开始,并且注释文字与*保留一个空格。
7.3 函数(方法)注释(ae里一般用不到)
说明:函数(方法)注释也是多行注释的一种,但是包含了特殊的注释要求。
语法:
/**
* 函数说明
* @关键字
*/
8. 不同段落间用空行隔开
不同段落间应该用空行隔开。
给变量赋值后空行,然后写函数声明。
AE表达式最后一行是定义输出值,这行应该空行隔开,单独成行。
Good!