在Psuedocode中,如果我有对象,我希望以非线性方式转换,基于从0到1的某个delta范围。
如何应用Ease in / Ease out等概念?
基本上我希望对象能够慢慢开始制作动画但开始加速直到达到delta = 1的所需位置。
所以是一个对数动画。
例如:
Delta = Delta* function(x)
object.transform = Do Something with the Delta.
答案 0 :(得分:1)
假设您将动画分为N
个等时的T
,Delta = (t - t0)/T
。
如果您进行线性速度转换,则应在N * Delta
时选择第t
帧。
要轻松进入/轻松,您希望在开始和结束时更慢地交换帧,在中间更快地交换帧。
您可以手动编写速度函数或使用具有适当行为的内容。 sin
是一个可以为您工作的功能。您需要对其进行缩放,因为它在-1
范围内从+1
变为-PI/2
到PI/2
。
frame_number(t) = (int) (N * 0.5*(1 + sin(PI*(Delta-0.5)))