动效表达式

作者: Kyle_Song | 来源:发表于2018-08-02 19:44 被阅读0次

    1.wiggle 抖动

    用法wiggle(5,200)

    2.random 随机

    random(数值x,数值y)是在数值x到数值y之间进行随机值的抽取,随机抽取的最小值是x,最大值是y

    用法:random(1,10)

    3.loopOut 循环

    loopOut(type="循环类型",numkeyframes=0从最后一个关键帧往前走开始循环,0代表无限)

    循环类型四种:pingpong 如乒乓球一样来回运动

             cycle   周而复始的来回运动

             offset  叠加之前关键帧数值循环

             continue延续属性变化的最后速度

    用法:loopOut(type = "cycle", numKeyframes = 0)

    4.time 时间  这个不解释了

    5.timeRemap 抽帧

    timeRemap*数值,这里数值以帧为单位

    用法:在素材上鼠标右键时间重映射上输入timeRemap*10

    6.index 图层序号

    说不清,还是上图吧

    这个红框内就是图层序号

    index可以代表当前图层的数值

    常见的就是把index丢到位置上做立体字,如

    [transform.position[0],transform.position[1],index],复制很多层就是立体字了

    丢到缩放上,如

    [transform.scale[0]+index,transform.scale[1]+index],复制很多层文字就慢慢变大了

    其他参数可以自己尝试

    7.在文字上的源文本上打下面的表达式

    倒计时表达式:

    a=linear(time, 4, 6, 1000, 0);

    Math.floor(a)

    公式

    a=linear(time, 开始变化的时间, 结束变化的时间, 开始变化时的数字, 结束变化的数字);

    //将a复制linear变化的结果Math.floor(a) // 向下取整(a)

    8.弹性表达式

    其实不想发,分享脚本里motion脚本自带有弹性功能

    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);

    amp = .03;

    freq = 2.5;

    decay = 4.0;

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

    }else{value;}

    这里要更改的就三个后面的数值

    amp=振幅

    freq=频率

    decay=衰减或者叫阻力

    9.线性表达式

    linear(t, value1, value2) {t 是一个数, value1 和 value2 是一个数或数组}当t的范围从0到1时,返回一个从value1到value2的线性插值。当 t <= 0时返回value1,当 t >= 1时返回 value2

    linear(t, tMin, tMax, value1, value2) {t, tMin和 tMax are 数, value1和value2 是数或数组} 当 t <= tmin时返回value1;当t >= tMax时,返回value2 ;当tMin < t < tMax 时, 返回 value1和value2 的线性联合

    10.数字递增表达式

    StartNumber=1;

    EndNumber=1000;

    StartTime=1;

    EndTime=3;

    t=linear(time,StartTime,EndTime,StartNumber,EndNumber);

    Math.floor(t)

    用法:输入到文字图层的源文本

    10.反弹表达式

    k=100; // 反弹最终结果

    a=5; // 反弹阻力

    b=50; //反弹变化时间

    x=k*(1-Math.exp(-a*time)*Math.cos(b*time));

    [x,x]

    相关文章

      网友评论

        本文标题:动效表达式

        本文链接:https://www.haomeiwen.com/subject/hlgsvftx.html