掌桥专利:专业的专利平台
掌桥专利
首页

动画生成方法、装置、电子设备及存储介质

文献发布时间:2024-04-18 20:02:40


动画生成方法、装置、电子设备及存储介质

技术领域

本公开涉及数据处理技术领域,尤其涉及一种动画生成方法、装置、电子设备及存储介质。

背景技术

在游戏开发领域,物体运动是最常见的表现,物体运动时可对应有相应的运动轨迹。相关技术中,一般都是由程序开发人员在代码中直接写好对应的运动轨迹;这种方式只能解决简单的运动方式,如直线、抛物线等,对于更复杂的运动轨迹,则显得心有余而力不足;而对于复杂的轨迹,所实现的轨迹效果往往后也达不到美术要求。因此,亟需一种能够按照美术要求实现运动效果并且各场景通用的动画生成技术方案。

发明内容

本公开提供一种动画生成方法、装置、电子设备及存储介质,以至少解决相关技术中在生成动画时,不能够按照美术要求实现运动效果并且各场景不通用的问题。本公开的技术方案如下:

根据本公开实施例的第一方面,提供一种动画生成方法,包括:

获取目标对象的动作文件;所述动作文件中包括目标对象的目标动作信息,以及所述目标动作信息对应的目标骨骼的骨骼运动数据;所述目标骨骼为所述目标对象包括的骨骼;

基于所述目标骨骼的骨骼运动数据进行数据提取,得到所述目标骨骼在多个动作点的骨骼属性数据;所述多个动作点基于所述目标动作信息中的动作先后顺序确定;

对于任意两个相邻的动作点,基于所述目标骨骼在后一动作点的骨骼属性数据与所述目标骨骼在前一动作点的骨骼属性数据进行比较,得到相邻动作点比较结果;

在所述相邻动作点比较结果表征所述任意两个相邻的动作点对应的骨骼属性数据不一致的情况下,基于所述目标骨骼在所述后一动作点的骨骼属性数据生成关键帧数据;

基于所述关键帧数据生成关键帧文件;所述关键帧文件用于联合目标动画对象生成目标动画。

在一示例性实施例中,所述基于所述目标骨骼的骨骼运动数据进行数据提取,得到所述目标骨骼在多个动作点的骨骼属性数据,包括:

从所述目标骨骼中确定出与所述目标动作信息相关联的关键骨骼;

提取所述关键骨骼在所述多个动作点的骨骼属性数据。

在一示例性实施例中,所述基于所述目标骨骼的骨骼运动数据进行数据提取,得到所述目标骨骼在多个动作点的骨骼属性数据,包括:

基于所述目标骨骼的骨骼运动数据进行运动维度分析,确定所述目标骨骼的骨骼运动数据对应的多个运动维度;

提取所述目标骨骼在所述多个动作点分别对应的多个运动维度的骨骼属性数据;

将所述多个动作点分别对应的多个运动维度的骨骼属性数据,确定为所述目标骨骼在多个动作点的骨骼属性数据。

在一示例性实施例中,所述在所述相邻动作点比较结果表征所述任意两个相邻的动作点对应的骨骼属性数据不一致的情况下,基于所述目标骨骼在所述后一动作点的骨骼属性数据生成关键帧数据,包括:

在所述相邻动作点比较结果表征所述前一动作点与所述后一动作点在至少一个运动维度的骨骼属性数据不一致的情况下,基于所述目标骨骼在所述后一动作点的骨骼属性数据生成所述关键帧数据。

在一示例性实施例中,所述关键帧文件包括与多个关键动作点对应的帧数据;

所述基于所述关键帧数据生成关键帧文件之后,所述方法还包括:

基于所述多个关键动作点对应的帧数据以及所述目标动画对象,生成与所述多个关键动作点分别对应的目标动画帧;

基于所述多个目标动画帧进行插帧处理,生成所述目标动画。

在一示例性实施例中,所述方法还包括:

确定所述目标动作信息的动作持续时长;

基于所述动作持续时长确定多个动作点;每个动作点对应所述动作持续时长中的一个时间点。

在一示例性实施例中,所述关键帧文件包括与多个关键动作点对应的帧数据;

所述基于所述关键帧数据生成关键帧文件之后,所述方法还包括:

基于所述多个关键动作点对应的帧数据以及所述目标动画对象,生成与所述多个关键动作点分别对应的目标动画帧;

在所述目标动画的动画时长以及所述动作持续时长不一致的情况下,基于所述目标动画的动画时长以及所述动作持续时长,确定与所述多个关键动作点分别对应的关键动画点;每个关键动画点为所述动画时长中的一个时间点;多个目标动画帧与多个关键动画点一一对应;

基于所述目标动画的动画帧率、所述多个目标动画帧以及所述多个关键动画点进行插帧处理,生成所述目标动画。

根据本公开实施例的第二方面,提供一种动画生成装置,包括:

动作文件获取单元,被配置为执行获取目标对象的动作文件;所述动作文件中包括目标对象的目标动作信息,以及所述目标动作信息对应的目标骨骼的骨骼运动数据;所述目标骨骼为所述目标对象包括的骨骼;

第一提取单元,被配置为执行基于所述目标骨骼的骨骼运动数据进行数据提取,得到所述目标骨骼在多个动作点的骨骼属性数据;所述多个动作点基于所述目标动作信息中的动作先后顺序确定;

比较单元,被配置为执行对于任意两个相邻的动作点,基于所述目标骨骼在后一动作点的骨骼属性数据与所述目标骨骼在前一动作点的骨骼属性数据进行比较,得到相邻动作点比较结果;

关键帧数据生成单元,被配置为执行在所述相邻动作点比较结果表征所述任意两个相邻的动作点对应的骨骼属性数据不一致的情况下,基于所述目标骨骼在所述后一动作点的骨骼属性数据生成关键帧数据;

关键帧文件生成单元,被配置为执行基于所述关键帧数据生成关键帧文件;所述关键帧文件用于联合目标动画对象生成目标动画。

在一示例性实施例中,所述第一提取单元包括:

关键骨骼确定单元,被配置为执行从所述目标骨骼中确定出与所述目标动作信息相关联的关键骨骼;

第二提取单元,被配置为执行提取所述关键骨骼在所述多个动作点的骨骼属性数据。

在一示例性实施例中,所述第一提取单元包括:

运动维度分析单元,被配置为执行基于所述目标骨骼的骨骼运动数据进行运动维度分析,确定所述目标骨骼的骨骼运动数据对应的多个运动维度;

第三提取单元,被配置为执行提取所述目标骨骼在所述多个动作点分别对应的多个运动维度的骨骼属性数据;

骨骼属性数据确定单元,被配置为执行将所述多个动作点分别对应的多个运动维度的骨骼属性数据,确定为所述目标骨骼在多个动作点的骨骼属性数据。

在一示例性实施例中,所述相邻动作点比较结果包括与所述多个运动维度分别对应的骨骼属性数据比较结果;

所述关键帧数据生成单元包括:

关键帧数据确定单元,被配置为执行在所述相邻动作点比较结果表征所述前一动作点与所述后一动作点在至少一个运动维度的骨骼属性数据不一致的情况下,基于所述目标骨骼在所述后一动作点的骨骼属性数据生成所述关键帧数据。

在一示例性实施例中,所述关键帧文件包括与多个关键动作点对应的帧数据;

所述装置还包括:

第一生成单元,被配置为执行基于所述多个关键动作点对应的帧数据以及所述目标动画对象,生成与所述多个关键动作点分别对应的目标动画帧;

第一插帧单元,被配置为执行基于所述多个目标动画帧进行插帧处理,生成所述目标动画。

在一示例性实施例中,所述装置还包括:

动作持续时长确定单元,被配置为执行确定所述目标动作信息的动作持续时长;

动作点确定单元,被配置为执行基于所述动作持续时长确定多个动作点;每个动作点对应所述动作持续时长中的一个时间点。

在一示例性实施例中,所述关键帧文件包括与多个关键动作点对应的帧数据;

所述装置还包括:

第二生成单元,被配置为执行基于所述多个关键动作点对应的帧数据以及所述目标动画对象,生成与所述多个关键动作点分别对应的目标动画帧;

关键动画点确定单元,被配置为执行在所述目标动画的动画时长以及所述动作持续时长不一致的情况下,基于所述目标动画的动画时长以及所述动作持续时长,确定与所述多个关键动作点分别对应的关键动画点;每个关键动画点为所述动画时长中的一个时间点;多个目标动画帧与多个关键动画点一一对应;

第二插帧单元,被配置为执行基于所述目标动画的动画帧率、所述多个目标动画帧以及所述多个关键动画点进行插帧处理,生成所述目标动画。

根据本公开实施例的第三方面,提供一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如上所述的动画生成方法。

根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由服务器的处理器执行时,使得服务器能够执行如上所述的动画生成方法。

根据本公开实施例的第五方面,提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序存储在可读存储介质中,计算机设备的至少一个处理器从所述可读存储介质读取并执行所述计算机程序,使得设备执行上述的动画生成方法。

本公开的实施例提供的技术方案至少带来以下有益效果:

本公开通过对动作文件中目标动作信息对应的目标骨骼的骨骼运动数据进行数据提取,得到目标骨骼在多个动作点的骨骼属性数据,基于相邻动作点的骨骼属性数据的比较结果,生成关键帧数据;基于关键帧数据生成关键帧文件;通过对动作文件中目标骨骼的骨骼属性数据进行数据提取,能够避免对动作文件中动作数据的遗漏,进而能够避免实际动画效果相对于原始目标动作信息的失真,使得基于关键帧文件生成的目标动画能够实现预设动画效果,提高动画复原的准确性;并且生成的关键帧文件能够被多个场景复用,基于关键帧文件以及应用场景中的目标动画对象即可生成与该应用场景相适配的目标动画,实现了关键帧文件在多场景中的通用。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。

图1是根据一示例性实施例示出的一种实施环境示意图。

图2是根据一示例性实施例示出的一种动画生成方法流程图。

图3是根据一示例性实施例示出的一种基于关键骨骼数据提取的动画生成方法流程图。

图4是根据一示例性实施例示出的一种骨骼属性数据提取方法流程图。

图5是根据一示例性实施例示出的一种基于关键帧文件进行插帧以生成目标动画的方法流程图。

图6是根据一示例性实施例示出的另一种基于关键帧文件进行插帧以生成目标动画的方法流程图。

图7是根据一示例性实施例示出的一种动画生成装置示意图。

图8是根据一示例性实施例示出的一种电子设备结构示意图。

图9是根据一示例性实施例示出的另一种电子设备结构示意图。

具体实施方式

为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。

需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

需要说明的是,本公开所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。

请参阅图1,其示出了本公开实施例提供的实施环境示意图,该实施环境可包括:至少一个用户终端110和动画服务器120,用户终端110和动画服务器120可通过网络进行数据通信。

具体地,动画服务器120处可存储有能够适配与多个场景的关键帧文件;用户终端110可从动画服务器120获取关键帧文件,基于目标场景对应的目标动画对象以及关键帧文件,生成相应的目标动画;并将目标动画上传到动画服务器120中,以使得动画服务器120能够对目标动画进行分发。或,用户终端110本身可存储能够适配与多个场景的关键帧文件,基于目标场景对应的目标动画对象以及目标场景的关键帧文件,生成相应的目标动画;并将目标动画上传到动画服务器120中,以使得动画服务器120能够对目标动画进行分发。

在另一个示例中,用户终端110可向动画服务器120发送动画生成请求,动画生成请求中可包括目标场景对应的目标动画对象,服务器120可基于关键帧文件以及目标动画对象生成与目标场景相适配的目标动画;并可对目标动画进行分发。

在另一个可选实施例中,在生成目标动画之后,可基于目标动画生成相应的目游戏动画,目标动画可以用于表征目标游戏中的一个或者多个游戏对象的运动信息。

用户终端110可以基于浏览器/服务器模式(Browser/Server,B/S)或客户端/服务器模式(Client/Server,C/S)与动画服务器120进行通信。用户终端110可以包括:智能手机、平板电脑、笔记本电脑、数字助理、智能可穿戴设备、车载终端等类型的实体设备,也可以包括运行于实体设备中的软体,例如应用程序等。本公开实施例中的用户终端110上运行的操作系统可以包括但不限于安卓系统、IOS系统、linux、windows等。

动画服务器120与用户终端110可以通过有线或者无线建立通信连接,动画服务器120可以包括一个独立运行的服务器,或者分布式服务器,或者由多个服务器组成的服务器集群,其中服务器可以是云端服务器。

为了解决相关技术中在生成动画时,不能够按照美术要求实现运动效果并且各场景不通用的问题,本公开实施例提供了一种动画生成方法,该方法的执行主体可以为上述的用户终端,也可以为上述的动画服务器;请参阅图2,该方法可包括:

S210.获取目标对象的动作文件;所述动作文件中包括目标对象的目标动作信息,以及所述目标动作信息对应的目标骨骼的骨骼运动数据;所述目标骨骼为所述目标对象包括的骨骼。

目标对象可以是一个虚拟对象,其可能是人物形象、球体或者立方体等,目标对象可至少包括一个目标骨骼。目标对象的动作文件可以为包含目标对象的动作描述信息的文件;目标对象的动作文件可以为美术人员基于目标对象的预设动作信息进行创建得到。

具体地,目标对象的动作文件中可包括目标对象的目标动作信息以及目标动作信息对应的目标骨骼的运动数据,目标动作信息中可包括一种或者多种类型的目标动作的动作信息;本实施例中的目标动作可以包括表征目标对象“飞行”动作、“跳”动作、“跑”动作,“停止”动作等,目标动作信息可通过图像或者文字的形式表现,例如目标动作信息可以包括目标对象“飞行”动作的图像、“跳”动作的图像,“跑”动作的图像,“停止”动作的图像等;或者目标动作信息可以包括目标对象“飞行”动作的文字描述、“跳”动作的文字描述、“跑”动作的文字描述、“停止”动作的文字描述等。

对于不同的目标动作,所涉及的目标骨骼不同并且目标骨骼的骨骼运动数据也不相同;通过骨骼运动数据能够反映目标对象的运动状态信息。目标动作信息对应的目标骨骼的骨骼运动数据可包括目标对象“飞行”动作对应的目标骨骼的骨骼运动数据、“跳”动作对应的目标骨骼的骨骼运动数据、“跑”动作对应的目标骨骼的骨骼运动数据、“停止”动作对应的目标骨骼的骨骼运动数据等。

S220.基于所述目标骨骼的骨骼运动数据进行数据提取,得到所述目标骨骼在多个动作点的骨骼属性数据;所述多个动作点基于所述目标动作信息中的动作先后顺序确定。

动作文件中包括的目标动作信息对应的目标骨骼的骨骼运动数据能够从整体上描述目标对象的运动状态信息;进一步地,可对目标骨骼的骨骼运动数据进行属性数据提取,得到目标骨骼在多个动作点的骨骼属性数据。这里多个动作点可以是基于目标动作信息中目标动作的动作先后顺序确定的;具体地,对于每种类型的目标动作,通过对其进行动作分解,可得到基于时间先后形成的动作序列,即分解得到的动作具有时间先后顺序,从而多个动作点可以看成是不同动作对应的时间点。具体地,多个动作点的确定方法可包括:

确定所述目标动作信息的动作持续时长;

基于所述动作持续时长确定多个动作点;每个动作点对应所述动作持续时长中的一个时间点。

在目标动作信息中包括一个目标动作的动作信息时,动作持续时长为该目标动作的动作持续时长;在目标动作信息中包括多个目标动作的动作信息时,多个目标动作具有先后时间顺序,即可将多个目标动作看成是一个联合动作,动作持续时长即为联合动作的动作持续时长,具体为该多个目标动作各自对应的动作持续时长之和。

在确定了动作持续时长的基础上,可基于预设时间间隔进行动作点确定,即每两个相邻的动作点之间的时间间隔为预设时间间隔,每个动作点对应动作持续时长中的一个时间点;每两个相邻的动作点之间的时间间隔可以相同也可以不同,可基于具体实施场景确定。对于相同的动作持续时长,预设时间间隔越小,相应确定的动作点的数量越多;预设时间间隔越大,相应确定的动作点的数量越小。本实施例中,为了尽可能保留动作文件中的骨骼运动数据,可尽量设置较小的预设时间间隔,以确定较多的动作点。例如,动作持续时长为2s,以预设时间间隔均为0.5s为例,相应确定的多个动作点分别为0.5s,1s,1.5s,2s;相应即可提取目标骨骼在0.5s时的骨骼属性数据,目标骨骼在1s时的骨骼属性数据,目标骨骼在1.5s时的骨骼属性数据,目标骨骼在2s时的骨骼属性数据。

通过基于时间先后顺序进行相应动作点的确定得到多个动作点,实现将整体的骨骼运动数据划分为动作点对应的骨骼运动数据,便于基于动作点进行骨骼运动数据的提取,提高骨骼运动数据提取的便利性。

S230.对于任意两个相邻的动作点,基于所述目标骨骼在后一动作点的骨骼属性数据与所述目标骨骼在前一动作点的骨骼属性数据进行比较,得到相邻动作点比较结果。

对于任意两个相邻的动作点各自对应的骨骼属性数据进行比较,以确定相邻动作点比较结果。相邻动作点比较结果可包括两个相邻动作点的骨骼属性数据一致,或两个相邻动作点的骨骼属性数据不一致;在两个相邻动作点的骨骼属性数据一致的情况下,说明目标动作对应的目标骨骼在这两个相邻动作点之间的运动状态没有变化;在两个相邻动作点的骨骼属性数据不一致的情况下,说明目标动作对应的目标骨骼在这两个相邻动作点之间的运动状态有变化。

S240.在所述相邻动作点比较结果表征所述任意两个相邻的动作点对应的骨骼属性数据不一致的情况下,基于所述目标骨骼在所述后一动作点的骨骼属性数据生成关键帧数据。

在两个相邻动作点的骨骼属性数据不一致的情况下,说明目标动作对应的目标骨骼在这两个相邻动作点之间的运动状态有变化,所以需要体现目标骨骼的运动状态变化,即基于目标骨骼在后一动作点的骨骼属性数据生成关键帧数据。每个动作点对应的关键帧数据可包括目标骨骼、目标骨骼在该动作点的骨骼属性数据以及目标动作在该动作点的动作信息。

S250.基于所述关键帧数据生成关键帧文件;所述关键帧文件用于联合目标动画对象生成目标动画。

在生成与多个动作点对应的关键帧数据之后,可对多个动作点对应的关键帧数据执行文件创建操作,以生成相应的关键帧文件,具体可采用文本编辑器创建文件、采用命令行创建文件等。基于关键帧数据生成关键帧文件,便于关键帧数据的存储以及关键帧数据的调用。生成的关键帧文件中包括了生成动画所需的关键帧数据,没有应用场景的限制,从而关键帧文件可应用于各种场景的动画生成。具体将关键帧文件应用于目标场景时,可联合关键帧文件以及目标场景所需的目标动画对象生成适配于目标场景的目标动画;目标动画对象具体可以是目标场景中所需用到的动画形象,例如可以是人物形象、动物卡通形象等;在游戏场景中,目标动画对象可以为目标游戏中的游戏角色。

本公开通过对动作文件中目标动作信息对应的目标骨骼的骨骼运动数据进行数据提取,得到目标骨骼在多个动作点的骨骼属性数据,基于相邻动作点的骨骼属性数据的比较结果,生成关键帧数据;基于关键帧数据生成关键帧文件;通过对动作文件中目标骨骼的骨骼属性数据进行数据提取,能够避免对动作文件中动作数据的遗漏,进而能够避免实际动画效果相对于原始目标动作信息的失真,使得基于关键帧文件生成的目标动画能够实现预设动画效果,提高动画复原的准确性;并且生成的关键帧文件能够被多个场景复用,基于关键帧文件以及应用场景中的目标动画对象即可生成与该应用场景相适配的目标动画,实现了关键帧文件在多场景中的通用。

在一个具体实施例中,目标对象包括多个目标骨骼且目标骨骼的数量较大,本实施例中可对部分骨骼的骨骼运动数据进行数据提取,具体请参阅图3,其示出了一种基于关键骨骼数据提取的动画生成方法,该方法可包括:

S310.获取目标对象的动作文件;所述动作文件中包括目标对象的目标动作信息,以及所述目标动作信息对应的目标骨骼的骨骼运动数据;所述目标骨骼为所述目标对象包括的骨骼。

目标对象可以是一个虚拟对象,其可能是人物形象、球体或者立方体等,目标对象可至少包括一个目标骨骼。目标对象的动作文件可以为包含目标对象的动作描述信息的文件;目标对象的动作文件可以为美术人员基于目标对象的预设动作信息进行创建得到。

具体地,目标对象的动作文件中可包括目标对象的目标动作信息以及目标动作信息对应的目标骨骼的运动数据,目标动作信息中可包括一种或者多种类型的目标动作的动作信息;本实施例中的目标动作可以包括表征目标对象“飞行”动作、“跳”动作、“跑”动作,“停止”动作等,目标动作信息可通过图像或者文字的形式表现,例如目标动作信息可以包括目标对象“飞行”动作的图像、“跳”动作的图像,“跑”动作的图像,“停止”动作的图像等;或者目标动作信息可以包括目标对象“飞行”动作的文字描述、“跳”动作的文字描述、“跑”动作的文字描述、“停止”动作的文字描述等。

对于不同的目标动作,所涉及的目标骨骼不同并且目标骨骼的骨骼运动数据也不相同;通过骨骼运动数据能够反映目标对象的运动状态信息。目标动作信息对应的目标骨骼的骨骼运动数据可包括目标对象“飞行”动作对应的目标骨骼的骨骼运动数据、“跳”动作对应的目标骨骼的骨骼运动数据、“跑”动作对应的目标骨骼的骨骼运动数据、“停止”动作对应的目标骨骼的骨骼运动数据等。

S320.基于所述目标骨骼的骨骼运动数据进行数据提取,得到所述目标骨骼在多个动作点的骨骼属性数据;所述多个动作点基于所述目标动作信息中的动作先后顺序确定。

动作文件中包括的目标动作信息对应的目标骨骼的骨骼运动数据能够从整体上描述目标对象的运动状态信息;进一步地,可对目标骨骼的骨骼运动数据进行属性数据提取,得到目标骨骼在多个动作点的骨骼属性数据。这里多个动作点可以是基于目标动作信息中目标动作的动作先后顺序确定的;具体地,对于每种类型的目标动作,通过对其进行动作分解,可得到基于时间先后形成的动作序列,即分解得到的动作具有时间先后顺序,从而多个动作点可以看成是不同动作对应的时间点。

具体地,步骤S320中基于所述目标骨骼的骨骼运动数据进行数据提取,得到所述目标骨骼在多个动作点的骨骼属性数据,包括:

S322.从所述目标骨骼中确定出与所述目标动作信息相关联的关键骨骼。

目标对象在做出每个目标动作时,目标对象的多个目标骨骼对该目标动作的关联度可能不同;例如在目标对象做出目标动作1时,在相邻的多个动作点目标骨骼1的骨骼属性数据几乎不变,可说明目标骨骼1与目标动作1的关联度小;在相邻的多个动作点目标骨骼2的骨骼属性数据一直在变化,可说明目标骨骼2与目标动作1的关联度大。关键骨骼与目标动作信息的关联度较大。

对于关键骨骼的确定,可预先基于目标动作的类型与目标骨骼的关联度对应关系,确定出与目标动作对应的关键骨骼;例如动作文件中可包括目标类型的目标动作以及目标骨骼,可基于预设动作与骨骼的关联度对应关系,确定目标对象在做出目标类型的目标动作时,各目标骨骼与目标动作的关联度;并将关联度满足预设关联条件的目标骨骼确定为关键骨骼。

S324.提取所述关键骨骼在所述多个动作点的骨骼属性数据。

从而在确定了关键骨骼的基础上,可提取关键骨骼在多个动作点的骨骼属性数据,并基于关键骨骼在多个动作点的骨骼属性数据,进行后续骨骼属性数据比较、生成关键帧数据以及生成关键帧文件等操作。

通过提取与目标动作相关联的关键骨骼的骨骼属性数据,能够在目标骨骼的数量较大的情况下,降低所需提取的骨骼属性数据的数据量,提高骨骼属性数据的提取效率。

S330.对于任意两个相邻的动作点,基于所述目标骨骼在后一动作点的骨骼属性数据与所述目标骨骼在前一动作点的骨骼属性数据进行比较,得到相邻动作点比较结果。

对于任意两个相邻的动作点各自对应的骨骼属性数据进行比较,以确定相邻动作点比较结果。相邻动作点比较结果可包括两个相邻动作点的骨骼属性数据一致,或两个相邻动作点的骨骼属性数据不一致;在两个相邻动作点的骨骼属性数据一致的情况下,说明目标动作对应的目标骨骼在这两个相邻动作点之间的运动状态没有变化;在两个相邻动作点的骨骼属性数据不一致的情况下,说明目标动作对应的目标骨骼在这两个相邻动作点之间的运动状态有变化。

S340.在所述相邻动作点比较结果表征所述任意两个相邻的动作点对应的骨骼属性数据不一致的情况下,基于所述目标骨骼在所述后一动作点的骨骼属性数据生成关键帧数据。

在两个相邻动作点的骨骼属性数据不一致的情况下,说明目标动作对应的目标骨骼在这两个相邻动作点之间的运动状态有变化,所以需要体现目标骨骼的运动状态变化,即基于目标骨骼在后一动作点的骨骼属性数据生成关键帧数据。每个动作点对应的关键帧数据可包括目标骨骼、目标骨骼在该动作点的骨骼属性数据以及目标动作在该动作点的动作信息。

S350.基于所述关键帧数据生成关键帧文件;所述关键帧文件用于联合目标动画对象生成目标动画。

在生成与多个动作点对应的关键帧数据之后,可对多个动作点对应的关键帧数据执行文件创建操作,以生成相应的关键帧文件,具体可采用文本编辑器创建文件、采用命令行创建文件等。生成的关键帧文件中包括了生成动画所需的关键帧数据,没有应用场景的限制,从而关键帧文件可应用于各种场景的动画生成。具体将关键帧文件应用于目标场景时,可联合关键帧文件以及目标场景所需的目标动画对象生成适配于目标场景的目标动画;目标动画对象具体可以是目标场景中所需用到的动画形象,例如可以是人物形象、动物卡通形象等;在游戏场景中,目标动画对象可以为目标游戏中的游戏角色。

本实施例中的骨骼属性数据包括多个运动维度的骨骼属性数据;具体请参阅图4,其示出了一种骨骼属性数据提取方法,该方法可包括:

S410.基于所述目标骨骼的骨骼运动数据进行运动维度分析,确定所述目标骨骼的骨骼运动数据对应的多个运动维度。

目标骨骼的骨骼运动数据可能是基于多个运动维度的数据组合而成,从而可对目标骨骼的骨骼运动数据进行运动维度分析,确定目标骨骼运动数据对应的多个运动维度。目标骨骼的多个运动维度可包括位置维度、旋转维度、缩放维度等。

S420.提取所述目标骨骼在所述多个动作点分别对应的多个运动维度的骨骼属性数据。

目标骨骼在每个动作点的骨骼属性数据均包括多个运动维度的骨骼属性数据,具体地,对于动作点a,目标骨骼1在动作点a的位置维度的骨骼属性数据可以为:

(position.x:-7.0574,position.y:0.02023,position.z:10.24);

目标骨骼1在动作点a的旋转维度的骨骼属性数据可以为:

(Rotation.x:5.1226e,Rotation.y:-48.567,Rotation.z:90);

目标骨骼1在动作点a的缩放维度的骨骼属性数据可以为:

(Scale.x:1,Scale.y:1,Scale.z:1)。

S430.将所述多个动作点分别对应的多个运动维度的骨骼属性数据,确定为所述目标骨骼在多个动作点的骨骼属性数据。

在提取到目标骨骼在每个动作点分别对应的多个运动维度的骨骼属性数据的基础上,可将每个动作点的多个运动维度的骨骼属性数据确定为在该动作点的骨骼属性数据,进而可确定多个动作点的骨骼属性数据。

本实施例中,通过对目标骨骼的骨骼运动数据进行运动维度分析,以确定目标骨骼对应的多个运动维度,在此基础上,提取目标骨骼在多个运动维度的骨骼属性数据进行分析,能够提高对目标骨骼的骨骼属性数据提取以及分析的全面性。

在目标骨骼的骨骼属性数据包括多个运动维度的骨骼属性数据的基础上,在比较向量动作点的骨骼属性数据时也需要基于运动维度进行骨骼属性数据比较;具体地,所述在所述相邻动作点比较结果表征所述任意两个相邻的动作点对应的骨骼属性数据不一致的情况下,基于所述目标骨骼在所述后一动作点的骨骼属性数据生成关键帧数据,包括:

在所述相邻动作点比较结果表征所述前一动作点与所述后一动作点在至少一个运动维度的骨骼属性数据不一致的情况下,基于所述目标骨骼在所述后一动作点的骨骼属性数据生成所述关键帧数据。

具体可将前一动作点的多个运动维度的骨骼属性数据分别与后一动作点的相应运动维度的骨骼属性数据进行比较,以得到与多个运动维度分别对应的比较结果;并基于多个运动维度分别对应的比较结果生成关键帧数据。

例如,可将前一动作点的位置维度的骨骼属性数据与后一动作点的位置维度的骨骼属性数据进行比较、将前一动作点的旋转维度的骨骼属性数据与后一动作点的旋转维度的骨骼属性数据进行比较、将前一动作点的缩放维度的骨骼属性数据与后一动作点的缩放维度的骨骼属性数据进行比较,得到与位置维度、旋转维度、缩放维度分别对应的比较结果。

在至少一个运动维度对应的比较结果为不一致的情况下,即说明两个相邻动作点的骨骼属性数据发生了变化,从而需要基于后一动作点的骨骼属性数据生成关键帧数据。本实施例中,在多个运动维度中的一个运动维度的骨骼属性数据发生变化的情况下,即可确定目标骨骼运动状态发生了变化,避免从整体上分析骨骼属性数据变化时而可能存在的数据遗漏,在此基础上生成关键帧数据,提高关键帧数据生成的准确性。

在一个可选实施例中,请参阅图5,其示出了一种基于关键帧文件进行插帧以生成目标动画的方法,该方法可包括:

S510.基于所述多个关键动作点对应的帧数据以及所述目标动画对象,生成与所述多个关键动作点分别对应的目标动画帧。

关键帧文件包括与多个关键动作点对应的帧数据,关键动作点即为被确定为关键帧数据所对应的动作点,多个关键动作点对应的帧数据即为多个关键帧的帧数据;根据上述内容可知每个动作点对应的关键帧数据可包括目标骨骼、目标骨骼在该动作点的骨骼属性数据以及目标动作在该动作点的动作信息;可以认为关键帧文件是动画模板文件,通过加入相应的目标动画对象,即可生成相应的目标动画,目标动画对象具体可以是目标场景中所需用到的动画形象,例如可以是人物形象、动物卡通形象等;在游戏场景中,目标动画对象可以为目标游戏中的游戏角色。

在提供了关键帧数据的基础上联合目标动画对象,使得生成的目标动画对象更加形象且与目标场景相适配。

S520.基于所述多个目标动画帧进行插帧处理,生成所述目标动画。

目标动画帧是包含了目标动画对象的关键帧,从而可在相邻两个目标动画帧之间进行插帧处理,具体可基于相邻两个目标动画帧各自对应的关键帧数据进行插值处理,以得到相应的插入帧,并基于时间顺序将插入帧插入到相邻两个目标动画帧中。插帧算法的核心原理是通过在已有数据帧之间插入额外的帧,以增加视频的帧率,常用的插帧算法可包括基于光流的方法、基于深度学习的方法等;其中基于光流的方法是一种基于像素运动的插帧算法,该方法通过分析相邻帧之间的像素变化,推测出像素点在下一帧中的位置,从而生成插值帧;基于深度学习的方法通过使用卷积神经网络等深度学习模型,可以学习到数据帧中的时空特征,并生成插值帧。

通过对已有的目标动画帧进行插帧处理,能够丰富目标动画所包含的动画数据,并且能够提高动画帧与动画帧之间过渡的平滑度。

在另一可选实施例中,请参阅图6,其示出了另一种基于关键帧文件进行插帧以生成目标动画的方法,该方法可包括:

S610.基于所述多个关键动作点对应的帧数据以及所述目标动画对象,生成与所述多个关键动作点分别对应的目标动画帧。

关键帧文件包括与多个关键动作点对应的帧数据,关键动作点即为被确定为关键帧数据所对应的动作点,多个关键动作点对应的帧数据即为多个关键帧的帧数据;根据上述内容可知每个动作点对应的关键帧数据可包括目标骨骼、目标骨骼在该动作点的骨骼属性数据以及目标动作在该动作点的动作信息;可以认为关键帧文件是动画模板文件,通过加入相应的目标动画对象,即可生成相应的目标动画,目标动画对象具体可以是目标场景中所需用到的动画形象,例如可以是人物形象、动物卡通形象等;在游戏场景中,目标动画对象可以为目标游戏中的游戏角色。

在提供了关键帧数据的基础上联合目标动画对象,使得生成的目标动画对象更加形象且与目标场景相适配。

S620.在所述目标动画的动画时长以及所述动作持续时长不一致的情况下,基于所述目标动画的动画时长以及所述动作持续时长,确定与所述多个关键动作点分别对应的关键动画点;每个关键动画点为所述动画时长中的一个时间点;多个目标动画帧与多个关键动画点一一对应。

在生成目标动画之前,可预设目标动画的动画时长;在目标动画的动画时长与动作持续时长不一致的情况下,可基于目标动画的动画时长以及动作持续时长,确定多个关键动作点分别对应的关键动画点。具体可基于动画时长与动作持续时长的倍数关系,确定多个关键点分别对应的关键动画点,具有对应关系的关键动画点以及关键动作点的倍数关系,与动画时长与动作持续时长的倍数关系一致。

例如,目标动画的动画时长为m,动作持续时长为n,m≠n,多个关键动作点基于时间先后顺序依次为n1,n2,n3,n4,n5……;相应可确定动画时长对应的多个关键动画点基于时间先后顺序依次为n1*m/n,n2*m/n,n3*m/n,n4*m/n,n5*m/n……;并且多个关键动画点n1*m/n,n2*m/n,n3*m/n,n4*m/n,n5*m/n……依次分别对应目标动画帧1,目标动画帧2,目标动画帧3,目标动画帧4,目标动画帧5……。

S630.基于所述目标动画的动画帧率、所述多个目标动画帧以及所述多个关键动画点进行插帧处理,生成所述目标动画。

在确定了关键动画点的基础上,可基于目标动画的动画帧率确定在相邻两个目标动画帧中所需插入的插入帧数量,然后基于相邻两个目标动画帧以及插帧算法,生成相应插入帧数量的插入帧,并基于插入帧以及目标动画帧生成目标动画。

在目标动画的动画时长与动作持续时长一致的情况下,可直接基于动作持续时长的关键动作点确定动画时长的关键动画点,在确定了关键动画点的基础上,可基于目标动画的动画帧率确定在相邻两个目标动画帧中所需插入的插入帧数量,然后基于相邻两个目标动画帧以及插帧算法,生成相应插入帧数量的插入帧,并基于插入帧以及目标动画帧生成目标动画。

插帧算法的核心原理是通过在已有数据帧之间插入额外的帧,以增加视频的帧率,常用的插帧算法可包括基于光流的方法、基于深度学习的方法等;其中基于光流的方法是一种基于像素运动的插帧算法,该方法通过分析相邻帧之间的像素变化,推测出像素点在下一帧中的位置,从而生成插值帧;基于深度学习的方法通过使用卷积神经网络等深度学习模型,可以学习到数据帧中的时空特征,并生成插值帧。

本实施例中,基于目标动画的动画时长以及动作持续时长的关系,确定与多个个关键动作点对应的关键动画点,基于关键动画点对应的目标动画帧生成目标动画,从而能够保证生成的目标动画中的动作时序与目标动作信息中的动作时序的时序同步,即使得目标动画中动作播放节奏与目标动作节奏一致;另外,基于目标动画的动画帧率、目标动画帧以及关键动画点进行目标动画生成,能够按需生成目标动画,提高目标动画生成的灵活性。

下面以具体示例说明本公开的具体实施流程,可包括:

1.输出动作文件。一般输出动作文件的文件格式可包括fbx以及anim,动作文件中包含运动轨迹信息、网格、骨骼等。

2.解析动作文件。提取核心骨骼的运动轨迹,包括位置、旋转、缩放等信息,每一个属性都有单独轨迹,一一提取。

3.保存轨迹文件。将提取的每个属性的轨迹根据属性类型进行保存,得到关键帧数据。

4.策划配置轨迹。策划为游戏对象配置所需要的运动轨迹。

5.运行时解析。当游戏对象生成时,根据策划配置的文件名,加载对应运动轨迹。解析轨迹文件中关键帧数据,并恢复数据精度。以时间为单位,对关键帧之间插值,从而提高轨迹平滑度,将各个属性叠加,形成每一帧轨迹数据,应用于游戏对象。

本公开提高了运动轨迹可控性,效果品质可由美术控制;减少策划、程序、美术之间的沟通成本,避免频繁修改的情况;减少了程序的重复性工作内容;可复用性强,不仅能用于技能子弹,也可用于游戏中所有需要运动的物体,如人物、相机等。

图7是根据一示例性实施例示出的一种动画生成装置。参照图7,该装置包括:

动作文件获取单元710,被配置为执行获取目标对象的动作文件;所述动作文件中包括目标对象的目标动作信息,以及所述目标动作信息对应的目标骨骼的骨骼运动数据;所述目标骨骼为所述目标对象包括的骨骼;

第一提取单元720,被配置为执行基于所述目标骨骼的骨骼运动数据进行数据提取,得到所述目标骨骼在多个动作点的骨骼属性数据;所述多个动作点基于所述目标动作信息中的动作先后顺序确定;

比较单元730,被配置为执行对于任意两个相邻的动作点,基于所述目标骨骼在后一动作点的骨骼属性数据与所述目标骨骼在前一动作点的骨骼属性数据进行比较,得到相邻动作点比较结果;

关键帧数据生成单元740,被配置为执行在所述相邻动作点比较结果表征所述任意两个相邻的动作点对应的骨骼属性数据不一致的情况下,基于所述目标骨骼在所述后一动作点的骨骼属性数据生成关键帧数据;

关键帧文件生成单元750,被配置为执行基于所述关键帧数据生成关键帧文件;所述关键帧文件用于联合目标动画对象生成目标动画。

在一示例性实施例中,所述第一提取单元包括:

关键骨骼确定单元,被配置为执行从所述目标骨骼中确定出与所述目标动作信息相关联的关键骨骼;

第二提取单元,被配置为执行提取所述关键骨骼在所述多个动作点的骨骼属性数据。

在一示例性实施例中,所述第一提取单元包括:

运动维度分析单元,被配置为执行基于所述目标骨骼的骨骼运动数据进行运动维度分析,确定所述目标骨骼的骨骼运动数据对应的多个运动维度;

第三提取单元,被配置为执行提取所述目标骨骼在所述多个动作点分别对应的多个运动维度的骨骼属性数据;

骨骼属性数据确定单元,被配置为执行将所述多个动作点分别对应的多个运动维度的骨骼属性数据,确定为所述目标骨骼在多个动作点的骨骼属性数据。

在一示例性实施例中,所述相邻动作点比较结果包括与所述多个运动维度分别对应的骨骼属性数据比较结果;

所述关键帧数据生成单元包括:

关键帧数据确定单元,被配置为执行在所述相邻动作点比较结果表征所述前一动作点与所述后一动作点在至少一个运动维度的骨骼属性数据不一致的情况下,基于所述目标骨骼在所述后一动作点的骨骼属性数据生成所述关键帧数据。

在一示例性实施例中,所述关键帧文件包括与多个关键动作点对应的帧数据;

所述装置还包括:

第一生成单元,被配置为执行基于所述多个关键动作点对应的帧数据以及所述目标动画对象,生成与所述多个关键动作点分别对应的目标动画帧;

第一插帧单元,被配置为执行基于所述多个目标动画帧进行插帧处理,生成所述目标动画。

在一示例性实施例中,所述装置还包括:

动作持续时长确定单元,被配置为执行确定所述目标动作信息的动作持续时长;

动作点确定单元,被配置为执行基于所述动作持续时长确定多个动作点;每个动作点对应所述动作持续时长中的一个时间点。

在一示例性实施例中,所述关键帧文件包括与多个关键动作点对应的帧数据;

所述装置还包括:

第二生成单元,被配置为执行基于所述多个关键动作点对应的帧数据以及所述目标动画对象,生成与所述多个关键动作点分别对应的目标动画帧;

关键动画点确定单元,被配置为执行在所述目标动画的动画时长以及所述动作持续时长不一致的情况下,基于所述目标动画的动画时长以及所述动作持续时长,确定与所述多个关键动作点分别对应的关键动画点;每个关键动画点为所述动画时长中的一个时间点;多个目标动画帧与多个关键动画点一一对应;

第二插帧单元,被配置为执行基于所述目标动画的动画帧率、所述多个目标动画帧以及所述多个关键动画点进行插帧处理,生成所述目标动画。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,可选地,计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等;当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如上所述的任一方法。

在示例性实施例中,还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序存储在可读存储介质中,计算机设备的至少一个处理器从所述可读存储介质读取并执行所述计算机程序,使得设备执行上述任一方法。

图8是根据一示例性实施例示出的一种用于动画生成的电子设备的框图,该电子设备可以是终端,其内部结构图可以如图8所示。该电子设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种动画生成方法。该电子设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该电子设备的输入装置可以是显示屏上覆盖的触摸层,也可以是电子设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

图9是根据一示例性实施例示出的一种用于动画生成的电子设备的框图,该电子设备可以是服务器,其内部结构图可以如图9所示。该电子设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种动画生成方法。

本领域技术人员可以理解,图8和图9中示出的结构,仅仅是与本公开方案相关的部分结构的框图,并不构成对本公开方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

相关技术
  • 转场动画的生成方法、电子设备及计算机存储介质
  • 类文件生成方法、装置、电子设备及存储介质
  • 无人机迁移轨迹生成方法、装置、电子设备和存储介质
  • 视频摘要生成方法、装置、存储介质和电子设备
  • 网页生成方法、装置、电子设备及计算机可读存储介质
  • 循环动画生成方法和装置、计算机存储介质、电子设备
  • 动画生成方法、装置、存储介质及电子设备
技术分类

06120116587135