视频教程和word文档由新cger的大涩狼录制编写 原文链接
先补充一些小知识点
1.选取图层,按shift+ctrl+Y可以更改设置
2.给合成打标记点,shift+数字键。给图层打标记点,按 * 键
3.[ ]中括号里面是数组,数与数之间用逗号隔开
4.当括号里1个数的时候为1维度,2个的时候为2维度,以此类推,如下图
可以将数组对象分配给变量 ,从而应用到另外的表达式中。变量后跟[0]表示第一个纬度值,[1]表示第二个纬度值,以此类推,如下图
5.在Ae表达式里面,返回逻辑应用到数值属性上的时候,表现为true=1,false=0
6.当某表达式返回字符串时,这个表达式可以应用在文字上
7.给表达式添加注译,//内容,/* 内容* /
8.运算最终为二维度以上的数组,记得用大括号框起来
9.写表达式的时候,要么关掉输入法,要么输入法是英文半角形式 ,不然写的表达式用上符号的时候是错误的。当你表达式有多个运算符的时候,段落之间记得用分号隔开。
一、Global
thisProperty,返回类型:属性。指定属性,这个是补充的,AE表达式栏里面没有(propertyGroup这个表达式的时候会用到)。
thisLayer,返回类型:固态层、灯光、摄像机等。指定当前图层,即对本层的描述,AE表达式栏里面没有。
comp(name),返回类型:合成。按名字指定其他的合成对象
thisComp,返回类型:合成。指定当前合成
1.若是返回本图层的某个属性则可以简写。例如,thisLayer.opacity 和 opacity 结果一样
2.footage(name),返回类型:素材。指定项目里的素材的对象
3.time,返回类型:数值。返回当前时间线所在的时间值,减去合成开始的时间值。也就是时长
4.colorDepth,返回类型:数值。返回8或16表示的彩色深度位数值。例如,当项目的每通道的彩色深度为16位时,colorDepth返回16
5.posterizeTime(framesPerSecond),返回类型:数值。可以自由设置帧速率,做出抽帧动画的效果。
6.timeToFrames(t = time + thisComp.displayStartTime, fps = 1.0 / thisComp.frameDuration, isDuration = false)
返回类型:数值。这个表达式得出的值为:括号里面的两个数前后相乘,如下图
thisComp.displayStartTime,返回当前合成的开始时间值。thisComp.frameDuration,返回当前合成的每秒一帧的持续时间值。这两个属性在后面的合成的属性和方法中有图解。isDuration = false,默认值,可以删除 。即fps = 1.0 / thisComp.frameDuration,表示当前合成每秒的帧数,即帧数率。
综上该表达式得出的值,就是当前时间的帧数值,如下图
7.framesToTime(frames, fps = 1.0 / thisComp.frameDuration)
返回类型:数值 。为上述表达式的逆运算timeToFrames(),运算方式为:括号里面的两个数前后相除
8.timeToTimecode(t = time + thisComp.displayStartTime, timecodeBase = 30, isDuration = false)
返回类型:字符串。这个表达式是将 t 的值转换为表示时间码的字符串。timecodeBase用于指定一秒内的帧数,如下图
9.timeToNTSCTimecode(t = time + thisComp.displayStartTime, ntscDropFrame = false, isDuration = false)
返回类型:字符串。这个表达式是将 t 转换为表示 NTSC 时间码的字符串。电影胶片24帧/秒,PAL制25帧/秒,NTSC 29.97帧/秒。合成设置为 29.97 帧的时候 这个表达式时间码才能正确显示, 否则如下图
当ntscDropFrame = false,即默认值的时候,字符串为 NTSC 未丢帧时间码。当ntscDropFrame = true时,字符串为 NTSC 丢帧时间码,如下图
10.timeToFeetAndFrames(t = time + thisComp.displayStartTime, fps = 1.0 / thisComp.frameDuration, framesPerFoot = 16, isDuration = false)
返回类型:字符串。这个表达式是将 t 的值转换为表示胶片和帧的英尺的字符串。framesPerFoot,指定一英尺胶片中的帧数,默认为16,如下图
11.timeToCurrentFormat(t = time + thisComp.displayStartTime, fps = 1.0 / thisComp.frameDuration, isDuration = false, ntscDropFrame = thisComp.ntscDropFrame)
返回类型:字符串。这个表达式是将 t 的值转换为表示采用当前项目设置显示格式的时间的字符串,如下图
二、Vector Math
1.add(vec1, vec2),返回类型:数组。vec1和vec2是数组,返回两个数组相同维度数的相加值。
sub(vec1, vec2),返回类型:数组。vec1和vec2 是数组,返回两个数组相同维度数的相减值
2.mul(vec1, amount),返回类型:数组。vec1是数组,amount是数值,返回数组的每个元素被amount相乘。
div(vec1, amount),返回类型:数组。vec1是数组,amount是数值,返回数组的每个元素被amount相除。
3.Clamp(value, limit1, limit2),返回类型:数值或数组。
value, limit1, limit2是数组,限制value中每个元素的值在 limit1到limit2 之间。返回同维度间的限制值
4.dot(vec1, vec2),返回类型:数值。vec1和vec2是数组,返回两数组的点积,即返回两数组同维度数的乘积再相加的值
5.cross(vec1, vec2),返回类型:数组(2 or 3维度)。vec1 和 vec2是数组,返回两数组的向量积。
向量积也被称为矢量积、叉积(即交叉乘积)、外积,是一种在向量空间中向量的二元运算。与点积不同,它的运算结果是一个向量而不是一个标量,并且两个向量的叉积与这两个向量垂直。
6.normalize(vec),返回类型:数组。vec是数组,这个表达式标准化向量,使其长度为1。
normalize方法是执行运算div(vec, length(vec)) 的简便方法
7.length(vec),返回类型:数值。vec是数组,返回向量的长度。
length(point1, point2),返回类型:数值。point1 与 point2是数组,返回两点之间的距离,即两数组的同维度数, 相减的绝对值, 再相减的绝对值。
length(point1, point2) 与 length(sub(point1, point2))的返回值相同。如下图,有两个表达式用于二维度的值,所以不能生效(因为这两个返回的是单个数值)
8.lookAt(fromPoint, atPoint),返回类型:Array(角度的数值,三维度)
参数 fromPoint 是你要定向的图层的位置坐标,参数 atPoint 是你要将图层指向的点坐标。返回值可用作方向属性的表达式,使图层的 z 轴指向atPoint。 此方法对摄像机和光照特别有用 (AK大神教程的41期,有讲到物体是面朝摄像机的 )
如图,用了表达式 lookAt(position,thisComp.layer(“Light 1”).transform.position) 后,图层和灯光的 z 轴朝向一致,即移动灯光位置,灯光始终照向图层
三、Random Numbers
1.seedRandom(seed, timeless=false),返回类型:无类型。seed是一个数,默认timeless为false
取现有的seed增量一个随机值,如图,单个表达式 seedRandom(seed, timeless=false)是无效的,底下还要跟一个其他的随机表达式。
主要是用于多图层的时候,确保每个图层属性的随机变化都不一样~
2.random(),返回类型:数值,返回0和1间的随机数。
random(maxValOrArray),返回类型:数值或数组。
当括号里的是一个数,返回 0到maxVal间的数;当括号里面的是两个以上的数组,返回与maxArray相同维度的数组,数组的每个元素在 0 到 maxArray之间。
3.random(minValOrArray, maxValOrArray),返回类型:数值或数组。
当minValOrArray 和 maxValOrArray 是数值的时候,返回一个他们之间的数;当minValOrArray 和 maxValOrArray 是数组的时候,返回相同维度的数组,其每个元素在两数组相同维度数的之间。例如,random([100, 200], [300, 400]),返回数组的第一个值在100 到300间,第二个值在200 到400间。如果两个数组的维度不同,较短的一个后面自动用0补齐。
4.以下三个表达式,数与数组书写同上,取值类似成钟型分布,90%在两者间,剩下10%可能会跳出 最大值或最小值。
gaussRandom()
gaussRandom(maxValOrArray)
gaussRandom(minValOrArray, maxValOrArray)
5.noise(valOrArray),返回类型:数值。valOrArray是一个数或数组,返回一个-1到1间的数。注:当括号里的单数为整数的时候,取值为0,数组不会
四、Interpolation
1.linear(t, value1, value2),返回类型:数值或数组。
{t是数值, value1和value2 是一个数或数组}。当t的范围从0到1时,返回一个从value1到value2的线性插值;当 t <= 0时,返回value1;当 t >= 1时,返回 value2
2.linear(t, tMin, tMax, value1, value2),返回类型:数值或数组。
{t, tMin和tMax是数值, value1和value2是数值或数组}。当t <= tmin时,返回value1;当t >= tMax时,返回value2;当tMin < t < tMax 时,返回value1和value2的线性差值
3.以下表达式取值方法与上面类似,而下面说的开始或结束以及切点速度为0,使动画平滑。可以理解为给位移或缩放打关键帧,让关键帧缓入缓出,以下表达式用于位置、比例,就会有这种效果
- ease(t, value1, value2),{t 是一个数, value1和value2是数或数组},返回值与linear相似,但在开始和结束点的速率都为0。这种方法的结果是动画非常平滑。
- ease(t, tMin, tMax, value1, value2),{t, tMin, tMax是数, value1和value2是数或数组},返回值与 linear相似,但在开始和结束点的速率都为0。这种方法的结果是动画非常平滑。
- easeIn(t, value1, value2),{t 是一个数, value1和value2是数或数组},返回值与ease相似,但只在切入点value1的速率为0,靠近value2一边是线性的。
- easeIn(t, tMin, tMax, value1, value2),{t, tMin和tMax 是一个数, value1和value2 是数或数组},返回值与ease相似,但只在切入点tMin的速率为0,靠近tMax一边是线性的。
- easeOut(t, value1, value2),{t 是一个数, value1和value2是数或数组},返回值与ease相似,但只在切入点value2的速率为0,靠近value1一边是线性的。
- easeOut(t, tMin, tMax, value1, value2),{t, tMin和tMax是数, value1和value2是数或数组},返回值与ease相似,但只在切入点tMax的速率为0,靠近tMin一边是线性的
五、Color Conversion
1.颜色返回的是四维数组:[red, green, blue, alpha]。
在颜色拾取器范围内,返回颜色数组中的每个值都介于0(黑色)到1(白色)之间。例如,red可以介于0(无色)到1(红色)之间。因此,[0,0,0,0]是黑色且透明,[1,1,1,1]是白色且完全不透明。
颜色深度为8、16、32时,颜色拾取器内的取值范围不一样。但是点的位置一样的时候,返回的数值是一样的都是介于0至1之间。
2.rgbToHsl(rgbaArray),返回类型:数组(4个维度 )。
rgbaArray是数组(4维度),将RGBA空间中的颜色转换为HSLA空间。生成的值是色相[0]、饱和度[1]、亮度[2] 以及Alpha通道值[3],同样介于0.0到1.0范围内
H(色相)、S(饱和度)、B(亮度),S与B影响饱和度值与亮度值,S和B也略微影响色相返回的值。
当S或者B为0时,H总为0。当H为180、S为100、B为100的时候,表达式返回的值为[0.5,1,0.5,1]
3.hslToRgb(hslaArray),返回类型:数组(4维度)
hslaArray是数组(4维度)。转换HSLA彩色空间到RGBA彩色空间,上式的逆运算
六、JavaSctipt Math
以下表达式返回的类型都是数值
1.Math.cos(value)—cos(value)
解析:求数值的余弦值,输入数值为弧度,不是角度。
2.Math.acos(value)—cos‾¹(value)
解析:求数值的反余弦值,得到的结果为弧度,不是角度。
3.Math.tan(value)—tan(value)
解析:求数值的正切值,输入数值为弧度,不是角度。
4.Math.atan(value)—tan‾¹(value)
解析:求数值的反正切值,得到的结果为弧度,不是角度。
5.Math.atan2(y,x)
解析:求从x轴到点(x,y)之间的弧度。
6.Math.sin(value)—sin(value)
解析:求数值的正弦值,输入数值是弧度,不是角度。
7.Math.asin(value)—sin‾¹(value)
解析:求数值的反正弦值,得到的结果为弧度,不是角度。
8.Math.sqrt(value)—√vakue
解析:求一个数值的平方根。
9.Math.exp(value)—evalue
解析:求e的value次幂。
10.Math.pow(x,y)—xy
解析:求x的y次幂值。
11.Math.log(value)—ln(value)=loge(value)
解析:求数值的自然对数值。
12.Math.abs(value)—|value|
解析:求数值的绝对值。实例:|-57| = |57|
13.Math.round(value)
解析:对数值四舍五入取整。实例:3.43 ≈ 3; 3.53 ≈ 4
14.Math.ceil(value)
解析:对数值向上取整。实例:3.43 ≈ 4; 3.53 ≈ 4
15.Math.floor(value)
解析:对数值向下取整。实例:3.43 ≈ 3; 3.53 ≈ 3
16.Math.min(value1,value2)
解析:得到多个数值中的最小值。实例:Math.min(1,3,5,7) = 1
17.Math.max(value1,value2)
解析:得到对个数值中的最大值。实例:Math.max(1,3,5,7) = 7
18.Math.PI—π
19.Math.E—e
20.Math.10E—ln(e)=log10(e)
21.Math.LN2—ln(2)
22Math.LOG2E—log2(e)
23.Math.LN10—ln(10)=loge(10)
24.Math.SQRT2—√2
25.Math.SQRT1—√½
七、Comp
1.layer(index),返回类型:图层、光照或摄像机。index是数值
按照编号(“时间轴”面板中的顺序)检索图层。例如,thisComp.layer(1)
2.layer(“name”),返回类型:图层、光照或摄像机。name是一个字串得到层名
指定的名字与层名匹配,或者在没有层名时与源名匹配。如果存在重名,After Effects 使用时间线窗口中的第一个。例如, thisComp.layer(“AA”)
3.layer(otherLayer, relIndex),返回类型:图层、光照或摄像机。{otherLayer是层对象, relIndex是数值}
得到otherLayer(层名)上面或下面relIndex (数) 的一个层。例如,layer(thisLayer, -1)返回在时间线窗口中高2层的层。
4.marker,书写格式必须是maker.key(2).comment。括号里的数值是标记的顺序,从左到右。comment则是标记点里的属性值,即comment可以改为time、duration等等
5.numLayers,返回类型:数值。返回当前合成中层的数量
6.activeCamera,返回类型:摄像机。返回在当前帧渲染合成的摄像机对象
7.width,返回类型:数值。返回合成的宽度
height,返回类型: 数值。返回合成的高度
duration,返回类型:数值。返回合成的持续时间值,单位为秒
displayStartTime,返回类型:数值。返回合成开始时间
8.ntscDropFrame,返回类型:布尔值。如果时间码是丢帧格式,则返回true。当合成帧数设置为Drop Frame时,返回值是1。当合成帧数设置为NON-Drop Frame时,返回值是0
9.frameDuration,返回类型:数值。返回当前合成每帧的持续时间值
10.shutterAngle,返回类型:数值。返回合成中快门角度的度数。
shutterPhase,返回类型:数值。返回合成中快门相位的度数。
11.bgColor,返回类型:数组(4维度)。返回合成背景的颜色
12.pixelAspect,返回类型:数值。返回合成中用width/heigh表示的像素宽高比
13.name,返回类型:字符串。返回合成的名字
八、Footage
以下返回值与Comp相同,指定对象不一样
footage(“6”),footage指的是项目里的素材文件(除合成以外)
1.width,返回素材的宽度
2.height,返回素材的高度
3.duration,返回素材的持续时间值
4.ntscDropFrame,如果时间码是丢帧格式,则返回 true
5.frameDuration,返回素材的每帧的持续时间
6.pixelAspect,返回素材项目的像素长宽比
7.name,返回“项目”面板中所示的素材项目的名称
九、Layer
1.Sub-objects
(1) source,返回类型:合成或素材。返回layer设置里的属性
(2) sourceTime(t = time),返回类型:数值。返回时间线所在的当前时间值 与 图层的开始位置在合成所处位置的时间值 之差
当括号里面没东西时,同上
当括号里面为数值的时候,返回该数值 与 图层的开始位置在合成所处位置的时间值 之差
(3) effect(name),返回类型: 效果。After Effects在效果控制窗口中,用这个名字查找对应的效果。这个名字可以是默认名,也可以是用户自定义名。如果这里有一些相同的效果名则选择效果控制窗口中同名字的最上面的一个效果。
effect(index),返回类型:效果。After Effects在效果控制窗口中,用这个序号查找对应的效果。起始于1,且从顶部开始。
mask(name),返回类型:遮罩。这个名字可以是默认名,也可以是用户自定义名。
mask(index),返回类型:遮罩。After Effects在时间线窗口中,用这个序号查找对应的遮罩。起始于1,且从顶部开始。
2.General
(1) width,返回类型:数值。返回图层的宽度
height,返回类型:数值。返回图层的高度
index,返回类型:数值。返回图层的序值
(2) parent,返回类型:图层、光照或摄像机。返回该层的父层对象。例如,parent.ration
(3) hasParent,返回类型:布尔值。如果有父层,返回true。否则返回false
(4) inPoint,返回类型: 数值。返回层的入点,单位为秒
outPoint,返回类型: 数值。返回层的出点,单位为秒
startTime,返回类型: 数值。返回层的开始时间,单位为秒
(5) hasVideo,返回类型:布尔值。如果有视频返回 true,否则返回false
(6) hasAudio,返回类型:布尔值。如果有音频返回 true,否则返回false
(7) enabled,返回类型:布尔值。如果图层开关打开,则返回true,否则返回false
(8) active,返回类型:布尔值。如果图层开关打开,且当前时间处于图层的入点到图层的出点范围内,则返回 true,否则返回false
(9) audioActive,返回类型:布尔值。如果“音频”开关在图层中打开,且当前时间处于图层的入点到图层的出点范围内,则返回 true,否则返回false
(10) sampleImage(point, radius = [.5, .5], postEffect = true, t = time),返回类型:数组(4维度)。
(AK大神的教程123 期中有案例,解析视频在第五集的5分58秒)
对图层的颜色和alpha通道值进行采样,并返回指定点距离内像素的平均色彩值[red, green, blue, alpha]。point是数组(2维度),radius是数组(2维度),postEffect是布尔值,t 是数值。
输入值point位于当前合成空间中;点[0,0]是当前合成坐标的原点,即左上角顶点为当前合成图层的像素中心 ,以原点向外扩散图层原始尺寸的像素面积(可以这么理解:应用这个表达式予某图层的时候,我们创建一个颜色图层或者拖放一个素材图层的时候,虽然图层位于合成中心,但是这个表达式应用图层的时候,默认你图层的色彩范围是原图层大小、描点以及坐标为0的时候,向外扩散的范围,如下图)。所以无论你在合成时间窗口中怎么改变图层的位置、缩放、旋转等等,对表达式无影响。
输入值radius,即设置点XY的采样范围
以下解释请参考视频
如果postEffect 为 true,则采样值是渲染图层上的蒙版和效果后的图层的值。
如果postEffect 为 false,则采样值是渲染蒙版和效果前的图层的值。
其实就是当你的图层加了遮罩效果之类的东西,改变了图层本身的色彩信息时,若是填true,则用的是改变后的图层色彩信息值,填false的话就是用原本的图层色彩信息值
3.Properties
(1) 以下6个为layer的属性值
anchorPoint,返回层空间内层的锚点值
position,返回位置值
scale,返回层的缩放值,%
rotation,返回层的旋转度数,对于3D 层,它返回z旋转度数
opacity,返回层的透明值,%
(2) audioLevels,返回层的音量属性值。单位为分贝,这是一个2维值。第一个值表示左声道的音量,第二个值表示右声道的音量
(3) timeRemap,当时间重置被激活时,返回时间线在图层的时间值
(4) maker
marker.key(index)
marker.key(“name”)
(5) name,返回类型:字符串。返回指定图层对象的名字
4.3D
以下为3D图层属性值
orientation,对3D层,返回3D方向的度数。
rotationX,对3D层,返回X旋转值的度数。
rotationY,对3D层,返回Y旋转值的度数。
rotationZ,对3D层,返回Z旋转值的度数。
castsShadows,为on的时候,返回数值1;为only的时候,返回数值2;为off的时候,返回数值3。
lightTransmission,对3D层,返回光的传导属性值。
acceptsShadows,为on的时候,返回数值1;only的时候,返回数值2;off的时候,返回数值3。
acceptsLights,为on的时候,返回数值1;only的时候,返回数值2;off的时候,返回数值3。
ambient,返回环境因素的百分数值。
diffuse,返回漫射因素的百分数值。
specular,返回镜面因素的百分数值。
shininess,返回发光因素的百分数值。
metal,返回材质因素的百分数值。
5.Space Transforms
T=time 可以省略,以下表达式返回类型:数组(2 or 3维度)
(1) toComp(point, t = time),将点从图层空间变换到合成空间。point是2or3维度数的数组
fromComp(point, t=time),将点从合成空间变换到图层空间。3D图层中生成的点可能有非零值,即使它位于图层空间中
toWorld(point, t=time),将点从图层空间变换到与视角无关的世界空间
fromWorld(point, t=time),将点从世界空间变换到图层空间
(2) toCompVec(vec, t=time),从层空间转换一个向量到合成空间
fromCompVec(vec, t=time),从合成空间转换一个向量到层空间
toWorldVec(vec, t=time),从层空间转换一个向量到世界空间
fromWorldVec(vec, t=time),从世界空间转换一个向量到层空间
(3) fromCompToSurface(point, t=time),返回类型:数组(2维度)。
在从活动摄像机中进行查看时出现的位置将位于合成空间中的点投影到图层表面上的点(Z值为0)。此方法有助于设置效果控制点。仅用于3D图层
十、Camera
1.pointOfInterest,返回类型:属性(3维度)。返回摄像机在世界空间中的目标点值
2.zoom,返回类型:属性。返回摄象机的缩放值,单位为像素。
depthOfField,返回类型:属性。如果摄象机景深打开,返回1;否则返回0。
focusDistance,返回类型:属性。返回摄象机焦距值,单位为像素。
aperture,返回类型 :属性。返回摄象机光圈值,单位为像素。
blurLevel,返回类型:属性。返回摄象机的模糊水平的百分数。
如果摄像机是当前时间合成的活动摄像机 ,且摄像机图层的显示开启,返回true;否则返回false
十一、Light
1.pointOfInterest,返回类型:属性(3维度)。在工作区返回灯光目标点
2.以下返回类型:属性
intensity,返回灯光亮度的百分数。
color,返回灯光彩色值(4维度)。
coneAngle,返回灯光光锥角度的度数。
coneFeather,返回灯光光锥的羽化百分数。
shadowDarkness,返回灯光阴影暗值的百分数。
shadowDiffusion,返回灯光阴影扩散的像素。
十二、Effect
1.active,返回类型:布尔值。如果效果打开(“效果”开关处于选定状态),则返回 true
2.param(name),返回类型:数值
3.param(index),返回类型:数值
4.name,返回类型:字符串
如图,effect(“1”).param(1),可以简写为effect(“1”)(1)
十三、Mask
1.MaskOpacity,返回类型:数值。返回遮罩透明值的百分数
2.MaskFeather,返回类型:数值。返回遮罩羽化的像素值
3.invert,返回类型:布尔值。如果遮罩是反转的,返回true;否则返回false
4.MaskExpansion,返回类型:数值。返回遮罩的像素
5.name,返回类型:字符串。返回遮罩名
十四、Property
这边类容请参考视频
1.value,返回类型:数值、数组或字符串。返回指定的属性在当前时间的值。
valueAtTime(t),返回类型:数值or数组。t是数值,返回指定对象在指定时间的属性值
2.velocity,返回类型:数值or数组。返回关键帧之间的速率值,这个值是矢量,即可以代表方向又可以代表数值。
speed,返回类型:数值。返回关键帧之间的速度值,这个值是常量,如下图
3.velocityAtTime(t),t是数值,返回关键帧之间指定时间的速率值,这个值是矢量。
speedAtTime(t),t是数值,返回关键帧之间指定时间的速率值,这个值是常量
4.wiggle(freq, amp, octaves=1, ampMult=.5, t=time),返回类型:数值或数组。
- freq,每秒摆动的频率。
- amp,摆动的振幅。
- octaves,控制摆动的详细程度。高于默认值1时,可在摆动中包括更高的频率;低于默认值1时,可在摆动中包括振幅谐波(这个值是控制整体的频率,与amp_mult控制谐波振幅成倍数关系)
- amp_mult,默认为 0.5。使其更接近0时,可以添加更少的细节 (这个值控制谐波的振幅)
- t,基础启动时间,此值默认为当前时间。当t为常量时,可以指定返回表达式在某一时间返回的值。
可简写为wiggle(freq, amp),如下图,最终返回的是随机摇动(摆动)的属性值
5.temporalWiggle(freq, amp, octaves=1, ampMult=.5, t=time),数值关系和上面一样,结果是在摆动的时间对属性进行采样,就是随机采样
6.smooth(width=.2, samples=5, t=time),返回类型:数值or数组。
数值可取范围:0<wdidth ≤ 1000,1≤samples≤100。结果是让数值之间的变化、起始和结束有起伏状态。
比如,做了一个位移动画,关键帧两点间速度值是不变的,即匀速运动 。当用了这个表达式后,会在关键点前后若干帧,从速度为0加速至平均速度值,再从平均速度值减速至0。
前后若干帧取决于width的值(简称w),合成为25帧时,0.1为大概为一帧。smples(简称s),决定期间的变化频率,如果应用的关键帧就两个的话,这个值为6。说白了就是数值变化看起来更平滑 。
一般情况下,w取值在0.1到1.5之间就可以了。当你合成为25帧每秒的时候,w为1.5 数值的起伏时间大概为15帧,也就是0.5秒左右,超过这时间动画看起来感觉就生硬许多。
7.以下表达式返回类型:数值or数组
(1) loopIn(type = “cycle”, numKeyframe = 0),在初始关键帧之前,往前循环。
当numKeyframe为0时,循环所有关键帧;为1时,循环前2个关键帧;为2时,循环前3个关键帧,以此类推……。超出关键帧数目时,则和为0时候一样。
(2) loopInDuration(type = “cycle”, duration = 0),duration为时间值(单位:秒),循环顺序同上。
道理同上,区别是numKeyframe以关键帧的个数为单位,而duration以时间为单位。
(3) loopOut(type = “cycle”, num关键帧 = 0),在结束关键帧之后,往后循环。
当numKeyframe为0时,循环所有关键帧;为1时,循环倒数2个关键帧;为2时,循环倒数2个关键帧,以此类推……。超出关键帧数目时,则和为0时候一样。
(4) loopOutDuration(type = “cycle”, duration = 0),道理同上。
(5) type = “cycle”,引号里面的值决定循环方式,有四种循环方式:cycle、pingpong、continue、offset。
cycle,重复循环,数字表示就是12 3 4 1 2 3 4
pingpong,来回循环,数字表示就是1 2 3 4 3 2 1
offset,按照固有的速度一直运动下去,好比匀速运动的车,数字表示就是1 2 3 4 5 6 7 8 9
continue,数字表示就是….. – 1 0 1 2 ( 3 2 1) 2 3 4 …..,基于第一个或最后一个关键帧的速度,对属性进行运动变化。此类型不接受numKeyframe或duration参数影响
(6) numKeyframe、duration,循环的范围。
8.key(index),括号里的数值是标记的顺序(从左到右)。若key可以设置属性值,则后面要跟上指定属性对象,就好比之前的marker.key(2).comment。不是则如下图
9.key(markerName),用这个名字,返回标记的 key 对象。仅用于标记属性
10.nearestKey(time),返回指定时间最近的关键帧对象
11.numKeys,返回在一个属性中关键帧的数目
12.name,返回属性或属性组的名称
13.active,返回类型:布尔值。属性或属性组,显示的时候,返回true;否则,返回false
enabled,返回类型:布尔值。属性或属性组,显示的时候,返回true;否则,返回false
14.propertyGroup(countUp = 1),返回对其编写表达式的属性相关的属性组。
例如:propertyGroup(1),指定当前属性的父级
propertyGroup(2),指定当前属性的父级的父级
propertyGroup(3),指定当前属性的父级的父级的父级,依次类推
15.propertyIndex,返回指定属性在同一级属性所处第几位的数值
十五、Key
1.value,返回指定关键帧当前的属性值
2.time,返回指定key在当前合成的时间值
3.index,返回指定key的顺序值
十六、MarkerKey
1.comment,返回类型:字符串
2.chapter,返回类型:字符串
3.url,返回类型:字符串
4.frameTarget,返回类型:字符串
5.eventCuePoint,返回类型:布尔值。标记对话框中的提示点类型设置。对于Event,返回True;对于Navigation,返回False
6.cuePointName,返回类型:字符串。标记对话框中的提示点名称内容字段
7.parameters,返回类型:字符串关联。如图,表达式[ ]里填的是设置里左边的名字,返回设置里右边的字符串
8.duration,返回类型数值