AE常用的实用动画表达式

AE表达式一直是我们学习AE过程中的一道坎,一道深坎,因为涉及代码,很多人都望而却步。更无法体会AE表达式的魅力,于是这一次,我花了大量时间整理出一套非常实用的AE表达式合集,希望在日常工作中能为大家提供一丝便利。

  • 1.AE反弹效果表达式

    使用此表达式,您可以从地板创建对象的反弹效果。 允许您为几乎所有参数设置动画。
    e = .3; // 弹跳力
    g = 1; // 引力
    nMax = 10; // 最大反弹n = 0;
    if (numKeys > 0){
    n = nearestKey(time).index;
    if (key(n).time > time) n–;
    }
    if (n > 0){
    t = time – key(n).time;
    v = -velocityAtTime(key(n).time – .001)*e;
    vl = length(v);
    if (value instanceof Array){
    vu = (vl > 0) ? normalize(v) : [0,0,0];
    }else{
    vu = (v < 0) ? -1 : 1;
    }
    tCur = 0;
    segDur = 2*vl/(g*1000);
    tNext = segDur;
    nb = 1; // number of bounces
    while (tNext < t && nb <= nMax){
    vl *= e;
    segDur *= e;
    tCur = tNext;
    tNext += segDur;
    nb++
    }
    if(nb <= nMax){
    delta = t – tCur;
    value +  vu*delta*(vl – (g*1000)*delta/2);
    }else{
    value
    }
    }else
    value
  • 2.AE随机编码的形状表达式

    该表达式允许您循环播放具有随机时间偏移的素材或合成。 用于时间重映射参数
    loopLength = 10; // 序列的持续时间seedRandom(index,true);
    preRun = random(loopLength);
    (time + preRun)%loopLength
  • 3.AE抖动弹性表达式

    freq = 1; // 频率
    amp = 110; // 振幅
    loopTime = 3; // 循环时间以秒为单位
    t = time % loopTime;
    wiggle1 = wiggle(freq, amp, 1, 0.5, t);
    wiggle2 = wiggle(freq, amp, 1, 0.5, t – loopTime);
    linear(t, 0, loopTime, wiggle1, wiggle2)
  • 4.AE随机重复表达式

    表达式随机显示素材框架。 适用于时间重映射
    fr = 5; // 帧速率,如果设置为0(零),则将显示一个冻结帧;
    numFrames = 15; // К要使用的序列的帧数
    seedRandom(index,true);
    seg = Math.floor(time*fr);
    f = Math.floor(random(numFrames));
    for (i = 0; i < seg; i++)
    f = (f + Math.floor(random(1,numFrames)))%numFrames;
    framesToTime(f);
  • 5.AE动力学排版表达式

    要使用表达式,您需要在文本图层中创建一个带有任何变换(Animate:>)的动画师,并为其添加(Add:>)表达式选择器。 必须将表达式插入到选择器的Amount参数中。
    delay = 0.03; // 延迟
    freq = 3; // 频率
    amp = 60; // 振幅
    decay = 10; // 值越小,波动越大
    Speed = 0.8; // 值越小,动画越慢
    myDelay = delay*textIndex;
    t = (time – inPoint)*Speed – myDelay;
    if (t >= 0){
    freq;
    amp;
    decay;
    s = amp*Math.cos(freq*t*2*Math.PI)/Math.exp(decay*t);
    [s,s] }else{
    value
    }
  • 6.AE计时&倒计时表达式

    在ae里创建一个文字图层,然后在源文本(source text)里键入即可。 然后他就会以合成的长度开始计时,如果想增加计时的区间只需改变合成长度即可。 如果你想要制作倒计时效果,需要先把该文字图层预合成下,然后选中图层 右键—>时间—>时间反转 即可。 当然你可以先把文字的样式制作的好看一些,这不影响内容表达式的实现。如果你只需要显示到分钟,可以在最后一行代码 output 把hour删掉即可。
    //Define time values
    var hour = Math.floor((time/60)/60);
    var min = Math.floor(time/60);
    var sec = Math.floor(time);
    var mili = Math.floor(time*60);
    // Cleaning up the values
    if (mili > 59){ mili = mili – sec*60; }
    if (mili < 10){ mili = “0” + mili; } if (sec > 59){ sec = sec – min*60; }
    if (sec < 10){ sec = “0” + sec; } if (min >= 59){ min = min – hour*60; }
    if (min < 10){ min = “0” + min; }
    // no hour cleanup
    if (hour < 10){ hour = “0” + hour; }
    //Output
    hour + ‘ : ‘ + min + ‘ : ‘ + sec + ‘ : ‘ + mili;
  • 7.AE分向抖动表达式

    Wiggle表达式更高级的运用,在不同的方向使用不同的抖动强度,也可以制作只在一个方向进行抖动的效果。
    表达式语句:
    a=wiggle(3,50)[0]; //控制x方向的抖动
    b=wiggle(0,0)[1]; //控制y方向的抖动
    [a,b];
  • 8.AE时间表达式

    Time表达式,常用于制作持续旋转的效果。
    表达式语句:
    value+time*100; //后面的数值用来控制速度的快慢
    对表达式有一定基础的同学可能会直接写成:
    time*100;
    这里多写了一个value,而value代表属性的原始数值,这里加上value是为了能够调整旋转的初始角度,增强可控性。
  • 9.AE循环表达式

    loopOut表达式,使关键帧动画循环,常用的有三种模式:
    第一种:cycle模式
    表达式语句:
    loopOut(type = “cycle”, numKeyframes = 0);//后面的数值0用来控制从第几帧开始循环将关键帧动画重复进行的循环效果
    比如你有关键帧1、2、3,这种循环模式就是1、2、3、1、2、3、1、2、3…..一直循环下去
    第二种:pingPong模式
    表达式语句:
    loopOut(type = “pingPong”, numKeyframes = 0);//后面的数值0用来控制从第几帧开始循环
    像乒乓球一样来回往复循环
    同样,如果你有关键帧1、2、3,那么这种循环模式就是按1、2、3、3、2、1、1、2、3…..这种规律循环下去
    第三种:continue模式
    表达式语句:
    loopOut(type=”continue”)
    沿着最后一帧的方向和运动速度继续运动下去
    这种模式相比前两种用的较少,可以便于制作动画持续缓慢运动的效果,避免动画静止,也可以制作一些数字持续增长等效果
  • 10.AE循环旋转表达式

    表达式语句:
    cycle=360; //循环周期
    n=1; //转速(需为整数)
    cycle*n/thisComp.duration*time
    简单解释下两个可以调的数值:
    循环周期,默认是360度,但是不同的图形循环周期可能有所区别,比如一个正方形旋转90度就能形成循环,而一个正五角形的循环周期是旋转360÷5 =72度第二个值很好理解,代表转速,值越大,转的越快。
  • 11.AE路径循环表达式

    有时候我们需要做mask变形动画的循环,但是你会发现直接给mask path属性加循环表达式是不起作用的。
    而利用下面这个表达式就能够解决这个问题
    表达式语句:
    valueAtTime(time%key(numKeys).time)对于mask路径和形状层路径均有效哦。
    该表达式的原理是利用valueAtTime表达式读取关键帧数据,并通过数学计算使关键帧数据在时间线上重复。(所以有趣的是,其实你把它加给任何其他属性都能够产生cycle模式的循环。)
  • 12.AE随机循环表达式

    让随机抖动的效果能够形成循环,对于做一些元素随机晃动之类的GIF循环动画非常好用!
    表达式语句:
    freq = 3; // 频率
    amp = 100; // 幅度
    loopTime =3; // 循环时间,单位为秒
    t = time % loopTime;
    wiggle1 = wiggle(freq, amp, 1, 0.5, t);
    wiggle2 = wiggle(freq, amp, 1, 0.5, t – loopTime);
    linear(t, 0, loopTime, wiggle1, wiggle2)
  • 13.AE回弹表达式

    它能够制作物体撞击墙壁或地面产生的回弹反弹效果
    表达式语句:
    e =0.7;//弹力
    g =1000;//重力
    nMax = 9;//最大弹跳次数
    n = 0;
    if (numKeys > 0){
    n = nearestKey(time).index;
    if (key(n).time > time) n–;
    }
    if (n > 0){
    t = time – key(n).time;
    v = -velocityAtTime(key(n).time – .001)*e;
    vl = length(v);
    if (value instanceof Array){
    vu = (vl > 0) ? normalize(v) : [0,0,0];
    }else{
    vu = (v < 0) ? -1 : 1;
    }
    tCur = 0;
    segDur = 2*vl/g;
    tNext = segDur;
    nb = 1; // number of bounces
    while (tNext < t && nb <= nMax){
    vl *= e;
    segDur *= e;
    tCur = tNext;
    tNext += segDur;
    nb++
    }
    if(nb <= nMax){
    delta = t – tCur;
    value + vu*delta*(vl – g*delta/2);
    }else{
    value
    }
    }else
    value
    这里有三个关键数值用来控制弹性的效果,
    弹力,这个值越大,则弹起的越高
    重力,这个值越大,则弹的越快,同时停止的也越快
    最大弹跳次数,字面意思,用来控制弹跳的次数,值越大,效果越细腻
  • 14.AE目标朝向表达式

    lookAt表达式,使图层的方向始终朝向一个目标图层,对于二维层和三维层均有效。
    表达式语句:
    (对于二维层,加给rotation[旋转]属性)
    function lookAtMe(fromPt, toPt){
    lkAt = lookAt(fromPt, toPt);
    if (toPt[1] > fromPt[1]){
    return 180-lkAt[1];
    } else {
    return lkAt[1];
    }
    }
    p0= transform.position;
    p1=thisComp.layer(“目标层”).transform.position; //设置目标层名
    lookAtMe(p0, p1)+value //改变旋转值可调整角度
    (对于三维层,加给orientation [角度] 属性)
    p0=transform.position;
    p1=thisComp.layer(“目标层”).transform.position; //设置目标层名
    lookAt(p0,p1)
1.唯美师(vmshi.com)网站素材均来源于网络,由用户自主上传分享,如有侵权请邮件管理员进行删除
2. 本站提供的AE模板、PR模板、高清视频素材等资源。
3. 如您持有优质资源,可联系客服申请成为作者,分享有V币奖励和额外收入。
4. 本站素材,版权均归原作者所有,仅用于学习交流之用。
vmshi.com » AE常用的实用动画表达式

常见问题FAQ

免费下载或者VIP会员专享资源能否直接商用?
本站所有资源版权均属于原作者所有,这里所提供资源均只用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。
提示下载完但解压或打开不了?
最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或 联络我们。
找不到素材资源介绍文章里的示例视频?
对于文章内用于介绍的视频通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责找到出处。 同样一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。

发表评论

11+

用户总数

103+

资源总数

0+

今日更新

2020年5月2日

最后更新时间