创建角色动画模型方法、装置、计算机设备和存储介质转让专利

申请号 : CN202210984057.4

文献号 : CN115049768B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陆树梁

申请人 : 深圳泽森软件技术有限责任公司

摘要 :

本申请涉及一种创建角色动画模型方法、装置、计算机设备和存储介质。所述方法包括:获取有限元网格、皮肤网格以及骨骼网格,有限元网格包含肌肉纤维方向;再根据皮肤网格的顶点的位置信息与皮肤顶点有限元单元得到皮肤顶点质心插值权重,实现将皮肤网格嵌入到有限元网格中,再根据骨骼网格的顶点的位置信息与骨骼顶点有限元单元得到骨骼顶点质心插值权重,实现将骨骼网格嵌入到有限元网格中;基于骨骼顶点质心插值权重以及有限元网格的弹性势能函数融合得到准静态方程;基于皮肤顶点质心插值权重与准静态方程得到角色动画模型,提高角色动画模型对应的三维动画角色在力的作用下产生自然形变的准确性。

权利要求 :

1.一种创建角色动画模型方法,其特征在于,所述方法包括:

获取有限元网格、皮肤网格以及骨骼网格,所述有限元网格包含肌肉纤维方向,所述有限元网格在发生形变时由所述肌肉纤维方向确定所述有限元网格的膨胀或收缩方向;

根据所述皮肤网格的顶点的位置信息与皮肤顶点有限元单元得到皮肤顶点质心插值权重,所述皮肤顶点有限元单元为所述有限元网格中包含所述皮肤网格的顶点的有限元单元,所述皮肤顶点质心插值权重表示所述皮肤顶点有限元单元与所述皮肤网格的顶点之间的位置关联关系;

根据所述骨骼网格的顶点的位置信息与骨骼顶点有限元单元得到骨骼顶点质心插值权重,所述骨骼顶点有限元单元为所述有限元网格中包含所述骨骼网格的顶点的有限元单元,所述骨骼顶点质心插值权重表示所述骨骼顶点有限元单元与所述骨骼网格的顶点之间的位置关联关系;

基于所述骨骼顶点质心插值权重以及所述有限元网格的弹性势能函数,融合得到准静态方程,所述弹性势能函数用于表征所述有限元网格在形变时所产生的弹性势能大小,所述准静态方程用于表征所述有限元网格所受外力与弹性力的平衡程度;

基于所述皮肤顶点质心插值权重与所述准静态方程得到角色动画模型,所述角色动画模型建立了所述皮肤网格、所述有限元网格以及所述骨骼网格之间的关联关系。

2.根据权利要求1所述的方法,其特征在于,所述基于所述骨骼顶点质心插值权重以及所述有限元网格的弹性势能函数,融合得到准静态方程,包括:根据所述骨骼网格的顶点位置信息、所述骨骼顶点质心插值权重、骨骼有限元位置因子以及所述骨骼顶点有限元单元体积值融合得到骨骼驱动项,所述骨骼有限元位置因子为所述骨骼顶点有限元单元的顶点的位置信息,所述骨骼驱动项用于表征所述骨骼网格的顶点与所述骨骼顶点有限元单元的位置差异;

根据所述骨骼驱动项与所述有限元网格的弹性势能函数融合得到准静态方程。

3.根据权利要求2所述的方法,其特征在于,所述根据所述骨骼驱动项与所述有限元网格的弹性势能函数融合得到准静态方程,包括:获取所述有限元网格的形变梯度,所述形变梯度用于表征所述有限元网格的局部形变程度;

对所述形变梯度进行奇异值分解,得到所述形变梯度对应的奇异值;

基于所述奇异值融合得到局部弹性势能函数;

基于所述局部弹性势能函数融合得到所述有限元网格的弹性势能函数;

基于所述骨骼驱动项与所述有限元网格的弹性势能函数融合得到准静态方程。

4.根据权利要求3所述的方法,其特征在于,所述获取所述有限元网格的形变梯度,包括:获取前置因子,所述前置因子为所述有限元网格中有限元单元的顶点在初始形变前的位置信息;

获取后置因子,所述后置因子为所述有限元网格中有限元单元的顶点在初始形变后的位置信息;

基于所述前置因子与所述后置因子融合得到所述有限元网格的形变梯度。

5.根据权利要求3所述的方法,其特征在于,所述基于所述骨骼驱动项与所述有限元网格的弹性势能函数融合得到准静态方程,包括:获取重力驱动项,所述重力驱动项表示重力场对所述有限元网格所施加的重力作用;

基于所述骨骼驱动项、所述重力驱动项与所述有限元网格的弹性势能函数融合得到准静态方程。

6.根据权利要求1所述的方法,其特征在于,所述基于所述皮肤顶点质心插值权重与所述准静态方程得到角色动画模型,包括:通过求解所述准静态方程,得到所述有限元网格在受力平衡状态下有限元单元的顶点形变后的位置信息;

根据所述皮肤顶点质心插值权重与所述皮肤顶点有限元单元的顶点形变后的位置信息,得到所述角色动画模型,所述角色动画模型用于求解对应形变后所述皮肤网格的顶点的位置信息。

7.根据权利要求1所述的方法,其特征在于,所述角色动画模型中,所述皮肤网格被包含在所述有限元网格内部,所述骨骼网格被包含在所述皮肤网格内部。

8.一种创建角色动画模型装置,其特征在于,所述装置包括:

网格获取模块,用于获取有限元网格、皮肤网格以及骨骼网格,所述有限元网格包含肌肉纤维方向,所述有限元网格在发生形变时由所述肌肉纤维方向确定所述有限元网格的膨胀或收缩方向;

皮肤顶点质心插值权重生成模块,用于根据所述皮肤网格的顶点的位置信息与皮肤顶点有限元单元得到皮肤顶点质心插值权重,所述皮肤顶点有限元单元为所述有限元网格中包含所述皮肤网格的顶点的有限元单元,所述皮肤顶点质心插值权重表示所述皮肤顶点有限元单元与所述皮肤网格的顶点之间的位置关联关系;

骨骼顶点质心插值权重生成模块,用于根据所述骨骼网格的顶点的位置信息与骨骼顶点有限元单元得到骨骼顶点质心插值权重,所述骨骼顶点有限元单元为所述有限元网格中包含所述骨骼网格的顶点的有限元单元,所述骨骼顶点质心插值权重表示所述骨骼顶点有限元单元与所述骨骼网格的顶点之间的位置关联关系;

准静态方程生成模块,用于基于所述骨骼顶点质心插值权重以及所述有限元网格的弹性势能函数,融合得到准静态方程,所述弹性势能函数用于表征所述有限元网格在形变时所产生的弹性势能大小,所述准静态方程用于表征所述有限元网格所受外力与弹性力的平衡程度;

角色动画模型生成模块,用于基于所述皮肤顶点质心插值权重与所述准静态方程得到角色动画模型,所述角色动画模型建立了所述皮肤网格、所述有限元网格以及所述骨骼网格之间的关联关系。

9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。

10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。

说明书 :

创建角色动画模型方法、装置、计算机设备和存储介质

技术领域

[0001] 本申请涉及计算机技术领域,特别是涉及一种创建角色动画模型方法、装置、计算机设备和存储介质。

背景技术

[0002] 随着计算机技术的发展,三维动画设计在产业发展中取得了巨大的经济效益和社会效益,而三维动画角色的设计是三维动画设计中的重要部分。
[0003] 传统技术中,创建数字角色动画模型时需要人工对三维动画中数字角色的各个控制节点的影响权重进行绑定设置,然后再基于各个控制节点和所绑定的影响权重,生成数字角色模型所对应的三维动画,但采用人工绑定权重的方式,难以预先进行准确的配置,容易导致角色动画模型对应的三维动画角色发生非自然形变的情况。

发明内容

[0004] 基于此,有必要针对上述技术问题,提供一种创建角色动画模型方法、装置、计算机设备和存储介质,提高角色动画模型对应的三维动画角色在力的作用下产生自然形变的准确性。
[0005] 一种创建角色动画模型方法,包括:
[0006] 获取有限元网格、皮肤网格以及骨骼网格,有限元网格包含肌肉纤维方向,有限元网格在发生形变时由肌肉纤维方向确定有限元网格的膨胀或收缩方向;
[0007] 根据皮肤网格的顶点的位置信息与皮肤顶点有限元单元得到皮肤顶点质心插值权重,皮肤顶点有限元单元为有限元网格中包含皮肤网格的顶点的有限元单元,皮肤顶点质心插值权重表示皮肤顶点有限元单元与皮肤网格的顶点之间的位置关联关系;
[0008] 根据骨骼网格的顶点的位置信息与骨骼顶点有限元单元得到骨骼顶点质心插值权重,骨骼顶点有限元单元为有限元网格中包含骨骼网格的顶点的有限元单元,骨骼顶点质心插值权重表示骨骼顶点有限元单元与骨骼网格的顶点之间的位置关联关系;
[0009] 基于骨骼顶点质心插值权重以及有限元网格的弹性势能函数,融合得到准静态方程,弹性势能函数用于表征有限元网格在形变时所产生的弹性势能大小,准静态方程用于表征有限元网格所受外力与弹性力的平衡程度;
[0010] 基于皮肤顶点质心插值权重与准静态方程得到角色动画模型,角色动画模型建立了皮肤网格、有限元网格以及骨骼网格之间的关联关系。
[0011] 在一个实施例中,基于骨骼顶点质心插值权重以及有限元网格的弹性势能函数,融合得到准静态方程,包括:
[0012] 根据骨骼网格的顶点位置信息、骨骼顶点质心插值权重、骨骼有限元位置因子以及骨骼顶点有限元单元体积值融合得到骨骼驱动项,骨骼有限元位置因子为骨骼顶点有限元单元的顶点的位置信息,骨骼驱动项用于表征骨骼网格的顶点与骨骼顶点有限元单元的位置差异;
[0013] 根据骨骼驱动项与有限元网格的弹性势能函数融合得到准静态方程。
[0014] 在一个实施例中,根据骨骼驱动项与有限元网格的弹性势能函数融合得到准静态方程,包括:
[0015] 获取有限元网格的形变梯度,形变梯度用于表征有限元网格的局部形变程度;
[0016] 对形变梯度进行奇异值分解,得到形变梯度对应的奇异值;
[0017] 基于奇异值融合得到局部弹性势能函数;
[0018] 基于局部弹性势能函数融合得到有限元网格的弹性势能函数;
[0019] 基于骨骼驱动项与有限元网格的弹性势能函数融合得到准静态方程。
[0020] 在一个实施例中,获取有限元网格的形变梯度,包括:
[0021] 获取前置因子,前置因子为有限元网格中有限元单元的顶点在初始形变前的位置信息;
[0022] 获取后置因子,后置因子为有限元网格中有限元单元的顶点在初始形变后的位置信息;
[0023] 基于前置因子与后置因子融合得到有限元网格的形变梯度。
[0024] 在一个实施例中,基于骨骼驱动项与有限元网格的弹性势能函数融合得到准静态方程,包括:
[0025] 获取重力驱动项,重力驱动项表示重力场对有限元网格所施加的重力作用;
[0026] 基于骨骼驱动项、重力驱动项与有限元网格的弹性势能函数融合得到准静态方程。
[0027] 在一个实施例中,基于皮肤顶点质心插值权重与准静态方程得到角色动画模型,包括:
[0028] 通过求解准静态方程,得到有限元网格在受力平衡状态下有限元单元的顶点形变后的位置信息;
[0029] 根据皮肤顶点质心插值权重与皮肤顶点有限元单元的顶点形变后的位置信息,得到角色动画模型,角色动画模型用于求解对应形变后皮肤网格的顶点的位置信息。
[0030] 在一个实施例中,角色动画模型中,皮肤网格被包含在有限元网格内部,骨骼网格被包含在皮肤网格内部。
[0031] 一种创建角色动画模型装置,包括:
[0032] 网格获取模块,用于获取有限元网格、皮肤网格以及骨骼网格,有限元网格包含肌肉纤维方向,有限元网格在发生形变时由肌肉纤维方向确定有限元网格的膨胀或收缩方向;
[0033] 皮肤顶点质心插值权重生成模块,用于根据皮肤网格的顶点的位置信息与皮肤顶点有限元单元得到皮肤顶点质心插值权重,皮肤顶点有限元单元为有限元网格中包含皮肤网格的顶点的有限元单元,皮肤顶点质心插值权重表示皮肤顶点有限元单元与皮肤网格的顶点之间的位置关联关系;
[0034] 骨骼顶点质心插值权重生成模块,用于根据骨骼网格的顶点的位置信息与骨骼顶点有限元单元得到骨骼顶点质心插值权重,骨骼顶点有限元单元为有限元网格中包含骨骼网格的顶点的有限元单元,骨骼顶点质心插值权重表示骨骼顶点有限元单元与骨骼网格的顶点之间的位置关联关系;
[0035] 准静态方程生成模块,用于基于骨骼顶点质心插值权重以及有限元网格的弹性势能函数,融合得到准静态方程,弹性势能函数用于表征有限元网格在形变时所产生的弹性势能大小,准静态方程用于表征有限元网格所受外力与弹性力的平衡程度;
[0036] 角色动画模型生成模块,用于基于皮肤顶点质心插值权重与准静态方程得到角色动画模型,角色动画模型建立了皮肤网格、有限元网格以及骨骼网格之间的关联关系。
[0037] 一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:
[0038] 获取有限元网格、皮肤网格以及骨骼网格,有限元网格包含肌肉纤维方向,有限元网格在发生形变时由肌肉纤维方向确定有限元网格的膨胀或收缩方向;
[0039] 根据皮肤网格的顶点的位置信息与皮肤顶点有限元单元得到皮肤顶点质心插值权重,皮肤顶点有限元单元为有限元网格中包含皮肤网格的顶点的有限元单元,皮肤顶点质心插值权重表示皮肤顶点有限元单元与皮肤网格的顶点之间的位置关联关系;
[0040] 根据骨骼网格的顶点的位置信息与骨骼顶点有限元单元得到骨骼顶点质心插值权重,骨骼顶点有限元单元为有限元网格中包含骨骼网格的顶点的有限元单元,骨骼顶点质心插值权重表示骨骼顶点有限元单元与骨骼网格的顶点之间的位置关联关系;
[0041] 基于骨骼顶点质心插值权重以及有限元网格的弹性势能函数,融合得到准静态方程,弹性势能函数用于表征有限元网格在形变时所产生的弹性势能大小,准静态方程用于表征有限元网格所受外力与弹性力的平衡程度;
[0042] 基于皮肤顶点质心插值权重与准静态方程得到角色动画模型,角色动画模型建立了皮肤网格、有限元网格以及骨骼网格之间的关联关系。
[0043] 一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
[0044] 获取有限元网格、皮肤网格以及骨骼网格,有限元网格包含肌肉纤维方向,有限元网格在发生形变时由肌肉纤维方向确定有限元网格的膨胀或收缩方向;
[0045] 根据皮肤网格的顶点的位置信息与皮肤顶点有限元单元得到皮肤顶点质心插值权重,皮肤顶点有限元单元为有限元网格中包含皮肤网格的顶点的有限元单元,皮肤顶点质心插值权重表示皮肤顶点有限元单元与皮肤网格的顶点之间的位置关联关系;
[0046] 根据骨骼网格的顶点的位置信息与骨骼顶点有限元单元得到骨骼顶点质心插值权重,骨骼顶点有限元单元为有限元网格中包含骨骼网格的顶点的有限元单元,骨骼顶点质心插值权重表示骨骼顶点有限元单元与骨骼网格的顶点之间的位置关联关系;
[0047] 基于骨骼顶点质心插值权重以及有限元网格的弹性势能函数,融合得到准静态方程,弹性势能函数用于表征有限元网格在形变时所产生的弹性势能大小,准静态方程用于表征有限元网格所受外力与弹性力的平衡程度;
[0048] 基于皮肤顶点质心插值权重与准静态方程得到角色动画模型,角色动画模型建立了皮肤网格、有限元网格以及骨骼网格之间的关联关系。
[0049] 上述创建角色动画模型方法、装置、计算机设备和存储介质,通过获取有限元网格、皮肤网格以及骨骼网格,其中,有限元网格包含肌肉纤维方向,有限元网格在发生形变时由肌肉纤维方向确定有限元网格的膨胀或收缩方向;再根据皮肤网格的顶点位置信息与皮肤顶点有限元单元得到皮肤顶点质心插值权重,实现将皮肤网格嵌入到有限元网格中,再根据骨骼网格的顶点位置信息与骨骼顶点有限元单元得到骨骼顶点质心插值权重,实现将骨骼网格嵌入到有限元网格中;基于骨骼顶点质心插值权重以及有限元网格的弹性势能函数,融合得到准静态方程;基于皮肤顶点质心插值权重与准静态方程得到角色动画模型,由此通过角色动画模型建立了皮肤网格、有限元网格以及骨骼网格之间的关联关系。这样,角色动画模型的骨骼网格或其他外力负载来驱动着有限元网格的运动或发生形变,再由有限元网格的运动或形变带动着皮肤网格的运动或形变,而且在有限元网格发生非线性的体积形变时,皮肤网格的形变方向以及形变程度能够通过肌肉纤维方向进行自适应地调整,另外,肌肉在没有外力负载作用的情况下,也能通过自身电信号激发可以自主发生形变,也会驱使着有限元网格中的有限元单元沿着肌肉纤维方向发生形变,使之产生自然形变,提高角色动画模型对应的三维动画角色在力的作用下产生自然形变的准确性。

附图说明

[0050] 图1为一个实施例中创建角色动画模型方法的应用环境图;
[0051] 图2为一个实施例中创建角色动画模型方法的流程示意图;
[0052] 图3为一个实施例中构建准静态方程的流程示意图;
[0053] 图4为一个实施例中基于骨骼驱动项构建准静态方程的流程示意图;
[0054] 图5为一个实施例中生成形变梯度的流程示意图;
[0055] 图6为一个实施例中构建含重力驱动的准静态方程的流程示意图;
[0056] 图7为一个实施例中生成角色动画模型的流程示意图;
[0057] 图8为一个实施例中数字动画角色的有限元网格的示意图;
[0058] 图9为一个实施例中内嵌有肌肉模型的有限元网格的示意图;
[0059] 图10为一个实施例中内嵌有皮肤网格的有限元网格的示意图;
[0060] 图11为一个实施例中内嵌有皮肤网格的有限元网格局部放大的示意图;
[0061] 图12为一个实施例中内嵌有骨骼网格的有限元网格的示意图;
[0062] 图13为一个实施例中有限元网格、皮肤网格以及骨骼网格绑定后的示意图;
[0063] 图14为一个实施例中创建角色动画模型装置结构框图;
[0064] 图15为一个实施例中计算机设备的内部结构图。

具体实施方式

[0065] 为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0066] 本申请实施例提供的创建角色动画模型方法,可以应用于如图1所示的应用环境中。如图1所示,计算机设备102获取数字动画角色的皮肤网格模型、骨骼网格模型以及有限元网格,计算机设备102利用质心插值的方式将数字动画角色的皮肤网格嵌入到有限元网格中,将骨骼网格嵌入到有限元网格中,使得皮肤网格被包裹在有限元网格内部,骨骼网格被包裹在皮肤网格内部,再根据骨骼顶点质心插值权重与有限元网格的弹性势能函数构建角色模型的准静态方程,在基于准静态方程与皮肤顶点质心插值权重得到角色动画模型。其中,计算机设备102具体可以包括但不限于各种个人计算机、笔记本电脑、服务器、智能手机、平板电脑、智能摄像机和便携式可穿戴设备等。
[0067] 在一个实施例中,如图2所示,提供了一种创建角色动画模型方法,以该方法应用于图1中的计算机设备102为例进行说明,包括以下步骤:
[0068] 步骤S202,获取有限元网格、皮肤网格以及骨骼网格,有限元网格包含肌肉纤维方向,有限元网格在发生形变时由肌肉纤维方向确定有限元网格的膨胀或收缩方向。
[0069] 其中,动画对象的有限元网格是用于接受各种外力以及骨骼驱动力作用而产生的形变的三维动画角色模型,如图8所示;皮肤网格是内嵌在动画对象有限元网格上的三维皮肤模型,皮肤模型是用于展示或表现动画对象的外表面具体细节、形状的三维动画模型;骨骼网格是用于提供使动画对象的有限元网格发生形变的骨骼驱动力得骨骼模型;动画对象的有限元网格、皮肤网格以及骨骼网格可以采用四面体网格或六面体网格或三角形网格等方法来进行有限元的划分,使得动画对象的有限元网格、皮肤网格以及骨骼网格都是由一个个有限元单元组成的模型,这里不作限制,有限元网格中包含肌肉区域,如图9所示,肌肉区域中的有限元各顶点具有肌肉纤维方向信息,即肌肉区域中的有限元各顶点具有空间上不发生交叉的方向梯度场,肌肉区域的形变具有各向异性,在发力的情况下,会沿着垂直于肌肉纤维的方向发生膨胀,也就是,当有限元网格在外力作用下产生形变或通过自身电信号激发而自主发生形变时,使得有限元网格、皮肤网格沿着垂直于肌肉纤维的方向发生膨胀、收缩的自然形变,形变表示形状发生改变,有限元单元发生形变,表示有限元的空间位置、自身形状以及各顶点的位置发生改变。
[0070] 具体地,计算机设备获取肌肉纤维方向 以及两个彼此垂直且垂直于纤维方向的两个方向矢量 和 ,将三个向量组成一个旋转矩阵,用R表示每一个有限单元的肌肉纤维方向,设置沿着肌肉纤维方向的形变值为 ,两个彼此垂直且垂直于纤维方向的两个方向矢量 和 对应的形变值为 和 ,将形变用一个对称阵 来表达:
[0071] ,公式1
[0072] 其中 为以 为对角元的对角阵,由此得到初始状态的形变表达为:
[0073] ,公式2
[0074] 其中, 为有限元网格未考虑肌肉形变的各向异性时的初始状态; 为有限元网格考虑到肌肉形变的各向异性时的初始状态;再将 加入到后续有限元网格弹性势能函数中计算,得出准静态方程,计算肌肉的发力与各向异性的形变。
[0075] 步骤S204,根据皮肤网格的顶点的位置信息与皮肤顶点有限元单元得到皮肤顶点质心插值权重,皮肤顶点有限元单元为有限元网格中包含皮肤网格的顶点的有限元单元,皮肤顶点质心插值权重表示皮肤顶点有限元单元与皮肤网格顶点之间的位置关联关系。
[0076] 其中,皮肤网格的顶点也是皮肤网格中有限元单元的各个顶点,以四面体单元为例,皮肤网格上的每个有限元单元都有四个顶点,皮肤顶点质心插值权重用于描述空间中皮肤网格的顶点相对于皮肤顶点有限元单元的各顶点的位置变换插值权重,皮肤顶点有限元单元为有限元网格中包含皮肤网格的顶点的有限元单元,位置变换插值权重表示皮肤顶点有限元单元与皮肤网格顶点之间的位置关联关系。
[0077] 具体地,计算机设备将皮肤网格调整到有限元网格中合适的位置,再获取皮肤网格的顶点P的位置坐标与有限元网格中包含了该皮肤顶点P的四面体单元 各顶点P0,P1,P2,P3的位置坐标,则得到点P关于四个四面体的质心插值权重 ,质心插值权重满足如下公式3:
[0078] ,公式3
[0079] 其中, , , ,,V表示由四个点组成的四面体的体积,例如 表示由
四个点组成的四面体的体积, 满足 ,
当有限元网格发生形变时,设四面体单元 对应的四个形变后的顶点坐标为,则可以计算插值后新的皮肤顶点随着有限元网格有限元单元形变后的坐标 为: ,从而通过皮肤顶点质心插值权重将皮
肤网格嵌入到有限元网格的初始形状当中,建立了有限元网格中包含了该皮肤顶点的四面体单元 与皮肤网格顶点P之间的位置关联关系。
[0080] 步骤S206,根据骨骼网格的顶点的位置信息与骨骼顶点有限元单元得到骨骼顶点质心插值权重,骨骼顶点有限元单元为有限元网格中包含骨骼网格的顶点的有限元单元,骨骼顶点质心插值权重表示骨骼顶点有限元单元与骨骼网格的顶点之间的位置关联关系。
[0081] 其中,骨骼网格的顶点就是骨骼网格中有限元单元的各个顶点,以四面体单元为例,骨骼网格上的每个有限元单元都有四个顶点,骨骼顶点质心插值权重用于描述空间中骨骼网格顶点相对于骨骼顶点有限元单元的各顶点的位置变换插值权重,而骨骼顶点有限元单元是动画对象的有限元网格上包含该骨骼网格的顶点的四面体单元,骨骼顶点质心插值权重表示了骨骼顶点有限元单元与骨骼网格的顶点之间的位置关联关系。
[0082] 具体地,计算机设备将骨骼网格调整到皮肤网格内部合适的位置,再获取骨骼网格的顶点P的位置坐标与有限元网格中包含了该骨骼顶点的四面体单元 各顶点P0,P1,P2,P3的位置坐标,则得到点P关于四个四面体的质心插值权重 ,质心插值权重满足:
[0083] ,公式4
[0084] 其中, , , ,,V表示由四个点组成的四面体的体积,例如 表示由
四个点组成的四面体的体积, 满足 ,当有
限元网格发生形变时,设四面体单元 对应的四个形变后的顶点坐标为 ,则可以计算插值后新的骨骼顶点随着有限元网格有限元单元形变后的坐标 为:
,从而通过骨骼顶点质心插值权重将皮肤网格
嵌入到有限元网格的初始形状当中,建立了有限元网格中包含了该骨骼顶点的四面体单元与骨骼网格顶点P之间的位置关联关系。
[0085] 步骤S208,基于骨骼顶点质心插值权重以及有限元网格的弹性势能函数,融合得到准静态方程,弹性势能函数用于表征有限元网格在形变时所产生的弹性势能大小,准静态方程用于表征有限元网格所受外力与弹性力的平衡程度。
[0086] 其中,有限元网格的弹性势能函数由离散空间中有限元单元的弹性势能融合得到的,对于离散网格上的任意一个有限单元 ,可以计算出相应的形变梯度 、在初始形状下有限元单元体积 以及四面体四个面的面积法向 ,可以计算出有限元单元因形变产生的弹性势能 、有限元单元体的应力张量 、单
元体四个顶点产生的弹性力 ,其中, 为有限元网格上一个点处
的弹性势能函数。
[0087] 设有限元网格的顶点数为N,有限元单元数为 ,将所有顶点的位置组成一个的向量,对于初始形状记为 ,形变形状记为 。定义有限元单元选取矩阵为 ,用于提取 和 中第e各有限元单元所对应的 的子向量: , ,定义组装矩阵 ,用于将有限元单元体顶点组成的 向量变换成重组成 向量:
, ,进而得到整个有限元网格的弹性势能:
,得到有限元网格顶点上的弹性力: ,得到四面体网
格的海森矩阵: 。
[0088] 弹性物体在被施加外力负载,在给定边界条件 (一些固定的部位) 后,会发生形变,一般情况下形变是一个动态的过程,在稳定的外力负载以及边界条件下,因为阻尼力的存在,动态的形变会变成一种静态的受力平衡的形变。当力学系统的阻尼比较大时,上述形变过程往往是瞬间发生的,在很短的时间内就到达了力平衡状态,称在足够短的时间 (远低于仿真的时间步长) 就到达平衡状态的过程为准静态过程 (quasi‑static),准静态方程用于表征有限元网格所受外力与弹性力的平衡程度,在解算准静态过程时,往往直接解算其静态的平衡状态。设弹性体在准静态过程中受弹性力与重力,重力加速度计为 g,准静态过程本质上是在解平衡态,而平衡态是一个势能最低的状态,所以,可以把求解准静态过程转化为优化系统机械能的问题:
[0089] ,公式5
[0090] 其中, 为骨骼驱动能量的强度, 为骨骼网格各个顶点的位置, 为骨骼驱动项,是由骨骼顶点质心插值权重与有限元网格有限元单元的体积融合得到的,用于骨骼驱动有限元网格,当有限元网格受到外力负载与自身弹性力达到受力平衡时,求解出这时的各顶点的位置坐标 ,就是有限元网格形变后各顶点的坐标;可以使用牛顿迭代来求解上述公式5,设方程解的初始假设为 ,迭代过程如下:
[0091] ,公式6
[0092] ,公式7
[0093] ,公式8
[0094] 其中SDP算法(半正定规划算法)负责将非正定的矩阵投影成一个正定的矩阵,进而保证牛顿迭代算法的稳定性, 是后向线性搜索(Backtracking Line Search)的步长。
[0095] 步骤S210,基于皮肤顶点质心插值权重与准静态方程得到角色动画模型,角色动画模型建立了皮肤网格、有限元网格以及骨骼网格之间的关联关系。
[0096] 其中,角色动画模型的输出就是内嵌于有限元网格中的皮肤网格上各顶点形变后的位置坐标。
[0097] 具体地,计算机设备通过上述步骤求解出有限元网格形变后各顶点的位置信息后,根据有限元网格各顶点的位置信息与有限元网格与皮肤网格的位置关联关系(即皮肤顶点质心插值权重)得到形变后,皮肤网格各顶点对应的形变后的位置信息,进而得到形变后角色动画。
[0098] 上述创建角色动画模型方法、装置、计算机设备和存储介质,通过获取有限元网格、皮肤网格以及骨骼网格,其中,有限元网格包含肌肉纤维方向,有限元网格在发生形变时由肌肉纤维方向确定有限元网格的膨胀或收缩方向;再根据皮肤网格的顶点位置信息与皮肤顶点有限元单元得到皮肤顶点质心插值权重,实现将皮肤网格嵌入到有限元网格中,如图10和图11所示,再根据骨骼网格的顶点位置信息与骨骼顶点有限元单元得到骨骼顶点质心插值权重,实现将骨骼网格嵌入到有限元网格中,如图12所示;基于骨骼顶点质心插值权重以及有限元网格的弹性势能函数,融合得到准静态方程;基于皮肤顶点质心插值权重与准静态方程得到角色动画模型,由此通过角色动画模型建立了皮肤网格、有限元网格以及骨骼网格之间的关联关系,如图13所示。这样,角色动画模型的骨骼网格或其他外力负载驱动有限元网格运动或发生形变,再由有限元网格的运动或形变带动着皮肤网格的运动或形变,而且在有限元网格发生非线性的体积形变时,皮肤网格的形变方向以及形变程度能够通过肌肉纤维方向进行自适应地调整,另外,肌肉在没有外力负载作用的情况下,也能通过自身电信号激发可以自主发生形变,也会驱使着有限元网格中的有限元单元沿着肌肉纤维方向发生形变,使之产生自然形变,提高角色动画模型对应的三维动画角色在力的作用下产生自然形变的准确性。
[0099] 在一个实施例中,如图3所示,基于骨骼顶点质心插值权重以及有限元网格的弹性势能函数,融合得到准静态方程,包括:
[0100] 步骤S302,根据骨骼网格的顶点位置信息、骨骼顶点质心插值权重、骨骼有限元位置因子以及骨骼顶点有限元单元体积值融合得到骨骼驱动项,骨骼有限元位置因子为骨骼顶点有限元单元的顶点的位置信息,骨骼驱动项用于表征骨骼网格的顶点与骨骼顶点有限元单元的位置差异。
[0101] 举例说明,设骨骼的顶点为 ,顶点数为 ,设每一个顶点所在的有限元单元为,有限元单元的四个顶点为 ,对应的有限元网格的有限元单元体积为 ,对应的质心插值坐标为 ,定义骨骼驱动项为:
[0102] ,公式9
[0103] 由公式9可知骨骼驱动项是一个关于 的线性系统,海森矩阵恒定且正定,将上述骨骼驱动项公式9加入到准静态方程中,不会产生不稳定的非正定行为。
[0104] 步骤S304,根据骨骼驱动项与有限元网格的弹性势能函数融合得到准静态方程。
[0105] 具体地,计算机设备基于上述步骤得到骨骼驱动项,根据骨骼驱动项与有限元网格的弹性势能函数进行融合,得到准静态方程。
[0106] 本实施例中,根据骨骼网格的顶点位置信息、骨骼顶点质心插值权重、骨骼有限元位置因子以及与骨骼网格的顶点所对应的有限元网格的有限元单元体积值融合得到骨骼驱动项,再根据骨骼驱动项与有限元网格的弹性势能函数融合得到准静态方程,这样就可以将骨骼驱动力纳入到求解准静态方程的过程里,实现骨骼驱动有限元网格运动的功能。
[0107] 在一个实施例中,如图4所示,根据骨骼驱动项与有限元网格的弹性势能函数融合得到准静态方程,包括:
[0108] 步骤S402,获取有限元网格的形变梯度,形变梯度用于表征有限元网格的局部形变程度。
[0109] 其中,形变梯度是由弹性体(在本方案中的有限元网格)发生形变后,由形变后弹性体中顶点的位置与形变前弹性体中顶点的位置来确定,举例说明:弹性体在三维空间中占据一段连续的空间,设在初始形状下,弹性体占据的空间为 ,设其中任意点的位置为,当弹性体相对于初始形状发生了形变后,设形变后的弹性体中各点的位置为 ,对于任意一个弹性形变,定义一个从初始形状到形变形状的连续双向映射: ,其中足以 描述 任何一 种连续的弹 性形 变,对映 射函数 进行泰勒展开:,得到 ,令 是一个 矩阵,对其进
行极分解(Polar Decomposition): ,其中R是一个 的旋转矩阵,S是一个表征切应变的 的对称阵,将导数矩阵F称为形变梯度。
[0110] 具体地,当有限元网格发生形变时,计算机设备随机给定一个形变梯度的初值,通过不断迭代的方式,求解上述步骤中的准静态方程,直到满足迭代停止条件。
[0111] 步骤S404,对形变梯度进行奇异值分解,得到形变梯度对应的奇异值。
[0112] 具体地,设有限元单元的形变梯度为 ,计算机设备对形变梯度 进行奇异值分解,使得 ,得到三个奇异值 ,分别表达了单元体形变在三个形变主轴方向上的拉升收缩程度。
[0113] 步骤S406,基于奇异值融合得到局部弹性势能函数。
[0114] 具体地,计算机设备根据奇异值得到三个特征量: ,, ,再根据特征量融合得到局部弹性势能函数:
[0115] ,公式10
[0116] 其中 , 为描述有限元网格硬度与保体积能力的拉梅系数。
[0117] 步骤S408,基于局部弹性势能函数融合得到有限元网格的弹性势能函数。
[0118] 具体地,计算机设备将每个有限元单元对应的局部弹性势能函数 进行融合得到有限元网格弹性势能函数 ,其中, 为有限元网格中有限元单元数。
[0119] 步骤S410,基于骨骼驱动项与有限元网格的弹性势能函数融合得到准静态方程。
[0120] 具体地,计算机设备将有限元网格的弹性势能函数 与骨骼驱动项 进行融合得到准静态方程。
[0121] 本实施例中,通过获取有限元网格的形变梯度,对形变梯度进行奇异值分解,得到形变梯度对应的奇异值,基于奇异值融合得到局部弹性势能函数,再基于骨骼驱动项与有限元网格的弹性势能函数融合得到准静态方程,这样就可以将骨骼驱动力纳入到求解准静态方程的过程里,实现骨骼驱动有限元网格运动的功能,同时有限元网格的弹性势能函数是由有限元网格中所有有限元单元对应的局部弹性势能函数融合得到的,所以当有限元网格发生形变时有限元网格的弹性势能函数能够反映有限元网格中每一个有限元单元所产生的弹性势能大小。
[0122] 在一个实施例中,如图5所示,获取有限元网格的形变梯度,包括:
[0123] 步骤S502,获取前置因子,前置因子为有限元网格中有限元单元的顶点在初始形变前的位置信息。
[0124] 步骤S504,获取后置因子,后置因子为有限元网格中有限元单元的顶点在初始形变后的位置信息。
[0125] 其中,初始形变后的位置信息可以是通过随机给定的方式确定,也可以是根据经验值确定,还可以是根据智能寻优算法通过迭代确定,如粒子群算法、遗传算法以及蜂群优化算法等,这里不作具体限制。
[0126] 步骤S506,基于前置因子与后置因子融合得到有限元网格的形变梯度。
[0127] 具体地,计算机设备获取有限元网格中有限元单元在初始状态下的四个顶点位置,其对应的形变状态下的四个顶点位置为 ,线性有限元表示在一个有限元里,形变梯度不变,即 , , , ,
化简移项,得到形变梯度 的方程:
[0128] ,公式11
[0129] ,公式12
[0130] ,公式13
[0131] 由公式11、公式12以及公式13,得到有限元单元内的形变梯度 。
[0132] 本实施例中,通过获取有限元单元形变前各顶点的位置信息以及有限元单元形变后各顶点的位置信息,得到有限元单元的形变梯度,对于线性有限元,通过确定有限元单元的各顶点位置信息的形变梯度就能准确确定了有限元单元整体的形变梯度。
[0133] 在一个实施例中,如图6所示,基于骨骼驱动项与有限元网格的弹性势能函数融合得到准静态方程,包括:
[0134] 步骤S602,获取重力驱动项,重力驱动项表示重力场对有限元网格所施加的重力作用。
[0135] 步骤S604,基于骨骼驱动项、重力驱动项与有限元网格的弹性势能函数融合得到准静态方程。
[0136] 本实施例中,计算机设备获取重力驱动项 ,其中 为一个由顶点所受重力组成的 的向量,根据骨骼驱动项、重力驱动项与有限元网格的弹性势能函数融合得到准静态方程,得到准静态方程:
[0137] ,公式14
[0138] 其中重力驱动项 表示重力场对有限元网格所施加的重力作用,使得角色模型的皮肤呈现出正常重力场作用下的自然下垂感,提高了动画角色模型皮肤产生形变的自然视觉呈现。
[0139] 在一个实施例中,如图7所示,基于皮肤顶点质心插值权重与准静态方程得到角色动画模型,包括:
[0140] 步骤S702,通过求解准静态方程,得到有限元网格在受力平衡状态下有限元单元的顶点形变后的位置信息。
[0141] 步骤S704,根据皮肤顶点质心插值权重与皮肤顶点有限元单元的顶点形变后的位置信息,得到角色动画模型,角色动画模型用于求解对应形变后皮肤网格的顶点的位置信息。
[0142] 本实施例中,计算机设备通过求解上述步骤中的准静态方程,得到形变后与皮肤网格顶点 对应的有限元网格的有限元单元顶点位置信息 ,由皮肤顶点质心插值权重 ,得到角色动画模型,也就是皮肤网格顶点 形变后的位置信息:
[0143] ,公式15
[0144] 有上述公式15得到皮肤网格顶点 形变后的位置坐标,同理,可以通过求解准静态方程得到有限元网格中所有有限元单元顶点形变后的新位置信息,根据所有有限元单元顶点形变后的新位置信息与皮肤顶点质心插值权重得到皮肤网格上所有顶点在形变后的新的位置坐标,进而得到整个形变后的皮肤网格各部分得位置信息,从而提高由有限元网格的形变来带动角色皮肤网格的运动的可靠性。
[0145] 在一个实施例中,在角色动画模型中,皮肤网格被包含在有限元网格内部,骨骼网格被包含在皮肤网格内部。
[0146] 本申请还提供一种应用场景,该应用场景应用上述的创建角色动画模型方法,该方法应用于创建三维动画角色模型的场景,具体地,该创建三维动画角色模型方法在该应用场景的应用如下:
[0147] 计算机设备获取有限元网格、皮肤网格以及骨骼网格,其中,有限元网格包含肌肉纤维方向,有限元网格在发生形变时由肌肉纤维方向确定有限元网格的膨胀或收缩方向;计算机设备获取肌肉纤维方向 以及两个彼此垂直且垂直于纤维方向的两个方向矢量和 ,将三个向量组成一个旋转矩阵 ,用R表示每一个有限单元的肌肉纤维方向,设置沿着肌肉纤维方向的形变值为 ,两个彼此垂直且垂直于纤维方向的两个方向矢量 和 对应的形变值为 和 ,得到对称阵 ;其中
为以 为对角元的对角阵,由此得到初始状态的形变表达:
,其中, 为有限元网格未考虑肌肉形变的各向异性时的初始状态; 为有限元网格考虑到肌肉形变的各向异性时的初始状态;再将 加入到后续有限元网格弹性势能函数中计算,得出准静态方程,计算肌肉的发力与各向异性的形变;计算机设备将骨骼网格调整到皮肤网格内部合适的位置,再获取骨骼网格的顶点P的位置坐标与有限元网格中包含了该骨骼顶点的四面体单元 各顶点P0,P1,P2,P3的位置坐标,则得到点P关于四个四面体的质心插值权重 ,计算机设备根据骨骼的顶点 ,顶点数为 ,顶点所在的有限元单元为 ,有限元单元的四个顶点 ,对应的有限元网格的有限元单元体积 ,对应的质心插值坐标 ,得到骨骼驱动项,如公式9所示,计算机设备将皮肤网格调整到有限元网格中合适的位置,再获取皮肤网格的顶点 的位置坐标与有限元网格中包含了该皮肤顶点的四面体单元 各顶点 的位置坐标,
则得到点 关于四个四面体的皮肤顶点质心插值权重 ;基于骨骼顶点质心插值权重以及有限元网格的弹性势能函数,融合得到准静态方程;基于皮肤顶点质心插值权重与准静态方程得到角色动画模型,由此通过角色动画模型建立了皮肤网格、有限元网格以及骨骼网格之间的关联关系,当有限元网格发生形变时,计算机设备给定一个初始的形变值,由初始形变值得到初始形变梯度,然后将初始形变梯度参与准静态方程的求解过程,通过不断的迭代,对迭代过程中产生的残差进行反馈,得到形变梯度的目标值,进而得到有限元网格在受力平衡时各顶点在形变后的坐标,然后再将有限元网格在受力平衡时各顶点在形变后的坐标与皮肤顶点质心插值权重根据公式15计算得到皮肤网格上对应的形变,实现对三维数字角色动画模型的创建。
[0148] 计算机获取各骨骼姿态以及肌肉的发力值,确定了唯一一个有限元网格的形变,为了使皮肤的形变具有一般脂肪运动或皮肤筋膜之间的滑动感,在已有的框架下加入脂肪筋膜的惯性运动,使用弹簧振子来实现这一效果,算法的输入是当前准静态求解器得到的关键帧以及之前的几帧,根据所使用的不同弹簧振子求解器,使用的连续关键帧数有所不同,以显示欧拉积分器为例,设直到当前帧为第k帧,取连续两帧准静态解算结果为,设之前的抖动帧 ,设弹簧振子的硬度为k,设弹簧振子的阻尼系数为d,则使用显示欧拉迭代计算 :
[0149] ,公式16
[0150] ,公式17
[0151] ,公式18
[0152] 其中 为角色皮肤网格各个顶点的抖动强度,从而实现三维动画中角色脂肪运动或皮肤筋膜之间的滑动感,使之运动更加自然、逼真,增强视觉效果。
[0153] 上述创建角色动画模型方法中,将骨骼作为碰撞体,肌肉作为弹性体,可以在有限元网格发生形变时,使得有限元网格的形变沿着肌肉纤维的方向发生拉升、收缩,沿着垂直于肌肉纤维方向且互相垂直的两个矢量方向发生膨胀、收缩,不需要由有经验的人员耗费大量人工精力对三维动画中的数字角色的各个控制节点的影响权重进行绑定设置,并且由于数字角色在运动过程中所发生的体积形变是非线性的,所以当采用人工绑定权重的方式,难以预先进行准确的配置,进而容易导致生成的三维动画产生非自然形变,而本申请可以实现无需人工绑定,就能自适应调整各部分的形变程度,提高三维动画角色模型对应的动画角色呈现出自然形变的准确性。
[0154] 应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0155] 在一个实施例中,如图14所示,提供了一种创建角色动画模型装置,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:网格获取模块1402、皮肤顶点质心插值权重生成模块1404、骨骼顶点质心插值权重生成模块1406、准静态方程生成模块1408、角色动画模型生成模块1410,其中:
[0156] 网格获取模块1402,用于获取有限元网格、皮肤网格以及骨骼网格,有限元网格包含肌肉纤维方向,有限元网格在发生形变时由肌肉纤维方向确定有限元网格的膨胀或收缩方向;
[0157] 皮肤顶点质心插值权重生成模块1404,用于根据皮肤网格的顶点的位置信息与皮肤顶点有限元单元得到皮肤顶点质心插值权重,皮肤顶点有限元单元为有限元网格中包含皮肤网格的顶点的有限元单元,皮肤顶点质心插值权重表示皮肤顶点有限元单元与皮肤网格的顶点之间的位置关联关系;
[0158] 骨骼顶点质心插值权重生成模块1406,用于根据骨骼网格的顶点的位置信息与骨骼顶点有限元单元得到骨骼顶点质心插值权重,骨骼顶点有限元单元为有限元网格中包含骨骼网格的顶点的有限元单元,骨骼顶点质心插值权重表示骨骼顶点有限元单元与骨骼网格的顶点之间的位置关联关系;
[0159] 准静态方程生成模块1408,用于基于骨骼顶点质心插值权重以及有限元网格的弹性势能函数,融合得到准静态方程,弹性势能函数用于表征有限元网格在形变时所产生的弹性势能大小,准静态方程用于表征有限元网格所受外力与弹性力的平衡程度;
[0160] 角色动画模型生成模块1410,用于基于皮肤顶点质心插值权重与准静态方程得到角色动画模型,角色动画模型建立了皮肤网格、有限元网格以及骨骼网格之间的关联关系。
[0161] 在一个实施例中,准静态方程生成模块1408还用于根据骨骼网格的顶点位置信息、骨骼顶点质心插值权重、骨骼有限元位置因子以及骨骼顶点有限元单元体积值融合得到骨骼驱动项,骨骼有限元位置因子为骨骼顶点有限元单元的顶点的位置信息,骨骼驱动项用于表征骨骼网格的顶点与骨骼顶点有限元单元的位置差异;根据骨骼驱动项与有限元网格的弹性势能函数融合得到准静态方程。
[0162] 在一个实施例中,准静态方程生成模块1408还用于获取有限元网格的形变梯度,形变梯度用于表征有限元网格的局部形变程度;对形变梯度进行奇异值分解,得到形变梯度对应的奇异值;基于奇异值融合得到局部弹性势能函数;基于局部弹性势能函数融合得到有限元网格的弹性势能函数;基于骨骼驱动项与有限元网格的弹性势能函数融合得到准静态方程。
[0163] 在一个实施例中,准静态方程生成模块1408还用于获取前置因子,前置因子为有限元网格中有限元单元的顶点在初始形变前的位置信息;获取后置因子,后置因子为有限元网格中有限元单元的顶点在初始形变后的位置信息,初始形变后的位置信息是通过随机给定来确定的;基于前置因子与后置因子融合得到有限元网格的形变梯度。
[0164] 在一个实施例中,准静态方程生成模块1408还用于获取重力驱动项,重力驱动项表示重力场对有限元网格所施加的重力作用;基于骨骼驱动项、重力驱动项与有限元网格的弹性势能函数融合得到准静态方程。
[0165] 在一个实施例中,角色动画模型生成模块1410还用于通过求解准静态方程,得到有限元网格在受力平衡状态下有限元单元的顶点形变后的位置信息;根据皮肤顶点质心插值权重与皮肤顶点有限元单元的顶点形变后的位置信息,得到角色动画模型,角色动画模型用于求解对应形变后皮肤网格的顶点的位置信息。
[0166] 上述创建角色动画模型装置,通过获取有限元网格、皮肤网格以及骨骼网格,其中,有限元网格包含肌肉纤维方向,有限元网格在发生形变时由肌肉纤维方向确定有限元网格的膨胀或收缩方向;再根据皮肤网格的顶点位置信息与皮肤顶点有限元单元得到皮肤顶点质心插值权重,实现将皮肤网格嵌入到有限元网格中,再根据骨骼网格的顶点位置信息与骨骼顶点有限元单元得到骨骼顶点质心插值权重,实现将骨骼网格嵌入到有限元网格中;基于骨骼顶点质心插值权重以及有限元网格的弹性势能函数,融合得到准静态方程;基于皮肤顶点质心插值权重与准静态方程得到角色动画模型,由此通过角色动画模型建立了皮肤网格、有限元网格以及骨骼网格之间的关联关系。这样,角色动画模型的骨骼网格或其他外力负载来驱动着有限元网格的运动或发生形变,再由有限元网格的运动或形变带动着皮肤网格的运动或形变,而且在有限元网格发生非线性的体积形变时,皮肤网格的形变方向以及形变程度能够通过肌肉纤维方向进行自适应地调整,另外,肌肉在没有外力负载作用的情况下,也能通过自身电信号激发可以自主发生形变,也会驱使着有限元网格中的有限元单元沿着肌肉纤维方向发生形变,使之产生自然形变,提高角色动画模型对应的三维动画角色在力的作用下产生自然形变的准确性。
[0167] 关于创建角色动画模型装置的具体限定可以参见上文中对于创建角色动画模型方法的限定,在此不再赘述。上述创建角色动画模型装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0168] 在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图15所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种创建角色动画模型方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0169] 本领域技术人员可以理解,图15中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0170] 在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
[0171] 在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
[0172] 在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
[0173] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read‑Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
[0174] 以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0175] 以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。