CN105719330A - 动画曲线的生成方法及装置 - Google Patents

动画曲线的生成方法及装置 Download PDF

Info

Publication number
CN105719330A
CN105719330A CN201410740719.9A CN201410740719A CN105719330A CN 105719330 A CN105719330 A CN 105719330A CN 201410740719 A CN201410740719 A CN 201410740719A CN 105719330 A CN105719330 A CN 105719330A
Authority
CN
China
Prior art keywords
state value
key frame
represent
moment
normalized
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410740719.9A
Other languages
English (en)
Other versions
CN105719330B (zh
Inventor
罗琦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Beijing Co Ltd
Original Assignee
Tencent Technology Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Beijing Co Ltd filed Critical Tencent Technology Beijing Co Ltd
Priority to CN201410740719.9A priority Critical patent/CN105719330B/zh
Publication of CN105719330A publication Critical patent/CN105719330A/zh
Application granted granted Critical
Publication of CN105719330B publication Critical patent/CN105719330B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Processing Or Creating Images (AREA)

Abstract

本发明公开了一种动画曲线的生成方法及装置。其中,该方法包括:动画曲线的生成方法,其特征在于,包括:获取目标动画的起始时刻和终止时刻、所述目标动画的起始关键帧的状态值以及所述目标动画的终止关键帧的状态值;根据所述起始关键帧的状态值和所述终止关键帧的状态值,得到所述目标动画在所述起始时刻到所述终止时刻的范围内的各个时刻上的状态值;根据所述各个时刻上的状态值生成所述目标动画的动画曲线;在屏幕中显示所述动画曲线。本发明解决了由于二维、三维等复杂动画曲线需要依靠设计人员逐帧标注所造成的动画曲线生成效率较低的技术问题。

Description

动画曲线的生成方法及装置
技术领域
本发明涉及图像处理领域,具体而言,涉及一种动画曲线的生成方法及装置。
背景技术
随着动画产业的迅速发展,人们对动画的喜爱也随之增加。在将静态画面变为活动画面的过程中,需要依靠动画曲线来进行处理。现有技术中,对于简单的动画曲线,例如一维的动画曲线,可以通过线性差值计算获得。
然而,对于复杂的动画曲线,例如二维、三维的动画曲线,则需要靠设计人员逐帧标注获得,因此,获得二维,三维等复杂动画曲线需要消耗花费大量的时间,降低了动画曲线的生成效率。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种动画曲线的生成方法及装置,以至少解决由于二维、三维等复杂动画曲线需要依靠设计人员逐帧标注所造成的动画曲线生成效率较低的技术问题。
根据本发明实施例的一个方面,提供了一种动画曲线的生成方法,包括:获取目标动画的起始时刻和终止时刻、所述目标动画的起始关键帧的状态值以及所述目标动画的终止关键帧的状态值;根据所述起始关键帧的状态值和所述终止关键帧的状态值,得到所述目标动画在所述起始时刻到所述终止时刻的范围内的各个时刻上的状态值;根据所述各个时刻上的状态值生成所述目标动画的动画曲线;在屏幕中显示所述动画曲线。
根据本发明实施例的另一方面,还提供了一种动画曲线的生成装置,包括:获取单元,用于获取目标动画的起始时刻和终止时刻、所述目标动画的起始关键帧的状态值以及所述目标动画的终止关键帧的状态值;计算单元,用于根据所述起始关键帧的状态值和所述终止关键帧的状态值,得到所述目标动画在所述起始时刻到所述终止时刻的范围内的各个时刻上的状态值;生成单元,用于根据所述各个时刻上的状态值生成所述目标动画的动画曲线;显示单元,用于在屏幕中显示所述动画曲线。
在本发明实施例中,采用自动生成动画曲线的方式,通过获取目标动画的起始时刻和终止时刻、目标动画的起始关键帧的状态值以及目标动画的终止关键帧的状态值,根据起始关键帧的状态值和终止关键帧的状态值,得到目标动画在起始时刻到终止时刻的范围内的各个时刻上的状态值,进而根据各个时刻上的状态值生成目标动画的动画曲线,达到了自动生成动画曲线的目的,从而实现了消耗生产力低,生产效率高的技术效果,进而解决了由于二维、三维等复杂动画曲线需要依靠设计人员逐帧标注所造成的动画曲线生成效率较低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的动画曲线的生成方法的应用场景示意图;
图2是根据本发明实施例的一种可选的动画曲线的生成方法的流程示意图;
图3是根据本发明实施例的另一种可选的动画曲线的生成方法的流程示意图;
图4是根据本发明实施例的一种可选的动画曲线的示意图;
图5是根据本发明实施例的另一种可选的动画曲线的示意图;
图6是根据本发明实施例的另一种可选的动画曲线的示意图;
图7是根据本发明实施例的另一种可选的动画曲线的示意图;
图8是根据本发明实施例的另一种可选的动画曲线的示意图;
图9是根据本发明实施例的另一种可选的动画曲线的示意图;
图10是根据本发明实施例的另一种可选的动画曲线的示意图;
图11是根据本发明实施例的另一种可选的动画曲线的示意图;
图12是根据本发明实施例的另一种可选的动画曲线的示意图;
图13是根据本发明实施例的另一种可选的动画曲线的示意图;
图14是根据本发明实施例的另一种可选的动画曲线的示意图;
图15是根据本发明实施例的另一种可选的动画曲线的示意图;
图16是根据本发明实施例的另一种可选的动画曲线的示意图;
图17是根据本发明实施例的另一种可选的动画曲线的示意图;
图18是根据本发明实施例的另一种可选的动画曲线的示意图;
图19是根据本发明实施例的另一种可选的动画曲线的示意图;
图20是根据本发明实施例的一种可选的“微视”客户端显示界面示意图;
图21是根据本发明实施例的另一种可选的“微视”客户端显示界面示意图;
图22是根据本发明实施例的一种可选的动画曲线的生成装置结构示意图;
图23是根据本发明实施例的另一种可选的动画曲线的生成装置结构示意图;
图24是根据本发明实施例的另一种可选的动画曲线的生成装置结构示意图示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种动画曲线的生成方法,在本实施例中,上述动画曲线的生成方法可以应用于如图1所示的设置有动画曲线生成工具的终端102的硬件环境中。如图1所示,终端102可以但不限于包括以下之一:手机、平板电脑。终端102的动画曲线生成工具在生成动画曲线时,可以根据目标动画的起始时刻和终止时刻、目标动画的起始关键帧的状态值以及目标动画的终止关键帧的状态值,生成目标动画的动画曲线。
根据本发明实施例,提供了一种动画曲线的生成方法,如图2所示,该方法包括:
S202:获取目标动画的起始时刻和终止时刻、目标动画的起始关键帧的状态值以及目标动画的终止关键帧的状态值;
S204:根据起始关键帧的状态值和终止关键帧的状态值,得到目标动画在起始时刻到终止时刻的范围内的各个时刻上的状态值;
S206:根据各个时刻上的状态值生成目标动画的动画曲线;
S208:在屏幕中显示动画曲线。
需要说明的是,本发明实施例的动画曲线可以是一维的动画曲线,也可以是二维、三维等复杂的动画曲线,本发明实施例对此不做限制。
在上述环境下,根据本发明实施例提供的动画曲线的生成方法,在步骤S202中,需要获取目标动画的起始时刻和终止时刻、目标动画的起始关键帧的状态值以及目标动画的终止关键帧的状态值。
在本发明实施例中,关键帧,是指目标动画开始的第一帧以及目标动画结束的最后一帧;目标动画的起始时刻,是指目标动画开始的第一帧所对应的时刻;目标动画的终止时刻,是指目标动画结束的最后一帧所对应的时刻;状态值,可以为物体的长度、宽度、高度以及透明度等,例如,目标动画改变了物体的长度、宽度、高度以及透明度,则认为该目标动画的状态值有4种,分别是物体的长度,宽度,高度,透明度;动画值,是指每一帧目标动画改变的一种状态值v以及动画帧时间t组成的值p(t,v);动画曲线,是指以状态值v为纵坐标,目标动画每一帧的时间t为横坐标t所生成的一系列动画值p(t,v)所组成的曲线。
可选地,动画曲线的生成装置可以接收设计人员输入的目标动画的持续时间,根据该目标动画的持续时间,确定目标动画的起始时刻和终止时刻。例如,设计人员输入的目标动画的持续时间为5s,动画曲线的生成装置可以根据该5s确定目标动画的起始时刻为0s、目标动画的终止时刻为5s。
可选地,目标动画的起始关键帧的状态值以及目标动画的终止关键帧的状态值可以是设计人员输入至动画曲线的生成装置的,例如,设计人员想要将图片A的透明度从不透明变为透明,则可以输入目标动画的起始关键帧的状态值V0为1,目标动画的终止关键帧的状态值V1为0。
在上述环境下,根据本发明实施例提供的动画曲线的生成方法,在步骤S204中,可以根据起始关键帧的状态值和终止关键帧的状态值,得到目标动画在起始时刻到终止时刻的范围内的各个时刻上的状态值。进而,在步骤S206中,根据各个时刻上的状态值生成目标动画的动画曲线。
在本发明实施例中,在获取目标动画的起始时刻和终止时刻、目标动画的起始关键帧的状态值以及目标动画的终止关键帧的状态值之后,可以根据上述各个参数得到目标动画在起始时刻到终止时刻的范围内的各个时刻上的状态值。例如可选的,如图3所示,在步骤S204之前,还包括:
S302:对在起始时刻到终止时刻范围内的各个时刻进行归一化处理。
可选地,根据起始关键帧的状态值和终止关键帧的状态值,得到目标动画在起始时刻到终止时刻的范围内的各个时刻上的状态值,包括:根据起始关键帧的状态值、终止关键帧的状态值以及归一化处理后的各个时刻,得到目标动画在各个时刻上的状态值。
其中,归一化是一种无量纲处理手段,使物理***数值的绝对值变成某种相对值关系,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为标亮。例如,在目标动画的起始时刻为0s到目标动画的终止时刻为5s的范围内,对第3秒进行归一化处理后的值为3/5=0.6。
在第一种可能的实现方式中,根据起始关键帧的状态值、终止关键帧的状态值以及归一化处理后的各个时刻,得到目标动画在各个时刻上的状态值,包括:
通过公式V=V0+T×(V1-V0)计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
例如,目标动画的起始关键帧的状态值V0=1,目标动画的终止关键帧的状态值V1=0,T为将对在起始时刻0s到终止时刻5s范围内的各个时刻进行归一化处理后的时刻,那么例如:
当T=0/5=0时,V=1+0×(0-1)=1;
当T=1/5=0.2时,V=1+0.2×(0-1)=0.8;
当T=2/5=0.4时,V=1+0.4×(0-1)=0.6;
当T=3/5=0.6时,V=1+0.6×(0-1)=0.4;
当T=4/5=0.8时,V=1+0.8×(0-1)=0.2;
当T=5/5=1时,V=1+1×(0-1)=0。
以此类推,得到各个时刻上的状态值,进而根据各个时刻上的状态值生成如图4所示的动画曲线。对于目标动画而言,图片A的透明度在0s到5s之间从不透明匀速变为透明。
其中,上述第一种可能的实现方式为线性插值算法。
在第二种可能的实现方式中,根据起始关键帧的状态值、终止关键帧的状态值以及归一化处理后的各个时刻,得到目标动画在各个时刻上的状态值,包括:
通过公式V=(V1-V0)×T×T+V0计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
例如,目标动画的起始关键帧的状态值V0=1,目标动画的终止关键帧的状态值V1=0,T为将对在起始时刻0s到终止时刻5s范围内的各个时刻进行归一化处理后的时刻,那么例如:
当T=0/5=0时,V=(0-1)×0×0+1=1;
当T=1/5=0.2时,V=(0-1)×0.2×0.2+1=0.96;
当T=2/5=0.4时,V=(0-1)×0.4×0.4+1=0.84;
当T=3/5=0.6时,V=(0-1)×0.6×0.6+1=0.64;
当T=4/5=0.8时,V=(0-1)×0.8×0.8+1=0.36;
当T=5/5=1时,V=(0-1)×1×1+1=0。
以此类推,得到各个时刻上的状态值,进而根据各个时刻上的状态值生成如图5所示的动画曲线。对于目标动画而言,图片A的透明度在0s到5s之间从不透明逐渐加快变为透明。
在第三种可能的实现方式中,根据起始关键帧的状态值、终止关键帧的状态值以及归一化处理后的各个时刻,得到目标动画在各个时刻上的状态值,包括:
通过公式V=-(V1-V0)×T×(T-2)+V0计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
例如,目标动画的起始关键帧的状态值V0=1,目标动画的终止关键帧的状态值V1=0,T为将对在起始时刻0s到终止时刻5s范围内的各个时刻进行归一化处理后的时刻,那么例如:
当T=0/5=0时,V=-(0-1)×0×(0-2)+1=1;
当T=1/5=0.2时,V=-(0-1)×0.2×(0.2-2)+1=0.64;
当T=2/5=0.4时,V=-(0-1)×0.4×(0.4-2)+1=0.36;
当T=3/5=0.6时,V=-(0-1)×0.6×(0.6-2)+1=0.16;
当T=4/5=0.8时,V=-(0-1)×0.8×(0.8-2)+1=0.04;
当T=5/5=1时,V=-(0-1)×1×(1-2)+1=0。
以此类推,得到各个时刻上的状态值,进而根据各个时刻上的状态值生成如图6所示的动画曲线。对于目标动画而言,图片A的透明度在0s到5s之间从不透明逐渐减慢变为透明。
在第四种可能的实现方式中,根据起始关键帧的状态值、终止关键帧的状态值以及归一化处理后的各个时刻,得到目标动画在各个时刻上的状态值,包括:
通过公式 V = ( V 1 - V 0 ) / 2 &times; 2 T &times; 2 T + V 0 T < 0.5 V = - ( V 1 - V 0 ) / 2 &times; [ ( 2 T - 1 ) &times; ( 2 T - 3 ) - 1 ] + V 0 T &GreaterEqual; 0.5 计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
例如,目标动画的起始关键帧的状态值V0=1,目标动画的终止关键帧的状态值V1=0,T为将对在起始时刻0s到终止时刻5s范围内的各个时刻进行归一化处理后的时刻,那么例如:
当T=0/5=0时,V=(0-1)/2×2×0×2×0+1=1;
当T=1/5=0.2时,V=(0-1)/2×2×0.2×2×0.2+1=0.92;
当T=2/5=0.4时,V=(0-1)/2×2×0.4×2×0.4+1=0.68;
当T=3/5=0.6时,V=-(0-1)/2×[(2×0.6-1)×(2×0.6-3)-1]+1=0.32;
当T=4/5=0.8时,V=-(0-1)/2×[(2×0.8-1)×(2×0.8-3)-1]+1=0.08;
当T=5/5=1时,V=-(0-1)/2×[(2×1-1)×(2×1-3)-1]+1=0。
以此类推,得到各个时刻上的状态值,进而根据各个时刻上的状态值生成如图7所示的动画曲线。对于目标动画而言,图片A的透明度在0s到5s之间从不透明由慢到快再到慢变为透明。
其中,上述第二种可能的实现方式至上述第四种可能的实现方式为二次方插值算法。
在第五种可能的实现方式中,根据起始关键帧的状态值、终止关键帧的状态值以及归一化处理后的各个时刻,得到目标动画在各个时刻上的状态值,包括:
通过公式V=(V1-V0)×T×T×T+V0计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
例如,目标动画的起始关键帧的状态值V0=1,目标动画的终止关键帧的状态值V1=0,T为将对在起始时刻0s到终止时刻5s范围内的各个时刻进行归一化处理后的时刻,那么例如:
当T=0/5=0时,V=(0-1)×0×0×0+1=1;
当T=1/5=0.2时,V=(0-1)×0.2×0.2×0.2+1=0.992;
当T=2/5=0.4时,V=(0-1)×0.4×0.4×0.4+1=0.936;
当T=3/5=0.6时,V=(0-1)×0.6×0.6×0.6+1=0.784;
当T=4/5=0.8时,V=(0-1)×0.8×0.8×0.8+1=0.488;
当T=5/5=1时,V=(0-1)×1×1×1+1=0。
以此类推,得到各个时刻上的状态值,进而根据各个时刻上的状态值生成如图8所示的动画曲线。对于目标动画而言,图片A的透明度在0s到5s之间从不透明逐渐加快变为透明。
在第六种可能的实现方式中,根据起始关键帧的状态值、终止关键帧的状态值以及归一化处理后的各个时刻,得到目标动画在各个时刻上的状态值,包括:
通过公式V=(V1-V0)×[(T-1)×(T-1)×(T-1)+1]+V0计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
例如,目标动画的起始关键帧的状态值V0=1,目标动画的终止关键帧的状态值V1=0,T为将对在起始时刻0s到终止时刻5s范围内的各个时刻进行归一化处理后的时刻,那么例如:
当T=0/5=0时,V=(0-1)×[(0-1)×(0-1)×(0-1)+1]+1=1;
当T=1/5=0.2时,V=(0-1)×[(0.2-1)×(0.2-1)×(0.2-1)+1]+1=0.512;
当T=2/5=0.4时,V=(0-1)×[(0.4-1)×(0.4-1)×(0.4-1)+1]+1=0.216;
当T=3/5=0.6时,V=(0-1)×[(0.6-1)×(0.6-1)×(0.6-1)+1]+1=0.064;
当T=4/5=0.8时,V=(0-1)×[(0.8-1)×(0.8-1)×(0.8-1)+1]+1=0.008;
当T=5/5=1时,V=(0-1)×[(1-1)×(1-1)×(1-1)+1]+1=0。
以此类推,得到各个时刻上的状态值,进而根据各个时刻上的状态值生成如图9所示的动画曲线。对于目标动画而言,图片A的透明度在0s到5s之间从不透明逐渐减慢变为透明。
在第七种可能的实现方式中,根据起始关键帧的状态值、终止关键帧的状态值以及归一化处理后的各个时刻,得到目标动画在各个时刻上的状态值,包括:
通过公式 V = ( V 1 - V 0 ) / 2 &times; 2 T &times; 2 T &times; 2 T + V 0 T < 0.5 V = ( V 1 - V 0 ) / 2 &times; [ ( 2 T - 2 ) &times; ( 2 T - 2 ) &times; ( 2 T - 2 ) + 2 ] + V 0 T &GreaterEqual; 0.5 计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
例如,目标动画的起始关键帧的状态值V0=1,目标动画的终止关键帧的状态值V1=0,T为将对在起始时刻0s到终止时刻5s范围内的各个时刻进行归一化处理后的时刻,那么例如:
当T=0/5=0时,V=(0-1)/2×2×0×2×0×2×0+1=1;
当T=1/5=0.2时,V=(0-1)/2×2×0.2×2×0.2×2×0.2+1=0.968;
当T=2/5=0.4时,V=(0-1)/2×2×0.4×2×0.4×2×0.4+1=0.744;
当T=3/5=0.6时,V=(0-1)/2×[(2×0.6-2)×(2×0.6-2)×(2×0.6-2)+2]+1=0.256;
当T=4/5=0.8时,V=(0-1)/2×[(2×0.8-2)×(2×0.8-2)×(2×0.8-2)+2]+1=0.032;
当T=5/5=1时,V=(0-1)/2×[(2×1-2)×(2×1-2)×(2×1-2)+2]+1=0。
以此类推,得到各个时刻上的状态值,进而根据各个时刻上的状态值生成如图10所示的动画曲线。对于目标动画而言,图片A的透明度在0s到5s之间从不透明由慢到快再到慢变为透明。
其中,上述第五种可能的实现方式至上述第七种可能的实现方式为三次方插值算法。
与上述方法类似的,在第八种可能的实现方式中,根据起始关键帧的状态值、终止关键帧的状态值以及归一化处理后的各个时刻,得到目标动画在各个时刻上的状态值,包括:
通过公式V=(V1-V0)×T×T×T×T+V0计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
根据该公式得到各个时刻上的状态值,进而根据各个时刻上的状态值生成如图11所示的动画曲线。对于目标动画而言,图片A的透明度在0s到5s之间从不透明逐渐加快变为透明。
与上述方法类似的,在第九种可能的实现方式中,根据起始关键帧的状态值、终止关键帧的状态值以及归一化处理后的各个时刻,得到目标动画在各个时刻上的状态值,包括:
通过公式V=-(V0-V1)×[(T-1)×(T-1)×(T-1)×(T-1)-1]+V0计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
根据该公式得到各个时刻上的状态值,进而根据各个时刻上的状态值生成如图12所示的动画曲线。对于目标动画而言,图片A的透明度在0s到5s之间从不透明逐渐减慢变为透明。
与上述方法类似的,在第十种可能的实现方式中,根据起始关键帧的状态值、终止关键帧的状态值以及归一化处理后的各个时刻,得到目标动画在各个时刻上的状态值,包括:
通过公式 V = ( V 1 - V 0 ) / 2 &times; 2 T &times; 2 T &times; 2 T &times; 2 T + V 0 T < 0.5 V = - ( V 1 - V 0 ) / 2 &times; [ ( 2 T - 2 ) &times; ( 2 T - 2 ) &times; ( 2 T - 2 ) &times; ( 2 T - 2 ) - 2 ] + V 0 T &GreaterEqual; 0.5 计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
根据该公式得到各个时刻上的状态值,进而根据各个时刻上的状态值生成如图13所示的动画曲线。对于目标动画而言,图片A的透明度在0s到5s之间从不透明由慢到快再到慢变为透明。
与上述方法类似的,在第十一种可能的实现方式中,根据起始关键帧的状态值、终止关键帧的状态值以及归一化处理后的各个时刻,得到目标动画在各个时刻上的状态值,包括:
通过公式V=-(V1-V0)×cos[T/1×(π/2)]+(V1-V0)+V0计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
根据该公式得到各个时刻上的状态值,进而根据各个时刻上的状态值生成如图14所示的动画曲线。对于目标动画而言,图片A的透明度在0s到5s之间从不透明逐渐加快变为透明。
与上述方法类似的,在第十二种可能的实现方式中,根据起始关键帧的状态值、终止关键帧的状态值以及归一化处理后的各个时刻,得到目标动画在各个时刻上的状态值,包括:
通过公式V=(V1-V0)×sin[T/1×(π/2)]+V0计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
根据该公式得到各个时刻上的状态值,进而根据各个时刻上的状态值生成如图15所示的动画曲线。对于目标动画而言,图片A的透明度在0s到5s之间从不透明逐渐减慢变为透明。
与上述方法类似的,在第十三种可能的实现方式中,根据起始关键帧的状态值、终止关键帧的状态值以及归一化处理后的各个时刻,得到目标动画在各个时刻上的状态值,包括:
通过公式V=-(V1-V0)/2×[cos(π×2T/1)-1]+V0计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
根据该公式得到各个时刻上的状态值,进而根据各个时刻上的状态值生成如图16所示的动画曲线。对于目标动画而言,图片A的透明度在0s到5s之间从不透明按照动画曲线变为透明。
与上述方法类似的,在第十四种可能的实现方式中,根据起始关键帧的状态值、终止关键帧的状态值以及归一化处理后的各个时刻,得到目标动画在各个时刻上的状态值,包括:
通过公式V=(V1-V0)×pow[2,10×(T/1-1)]+V0计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
根据该公式得到各个时刻上的状态值,进而根据各个时刻上的状态值生成如图17所示的动画曲线。对于目标动画而言,图片A的透明度在0s到5s之间从不透明按照动画曲线变为透明。
与上述方法类似的,在第十五种可能的实现方式中,根据起始关键帧的状态值、终止关键帧的状态值以及归一化处理后的各个时刻,得到目标动画在各个时刻上的状态值,包括:
通过公式V=(V1-V0)×[pow(2,-10×T/1)+1)]+V0计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
根据该公式得到各个时刻上的状态值,进而根据各个时刻上的状态值生成如图18所示的动画曲线。对于目标动画而言,图片A的透明度在0s到5s之间从不透明按照动画曲线变为透明。
与上述方法类似的,在第十六种可能的实现方式中,根据起始关键帧的状态值、终止关键帧的状态值以及归一化处理后的各个时刻,得到目标动画在各个时刻上的状态值,包括:
通过公式 V = ( V 1 - V 0 ) / 2 &times; pow [ 2,10 &times; ( 2 T - 1 ) ] + V 0 T < 0.5 V = ( V 1 - V 0 ) / 2 &times; { pow [ 2 , - 10 &times; ( 2 T - 1 ) ] + 2 } + V 0 T &GreaterEqual; 0.5 计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
根据该公式得到各个时刻上的状态值,进而根据各个时刻上的状态值生成如图19所示的动画曲线。对于目标动画而言,图片A的透明度在0s到5s之间从不透明按照动画曲线变为透明。
需要说明的是,在上述的各种可能的实现方式中,sin(x)是指C语言Math(数学)库中定义的函数,用来求给定值的正弦值,其原型为:doublesin(doublex);cos(x)是指C语言Math库中定义的函数,用来求给定值的余弦值,其原型为:doublecos(doublex);pow(x,y)是指C语言Math库中定义的函数,用来求x的y次幂,其原型为:doublepow(doublex,doubley),其中,x,y表示变量。
上述的动画曲线的生成方法,可以应用于用来制作动画特效的客户端中,该客户端可以运用不同的动画曲线,对图像、视频等进行处理,形成特定的动画效果。例如,“微视”客户端可以用来制作动感影集,如图20所示,在点击“动感影集”按钮后,用户可以选择用来制作动感影集的照片,进而跳转到如图21所示的具有动画特效的动感影集显示界面,以“沙滩”效果为例,在“沙滩”效果中,每张照片都随海滩中的相框运动而运动,所以每张照片需要一个改变位置的动画,那么就可以采用上述第二种可能的实现方式中的二次方插值算法,即先慢速运动然后速度逐渐加快,以形成所需的动画效果。当然,不同的场景可以由设计人员选择合适的动画曲线,本发明实施例对此不做限制。
可选地,在步骤S204之后,方法可以还包括:
S1:将各个时刻上的状态值以json格式存储。
具体地,本发明实施例的动画曲线的生成装置可以将各个时刻上的状态值以json格式存成文件,其格式可以为{“value”:[V0,…,V1],“keytimes”:[T0,…,T1]},方便设计人员直接应用到目标动画中。
在上述环境下,根据本发明实施例提供的动画曲线的生成方法,在步骤S208中,可以在屏幕中显示动画曲线。
上述实施例中,均以改变图片A的透明度为例,对生成动画曲线的方法进行了示例性说明,而对于其它状态值,例如长度、宽度、高度及位置等,均可以采用上述方法,此处不再赘述。
在本发明实施例中,采用自动生成动画曲线的方式,通过获取目标动画的起始时刻和终止时刻、目标动画的起始关键帧的状态值以及目标动画的终止关键帧的状态值,根据起始关键帧的状态值和终止关键帧的状态值,得到目标动画在起始时刻到终止时刻的范围内的各个时刻上的状态值,进而根据各个时刻上的状态值生成目标动画的动画曲线,达到了多种插值算法,自动生成动画曲线,方便设计人员快速实现复杂动画的目的,从而跟现有技术中设计人员所有帧都标注相比,实现了自动化,消耗生产力低,极大提高生产效率的技术效果,进而解决了由于二维、三维等复杂动画曲线需要依靠设计人员逐帧标注所造成的动画曲线生成效率较低的技术问题。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
实施例2
根据本发明实施例,提供了一种动画曲线的生成装置,在本实施例中,上述动画曲线的生成装置可以应用于如图1所示的设置有动画曲线生成工具的终端102的硬件环境中。如图1所示,终端102可以但不限于包括以下之一:手机、平板电脑。终端102的动画曲线生成工具在生成动画曲线时,可以根据目标动画的起始时刻和终止时刻、目标动画的起始关键帧的状态值以及目标动画的终止关键帧的状态值,生成目标动画的动画曲线。
根据本发明实施例,还提供了一种用于实施上述动画曲线的生成方法的动画曲线的生成装置,如图22所示,该装置包括:
获取单元2002,用于获取目标动画的起始时刻和终止时刻、目标动画的起始关键帧的状态值以及目标动画的终止关键帧的状态值;
计算单元2004,用于根据起始关键帧的状态值和终止关键帧的状态值,得到目标动画在起始时刻到终止时刻的范围内的各个时刻上的状态值;
生成单元2006,用于根据各个时刻上的状态值生成目标动画的动画曲线;
显示单元2008,用于在屏幕中显示动画曲线。
需要说明的是,本发明实施例的动画曲线可以是一维的动画曲线,也可以是二维、三维等复杂的动画曲线,本发明实施例对此不做限制。
在本发明实施例中,关键帧,是指目标动画开始的第一帧以及目标动画结束的最后一帧;目标动画的起始时刻,是指目标动画开始的第一帧所对应的时刻;目标动画的终止时刻,是指目标动画结束的最后一帧所对应的时刻;状态值,可以为物体的长度、宽度、高度以及透明度等,例如,目标动画改变了物体的长度、宽度、高度以及透明度,则认为该目标动画的状态值有4种,分别是物体的长度,宽度,高度,透明度;动画值,是指每一帧目标动画改变的一种状态值v以及动画帧时间t组成的值p(t,v);动画曲线,是指以状态值v为纵坐标,目标动画每一帧的时间t为横坐标t所生成的一系列动画值p(t,v)所组成的曲线。
可选地,动画曲线的生成装置可以接收设计人员输入的目标动画的持续时间,根据该目标动画的持续时间,确定目标动画的起始时刻和终止时刻。例如,设计人员输入的目标动画的持续时间为5s,动画曲线的生成装置可以根据该5s确定目标动画的起始时刻为0s、目标动画的终止时刻为5s。
可选地,目标动画的起始关键帧的状态值以及目标动画的终止关键帧的状态值可以是设计人员输入至动画曲线的生成装置的,例如,设计人员想要将图片A的透明度从不透明变为透明,则可以输入目标动画的起始关键帧的状态值V0为1,目标动画的终止关键帧的状态值V1为0。
在本发明实施例中,在获取目标动画的起始时刻和终止时刻、目标动画的起始关键帧的状态值以及目标动画的终止关键帧的状态值之后,可以根据上述各个参数得到目标动画在起始时刻到终止时刻的范围内的各个时刻上的状态值。例如可选的,如图23所示,该装置还包括:
处理单元2102,用于对在起始时刻到终止时刻范围内的各个时刻进行归一化处理;
其中,计算单元2004用于执行以下步骤以实现根据起始关键帧的状态值和终止关键帧的状态值,得到目标动画在起始时刻到终止时刻的范围内的各个时刻上的状态值:根据起始关键帧的状态值、终止关键帧的状态值以及归一化处理后的各个时刻,得到目标动画在各个时刻上的状态值。
其中,归一化是一种无量纲处理手段,使物理***数值的绝对值变成某种相对值关系,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为标亮。例如,在目标动画的起始时刻为0s到目标动画的终止时刻为5s的范围内,对第3秒进行归一化处理后的值为3/5=0.6。
可选地,计算单元2004用于执行以下步骤以实现根据起始关键帧的状态值、终止关键帧的状态值以及归一化处理后的各个时刻,得到目标动画在各个时刻上的状态值:通过公式V=V0+T×(V1-V0)计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
例如,目标动画的起始关键帧的状态值V0=1,目标动画的终止关键帧的状态值V1=0,T为将对在起始时刻0s到终止时刻5s范围内的各个时刻进行归一化处理后的时刻,那么例如:
当T=0/5=0时,V=1+0×(0-1)=1;
当T=1/5=0.2时,V=1+0.2×(0-1)=0.8;
当T=2/5=0.4时,V=1+0.4×(0-1)=0.6;
当T=3/5=0.6时,V=1+0.6×(0-1)=0.4;
当T=4/5=0.8时,V=1+0.8×(0-1)=0.2;
当T=5/5=1时,V=1+1×(0-1)=0。
以此类推,得到各个时刻上的状态值,进而根据各个时刻上的状态值生成如图4所示的动画曲线。对于目标动画而言,图片A的透明度在0s到5s之间从不透明匀速变为透明。
可选地,计算单元2004用于执行以下步骤以实现根据起始关键帧的状态值、终止关键帧的状态值以及归一化处理后的各个时刻,得到目标动画在各个时刻上的状态值:通过公式V=(V1-V0)×T×T+V0计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
例如,目标动画的起始关键帧的状态值V0=1,目标动画的终止关键帧的状态值V1=0,T为将对在起始时刻0s到终止时刻5s范围内的各个时刻进行归一化处理后的时刻,那么例如:
当T=0/5=0时,V=(0-1)×0×0+1=1;
当T=1/5=0.2时,V=(0-1)×0.2×0.2+1=0.96;
当T=2/5=0.4时,V=(0-1)×0.4×0.4+1=0.84;
当T=3/5=0.6时,V=(0-1)×0.6×0.6+1=0.64;
当T=4/5=0.8时,V=(0-1)×0.8×0.8+1=0.36;
当T=5/5=1时,V=(0-1)×1×1+1=0。
以此类推,得到各个时刻上的状态值,进而根据各个时刻上的状态值生成如图5所示的动画曲线。对于目标动画而言,图片A的透明度在0s到5s之间从不透明逐渐加快变为透明。
可选地,计算单元2004用于执行以下步骤以实现根据起始关键帧的状态值、终止关键帧的状态值以及归一化处理后的各个时刻,得到目标动画在各个时刻上的状态值:通过公式V=-(V1-V0)×T×(T-2)+V0计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
例如,目标动画的起始关键帧的状态值V0=1,目标动画的终止关键帧的状态值V1=0,T为将对在起始时刻0s到终止时刻5s范围内的各个时刻进行归一化处理后的时刻,那么例如:
当T=0/5=0时,V=-(0-1)×0×(0-2)+1=1;
当T=1/5=0.2时,V=-(0-1)×0.2×(0.2-2)+1=0.64;
当T=2/5=0.4时,V=-(0-1)×0.4×(0.4-2)+1=0.36;
当T=3/5=0.6时,V=-(0-1)×0.6×(0.6-2)+1=0.16;
当T=4/5=0.8时,V=-(0-1)×0.8×(0.8-2)+1=0.04;
当T=5/5=1时,V=-(0-1)×1×(1-2)+1=0。
以此类推,得到各个时刻上的状态值,进而根据各个时刻上的状态值生成如图6所示的动画曲线。对于目标动画而言,图片A的透明度在0s到5s之间从不透明逐渐减慢变为透明。
可选地,计算单元2004用于执行以下步骤以实现根据起始关键帧的状态值、终止关键帧的状态值以及归一化处理后的各个时刻,得到目标动画在各个时刻上的状态值:通过公式 V = ( V 1 - V 0 ) / 2 &times; 2 T &times; 2 T + V 0 T < 0.5 V = - ( V 1 - V 0 ) / 2 &times; [ ( 2 T - 1 ) &times; ( 2 T - 3 ) - 1 ] + V 0 T &GreaterEqual; 0.5 计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
例如,目标动画的起始关键帧的状态值V0=1,目标动画的终止关键帧的状态值V1=0,T为将对在起始时刻0s到终止时刻5s范围内的各个时刻进行归一化处理后的时刻,那么例如:
当T=0/5=0时,V=(0-1)/2×2×0×2×0+1=1;
当T=1/5=0.2时,V=(0-1)/2×2×0.2×2×0.2+1=0.92;
当T=2/5=0.4时,V=(0-1)/2×2×0.4×2×0.4+1=0.68;
当T=3/5=0.6时,V=-(0-1)/2×[(2×0.6-1)×(2×0.6-3)-1]+1=0.32;
当T=4/5=0.8时,V=-(0-1)/2×[(2×0.8-1)×(2×0.8-3)-1]+1=0.08;
当T=5/5=1时,V=-(0-1)/2×[(2×1-1)×(2×1-3)-1]+1=0。
以此类推,得到各个时刻上的状态值,进而根据各个时刻上的状态值生成如图7所示的动画曲线。对于目标动画而言,图片A的透明度在0s到5s之间从不透明由慢到快再到慢变为透明。
可选地,计算单元2004用于执行以下步骤以实现根据起始关键帧的状态值、终止关键帧的状态值以及归一化处理后的各个时刻,得到目标动画在各个时刻上的状态值:通过公式V=(V1-V0)×T×T×T+V0计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
例如,目标动画的起始关键帧的状态值V0=1,目标动画的终止关键帧的状态值V1=0,T为将对在起始时刻0s到终止时刻5s范围内的各个时刻进行归一化处理后的时刻,那么例如:
当T=0/5=0时,V=(0-1)×0×0×0+1=1;
当T=1/5=0.2时,V=(0-1)×0.2×0.2×0.2+1=0.992;
当T=2/5=0.4时,V=(0-1)×0.4×0.4×0.4+1=0.936;
当T=3/5=0.6时,V=(0-1)×0.6×0.6×0.6+1=0.784;
当T=4/5=0.8时,V=(0-1)×0.8×0.8×0.8+1=0.488;
当T=5/5=1时,V=(0-1)×1×1×1+1=0。
以此类推,得到各个时刻上的状态值,进而根据各个时刻上的状态值生成如图8所示的动画曲线。对于目标动画而言,图片A的透明度在0s到5s之间从不透明逐渐加快变为透明。
可选地,计算单元2004用于执行以下步骤以实现根据起始关键帧的状态值、终止关键帧的状态值以及归一化处理后的各个时刻,得到目标动画在各个时刻上的状态值:通过公式V=(V1-V0)×[(T-1)×(T-1)×(T-1)+1]+V0计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
例如,目标动画的起始关键帧的状态值V0=1,目标动画的终止关键帧的状态值V1=0,T为将对在起始时刻0s到终止时刻5s范围内的各个时刻进行归一化处理后的时刻,那么例如:
当T=0/5=0时,V=(0-1)×[(0-1)×(0-1)×(0-1)+1]+1=1;
当T=1/5=0.2时,V=(0-1)×[(0.2-1)×(0.2-1)×(0.2-1)+1]+1=0.512;
当T=2/5=0.4时,V=(0-1)×[(0.4-1)×(0.4-1)×(0.4-1)+1]+1=0.216;
当T=3/5=0.6时,V=(0-1)×[(0.6-1)×(0.6-1)×(0.6-1)+1]+1=0.064;
当T=4/5=0.8时,V=(0-1)×[(0.8-1)×(0.8-1)×(0.8-1)+1]+1=0.008;
当T=5/5=1时,V=(0-1)×[(1-1)×(1-1)×(1-1)+1]+1=0。
以此类推,得到各个时刻上的状态值,进而根据各个时刻上的状态值生成如图9所示的动画曲线。对于目标动画而言,图片A的透明度在0s到5s之间从不透明逐渐减慢变为透明。
可选地,计算单元用于执行以下步骤以实现根据起始关键帧的状态值、终止关键帧的状态值以及归一化处理后的各个时刻,得到目标动画在各个时刻上的状态值:通过公式 V = ( V 1 - V 0 ) / 2 &times; 2 T &times; 2 T &times; 2 T + V 0 T < 0.5 V = ( V 1 - V 0 ) / 2 &times; [ ( 2 T - 2 ) &times; ( 2 T - 2 ) &times; ( 2 T - 2 ) + 2 ] + V 0 T &GreaterEqual; 0.5 计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
例如,目标动画的起始关键帧的状态值V0=1,目标动画的终止关键帧的状态值V1=0,T为将对在起始时刻0s到终止时刻5s范围内的各个时刻进行归一化处理后的时刻,那么例如:
当T=0/5=0时,V=(0-1)/2×2×0×2×0×2×0+1=1;
当T=1/5=0.2时,V=(0-1)/2×2×0.2×2×0.2×2×0.2+1=0.968;
当T=2/5=0.4时,V=(0-1)/2×2×0.4×2×0.4×2×0.4+1=0.744;
当T=3/5=0.6时,V=(0-1)/2×[(2×0.6-2)×(2×0.6-2)×(2×0.6-2)+2]+1=0.256;
当T=4/5=0.8时,V=(0-1)/2×[(2×0.8-2)×(2×0.8-2)×(2×0.8-2)+2]+1=0.032;
当T=5/5=1时,V=(0-1)/2×[(2×1-2)×(2×1-2)×(2×1-2)+2]+1=0。
以此类推,得到各个时刻上的状态值,进而根据各个时刻上的状态值生成如图10所示的动画曲线。对于目标动画而言,图片A的透明度在0s到5s之间从不透明由慢到快再到慢变为透明。
可选地,计算单元2004用于执行以下步骤以实现根据起始关键帧的状态值、终止关键帧的状态值以及归一化处理后的各个时刻,得到目标动画在各个时刻上的状态值:通过公式V=(V1-V0)×T×T×T×T+V0计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
根据该公式得到各个时刻上的状态值,进而根据各个时刻上的状态值生成如图11所示的动画曲线。对于目标动画而言,图片A的透明度在0s到5s之间从不透明逐渐加快变为透明。
可选地,计算单元2004用于执行以下步骤以实现根据起始关键帧的状态值、终止关键帧的状态值以及归一化处理后的各个时刻,得到目标动画在各个时刻上的状态值:通过公式V=-(V0-V1)×[(T-1)×(T-1)×(T-1)×(T-1)-1]+V0计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
根据该公式得到各个时刻上的状态值,进而根据各个时刻上的状态值生成如图12所示的动画曲线。对于目标动画而言,图片A的透明度在0s到5s之间从不透明逐渐减慢变为透明。
可选地,计算单元用于执行以下步骤以实现根据起始关键帧的状态值、终止关键帧的状态值以及归一化处理后的各个时刻,得到目标动画在各个时刻上的状态值:通过公式 V = ( V 1 - V 0 ) / 2 &times; 2 T &times; 2 T &times; 2 T &times; 2 T + V 0 T < 0.5 V = - ( V 1 - V 0 ) / 2 &times; [ ( 2 T - 2 ) &times; ( 2 T - 2 ) &times; ( 2 T - 2 ) &times; ( 2 T - 2 ) - 2 ] + V 0 T &GreaterEqual; 0.5 计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
根据该公式得到各个时刻上的状态值,进而根据各个时刻上的状态值生成如图13所示的动画曲线。对于目标动画而言,图片A的透明度在0s到5s之间从不透明由慢到快再到慢变为透明。
可选地,计算单元2004用于执行以下步骤以实现根据起始关键帧的状态值、终止关键帧的状态值以及归一化处理后的各个时刻,得到目标动画在各个时刻上的状态值:通过公式V=-(V1-V0)×cos[T/1×(π/2)]+(V1-V0)+V0计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
根据该公式得到各个时刻上的状态值,进而根据各个时刻上的状态值生成如图14所示的动画曲线。对于目标动画而言,图片A的透明度在0s到5s之间从不透明逐渐加快变为透明。
可选地,计算单元2004用于执行以下步骤以实现根据起始关键帧的状态值、终止关键帧的状态值以及归一化处理后的各个时刻,得到目标动画在各个时刻上的状态值:通过公式V=(V1-V0)×sin[T/1×(π/2)]+V0计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
根据该公式得到各个时刻上的状态值,进而根据各个时刻上的状态值生成如图15所示的动画曲线。对于目标动画而言,图片A的透明度在0s到5s之间从不透明逐渐减慢变为透明。
可选地,计算单元2004用于执行以下步骤以实现根据起始关键帧的状态值、终止关键帧的状态值以及归一化处理后的各个时刻,得到目标动画在各个时刻上的状态值:通过公式V=-(V1-V0)/2×[cos(π×2T/1)-1]+V0计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
根据该公式得到各个时刻上的状态值,进而根据各个时刻上的状态值生成如图16所示的动画曲线。对于目标动画而言,图片A的透明度在0s到5s之间从不透明按照动画曲线变为透明。
可选地,计算单元2004用于执行以下步骤以实现根据起始关键帧的状态值、终止关键帧的状态值以及归一化处理后的各个时刻,得到目标动画在各个时刻上的状态值:通过公式V=(V1-V0)×pow[2,10×(T/1-1)]+V0计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
根据该公式得到各个时刻上的状态值,进而根据各个时刻上的状态值生成如图17所示的动画曲线。对于目标动画而言,图片A的透明度在0s到5s之间从不透明按照动画曲线变为透明。
可选地,计算单元2004用于执行以下步骤以实现根据起始关键帧的状态值、终止关键帧的状态值以及归一化处理后的各个时刻,得到目标动画在各个时刻上的状态值:通过公式V=(V1-V0)×[pow(2,-10×T/1)+1)]+V0计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
根据该公式得到各个时刻上的状态值,进而根据各个时刻上的状态值生成如图18所示的动画曲线。对于目标动画而言,图片A的透明度在0s到5s之间从不透明按照动画曲线变为透明。
可选地,计算单元2004用于执行以下步骤以实现根据起始关键帧的状态值、终止关键帧的状态值以及归一化处理后的各个时刻,得到目标动画在各个时刻上的状态值:通过公式 V = ( V 1 - V 0 ) / 2 &times; pow [ 2,10 &times; ( 2 T - 1 ) ] + V 0 T < 0.5 V = ( V 1 - V 0 ) / 2 &times; { pow [ 2 , - 10 &times; ( 2 T - 1 ) ] + 2 } + V 0 T &GreaterEqual; 0.5 计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
根据该公式得到各个时刻上的状态值,进而根据各个时刻上的状态值生成如图19所示的动画曲线。对于目标动画而言,图片A的透明度在0s到5s之间从不透明按照动画曲线变为透明。
需要说明的是,在上述的各种可能的实现方式中,sin(x)是指C语言Math(数学)库中定义的函数,用来求给定值的正弦值,其原型为:doublesin(doublex);cos(x)是指C语言Math库中定义的函数,用来求给定值的余弦值,其原型为:doublecos(doublex);pow(x,y)是指C语言Math库中定义的函数,用来求x的y次幂,其原型为:doublepow(doublex,doubley),其中,x,y表示变量。
可选地,如图24所示,本发明实施例的动画曲线的生成装置还包括:
存储单元2202,用于将各个时刻上的状态值以json格式存储。
具体地,本发明实施例的动画曲线的生成装置可以将各个时刻上的状态值以json格式存成文件,其格式可以为{“value”:[V0,…,V1],“keytimes”:[T0,…,T1]},其中,keytimes表示各个时刻,value表示各个时刻上的状态值,方便设计人员直接应用到目标动画中。
在本发明实施例中,采用自动生成动画曲线的方式,通过获取目标动画的起始时刻和终止时刻、目标动画的起始关键帧的状态值以及目标动画的终止关键帧的状态值,根据起始关键帧的状态值和终止关键帧的状态值,得到目标动画在起始时刻到终止时刻的范围内的各个时刻上的状态值,进而根据各个时刻上的状态值生成目标动画的动画曲线,达到了多种插值算法,自动生成动画曲线,方便设计人员快速实现复杂动画的目的,从而跟现有技术中设计人员所有帧都标注相比,实现了自动化,消耗生产力低,极大提高生产效率的技术效果,进而解决了由于二维、三维等复杂动画曲线需要依靠设计人员逐帧标注所造成的动画曲线生成效率较低的技术问题。
实施例3
根据本发明实施例,还提供了一种用于实施上述动画曲线的生成方法的终端,上述终端可以应用于如图1所示的硬件环境中。
如图1所示,终端102可以但不限于包括以下之一:手机、平板电脑。终端102的动画曲线生成工具在生成动画曲线时,可以根据目标动画的起始时刻和终止时刻、目标动画的起始关键帧的状态值以及目标动画的终止关键帧的状态值,生成目标动画的动画曲线。
可选地,在本实施例中,上述终端包括:
1)存储器,被设置为存储目标动画的起始时刻和终止时刻、目标动画的起始关键帧的状态值以及目标动画的终止关键帧的状态值;
2)处理器,被设置为获取目标动画的起始时刻和终止时刻、目标动画的起始关键帧的状态值以及目标动画的终止关键帧的状态值;根据起始关键帧的状态值和终止关键帧的状态值,得到目标动画在起始时刻到终止时刻的范围内的各个时刻上的状态值;根据各个时刻上的状态值生成目标动画的动画曲线;在屏幕中显示动画曲线。
可选地,在本实施例中,上述存储器还可以用于存储上述实施例1中的确定过程中所存储的其他数据。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。
实施例4
本发明的实施例还提供了一种存储介质,上述存储介质可以应用于如图1所示的硬件环境中。
如图1所示,终端102可以但不限于包括以下之一:手机、平板电脑。终端102的动画曲线生成工具在生成动画曲线时,可以根据目标动画的起始时刻和终止时刻、目标动画的起始关键帧的状态值以及目标动画的终止关键帧的状态值,生成目标动画的动画曲线。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,获取目标动画的起始时刻和终止时刻、目标动画的起始关键帧的状态值以及目标动画的终止关键帧的状态值;
S2,根据起始关键帧的状态值和终止关键帧的状态值,得到目标动画在起始时刻到终止时刻的范围内的各个时刻上的状态值;
S3,根据各个时刻上的状态值生成目标动画的动画曲线;
S4,在屏幕中显示动画曲线。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S1,对在起始时刻到终止时刻范围内的各个时刻进行归一化处理。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S1,根据起始关键帧的状态值、终止关键帧的状态值以及归一化处理后的各个时刻,得到目标动画在各个时刻上的状态值。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S1,通过公式V=V0+T×(V1-V0)计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S1,通过公式V=(V1-V0)×T×T+V0计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S1,通过公式V=-(V1-V0)×T×(T-2)+V0计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S1,通过公式 V = ( V 1 - V 0 ) / 2 &times; 2 T &times; 2 T + V 0 T < 0.5 V = - ( V 1 - V 0 ) / 2 &times; [ ( 2 T - 1 ) &times; ( 2 T - 3 ) - 1 ] + V 0 T &GreaterEqual; 0.5 计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S1,通过公式V=(V1-V0)×T×T×T+V0计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S1,通过公式V=(V1-V0)×[(T-1)×(T-1)×(T-1)+1]+V0计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S1,通过公式 V = ( V 1 - V 0 ) / 2 &times; 2 T &times; 2 T &times; 2 T + V 0 T < 0.5 V = ( V 1 - V 0 ) / 2 &times; [ ( 2 T - 2 ) &times; ( 2 T - 2 ) &times; ( 2 T - 2 ) + 2 ] + V 0 T &GreaterEqual; 0.5 计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S1,通过公式V=(V1-V0)×T×T×T×T+V0计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S1,通过公式V=-(V0-V1)×[(T-1)×(T-1)×(T-1)×(T-1)-1]+V0计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S1,通过公式 V = ( V 1 - V 0 ) / 2 &times; 2 T &times; 2 T &times; 2 T &times; 2 T + V 0 T < 0.5 V = - ( V 1 - V 0 ) / 2 &times; [ ( 2 T - 2 ) &times; ( 2 T - 2 ) &times; ( 2 T - 2 ) &times; ( 2 T - 2 ) - 2 ] + V 0 T &GreaterEqual; 0.5 计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S1,通过公式V=-(V1-V0)×cos[T/1×(π/2)]+(V1-V0)+V0计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S1,通过公式V=(V1-V0)×sin[T/1×(π/2)]+V0计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S1,通过公式V=-(V1-V0)/2×[cos(π×2T/1)-1]+V0计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S1,通过公式V=(V1-V0)×pow[2,10×(T/1-1)]+V0计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S1,通过公式V=(V1-V0)×[pow(2,-10×T/1)+1)]+V0计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S1,通过公式 V = ( V 1 - V 0 ) / 2 &times; pow [ 2,10 &times; ( 2 T - 1 ) ] + V 0 T < 0.5 V = ( V 1 - V 0 ) / 2 &times; { pow [ 2 , - 10 &times; ( 2 T - 1 ) ] + 2 } + V 0 T &GreaterEqual; 0.5 计算各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示起始关键帧的状态值,V1表示终止关键帧的状态值。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S1,将各个时刻上的状态值以json格式存储。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (18)

1.一种动画曲线的生成方法,其特征在于,包括:
获取目标动画的起始时刻和终止时刻、所述目标动画的起始关键帧的状态值以及所述目标动画的终止关键帧的状态值;
根据所述起始关键帧的状态值和所述终止关键帧的状态值,得到所述目标动画在所述起始时刻到所述终止时刻的范围内的各个时刻上的状态值;
根据所述各个时刻上的状态值生成所述目标动画的动画曲线;
在屏幕中显示所述动画曲线。
2.根据权利要求1所述的方法,其特征在于,所述根据所述起始关键帧的状态值和所述终止关键帧的状态值,得到所述目标动画在所述起始时刻到所述终止时刻的范围内的各个时刻上的状态值之前,所述方法还包括:
对所述在所述起始时刻到所述终止时刻范围内的各个时刻进行归一化处理;
其中,所述根据所述起始关键帧的状态值和所述终止关键帧的状态值,得到所述目标动画在所述起始时刻到所述终止时刻的范围内的各个时刻上的状态值,包括:根据所述起始关键帧的状态值、所述终止关键帧的状态值以及归一化处理后的各个时刻,得到所述目标动画在所述各个时刻上的状态值。
3.根据权利要求2所述的方法,其特征在于,所述根据所述起始关键帧的状态值、所述终止关键帧的状态值以及归一化处理后的各个时刻,得到所述目标动画在所述各个时刻上的状态值,包括:
通过公式V=V0+T×(V1-V0)计算所述各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示所述起始关键帧的状态值,V1表示所述终止关键帧的状态值。
4.根据权利要求2所述的方法,其特征在于,所述根据所述起始关键帧的状态值、所述终止关键帧的状态值以及归一化处理后的各个时刻,得到所述目标动画在所述各个时刻上的状态值,包括:
通过公式V=(V1-V0)×T×T+V0计算所述各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示所述起始关键帧的状态值,V1表示所述终止关键帧的状态值;或者,
通过公式V=-(V1-V0)×T×(T-2)+V0计算所述各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示所述起始关键帧的状态值,V1表示所述终止关键帧的状态值;或者,
通过公式 V = ( V 1 - V 0 ) / 2 &times; 2 T &times; 2 T + V 0 T < 0.5 V = - ( V 1 - V 0 ) / 2 &times; [ ( 2 T - 1 ) &times; ( 2 T - 3 ) - 1 ] + V 0 T &GreaterEqual; 0.5 计算所述各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示所述起始关键帧的状态值,V1表示所述终止关键帧的状态值。
5.根据权利要求2所述的方法,其特征在于,所述根据所述起始关键帧的状态值、所述终止关键帧的状态值以及归一化处理后的各个时刻,得到所述目标动画在所述各个时刻上的状态值,包括:
通过公式V=(V1-V0)×T×T×T+V0计算所述各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示所述起始关键帧的状态值,V1表示所述终止关键帧的状态值;或者,
通过公式V=(V1-V0)×[(T-1)×(T-1)×(T-1)+1]+V0计算所述各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示所述起始关键帧的状态值,V1表示所述终止关键帧的状态值;或者,
通过公式 V = ( V 1 - V 0 ) / 2 &times; 2 T &times; 2 T &times; 2 T + V 0 T < 0.5 V = ( V 1 - V 0 ) / 2 &times; [ ( 2 T - 2 ) &times; ( 2 T - 2 ) &times; ( 2 T - 2 ) + 2 ] + V 0 T &GreaterEqual; 0.5 计算所述各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示所述起始关键帧的状态值,V1表示所述终止关键帧的状态值。
6.根据权利要求2所述的方法,其特征在于,所述根据所述起始关键帧的状态值、所述终止关键帧的状态值以及归一化处理后的各个时刻,得到所述目标动画在所述各个时刻上的状态值,包括:
通过公式V=(V1-V0)×T×T×T×T+V0计算所述各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示所述起始关键帧的状态值,V1表示所述终止关键帧的状态值;或者,
通过公式V=-(V0-V1)×[(T-1)×(T-1)×(T-1)×(T-1)-1]+V0计算所述各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示所述起始关键帧的状态值,V1表示所述终止关键帧的状态值;或者,
通过公式 V = ( V 1 - V 0 ) / 2 &times; 2 T &times; 2 T &times; 2 T &times; 2 T + V 0 T < 0.5 V = - ( V 1 - V 0 ) / 2 &times; [ ( 2 T - 2 ) &times; ( 2 T - 2 ) &times; ( 2 T - 2 ) &times; ( 2 T - 2 ) - 2 ] + V 0 T &GreaterEqual; 0.5 计算所述各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示所述起始关键帧的状态值,V1表示所述终止关键帧的状态值。
7.根据权利要求2所述的方法,其特征在于,所述根据所述起始关键帧的状态值、所述终止关键帧的状态值以及归一化处理后的各个时刻,得到所述目标动画在所述各个时刻上的状态值,包括:
通过公式V=-(V1-V0)×cos[T/1×(π/2)]+(V1-V0)+V0计算所述各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示所述起始关键帧的状态值,V1表示所述终止关键帧的状态值;或者,
通过公式V=(V1-V0)×sin[T/1×(π/2)]+V0计算所述各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示所述起始关键帧的状态值,V1表示所述终止关键帧的状态值;或者,
通过公式V=-(V1-V0)/2×[cos(π×2T/1)-1]+V0计算所述各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示所述起始关键帧的状态值,V1表示所述终止关键帧的状态值。
8.根据权利要求2所述的方法,其特征在于,所述根据所述起始关键帧的状态值、所述终止关键帧的状态值以及归一化处理后的各个时刻,得到所述目标动画在所述各个时刻上的状态值,包括:
通过公式V=(V1-V0)×pow[2,10×(T/1-1)]+V0计算所述各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示所述起始关键帧的状态值,V1表示所述终止关键帧的状态值;或者,
通过公式V=(V1-V0)×[pow(2,-10×T/1)+1)]+V0计算所述各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示所述起始关键帧的状态值,V1表示所述终止关键帧的状态值;或者,
通过公式 V = ( V 1 - V 0 ) / 2 &times; pow [ 2,10 &times; ( 2 T - 1 ) ] + V 0 T < 0.5 V = ( V 1 - V 0 ) / 2 &times; { pow [ 2 , - 10 &times; ( 2 T - 1 ) ] + 2 } + V 0 T &GreaterEqual; 0.5 计算所述各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示所述起始关键帧的状态值,V1表示所述终止关键帧的状态值。
9.根据权利要求1至8中任一项所述的方法,其特征在于,所述根据所述起始关键帧的状态值和所述终止关键帧的状态值,得到所述目标动画在所述起始时刻到所述终止时刻的范围内的各个时刻上的状态值之后,所述方法还包括:
将所述各个时刻上的状态值以json格式存储。
10.一种动画曲线的生成装置,其特征在于,包括:
获取单元,用于获取目标动画的起始时刻和终止时刻、所述目标动画的起始关键帧的状态值以及所述目标动画的终止关键帧的状态值;
计算单元,用于根据所述起始关键帧的状态值和所述终止关键帧的状态值,得到所述目标动画在所述起始时刻到所述终止时刻的范围内的各个时刻上的状态值;
生成单元,用于根据所述各个时刻上的状态值生成所述目标动画的动画曲线;
显示单元,用于在屏幕中显示所述动画曲线。
11.根据权利要求10所述的装置,其特征在于,还包括:
处理单元,用于对所述在所述起始时刻到所述终止时刻范围内的各个时刻进行归一化处理;
其中,所述计算单元用于执行以下步骤以实现根据所述起始关键帧的状态值和所述终止关键帧的状态值,得到所述目标动画在所述起始时刻到所述终止时刻的范围内的各个时刻上的状态值:根据所述起始关键帧的状态值、所述终止关键帧的状态值以及归一化处理后的各个时刻,得到所述目标动画在所述各个时刻上的状态值。
12.根据权利要求11所述的装置,其特征在于,所述计算单元用于执行以下步骤以实现根据所述起始关键帧的状态值、所述终止关键帧的状态值以及归一化处理后的各个时刻,得到所述目标动画在所述各个时刻上的状态值:通过公式V=V0+T×(V1-V0)计算所述各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示所述起始关键帧的状态值,V1表示所述终止关键帧的状态值。
13.根据权利要求11所述的装置,其特征在于,
所述计算单元用于执行以下步骤以实现根据所述起始关键帧的状态值、所述终止关键帧的状态值以及归一化处理后的各个时刻,得到所述目标动画在所述各个时刻上的状态值:通过公式V=(V1-V0)×T×T+V0计算所述各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示所述起始关键帧的状态值,V1表示所述终止关键帧的状态值;或者,
所述计算单元用于执行以下步骤以实现根据所述起始关键帧的状态值、所述终止关键帧的状态值以及归一化处理后的各个时刻,得到所述目标动画在所述各个时刻上的状态值:通过公式V=-(V1-V0)×T×(T-2)+V0计算所述各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示所述起始关键帧的状态值,V1表示所述终止关键帧的状态值;或者,
所述计算单元用于执行以下步骤以实现根据所述起始关键帧的状态值、所述终止关键帧的状态值以及归一化处理后的各个时刻,得到所述目标动画在所述各个时刻上的状态值:通过公式 V = ( V 1 - V 0 ) / 2 &times; 2 T &times; 2 T + V 0 T < 0.5 V = - ( V 1 - V 0 ) / 2 &times; [ ( 2 T - 1 ) &times; ( 2 T - 3 ) - 1 ] + V 0 T &GreaterEqual; 0.5 计算所述各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示所述起始关键帧的状态值,V1表示所述终止关键帧的状态值。
14.根据权利要求11所述的装置,其特征在于,
所述计算单元用于执行以下步骤以实现根据所述起始关键帧的状态值、所述终止关键帧的状态值以及归一化处理后的各个时刻,得到所述目标动画在所述各个时刻上的状态值:通过公式V=(V1-V0)×T×T×T+V0计算所述各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示所述起始关键帧的状态值,V1表示所述终止关键帧的状态值;或者,
所述计算单元用于执行以下步骤以实现根据所述起始关键帧的状态值、所述终止关键帧的状态值以及归一化处理后的各个时刻,得到所述目标动画在所述各个时刻上的状态值:通过公式V=(V1-V0)×[(T-1)×(T-1)×(T-1)+1]+V0计算所述各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示所述起始关键帧的状态值,V1表示所述终止关键帧的状态值;或者,
所述计算单元用于执行以下步骤以实现根据所述起始关键帧的状态值、所述终止关键帧的状态值以及归一化处理后的各个时刻,得到所述目标动画在所述各个时刻上的状态值:通过公式 V = ( V 1 - V 0 ) / 2 &times; 2 T &times; 2 T &times; 2 T + V 0 T < 0.5 V = ( V 1 - V 0 ) / 2 &times; [ ( 2 T - 2 ) &times; ( 2 T - 2 ) &times; ( 2 T - 2 ) + 2 ] + V 0 T &GreaterEqual; 0.5 计算所述各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示所述起始关键帧的状态值,V1表示所述终止关键帧的状态值。
15.根据权利要求11所述的装置,其特征在于,
所述计算单元用于执行以下步骤以实现根据所述起始关键帧的状态值、所述终止关键帧的状态值以及归一化处理后的各个时刻,得到所述目标动画在所述各个时刻上的状态值:通过公式V=(V1-V0)×T×T×T×T+V0计算所述各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示所述起始关键帧的状态值,V1表示所述终止关键帧的状态值;或者,
所述计算单元用于执行以下步骤以实现根据所述起始关键帧的状态值、所述终止关键帧的状态值以及归一化处理后的各个时刻,得到所述目标动画在所述各个时刻上的状态值:通过公式V=-(V0-V1)×[(T-1)×(T-1)×(T-1)×(T-1)-1]+V0计算所述各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示所述起始关键帧的状态值,V1表示所述终止关键帧的状态值;或者,
所述计算单元用于执行以下步骤以实现根据所述起始关键帧的状态值、所述终止关键帧的状态值以及归一化处理后的各个时刻,得到所述目标动画在所述各个时刻上的状态值:通过公式 V = ( V 1 - V 0 ) / 2 &times; 2 T &times; 2 T &times; 2 T &times; 2 T + V 0 T < 0.5 V = - ( V 1 - V 0 ) / 2 &times; [ ( 2 T - 2 ) &times; ( 2 T - 2 ) &times; ( 2 T - 2 ) &times; ( 2 T - 2 ) - 2 ] + V 0 T &GreaterEqual; 0.5 计算所述各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示所述起始关键帧的状态值,V1表示所述终止关键帧的状态值。
16.根据权利要求11所述的装置,其特征在于,
所述计算单元用于执行以下步骤以实现根据所述起始关键帧的状态值、所述终止关键帧的状态值以及归一化处理后的各个时刻,得到所述目标动画在所述各个时刻上的状态值:通过公式V=-(V1-V0)×cos[T/1×(π/2)]+(V1-V0)+V0计算所述各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示所述起始关键帧的状态值,V1表示所述终止关键帧的状态值;或者,
所述计算单元用于执行以下步骤以实现根据所述起始关键帧的状态值、所述终止关键帧的状态值以及归一化处理后的各个时刻,得到所述目标动画在所述各个时刻上的状态值:通过公式V=(V1-V0)×sin[T/1×(π/2)]+V0计算所述各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示所述起始关键帧的状态值,V1表示所述终止关键帧的状态值;或者,
所述计算单元用于执行以下步骤以实现根据所述起始关键帧的状态值、所述终止关键帧的状态值以及归一化处理后的各个时刻,得到所述目标动画在所述各个时刻上的状态值:通过公式V=-(V1-V0)/2×[cos(π×2T/1)-1]+V0计算所述各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示所述起始关键帧的状态值,V1表示所述终止关键帧的状态值。
17.根据权利要求11所述的装置,其特征在于,
所述计算单元用于执行以下步骤以实现根据所述起始关键帧的状态值、所述终止关键帧的状态值以及归一化处理后的各个时刻,得到所述目标动画在所述各个时刻上的状态值:通过公式V=(V1-V0)×pow[2,10×(T/1-1)]+V0计算所述各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示所述起始关键帧的状态值,V1表示所述终止关键帧的状态值;或者,
所述计算单元用于执行以下步骤以实现根据所述起始关键帧的状态值、所述终止关键帧的状态值以及归一化处理后的各个时刻,得到所述目标动画在所述各个时刻上的状态值:通过公式V=(V1-V0)×[pow(2,-10×T/1)+1)]+V0计算所述各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示所述起始关键帧的状态值,V1表示所述终止关键帧的状态值;或者,
所述计算单元用于执行以下步骤以实现根据所述起始关键帧的状态值、所述终止关键帧的状态值以及归一化处理后的各个时刻,得到所述目标动画在所述各个时刻上的状态值:通过公式 V = ( V 1 - V 0 ) / 2 &times; pow [ 2,10 &times; ( 2 T - 1 ) ] + V 0 T < 0.5 V = ( V 1 - V 0 ) / 2 &times; { pow [ 2 , - 10 &times; ( 2 T - 1 ) ] + 2 } + V 0 T &GreaterEqual; 0.5 计算所述各个时刻上的状态值,其中,V表示在归一化处理后的时刻T上的状态值,V0表示所述起始关键帧的状态值,V1表示所述终止关键帧的状态值。
18.根据权利要求10至17中任一项所述的装置,其特征在于,还包括:
存储单元,用于将所述各个时刻上的状态值以json格式存储。
CN201410740719.9A 2014-12-05 2014-12-05 动画曲线的生成方法及装置 Active CN105719330B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410740719.9A CN105719330B (zh) 2014-12-05 2014-12-05 动画曲线的生成方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410740719.9A CN105719330B (zh) 2014-12-05 2014-12-05 动画曲线的生成方法及装置

Publications (2)

Publication Number Publication Date
CN105719330A true CN105719330A (zh) 2016-06-29
CN105719330B CN105719330B (zh) 2020-07-28

Family

ID=56144525

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410740719.9A Active CN105719330B (zh) 2014-12-05 2014-12-05 动画曲线的生成方法及装置

Country Status (1)

Country Link
CN (1) CN105719330B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111857812A (zh) * 2020-07-29 2020-10-30 珠海天燕科技有限公司 游戏界面中的动画曲线的迁移方法及装置
CN112634409A (zh) * 2020-12-28 2021-04-09 稿定(厦门)科技有限公司 自定义动画曲线生成方法及装置
CN115131471A (zh) * 2022-08-05 2022-09-30 北京字跳网络技术有限公司 基于图像的动画生成方法、装置、设备及存储介质
CN116894893A (zh) * 2023-09-11 2023-10-17 山东捷瑞数字科技股份有限公司 一种基于三维引擎的非线性动画调控方法和***

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7079144B1 (en) * 1999-02-26 2006-07-18 Sony Corporation Curve generating device and method, and program recorded medium
US20060192783A1 (en) * 2005-01-26 2006-08-31 Pixar Interactive spacetime constraints: wiggly splines
CN101441773A (zh) * 2008-11-11 2009-05-27 宇龙计算机通信科技(深圳)有限公司 一种动画实现方法、***及移动终端
CN102169595A (zh) * 2010-02-26 2011-08-31 新奥特(北京)视频技术有限公司 一种多箭头路径动画实现方法和装置
CN102194245A (zh) * 2010-03-18 2011-09-21 微软公司 诸如弹跳缓动的无状态动画
CN102376100A (zh) * 2010-08-20 2012-03-14 北京盛开互动科技有限公司 基于单张照片的人脸动画方法
CN102682459A (zh) * 2011-03-15 2012-09-19 新奥特(北京)视频技术有限公司 关键帧动画曲线的插值方法
CN102682458A (zh) * 2011-03-15 2012-09-19 新奥特(北京)视频技术有限公司 一种关键帧动画曲线的多特技多参数的同时调节方法
CN102902533A (zh) * 2012-09-17 2013-01-30 乐视网信息技术(北京)股份有限公司 一种Java结合HTML5生成图表的框架展现***及其方法
US20130028400A1 (en) * 2011-07-25 2013-01-31 Pelfunc Incorporated System and method for electronic communication using a voiceover in combination with user interaction events on a selected background
CN103824059A (zh) * 2014-02-28 2014-05-28 东南大学 一种基于视频图像序列的人脸表情识别方法
CN103838842A (zh) * 2014-02-28 2014-06-04 北京奇虎科技有限公司 一种浏览器中加载新标签页的方法和装置
CN104091360A (zh) * 2014-07-28 2014-10-08 周立刚 动感影院生成运动数据的方法与装置

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7079144B1 (en) * 1999-02-26 2006-07-18 Sony Corporation Curve generating device and method, and program recorded medium
US20060192783A1 (en) * 2005-01-26 2006-08-31 Pixar Interactive spacetime constraints: wiggly splines
CN101441773A (zh) * 2008-11-11 2009-05-27 宇龙计算机通信科技(深圳)有限公司 一种动画实现方法、***及移动终端
CN102169595A (zh) * 2010-02-26 2011-08-31 新奥特(北京)视频技术有限公司 一种多箭头路径动画实现方法和装置
CN102194245A (zh) * 2010-03-18 2011-09-21 微软公司 诸如弹跳缓动的无状态动画
CN102376100A (zh) * 2010-08-20 2012-03-14 北京盛开互动科技有限公司 基于单张照片的人脸动画方法
CN102682459A (zh) * 2011-03-15 2012-09-19 新奥特(北京)视频技术有限公司 关键帧动画曲线的插值方法
CN102682458A (zh) * 2011-03-15 2012-09-19 新奥特(北京)视频技术有限公司 一种关键帧动画曲线的多特技多参数的同时调节方法
US20130028400A1 (en) * 2011-07-25 2013-01-31 Pelfunc Incorporated System and method for electronic communication using a voiceover in combination with user interaction events on a selected background
CN102902533A (zh) * 2012-09-17 2013-01-30 乐视网信息技术(北京)股份有限公司 一种Java结合HTML5生成图表的框架展现***及其方法
CN103824059A (zh) * 2014-02-28 2014-05-28 东南大学 一种基于视频图像序列的人脸表情识别方法
CN103838842A (zh) * 2014-02-28 2014-06-04 北京奇虎科技有限公司 一种浏览器中加载新标签页的方法和装置
CN104091360A (zh) * 2014-07-28 2014-10-08 周立刚 动感影院生成运动数据的方法与装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
李丹: "计算机动画中运动生成与控制问题研究", 《中国博士学位论文全文数据库信息科技辑》 *
王颖志: "浅析关键帧动画曲线的应用", 《电视字幕(特效与动画)》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111857812A (zh) * 2020-07-29 2020-10-30 珠海天燕科技有限公司 游戏界面中的动画曲线的迁移方法及装置
CN112634409A (zh) * 2020-12-28 2021-04-09 稿定(厦门)科技有限公司 自定义动画曲线生成方法及装置
CN112634409B (zh) * 2020-12-28 2022-04-19 稿定(厦门)科技有限公司 自定义动画曲线生成方法及装置
WO2022142081A1 (zh) * 2020-12-28 2022-07-07 稿定(厦门)科技有限公司 自定义动画曲线生成方法及装置
CN115131471A (zh) * 2022-08-05 2022-09-30 北京字跳网络技术有限公司 基于图像的动画生成方法、装置、设备及存储介质
CN116894893A (zh) * 2023-09-11 2023-10-17 山东捷瑞数字科技股份有限公司 一种基于三维引擎的非线性动画调控方法和***

Also Published As

Publication number Publication date
CN105719330B (zh) 2020-07-28

Similar Documents

Publication Publication Date Title
CN104038705B (zh) 视频制作方法和装置
CN110400575A (zh) 通道间特征提取方法、音频分离方法和装置、计算设备
CN107578367B (zh) 一种风格化图像的生成方法及装置
CN103051915B (zh) 一种交互式立体视频关键帧的制作方法及制作装置
CN111027438B (zh) 一种人体姿态的迁移方法、移动终端以及计算机存储介质
Zhu et al. Neural saliency algorithm guide bi‐directional visual perception style transfer
CN105719330A (zh) 动画曲线的生成方法及装置
CN111583379A (zh) 虚拟模型的渲染方法、装置、存储介质与电子设备
CN109242934A (zh) 一种动画代码的生成方法及设备
CN105264604A (zh) 经由密集运动域向底层视频序列的图像编辑传播
CN106934851B (zh) 一种手机扫描人像3d打印方法及***
US11361189B2 (en) Image generation method and computing device
CN103020908B (zh) 图像降噪的方法和设备
CN108961268B (zh) 一种显著图计算方法及相关装置
CN109522532B (zh) 一种折线图框选范围的计算方法及装置
CN102479387A (zh) 生成多媒体动画与播放该多媒体动画的方法和装置
CN111158840B (zh) 图像轮播方法及装置
CN104899900A (zh) 移动终端生成分格漫画图像的方法和***
CN105938500B (zh) 产生漫画内容的设备和方法以及显示漫画内容的设备
CN116737133A (zh) 布局生成方法、设计稿布局生成方法及装置
CN112070852A (zh) 图像的生成方法和***、数据处理方法
CN113867605B (zh) 画布操作回退方法、装置及计算机设备及存储介质
CN105573746A (zh) 一种控件属性处理方法及装置
CN105354295B (zh) 三维动态标绘点标号的动态展示装置和方法
CN104572598A (zh) 数字出版物的排版方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant