CN116543080A - 基于根骨骼的动画处理方法及装置 - Google Patents
基于根骨骼的动画处理方法及装置 Download PDFInfo
- Publication number
- CN116543080A CN116543080A CN202310506671.4A CN202310506671A CN116543080A CN 116543080 A CN116543080 A CN 116543080A CN 202310506671 A CN202310506671 A CN 202310506671A CN 116543080 A CN116543080 A CN 116543080A
- Authority
- CN
- China
- Prior art keywords
- animation data
- skeleton
- animation
- original
- child
- 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
- 210000000988 bone and bone Anatomy 0.000 title claims abstract description 42
- 238000003672 processing method Methods 0.000 title claims abstract description 20
- 238000006073 displacement reaction Methods 0.000 claims abstract description 71
- 238000000034 method Methods 0.000 claims abstract description 32
- 230000005484 gravity Effects 0.000 claims description 15
- 238000004364 calculation method Methods 0.000 abstract description 10
- 238000010586 diagram Methods 0.000 description 11
- 210000003371 toe Anatomy 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000002085 persistent effect Effects 0.000 description 6
- 210000003811 finger Anatomy 0.000 description 5
- 230000033001 locomotion Effects 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000009191 jumping Effects 0.000 description 4
- 230000009194 climbing Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000010076 replication Effects 0.000 description 3
- 210000003813 thumb Anatomy 0.000 description 3
- 239000002775 capsule Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000033764 rhythmic process Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 210000003423 ankle Anatomy 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000002355 dual-layer Substances 0.000 description 1
- 210000002683 foot Anatomy 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 210000004197 pelvis Anatomy 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 210000000707 wrist Anatomy 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请涉及基于根骨骼的动画处理方法及装置。该方法包括:绘制角色的包含根骨骼和子骨骼的原始动画数据,复制原始动画数据得到备份动画数据;基于世界坐标系为角色创建几何体,将几何体作为角色在竖直方向坐标的最底部骨骼的被父子约束的子物体;通过为子物体逐帧保存关键帧,得到最底部骨骼在世界坐标系的位移动画数据,并将最底部骨骼在世界坐标系的位移动画数据赋予原始动画数据中的根骨骼;在将备份动画数据中的子骨骼作为父物体与原始动画数据中的同一个子骨骼建立父子约束关系后,烘焙原始动画数据的关键帧,得到目标动画数据;对目标动画数据进行烘焙,得到与目标动画数据对应的动画。本申请能够避免复杂计算,降低计算量,提高处理效率。
Description
技术领域
本申请涉及游戏动画技术领域,尤其涉及一种基于根骨骼的动画处理方法及装置。
背景技术
在游戏中,一般需要绘制动画文件,动画文件中可以包括动画的相关数据,例如动画帧的帧数据、时间数据等。相关技术中,可以采用程序驱动类的动画绘制方法,该方法比较常用语2D虚拟角色,有时也被用于3D虚拟角色。该方法主要是通过固定的速度数值或者曲线计算角色位置,实现虚拟角色的跳跃动画等。但是这种方法,动画节奏不直接与角色动作例如跳跃/攀爬动画等匹配,缺乏真实感,修改动力学曲线匹配动画节奏后仍需要通过修改碰撞胶囊体长度以处理碰撞,计算比较复杂。
总之,相关技术虚拟角色的动画处理方法,计算比较复杂,处理效率较低。
发明内容
为解决或部分解决相关技术中存在的问题,本申请提供一种基于根骨骼的动画处理方法及装置,能够避免复杂计算,降低计算量,提高处理效率。
本申请第一方面提供一种基于根骨骼的动画处理方法,包括:
绘制角色的包含根骨骼和子骨骼的原始动画数据,复制所述原始动画数据得到备份动画数据;
基于世界坐标系为所述角色创建几何体,将所述几何体作为所述角色在竖直方向坐标的最底部骨骼的被父子约束的子物体;
通过为所述子物体逐帧保存关键帧,得到所述最底部骨骼在所述世界坐标系的位移动画数据,并将所述最底部骨骼在所述世界坐标系的位移动画数据赋予所述原始动画数据中的根骨骼;
在将备份动画数据中的子骨骼作为父物体与原始动画数据中的同一个子骨骼建立父子约束关系后,烘焙所述原始动画数据的关键帧,得到目标动画数据;
对所述目标动画数据进行烘焙,得到与所述目标动画数据对应的动画。
在一实施方式中,所述对所述目标动画数据进行烘焙,得到与所述目标动画数据对应的动画之前,还包括:
在所述目标动画数据中,将受重力下落的关键帧区间的根骨骼在竖直方向上的位移动画进行预设处理。
在一实施方式中,所述通过为所述子物体逐帧保存关键帧,得到所述最底部骨骼在所述世界坐标系的位移动画数据,并将所述最底部骨骼在所述世界坐标系的位移动画数据赋予所述原始动画数据中的根骨骼,包括:
根据所述原始动画数据为所述子物体逐帧保存关键帧,得到所述最底部骨骼在所述世界坐标系的位移动画数据,其中所述关键帧包括时间和每个骨骼的平移分量;
将所述最底部骨骼在所述世界坐标系的位移动画数据赋予所述原始动画数据中的根骨骼。
在一实施方式中,所述在将备份动画数据中的子骨骼作为父物体与原始动画数据中的同一个子骨骼建立父子约束关系后,烘焙所述原始动画数据的关键帧,得到目标动画数据,包括:
将备份动画数据中的子骨骼作为父物体与原始动画数据中的同一个子骨骼建立父子约束关系;
烘焙所述建立父子约束关系后的所述原始动画数据的关键帧,得到目标动画数据。
在一实施方式中,所述在所述目标动画数据中,将受重力下落的关键帧区间的根骨骼在竖直方向上的位移动画进行预设处理,包括:
在所述目标动画数据中,在所述角色在竖直方向到达最高点后,获取所述根骨骼在所述最高点时对应的关键帧的值,将最高点之后的关键帧的值设为所述最高点时对应的关键帧的值。
在一实施方式中,所述基于世界坐标系为所述角色创建几何体,将所述几何体作为所述角色在竖直方向坐标的最底部骨骼的被父子约束的子物体,包括:
基于世界坐标系为所述角色创建多边形对象,将所述多边形对象作为所述角色在竖直方向坐标的最底部骨骼的被父子约束的子物体。
在一实施方式中,所述位移动画数据以XYZ坐标方式存储,其中所述世界坐标系的Y轴为竖直方向,X轴和Y轴为水平面。
本申请第二方面提供一种基于根骨骼的动画处理装置,包括:
绘制模块,用于绘制角色的包含根骨骼和子骨骼的原始动画数据,复制所述原始动画数据得到备份动画数据;
创建模块,用于基于世界坐标系为所述角色创建几何体,将所述几何体作为所述角色在竖直方向坐标的最底部骨骼的被父子约束的子物体;
赋值模块,用于通过为所述子物体逐帧保存关键帧,得到所述最底部骨骼在所述世界坐标系的位移动画数据,并将所述最底部骨骼在所述世界坐标系的位移动画数据赋予所述原始动画数据中的根骨骼;
约束模块,用于在将备份动画数据中的子骨骼作为父物体与原始动画数据中的同一个子骨骼建立父子约束关系后,烘焙所述原始动画数据的关键帧,得到目标动画数据;
烘焙模块,用于对所述目标动画数据进行烘焙,得到与所述目标动画数据对应的动画。
在一实施方式中,所述装置还包括:
打平处理模块,用于在所述目标动画数据中,将受重力下落的关键帧区间的根骨骼在竖直方向上的位移动画进行预设处理;
所述烘焙模块在所述打平处理模块进行预设处理后,对所述目标动画数据进行烘焙。
在一实施方式中,所述赋值模块包括:
第一关键帧处理模块,用于根据所述原始动画数据为所述子物体逐帧保存关键帧,得到所述最底部骨骼在所述世界坐标系的位移动画数据,其中所述关键帧包括时间和每个骨骼的平移分量;
位移数据赋值模块,用于将所述最底部骨骼在所述世界坐标系的位移动画数据赋予所述原始动画数据中的根骨骼。
在一实施方式中,所述打平处理模块在所述目标动画数据中,在所述角色在竖直方向到达最高点后,获取所述根骨骼在所述最高点时对应的关键帧的值,将最高点之后的关键帧的值设为所述最高点时对应的关键帧的值。
本申请第三方面提供一种计算设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上所述的方法。
本申请第四方面提供一种计算机可读存储介质,其上存储有可执行代码,当所述可执行代码被计算设备的处理器执行时,使所述处理器执行如上所述的方法。
本申请提供的技术方案可以包括以下有益效果:
本申请实施例示出的技术方案,基于世界坐标系为所述角色创建几何体,将所述几何体作为所述角色在竖直方向坐标的最底部骨骼的被父子约束的子物体,通过为所述子物体逐帧保存关键帧,得到所述最底部骨骼在所述世界坐标系的位移动画数据,并将所述最底部骨骼在所述世界坐标系的位移动画数据赋予所述原始动画数据中的根骨骼;另外,在将备份动画数据中的子骨骼作为父物体与原始动画数据中的同一个子骨骼建立父子约束关系后,烘焙所述原始动画数据的关键帧,得到目标动画数据。因为本申请是以新建的几何体为载体来获取角色子骨骼在世界坐标系下的动画数据,可以直接通过复制粘贴动画曲线的方式传递给根骨骼,因此可以避免矩阵转化的重复复杂计算,降低计算量,提高处理效率,也为竖直方向上(Y轴)根骨骼位移动画处理提供了通用解决方案。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
通过结合附图对本申请示例性实施方式进行更详细地描述,本申请的上述以及其它目的、特征和优势将变得更加明显,其中,在本申请示例性实施方式中,相同的参考标号通常代表相同部件。
图1是本申请实施例示出的基于根骨骼的动画处理方法的流程示意图;
图2是本申请实施例示出的基于根骨骼的动画处理方法的另一流程示意图;
图3是本申请实施例示出的基于根骨骼的动画处理方法的世界坐标系的示意图;
图4是本申请实施例示出的基于根骨骼的动画处理方法中的角色的最低点骨骼的示意图;
图5是本申请实施例示出的基于根骨骼的动画处理方法中将受重力下落的关键帧区间的根骨骼在竖直方向上的位移动画进行预设处理的示意图;
图6是本申请实施例示出的基于根骨骼的动画处理装置的结构示意图;
图7是本申请实施例示出的基于根骨骼的动画处理装置的另一结构示意图;
图8是本申请实施例示出的计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本申请的实施方式。虽然附图中显示了本申请的实施方式,然而应该理解,可以以各种形式实现本申请而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本申请更加透彻和完整,并且能够将本申请的范围完整地传达给本领域的技术人员。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语“第一”、“第二”、“第三”等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
相关技术中的虚拟角色的动画处理方法,计算比较复杂,处理效率较低。本申请实施例提供一种基于根骨骼的动画处理方法,能够提高避免复杂计算,降低计算量,提高处理效率。
以下结合附图详细描述本申请实施例的技术方案。
图1是本申请实施例示出的基于根骨骼的动画处理方法的流程示意图。
参见图1,一种基于根骨骼的动画处理方法,包括:
S101、绘制角色的包含根骨骼和子骨骼的原始动画数据,复制原始动画数据得到备份动画数据。
该步骤中,可以根据角色的骨骼模型,绘制角色的包含根骨骼(Root)和子骨骼的原始动画数据。同时,复制原始动画数据得到备份动画数据以供后续的处理。
S102、基于世界坐标系为角色创建几何体,将几何体作为角色在竖直方向坐标的最底部骨骼的被父子约束的子物体。
其中,可以基于世界坐标系为角色创建多边形对象,将多边形对象作为角色在竖直方向坐标的最底部骨骼的被父子约束的子物体。
其中,位移动画数据以XYZ坐标方式存储,其中世界坐标系的Y轴为竖直方向,X轴和Y轴为水平面。
S103、通过为子物体逐帧保存关键帧,得到最底部骨骼在世界坐标系的位移动画数据,并将最底部骨骼在世界坐标系的位移动画数据赋予原始动画数据中的根骨骼。
其中,可以根据原始动画数据为子物体逐帧保存(烘焙动画)关键帧,得到最底部骨骼在世界坐标系的位移动画数据,其中关键帧包括时间和每个骨骼的平移分量;将最底部骨骼在世界坐标系的位移动画数据赋予原始动画数据中的根骨骼。
该步骤中,可以对多边形对象设置关键帧,例如根据原始动画数据,从动画开始到结束逐帧保存(烘焙动画)关键帧,以获取最低点骨骼在世界坐标系(世界空间)下的位移动画数据。逐帧,也即将所有帧设置为关键帧。
原始动画数据中的根骨骼,初始是无位移动画数据;该步骤是将其赋予上一步骤获得的最底部骨骼在世界坐标系的位移动画数据赋予原始动画数据中的根骨骼。
S104、在将备份动画数据中的子骨骼作为父物体与原始动画数据中的子骨骼建立父子约束关系后,烘焙原始动画数据的关键帧,得到目标动画数据。
其中,可以将备份动画数据中的子骨骼作为父物体与原始动画数据中的同名即同一个子骨骼建立父子约束关系,使该子骨骼及其更低层级下的骨骼的动画数据不因更高层级骨骼(如根骨骼)的动画数据发生变化而随之变化;烘焙建立父子约束关系后的原始动画数据的关键帧,得到目标动画数据。也就是说,相当于将复制体与原物体建立父子约束关系。
S105、对目标动画数据进行烘焙,得到与目标动画数据对应的动画。
该步骤可以利用相关技术中的烘焙技术,对目标动画数据进行烘焙,得到与目标动画数据对应的动画。烘焙在动画制作过程中指maya和3dsMax等三维制作软件将约束、控制器等对骨骼的控制效果的结果储存成固定动画数据的基本功能。
本申请实施例示出的技术方案,基于世界坐标系为角色创建几何体,将几何体作为角色在竖直方向坐标的最底部骨骼的被父子约束的子物体,通过为子物体逐帧保存关键帧,得到最底部骨骼在世界坐标系的位移动画数据,并将最底部骨骼在世界坐标系的位移动画数据赋予原始动画数据中的根骨骼;另外,在将备份动画数据中的子骨骼作为父物体与原始动画数据中的同一个子骨骼建立父子约束关系后,烘焙原始动画数据的关键帧,得到目标动画数据。因为本申请是以新建的几何体为载体来获取角色子骨骼在世界坐标系下的动画数据,可以直接通过复制粘贴动画曲线的方式传递给根骨骼,因此可以避免矩阵转化的重复复杂计算,降低计算量,提高处理效率,也为竖直方向上(Y轴)根骨骼位移动画处理提供了通用解决方案。
图2是本申请实施例示出的基于根骨骼的动画处理方法的另一流程示意图。图2相对于图1更详细描述了本申请的方案。
参见图2,一种基于根骨骼的动画处理方法,包括:
S201、绘制角色的包含根骨骼和子骨骼的原始动画数据,复制原始动画数据得到备份动画数据。
该步骤中,可以根据角色的骨骼模型,绘制角色的包含根骨骼(Root)和子骨骼的原始动画数据。同时,复制原始动画数据得到备份动画数据以供后续的处理。
在游戏中,角色的动画可以包括骨骼动画、顶点动画以及帧动画等。在骨骼动画中,游戏模型具有互相连接的“骨骼”组成的骨架结构,可以通过改变骨骼关节点的朝向和位置来为模型生成动画;在顶点动画中,每个关键帧都保存了特定时间的顶点位置数据,通过改变顶点位置数据形成动画。
根骨骼,作为最上级父骨骼储存角色动画的位移和旋转数据等,一般无权重,主要依靠与角色原始骨骼本身建立父子关系。根骨骼位移(RootMotion),属于移动组与动画系统相结合的一个部分,表示角色的整体运动(包括物理)是由动画来驱动。
其中,原始动画数据可以包括虚拟角色在一段运动过程中每条骨骼的骨骼数据,以及每条骨骼对应的关键帧动画等。例如,对于虚拟角色,可以包括头部、脖颈、左右肩膀、手肘、手腕、膝盖脚踝等骨骼关节点,各个骨骼关节点可以对应唯一的标识,则虚拟角色在一个运动过程中,同一个骨骼关节点可以在每个关键帧中均发生变化,也可以在一些关键帧中发生变化,而在一些帧中不发生变化。
以图4举例,以一段在设定软件例如MAYA软件中处理的人物角色在跑步中向前跳跃的动画为例说明,其中动画长度为70帧,第4-33帧为浮空状态(角色处于跳跃过程);第4-15帧最低点骨骼为左脚脚尖;第16-33帧最低点骨骼为右脚脚尖。其中MAYA软件是一种三维建模和动画软件。
S202、基于世界坐标系为角色创建几何体,将几何体作为角色在竖直方向坐标的最底部骨骼的被父子约束的子物体,其中最底部骨骼作为子物体的父物体。
本申请实施例中的几何体,可以是多边形对象但不局限于此。其中多边形对象例如可以是多边形球体对象。最底部骨骼,可以是角色在竖直方向上最低点骨骼(例如两个脚尖)。
该步骤中,可以基于世界坐标系为角色创建多边形对象,将多边形对象作为角色在竖直方向坐标的最底部骨骼的被父子约束的子物体,其中最底部骨骼作为子物体的父物体。
其中,世界坐标系可以参见图3所示,本申请中世界坐标系的Y轴为竖直方向,X轴和Y轴为水平面。如图3所示,空间的世界坐标系是一种左手直角坐标系,左手的大拇指和食指成“L”形,大拇指向右,食指向上,其余的手指指向前方,这样就建立了一个左手坐标系,大拇指、食指和其余手指分别代表X轴、Y轴、Z轴的正方向,即Z轴正向指向屏幕、X轴正向指向右边,Y轴正向指向垂直上方。
通过动画处理软件(例如MAYA软件)创建多边形对象,利用动画处理软件的父子约束功能将任意的多边形对象作为角色在竖直方向上最低点骨骼(例如两个脚尖)的子物体。例如,通过MAYA软件的父子约束功能,将新创建的两个多边形球体对象分别作为角色左右两个脚尖的子物体(被约束对象)。其中两个多边形球体对象可以按与脚尖的相对关系分别命名为左球和右球,右球如图4中401所示。
S203、根据原始动画数据为子物体逐帧保存关键帧,得到最底部骨骼在世界坐标系的位移动画数据,其中关键帧包括时间和每个骨骼的平移分量。
该步骤中,可以对多边形对象设置关键帧,例如根据原始动画数据,从动画开始到结束逐帧保存关键帧,以获取该最低点骨骼在世界坐标系(世界空间)下的位移动画数据。逐帧,也即将所有帧设置为关键帧。其中,多边形对象是作为储存坐标数据的载体,本身形状无意义。位移动画数据可以是以XYZ坐标方式存储,例如以XYZ坐标的方式储存在XYZ通道中。对于Y轴向上的坐标系,Y为竖直方向,XY为水平面。动画曲线编辑器是任一动画编辑软件支持的基本功能,可在编辑器中对骨骼Y通道动画曲线进行单独操作。同理,水平方向为单独处理XZ通道的动画数据。
其中,对多边形对象设置关键帧是从动画开始到结束逐帧设置,例如人形骨骼需要按两个脚部设置两次,四足动物骨骼则需要设置四次。
其中,对于每个关键帧,一般除了具有对应的时间外,还包含对应的数据,这些数据例如可以是每个骨骼的缩放、旋转和平移分量等。本申请实施例中,关键帧是包括时间和每个骨骼的平移分量。
S204、将最底部骨骼在世界坐标系的位移动画数据赋予原始动画数据中的根骨骼。
该步骤中,可以将关键帧最低点骨骼对应的世界坐标系下的位移动画数据赋予根骨骼。原始动画数据中的根骨骼,初始是无位移动画数据;该步骤是将其赋予上一步骤获得的最底部骨骼在世界坐标系的位移动画数据。也就是说,可以将任意多边形对象的动画曲线粘贴给根骨骼。例如,可以使用曲线编辑器,通过复制粘贴曲线的方式将关键帧最低点骨骼对应的世界坐标系下的位移动画数据赋予根骨骼。其中,第4-15帧最低点为左脚脚尖;第16-33帧最低点为右脚脚尖。
S205、将备份动画数据中的子骨骼作为父物体与原始动画数据中的子骨骼建立父子约束关系。
该步骤中,可以将备份动画数据(即复制的原始动画数据)的Root子骨骼(如biped或pelvis)作为父物体与原始动画数据中的Root子骨骼建立父子约束。也就是说,相当于将复制体与原物体建立父子约束关系。
S206、烘焙建立父子约束关系后的原始动画数据的关键帧,得到目标动画数据。
在将最底部骨骼在世界坐标系的位移动画数据赋予原始动画数据中的根骨骼,以及将备份动画数据中的子骨骼作为父物体与原始动画数据中的子骨骼建立父子约束关系之后,可以烘焙建立父子约束关系后的原始动画数据的关键帧,得到目标动画数据。
例如,通过烘焙关键帧,可以使得建立父子约束关系的约束结果固定为动画数据,此时的动画数据可以称为目标动画数据。
S207、在目标动画数据中,将受重力下落的关键帧区间的根骨骼在竖直方向上的位移动画进行预设处理。
其中,可以在目标动画数据中,在角色在竖直方向到达最高点后(即根骨骼动画曲线),获取根骨骼在最高点时对应的关键帧的值,将最高点之后的关键帧的Y通道的值设为最高点时对应的关键帧的值。
该步骤中,可以将受重力下落的关键帧区间的根骨骼在竖直方向上的位移动画打平以方便引擎内的重力效果表现。所谓打平,也即统一将之后的关键帧在Y轴上的值设置为区间第一帧的值。
也就是说,该步骤可以将受重力下落的关键帧区间(即角色到达最高点之后)的根骨骼在竖直方向上(Y轴)的位移动画打平。下落动画的第一帧为角色跳跃动画的最高点,之后的关键帧的数据则统一设置为第一帧的值,表现为动画曲线为水平直线。
例如,如图5所示,角色的根骨骼到达最高点501之后,根骨骼在竖直方向上的关键帧的最高点值为Y=1.1m,则之后的关键帧都设置为Y=1.1m,因此动画曲线为水平直线。通过上述处理,可以方便引擎内的重力效果表现,即防止动画自带的下落动画与重力加速叠加导致角色提前落地。
其中,受重力下落的关键帧区间,可以指角色跳跃达到最高点后所有的关键帧。
需说明的是,如果动画为攀爬动画无下落过程则此步骤S207可以省略。
S208、对目标动画数据进行烘焙,得到与目标动画数据对应的动画。
烘焙在动画制作过程中指maya和3dsMax等三维制作软件将约束、控制器等对骨骼的控制效果的结果储存成固定动画数据的基本功能。本申请可以直接利用相关烘焙技术对目标动画数据进行烘焙,对此并不加以限定。
从该实施例可以发现,本申请方案相比传统方案,可以实现竖直方向动画时最大化保留动画拆分后的过渡流畅性和跳过障碍物时的物理碰撞判定的精确性。本申请方案,通过父子约束以新建的几何体为载体来获取角色子骨骼在世界坐标系下的动画数据,可以避免矩阵转化的重复复杂计算。因为子骨骼的动画曲线的坐标系是基于父骨骼的本地坐标的,转化到世界坐标系是需要经过多级矩阵转化到世界坐标系为止,而本申请方案,新建几何体为载体获取的坐标动画数据是在世界坐标下的,因此可以直接通过复制粘贴动画曲线的方式传递给根骨骼。本申请的方案,也是一种基于根骨骼的竖直方向动画处理方法,可以用于处理虚拟角色动作的位移数据,可以保证如跳跃、攀爬动画位移的连贯性和碰撞胶囊体的同步。
与前述应用功能实现方法实施例相对应,本申请还提供了一种基于根骨骼的动画处理装置、计算设备及相应的实施例。
图6是本申请实施例示出的基于根骨骼的动画处理装置的结构示意图。
参见图6,一种基于根骨骼的动画处理装置60,包括:绘制模块61、创建模块62、赋值模块63、约束模块64、烘焙模块65。
绘制模块61,用于绘制角色的包含根骨骼和子骨骼的原始动画数据,复制原始动画数据得到备份动画数据。绘制模块61可以根据角色的骨骼模型,绘制角色的包含根骨骼(Root)和子骨骼的原始动画数据。同时,复制原始动画数据得到备份动画数据以供后续的处理。
创建模块62,用于基于世界坐标系为角色创建几何体,将几何体作为角色在竖直方向坐标的最底部骨骼的被父子约束的子物体。创建模块62可以基于世界坐标系为角色创建多边形对象,将多边形对象作为角色在竖直方向坐标的最底部骨骼的被父子约束的子物体。其中,位移动画数据以XYZ坐标方式存储,其中世界坐标系的Y轴为竖直方向,X轴和Y轴为水平面。
赋值模块63,用于通过为子物体逐帧保存关键帧,得到最底部骨骼在世界坐标系的位移动画数据,并将最底部骨骼在世界坐标系的位移动画数据赋予原始动画数据中的根骨骼。赋值模块63可以根据原始动画数据为子物体逐帧保存关键帧,得到最底部骨骼在世界坐标系的位移动画数据,其中关键帧包括时间和每个骨骼的平移分量;将最底部骨骼在世界坐标系的位移动画数据赋予原始动画数据中的根骨骼。原始动画数据中的根骨骼,初始是无位移动画数据;赋值模块63可以将获得的最底部骨骼在世界坐标系的位移动画数据赋予原始动画数据中的根骨骼。
约束模块64,用于在将备份动画数据中的子骨骼作为父物体与原始动画数据中的同一个子骨骼建立父子约束关系后,烘焙原始动画数据的关键帧,得到目标动画数据。约束模块64可以将备份动画数据中的子骨骼作为父物体与原始动画数据中的同一个子骨骼建立父子约束关系;烘焙建立父子约束关系后的原始动画数据的关键帧,得到目标动画数据。也就是说,相当于将复制体与原物体建立父子约束关系。
烘焙模块65,用于对目标动画数据进行烘焙,得到与目标动画数据对应的动画。烘焙模块65可以利用相关技术中的烘焙技术,对目标动画数据进行烘焙,得到与目标动画数据对应的动画。
图7是本申请实施例示出的基于根骨骼的动画处理装置的另一结构示意图。
参见图7,一种基于根骨骼的动画处理装置60,包括:绘制模块61、创建模块62、赋值模块63、约束模块64、烘焙模块65、打平处理模块66。其中,赋值模块63包括:第一关键帧处理模块631、位移数据赋值模块632。
打平处理模块66,用于在目标动画数据中,将受重力下落的关键帧区间的根骨骼在竖直方向上的位移动画进行预设处理;烘焙模块65在打平处理模块66进行预设处理后,对目标动画数据进行烘焙。
第一关键帧处理模块631,用于根据原始动画数据为子物体逐帧保存关键帧,得到最底部骨骼在世界坐标系的位移动画数据,其中关键帧包括时间和每个骨骼的平移分量;
位移数据赋值模块632,用于将最底部骨骼在世界坐标系的位移动画数据赋予原始动画数据中的根骨骼。
在一实施方式中,打平处理模块66在目标动画数据中,在角色在竖直方向到达最高点后(即根骨骼动画曲线),获取根骨骼在最高点时对应的关键帧的值,将最高点之后的关键帧的Y通道的值设为最高点时对应的关键帧的值。
在一实施方式中,约束模块64将备份动画数据中的子骨骼作为父物体与原始动画数据中的子骨骼建立父子约束关系;烘焙建立父子约束关系后的原始动画数据的关键帧,得到目标动画数据。
本申请实施例示出的基于根骨骼的动画处理装置,基于世界坐标系为角色创建几何体,将几何体作为角色在竖直方向坐标的最底部骨骼的被父子约束的子物体,通过为子物体逐帧保存关键帧,得到最底部骨骼在世界坐标系的位移动画数据,并将最底部骨骼在世界坐标系的位移动画数据赋予原始动画数据中的根骨骼;另外,在将备份动画数据中的子骨骼作为父物体与原始动画数据中的同一个子骨骼建立父子约束关系后,烘焙原始动画数据的关键帧,得到目标动画数据。因为本申请是以新建的几何体为载体来获取角色子骨骼在世界坐标系下的动画数据,可以直接通过复制粘贴动画曲线的方式传递给根骨骼,因此可以避免矩阵转化的重复复杂计算,降低计算量,提高处理效率,也为竖直方向上(Y轴)根骨骼位移动画处理提供了通用解决方案
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不再做详细阐述说明。
图8是本申请实施例示出的计算设备的结构示意图。
参见图8,计算设备700包括存储器710和处理器720。
处理器720可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器710可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM)和永久存储装置。其中,ROM可以存储处理器720或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器710可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(例如DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器710可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等)、磁性软盘等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器710上存储有可执行代码,当可执行代码被处理器720处理时,可以使处理器720执行上文述及的方法中的部分或全部。
此外,根据本申请的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本申请的上述方法中部分或全部步骤的计算机程序代码指令。
或者,本申请还可以实施为一种计算机可读存储介质(或非暂时性机器可读存储介质或机器可读存储介质),其上存储有可执行代码(或计算机程序或计算机指令代码),当可执行代码(或计算机程序或计算机指令代码)被计算设备(或服务器等)的处理器执行时,使处理器执行根据本申请的上述方法的各个步骤的部分或全部。
以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种基于根骨骼的动画处理方法,其特征在于,包括:
绘制角色的包含根骨骼和子骨骼的原始动画数据,复制所述原始动画数据得到备份动画数据;
基于世界坐标系为所述角色创建几何体,将所述几何体作为所述角色在竖直方向坐标的最底部骨骼的被父子约束的子物体;
通过为所述子物体逐帧保存关键帧,得到所述最底部骨骼在所述世界坐标系的位移动画数据,并将所述最底部骨骼在所述世界坐标系的位移动画数据赋予所述原始动画数据中的根骨骼;
在将备份动画数据中的子骨骼作为父物体与原始动画数据中的同一个子骨骼建立父子约束关系后,烘焙所述原始动画数据的关键帧,得到目标动画数据;
对所述目标动画数据进行烘焙,得到与所述目标动画数据对应的动画。
2.根据权利要求1所述的方法,其特征在于,所述对所述目标动画数据进行烘焙,得到与所述目标动画数据对应的动画之前,还包括:
在所述目标动画数据中,将受重力下落的关键帧区间的根骨骼在竖直方向上的位移动画进行预设处理。
3.根据权利要求1所述的方法,其特征在于,所述通过为所述子物体逐帧保存关键帧,得到所述最底部骨骼在所述世界坐标系的位移动画数据,并将所述最底部骨骼在所述世界坐标系的位移动画数据赋予所述原始动画数据中的根骨骼,包括:
根据所述原始动画数据为所述子物体逐帧保存关键帧,得到所述最底部骨骼在所述世界坐标系的位移动画数据,其中所述关键帧包括时间和每个骨骼的平移分量;
将所述最底部骨骼在所述世界坐标系的位移动画数据赋予所述原始动画数据中的根骨骼。
4.根据权利要求1所述的方法,其特征在于,所述在将备份动画数据中的子骨骼作为父物体与原始动画数据中的同一个子骨骼建立父子约束关系后,烘焙所述原始动画数据的关键帧,得到目标动画数据,包括:
将备份动画数据中的子骨骼作为父物体与原始动画数据中的同一个子骨骼建立父子约束关系;
烘焙所述建立父子约束关系后的所述原始动画数据的关键帧,得到目标动画数据。
5.根据权利要求2所述的方法,其特征在于,所述在所述目标动画数据中,将受重力下落的关键帧区间的根骨骼在竖直方向上的位移动画进行预设处理,包括:
在所述目标动画数据中,在所述角色在竖直方向到达最高点后,获取所述根骨骼在所述最高点时对应的关键帧的值,将最高点之后的关键帧的值设为所述最高点时对应的关键帧的值。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述基于世界坐标系为所述角色创建几何体,将所述几何体作为所述角色在竖直方向坐标的最底部骨骼的被父子约束的子物体,包括:
基于世界坐标系为所述角色创建多边形对象,将所述多边形对象作为所述角色在竖直方向坐标的最底部骨骼的被父子约束的子物体。
7.一种基于根骨骼的动画处理装置,其特征在于,包括:
绘制模块,用于绘制角色的包含根骨骼和子骨骼的原始动画数据,复制所述原始动画数据得到备份动画数据;
创建模块,用于基于世界坐标系为所述角色创建几何体,将所述几何体作为所述角色在竖直方向坐标的最底部骨骼的被父子约束的子物体;
赋值模块,用于通过为所述子物体逐帧保存关键帧,得到所述最底部骨骼在所述世界坐标系的位移动画数据,并将所述最底部骨骼在所述世界坐标系的位移动画数据赋予所述原始动画数据中的根骨骼;
约束模块,用于在将备份动画数据中的子骨骼作为父物体与原始动画数据中的同一个子骨骼建立父子约束关系后,烘焙所述原始动画数据的关键帧,得到目标动画数据;
烘焙模块,用于对所述目标动画数据进行烘焙,得到与所述目标动画数据对应的动画。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
打平处理模块,用于在所述目标动画数据中,将受重力下落的关键帧区间的根骨骼在竖直方向上的位移动画进行预设处理;
所述烘焙模块在所述打平处理模块进行预设处理后,对所述目标动画数据进行烘焙。
9.一种计算设备,其特征在于,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1-6中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,其上存储有可执行代码,当所述可执行代码被计算设备的处理器执行时,使所述处理器执行如权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310506671.4A CN116543080A (zh) | 2023-05-06 | 2023-05-06 | 基于根骨骼的动画处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310506671.4A CN116543080A (zh) | 2023-05-06 | 2023-05-06 | 基于根骨骼的动画处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116543080A true CN116543080A (zh) | 2023-08-04 |
Family
ID=87443052
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310506671.4A Pending CN116543080A (zh) | 2023-05-06 | 2023-05-06 | 基于根骨骼的动画处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116543080A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117021098A (zh) * | 2023-08-22 | 2023-11-10 | 北京中科深智科技有限公司 | 一种基于in-place动作生成world-place动作的方法 |
-
2023
- 2023-05-06 CN CN202310506671.4A patent/CN116543080A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117021098A (zh) * | 2023-08-22 | 2023-11-10 | 北京中科深智科技有限公司 | 一种基于in-place动作生成world-place动作的方法 |
CN117021098B (zh) * | 2023-08-22 | 2024-01-23 | 北京中科深智科技有限公司 | 一种基于in-place动作生成world-place动作的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8797328B2 (en) | Automatic generation of 3D character animation from 3D meshes | |
US7545378B2 (en) | Foot roll rigging | |
CN110766776B (zh) | 生成表情动画的方法及装置 | |
US20170132827A1 (en) | Data Driven Design and Animation of Animatronics | |
WO2021218482A1 (zh) | 角色变身动画的生成方法、装置、设备及可读存储介质 | |
US9147277B2 (en) | Systems and methods for portable animation rigs | |
KR20200102114A (ko) | 학습기반 3d 모델 생성 장치 및 방법 | |
US9519988B2 (en) | Subspace clothing simulation using adaptive bases | |
CN116543080A (zh) | 基于根骨骼的动画处理方法及装置 | |
CN1694126A (zh) | 一种三维场景动态建模和实时仿真的系统及方法 | |
CN112348931B (zh) | 脚部反向运动控制方法、装置、设备及存储介质 | |
CN104867171A (zh) | 一种三维角色的过渡动画生成方法 | |
CN115423907B (zh) | 角色模型身体绑定方法、装置、设备和存储介质 | |
CN107845126A (zh) | 一种三维动画制作方法及装置 | |
CN108346177B (zh) | 一种基于Unity3D的虚拟陶瓷设计方法 | |
CN108553900A (zh) | 一种基于ue引擎的可叠加存储反复使用的方法 | |
CN115984433A (zh) | 骨骼动画生成方法、装置、存储介质及电子设备 | |
Mahmudi et al. | Artist-oriented 3D character posing from 2D strokes | |
US8659600B2 (en) | Generating vector displacement maps using parameterized sculpted meshes | |
US11423601B1 (en) | Transforming a three-dimensional virtual model to a manipulatable format | |
US8890889B1 (en) | System and method for generating a pose of an object | |
JP2021056542A (ja) | 画像データからの物体のポーズ検出 | |
US9128516B1 (en) | Computer-generated imagery using hierarchical models and rigging | |
US11887244B2 (en) | Intersection testing for ray tracing | |
CN117372625A (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 |