环球快资讯:AE表达式笔记(自用防丢失)
书写形式为逐级递减,例如:
comp("目标合成").layer("目标层").effect("目标效果")("目标效果的一个参数")
“.”作为层与层之间的分隔符。
(资料图片)
不透明度定义为80
transform.opacity=80 等价于 value=80 等价于 80;
二维数值使用“[,]”,三维四维类比二维;
可以使用父子级直接连接。
三、滑块控制作用:类似于空对象,作为控制表达式的一个变量
例如:
wiggle(effect("滑块控制")("滑块"),effect("滑块控制 2")("滑块"))
第一个滑块控制频率,第二个滑块控制幅度。
四、time表达式AE中时间变化有两类:帧和秒,time表达式以秒为单位;
posterizeTime(framesPerSecond)
抽帧表达式,每秒剩余几帧,要求小于等于合成的帧率;
表示设置其他表达式运行环境,不能单独使用,一般写在表达式第一行;
例如:
posterizeTime(5);
random(20)
作用:每秒随机变化5次。
valueAtTime()
返回属性在指定时间的值,以秒为单位
例如:
thisComp.layer("黑色层").transform.opacity.valueAtTime(2)
作用:
表示“黑色层”的不透明度全部为2秒时候的数值。
五、wiggle表达式wiggle(freq 频率,amp 幅度,octaves=1复杂度,amp_mult=5 幅值乘法,t=time 对应时间线);
特殊的一个例子(缩放等比变换)
方法一:
x=wiggle(2,5);
[x[0],x[0]]
[x,x]报错的原因:定义的x=wiggle(2,5)为变量,没有初始值,所以x[0]赋予初始值;
方法二:
新建一个滑块作为等比控制,因为二维数值连接到一维父级默认为等比变化。
六、index表达式按照索引来赋值,表示元素在某一组排列中的位置;
例如:图层在第一层index为1、效果下面的第二行index为2;
key(index)关键帧索引
例如:transform.position.key(1).value[0];
作用:获取位置第一个关键帧x的坐标数值。
七、interpolation 差值函数linear(t,value1,value2)
当t≦0时,value1;
当0 当t≧1时,value2; linear(t,tMin,tMax,value1,value2) 类型一: linear(time,0,10,0,20) 表示时间从0秒增长到10秒,数值由0增长到20的变化; 类型二: linear(value,0,10,0,20) 表示变量value的数值从0变化为20,对应的原数值由0变化到20; ease基本与linear同理。 random() 返回0到1之间的随机数值; random(maxValOrArray) 定义随机变化的最大值,Array为数组; random(minValOrArray,maxValOrArray) 定义一个随机变化的范围; gausssrandom() 高斯随机 百分之九十数值在范围内,百分之十在范围外; seedRandom(seed,timeless=false) 随机种子 true表示随机种子不随时间变化,false表示随机种子随时间变换; noise(time) 在(-1,1)内振动。 rgbToHsl(rgbaArray) 四维数组[R,G,B,A]且赋值在(0,1)范围内; 只在(0,1)变化的原因:8bpc、16bpc、32bpc下的RGB范围不同; 通常使用滑块来进行控制,需要将滑块下面的滑动范围改为(0,1)。 loopOut(type=”cycle”,numKeyframes=0) 在最后一个关键帧后做循环; tpye的类型: “cycle”表示周期循环; “pingpong”表示镜像效果往复运动; “offset”表示在一次循环结束后,下一次循环的第一个关键帧在最后一个关键帧处开始循环; “continue”表示保持最后两帧斜率不变向后延展,此种类型不需要添加“numKeyframes”; numKeyframes的含义: 选用几个关键帧做为循环体; 当numKeyframes=0时表示全选,numKeyframes=1是以最后一个关键帧和前一个为循环体,numKeyframes=2时是以最后一个关键帧和前两个关键帧为循环体; loopIn(type = "cycle", numKeyframes = 0) 在第一个关键帧前做循环; loopOutDuration(type = "cycle", duration = 0) 以秒为基准做循环,0代表全选,1代表最后一个关键帧前的一秒作为循环体。 thisComp.bgColor 返回当前合成背景色; thisComp.numLayers 返回当前合成的图层数; thisComp.duration返回合成持续时间(秒为单位); thisComp.frameduration返回帧持续时间(秒为单位); 例如: 合成为30fps,则thisComp.frameduration为1/30秒; AE表达式没有直接获取帧率的属性,所以使用 1/thisComp.frameduration来表示; 例如: Math.floor((time/thisComp.frameduration)/8)表示每8帧改变一次。 inPoint、outPoint 图层入点、出点所对应的时间,秒为单位; parent 获取该图层父级的属性。 原理:将音频的幅值转化为关键帧形式(右键-关键帧辅助-将音频转化为关键帧); 转化成的关键帧为每帧一个,可用timeToFrames和framesToTime来进行秒为单位和帧为单位表达式的运算。 数组的索引从0开始 例如:[x,y,z] x索引值为0,y为1,z为2; 字符串转变为数字 字符串:插入成对的单引号或双引号的任意字符,用于储存和处理文本; Number(str) 其中字符串必须为纯数字字符串; 数字转换为字符串 String(num); typeof为检测类型的函数; 添加注释 “//AE表达式”为单行注释; “/*脸滚键盘 ABC*/”为多行注释; smooth(width=.2,samples=5,t=time) samples改变平滑度; 将焦距连接到图层(3d摄像机) 图层-摄像机-将焦距连接到图层; 以后补充,继续学st了