废话不多说,我这里只有干货。
首先前面是给初学者看的,全面解释ae循环表达式用法。
如果你已知道,请下拉到最后第三大点的,如何控制循环表达式的开始和结束的时间。
该时间控制教程可以套用在大多数表达式中。
首先我们要知道怎么打开循环表达式,因为太简单了,
不会的看参考教程https://jingyan.baidu.com/article/a3a3f8113a721a8da2eb8a92.html
再不会请自行百度教程....
然后里面的四个基本表达式,分别是:
loopIn(type = "cycle", numKeyframes = 0)
loopOut(type = "cycle", numKeyframes = 0)
loopInDuration(type = "cycle", duration = 0)
loopOutDuration(type = "cycle", duration = 0)
一、首先说明他们相同的地方
type =“?” 可以替换为不同的循环类型
拿loopOut来举例:
类型1 圆形循环
loopOut(type="cycle",numkeyframes=0)
cycle是个圆形的类型的循环,就是对一组动作进行循环。
如果你有5个关键帧,分别为12345。
那它的循环模式就是12345,12345,12345,12345。(如下GIF图)
圆形循环类型2 乒乓循环
loopOut(type="pingpong",numkeyframes=0)
pingpong 是个兵乓的类型的循环,就像那样兵乓球的作用来使用。
同上,如果你有关键帧12345个关键帧,
那它循环模式就是12345,54321,12345,54321(如下GIF图)
乒乓循环类型3 弥补循环
loopOut(type="Offset",numkeyframes=0)
Offset意思根据关键帧计算出后面运动轨迹。(例子:下台阶循环,只需做一套动作,自动继续计算出下台阶的动作)
同上,如果你有关键帧123个关键帧,
那它循环模式就是12345678910...直至运动到合成画面外看不见(如下GIF图)
弥补循环类型3 持续循环帧
loopOut(type="continue")
延续最后一帧的方向和运动速度,做不停做动作。
同上,如果你有关键帧123个关键帧,
那它循环模式就是123,3+n...直至合成画面外。(如下GIF图)
持续循环帧二、In和Out的区别,numkeyframes和Duration区别
1.loopIn的意思:
用这个表达式为例 loopIn(type="cycle",numkeyframes=0)
假设循环的关键帧设在6-8秒时候为一套动作。
那么6秒前秒会一直循环6-8秒的这套动作(不一定是由第1关键帧开始,要看前面空出的时长),
循环到达6秒到达关键帧,开始完成最后一套动作,在8秒时结束循环。(如下GIF图)
loopIn备注:可以看到动画开始时,是由第5关键帧开始循环,因为该循环在6秒时候要开始吻合最后的5个关键帧,所以开始的位置对应推算。
2.loopOut的意思:
用这个表达式为例
loopOut(type="cycle",numkeyframes=0)
假设循环的关键帧设在4-6秒时候为一套。
那么4秒前时间循环不会动,4-6秒时候开始第一套循环一套,并在6秒后面一直无限圆形循环。(如下GIF图)
loopOut
3.上两例中numkeyframes的意思:
numkeyframes表示循环哪些关键帧,=0表示循环所有关键帧。
● 在loopIn中,numkeyframes=1表示前2个关键帧,=2表示前3个关键帧,以此类推。
● 相反在loopOut中,numkeyframes=1表示最后2个关键帧,=2表示最后3个关键帧,以此类推。
也可以不写,默认是0。
4.Duration的意思:
duration = 0时候一切遵循以上Out和In的基本解释。
duration = 1,这里分为两种:
● 第一种,loopInDuration(type = "cycle", duration = 1)
假设循环的关键帧设在4-6秒时候为一套动作。
duration = 1表示循环该套动作的前1秒内的动作。(如下截图,只循环红框内的关键帧)
duration = 1指该套动作的一秒内动画效果如下GIF图,前4秒一直循环该动作第1-3关键帧。
loopInDuration中 duration = 1时的循环动作● 第二种,loopOutDuration(type = "cycle", duration = 1)
还是假设循环的关键帧设在4-6秒时候为一套动作。
duration = 1表示循环该套动作的最后1秒内的动作。(如下截图,只循环红框内的关键帧)
duration = 1 指该套动作的最后一秒内动画效果如下GIF图,前4秒不动,4秒开始关键帧动作,并在完成后一直循环第3-5关键帧的动作
loopOutDuration中 duration = 1 时的循环动作三、如何控制循环表达式的开始和结束时间
就是用下面表达式:
timeToStart = 2;
timeToStop = 10;
if ((time > timeToStart) && (time < timeToStop))
{loopIn(type="pingpong",numkeyframes=0);}
else
{ value;}
使用以上表达式便可控制开始和结束时间。
timeToStart = 循环开始时间
timeToStop = 循环结束时间
其中加粗画横线的循环表达式是可以替换的,可以替换成以上任意一类型循环表达式。
因为loopOut的循环特性,所以开始时间在loopOut中为特例,
无论设为什么,他都是以循环动画的第一帧关键帧的时间为准。
loopIn相反,结束时间是最后一帧关键帧控制。
它也可以套用在其他类型的表达式上,而且为了方便可以链接用滑块控制数值。
这些以后有空写教程再讲。
教程完毕。
备注:原文链接也是我的另外一个简书账号
原创教程,原创图文,未经本人同意挪用,一律保留追究责任。
网友评论