ae表达式语法(干货AE表达式知多少)

转载自:新片场网

许多小伙伴在学习AE的过程中,表达式是一个避不开的学习点,有些人听到这个知识点会完全没有概念,下面会来告诉大家如何学习AE表达式,以及掌握一些最基本的表达式知识和应用。

在这里要注意一点,由于有些同学使用中文版本的AE软件,有时候会出现打开表达式的错误,在这里建议大家学习使用AE软件的时候,选择英文版去学习和使用。

ae表达式语法(干货AE表达式知多少)(1)

为什么建议大家用英文版:

1、中文翻译不准确(很多特效插件翻译很不精确,不能正确表达其含义)

2、中文版AE会因为某些代码,发生不可预知的错误

3、很多专业教程都是英文版(国外教程)

4、业界基本用的英文版,以后工作中,对接方便。

一、什么是表达式:

AE表达式是直接与源代码对话的一种语言,或者更简单的说,表达式是我们通过一些代码,去实现参数的转移、计算,帮助我们更有效率的去控制某个参数的变化,达到关键帧比较难实现的效果。

ae表达式语法(干货AE表达式知多少)(2)

二、什么时候我们需要用到表达式

1 当我们想使用一个参数的数值去控制另一个参数的数值时,我们可以使用表达式将数值赋予另一个想要控制的参数上。

2 在使用关键帧去制作一个视频效果的时候,容易卡顿且效率不高,这时候我们可以使用表达式去控制。如果要做一个回弹的效果,单纯自己去K帧效果会偏低且效果不容易做好,通过表达式效率会大大提高。

3 如果你想使用一个数值对多个数值进行控制或者进行计算后赋值的时候,可以使用表达式去制作,不需要每个数值都单独去做关键帧的动画。

三、表达式怎么用

AE中的表达式怎么使用呢?

第一,在电脑上打开AE软件,进入到工作界面中,点击【新建】,建立一个AE项目。

第二,进入到AE工作窗口,双击素材面板,找到并打开想要添加表达式的图片、视频。

第三,将素材(图片、视频)直接往下拖拽到下方图层面板,松开鼠标左键,将自动新建一个合成。

点击图层前面的三角符号这时,可以看到【变换】,点击打开前面的三角符号。

ae表达式语法(干货AE表达式知多少)(3)

我们将可以看到变换下方锚点、位置、缩放、旋转、不透明度5个功能选项,按住键盘Alt键,鼠标左键单击所在功能前面的码表。如下图所示,我们就打开了该功能所在的表达式窗口,直接编辑表达式即可。

ae表达式语法(干货AE表达式知多少)(4)

四、AE中常用表达式

下面分享几个AE中实用的表达式,给大家进行拆解分析,希望能帮助到你哟!

1.wiggle抖动表达式

ae表达式语法(干货AE表达式知多少)(5)

wiggle(a,b)

a代表震动的频率

b代表震动的幅度

此案例是直接加在的position位置属性上

ae表达式语法(干货AE表达式知多少)(6)

2.循环表达式

ae表达式语法(干货AE表达式知多少)(7)

loopOut(type = "cycle", numKeyframes = 0)

Cycle是循环的方式

当然还有cycle、pingpong、offset、continue其他的大家可以自己尝试。

numkeyframes是循环的段数:

0所有关键帧循环

1代表只循环末尾的一段关键帧

2就是末尾两段

ae表达式语法(干货AE表达式知多少)(8)

3.弹性表达式

ae表达式语法(干货AE表达式知多少)(9)

amp = .1;

freq = 3.0;

decay =6.0;

n = 0;

if (numKeys > 0){

n = nearestKey(time).index;

if (key(n).time > time){n--;}

}

if (n == 0){ t = 0;}

else{t = time - key(n).time;}

if (n > 0){

v = velocityAtTime(key(n).time - thisComp.frameDuration/10);

value v*amp*Math.sin(freq*t*2*Math.PI)/Math.exp(decay*t);

}

else{value}

amp代表弹力大小 数值越大 弹性越强

freq代表频率 数值越大 频率越快

decay代表阻力 功能与弹力相反

ae表达式语法(干货AE表达式知多少)(10)

4.手写光标表达式

ae表达式语法(干货AE表达式知多少)(11)

// 每秒显示字符

charPerSec = 2;

// 可自定义提示符号,预设为 "|"

prompt = [ "|", " " ];

// 目前打字显示位置

typePos= Math.round( time * charPerSec );

i = Math.round(time % 1);

text.sourceText = substr( 0, typePos) prompt[i];

ae表达式语法(干货AE表达式知多少)(12)

ae表达式利用得当,既省力又有趣。功能表达式已标注 大家可以自行修改,可以自己试试。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页