AE胡笔记:表达式基础篇
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])