签到

07月13日
尚未签到

共有回帖数 0

    李小主任

    等级:
    ·前言·表达式基础·表达式的规则·掌握常用的表达式等于掌握90%·其他表达式的学习方法·怎么优雅地鞭挞表达式·附带:AE表达式学习资源推荐
    一、前言一直以来,大多数人都不想去碰AE的表达式,觉得和编程挂钩的东西都很难。于是我尝试着去思考怎么简单地做AE表达式的教程,让大部分人能接受。于是,这篇非官方的来自江湖的AE表达式文档就出炉了。江湖就有江湖的规矩。不拘小节不刻板,不可能像官方文档一样每个函数都单独拿出来讲,官方文档是让人们当做字典查找的,我们只讲有用的,讲少一点,讲简单一点。本文的目的不在于全面,在于力争各位读完之后,看得懂AE表达式,会写AE表达式!二、表达式基础①、如何添加表达式再深厚的功夫也是从扎马步开始的。如何添加表达式呢?两个动作。①按住[Alt键],②点击你要添加表达式的属性前面的[秒表]。这个时候就会出现一个编辑框,把表达式写进去就可以啦。示例:用表达式让[ball]的位置固定在[200, 200]处。







    规则二:类型在AE表达式中,变量a常见的类型有①、数值。例如数字1、1.5、-10。②、字符串。用引号包括起来,例如一个字符串"哈喽你好呀"、"我在写文档ing" 。③、布尔值。判断对错的布尔类型 true 和 false 。④、数组。由许多元素组成的一个组。


    规则三:基本的计算加减乘除就不用说了,在这里提一个常用的[取余数]的符号——%。比如:a = 100 % 3;那么a的值就是1。【示例】:






    注:[time] 是AE提供的,表示当前的时间。最后一个示例中的"time % 1",表示当前时间对1取余数。例如time = 1.5s处,time % 1 = 0.5。因此,(time % 1) 随着时间在0~1之间不断变化。
    规则五:语句表达式是由一行一行的语句构成的,每个语句以一个分号结尾,当然AE表达式允许你忽略分号,不过在每个语句后面添加分号,是一个好的习惯。
    规则六:注释先看看下面两个表达式:


    上面那个可能你一开始看到,一时半会不知道它是用来做什么的。但是下面那个表达式,添加了作者的注释,一目了然!有两种注释的方法:①、单行注释:两个斜杠 // 可以注释掉同一行后面的所有内容。②、多行注释:可以用 /* 和 */ 把要注释的内容括起来,这种方式可以注释多行内容。话说回来,注释可以解释代码的作用,增加可读性,同时它不会被运行,直接被AE忽略掉。简单来说,表达式是写给AE看的,注释是写给人看的。【示例】:




    注意:①、一个if后面可以跟着无数个else if,但是只能跟着一个else,且必须在最后面。②、{} 花括号后面不需要加分号。③、if 和else if后面的括号里是判断的条件,常见的判断有以下:1、a == 1 (判断a的值是不是等于1,切记是两个等于号)2、a = b (判断a的值是不是大于等于b)3、 !(3  1) (!表示取反,因为31是true,所以取反之后这个条件是false)4、flag (判断flag是布尔值true还是false)5、0 (当判断条件是0,则表示false,若是0以外的其他数字,则表示true)【示例】:






    注:在循环块里面添加"break;",表示跳出(打破)这个循环,不管循环条件满不满足,都跳出循环。和 "break;" 类似的还有一个 "continue;" ,它表示结束本次循环,进行下次循环,而不是跳出(打破)循环。规则九:函数①、内置函数:还记得那个函数菜单吗?在里面我们可以看到很多AE提供给我们使用的函数。例如:a、wiggle(freq, amp); // [摆动]函数,freg是频率,amp是幅度b、random(min, max); // [随机]函数,在min和max值之间取一个随机值(更多内置常用的函数将在第四节讲解)


    ②、自定义函数:个人感觉:在AE表达式中自定义函数还是比较少见的。函数的定义格式如下:


    在这里我们简单地举一个例子:


    注:因为random()返回的是一个小数,所以我们自己写了一个getRandomInt(min, max)函数来返回一个随机的整数。规则十:那些特殊的规则①、a = a + 1; 这个语句我们可以简写为 a++;②、同理,a = a - 1; 我们可以简写为 a--;③、条件语句还有一种写法:condition ? do somthing : or do something;这是在 if 和 else 都只有一个语句的时候可以采取的简写方式。举例: 2  3 ? a = 1 : a = 0; // a的值为1一般我们写成 a = 2  3 ? 1 : 0; // a的值为1注:想完整地学习语法规则可以去runoob.com或者w3school.com.cn搜javas cript的教程看。四、掌握常用的函数等于掌握90%一般我在写表达式的时候,除非突发奇想想写点新奇的东西,基本90%就是使用那几个常见的函数。一、time前面提过,time随着时间线的变化,值也在变化,1秒处time=1,1.5秒处time=1.5。利用随着时间变化的time值,我们可以做出随着时间变化的表达式。












    五、其他表达式的学习方法其他的表达式有的时候也会用到,那我们应该怎么去学习呢?①、浏览了解:还记得我们在第一章提到的小三角形吗,在那里我们可以看看AE给我们提供了什么函数,里面有一些可能你永远都不会用到,但是了解浏览一下不会错的。②、官方文档:当然在这里我们只能看到每个函数的名字,至于它 能怎么用,请查看官方文档!官方文档已经对每个函数的作用描述得很清楚了,还有举例说明,在这里没必要赘述。附:官方中文文档网站:https://helpx.adobe.com/cn/after-effects/using/expression-language-reference.html
    六、怎么优雅地鞭挞表达式终于写到如何优雅鞭挞表达式了,激动!我们分3个Part来鞭挞!Part 01:利用表达式控制控件,优雅控制参数在AE 的效果特效中,有一个叫做[表达式控制]的子菜单。我们可以利用着这些控制控件,来轻松地控制表达式的参数,实现不同的效果。






    Part 02:函数化,让表达式结构更清晰
    在表达式中,我们可以把重复使用的代码组织成一个函数。这样,即使很长的表达式,也会条理清晰,结构明了。(不过因为表达式一般不会很长,函数化用到得也比较少)
    具体使用方法,请参考第三章的规则九小节。Part 03:优雅的编写风格

    略。

    楼主 2016-03-26 18:43 回复

共有回帖数 0
  • 回 帖
  • 表情 图片 视频
  • 发表
Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号 意见反馈 | 关于直线 | 版权声明 | 会员须知