介绍

wiggle的同时,再引用loopOut机制

使用方法

新建一个纯色图层100*100(其他图层都行,这是示例)

在图层的位置属性K2帧,比如从左下到右上

在位置属性添加下面的表达式即可

表达式

freq = 2; //设置频率:1秒2次
amp = 200; //设置振幅:200
myProporty = transform.position//设置要循环的属性
firstKeyTime = myProporty.key(1).time
lastKeyTime = myProporty.key(myProporty.numKeys).time
loopTime = lastKeyTime - firstKeyTime; //wiggle的循环周期
t = time % loopTime;
wiggle1 = wiggle(freq, amp, 1, 0.5, t+firstKeyTime);
wiggle2 = wiggle(freq, amp, 1, 0.5, t - loopTime+firstKeyTime);
linear(t, 0, loopTime, wiggle1+loopOut("cycle"), wiggle2+loopOut("cycle")) //修改循环方式
cycle 循环吼 从头开始循环 pingpong 来回循环 continue 以结束点作为起点,继续循环 offset 以最后一个点的速度持续下去

作用范围

跟loopOut一样,从第一个关键帧往右,围绕两个关键帧进行循环,看图像就知道了。向前循环用loopIn

其他说明

1.可以修改抖动频率、抖动振幅、应用的属性。(表达式前3行)以及循环方式(表达式最后一行)

2.由于只有俩关键帧,continue与offset效果没啥差别,多关键帧可以自己研究下

其他:透明度随机频闪

freq = 2; //频率:1秒2次
amp = 200; //振幅:200
myProporty = transform.opacity
firstKeyTime = myProporty.key(1).time
lastKeyTime = myProporty.key(myProporty.numKeys).time
loopTime = lastKeyTime - firstKeyTime; //wiggle的循环周期
t = time % loopTime;
wiggle1 = wiggle(freq, amp, 1, 0.5, t+firstKeyTime);
wiggle2 = wiggle(freq, amp, 1, 0.5, t - loopTime+firstKeyTime);
linear(t, 0, loopTime, wiggle1+loopOut("cycle"), wiggle2+loopOut("cycle"))

参考文档

wiggle如何循环

loop详解

Leave a Reply

Your email address will not be published.