——你知道世界上最难的问题是什么吗?

——就是这道题。

上面的只是一个梗,不过面对知乎里或者朋友的这种发问,我真的不知道怎么回答,从上个礼拜,我就开始琢磨这个事儿:如何讲明白如何学好 AE 表达式。问题越宽泛,回答越困难。如果你问我 AE 表达式中某一个具体的问题怎么处理,能难到我的就很少了,上周就有一个小朋友私信我关于时间随机处理的问题,我不仅解释了他的问题,还在这个问题的基础上写了一套以时间随机为核心的转场模板。后来他也问我怎么学好 AE 表达式,我大改说了三点:

  1. 看官方文档;
  2. 学 Javascript 语言,特别是基本的语句和内置对象;
  3. 学好数学。

我还是没有办法回答怎么学好的问题,但是我可以告诉你都去学什么:

一、阅读官方文档

搞编程的小伙伴们都能理解官方文档有多重要,有时候一些官方文档只有英文版本,我们一边用一边自己翻译,没有它啥工作都做不下去。有时候一些人嘲笑程序猿:还看着文档干活儿,一看你就不熟练。你要是平时常用几种不同的语言,又用着几十个库,就算你记性再好,也难记住每一个条目。官方文档是工具书,就像语文老师手边也要有一本新华字典一样,有任何疑问,必须立刻马上查阅资料求证。如果你没有把官方文档从基础知识这部分开始好好阅读的话,我建议你补补课。知乎上绝大多数关于 AE 表达式的问题都可以在官方文档里面找到答案。

了解在 Adobe After Effects 中链接动画的表达式基础知识After Effects 中的表达式语言 (adobe.com)

在“表达式语言引用”这部分中,枚举了全部表达式的方法和属性,但是要看懂这些需要两个必备条件:

  1. 对 AE 有足够的了解:你需要知道不同的图层都包含什么属性,然后是在表达式中可以调用什么方法,例如下面图中,我用一个自建的函数列出了一个文本层的所有属性和方法:

可以看出 AE 中的所有属性几乎都是 function 函数,有的函数是有函数名称的,有的没有,有函数名称的访问是使用 . 连接,没有的匿名函数可以直接使用括号直接访问。这些东西要搞懂可以去下载我写的表达式帮助脚本来学习,同时也需要基础的 JavaScript 编程基础。

daveswong/expressionHelper.jsx: AE 表达式帮助脚本 (github.com)王世杰:【AE表达式】实用:查看 propertyGroup 索引

2. 读懂文档中的对象、属性和方法:

comp(name) 就是一个方法,它返回一个合成对象;

thisComp 是一个对象,是当前合成对象;

属性就是像 thisLayer.text 这样,.text 就是一个文本属性,它可以是任意的数据类型,对象、数组、字符串等等,如果是 thisComp.layer("文本图层"),那么 .layer() 就是一个方法而不是属性。

只有充分理解对象、属性和方法,才能算是表达式入门,要学习这部分内容需要先学习一些 javaScript 基础,可以着重阅读一下 javaScript 教程的数据类型、对象和函数部分,只要基本理解它们的特征和区别就可以了。

JavaScript 数据类型 | 菜鸟教程JavaScript 对象 | 菜鸟教程JavaScript 函数 | 菜鸟教程

二、JavaScript 语言的学习重点

因为你的工作并不涉及真正的编程或者前端开发,所以不需要很完整的学习编程语言,下面仅列出最常用的部分,但他们也属于比较进阶类型的,这一部分搞清楚了,就不是简单的引用属性值的操作了。

  1. 运算符:除了基本的加减乘除计算,你还应该了解算数、赋值、逻辑运算的基本概念和方法,这部分需要运用到比较基础的数学知识,但是大部分只需要大概小学五年级水平。AE 除了支持 JS 原生运算符,还有自有的数学方法,并且扩展了数组的基本运算符,这在 JS 中是不支持的,所以 AE 官方文档中“矢量数学方法(表达式引用)”这个部分一定要好好的学一下,当然你需要和 JS 运算符部分一起学才更容易学明白。

JavaScript 运算符 | 菜鸟教程

2. 基本的比较、条件、循环语句:一旦你开始使用表达式进行运算,判断等操作,就避不开这几种语句类型,它们也是所有编程语言的最基础部分。

3. JavaScript 内置对象:与上述的数据类型相关,每一种数据类型都是 JavaScript 的内置对象,它们都包含着相对应的方法可以调用,在 AE 中最常用的是数组、字符串、数字和数学对象和方法,这几部分要着重学习。

JavaScript 对象 | 菜鸟教程JavaScript 和 HTML DOM 参考手册

4. HTML DOM 和事件是不需要学习的:这部分仅仅涉及到前端开发,与 AE 完全没有关系。

三、学好数学

任何编程都绕不开数学,而且在 AE 表达式中,大部分时候都是用来处理几何问题,所以数学中关于坐标系,三角函数的部分一定要扎实,高考完都忘了的不妨再重新学习一下,AE 中的数学方法就是 JS 原生的数学对象,大部分应用都是三角函数。AE 中为了方便非常贴心的内置了“其他数学方法”,即角度与弧度的互相转换。

JavaScript Math 对象

除了上述几何知识部分,就是数学的逻辑判断和运算,太简单,学学前面说的运算符那部分就够了。

四、 编程的思维方式

编程的思维方式就是你用表达式做出来的东西应该是动态的,可以操控的,像下图这样,通过一些参数的设置,它就可以改变样式。

还有一点就是函数复用的技巧,让相同计算方式的部分调用一个函数,如果在计算上需要有调整,就只需要维护你编写的函数就可以了,而不需要挨个去修改每一条表达式。这个部分可以参考一下帮助器那篇文章,还有之前写的关于函数复用技巧的那篇文章,在其它文章中也会越来越多的用到。

王世杰:[AE 表达式]函数复用技巧

五、 编写代码的软件

微软的 VS Code 是我用过的最好的代码编辑器了,它可以兼容多个平台,使用起来超级顺手,墙裂安利一下,它还是开源免费的(好像大部分代码编辑器都是)。用这个软件不是代替 AE 表达式编辑器,而是一旦你需要编写一些外部脚本,就可以用它。

Download Visual Studio Code - Mac, Linux, Windows

除了本地软件,还推荐小闪电这样的在线IDE,可以直接使用控制台来查看运行结果,非常有帮助,如果使用 VS code 运行还需要安装扩展再使用浏览器运行,但是它有时候会抽风,你也可以用 codepen 或者其它的在线平台。

小闪电 - JSRUN可以用手机写代码的JS在线编辑器网站

能说的也就这么多了,如果上面的内容你去学了,不管能不能完全学会,完全理解,都可以继续关注我的专栏,跟着我发布的文章一点一点的实践,大致不出三五个月也能很厉害了。

如何学好 AE 表达式?相关推荐

  1. 【转载】AE表达式中英文对照

    全局对象 Comp comp(name) 用另一个名字给合成命名. Footage footage(name) 用另一个名字给脚本标志命名. Comp thisComp 描述合成内容的表达式.例如:t ...

  2. 【AE表达式】300多个人名正从宇宙中飞来……

    问题 数量级的问题: 昨天我朋友问:要做三百多个人名(文本)从宇宙深处飞出来的效果,怎么处理? 对于这样的需求,做 AE 包装的小伙伴们都不陌生,就是 3D文本层摆位置,打个相机穿梭一下.没错,对于几 ...

  3. AE表达式教程 - 1、什么是AE表达式

    AE表达式是一段(一行)JavaScript代码,通过表达式可以对元素属性的值进行操作,从而得到指定的结果. 使用表达式可以自动完成一些原本需要手动k大量关键帧才能实现,甚至手动无法实现的效果. 添加 ...

  4. ae编程语言as_【微教程】从编程的思路学习AE表达式

    (这是一段引人入胜的开场白......),针对知道ae基础操作的群体的教学 授人以鱼不如授人以渔,学习表达式应该是从学会脚本语言入手,而不是通过记忆的方式记住每种效果的表达式语句.这里说的编程并非特指 ...

  5. ae制作的mg如何用到html,【教程】AE表达式常用的函数-制作MG动画必备

    我一开始接触AE是简单的套模板,后来慢慢学会自己调关键帧动画.感觉应用比较多的同样也让我很头疼的是运动.所以对表达式控制做了初步的学习.下面是一些常用的AE表达式 1.time time随着时间线的变 ...

  6. 【AE表达式】以插值方法代替关键帧

    在<[AE表达式]更好的动画时间控制>这篇文章中说过我比较不是很喜欢用关键帧来控制动画,这是有一定条件的.使用表达式控制动画更多的是强调复用性,比如你拿到我的工程文件,不管是显示的内容.尺 ...

  7. 【转载】AE 表达式精通大法

    本文是转自 设计树 的一篇文章,我对文章进行了重新排版,并标注了重点 原文地址 -- AE表达式精通大法 以下是正文部分: AE 表达式一直是大家学习 AE 过程中的一道坎,涉及代码网上教程资源又不多 ...

  8. [AE 表达式]函数复用技巧

    声明:我写的[AE 表达式]文章都是原创,包括文字和图片请不要以任何形式进行转载. 在 After Effects 中,表达式复用是比较麻烦的,因为表达式的作用域是当前属性,因此无法在其它位置引用,A ...

  9. ae绘图未指定错误怎么办_【教程】最全的ae表达式教学分享(实用!)表达式其实很简单...

    大部分人对ae表达式是望而却之,感觉很难,无从下手,网上的教程也是层次不齐,很难找到好的教程跟着学.于是呢,搜罗全网,整理了一份最全的最实用的ae表达式教学.也算是一个对自己的总结. 下面解决几个问题 ...

最新文章

  1. 【ABAP】文本表查找
  2. 云原生视频时代已开启,华为云准备好了
  3. python 解码gbk_Python3的url编码和解码,自定义gbk、utf-8的例子
  4. WordPress自动采集插件:WP-CTspider(长腿蜘蛛)
  5. 用API实现串口异步读写
  6. public protected private
  7. CentOS 6.6 安装 Node.js
  8. Samba 实现文件共享
  9. 嵌入式--Flash操作中的标准SPI,Dual SPI,Quad SPI
  10. Oracle中的数据类型---NUMBER
  11. R语言绘制频数分布直方图或密度分布曲线
  12. SAP产品成本计算流程
  13. CSS 实现文字渐变色
  14. Debian 下安装中文语言包和中文输入法
  15. 基于CNN的表情识别(FER)pytorch实现
  16. Python爬虫实战,QQ音乐爬取全部歌曲
  17. (附源码)计算机毕业设计SSM黄淮学院二手物品交易平台
  18. Kubernetes(k8s)基础之二:容器编排介绍及概念
  19. Android-打开系统相机并拍照两种显示方式。
  20. 这里有141个创业公司的死亡案例,看鸡汤不如听教训

热门文章

  1. 第一周 kuangbin 搜索入门
  2. python cookbook 中文百度云_《Python+Cookbook》第三版中文v3.0.0PDF高清完整版免费下载|百度云盘...
  3. 物联新时代遭遇核心技术瓶颈
  4. 解决wordpress不能上传图片的权限限制问题,亲测有效
  5. R语言backtest函数
  6. 【机器学习】Attention机制的一些整理与理解
  7. 网络战时代的以色列国防形势分析
  8. 汇编语言及应用——程序框架理解
  9. Subcontract(委外加工订单)(转)
  10. 【论文相关】SCI查询