CN112598773A - 骨骼蒙皮动画的实现方法及装置 - Google Patents
骨骼蒙皮动画的实现方法及装置 Download PDFInfo
- Publication number
- CN112598773A CN112598773A CN202011631542.0A CN202011631542A CN112598773A CN 112598773 A CN112598773 A CN 112598773A CN 202011631542 A CN202011631542 A CN 202011631542A CN 112598773 A CN112598773 A CN 112598773A
- Authority
- CN
- China
- Prior art keywords
- vertex
- bone
- root
- sub
- skeleton
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 210000000988 bone and bone Anatomy 0.000 claims abstract description 413
- 238000009877 rendering Methods 0.000 claims abstract description 29
- 239000011159 matrix material Substances 0.000 claims description 35
- 239000000463 material Substances 0.000 claims description 16
- 238000003860 storage Methods 0.000 claims description 9
- 230000009471 action Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 12
- 238000006073 displacement reaction Methods 0.000 description 10
- 230000000694 effects Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 239000002699 waste material Substances 0.000 description 4
- 241001465754 Metazoa Species 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 210000000610 foot bone Anatomy 0.000 description 2
- 210000002411 hand bone Anatomy 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
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
技术领域
本说明书涉及互联网技术领域,特别涉及骨骼蒙皮动画的实现方法、装置、计算设备及存储介质。
背景技术
骨骼蒙皮动画的基本原理是在骨骼的控制下通过顶点混合动态算法计算蒙皮网络的顶点,且子骨骼相对于根骨骼运动,并且由动画关键帧数据驱动。
现有技术中,一个骨骼模型中包括一个根骨骼,对应一个骨骼蒙皮动画,且该一个骨骼蒙皮动画对应目标对象的一个动作。若需要制作一个目标对象在空中飞行的骨骼蒙皮动画,且在飞行的过程中目标对象的手部有一个小动作,就需要制作两个骨骼蒙皮动画,一个是飞行过程中目标对象整体状态的动画,另一个是目标对象手部的小动作的动画,然后将该两个动画融合在一起,可以得到需要的骨骼蒙皮动画。
但上述方式中,一个目标对象有多少个动作就需要制作多少个动画,不仅浪费计算资源,还占用内存空间,且很难灵活地对目标对象的动作进行调整,因此需要更简单更便捷的方法实现骨骼蒙皮动画。
发明内容
有鉴于此,本说明书实施例提供了一种骨骼蒙皮动画的实现方法。本说明书同时涉及一种骨骼蒙皮动画的实现装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种骨骼蒙皮动画的实现方法,包括:
创建目标对象的骨骼模型,并在所述骨骼模型中设置至少两个根骨骼;
为每个根骨骼配置顶点权重表,得到至少两个顶点权重表,其中,每个根骨骼的顶点权重表包括所述骨骼模型对应的蒙皮网络中的顶点的顶点信息,每个顶点信息包括顶点的顶点标识和根骨骼对所述顶点的影响权重,每个影响权重用于表征根骨骼对所述顶点的影响程度;
获取所述目标对象的模型文件中存储的骨骼动画数据,基于所述骨骼动画数据和所述至少两个顶点权重表,确定所述蒙皮网络中每个顶点在世界坐标系下的实际位置;
基于所述蒙皮网络中每个顶点在世界坐标系下的实际位置对所述目标对象进行渲染,得到所述目标对象的骨骼蒙皮动画。
可选地,获取所述目标对象的模型文件中存储的骨骼动画数据,基于所述骨骼动画数据和所述至少两个顶点权重表,确定所述蒙皮网络中每个顶点在世界坐标系下的实际位置,包括:
从所述骨骼模型中获取每个根骨骼对应的子骨骼模型,得到至少两个子骨骼模型;
基于所述骨骼动画数据确定所述至少两个子骨骼模型中每个子骨骼模型对应的子蒙皮网络中每个顶点在世界坐标系下的参考位置;
基于所述至少两个顶点权重表和每个子骨骼模型对应的子蒙皮网络中每个顶点在世界坐标系下的参考位置,确定所述蒙皮网络中每个顶点在世界坐标系下的实际位置。
可选地,所述骨骼动画数据包括骨骼偏移矩阵、骨骼初始位置和骨骼关键帧数据,基于所述骨骼动画数据确定所述至少两个子骨骼模型中每个子骨骼模型对应的子蒙皮网络中每个顶点在世界坐标系下的参考位置,包括:
获取参考子骨骼模型对应的子蒙皮网络中每个顶点的初始位置信息,其中,每个顶点的初始位置信息是每个顶点在世界坐标系下的位置信息,所述参考子骨骼模型为所述至少两个子骨骼模型中的任意一个;
基于所述骨骼偏移矩阵、所述参考子骨骼模型对应的子蒙皮网络中每个顶点的初始位置信息、所述参考子骨骼模型中每个骨骼的初始位置和每个骨骼的骨骼关键帧数据,确定所述参考子骨骼模型对应的子蒙皮网络中每个顶点在世界坐标系下的参考位置。
可选地,基于所述骨骼偏移矩阵、所述参考子骨骼模型对应的子蒙皮网络中每个顶点的初始位置信息、所述参考子骨骼模型中每个骨骼的初始位置和每个骨骼的骨骼关键帧数据,确定所述参考子骨骼模型对应的子蒙皮网络中每个顶点在世界坐标系下的参考位置,包括:
基于所述骨骼偏移矩阵和所述参考子骨骼模型对应的子蒙皮网络中每个顶点的初始位置信息,确定每个顶点在参考根骨骼的骨骼坐标系下的中间位置信息,其中,所述参考根骨骼与所述参考子骨骼模型对应,且所述参考根骨骼为所述至少两个根骨骼中的任意一个;
基于每个顶点在所述参考根骨骼的骨骼坐标系下的中间位置信息、所述参考子骨骼模型中每个骨骼的初始位置和每个骨骼的骨骼关键帧数据,确定所述参考子骨骼模型对应的子蒙皮网络中每个顶点在世界坐标系下的参考位置。
可选地,基于所述至少两个顶点权重表和每个子骨骼模型对应的子蒙皮网络中每个顶点在世界坐标系下的参考位置,确定所述蒙皮网络中每个顶点在世界坐标系下的实际位置,包括:
基于每个子骨骼模型对应的子蒙皮网络中参考顶点在世界坐标系下的参考位置和每个根骨骼对应的顶点权重表,确定所述蒙皮网络中参考顶点在世界坐标系下的实际位置,其中,所述参考顶点为所述蒙皮网络中包括的任意一个顶点。
可选地,所述基于每个子骨骼模型对应的子蒙皮网络中参考顶点在世界坐标系下的参考位置和每个根骨骼对应的顶点权重表,确定所述蒙皮网络中参考顶点在世界坐标系下的实际位置,包括:
从所述每个根骨骼的顶点权重表中获取所述参考顶点的顶点信息,得到每个根骨骼对所述参考顶点的影响权重;
基于每个根骨骼对所述参考顶点的影响权重,确定每个根骨骼对所述参考顶点的新的影响权重;
基于每个根骨骼对所述参考顶点的新的影响权重和每个子骨骼模型对应的子蒙皮网络中所述参考顶点在世界坐标系下的参考位置,确定所述蒙皮网络中所述参考顶点在世界坐标系下的实际位置。
可选地,所述基于所述蒙皮网络中每个顶点在世界坐标系下的实际位置对所述目标对象进行渲染,包括:
获取材质数据,并基于所述材质数据和每个顶点在世界坐标系下的实际位置对所述目标对象进行渲染。
根据本说明书实施例的第二方面,提供了一种骨骼蒙皮动画的实现装置,包括:
创建模块,被配置为创建目标对象的骨骼模型,并在所述骨骼模型中设置至少两个根骨骼;
配置模块,被配置为为每个根骨骼配置顶点权重表,得到至少两个顶点权重表,其中,每个根骨骼的顶点权重表包括所述骨骼模型对应的蒙皮网络中的顶点的顶点信息,每个顶点信息包括顶点的顶点标识和根骨骼对所述顶点的影响权重,每个影响权重用于表征根骨骼对所述顶点的影响程度;
确定模块,被配置为获取所述目标对象的模型文件中存储的骨骼动画数据,基于所述骨骼动画数据和所述至少两个顶点权重表,确定所述蒙皮网络中每个顶点在世界坐标系下的实际位置;
渲染模块,被配置为基于所述蒙皮网络中每个顶点在世界坐标系下的实际位置对所述目标对象进行渲染,得到所述目标对象的骨骼蒙皮动画。
根据本说明书实施例的第三方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
创建目标对象的骨骼模型,并在所述骨骼模型中设置至少两个根骨骼;
为每个根骨骼配置顶点权重表,得到至少两个顶点权重表,其中,每个根骨骼的顶点权重表包括所述骨骼模型对应的蒙皮网络中的顶点的顶点信息,每个顶点信息包括顶点的顶点标识和根骨骼对所述顶点的影响权重,每个影响权重用于表征根骨骼对所述顶点的影响程度;
获取所述目标对象的模型文件中存储的骨骼动画数据,基于所述骨骼动画数据和所述至少两个顶点权重表,确定所述蒙皮网络中每个顶点在世界坐标系下的实际位置;
基于所述蒙皮网络中每个顶点在世界坐标系下的实际位置对所述目标对象进行渲染,得到所述目标对象的骨骼蒙皮动画。
根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述所述骨骼蒙皮动画的实现方法的步骤。
本说明书提供的骨骼蒙皮动画的实现方法,创建目标对象的骨骼模型,并在所述骨骼模型中设置至少两个根骨骼;为每个根骨骼配置顶点权重表,得到至少两个顶点权重表,其中,每个根骨骼的顶点权重表包括所述骨骼模型对应的蒙皮网络中的顶点的顶点信息,每个顶点信息包括顶点的顶点标识和根骨骼对所述顶点的影响权重,每个影响权重用于表征根骨骼对所述顶点的影响程度;获取所述目标对象的模型文件中存储的骨骼动画数据,基于所述骨骼动画数据和所述至少两个顶点权重表,确定所述蒙皮网络中每个顶点在世界坐标系下的实际位置;基于所述蒙皮网络中每个顶点在世界坐标系下的实际位置对所述目标对象进行渲染,得到所述目标对象的骨骼蒙皮动画。通过本申请实施例的方法,不用对目标对象的每个动作都制作骨骼蒙皮动画,减少计算资源的浪费和内存空间的占用,且通过调整根骨骼对顶点的影响权重能够灵活地对目标对象不同部位的动作进行调整,进而达到更丰富的动画效果。
附图说明
图1是本说明书一实施例提供的一种骨骼蒙皮动画的实现方法的流程图;
图2是本说明书一实施例提供的一种顶点权重表的示意图;
图3是本说明书一实施例提供的另一种顶点权重表的示意图;
图4是本说明书一实施例提供的一种子蒙皮网络的示意图;
图5是本说明书一实施例提供的一种应用于游戏场景的骨骼蒙皮动画的实现方法的方法的处理流程图;
图6是本说明书一实施例提供的又一种顶点权重表的示意图;
图7是本说明书一实施例提供的一种骨骼蒙皮动画的实现装置的结构示意图;
图8是本说明书一实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
骨骼蒙皮动画:特指skinned mesh,也称为骨骼动画,其基本原理是在骨骼的控制下通过顶点混合动态算法计算蒙皮网络的顶点,且子骨骼相对于根骨骼运动,并且由动画关键帧数据驱动。在骨骼蒙皮动画中,一个目标对象由作为皮肤的蒙皮网络和按照一定层次组织起来的骨骼组成。
蒙皮:是指将Mesh中的顶点附着(绑定)在骨骼之上,而且每个顶点可以被多个骨骼所控制,这样在关节处的顶点由于同时受到父子骨骼的拉扯而改变位置就消除了裂缝。
关键帧:记录有时间、位移旋转缩放值以及过渡插值的方式的骨骼变换信息。
目标对象:目标对象可以是虚拟场景中的游戏对象或游戏角色。例如,目标对象可以为虚拟场景中的人、动物、植物等等。
在本说明书中,提供了一种骨骼蒙皮动画的实现方法,本说明书同时涉及一种骨骼蒙皮动画的实现装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1示出了根据本说明书一实施例提供的一种骨骼蒙皮动画的实现方法的流程图,具体包括以下步骤:
步骤102:创建目标对象的骨骼模型,并在所述骨骼模型中设置至少两个根骨骼。
在实施中,可以为目标对象创建骨骼模型。其中,骨骼模型包括根骨骼和非根骨骼两种类型的骨骼,且根骨骼和非根骨骼之间存在一定层次,骨骼的层次描述了目标对象的结构。在一些实施例中,该骨骼模型中所有的骨骼按照父子关系组成一棵树,树干代表整个骨架,其余每个节点代表一个骨骼。
作为一种示例,可以采用poser软件或3ds MAX(3D Studio Max)软件为目标对象创建骨骼模型,本申请实施例对此不做限定。
其中,poser软件是一款可以进行三维动物、人体造型和三维人体动画制作的软件。3ds MAX软件是一款可以基于PC(Personal Computer,个人计算机)系统进行三维动画渲染和制作的软件。
作为一种示例,与现有的骨骼模型不同的是,该骨骼模型中可以包括至少两个根骨骼。具体的,可以将骨骼模型中会产生位置移动的部位对应的骨骼设定为根骨骼。例如,假设目标对象为游戏中的忍者,则忍者的骨骼模型中可以包括五个根骨骼,分别为初始根骨骼、左手骨骼、右手骨骼、左脚骨骼和右脚骨骼。
步骤104:为每个根骨骼配置顶点权重表,得到至少两个顶点权重表,其中,每个根骨骼的顶点权重表包括所述骨骼模型对应的蒙皮网络中的顶点的顶点信息,每个顶点信息包括顶点的顶点标识和根骨骼对所述顶点的影响权重,每个影响权重用于表征根骨骼对所述顶点的影响程度。
其中,顶点标识用于唯一标识一个顶点。作为一种示例,顶点标识可以为编号、标签、字母等。
在本说明书实施例中,以不同的根骨骼为参考根骨骼的情况下,可以从创建的骨骼模型中导出不同的子骨骼模型,且不同的子骨骼模型可以对应不同的子蒙皮网络,因此,目标对象的蒙皮网络中的顶点的位置可以由不同的子蒙皮网络中顶点的位置融合得到。因此,需要为每个根骨骼配置顶点权重表,确定根骨骼对每个顶点的影响权重。
作为一种示例,可以通过建模软件设置每个根骨骼的顶点权重表,或者,可以由人工设置每个根骨骼的顶点权重表。
在实施中,根骨骼对顶点的影响权重越大,说明该根骨骼对该顶点的影响越大,若该根骨骼的位置发生较大的变化,该顶点的位置也会产生较大的变化。根骨骼对顶点的影响权重越小,说明该根骨骼对该顶点的影响越小,若该根骨骼的位置发生较大的变化,该顶点的位置发生的变化可能较小。
作为一种示例,假设目标对象为忍者,以根骨骼A为例,且蒙皮网络中包括100个顶点,则根骨骼A的顶点权重表中包括100个顶点的顶点标识,且每个顶点标识对应一个影响权重,该影响权重表示根骨骼A对顶点标识指示的顶点的影响程度。例如,对于任一顶点a,该顶点a对应的影响权重是根骨骼A对该顶点a的影响程度。
示例性地,假设目标对象包括5个根骨骼,为每个根骨骼配置一个顶点权重表,则可以配置5个顶点权重表。如此,对于蒙皮网络中的任意一个顶点,该顶点可以对应5个影响权重,且该5个影响权重分别表示5个根骨骼对该顶点的影响程度。假设5个根骨骼的骨骼标识分别为A、B、C、D和E,且对于参考顶点a,该5个根骨骼均影响该参考顶点a,则在根骨骼A的顶点权重表中,该参考顶点a的顶点信息中包括顶点标识a和根骨骼A对该顶点的影响权重W1;在根骨骼B的顶点权重表中,该参考顶点a的顶点信息中包括顶点标识a和根骨骼B对该顶点的影响权重W2;在根骨骼C的顶点权重表中,该参考顶点a的顶点信息中包括顶点标识a和根骨骼对该顶点的影响权重W3;在根骨骼D的顶点权重表中,该参考顶点a的顶点信息中包括顶点标识a和根骨骼D对该顶点的影响权重W4;在根骨骼E的顶点权重表中,该参考顶点a的顶点信息中包括顶点标识a和根骨骼E对该顶点的影响权重W5。
示例性地,参见图2,图2是本说明书一示例性实施例示出的一种顶点权重表的示意图。图2示出的顶点权重表是根骨骼A的顶点权重表,且在图2中蒙皮网络包括15个顶点,每个顶点的值为该根骨骼A对该顶点的影响权重。其中,Ii表示顶点i,wAi表示根骨骼A对顶点i的影响权重。如顶点I1对应的影响权重为wA1,顶点I2对应的影响权重为wA2等等。
示例性地,参见图3,图3是本说明书一示例性实施例示出的另一种顶点权重表的示意图,且图3是将五个顶点权重表融合后得到的顶点权重表。在图3中蒙皮网络包括15个顶点I,其中,Ii表示顶点i,且每个顶点对应5个影响权重,每个顶点的5个影响权重为5个根骨骼对该顶点的影响程度。假设骨骼模型包括5个根骨骼,分别为A、B、C、D、E,则每个顶点的左上角的数值可以表示根骨骼A对该顶点的影响权重,每个顶点的右上角的数值可以表示根骨骼B对该顶点的影响权重,每个顶点的左下角的数值可以表示根骨骼C对该顶点的影响权重,每个顶点的右下角的数值可以表示根骨骼D对该顶点的影响权重。即wji表示根骨骼j对顶点i的影响权重。例如,wA1表示根骨骼A对顶点1的影响权重,wB1表示根骨骼B对顶点1的影响权重,wC1表示根骨骼C对顶点1的影响权重,wD1表示根骨骼D对顶点1的影响权重,wE1表示根骨骼E对顶点1的影响权重,wA3表示根骨骼A对顶点3的影响权重等等。
步骤106:获取所述目标对象的模型文件中存储的骨骼动画数据,基于所述骨骼动画数据和所述至少两个顶点权重表,确定所述蒙皮网络中每个顶点在世界坐标系下的实际位置。
作为一种示例,可以通过对目标对象的模型文件进行解析,可以得到存储的骨骼动画数据。
在实施中,基于所述骨骼动画数据和所述至少两个顶点权重表,确定所述蒙皮网络中每个顶点在世界坐标系下的实际位置的具体实现可以包括:从所述骨骼模型中获取每个根骨骼对应的子骨骼模型,得到至少两个子骨骼模型;基于所述骨骼动画数据确定所述至少两个子骨骼模型中每个子骨骼模型对应的子蒙皮网络中每个顶点在世界坐标系下的参考位置;基于所述至少两个顶点权重表和每个子骨骼模型对应的子蒙皮网络中每个顶点在世界坐标系下的参考位置,确定所述蒙皮网络中每个顶点在世界坐标系下的实际位置。
也就是说,可以以至少两个根骨骼分别为根骨骼,从骨骼模型中导出每个根骨骼对应的子骨骼模型,得到至少两个子骨骼模型,每个子骨骼模型可以对应一个子蒙皮网格,可以根据骨骼动画数据确定每个子蒙皮网络中每个顶点在世界坐标系下的参考位置,再根据顶点权重表和每个子蒙皮网络中每个顶点的参考位置,确定蒙皮网络中每个顶点在世界坐标系下的实际位置。
作为一种示例,在以某个根骨骼为参考根骨骼时,骨骼模型中除该参考根根骨骼之外的其他骨骼均是该参考根骨骼的子骨骼。并且,以不同的根骨骼为参考根骨骼,可以从骨骼模型中得到不同的子骨骼模型,且子骨骼模型可能包括骨骼模型中的所有骨骼,也可能包括骨骼模型中的部分骨骼。例如,以左手骨骼为参考根骨骼为例,从骨骼模型中得到的子骨骼模型可能包括手臂以及手对应的骨骼,可以不包括身体、右手、右脚、左腿等部位的骨骼。
由于骨骼模型中的骨骼与蒙皮网络中的顶点之间的相对位置是确定的,对顶点有影响的骨骼也是确定的,则子骨骼模型中可能不包括对某些顶点有影响的骨骼,因此,子骨骼模型对应有子蒙皮网络,该子蒙皮网络可能包括蒙皮网络中部分顶点。
示例性地,参见图4,图4是以根骨骼A为参考根骨骼从骨骼模型中导出的子骨骼模型对应的子蒙皮网络,该子蒙皮网络包括四个顶点,分别为I1、I2、I3和I4。
在本申请一种实施方式中,所述骨骼动画数据包括骨骼偏移矩阵、骨骼初始位置和骨骼关键帧数据,基于所述骨骼动画数据确定所述至少两个子骨骼模型中每个子骨骼模型对应的子蒙皮网络中每个顶点在世界坐标系下的参考位置的具体实现可以包括:获取参考子骨骼模型对应的子蒙皮网络中每个顶点的初始位置信息,其中,每个顶点的初始位置信息是每个顶点在世界坐标系下的位置信息,所述参考子骨骼模型为所述至少两个子骨骼模型中的任意一个;基于所述骨骼偏移矩阵、所述参考子骨骼模型对应的子蒙皮网络中每个顶点的初始位置信息、所述参考子骨骼模型中每个骨骼的初始位置和每个骨骼的骨骼关键帧数据,确定所述参考子骨骼模型对应的子蒙皮网络中每个顶点在世界坐标系下的参考位置。
作为一种示例,骨骼偏移矩阵可以是将顶点从蒙皮网络空间转换至骨骼空间的矩阵,可以称为Bone Offset Matrix。骨骼初始位置可以是骨骼在移动之前在世界坐标系下的位置。
在一些实施例中,以参考子骨骼模型为例,可以获取参考子骨骼模型对应的子蒙皮网络中每个顶点在骨骼移动之前的初始位置信息。
在一些实施例中,基于所述骨骼偏移矩阵、所述参考子骨骼模型对应的子蒙皮网络中每个顶点的初始位置信息、所述参考子骨骼模型中每个骨骼的初始位置和每个骨骼的骨骼关键帧数据,确定所述参考子骨骼模型对应的子蒙皮网络中每个顶点在世界坐标系下的参考位置的具体实现可以包括:基于所述骨骼偏移矩阵和所述参考子骨骼模型对应的子蒙皮网络中每个顶点的初始位置信息,确定每个顶点在参考根骨骼的骨骼坐标系下的中间位置信息,其中,所述参考根骨骼与所述参考子骨骼模型对应,且所述参考根骨骼为所述至少两个根骨骼中的任意一个;基于每个顶点在所述参考根骨骼的骨骼坐标系下的中间位置信息、所述参考子骨骼模型中每个骨骼的初始位置和每个骨骼的骨骼关键帧数据,确定所述参考子骨骼模型对应的子蒙皮网络中每个顶点在世界坐标系下的参考位置。
在一种可能的实现方式中,以参考顶点为例,可以根据骨骼偏移矩阵将子蒙皮网络中参考顶点的初始位置信息转换为在骨骼坐标系下的中间位置信息,可以根据参考顶点在参考根骨骼的骨骼坐标系下的中间位置信息、参考子骨骼模型中对参考顶点有影响的骨骼的初始位置和每个对参考顶点有影响的骨骼的骨骼关键帧数据,确定参考子骨骼模型对应的子蒙皮网络中参考顶点在世界坐标系下的参考位置。
作为一种示例,可以将子蒙皮网络中参考顶点的初始位置信息与骨骼偏移矩阵相乘,得到参考顶点在骨骼坐标系下的中间位置信息。
作为一种示例,骨骼关键帧数据可以包括骨骼位移数据(translation)、骨骼旋转数据(rotation)和骨骼缩放数据(scale)。并且,可以以该三组数据为元素组成一个4×4的骨骼关键帧矩阵。具体的,先通过骨骼旋转数据和骨骼缩放数据得到一个3×3的矩阵,再将骨骼位移数据加入3×3的矩阵中,得到一个4×4的骨骼关键帧矩阵。
示例性地,可以将骨骼位移数据中在x方向的位移数据作为3×3矩阵中第四行第一列的元素,将在y方向的位移数据作为3×3矩阵中第四行第二列的元素,将在z方向的位移数据作为3×3矩阵中第四行第三列的元素,将0作为3×3矩阵中第四行第四列的元素,可以得到4×4的骨骼关键帧矩阵。或者,示例性地,可以将骨骼位移数据中在x方向的位移数据作为3×3矩阵中第一行第四列的元素,将在y方向的位移数据作为3×3矩阵中第二行第四列的元素,将在z方向的位移数据作为3×3矩阵中第三行第四列的元素,将0作为3×3矩阵中第四行第四列的元素,可以得到4×4的骨骼关键帧矩阵。
作为一种示例,假设骨骼P和骨骼Q是子骨骼模型J中对参考顶点c有影响的两个骨骼。对于参考顶点c,基于参考顶点c在子骨骼模型J的根骨骼A的骨骼坐标系下的中间位置信息、骨骼P的初始位置和骨骼P对参考顶点c的影响权重,可以确定在骨骼P的影响下参考顶点c的第一位置,基于参考顶点c在根骨骼A的骨骼坐标系下的中间位置信息和骨骼P的初始位置、骨骼Q的初始位置和骨骼Q对参考顶点c的影响权重,可以确定在骨骼Q的影响下参考顶点c的第一位置,将在骨骼P的影响下参考顶点c的第一位置和在骨骼Q的影响下参考顶点c的第二位置叠加,可以确定在子骨骼模型J对应的子蒙皮网络中参考顶点c在世界坐标系下的参考位置。
通过上述方式,可以确定在子骨骼模型J对应的子蒙皮网络中每个顶点在世界坐标系下的参考位置,进而可以确定在每个子骨骼模型对应的子蒙皮网络中每个顶点在世界坐标系下的参考位置。
例如,以左手骨骼为参考根骨骼为例,该参考根骨骼对应的子骨骼模型可能包括手臂和手部的骨骼,因此,可以得到该子骨骼模型对应的子蒙皮网络中每个顶点在世界坐标系下的参考位置。
在本申请一种实施方式中,基于所述至少两个顶点权重表和每个子骨骼模型对应的子蒙皮网络中每个顶点在世界坐标系下的参考位置,确定所述蒙皮网络中每个顶点在世界坐标系下的实际位置的具体实现可以包括:基于每个子骨骼模型对应的子蒙皮网络中参考顶点在世界坐标系下的参考位置和每个根骨骼对应的顶点权重表,确定所述蒙皮网络中参考顶点在世界坐标系下的实际位置,其中,所述参考顶点为所述蒙皮网络中包括的任意一个顶点。
也就是说,以参考顶点为例,确定在每个子骨骼模型中参考顶点在世界坐标系下的参考位置后,可以根据每个根骨骼对该参考顶点的影响权重确定蒙皮网络中该参考顶点在世界坐标系下的实际位置。
在一些实施例中,所述基于每个子骨骼模型对应的子蒙皮网络中参考顶点在世界坐标系下的参考位置和每个根骨骼对应的顶点权重表,确定所述蒙皮网络中参考顶点在世界坐标系下的实际位置的具体实现可以包括:从所述每个根骨骼的顶点权重表中获取所述参考顶点的顶点信息,得到每个根骨骼对所述参考顶点的影响权重;基于每个根骨骼对所述参考顶点的影响权重,确定每个根骨骼对所述参考顶点的新的影响权重;基于每个根骨骼对所述参考顶点的新的影响权重和每个子骨骼模型对应的子蒙皮网络中所述参考顶点在世界坐标系下的参考位置,确定所述蒙皮网络中所述参考顶点在世界坐标系下的实际位置。
也就是说,对于参考顶点来说,可以从每个根骨骼的顶点权重表中确定每个根骨骼对该参考顶点的影响权重,由于至少两个根骨骼对同一个顶点的影响权重的和是1,则可以基于每个根骨骼对该参考顶点的影响权重确定每个根骨骼对参考顶点的新的影响权重,且至少两个根骨骼的新的影响权重的和是1,再根据每个根骨骼的新的影响权重和每个子骨骼模型对应的子蒙皮网络中参考顶点在世界坐标系下的参考位置,可以确定蒙皮网络中参考顶点在世界坐标系下的实际位置。
即对于蒙皮网络中的顶点来说,每个顶点包括至少两个在世界坐标系下的参考位置,且该至少两个参考位置是与子蒙皮网络对应的,需要基于该至少两个参考位置和每个根骨骼对顶点的影响权重,确定每个顶点在蒙皮网络中的实际位置。
示例性地,参见图3,以顶点I1为参考顶点,根骨骼A对顶点I1的影响权重为wA1,根骨骼B对顶点I1的影响权重为wB1,根骨骼C对顶点I1的影响权重为wC1,根骨骼D对顶点I1的影响权重为wD1,根骨骼E对顶点I1的影响权重为wE1,则可以确定根骨骼A对该顶点I1的新的影响权重是wA1÷(wA1+wB1+wC1+wD1+wE1)=wA1',确定根骨骼B对该顶点I1的新的影响权重是wB1÷(wA1+wB1+wC1+wD1+wE1)=wB1',确定根骨骼C对该顶点I1的新的影响权重是wC1÷(wA1+wB1+wC1+wD1+wE1)=wC1',确定根骨骼D对该顶点I1的新的影响权重是wD1÷(wA1+wB1+wC1+wD1+wE1)=wD1',确定根骨骼E对该顶点I1的新的影响权重是wE1÷(wA1+wB1+wC1+wD1+wE1)=wE1'。假设以根骨骼A为根骨骼的子骨骼模型对应的子蒙皮网格中该顶点I1在世界坐标系下的位置为L1,以根骨骼B为根骨骼的子骨骼模型对应的子蒙皮网格中该顶点I1在世界坐标系下的位置为L2,以根骨骼C为根骨骼的子骨骼模型对应的子蒙皮网格中该顶点I1在世界坐标系下的位置为L3,以根骨骼D为根骨骼的子骨骼模型对应的子蒙皮网络中该顶点I1在世界坐标系下的位置为L4,以根骨骼E为根骨骼的子骨骼模型对应的子蒙皮网络中该顶点I1在世界坐标系下的位置为L5,则可以确定蒙皮网络中该顶点I1在世界坐标系下的实际位置为wA1'×L1+wB1'×L2+wC1'×L3+wD1'×L4+wE1'×L5。
通过上述方法可以确定蒙皮网络中每个顶点在世界坐标系下的实际位置。
本申请实施例中,可以通过调整根骨骼对顶点的影响权重,进而调整骨骼的运动,能够灵活地对目标对象不同部位的动作进行调整。
步骤108:基于所述蒙皮网络中每个顶点在世界坐标系下的实际位置对所述目标对象进行渲染,得到所述目标对象的骨骼蒙皮动画.
在一些实施例中,本步骤的具体实现可以包括:获取材质数据,并基于所述材质数据和每个顶点在世界坐标系下的实际位置对所述目标对象进行渲染。
作为一种示例,材质数据可以包括蒙皮网格中每个网格对应的贴图路径、光照参数及绘制混合参数信息。
示例性地,可以根据材质数据和每帧每个顶点在世界坐标系下的实际位置,通过渲染工具对目标对象进行渲染,可以得到目标对象的骨骼蒙皮动画。
本说明书提供的骨骼蒙皮动画的实现方法,创建目标对象的骨骼模型,并在所述骨骼模型中设置至少两个根骨骼;为每个根骨骼配置顶点权重表,得到至少两个顶点权重表,其中,每个根骨骼的顶点权重表包括所述骨骼模型对应的蒙皮网络中的顶点的顶点信息,每个顶点信息包括顶点的顶点标识和根骨骼对所述顶点的影响权重,每个影响权重用于表征根骨骼对所述顶点的影响程度;获取所述目标对象的模型文件中存储的骨骼动画数据,基于所述骨骼动画数据和所述至少两个顶点权重表,确定所述蒙皮网络中每个顶点在世界坐标系下的实际位置;基于所述蒙皮网络中每个顶点在世界坐标系下的实际位置对所述目标对象进行渲染,得到所述目标对象的骨骼蒙皮动画。通过本申请实施例的方法,不用对目标对象的每个动作都制作骨骼蒙皮动画,减少计算资源的浪费和内存空间的占用,且通过调整根骨骼对顶点的影响权重能够灵活地对目标对象不同部位的动作进行调整,进而达到更丰富的动画效果。
下述结合附图5,以本说明书提供的骨骼蒙皮动画的实现方法在游戏场景的应用为例,对所述骨骼蒙皮动画的实现方法进行进一步说明。其中,图5示出了本说明书一实施例提供的一种应用于游戏场景的骨骼蒙皮动画的实现方法的方法的处理流程图,具体可以包括以下步骤:
步骤502,创建游戏角色的骨骼模型,并在骨骼模型中设置A、B、C、D和E五个根骨骼。
例如,假设游戏角色为人,可以为人创建骨骼模型,且除了原始的根骨骼E外,还可以将左手骨骼A、右手骨骼B、左脚骨骼C和右脚骨骼D设置为根骨骼。
在本申请实施例中,对骨骼模型的根骨骼的数量不作限定,本实施例仅以根骨骼的数量是五个为例对骨骼蒙皮动画的实现方法进行说明。
需要说明的是,步骤502的实现与步骤102相同,具体可以参见步骤102的相关描述,本实施例在此不再赘述。
步骤504,为每个根骨骼配置顶点权重表,得到五个顶点权重表。
其中,每个根骨骼的顶点权重表包括所述骨骼模型对应的蒙皮网络中的顶点的顶点信息,每个顶点信息包括顶点的顶点标识和根骨骼对所述顶点的影响权重,每个影响权重用于表征根骨骼对所述顶点的影响程度。
例如,参见图6,图6是将五个顶点权重表融合在一起得到的顶点权重表。其中,Ii表示顶点i,每个顶点左上角的数值表示根骨骼A对该顶点的影响权重,右上角的数值表示根骨骼B对该顶点的影响权重,左下角的数值表示根骨骼C对该顶点的影响权重,右下角的数值表示根骨骼D对该顶点的影响权重。从图中可以看出,根骨骼A对顶点I2的影响权重是0.5,根骨骼B对顶点I2的影响权重是0.5,根骨骼E对顶点I2的影响权重是1,而其他根骨骼对顶点I1的影响权重是0,以此类推,可以得到每个根骨骼对每个顶点的影响权重。
需要说明的是,步骤502的实现与步骤104相同,具体可以参见步骤104的相关描述,本实施例在此不再赘述。
步骤506,从骨骼模型中获取每个根骨骼对应的子骨骼模型,得到五个子骨骼模型。
例如,该五个骨骼模型分别为根骨骼A对应的子骨骼模型MA,根骨骼B对应的子骨骼模型MB,根骨骼C对应的子骨骼模型MC,根骨骼D对应的子骨骼模型MD,根骨骼E对应的子骨骼模型ME。
步骤508,以子骨骼模型MA为例,获取子骨骼模型MA对应的子蒙皮网络中每个顶点的初始位置信息。
步骤510,基于骨骼偏移矩阵和子骨骼模型MA对应的子蒙皮网络中每个顶点的初始位置信息,确定每个顶点在根骨骼A的骨骼坐标系下的中间位置信息。
步骤512,基于每个顶点在所述根骨骼A的骨骼坐标系下的中间位置信息、子骨骼模型MA中每个骨骼的初始位置和每个骨骼的骨骼关键帧数据,确定所述子骨骼模型MA对应的子蒙皮网络中每个顶点在世界坐标系下的参考位置。
例如,假设顶点I2在根骨骼A的骨骼坐标系下的中间位置信息为L2A。
步骤514,以顶点I2为例,从每个根骨骼的顶点权重表中获取顶点I2的顶点信息,得到每个根骨骼对顶点I2的影响权重。
继续上述举例,参见图6,可以得到根骨骼A对顶点I2的影响权重为0.5,根骨骼B对顶点为I2的影响权重为0.5,根骨骼C对顶点I2的影响权重为0,根骨骼D对顶点I2的影响权重为0,根骨骼E对顶点I2的影响权重为1。
步骤516,基于每个根骨骼对顶点I2的影响权重,确定每个根骨骼对顶点I2的新的影响权重。
继续上述举例,可以确定根骨骼A对顶点I2的新的影响权重为0.5÷(0.5+0.5+1)=0.25,根骨骼B对顶点I2的新的影响权重为0.5÷(0.5+0.5+1)=0.25,根骨骼C对顶点I2的新的影响权重为0,根骨骼D对顶点I5I2的新的影响权重为0,根骨骼E对顶点I2的新的影响权重为1÷(0.5+0.5+1)=0.5。
需要说明的是,通过上述步骤506-步骤516可以确定每个子蒙皮网络中每个顶点在世界坐标系下的参考位置。
步骤518,基于每个根骨骼对顶点I2的新的影响权重和每个子骨骼模型对应的子蒙皮网络中顶点I2在世界坐标系下的参考位置,确定所述蒙皮网络中顶点I2在世界坐标系下的实际位置。
例如,假设I2在根骨骼A的骨骼坐标系下的中间位置信息为L2A,I2在根骨骼B的骨骼坐标系下的中间位置信息为L2B,I2在根骨骼C的骨骼坐标系下的中间位置信息为L2C,I2在根骨骼D的骨骼坐标系下的中间位置信息为L2D,I2在根骨骼E的骨骼坐标系下的中间位置信息为L2E,根骨骼A对顶点I2的新的影响权重为0.25,根骨骼B对顶点I2的新的影响权重为0.25,根骨骼C对顶点I2的新的影响权重为0,根骨骼D对顶点I2的新的影响权重为0,根骨骼E对顶点I2的新的影响权重为0.5,可以确定蒙皮网络中顶点I2在世界坐标系下的实际位置为0.25×L2A+0.25×L2B+0×L2C+0×L2D+1×L2E。
需要说明的是,上述步骤506-步骤518是对步骤106的下位描述,具体实现可以参见步骤106的相关描述,本实施例在此不再赘述。
步骤520,获取材质数据,并基于所述材质数据和每个顶点在世界坐标系下的实际位置对所述目标对象进行渲染。
在一些实施例中,本步骤的具体实现可以包括:获取材质数据,并基于所述材质数据和每个顶点在世界坐标系下的实际位置对所述目标对象进行渲染。
作为一种示例,材质数据可以包括蒙皮网格中每个网格对应的贴图路径、光照参数及绘制混合参数信息。
示例性地,可以根据材质数据和每帧每个顶点在世界坐标系下的实际位置,通过渲染工具对目标对象进行渲染,可以得到目标对象的骨骼蒙皮动画。
本说明书提供的骨骼蒙皮动画的实现方法,创建目标对象的骨骼模型,并在所述骨骼模型中设置至少两个根骨骼;为每个根骨骼配置顶点权重表,得到至少两个顶点权重表,其中,每个根骨骼的顶点权重表包括所述骨骼模型对应的蒙皮网络中的顶点的顶点信息,每个顶点信息包括顶点的顶点标识和根骨骼对所述顶点的影响权重,每个影响权重用于表征根骨骼对所述顶点的影响程度;获取所述目标对象的模型文件中存储的骨骼动画数据,基于所述骨骼动画数据和所述至少两个顶点权重表,确定所述蒙皮网络中每个顶点在世界坐标系下的实际位置;基于所述蒙皮网络中每个顶点在世界坐标系下的实际位置对所述目标对象进行渲染,得到所述目标对象的骨骼蒙皮动画。通过本申请实施例的方法,不用对目标对象的每个动作都制作骨骼蒙皮动画,减少计算资源的浪费和内存空间的占用,且通过调整根骨骼对顶点的影响权重能够灵活地对目标对象不同部位的动作进行调整,进而达到更丰富的动画效果。
与上述方法实施例相对应,本说明书还提供了骨骼蒙皮动画的实现装置实施例,图7示出了本说明书一实施例提供的一种骨骼蒙皮动画的实现装置的结构示意图。如图7所示,该装置可以包括:
创建模块702,被配置为创建目标对象的骨骼模型,并在所述骨骼模型中设置至少两个根骨骼;
配置模块704,被配置为为每个根骨骼配置顶点权重表,得到至少两个顶点权重表,其中,每个根骨骼的顶点权重表包括所述骨骼模型对应的蒙皮网络中的顶点的顶点信息,每个顶点信息包括顶点的顶点标识和根骨骼对所述顶点的影响权重,每个影响权重用于表征根骨骼对所述顶点的影响程度;
确定模块706,被配置为获取所述目标对象的模型文件中存储的骨骼动画数据,基于所述骨骼动画数据和所述至少两个顶点权重表,确定所述蒙皮网络中每个顶点在世界坐标系下的实际位置;
渲染模块708,被配置为基于所述蒙皮网络中每个顶点在世界坐标系下的实际位置对所述目标对象进行渲染,得到所述目标对象的骨骼蒙皮动画。
可选地,确定模块706,被配置为:
从所述骨骼模型中获取每个根骨骼对应的子骨骼模型,得到至少两个子骨骼模型;
基于所述骨骼动画数据确定所述至少两个子骨骼模型中每个子骨骼模型对应的子蒙皮网络中每个顶点在世界坐标系下的参考位置;
基于所述至少两个顶点权重表和每个子骨骼模型对应的子蒙皮网络中每个顶点在世界坐标系下的参考位置,确定所述蒙皮网络中每个顶点在世界坐标系下的实际位置。
可选地,确定模块706,被配置为:
所述骨骼动画数据包括骨骼偏移矩阵、骨骼初始位置和骨骼关键帧数据,获取参考子骨骼模型对应的子蒙皮网络中每个顶点的初始位置信息,其中,每个顶点的初始位置信息是每个顶点在世界坐标系下的位置信息,所述参考子骨骼模型为所述至少两个子骨骼模型中的任意一个;
基于所述骨骼偏移矩阵、所述参考子骨骼模型对应的子蒙皮网络中每个顶点的初始位置信息、所述参考子骨骼模型中每个骨骼的初始位置和每个骨骼的骨骼关键帧数据,确定所述参考子骨骼模型对应的子蒙皮网络中每个顶点在世界坐标系下的参考位置。
可选地,确定模块706,被配置为:
基于所述骨骼偏移矩阵和所述参考子骨骼模型对应的子蒙皮网络中每个顶点的初始位置信息,确定每个顶点在参考根骨骼的骨骼坐标系下的中间位置信息,其中,所述参考根骨骼与所述参考子骨骼模型对应,且所述参考根骨骼为所述至少两个根骨骼中的任意一个;
基于每个顶点在所述参考根骨骼的骨骼坐标系下的中间位置信息、所述参考子骨骼模型中每个骨骼的初始位置和每个骨骼的骨骼关键帧数据,确定所述参考子骨骼模型对应的子蒙皮网络中每个顶点在世界坐标系下的参考位置。
可选地,确定模块706,被配置为:
基于每个子骨骼模型对应的子蒙皮网络中参考顶点在世界坐标系下的参考位置和每个根骨骼对应的顶点权重表,确定所述蒙皮网络中参考顶点在世界坐标系下的实际位置,其中,所述参考顶点为所述蒙皮网络中包括的任意一个顶点。
可选地,确定模块706,被配置为:
从所述每个根骨骼的顶点权重表中获取所述参考顶点的顶点信息,得到每个根骨骼对所述参考顶点的影响权重;
基于每个根骨骼对所述参考顶点的影响权重,确定每个根骨骼对所述参考顶点的新的影响权重;
基于每个根骨骼对所述参考顶点的新的影响权重和每个子骨骼模型对应的子蒙皮网络中所述参考顶点在世界坐标系下的参考位置,确定所述蒙皮网络中所述参考顶点在世界坐标系下的实际位置。
可选地,渲染模块708,被配置为:
获取材质数据,并基于所述材质数据和每个顶点在世界坐标系下的实际位置对所述目标对象进行渲染。
本说明书提供的骨骼蒙皮动画的实现方法,创建目标对象的骨骼模型,并在所述骨骼模型中设置至少两个根骨骼;为每个根骨骼配置顶点权重表,得到至少两个顶点权重表,其中,每个根骨骼的顶点权重表包括所述骨骼模型对应的蒙皮网络中的顶点的顶点信息,每个顶点信息包括顶点的顶点标识和根骨骼对所述顶点的影响权重,每个影响权重用于表征根骨骼对所述顶点的影响程度;获取所述目标对象的模型文件中存储的骨骼动画数据,基于所述骨骼动画数据和所述至少两个顶点权重表,确定所述蒙皮网络中每个顶点在世界坐标系下的实际位置;基于所述蒙皮网络中每个顶点在世界坐标系下的实际位置对所述目标对象进行渲染,得到所述目标对象的骨骼蒙皮动画。通过本申请实施例的方法,不用对目标对象的每个动作都制作骨骼蒙皮动画,减少计算资源的浪费和内存空间的占用,且通过调整根骨骼对顶点的影响权重能够灵活地对目标对象不同部位的动作进行调整,进而达到更丰富的动画效果。
上述为本实施例的一种骨骼蒙皮动画的实现装置的示意性方案。需要说明的是,该骨骼蒙皮动画的实现装置的技术方案与上述的骨骼蒙皮动画的实现方法的技术方案属于同一构思,骨骼蒙皮动画的实现装置的技术方案未详细描述的细节内容,均可以参见上述骨骼蒙皮动画的实现方法的技术方案的描述。
图8示出了根据本说明书一实施例提供的一种计算设备800的结构框图。该计算设备800的部件包括但不限于存储器810和处理器820。处理器820与存储器810通过总线830相连接,数据库850用于保存数据。
计算设备800还包括接入设备840,接入设备840使得计算设备800能够经由一个或多个网络860通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备840可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备800的上述部件以及图8中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图8所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备800可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备800还可以是移动式或静止式的服务器。
其中,处理器820用于执行如下计算机可执行指令:
创建目标对象的骨骼模型,并在所述骨骼模型中设置至少两个根骨骼;
为每个根骨骼配置顶点权重表,得到至少两个顶点权重表,其中,每个根骨骼的顶点权重表包括所述骨骼模型对应的蒙皮网络中的顶点的顶点信息,每个顶点信息包括顶点的顶点标识和根骨骼对所述顶点的影响权重,每个影响权重用于表征根骨骼对所述顶点的影响程度;
获取所述目标对象的模型文件中存储的骨骼动画数据,基于所述骨骼动画数据和所述至少两个顶点权重表,确定所述蒙皮网络中每个顶点在世界坐标系下的实际位置;
基于所述蒙皮网络中每个顶点在世界坐标系下的实际位置对所述目标对象进行渲染,得到所述目标对象的骨骼蒙皮动画。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的骨骼蒙皮动画的实现方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述骨骼蒙皮动画的实现方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以用于:
创建目标对象的骨骼模型,并在所述骨骼模型中设置至少两个根骨骼;
为每个根骨骼配置顶点权重表,得到至少两个顶点权重表,其中,每个根骨骼的顶点权重表包括所述骨骼模型对应的蒙皮网络中的顶点的顶点信息,每个顶点信息包括顶点的顶点标识和根骨骼对所述顶点的影响权重,每个影响权重用于表征根骨骼对所述顶点的影响程度;
获取所述目标对象的模型文件中存储的骨骼动画数据,基于所述骨骼动画数据和所述至少两个顶点权重表,确定所述蒙皮网络中每个顶点在世界坐标系下的实际位置;
基于所述蒙皮网络中每个顶点在世界坐标系下的实际位置对所述目标对象进行渲染,得到所述目标对象的骨骼蒙皮动画。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的骨骼蒙皮动画的实现方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述骨骼蒙皮动画的实现方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书并不受所描述的动作顺序的限制,因为依据本说明书,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
Claims (10)
1.一种骨骼蒙皮动画的实现方法,其特征在于,所述方法包括:
创建目标对象的骨骼模型,并在所述骨骼模型中设置至少两个根骨骼;
为每个根骨骼配置顶点权重表,得到至少两个顶点权重表,其中,每个根骨骼的顶点权重表包括所述骨骼模型对应的蒙皮网络中的顶点的顶点信息,每个顶点信息包括顶点的顶点标识和根骨骼对所述顶点的影响权重,每个影响权重用于表征根骨骼对所述顶点的影响程度;
获取所述目标对象的模型文件中存储的骨骼动画数据,基于所述骨骼动画数据和所述至少两个顶点权重表,确定所述蒙皮网络中每个顶点在世界坐标系下的实际位置;
基于所述蒙皮网络中每个顶点在世界坐标系下的实际位置对所述目标对象进行渲染,得到所述目标对象的骨骼蒙皮动画。
2.如权利要求1所述的骨骼蒙皮动画的实现方法,其特征在于,获取所述目标对象的模型文件中存储的骨骼动画数据,基于所述骨骼动画数据和所述至少两个顶点权重表,确定所述蒙皮网络中每个顶点在世界坐标系下的实际位置,包括:
从所述骨骼模型中获取每个根骨骼对应的子骨骼模型,得到至少两个子骨骼模型;
基于所述骨骼动画数据确定所述至少两个子骨骼模型中每个子骨骼模型对应的子蒙皮网络中每个顶点在世界坐标系下的参考位置;
基于所述至少两个顶点权重表和每个子骨骼模型对应的子蒙皮网络中每个顶点在世界坐标系下的参考位置,确定所述蒙皮网络中每个顶点在世界坐标系下的实际位置。
3.如权利要求2所述的骨骼蒙皮动画的实现方法,其特征在于,所述骨骼动画数据包括骨骼偏移矩阵、骨骼初始位置和骨骼关键帧数据,基于所述骨骼动画数据确定所述至少两个子骨骼模型中每个子骨骼模型对应的子蒙皮网络中每个顶点在世界坐标系下的参考位置,包括:
获取参考子骨骼模型对应的子蒙皮网络中每个顶点的初始位置信息,其中,每个顶点的初始位置信息是每个顶点在世界坐标系下的位置信息,所述参考子骨骼模型为所述至少两个子骨骼模型中的任意一个;
基于所述骨骼偏移矩阵、所述参考子骨骼模型对应的子蒙皮网络中每个顶点的初始位置信息、所述参考子骨骼模型中每个骨骼的初始位置和每个骨骼的骨骼关键帧数据,确定所述参考子骨骼模型对应的子蒙皮网络中每个顶点在世界坐标系下的参考位置。
4.如权利要求3所述的骨骼蒙皮动画的实现方法,其特征在于,基于所述骨骼偏移矩阵、所述参考子骨骼模型对应的子蒙皮网络中每个顶点的初始位置信息、所述参考子骨骼模型中每个骨骼的初始位置和每个骨骼的骨骼关键帧数据,确定所述参考子骨骼模型对应的子蒙皮网络中每个顶点在世界坐标系下的参考位置,包括:
基于所述骨骼偏移矩阵和所述参考子骨骼模型对应的子蒙皮网络中每个顶点的初始位置信息,确定每个顶点在参考根骨骼的骨骼坐标系下的中间位置信息,其中,所述参考根骨骼与所述参考子骨骼模型对应,且所述参考根骨骼为所述至少两个根骨骼中的任意一个;
基于每个顶点在所述参考根骨骼的骨骼坐标系下的中间位置信息、所述参考子骨骼模型中每个骨骼的初始位置和每个骨骼的骨骼关键帧数据,确定所述参考子骨骼模型对应的子蒙皮网络中每个顶点在世界坐标系下的参考位置。
5.如权利要求2所述的骨骼蒙皮动画的实现方法,其特征在于,基于所述至少两个顶点权重表和每个子骨骼模型对应的子蒙皮网络中每个顶点在世界坐标系下的参考位置,确定所述蒙皮网络中每个顶点在世界坐标系下的实际位置,包括:
基于每个子骨骼模型对应的子蒙皮网络中参考顶点在世界坐标系下的参考位置和每个根骨骼对应的顶点权重表,确定所述蒙皮网络中参考顶点在世界坐标系下的实际位置,其中,所述参考顶点为所述蒙皮网络中包括的任意一个顶点。
6.如权利要求5所述的骨骼蒙皮动画的实现方法,其特征在于,所述基于每个子骨骼模型对应的子蒙皮网络中参考顶点在世界坐标系下的参考位置和每个根骨骼对应的顶点权重表,确定所述蒙皮网络中参考顶点在世界坐标系下的实际位置,包括:
从所述每个根骨骼的顶点权重表中获取所述参考顶点的顶点信息,得到每个根骨骼对所述参考顶点的影响权重;
基于每个根骨骼对所述参考顶点的影响权重,确定每个根骨骼对所述参考顶点的新的影响权重;
基于每个根骨骼对所述参考顶点的新的影响权重和每个子骨骼模型对应的子蒙皮网络中所述参考顶点在世界坐标系下的参考位置,确定所述蒙皮网络中所述参考顶点在世界坐标系下的实际位置。
7.如权利要求1所述的骨骼蒙皮动画的实现方法,其特征在于,所述基于所述蒙皮网络中每个顶点在世界坐标系下的实际位置对所述目标对象进行渲染,包括:
获取材质数据,并基于所述材质数据和每个顶点在世界坐标系下的实际位置对所述目标对象进行渲染。
8.一种骨骼蒙皮动画的实现装置,其特征在于,所述装置包括:
创建模块,被配置为创建目标对象的骨骼模型,并在所述骨骼模型中设置至少两个根骨骼;
配置模块,被配置为为每个根骨骼配置顶点权重表,得到至少两个顶点权重表,其中,每个根骨骼的顶点权重表包括所述骨骼模型对应的蒙皮网络中的顶点的顶点信息,每个顶点信息包括顶点的顶点标识和根骨骼对所述顶点的影响权重,每个影响权重用于表征根骨骼对所述顶点的影响程度;
确定模块,被配置为获取所述目标对象的模型文件中存储的骨骼动画数据,基于所述骨骼动画数据和所述至少两个顶点权重表,确定所述蒙皮网络中每个顶点在世界坐标系下的实际位置;
渲染模块,被配置为基于所述蒙皮网络中每个顶点在世界坐标系下的实际位置对所述目标对象进行渲染,得到所述目标对象的骨骼蒙皮动画。
9.一种计算设备,其特征在于,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,以实现下述方法:
创建目标对象的骨骼模型,并在所述骨骼模型中设置至少两个根骨骼;
为每个根骨骼配置顶点权重表,得到至少两个顶点权重表,其中,每个根骨骼的顶点权重表包括所述骨骼模型对应的蒙皮网络中的顶点的顶点信息,每个顶点信息包括顶点的顶点标识和根骨骼对所述顶点的影响权重,每个影响权重用于表征根骨骼对所述顶点的影响程度;
获取所述目标对象的模型文件中存储的骨骼动画数据,基于所述骨骼动画数据和所述至少两个顶点权重表,确定所述蒙皮网络中每个顶点在世界坐标系下的实际位置;
基于所述蒙皮网络中每个顶点在世界坐标系下的实际位置对所述目标对象进行渲染,得到所述目标对象的骨骼蒙皮动画。
10.一种计算机可读存储介质,其存储有计算机指令,该计算机指令被处理器执行时实现权利要求1至7任意一项所述骨骼蒙皮动画的实现方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011631542.0A CN112598773B (zh) | 2020-12-31 | 2020-12-31 | 骨骼蒙皮动画的实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011631542.0A CN112598773B (zh) | 2020-12-31 | 2020-12-31 | 骨骼蒙皮动画的实现方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112598773A true CN112598773A (zh) | 2021-04-02 |
CN112598773B CN112598773B (zh) | 2024-10-18 |
Family
ID=75206559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011631542.0A Active CN112598773B (zh) | 2020-12-31 | 2020-12-31 | 骨骼蒙皮动画的实现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112598773B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112884868A (zh) * | 2021-04-30 | 2021-06-01 | 腾讯科技(深圳)有限公司 | 三维网格顶点特征确定方法、骨骼蒙皮方法及相关装置 |
CN112991503A (zh) * | 2021-04-22 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 一种基于蒙皮权重的模型训练方法、装置、设备及介质 |
CN113409430A (zh) * | 2021-06-01 | 2021-09-17 | 北京百度网讯科技有限公司 | 可驱动三维人物生成方法、装置、电子设备及存储介质 |
CN115049767A (zh) * | 2022-08-17 | 2022-09-13 | 深圳泽森软件技术有限责任公司 | 动画编辑方法、装置、计算机设备和存储介质 |
CN115661307A (zh) * | 2022-11-11 | 2023-01-31 | 阿里巴巴(中国)有限公司 | 服装动画生成方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104021584A (zh) * | 2014-06-25 | 2014-09-03 | 无锡梵天信息技术股份有限公司 | 一种骨骼蒙皮动画的实现方法 |
US20170032055A1 (en) * | 2015-07-27 | 2017-02-02 | Technische Universiteit Delft | Linear Blend Skinning Weight Optimization Utilizing Skeletal Pose Sampling |
CN106780766A (zh) * | 2016-11-24 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 匹配实现方法及相关装置 |
CN111161427A (zh) * | 2019-12-04 | 2020-05-15 | 北京代码乾坤科技有限公司 | 虚拟骨骼模型的自适应调节方法、装置及电子装置 |
CN111369649A (zh) * | 2018-12-26 | 2020-07-03 | 苏州笛卡测试技术有限公司 | 一种基于高精度三维扫描模型的制作计算机蒙皮动画的方法 |
-
2020
- 2020-12-31 CN CN202011631542.0A patent/CN112598773B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104021584A (zh) * | 2014-06-25 | 2014-09-03 | 无锡梵天信息技术股份有限公司 | 一种骨骼蒙皮动画的实现方法 |
US20170032055A1 (en) * | 2015-07-27 | 2017-02-02 | Technische Universiteit Delft | Linear Blend Skinning Weight Optimization Utilizing Skeletal Pose Sampling |
CN106780766A (zh) * | 2016-11-24 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 匹配实现方法及相关装置 |
CN111369649A (zh) * | 2018-12-26 | 2020-07-03 | 苏州笛卡测试技术有限公司 | 一种基于高精度三维扫描模型的制作计算机蒙皮动画的方法 |
CN111161427A (zh) * | 2019-12-04 | 2020-05-15 | 北京代码乾坤科技有限公司 | 虚拟骨骼模型的自适应调节方法、装置及电子装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112991503A (zh) * | 2021-04-22 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 一种基于蒙皮权重的模型训练方法、装置、设备及介质 |
CN112884868A (zh) * | 2021-04-30 | 2021-06-01 | 腾讯科技(深圳)有限公司 | 三维网格顶点特征确定方法、骨骼蒙皮方法及相关装置 |
CN112884868B (zh) * | 2021-04-30 | 2021-07-13 | 腾讯科技(深圳)有限公司 | 三维网格顶点特征确定方法、骨骼蒙皮方法及相关装置 |
CN113409430A (zh) * | 2021-06-01 | 2021-09-17 | 北京百度网讯科技有限公司 | 可驱动三维人物生成方法、装置、电子设备及存储介质 |
CN115049767A (zh) * | 2022-08-17 | 2022-09-13 | 深圳泽森软件技术有限责任公司 | 动画编辑方法、装置、计算机设备和存储介质 |
CN115661307A (zh) * | 2022-11-11 | 2023-01-31 | 阿里巴巴(中国)有限公司 | 服装动画生成方法及装置 |
CN115661307B (zh) * | 2022-11-11 | 2023-03-21 | 阿里巴巴(中国)有限公司 | 服装动画生成方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112598773B (zh) | 2024-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112598773B (zh) | 骨骼蒙皮动画的实现方法及装置 | |
KR101102778B1 (ko) | 리깅 복제를 통한 캐릭터 리깅 자동화 방법 및 장치 | |
JP2024522287A (ja) | 三次元人体再構成方法、装置、デバイスおよび記憶媒体 | |
CN109964255B (zh) | 使用3d视频数据的3d打印 | |
CN110992495B (zh) | 一种虚拟模型的变形方法及装置 | |
CN110766776A (zh) | 生成表情动画的方法及装置 | |
CN112950769A (zh) | 三维人体重建方法、装置、设备及存储介质 | |
CN111161365B (zh) | 一种骨骼动画数据的压缩方法及装置 | |
WO2004104749A2 (en) | Method for generating a baked component that approximates the behavior of animation models | |
CN115115752A (zh) | 虚拟服装的形变预测方法和装置、存储介质及电子设备 | |
Seo et al. | Rigging transfer | |
CN102682473A (zh) | 一种虚拟服装的实时物理建模方法 | |
CN111047675A (zh) | 一种头发仿真的方法及装置 | |
CN115908664B (zh) | 人机交互的动画生成方法、装置、计算机设备、存储介质 | |
CN115661307B (zh) | 服装动画生成方法及装置 | |
CN111192353A (zh) | 一种材质生成方法及装置 | |
JP2003337956A (ja) | コンピュータグラフィックス・アニメーション装置及びコンピュータグラフィックス・アニメーション方法 | |
CN111862330B (zh) | 模型获取方法和装置、存储介质和电子装置 | |
CN111744196B (zh) | 一种游戏任务中的任务目标引导方法及装置 | |
CN111784805B (zh) | 一种虚拟角色交互反馈方法和装置 | |
Yuan et al. | The Fusion Method of Virtual Reality Technology and 3D Movie Animation Design. | |
CN112017295A (zh) | 一种可调节动态头模型生成方法、终端和计算机存储介质 | |
CN116912433B (zh) | 三维模型骨骼绑定方法、装置、设备及存储介质 | |
US11803997B2 (en) | Automatic head pose neutralization and blend shape generation | |
CN113230657B (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 519000 Room 102, 202, 302 and 402, No. 325, Qiandao Ring Road, Tangjiawan Town, high tech Zone, Zhuhai City, Guangdong Province, Room 102 and 202, No. 327 and Room 302, No. 329 Applicant after: Zhuhai Jinshan Digital Network Technology Co.,Ltd. Address before: 519000 Room 102, 202, 302 and 402, No. 325, Qiandao Ring Road, Tangjiawan Town, high tech Zone, Zhuhai City, Guangdong Province, Room 102 and 202, No. 327 and Room 302, No. 329 Applicant before: ZHUHAI KINGSOFT ONLINE GAME TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant |