欢迎光临散文网 会员登陆 & 注册

AE胡笔记:表达式基础篇

2020-08-11 08:22 作者:冷萌爱好者  | 我要投稿

1组元,单元、双元、三元

2从零开始计数   【X,Y,Z】对应的序号为0、1、2

3激活表达式,Alt+指针

4以属性限制,存在极值。如不透明度最高只有100

5表达式基础用法:关联

6 英文输入法

 

7关键

[value[?]]里面是序号,0、1、2、代表自身

[wiggle(A,B)] A代表频率,B代表幅度.晃动表达式

 

例子:

序号0 ,1 ,2

[960,540,0]=[value[0], value[1], value[2]] 后面这个表达式是自由的、可变的

 

[960,wiggle(1,500)[1]]这是一个二元表达式,960为X固定不动,对Y(序号1)做震荡每秒一次,每次500幅度。

 

 

此时X值锁住,不能移动,将X改为value[0],X可动了。

此时表达式为:[value[0],wiggle(1,500)[1]]

 

8用wiggle 表达式制作萤火虫与树枝摆动。

新建纯色层打开3D,这就是“草地”,再新建摄像机。

新建点灯光,位置表达式:[wiggle(1,200)],再复制几个灯光

将灯光的颜色改变,“草地”材质选择项里降低受光与镜面反射。

新建纯色层,添加“OF”光,将类型改为“Track Lights”.制造出“萤火虫了”

 

树枝运动

调入树枝图片,将其轴点调好。在旋转上打关键帧,[wiggle(1,3)]。此时树枝自己运动

 

9 time表达式,以秒计

做时钟,time要每秒走6度,所以time*6。360度60秒。

但是time没有跳跃式,出现小数点。

需要取整表达式Math.floor()

Math.floor(time)*6,此时取整且是6的倍数。每秒6度

time默认是0到1之间

 

 

10 if表达式

If空格(条件)空格 结果 空格 else空格 结果

If     (条件)     结果     else      结果

获得的使用:表达式太长用字母替换

X=原表达式;加分号,用等号将表达式赋给X

例:

X=表达式

if (X>500) 100 else 0   

 

 

 

 

11循环表达式:

1Alt调出关键帧后,在Property表达式里的loopOut(type=”cycle”,numKeyframers=0).这里的cycle默认是循环效果

 

2如果需要往返运动,将表达式里的“cycle”改为“pingpong”

loopOut(type=”pingpong”,numKeyframers=0)

 

3持续又或者翻译为惯性

物体沿惯性运动,抛出去

表达式为:loopOut(type=”continue”)

加减乘除表达式:

直接应用在表达式结尾*-+/数字

 

12:正弦余弦规则运动表达式:

JavaScript Math 里Math.sin(value)

例子:仅对Y轴做正弦运动,其余序列不动

b=Math.sin(time)

[value[0],b+value[1],value[2]]    加上value[1]是因为默认从0,0,0出发,加上原来的位置。

Math.sin(time*频率)*幅度       里面默认是time

 

 

用正弦做心电图效果:Y轴做正选运动,X轴从左望右移动5秒

1新建灯光,将灯光向右位移5秒,在灯光的位置处打开表达式。B=Math.sin(time*5)*500

[value[0],B+value[1],value[2]]

2将灯光改名发射器,新建纯色层添加Particular效果

Particula发射器选项下,发射行为改为“灯光”,速度和发射器大小改为0、从运动处得到的速度改为0.

粒子属性下“生命”改为5秒。正弦心电图出现

 

3新建空对象,使其上下随机运动。位置表达式:

[value[0],wiggle(8,300),value[2]].

XZ轴不变,Y轴上下晃动。

将发射器灯光的父级连到空对象上。

 

 

 


13:正弦表达式做钟摆运动:

给钟摆的旋转处添加正弦表达式;Math.sin(time*2)*45每秒2次,每次45度

如果对其旋转速度做if表达式,如果钟摆的速度大于XXX否则YYY

例:如果钟摆速度>80就发光,否则就不发光

新建调节层位发光体

1将钟摆旋转处的表达式激发,将其父级连到发光体的发光强度上。

2在发光强度处打表达式:

S=默认表达式.speed;

If (S>80) 5 else 0

发光强度5就发光,发光强度0就熄灭

此时发光只有一半的时间,应为正弦有负80存在就是极植。

 

 

14:绝对值表达式:

JavaScript Math 下 Math.abs(value).

套用到上个例子就是:

在两行表达式之间加上绝对值表达式:X=Math.abs(s);将S绝对值化,全是正数并数值为X。即所有Y的绝对值为X

且将if表达式改为 if (X>80) 5 else 0

 

 

某一点时间的值:

比如两个位置做表达式,A的起始点和B的位置绑定

表达式:Property 下的valueAtTime(t)

.valueAtTime(t)表达式加符号点,同时括号里的填的是第几帧

 

 

空间矩阵:

插件效果器里再加效果器,全选效果的空对象加入灯光创建脚本,在效果器里操作灯光。蛮6666的!

 

 

 

15:测定两点之间位置距离表达式:

Vector Math 里的length(point1,point2)

 dis=length(point1,point2)  测定两点距离

 

 

16:空间转换表达式2维转3维

thisComp.layer(“跟踪名称X”).toComp([0,0,0])

跟踪闪电效果,几个点之间的闪电

图层:BC纯色层

      AB纯色层

      C空白跟踪点

B空白跟踪点

A空白跟踪点

3D跟踪摄相机

视频图层

制作:

1视频图层右键“跟踪摄像机”,选取两个跟踪点“创建空白与摄像机”

2新建纯色层添加生成—高级闪电,效果面板将闪电类型调味“双向打击”。纯色层叠加模式改为相加

 

重点:空间转换表达式。闪电只有XY轴,”跟踪点”有XYZ轴。表达式:Layer-Spaceforms-toComp([0,0,0])

3闪电的源点表达式父级链接给跟踪点A(注意是指向图层名称),接着补全纯色层上闪电的源点表达式

thisComp.layer(“跟踪名称X”).toComp([0,0,0])

4闪电的方向表达式父级链接给跟踪点 B的名称,补全表达式。Alt加方向的关键帧调出表达式

5同理,继续添加跟踪点,串联闪电

创建空白C,新建跟踪点C.复制一层纯色层AB改名为纯色层BC。

将AB的表达式中的原来的A改为C。此时BC两个跟踪点之间存在闪电。

thisComp.layer(“跟踪名称A”).toComp([0,0,0])改为

thisComp.layer(“跟踪名称C”).toComp([0,0,0])


AE胡笔记:表达式基础篇的评论 (共 条)

分享到微博请遵守国家法律