CN115984433A - 骨骼动画生成方法、装置、存储介质及电子设备 - Google Patents
骨骼动画生成方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN115984433A CN115984433A CN202211702204.0A CN202211702204A CN115984433A CN 115984433 A CN115984433 A CN 115984433A CN 202211702204 A CN202211702204 A CN 202211702204A CN 115984433 A CN115984433 A CN 115984433A
- Authority
- CN
- China
- Prior art keywords
- bone
- skeleton
- animation
- data
- deformed
- 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.)
- Pending
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本公开涉及计算机图形领域,具体涉及一种骨骼动画生成方法、骨骼动画生成装置、存储介质及电子设备。该方法包括:响应于骨骼动画的更新指令,获取所述骨骼动画当前帧的原始骨骼数据;基于所述原始骨骼数据对目标骨骼进行变形处理,得到变形骨骼数据;根据所述变形骨骼数据进行动画蒙皮处理,生成所述骨骼动画当前帧的骨骼动画。本公开提供的骨骼动画生成方法能够解决游戏资源因不能复用而制作效率低、成本高的问题。
Description
技术领域
本公开涉及计算机图形领域,具体涉及一种骨骼动画生成方法、骨骼动画生成装置、存储介质及电子设备。
背景技术
在游戏制作领域中,美术角色资源主要分为三种:一种是骨架Skeleton,开始确定之后不能改变;第二种是动作Animaton,是根据确定好的骨架制作的;第三种是衣服Mesh,是通过蒙皮操作与骨架绑定。
由此可知,当骨架Skeleton一旦确定,后续如果要修改,必须对已经制作好的所有动作Animaton以及衣服Mesh进行修改,花费大量的时间和人力成本,资源生产效率低;同时,已有资源无法复用,造成了资源浪费。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种骨骼动画生成方法、骨骼动画生成装置、存储介质及电子设备,旨在解决游戏资源因不能复用而制作效率低、成本高的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开实施例的一方面,提供了一种骨骼动画生成方法,包括:响应于骨骼动画的更新指令,获取所述骨骼动画当前帧的原始骨骼数据;基于所述原始骨骼数据对目标骨骼进行变形处理,得到变形骨骼数据;根据所述变形骨骼数据进行动画蒙皮处理,生成所述骨骼动画当前帧的骨骼动画。
根据本公开实施例的第二方面,提供了一种骨骼动画生成装置,包括:响应模块,用于响应于骨骼动画的更新指令,获取所述骨骼动画当前帧的原始骨骼数据;变形模块,用于基于所述原始骨骼数据对目标骨骼进行变形处理,得到变形骨骼数据;动画模块,用于根据所述变形骨骼数据进行动画蒙皮处理,生成所述骨骼动画当前帧的骨骼动画。
根据本公开实施例的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例中的骨骼动画生成方法。
根据本公开实施例的第四方面,提供了一种电子设备,其特征在于,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中的骨骼动画生成方法。
本公开示例性实施例可以具有以下部分或全部有益效果:
在本公开的一些实施例所提供的技术方案中,在骨骼动画更新时,通过对骨骼进行变形处理得到变形骨骼数据,再基于变形骨骼数据进行动画蒙皮处理和骨骼动画的生成。基于上述方法,一方面,当骨架发生了改变,只需要对骨骼进行变形,骨骼数据也可以复用并重新输出动作,而不需要重新制作新的骨架,不仅提高了动画的生成效率,还降低了美术制作成本;另一方面,由于每一帧动画的更新都可以对骨骼进行变形,因此可以适用于游戏运行时实时进行骨骼变形的应用场景。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示意性示出一种现有的骨骼动画生成方法的原理示意图;
图2示意性示出本公开示例性实施例中一种骨骼动画生成方法的流程示意图;
图3示意性示出本公开示例性实施例中一种骨架示意图;
图4示意性示出本公开示例性实施例中一种骨骼局部坐标系的示意图;
图5示意性示出本公开示例性实施例中一种骨骼动画生成方法的原理示意图;
图6示意性示出本公开示例性实施例中一种骨架变形器使用方法的流程示意图;
图7示意性示出本公开示例性实施例中一种骨骼动画生成装置的组成示意图;
图8示意性示出本公开示例性实施例中一种计算机可读存储介质的示意图;
图9示意性示出本公开示例性实施例中一种电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
图1示意性示出一种现有的骨骼动画生成方法的原理示意图。参考图1所示,在游戏制作领域中,美术角色资源主要分为三种:一种是骨架Skeleton,开始确定之后不能改变;第二种是动作Animaton,是根据确定好的骨架制作的;第三种是衣服Mesh,是通过蒙皮操作与骨架绑定。随着游戏的开发,动作数据以及衣服数据会越来越多。
由此可知,当骨架Skeleton一旦确定,后续如果要修改,需要重新建模输出一套新骨架,原有的角色动作,角色外观模型都要重新输出一遍,并且已有资源无法复用,花费大量的时间和人力成本,这个成本计算方法是:骨架数目*(角色动作数目+角色外观模型数目),因此新骨架越多,成本越高。而且有些游戏需求,是需要在游戏中实时改变体型的,这种方式就无法满足需求。
针对现有技术的缺点,本公开提供一种骨骼动画生成方法,能够支持对骨架进行变形,进而使得数据可以复用,同时实现可实时随意变换的需要。
以下对本公开实施例的技术方案的实现细节进行详细阐述。
图2示意性示出本公开示例性实施例中一种骨骼动画生成方法的流程示意图。如图2所示,该骨骼动画生成方法包括步骤S1至步骤S3:
步骤S1,响应于骨骼动画的更新指令,获取所述骨骼动画当前帧的原始骨骼数据;
步骤S2,基于所述原始骨骼数据对目标骨骼进行变形处理,得到变形骨骼数据;
步骤S3,根据所述变形骨骼数据进行动画蒙皮处理,生成所述骨骼动画当前帧的骨骼动画。
在本公开的一些实施例所提供的技术方案中,在骨骼动画更新时,通过对骨骼进行变形处理得到变形骨骼数据,再基于变形骨骼数据进行动画蒙皮处理和骨骼动画的生成。基于上述方法,一方面,当骨架发生了改变,只需要对骨骼进行变形,骨骼数据也可以复用并重新输出动作,而不需要重新制作新的骨架,不仅提高了动画的生成效率,还降低了美术制作成本;另一方面,由于每一帧动画的更新都可以对骨骼进行变形,因此可以适用于游戏运行时实时进行骨骼变形的应用场景。
下面,将结合附图及实施例对本示例实施方式中的骨骼动画生成方法的各个步骤进行更详细的说明。
在步骤S1中,响应于骨骼动画的更新指令,获取所述骨骼动画当前帧的原始骨骼数据。
具体而言,骨骼动画更新时,首先采样得到每个动作当前时间的Pose(骨骼数据),然后将多个Pose融合在一起。因此,在接收到骨骼动画的更新指令后,可以经过动画采样与融合,输出一个当前帧的原始骨骼数据进行处理,进而进行逐帧骨骼动画的生成。
图3示意性示出本公开示例性实施例中一种骨架示意图。参考图3所示,该骨架中包括了多根骨骼,一个骨架中,各骨骼之间是存在父子关系的,所有骨骼在一起组成了一个树形结构。在原始骨骼数据中,可以为骨架上每根骨骼记录了在local space(局部坐标系)下的local space matrix(局部空间矩阵)和model space(全局坐标系)下的model spacematrix(模型空间矩阵)。
其中,local space matrix含义是从当前骨骼空间到其父骨骼空间的变换矩阵。我们一般说的骨骼(bone)在实际编程实现中是不存在的,实际中存储是每根骨骼头的关节(joint)信息。每个关节会存储一个4x4的矩阵表示旋转,位移,缩放信息,这个矩阵称为该骨骼的local space matrix(局部空间矩阵)。
与local space matrix对应的是model space matrix,含义是从当前骨骼空间,到整个模型空间的变换矩阵。将local space matrix沿着树形结构依次乘上父骨骼的矩阵,直至根节点,就得到该骨骼在模型空间的矩阵表示,这个矩阵称为骨骼的model spacematrix(模型空间矩阵)。
获取骨骼动画当前帧的原始骨骼数据与现有的方式相同,此处就不做过多的赘述。
在步骤S2中,基于所述原始骨骼数据对目标骨骼进行变形处理,得到变形骨骼数据。
具体而言,在对骨骼进行变形处理时,可以包括两个维度上的变形处理:长短变形处理以及粗细变形处理。长短变形处理也就是让骨骼变长/短,受这个骨骼影响的mesh就会跟着变长/短,用于表现人物手变长/短,腿变长/短等效果。粗细变形处理也就是让骨骼变粗/细,受这根骨骼影响的mesh就会跟着变粗/细,从而表现出该部位变胖/瘦的效果。
图4示意性示出本公开示例性实施例中一种骨骼局部坐标系的示意图。参考图4所示,在local space坐标系中,X轴是骨骼的长度方向。简单来说,沿着X轴缩放,就能控制骨骼的长度,沿着Y、Z轴缩放,就能控制骨骼的粗细。
因此,在本公开的一个实施例中,在所述变形处理为长短变形处理时,所述基于所述原始骨骼数据对目标骨骼进行变形处理,得到变形骨骼数据,包括:确定所述目标骨骼所在层级的下一层级的子骨骼;在所述目标骨骼的局部坐标系中分别对各所述子骨骼按照进行平移操作,得到中间变形骨骼数据;基于所述中间变形骨骼数据在全局坐标系中对所述目标骨骼的第一坐标轴进行缩放操作,得到所述变形骨骼数据。
具体而言,对local space matrix进行缩放、平移等操作,会影响这个骨骼下面的所有子骨骼。比如在local space matrix对大臂进行放大操作,其下面的子骨骼,小臂,手和手指都会受到影响而被放大。因此,对于长短变形处理而言,可以先对骨骼的下一级所有骨骼在local space进行平移操作,再在model space中对该骨骼的X轴进行缩放。
上面介绍了骨架变形器的基本原理,而在完成人物骨架变形后,可能会产生穿插,手脚位置与原体型偏移的情况,因此还需要一些辅助操作,以使得变形后的人物能够正常表现。比如人物长高后,需要程序自动地把人物根骨骼往上抬。所以人物骨架变形后,需要使用IK修复人物与场景,与其他人物的交互。
因此,在本公开的一个实施例中,在所述基于所述原始骨骼数据对目标骨骼进行变形处理,得到变形骨骼数据之后,所述方法还包括:对所述变形骨骼数据进行根骨骼调整;基于根骨骼调整后的变形骨骼数据进行骨骼修正处理,以将骨骼修正处理后的变形骨骼数据更新为所述变形骨骼数据。
在本公开的一个实施例中,对所述变形骨骼数据进行根骨骼调整,包括:检测所述变形处理是否满足根骨骼调整条件;在满足根骨骼调整条件时,对所述变形骨骼数据中的根骨骼的世界坐标进行调整。
具体而言,如果改变了人物腿的长度,脚部的厚度,则需要调整人物根骨骼,以使得人物脚刚好站在地面上。因此,可以将这些改变根骨骼高度的内容配置为根骨骼调整条件,进而当检测到变形处理满足预先配置的根骨骼调整条件时,对根骨骼的坐标进行相应地调整,以满足实际需求。
在本公开的一个实施例中,基于根骨骼调整后的变形骨骼数据进行骨骼修正处理,包括:基于所述变形骨骼数据中各骨骼与根骨骼所在层级的距离确定骨骼修正顺序;按照所述骨骼修正顺序,计算各骨骼分别对应的逆向运动IK骨骼,并基于各所述逆向运动IK骨骼对各骨骼进行修正。
其中,IK是逆向运动的缩写。IK是使用计算父物体的位移和运动方向,从而将所得信息继承给其子物体的一种物理运动方式。IK是相对于正向运动(Forward Kinematics)而言,以关节连接的物体由一组通过关节连接的刚性片段组成,变换关节的角度可以产生无穷的形状。
IK的计算顺序,是根据IK调整的骨骼在骨骼层级结构中距离根骨骼的距离决定的。越靠近根骨骼越早计算。
在使用变形骨架后,原有动画处理流程中的IK必须修改运行时机。例如look atik主要实现人物看向镜头的功能。two bone ik主要用于控制人物,手脚位置。aim IK主要是为了处理单根骨骼的朝向问题。比如two bone ik固定好人物手的位置后,人物手掌的朝向,手掌面的朝向可以用aim IK来固定。two bone ik和aim IK结合在一起,还可以用于处理人物腿变长后,脚尖抖动的问题。
需要说明的是,在IK修复时,可以预先在变形处理之前记录原始体型在当前帧动画下的位置,朝向的信息。在有场景交互的动作中,如果改变了身高,手长等,变形后的体型,在做有场景交互的动作时,就无法准确触碰到场景,因此,预先记录一些原始动画信息,可以有助于IK修复。
在本公开的一个实施例中,在所述变形处理为粗细变形处理时,所述基于所述原始骨骼数据对目标骨骼进行变形处理,得到变形骨骼数据,包括:在全局坐标系中对所述目标骨骼的第一坐标轴、第二坐标轴和第三坐标轴分别进行缩放处理。
也就是说,对于粗细变形处理而言,如果在local space对骨骼变粗/细,子骨骼也会变粗/细,这样美术就没法逐个骨骼调整,使用起来会非常不方便;但在model space对骨骼进行缩放,就不会影响子骨骼,美术可以逐个骨骼进行调整。
对model space matrix进行放缩操作,不会影响子骨骼,比如在model space对大臂进行放缩,小臂和手是不会受影响的。因此,可以在model space矩阵应用之前对顶点做X、Y、Z三个坐标轴上的缩放处理,就能满足这个需求。
需要说明的是,在实际操作中,长短变形处理和粗细变形处理可以择一使用,也可以两者均使用,本公开在此不做具体限定。
在步骤S3中,根据所述变形骨骼数据进行动画蒙皮处理,生成所述骨骼动画当前帧的骨骼动画。
具体而言,将经过变形处理的变形骨骼数据传入蒙皮阶段,渲染之后就可以在屏幕上看到变形后的骨骼动画。
图5示意性示出本公开示例性实施例中一种骨骼动画生成方法的原理示意图。参考图5所示,与图1相对比,其主要区别在于本申请提供了一个骨架变形器,能够在游戏运行时,在动画采样融合之后,对骨架进行变形,从而可以捏出任意体型。
使用骨架变形器,对Pose数据中的骨骼进行改变,效果上相当于在运行时创建了一个美术可以随意修改的虚拟骨架。即对已有的骨架Skeleton调整不同的变性参数,得到不同的虚拟骨架Virtual Skeleton,相当于游戏内骨骼个数没有限制,之后基于VirtualSkeleton进行复用,包括对Animation数据复用以及Mesh数据复用。整个过程只需要在代码中加入骨架变形器,不需要制作新的美术资源,或者修改原有美术资源。
在本公开的一个实施例中,在响应于骨骼动画的更新指令,获取所述骨骼动画当前帧的原始骨骼数据之后,所述方法还包括:获取所述骨骼动画的动画类型;在所述动画类型为卡通风格类型时,对所述原始骨骼数据进行层级恢复更新所述原始骨骼数据。
具体地,由于卡通风格骨骼动画制作流程的特殊性,还需要增加回复骨架层级结构的步骤。具体而言,为了恢复层级结构,美术会将max中原有的骨骼间父子关系,另外导出一个文件。引擎在运行时,加载这个文件,并且建立一棵骨骼层级树。通过对比原有的骨骼名称和骨骼层级树中的骨骼名称,就能得到骨骼的正确层级关系。local space matrix可以通过当前骨骼的model space matrix与其父骨骼model space matrix的逆矩阵做乘法获得。父骨骼的关系,是通过载入的骨骼层级树获得。
接下来,将结合具体实施例对每一帧动画更新时,骨架变形器详细的更新步骤进行解释。
图6示意性示出本公开示例性实施例中一种骨架变形器使用方法的流程示意图。参考图6所示,具体步骤包括:
步骤S601,动画采样与融合;游戏动画更新的每一帧,首先采样得到每个动作当前时间的Pose,然后将多个动画Pose融合在一起。这些步骤在引入骨架变形器前就存在。
步骤S602,获取local space matrix;经过动画采样与融合,会输出一个Pose数据,其为骨架上每根骨骼记录了一个矩阵,含义是从当前骨骼空间到其父骨骼空间的变换矩阵,即为local space matrix。
步骤S603,获取model space matrix;model space matrix可以通过从当前骨骼出发,沿着骨骼链做矩阵乘法,直至根骨骼而得到。
步骤S604,获取恢复层级后model space matrix;为了恢复层级结构,美术会将max中原有的骨骼间父子关系,另外导出一个文件。引擎在运行时,加载这个文件,并且建立一棵骨骼层级树。通过对比原有的骨骼名称和骨骼层级树中的骨骼名称,就能得到骨骼的正确层级关系。
步骤S605,获取恢复层级后local space matrix;local space matrix可以通过当前骨骼的model space matrix与其父骨骼model space matrix的逆矩阵做乘法获得。父骨骼的关系,是通过步骤S604中载入的骨骼层级树获得。
步骤S606,记录原始动画信息;骨架变形应用后,会产生穿插,手脚位置与原体型偏移的情况。这一步骤,就是记录原始体型在当前帧动画下的位置,朝向的信息。在之后的IK步骤中,用于修复变形后的动画。
步骤S607,在有层级关系的骨架上,做X轴的缩放:平移子骨骼;作为骨架变形器的第一步,对每根骨骼,如果美术设置了X轴缩放参数,需要将该骨骼的所有子骨骼进行平移操作。
步骤S608,调整根骨骼高度;如果改变了人物腿的长度,脚部的厚度,则需要调整人物根骨骼,以使得人物脚刚好站在地面上。
步骤S609,计算IK;IK计算顺序,是根据IK调整骨骼,在骨骼层级结构中距离根骨骼的距离决定的。越靠近根骨骼越早计算。
步骤S610,获取恢复层级关系model space matrix;将恢复层级关系的localspace matrix通过矩阵乘法,转换为恢复层级结构的model space matrix。
步骤S611,在有层级关系的骨架上,做X,Y,Z三个轴的缩放;这一步,需要处理骨架变形器,在恢复骨骼层级结构的model space matrix中应用下X、Y、Z三个轴的缩放。
步骤S612,转移变形骨骼数据;将变形骨骼数据通过骨骼名称映射,转移到原始骨架上。
步骤S613,将步骤S612得到的变形骨骼数据传入蒙皮阶段,渲染之后就可以在屏幕上看到变形后的角色。
上述图6中的步骤,步骤S601、S602、S603以及S613是引入骨架变形器前,动画更新本身就存在的步骤;步骤S604、S605、S610以及S612是为了恢复骨架层级结构,这部分是针对卡通风格骨骼动画特有的;步骤S607以及S611是骨架变形器的两个变形处理步骤;步骤S606、S608以及S609三个步骤,是为了修复骨架变形后穿插,而引入的IK修正操作。
基于上述方法,通过引入骨架变形器技术,可以实现游戏运行时,实时的骨骼动画骨架任意变形,能极大地节省美术成本,同时可以实现传统方式无法做到的内容,即游戏内实时变换体型的需求。
图7示意性示出本公开示例性实施例中一种骨骼动画生成装置的组成示意图,如图7所示,该骨骼动画生成装置700可以包括响应模块701、变形模块702以及动画模块703。其中:
响应模块701,用于响应于骨骼动画的更新指令,获取所述骨骼动画当前帧的原始骨骼数据;
变形模块702,用于基于所述原始骨骼数据对目标骨骼进行变形处理,得到变形骨骼数据;
动画模块703,用于根据所述变形骨骼数据进行动画蒙皮处理,生成所述骨骼动画当前帧的骨骼动画。
根据本公开的示例性实施例,所述变形模块702包括第一变形单元,用于在所述变形处理为长短变形处理时,确定所述目标骨骼所在层级的下一层级的子骨骼;在所述目标骨骼的局部坐标系中分别对各所述子骨骼按照进行平移操作,得到中间变形骨骼数据;基于所述中间变形骨骼数据在全局坐标系中对所述目标骨骼的第一坐标轴进行缩放操作,得到所述变形骨骼数据。
根据本公开的示例性实施例,所述变形模块702包括第二变形单元,用于在所述变形处理为粗细变形处理时,在全局坐标系中对所述目标骨骼的第一坐标轴、第二坐标轴和第三坐标轴分别进行缩放处理。
根据本公开的示例性实施例,所述第一变形单元还用于在所述基于所述原始骨骼数据对目标骨骼进行变形处理,得到变形骨骼数据之后,对所述变形骨骼数据进行根骨骼调整;基于根骨骼调整后的变形骨骼数据进行骨骼修正处理,以将骨骼修正处理后的变形骨骼数据更新为所述变形骨骼数据。
根据本公开的示例性实施例,所述第一变形单元还用于检测所述变形处理是否满足根骨骼调整条件;在满足根骨骼调整条件时,对所述变形骨骼数据中的根骨骼的世界坐标进行调整。
根据本公开的示例性实施例,所述第一变形单元还用于基于所述变形骨骼数据中各骨骼与根骨骼所在层级的距离确定骨骼修正顺序;按照所述骨骼修正顺序,计算各骨骼分别对应的逆向运动IK骨骼,并基于各所述逆向运动IK骨骼对各骨骼进行修正。
根据本公开的示例性实施例,所述变形模块702还用于在响应于骨骼动画的更新指令,获取所述骨骼动画当前帧的原始骨骼数据之后,获取所述骨骼动画的动画类型;在所述动画类型为卡通风格类型时,对所述原始骨骼数据进行层级恢复更新所述原始骨骼数据。
上述的骨骼动画生成装置700中各模块的具体细节已经在对应的骨骼动画生成方法中进行了详细的描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
在本公开的示例性实施例中,还提供了一种能够实现上述方法的存储介质。图8示意性示出本公开示例性实施例中一种计算机可读存储介质的示意图,如图8所示,描述了根据本公开的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如手机上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。图9示意性示出本公开示例性实施例中一种电子设备的计算机系统的结构示意图。
需要说明的是,图9示出的电子设备的计算机系统900仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图9所示,计算机系统900包括中央处理单元(Central Processing Unit,CPU)901,其可以根据存储在只读存储器(Read-Only Memory,ROM)902中的程序或者从存储部分908加载到随机访问存储器(Random Access Memory,RAM)903中的程序而执行各种适当的动作和处理。在RAM 903中,还存储有系统操作所需的各种程序和数据。CPU 901、ROM902以及RAM 903通过总线904彼此相连。输入/输出(Input/Output,I/O)接口905也连接至总线904。
以下部件连接至I/O接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN(Local Area Network,局域网)卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
特别地,根据本公开的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被中央处理单元(CPU)901执行时,执行本公开的系统中限定的各种功能。
需要说明的是,本公开实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种骨骼动画生成方法,其特征在于,包括:
响应于骨骼动画的更新指令,获取所述骨骼动画当前帧的原始骨骼数据;
基于所述原始骨骼数据对目标骨骼进行变形处理,得到变形骨骼数据;
根据所述变形骨骼数据进行动画蒙皮处理,生成所述骨骼动画当前帧的骨骼动画。
2.根据权利要求1所述的骨骼动画生成方法,其特征在于,在所述变形处理为长短变形处理时,所述基于所述原始骨骼数据对目标骨骼进行变形处理,得到变形骨骼数据,包括:
确定所述目标骨骼所在层级的下一层级的子骨骼;
在所述目标骨骼的局部坐标系中分别对各所述子骨骼按照进行平移操作,得到中间变形骨骼数据;
基于所述中间变形骨骼数据在全局坐标系中对所述目标骨骼的第一坐标轴进行缩放操作,得到所述变形骨骼数据。
3.根据权利要求1所述的骨骼动画生成方法,其特征在于,在所述变形处理为粗细变形处理时,所述基于所述原始骨骼数据对目标骨骼进行变形处理,得到变形骨骼数据,包括:
在全局坐标系中对所述目标骨骼的第一坐标轴、第二坐标轴和第三坐标轴分别进行缩放处理。
4.根据权利要求2所述的骨骼动画生成方法,其特征在于,在所述基于所述原始骨骼数据对目标骨骼进行变形处理,得到变形骨骼数据之后,所述方法还包括:
对所述变形骨骼数据进行根骨骼调整;
基于根骨骼调整后的变形骨骼数据进行骨骼修正处理,以将骨骼修正处理后的变形骨骼数据更新为所述变形骨骼数据。
5.根据权利要求4所述的骨骼动画生成方法,其特征在于,对所述变形骨骼数据进行根骨骼调整,包括:
检测所述变形处理是否满足根骨骼调整条件;
在满足根骨骼调整条件时,对所述变形骨骼数据中的根骨骼的世界坐标进行调整。
6.根据权利要求4所述的骨骼动画生成方法,其特征在于,基于根骨骼调整后的变形骨骼数据进行骨骼修正处理,包括:
基于所述变形骨骼数据中各骨骼与根骨骼所在层级的距离确定骨骼修正顺序;
按照所述骨骼修正顺序,计算各骨骼分别对应的逆向运动IK骨骼,并基于各所述逆向运动IK骨骼对各骨骼进行修正。
7.根据权利要求1所述的骨骼动画生成方法,其特征在于,在响应于骨骼动画的更新指令,获取所述骨骼动画当前帧的原始骨骼数据之后,所述方法还包括:
获取所述骨骼动画的动画类型;
在所述动画类型为卡通风格类型时,对所述原始骨骼数据进行层级恢复更新所述原始骨骼数据。
8.一种骨骼动画生成装置,其特征在于,包括:
响应模块,用于响应于骨骼动画的更新指令,获取所述骨骼动画当前帧的原始骨骼数据;
变形模块,用于基于所述原始骨骼数据对目标骨骼进行变形处理,得到变形骨骼数据;
动画模块,用于根据所述变形骨骼数据进行动画蒙皮处理,生成所述骨骼动画当前帧的骨骼动画。
9.一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如权利要求1至7任一项所述的骨骼动画生成方法。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至7任一项所述的骨骼动画生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211702204.0A CN115984433A (zh) | 2022-12-28 | 2022-12-28 | 骨骼动画生成方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211702204.0A CN115984433A (zh) | 2022-12-28 | 2022-12-28 | 骨骼动画生成方法、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115984433A true CN115984433A (zh) | 2023-04-18 |
Family
ID=85969634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211702204.0A Pending CN115984433A (zh) | 2022-12-28 | 2022-12-28 | 骨骼动画生成方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115984433A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116152404A (zh) * | 2023-04-19 | 2023-05-23 | 苏州浪潮智能科技有限公司 | 动画重定向方法、装置、计算机设备及存储介质 |
-
2022
- 2022-12-28 CN CN202211702204.0A patent/CN115984433A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116152404A (zh) * | 2023-04-19 | 2023-05-23 | 苏州浪潮智能科技有限公司 | 动画重定向方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3882861A2 (en) | Method and apparatus for synthesizing figure of virtual object, electronic device, and storage medium | |
US11961325B2 (en) | Image processing method and apparatus, computer-readable medium, and electronic device | |
CN111062864B (zh) | 动画模型缩放方法及装置、电子设备、存储介质 | |
CN112257657B (zh) | 脸部图像融合方法及装置、存储介质、电子设备 | |
CN111223171A (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN112950751A (zh) | 姿态动作的展示方法及装置、存储介质、系统 | |
CN115984433A (zh) | 骨骼动画生成方法、装置、存储介质及电子设备 | |
CN111784818A (zh) | 生成三维人体模型的方法、装置及计算机可读存储介质 | |
CN113706666A (zh) | 动画数据处理方法、非易失性存储介质及电子装置 | |
CN112184851A (zh) | 图像编辑方法、网络训练方法、相关装置及电子设备 | |
CN114053696B (zh) | 图像渲染处理方法、装置及电子设备 | |
CN111599002A (zh) | 用于生成图像的方法和装置 | |
CN110378948B (zh) | 3d模型重建方法、装置及电子设备 | |
CN115423907B (zh) | 角色模型身体绑定方法、装置、设备和存储介质 | |
CN114332317A (zh) | 动画数据处理方法、装置、程序产品、介质及电子设备 | |
CN108564618B (zh) | 基于多体素块的手几何运动重建方法及装置 | |
CN116309999A (zh) | 一种3d虚拟形象的驱动方法、装置、电子设备及存储介质 | |
CN115482588A (zh) | 一种预测三维模型的姿态的方法及电子设备 | |
CN115049764A (zh) | Smpl参数预测模型的训练方法、装置、设备及介质 | |
CN114332603A (zh) | 一种对白模的外观处理方法、装置和电子设备 | |
Gao | The application of digital media art in film and television animation based on three-dimensional interactive technology | |
CN116805344B (zh) | 一种数字人动作重定向方法及装置 | |
CN115937371B (zh) | 人物模型的生成方法和系统 | |
CN118115668A (zh) | 一种带纹理的细节语义人体模型重建方法 | |
CN113436299B (zh) | 动画生成方法、装置、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |