一种动画处理方法、装置、设备、存储介质及产品转让专利

申请号 : CN202211700910.1

文献号 : CN115690267B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 常天元

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本申请实施例公开了一种动画处理方法、装置、设备、存储介质及产品。其中方法包括:获取对象在目标动画的第一动画帧中的骨骼旋转平移矩阵,并获取对象的骨骼权重矩阵,采用骨骼权重矩阵和骨骼旋转平移矩阵,预测M个顶点在目标动画的第二动画帧中的位置,得到M个顶点的预测位置;基于M个顶点在第二动画帧中的真实位置与M个顶点的预测位置之间的差异,对骨骼权重矩阵和骨骼旋转平移矩阵进行交替迭代更新,得到目标骨骼权重矩阵。可见,通过顶点的预测位置与顶点的真实位置之间的差异,对骨骼权重矩阵和骨骼旋转平移矩阵进行交替迭代更新,可以降低顶点的预测位置与顶点的真实位置之间的误差,从而提高骨骼权重矩阵的拟合精准度。

权利要求 :

1.一种动画处理方法,其特征在于,所述方法包括:

获取对象在目标动画的第一动画帧中的骨骼旋转平移矩阵,所述对象包括M个顶点和N个骨骼,N,M均为正整数;所述骨骼旋转平移矩阵包括所述N个骨骼在所述第一动画帧中的旋转平移量,每个骨骼在所述第一动画帧中的旋转平移量是基于距离该骨骼最近的顶点在所述第一动画帧中的旋转平移量确定的;

获取所述对象的骨骼权重矩阵,所述骨骼权重矩阵包括每个顶点在各个骨骼的骨骼权重,顶点i在骨骼j的骨骼权重用于指示在对象运动过程中骨骼j对顶点i位置的影响程度,i为小于等于M的正整数,j为小于等于N的正整数;所述骨骼权重矩阵的获取方式包括随机生成;

采用所述骨骼权重矩阵和所述骨骼旋转平移矩阵,预测所述M个顶点在所述目标动画的第二动画帧中的位置,得到所述M个顶点的预测位置;其中,所述第二动画帧在所述目标动画中的播放顺序位于所述第一动画帧之后;

基于所述M个顶点在所述第二动画帧中的真实位置与所述M个顶点的第一位置之间的差异,对所述骨骼权重矩阵进行更新,得到更新后的骨骼权重矩阵;

通过更新后的骨骼权重矩阵和所述骨骼旋转平移矩阵,预测所述M个顶点在所述第二动画帧中的位置,得到所述M个顶点的第二位置;

基于所述M个顶点在所述第二动画帧中的真实位置与所述M个顶点的第二位置之间的差异,对所述骨骼旋转平移矩阵进行更新,得到更新后的骨骼旋转平移矩阵;

通过更新后的骨骼权重矩阵和更新后的骨骼旋转平移矩阵,预测所述M个顶点在所述第二动画帧中的位置,得到所述M个顶点的第三位置;

基于所述M个顶点在所述第二动画帧中的真实位置与所述M个顶点的第三位置之间的差异,对更新后的骨骼权重矩阵进行再次更新,得到目标骨骼权重矩阵。

2.如权利要求1所述的方法,其特征在于,所述基于所述M个顶点在所述第二动画帧中的真实位置与所述M个顶点的第一位置之间的差异,对所述骨骼权重矩阵进行迭代更新,得到更新后的骨骼权重矩阵,包括:基于所述M个顶点在所述第二动画帧中的真实位置与所述M个顶点的第一位置之间的差异,按照约束条件对所述骨骼权重矩阵进行线性回归处理,得到更新后的骨骼权重矩阵;

其中,所述约束条件包括以下至少一项:所述骨骼权重矩阵中各个骨骼对应的权重值大于等于0,每个顶点对应的N个骨骼的骨骼权重值之和为1,每个顶点对应的骨骼权重大于预设值的骨骼数量小于K,K为正整数。

3.如权利要求1所述的方法,其特征在于,所述骨骼旋转平移矩阵包括所述N个骨骼的旋转平移量;所述基于所述M个顶点在所述第二动画帧中的真实位置与所述M个顶点的第二位置之间的差异,对所述骨骼旋转平移矩阵进行更新,得到更新后的骨骼旋转平移矩阵,包括:基于所述M个顶点在所述第二动画帧中的真实位置与所述M个顶点的第二位置之间的差异,构造误差函数;

通过所述误差函数分别对所述骨骼旋转平移矩阵中的每个骨骼的旋转平移量进行更新,得到更新后的骨骼旋转平移矩阵。

4.如权利要求1所述的方法,其特征在于,所述采用所述骨骼权重矩阵和所述骨骼旋转平移矩阵,预测所述M个顶点在所述目标动画的第二动画帧中的位置,得到所述M个顶点的预测位置,包括:获取所述第一动画帧中顶点i在所述N个骨骼局部空间下的位置,顶点i为M个顶点中的任一个顶点;

通过所述骨骼旋转平移矩阵和所述第一动画帧中顶点i在所述N个骨骼的局部空间下的位置,计算所述目标动画的第二动画帧中顶点i在所述N个骨骼的局部空间下的位置;

根据所述第二动画帧中顶点i在所述N个骨骼的局部空间下的位置和所述骨骼权重矩阵,计算顶点i在所述第二动画帧中的位置,得到顶点i的预测位置。

5.如权利要求1所述的方法,其特征在于,M>N,所述对象在目标动画的第一动画帧中的骨骼旋转平移矩阵包括所述N个骨骼在所述第一动画帧中的骨骼旋转平移量;所述获取对象在目标动画的第一动画帧中的骨骼旋转平移矩阵,包括:基于骨骼j分别与所述M个顶点之间的距离,确定骨骼j对应的顶点k,顶点k是M个顶点中与骨骼j距离最近的顶点,骨骼j为所述N个骨骼中的任一个骨骼;

根据骨骼j和顶点k在所述第一动画帧中的位置,建立骨骼j与顶点k的映射关系;

获取顶点k在所述第一动画帧中的旋转平移量,并根据顶点k在所述第一动画帧中的旋转平移量和骨骼j与顶点k的映射关系,确定骨骼j在所述第一动画帧中的旋转平移量。

6.如权利要求1所述的方法,其特征在于,目标骨骼权重矩阵中包括M*N个骨骼权重,第a行第j列的骨骼权重为顶点a在骨骼b的骨骼权重,a为小于等于M的正整数,b为小于等于N的正整数;所述方法还包括:对所述目标骨骼权重矩阵中小于第一权重阈值的骨骼权重进行置零处理。

7.如权利要求1所述的方法,其特征在于,目标骨骼权重矩阵中包括M*N个骨骼权重,第a行第b列的骨骼权重为顶点a在骨骼b的骨骼权重,a为小于等于M的正整数,b为小于等于N的正整数;所述目标骨骼权重矩阵中包括至少一个在骨骼j的骨骼权重小于第二权重阈值的候选优化顶点,骨骼j为所述N个骨骼中的任一个骨骼;所述方法还包括:获取目标候选优化顶点对应的骨骼数目阈值P,所述目标候选优化顶点是所述在骨骼j的骨骼权重小于第二权重阈值的候选优化顶点中的任一个候选优化顶点,P为小于N的正整数;

若所述N个骨骼中与所述目标候选优化顶点距离最近的P个骨骼中不包括骨骼j,则对所述目标候选优化顶点在骨骼j的骨骼权重进行置零处理。

8.如权利要求7所述的方法,其特征在于,所述获取目标候选优化顶点对应的骨骼数目阈值P,包括:获取所述目标候选优化顶点对应的第一骨骼数和第二骨骼数,所述第一骨骼数是基于所述目标候选优化顶点绑定的骨骼数和骨骼参数确定的,所述目标候选优化顶点绑定的骨骼数是指:所述目标候选优化顶点在所述N个骨骼的骨骼权重中骨骼权重大于第三权重阈值的骨骼的数量,所述第二骨骼数是基于N计算得到的;

根据所述第一骨骼数和所述第二骨骼数,计算所述目标候选优化顶点对应的骨骼数目阈值P。

9.如权利要求1所述的方法,其特征在于,所述方法还包括:

获取所述对象的网格模型,并基于所述网格模型构造所述对象的拓扑数据结构,所述拓扑数据结构用于指示所述M个顶点的连通性,以及连通顶点之间的最小间隔跳数;

基于所述拓扑数据结构,确定顶点i的邻居顶点集合,所述顶点i的邻居顶点集合包括所述M个顶点中与顶点i之间的最小间隔跳数小于跳数阈值的顶点,顶点i是所述M个顶点中的任一个顶点;

若顶点i在骨骼j的骨骼权重大于0,且顶点i的邻居顶点集合中的各顶点在骨骼j的骨骼权重均为0,则对顶点i在骨骼j的骨骼权重进行置零处理。

10.如权利要求9所述的方法,其特征在于,所述方法还包括:

若顶点i在骨骼j的骨骼权重和顶点i的邻居顶点集合中的各顶点在骨骼j的骨骼权重均小于第四权重阈值,且顶点i的邻居顶点集合中存在目标顶点,则对顶点i在骨骼j的骨骼权重进行置零处理;

其中,所述目标顶点在骨骼j的骨骼权重小于顶点i在骨骼j的骨骼权重,且所述目标顶点与骨骼j之间的距离小于顶点i与骨骼j之间的距离。

11.如权利要求1‑10任一项所述的方法,其特征在于,所述目标动画包括Q个动画帧,Q为正整数;所述方法还包括:获取所述对象在所述Q个动画帧中的骨骼旋转平移矩阵;

基于所述目标骨骼权重矩阵和所述对象在所述Q个动画帧中的骨骼旋转平移矩阵,还原所述目标动画。

12.一种动画处理装置,其特征在于,所述动画处理装置包括:

获取单元,用于获取对象在目标动画的第一动画帧中的骨骼旋转平移矩阵,所述对象包括M个顶点和N个骨骼,N,M均为正整数;所述骨骼旋转平移矩阵包括所述N个骨骼在所述第一动画帧中的旋转平移量,每个骨骼在所述第一动画帧中的旋转平移量是基于距离该骨骼最近的顶点在所述第一动画帧中的旋转平移量确定的;

以及用于获取所述对象的骨骼权重矩阵,所述骨骼权重矩阵包括每个顶点在各个骨骼的骨骼权重,顶点i在骨骼j的骨骼权重用于指示在对象运动过程中骨骼j对顶点i位置的影响程度,i为小于等于M的正整数,j为小于等于N的正整数;所述骨骼权重矩阵的获取方式包括随机生成;

处理单元,用于采用所述骨骼权重矩阵和所述骨骼旋转平移矩阵,预测所述M个顶点在所述目标动画的第二动画帧中的位置,得到所述M个顶点的预测位置;其中,所述第二动画帧在所述目标动画中的播放顺序位于所述第一动画帧之后;

以及用于基于所述M个顶点在所述第二动画帧中的真实位置与所述M个顶点的第一位置之间的差异,对所述骨骼权重矩阵进行更新,得到更新后的骨骼权重矩阵;

通过更新后的骨骼权重矩阵和所述骨骼旋转平移矩阵,预测所述M个顶点在所述第二动画帧中的位置,得到所述M个顶点的第二位置;

基于所述M个顶点在所述第二动画帧中的真实位置与所述M个顶点的第二位置之间的差异,对所述骨骼旋转平移矩阵进行更新,得到更新后的骨骼旋转平移矩阵;

通过更新后的骨骼权重矩阵和更新后的骨骼旋转平移矩阵,预测所述M个顶点在所述第二动画帧中的位置,得到所述M个顶点的第三位置;

基于所述M个顶点在所述第二动画帧中的真实位置与所述M个顶点的第三位置之间的差异,对更新后的骨骼权重矩阵进行再次更新,得到目标骨骼权重矩阵。

13.一种计算机设备,其特征在于,包括:存储器和处理器;

存储器,所述存储器中存储有计算机程序;

处理器,用于加载所述计算机程序实现如权利要求1‑11任一项所述的动画处理方法。

14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于被处理器加载并执行如权利要求1‑11任一项所述的动画处理方法。

说明书 :

一种动画处理方法、装置、设备、存储介质及产品

技术领域

[0001] 本申请涉及计算机技术领域,具体涉及一种动画处理方法、装置、设备、存储介质及产品。

背景技术

[0002] 随着科技研究的进步,各领域(如游戏、视频等)对动画的效果(如清晰度、逼真程度等)要求逐步提高。以顶点动画为例,为了提高动画的效果,往往需要更多的顶点来记录每个动画帧的相关信息,随着顶点数量的提升,顶点动画所需的内存开销也不断提升。
[0003] 研究发现,将顶点动画转换为骨骼动画可以有效降低动画所需的内存开销。顶点动画转换为骨骼动画的核心是骨骼权重矩阵,在实际应用中通常采用模板匹配法来确定骨骼权重矩阵,由于不同动画中的对象与模板存在差异,通过模板匹配法确定的骨骼权重矩阵的拟合精准度较低。

发明内容

[0004] 本申请实施例提供了一种动画处理方法、装置、设备、计算机可读存储介质及产品,能够提高骨骼权重矩阵的拟合精准度。
[0005] 一方面,本申请实施例提供了一种动画处理方法,包括:
[0006] 获取对象在目标动画的第一动画帧中的骨骼旋转平移矩阵,对象包括M个顶点和N个骨骼,N,M均为正整数;
[0007] 获取对象的骨骼权重矩阵;
[0008] 采用骨骼权重矩阵和骨骼旋转平移矩阵,预测M个顶点在目标动画的第二动画帧中的位置,得到M个顶点的预测位置;其中,第二动画帧在目标动画中的播放顺序位于第一动画帧之后;
[0009] 基于M个顶点在第二动画帧中的真实位置与M个顶点的预测位置之间的差异,对骨骼权重矩阵和骨骼旋转平移矩阵进行交替迭代更新,得到目标骨骼权重矩阵。
[0010] 一方面,本申请实施例提供了一种动画处理装置,该动画处理装置包括:
[0011] 获取单元,用于获取对象在目标动画的第一动画帧中的骨骼旋转平移矩阵,对象包括M个顶点和N个骨骼,N,M均为正整数;
[0012] 以及用于获取对象的骨骼权重矩阵;
[0013] 处理单元,用于采用骨骼权重矩阵和骨骼旋转平移矩阵,预测M个顶点在目标动画的第二动画帧中的位置,得到M个顶点的预测位置;其中,第二动画帧在目标动画中的播放顺序位于第一动画帧之后;
[0014] 以及用于基于M个顶点在第二动画帧中的真实位置与M个顶点的预测位置之间的差异,对骨骼权重矩阵和骨骼旋转平移矩阵进行交替迭代更新,得到目标骨骼权重矩阵。
[0015] 在一种实施方式中,预测位置包括第一位置,则处理单元用于,基于M个顶点在第二动画帧中的真实位置与M个顶点的预测位置之间的差异,对骨骼权重矩阵和骨骼旋转平移矩阵进行交替迭代更新,得到目标骨骼权重矩阵,具体用于:
[0016] 基于M个顶点在第二动画帧中的真实位置与M个顶点的第一位置之间的差异,对骨骼权重矩阵进行更新,得到更新后的骨骼权重矩阵;
[0017] 通过更新后的骨骼权重矩阵和骨骼旋转平移矩阵,预测M个顶点在第二动画帧中的位置,得到M个顶点的第二位置;
[0018] 基于M个顶点在第二动画帧中的真实位置与M个顶点的第二位置之间的差异,对骨骼旋转平移矩阵进行更新,得到更新后的骨骼旋转平移矩阵;
[0019] 通过更新后的骨骼权重矩阵和更新后的骨骼旋转平移矩阵,预测M个顶点在第二动画帧中的位置,得到M个顶点的第三位置;
[0020] 基于M个顶点在第二动画帧中的真实位置与M个顶点的第三位置之间的差异,对更新后的骨骼权重矩阵进行再次更新,得到目标骨骼权重矩阵。
[0021] 在一种实施方式中,处理单元用于,基于M个顶点在第二动画帧中的真实位置与M个顶点的第一位置之间的差异,对骨骼权重矩阵进行迭代更新,得到更新后的骨骼权重矩阵,具体用于:
[0022] 基于M个顶点在第二动画帧中的真实位置与M个顶点的第一位置之间的差异,按照约束条件对骨骼权重矩阵进行线性回归处理,得到更新后的骨骼权重矩阵;
[0023] 其中,约束条件包括以下至少一项:骨骼权重矩阵中各个骨骼对应的权重值大于等于0,每个顶点对应的N个骨骼的骨骼权重值之和为1,每个顶点对应的骨骼权重大于预设值的骨骼数量小于K,K为正整数。
[0024] 在一种实施方式中,骨骼旋转平移矩阵包括N个骨骼的旋转平移量;处理单元用于,基于M个顶点在第二动画帧中的真实位置与M个顶点的第二位置之间的差异,对骨骼旋转平移矩阵进行更新,得到更新后的骨骼旋转平移矩阵,具体用于:
[0025] 基于M个顶点在第二动画帧中的真实位置与M个顶点的第二位置之间的差异,构造误差函数;
[0026] 通过误差函数分别对骨骼旋转平移矩阵中的每个骨骼的旋转平移量进行更新,得到更新后的骨骼旋转平移矩阵。
[0027] 在一种实施方式中,处理单元用于,采用骨骼权重矩阵和骨骼旋转平移矩阵,预测M个顶点在目标动画的第二动画帧中的位置,得到M个顶点的预测位置,具体用于:
[0028] 获取第一动画帧中顶点i在N个骨骼局部空间下的位置,顶点i为M个顶点中的任一个顶点;
[0029] 通过骨骼旋转平移矩阵和第一动画帧中顶点i在N个骨骼的局部空间下的位置,计算目标动画的第二动画帧中顶点i在N个骨骼的局部空间下的位置;
[0030] 根据第二动画帧中顶点i在N个骨骼的局部空间下的位置和骨骼权重矩阵,计算顶点i在第二动画帧中的位置,得到顶点i的预测位置。
[0031] 在一种实施方式中,M>N,对象在目标动画的第一动画帧中的骨骼旋转平移矩阵包括N个骨骼在第一动画帧中的骨骼旋转平移量;处理单元用于,获取对象在目标动画的第一动画帧中的骨骼旋转平移矩阵,具体用于:
[0032] 基于骨骼j分别与M个顶点之间的距离,确定骨骼j对应的顶点k,顶点k是M个顶点中与骨骼j距离最近的顶点,骨骼j为N个骨骼中的任一个骨骼;
[0033] 根据骨骼j和顶点k在第一动画帧中的位置,建立骨骼j与顶点k的映射关系;
[0034] 获取顶点k在第一动画帧中的旋转平移量,并根据顶点k在第一动画帧中的旋转平移量和骨骼j与顶点k的映射关系,确定骨骼j在第一动画帧中的旋转平移量。
[0035] 在一种实施方式中,目标骨骼权重矩阵中包括M*N个骨骼权重,第a行第j列的骨骼权重为顶点a在骨骼b的骨骼权重,a为小于等于M的正整数,b为小于等于N的正整数;处理单元还用于:
[0036] 对目标骨骼权重矩阵中小于第一权重阈值的骨骼权重进行置零处理。
[0037] 在一种实施方式中,目标骨骼权重矩阵中包括M*N个骨骼权重,第a行第b列的骨骼权重为顶点a在骨骼b的骨骼权重,a为小于等于M的正整数,b为小于等于N的正整数;目标骨骼权重矩阵中包括至少一个在骨骼j的骨骼权重小于第二权重阈值的候选优化顶点,骨骼j为N个骨骼中的任一个骨骼;处理单元还用于:
[0038] 获取目标候选优化顶点对应的骨骼数目阈值P,目标候选优化顶点是在骨骼j的骨骼权重小于第二权重阈值的候选优化顶点中的任一个候选优化顶点,P为小于N的正整数;
[0039] 若N个骨骼中与目标候选优化顶点距离最近的P个骨骼中不包括骨骼j,则对目标候选优化顶点在骨骼j的骨骼权重进行置零处理。
[0040] 在一种实施方式中,处理单元用于,获取目标候选优化顶点对应的骨骼数目阈值P,具体用于:
[0041] 获取目标候选优化顶点对应的第一骨骼数和第二骨骼数,第一骨骼数是基于目标候选优化顶点绑定的骨骼数和骨骼参数确定的,目标候选优化顶点绑定的骨骼数是指:目标候选优化顶点在N个骨骼的骨骼权重中骨骼权重大于第三权重阈值的骨骼的数量,第二骨骼数是基于N计算得到的;
[0042] 根据第一骨骼数和第二骨骼数,计算目标候选优化顶点对应的骨骼数目阈值P。
[0043] 在一种实施方式中,处理单元还用于:
[0044] 获取对象的网格模型,并基于网格模型构造对象的拓扑数据结构,拓扑数据结构用于指示M个顶点的连通性,以及连通顶点之间的最小间隔跳数;
[0045] 基于拓扑数据结构,确定顶点i的邻居顶点集合,顶点i的邻居顶点集合包括M个顶点中与顶点i之间的最小间隔跳数小于跳数阈值的顶点,顶点i是M个顶点中的任一个顶点;
[0046] 若顶点i在骨骼j的骨骼权重大于0,且顶点i的邻居顶点集合中的各顶点在骨骼j的骨骼权重均为0,则对顶点i在骨骼j的骨骼权重进行置零处理。
[0047] 在一种实施方式中,处理单元还用于:
[0048] 若顶点i在骨骼j的骨骼权重和顶点i的邻居顶点集合中的各顶点在骨骼j的骨骼权重均小于第四权重阈值,且顶点i的邻居顶点集合中存在目标顶点,则对顶点i在骨骼j的骨骼权重进行置零处理;
[0049] 其中,目标顶点在骨骼j的骨骼权重小于顶点i在骨骼j的骨骼权重,且目标顶点与骨骼j之间的距离小于顶点i与骨骼j之间的距离。
[0050] 在一种实施方式中,目标动画包括Q个动画帧,Q为正整数;处理单元还用于:
[0051] 获取对象在Q个动画帧中的骨骼旋转平移矩阵;
[0052] 基于目标骨骼权重矩阵和对象在Q个动画帧中的骨骼旋转平移矩阵,还原目标动画。
[0053] 相应地,本申请提供了一种计算机设备,该计算机设备包括:
[0054] 存储器,存储器中存储有计算机程序;
[0055] 处理器,用于加载计算机程序实现上述动画处理方法。
[0056] 相应地,本申请提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行上述动画处理方法。
[0057] 相应地,本申请提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述动画处理方法。
[0058] 本申请实施例中,获取对象在目标动画的第一动画帧中的骨骼旋转平移矩阵,对象包括M个顶点和N个骨骼,并获取对象的骨骼权重矩阵,采用骨骼权重矩阵和骨骼旋转平移矩阵,预测M个顶点在目标动画的第二动画帧中的位置,得到M个顶点的预测位置;基于M个顶点在第二动画帧中的真实位置与M个顶点的预测位置之间的差异,对骨骼权重矩阵和骨骼旋转平移矩阵进行交替迭代更新,得到目标骨骼权重矩阵。可见,通过顶点的预测位置与顶点的真实位置之间的差异,对骨骼权重矩阵和骨骼旋转平移矩阵进行交替迭代更新,可以降低顶点的预测位置与顶点的真实位置之间的误差,从而提高骨骼权重矩阵的拟合精准度。

附图说明

[0059] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0060] 图1a为本申请实施例提供的一种动画处理系统的场景架构图;
[0061] 图1b为本申请提供的一种头部模型的结构示意图;
[0062] 图2为本申请实施例提供的一种动画处理方法的流程图;
[0063] 图3为本申请实施例提供的另一种动画处理方法的流程图;
[0064] 图4为本申请实施例提供的一种顶点与连接边的示意图;
[0065] 图5为本申请实施例提供的一种骨骼权重矩阵优化效果对比图;
[0066] 图6为本申请实施例提供的一种动画处理装置的结构示意图;
[0067] 图7为本申请实施例提供的一种计算机设备的结构示意图。

具体实施方式

[0068] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0069] 本申请实施例提供了一种动画处理方案,以提高骨骼权重矩阵的拟合精准度。图1a为本申请实施例提供的一种动画处理系统的场景架构图。如图1a所示,该动画处理系统可以包括:计算机设备101。本申请实施例提供的动画处理方案可由计算机设备101执行。计算机设备101具体可以是终端设备,也可以是服务器;其中,终端设备可以包括但不限于:智能手机(如Android手机、IOS手机等)、平板电脑、便携式个人计算机、移动互联网设备(Mobile Internet Devices,简称MID)、车载终端、智能家电、飞行器、可穿戴设备等,本申请实施例对此不做限定;服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器,本申请实施例对此不做限定。
[0070] 动画处理方案的大致流程如下:
[0071] (1)计算机设备101获取对象在目标动画的第一动画帧中的骨骼旋转平移矩阵,对象包括M个顶点和N个骨骼,N,M均为正整数。对象具体可以是指具有骨骼的任何生物(如人、宠物等),或者生物的某个肢体部位(如头部、手、脚等),或者生物模型(如3D人体模型),或者肢体模型等;可选的,对象还可以是通过关节驱动的机器人,当对象为机器人时,可以把机器人的关节作为机器人的骨骼。第一动画帧具体可以是除目标动画中播放顺序位于最后的动画帧以外的任一个动画帧。第一动画帧中的骨骼旋转平移矩阵用于指示第一动画帧中的N个骨骼从第一动画帧中的位置移动到第二动画帧中的位置的旋转偏移量,第二动画帧是目标动画中播放顺序位于第一动画帧之后的动画帧。
[0072] 在一种实施方式中,计算机设备101首先获取目标动画,以及目标动画中对象的网格结构和骨骼位置。图1b为本申请提供的一种头部模型的结构示意图。如图1b所示,对象(头部模型)中包括若干骨骼和若干顶点,其中,网格线条的交界处即为对象(头部模型)的顶点。计算机设备101可以通过顶点捕捉系统捕捉每个动画帧的顶点动画数据,每个动画帧的顶点动画数据包括每个顶点在该动画帧中的位置,通过两个动画帧的顶点动画数据可以计算各个顶点从一个动画帧中的位置移动到另一个动画帧中的位置的旋转偏移量。进一步地,计算机设备101分别计算各个骨骼与各个顶点的距离(如欧式距离),并将距离每个骨骼最近的顶点确定为该骨骼对应的顶点。在确定骨骼与顶点的对应关系后,计算机设备101可以将每个骨骼对应的顶点的旋转偏移量,确定为该骨骼的旋转偏移量,并基于各个骨骼的旋转偏移量,得到对象在目标动画的第一动画帧中的骨骼旋转平移矩阵。
[0073] (2)计算机设备101获取对象的骨骼权重矩阵。骨骼权重矩阵用于生成骨骼动画。对象的骨骼权重矩阵可以是一个预设的矩阵,也可以是随机生成的矩阵,还可以是通过模板匹配法得到的矩阵;可选的,对象的骨骼权重矩阵是采用本申请提供的动画处理方法对初始骨骼权重矩阵进行处理后得到的骨骼权重矩阵。需要说明的是,本申请对骨骼权重、骨骼旋转平移量等参数的表示方式不作限制。在实际应用中,除了通过矩阵表示为,各个骨骼权重和各个骨骼旋转平移量等参数还可以通过其它表示方式进行表示,例如,表示为骨骼权重序列,骨骼旋转平移序列等;又例如,通过向量分别对每个顶点对应的N个骨骼权重进行表示等。
[0074] (3)计算机设备101采用骨骼权重矩阵和骨骼旋转平移矩阵,预测M个顶点在目标动画的第二动画帧中的位置,得到M个顶点的预测位置。顶点i为M个顶点中的任一个顶点。在一种实施方式中,计算机设备101获取第一动画帧中顶点i在N个骨骼局部空间下的位置;
其中,顶点i在骨骼j的局部空间下的位置,可以基于顶点i在第一动画帧中的位置和骨骼j在第一动画帧中的位置转换得到,骨骼j为N个骨骼中的任一个骨骼。计算机设备101通过骨骼旋转平移矩阵和第一动画帧中顶点i在N个骨骼的局部空间下的位置,计算目标动画的第二动画帧中顶点i在N个骨骼局部空间下的位置;并根据第二动画帧中顶点i在N个骨骼的局部空间下的位置和骨骼权重矩阵,计算顶点i在第二动画帧中的位置,得到顶点i的预测位置。在另一种实施方式中,计算机设备101可以直接获取目标动画的第二动画帧中顶点i在N个骨骼局部空间下的位置;并根据第二动画帧中顶点i在N个骨骼的局部空间下的位置和骨骼权重矩阵,计算顶点i在第二动画帧中的位置,得到顶点i的预测位置。
[0075] (4)计算机设备101基于M个顶点在第二动画帧中的真实位置与M个顶点的预测位置之间的差异,对骨骼权重矩阵和骨骼旋转平移矩阵进行交替迭代更新,得到目标骨骼权重矩阵。交替迭代更新是指:在每次迭代更新时,保持骨骼权重矩阵和骨骼旋转平移矩阵的其中一个矩阵不变,并基于M个顶点在第二动画帧中的真实位置与M个顶点的预测位置之间的差异对另一矩阵进行迭代更新,并在每个矩阵完成一轮迭代更新后,基于更新后的矩阵和另一个未更新的矩阵重新预测M个顶点的预测位置。每轮迭代更新的迭代次数可以基于实际需求动态调整,本申请对此不作限制。
[0076] 在一种实施方式中,预测位置包括第一位置;计算机设备101基于M个顶点在第二动画帧中的真实位置与M个顶点的第一位置之间的差异,对骨骼权重矩阵进行更新,得到更新后的骨骼权重矩阵,并通过更新后的骨骼权重矩阵和骨骼旋转平移矩阵,预测M个顶点在第二动画帧中的位置,得到M个顶点的第二位置。在得到M个顶点的第二位置后,计算机设备101基于M个顶点在第二动画帧中的真实位置与M个顶点的第二位置之间的差异,对骨骼旋转平移矩阵进行更新,得到更新后的骨骼旋转平移矩阵,再通过更新后的骨骼权重矩阵和更新后的骨骼旋转平移矩阵,预测M个顶点在第二动画帧中的位置,得到M个顶点的第三位置,并基于M个顶点在第二动画帧中的真实位置与M个顶点的第三位置之间的差异,对更新后的骨骼权重矩阵进行再次更新,得到目标骨骼权重矩阵。
[0077] 进一步地,计算机设备101可以获取对象在目标动画的各个动画帧中的骨骼旋转平移矩阵,并通过目标骨骼权重矩阵和对象在目标动画的各个动画帧中的骨骼旋转平移矩阵,还原目标动画。
[0078] 本申请实施例中,获取对象在目标动画的第一动画帧中的骨骼旋转平移矩阵,对象包括M个顶点和N个骨骼,并获取对象的骨骼权重矩阵,采用骨骼权重矩阵和骨骼旋转平移矩阵,预测M个顶点在目标动画的第二动画帧中的位置,得到M个顶点的预测位置;基于M个顶点在第二动画帧中的真实位置与M个顶点的预测位置之间的差异,对骨骼权重矩阵和骨骼旋转平移矩阵进行交替迭代更新,得到目标骨骼权重矩阵。可见,通过顶点的预测位置与顶点的真实位置之间的差异,对骨骼权重矩阵和骨骼旋转平移矩阵进行交替迭代更新,可以降低顶点的预测位置与顶点的真实位置之间的误差,从而提高骨骼权重矩阵的拟合精准度,进而使得通过目标骨骼权重矩阵还原的目标动画的拟合精准度更高。
[0079] 基于上述动画处理方案,本申请实施例提出更为详细的动画处理方法,下面将结合附图对本申请实施例提出的动画处理方法进行详细介绍。
[0080] 请参阅图2,图2为本申请实施例提供的一种动画处理方法的流程图,该动画处理方法可以由计算机设备执行,该计算机设备可以是终端设备或者服务器。如图2所示,该动画处理方法可包括如下步骤S201‑S204:
[0081] S201、获取对象在目标动画的第一动画帧中的骨骼旋转平移矩阵。
[0082] 对象包括M个顶点和N个骨骼,N,M均为正整数。对象具体可以是指具有骨骼的任何生物(如人、宠物等),或者生物的某个肢体部位(如头部、手、脚等),或者生物模型(如3D人体模型),或者肢体模型等;可选的,对象还可以是通过关节驱动的机器人,当对象为机器人时,可以把机器人的关节作为机器人的骨骼。第一动画帧具体可以是除目标动画中播放顺序位于最后的动画帧以外的任一个动画帧。第一动画帧中的骨骼旋转平移矩阵用于指示第一动画帧中的N个骨骼从第一动画帧中的位置移动到第二动画帧中的位置的旋转偏移量,第二动画帧是目标动画中播放顺序位于第一动画帧之后的动画帧。
[0083] 在一种实施方式中,计算机设备首先获取目标动画,以及目标动画中对象的模型,对象的模型包括网格结构和骨骼位置。需要说明的是,对象的模型可以是任意精度(对于同一个模型来说,精度越高,则该包括的顶点数量和骨骼数量越多);也就是说,本申请提供的动画处理方法可以自适应任意精度的模型,能够提升顶点动画转换为骨骼动画的效率。进一步地,计算机设备可以通过顶点捕捉系统捕捉每个动画帧的顶点动画数据,每个动画帧的顶点动画数据包括每个顶点在该动画帧中的位置,通过两个动画帧的顶点动画数据可以计算各个顶点从一个动画帧中的位置移动到另一个动画帧中的位置的旋转偏移量。再进一步地,计算机设备分别计算各个骨骼与各个顶点的距离(如欧式距离),并将距离每个骨骼最近的顶点确定为该骨骼对应的顶点。
[0084] 在一个实施例中,在确定骨骼与顶点的对应关系后,计算机设备可以将每个骨骼对应的顶点的旋转偏移量,确定为该骨骼的旋转偏移量,并基于各个骨骼的旋转偏移量,得到对象在目标动画的第一动画帧中的骨骼旋转平移矩阵。举例来说,假设骨骼j对应顶点k,计算机设备可以通过顶点k在第一动画帧中的真实位置和顶点k在第二动画帧中的真实位置,确定顶点k在第一动画帧中的旋转平移量,并将顶点k在第一动画帧中的旋转平移量作为骨骼j在第一动画帧中的骨骼旋转平移量,在得到N个骨骼在第一动画帧中的旋转平移量后,基于N个骨骼在第一动画帧中的旋转平移量构造对象在第一动画帧中的骨骼旋转平移矩阵。
[0085] 在另一个实施例中,计算机设备可以基于每个骨骼在第一动画帧中的位置,以及该骨骼对应的顶点在第一动画帧中的位置,建立该骨骼与该骨骼对应的顶点的映射关系,并基于该映射关系以及该骨骼对应的顶点的旋转偏移量,确定该骨骼在第一动画帧中的旋转偏移量。举例来说,假设骨骼j对应顶点k,计算机设备根据骨骼j和顶点k在第一动画帧中的位置,建立骨骼j与顶点k的映射关系;并通过顶点k在第一动画帧中的真实位置和顶点k在第二动画帧中的真实位置,确定顶点k在第一动画帧中的旋转平移量。接着根据骨骼j与顶点k的映射关系和顶点k在第一动画帧中的旋转平移量,计算骨骼j在第一动画帧中的旋转平移量,在得到N个骨骼在第一动画帧中的旋转平移量后,基于N个骨骼在第一动画帧中的旋转平移量构造对象在第一动画帧中的骨骼旋转平移矩阵。
[0086] S202、获取对象的骨骼权重矩阵。
[0087] 骨骼权重矩阵用于生成骨骼动画。顶点i在骨骼j的骨骼权重用于指示在对象运动过程中骨骼j对顶点i位置的影响程度,顶点i在骨骼j的骨骼权重值越大,表示在对象运动过程中骨骼j对顶点i位置的影响程度越大;其中,顶点i为N个顶点中的任一个顶点,骨骼j为M个骨骼中的任一个骨骼。具体来说,计算机设备可以通过骨骼权重矩阵和对象在目标动画的每个动画帧中的骨骼旋转平移矩阵,来生成目标动画对应的骨骼动画。骨骼对象的骨骼权重矩阵可以是一个预设的矩阵,也可以是随机生成的矩阵,还可以是通过模板匹配法得到的矩阵。可选的,对象的骨骼权重矩阵是采用本申请提供的动画处理方法对初始骨骼权重矩阵进行处理后得到的骨骼权重矩阵。
[0088] S203、采用骨骼权重矩阵和骨骼旋转平移矩阵,预测M个顶点在目标动画的第二动画帧中的位置,得到M个顶点的预测位置。
[0089] 计算机设备采用骨骼权重矩阵和骨骼旋转平移矩阵,预测顶点(M个顶点中的任一个)位置的公式可以表示为:
[0090]
[0091] 其中, 为预测的顶点在目标动画的第二动画帧中的位置, 表示第一动画帧中顶点在骨骼j的局部空间位置下,通过第一动画帧中的骨骼旋转平移矩阵进行旋转平移处理后,转换到世界坐标系下的顶点位置, 表示顶点在骨骼j的骨骼权重值,由上述公式可见,当骨骼权重越大时,顶点预测位置受该骨骼的影响越大。将所有顶点的骨骼权重组合起来,即可构成骨骼权重矩阵W,骨骼权重矩阵W的维度为(N,M),N为对象的顶点数,M为对象的骨骼数目。
[0092] 在一种实施方式中,计算机设备获取第一动画帧中顶点i在N个骨骼局部空间下的位置;其中,顶点i在骨骼j的局部空间下的位置,可以基于顶点i在第一动画帧中的位置和骨骼j在第一动画帧中的位置转换得到,骨骼j为N个骨骼中的任一个骨骼。计算机设备通过骨骼旋转平移矩阵和第一动画帧中顶点i在N个骨骼的局部空间下的位置,计算目标动画的第二动画帧中顶点i在N个骨骼局部空间下的位置;并根据第二动画帧中顶点i在N个骨骼的局部空间下的位置和骨骼权重矩阵,计算顶点i在第二动画帧中的位置,得到顶点i的预测位置。
[0093] 在另一种实施方式中,计算机设备可以直接获取目标动画的第二动画帧中顶点i在N个骨骼局部空间下的位置;并根据第二动画帧中顶点i在N个骨骼的局部空间下的位置和骨骼权重矩阵,计算顶点i在第二动画帧中的位置,得到顶点i的预测位置。
[0094] S204、基于M个顶点在第二动画帧中的真实位置与M个顶点的预测位置之间的差异,对骨骼权重矩阵和骨骼旋转平移矩阵进行交替迭代更新,得到目标骨骼权重矩阵。
[0095] 交替迭代更新可以理解为:在每次迭代更新时,计算机设备保持骨骼权重矩阵和骨骼旋转平移矩阵的其中一个矩阵不变,并基于M个顶点在第二动画帧中的真实位置与M个顶点的预测位置之间的差异对另一个矩阵进行迭代更新,并在每个矩阵完成一轮迭代更新后,基于更新后的矩阵和另一个未更新的矩阵重新预测M个顶点的预测位置。每轮迭代更新的迭代次数可以基于实际需求动态调整,本申请对此不作限制。
[0096] 在一种实施方式中,预测位置包括第一位置;计算机设备基于M个顶点在第二动画帧中的真实位置与M个顶点的第一位置之间的差异,对骨骼权重矩阵进行更新,得到更新后的骨骼权重矩阵。可见,通过M个顶点在第二动画帧中的真实位置与M个顶点的第一位置之间的差异,对骨骼权重矩阵进行迭代更新,可以降低顶点的预测位置与顶点的真实位置之间的误差,从而提高骨骼权重矩阵的拟合精准度。在得到更新后的骨骼权重矩阵后,计算机设备通过更新后的骨骼权重矩阵和骨骼旋转平移矩阵,预测M个顶点在第二动画帧中的位置,得到M个顶点的第二位置。并基于M个顶点在第二动画帧中的真实位置与M个顶点的第二位置之间的差异,对骨骼旋转平移矩阵进行更新,得到更新后的骨骼旋转平移矩阵。通过对骨骼旋转平移矩阵进行更新可以降低骨骼位置出现过度偏移的概率,且通过更新后的骨骼旋转平移矩阵还原的目标动画相较于通过更新前的骨骼旋转平移矩阵还原的目标动画来说,与目标动画的拟合精准度更高。在得到通过更新后的骨骼权重矩阵和更新后的骨骼旋转平移矩阵后,计算机设备通过更新后的骨骼权重矩阵和更新后的骨骼旋转平移矩阵,预测M个顶点在第二动画帧中的位置,得到M个顶点的第三位置,并基于M个顶点在第二动画帧中的真实位置与M个顶点的第三位置之间的差异,对更新后的骨骼权重矩阵进行再次更新,得到目标骨骼权重矩阵。通过对更新后的骨骼权重矩阵进行再次更新,可以进一步降低顶点的预测位置与顶点的真实位置之间的误差,进而提高通过目标骨骼权重矩阵还原的目标动画的拟合精准度;以对象为头部模型为例,通过对更新后的骨骼权重矩阵进行再次更新,可以提高还原的目标动画中对象的关键位置(如眼睛、鼻子、嘴巴等)的拟合精准度。
[0097] 进一步地,计算机设备可以获取对象在目标动画的各个动画帧中的骨骼旋转平移矩阵,并通过目标骨骼权重矩阵和对象在目标动画的各个动画帧中的骨骼旋转平移矩阵,还原目标动画。
[0098] 本申请实施例中,获取对象在目标动画的第一动画帧中的骨骼旋转平移矩阵,对象包括M个顶点和N个骨骼,并获取对象的骨骼权重矩阵,采用骨骼权重矩阵和骨骼旋转平移矩阵,预测M个顶点在目标动画的第二动画帧中的位置,得到M个顶点的预测位置;基于M个顶点在第二动画帧中的真实位置与M个顶点的预测位置之间的差异,对骨骼权重矩阵和骨骼旋转平移矩阵进行交替迭代更新,得到目标骨骼权重矩阵。可见,通过顶点的预测位置与顶点的真实位置之间的差异,对骨骼权重矩阵和骨骼旋转平移矩阵进行交替迭代更新,可以降低顶点的预测位置与顶点的真实位置之间的误差,从而提高骨骼权重矩阵的拟合精准度,进而使得通过目标骨骼权重矩阵还原的目标动画的拟合精准度更高。
[0099] 请参阅图3,图3为本申请实施例提供的另一种动画处理方法的流程图,该动画处理方法可以由计算机设备执行,该计算机设备可以是终端设备或者服务器。如图3所示,该动画处理方法可包括如下步骤S301‑S314:
[0100] S301、获取对象在目标动画的第一动画帧中的骨骼旋转平移矩阵。
[0101] S302、获取对象的骨骼权重矩阵。
[0102] S303、通过骨骼权重矩阵和骨骼旋转平移矩阵,预测M个顶点在目标动画的第二动画帧中的位置,得到M个顶点的第一位置。
[0103] 步骤S301‑步骤S303的具体实施方式可参考图2中步骤S201‑步骤S203的实施方式,在此不再赘述。
[0104] S304、基于M个顶点在第二动画帧中的真实位置与M个顶点的第一位置之间的差异,对骨骼权重矩阵进行更新,得到更新后的骨骼权重矩阵。
[0105] 在一种实施方式中,计算机设备基于M个顶点在第二动画帧中的真实位置与M个顶点的第一位置之间的差异,按照约束条件对骨骼权重矩阵进行线性回归处理,得到更新后的骨骼权重矩阵。其中,约束条件包括以下至少一项:骨骼权重矩阵中各个骨骼对应的权重值大于等于0,通过该约束条件可以对骨骼权重矩阵中的异常值(如小于0的骨骼权重)进行过滤;每个顶点对应的N个骨骼的骨骼权重值之和为1,通过对每个顶点对应的M个骨骼权重值之和进行归一化处理,可以对N个顶点的骨骼权重值进行统一;每个顶点对应的骨骼权重大于预设值的骨骼数量小于K,K为正整数;通过限制对每个顶点存在影响的骨骼的数量,可以过滤噪声数据(如当顶点i对应的骨骼权重值大于预设值的骨骼的数量大于K时,将其中骨骼权重小于预设骨骼权重值(如0.01)的骨骼权重置零),从而降低算法复杂度。对骨骼权重矩阵中顶点i的骨骼权重进行更新可以表示为:
[0106]
[0107]
[0108] 其中, 为骨骼权重矩阵, 为骨骼权重矩阵中顶点i的骨骼权重,为第二动画帧中顶点i在N个骨骼局部空间下的顶点位置,是基于第一动画帧中的骨骼旋转平移矩阵得到的;具体来说,第二动画帧中顶点i在N个骨骼的局部空间下的位置,可以通过第一动画帧中的骨骼旋转平移矩阵和第一动画帧中顶点i在N个骨骼的局部空间下的位置计算得到。需要说明的是,在对骨骼权重矩阵进行迭代更新的过程中,计算机设备保持第一动画帧中的骨骼旋转平移矩阵不变。为顶点i在第二动画帧中的真实位置。 为顶点i在N个骨骼的骨骼权重。由公式可知,计算机设备采用带约束条件的线性回归优化方法来分别对骨骼权重矩阵中每个顶点的骨骼权重进行更新,约束条件包括顶点i在N个骨骼的骨骼权重均大于等于0(即 ),顶点i在N个骨骼的骨骼权重之和等于1(即 ),并且顶点i在N个骨骼的骨骼权重中骨骼权重大于0的骨骼数目不超过K个(即 )。
[0109] S305、通过更新后的骨骼权重矩阵和骨骼旋转平移矩阵,预测M个顶点在第二动画帧中的位置,得到M个顶点的第二位置。
[0110] 步骤S305的具体实施方式可参考图2中步骤S203的实施方式,在此不再赘述。
[0111] S306、基于M个顶点在第二动画帧中的真实位置与M个顶点的第二位置之间的差异,对骨骼旋转平移矩阵进行更新,得到更新后的骨骼旋转平移矩阵。
[0112] 在一种实施方式中,第一动画帧中的骨骼旋转平移矩阵包括N个骨骼的旋转平移量,计算机设备基于M个顶点在第二动画帧中的真实位置与M个顶点的第二位置之间的差异,构造误差函数,通过构造的误差函数分别对骨骼旋转平移矩阵中的每个骨骼的旋转平移量进行更新,得到更新后的骨骼旋转平移矩阵。基于M个顶点在第二动画帧中的真实位置与M个顶点的第二位置之间的差异构造的误差函数可以表示为:
[0113]
[0114] 其中, 为骨骼j在第t个动画帧(pose)中的旋转矩阵,维度可以为(3,3); 为骨骼j在第t个动画帧(pose)中的平移矩阵,维度可以为(1,3); 为顶点i在第t个动画帧(pose)中的顶点位置,维度可以为(1,3); 为顶点i在骨骼j的骨骼权重值,是基于更新后的骨骼权重矩阵得到的,更新后的骨骼权重矩阵在骨骼旋转平移矩阵的迭代更新过程中保持不变。 为第t个动画帧的能量矩阵,M为顶点总数,N为骨骼总数。基于上述误差函数,计算机设备在对第t个动画帧的骨骼旋转平移矩阵进行迭代更新时,每次保持第t个动画帧中N‑1个骨骼的旋转平移量不变,更新第t个动画帧中除N‑1个骨骼外的另一个骨骼的旋转平移量;例如,计算机设备在基于上述误差函数更新第t个动画帧中的骨骼j的旋转平移量时,保持第t个动画帧的骨骼旋转平移矩阵中除骨骼j以外的其它N‑1个骨骼的旋转平移量不变。
[0115] 可以理解的是,按照上述步骤S301‑步骤S306的实施方式,计算机设备可以对目标动画的每个动画帧对应的骨骼旋转平移矩阵进行更新。
[0116] S307、通过更新后的骨骼权重矩阵和更新后的骨骼旋转平移矩阵,预测M个顶点在第二动画帧中的位置,得到M个顶点的第三位置。
[0117] 步骤S307的具体实施方式可参考图2中步骤S203的实施方式,在此不再赘述。
[0118] S308、基于M个顶点在第二动画帧中的真实位置与M个顶点的第三位置之间的差异,对更新后的骨骼权重矩阵进行再次更新,得到目标骨骼权重矩阵。
[0119] 步骤S308的具体实施方式可参考步骤S304中的实施方式,在此不再赘述。
[0120] 在得到目标骨骼权重矩阵后,计算机设备可以通过步骤S309、步骤S310和步骤S311,步骤S312‑步骤S314中的至少一个对目标骨骼权重矩阵,进行进一步优化。
[0121] S309、对目标骨骼权重矩阵中小于第一权重阈值的骨骼权重进行置零处理。
[0122] 举例来说,假设第一权重阈值为0.01,目标骨骼权重矩阵中包括顶点a在骨骼b的骨骼权重,该骨骼权重值为0.00015<0.01,则计算机设备对顶点a在骨骼b的骨骼权重进行置零处理(即将顶点a在骨骼b的骨骼权重的值替换为0)。
[0123] S310、获取目标候选优化顶点对应的骨骼数目阈值P。
[0124] 目标骨骼权重矩阵中包括M*N个骨骼权重,第a行第b列的骨骼权重为顶点a在骨骼b的骨骼权重,a为小于等于M的正整数,b为小于等于N的正整数。候选优化顶点是M个顶点中,在N个骨骼中的任一个骨骼的骨骼权重小于第二权重阈值(如0.1)的顶点。
[0125] 若目标骨骼权重矩阵中包括至少一个在骨骼j的骨骼权重小于第二权重阈值的候选优化顶点,骨骼j为N个骨骼中的任一个骨骼;则计算机设备获取每个候选优化顶点对应的骨骼数目阈值。
[0126] 在一种实施方式中,每个候选优化顶点对应的骨骼数目阈值可以为预设值。
[0127] 在另一种实施方式中,每个候选优化顶点对应的骨骼数目阈值是基于第一骨骼数和第二骨骼数确定的。下面以目标候选优化顶点为例进行详细说明,目标候选优化顶点是目标骨骼权重矩阵中包括的至少一个候选优化顶点中的任一个候选优化顶点。对于目标候选优化顶点来说,第一骨骼数是指基于目标候选优化顶点绑定的骨骼数和骨骼参数确定的;例如,第一骨骼数为目标候选优化顶点绑定的骨骼数和骨骼参数之差;又例如,第一骨骼数为目标候选优化顶点绑定的骨骼数和骨骼参数之和;再例如,第一骨骼数为目标候选优化顶点绑定的骨骼数和骨骼参数中的最小值;再例如,第一骨骼数为目标候选优化顶点绑定的骨骼数和骨骼参数中的最大值。其中,骨骼参数为预设值(如4),目标候选优化顶点绑定的骨骼数是指:目标候选优化顶点在N个骨骼的骨骼权重中骨骼权重大于第三权重阈值(如0)的骨骼的数量;例如,假设第三权重阈值为0,目标候选优化顶点在N个骨骼的骨骼权重中骨骼权重大于0的骨骼的数量为10,则目标候选优化顶点绑定的骨骼数为10。第二骨骼数是基于N计算得到的;例如,第二骨骼数=N/100。在得到第一骨骼数和第二骨骼数后,计算机设备基于第一骨骼数和第二骨骼数,计算目标候选优化顶点对应的骨骼数目阈值P;例如,目标候选优化顶点对应的骨骼数目阈值P=第一骨骼数+第二骨骼数。上述实施方式通过公式可以表示为:
[0128]
[0129]
[0130]
[0131] 其中, 为目标候选优化顶点对应的骨骼数目阈值P。 为第一骨骼数,在上述公式中,第一骨骼数为 和 中的最小值;
为骨骼参数, 为顶点i(即目标候选优化顶点)绑定的骨骼数, 表示顶
点i绑定的骨骼数为骨骼权重大于0(第三权重阈值)的个数之和。 为第二骨骼数,为对象的骨骼总数(即N),由上述公式可知对象包含的骨骼越多,目标候选优化顶点对应的骨骼数目阈值P越大。
[0132] S311、若N个骨骼中与目标候选优化顶点距离最近的P个骨骼中不包括骨骼j,则对目标候选优化顶点在骨骼j的骨骼权重进行置零处理。
[0133] 举例来说,假设P=3,N个骨骼中按照与目标候选优化顶点距离由近到远的排列顺序为:骨骼c,骨骼e,骨骼a,骨骼m,骨骼j…;则N个骨骼中与目标候选优化顶点距离最近的3个骨骼中不包括骨骼j,计算机设备对目标候选优化顶点在骨骼j的骨骼权重进行置零处理。
[0134] S312、获取对象的网格模型,并基于网格模型构造对象的拓扑数据结构。
[0135] 对象的网格模型可参考图1b,计算机设备基于网格模型构造对象的拓扑数据结构是指将对象的网格模型转换为一个图拓扑结构数据表达。拓扑数据结构可以用于指示M个顶点的连通性,以及可以用于指示相互连通的两个顶点之间的最小间隔跳数。假设对象的网格模型包括M个顶点和N个骨骼,基于对象的网格模型转换的拓扑数据结构可以表示为,其中 为对象的网格模型中的顶点, 代表对象的网格模型的边,是一个值为从0到x的整数组成的顶点邻接矩阵,大小为M*M,代表对象的网格模型中两个顶点之间的连通性。在一种实现方式中,顶点邻接矩阵中,如果 则表示顶点与顶点之间的最小间隔跳数为y,如果 则代表顶点与顶点不存在x跳以内的连接边,x,y均为正整数,且y小于x。图4为本申请实施例提供的一种顶点与连接边的示意图。如图4所示,两个顶点间的连边的最小间隔跳数=从一个顶点到另一个顶点所需经过的最小顶点数+1;例如,从顶点A到顶点E所需经过的最小顶点数为0,则表示顶点A和顶点E之间的连边的最小间隔跳数=1,也就是说顶点A和顶点E之间存在1跳连边;又例如,从顶点A到顶点B所需经过的最小顶点数为2,则表示顶点A和顶点B之间的连边的最小间隔跳数=3。
[0136] S313、基于拓扑数据结构,确定顶点i的邻居顶点集合。
[0137] 计算机设备基于拓扑数据结构中的顶点邻接矩阵,可以确定顶点i的邻居顶点集合,顶点i的邻居顶点集合包括M个顶点中与顶点i之间的最小间隔跳数小于跳数阈值的顶点,顶点i是M个顶点中的任一个顶点。举例来说,假设跳数阈值为2;若 ,则计算机设备将顶点添加至顶点i的邻居顶点集合。
[0138] S314、若顶点i在骨骼j的骨骼权重大于0,且顶点i的邻居顶点集合中的各顶点在骨骼j的骨骼权重均为0,则对顶点i在骨骼j的骨骼权重进行置零处理。
[0139] 在一种实施方式中,若顶点i在骨骼j的骨骼权重大于0,且顶点i的邻居顶点集合中的各顶点在骨骼j的骨骼权重均为0,则计算机设备对顶点i在骨骼j的骨骼权重进行置零处理。
[0140] 在另一种实施方式中,若顶点i在骨骼j的骨骼权重和顶点i的邻居顶点集合中的各顶点在骨骼j的骨骼权重均小于第四权重阈值(如0.2),且顶点i的邻居顶点集合中存在目标顶点,则计算机设备对顶点i在骨骼j的骨骼权重进行置零处理;其中,目标顶点在骨骼j的骨骼权重小于顶点i在骨骼j的骨骼权重,且目标顶点与骨骼j之间的距离小于顶点i与骨骼j之间的距离。举例来说,假设第四权重阈值为0.2,顶点i的邻居顶点集合中包括顶点k,且顶点i在骨骼j的骨骼权重为0.15,顶点i与骨骼j之间的欧式距离为5,顶点k在骨骼j的骨骼权重为0.11,顶点k与骨骼j之间的欧式距离为3,则计算机设备对顶点i在骨骼j的骨骼权重进行置零处理。
[0141] 可选的,若顶点i在骨骼j的骨骼权重和顶点i的邻居顶点集合中的各顶点在骨骼j的骨骼权重均小于第四权重阈值(如0.2),且顶点i的邻居顶点集合中存在目标顶点,则计算机设备对顶点i在骨骼j的骨骼权重进行调整,使得调整后顶点i在骨骼j的骨骼权重小于目标顶点在骨骼j的骨骼权重。
[0142] 图5为本申请实施例提供的一种骨骼权重矩阵优化效果对比图。如图5所示,501为优化前目标骨骼的权重影响范围图,502为优化后目标骨骼的权重影响范围图。对比501和502可知,通过对骨骼权重矩阵进行优化,可以改善骨骼权重跨区问题,有效约束了骨骼权重的影响范围,进一步提高通过优化后的骨骼权重矩阵还原的目标动画的拟合精准度。
[0143] 进一步地,计算机设备可以获取对象在目标动画的各个动画帧中的骨骼旋转平移矩阵,并通过优化后的目标骨骼权重矩阵和对象在目标动画的各个动画帧中的骨骼旋转平移矩阵,还原目标动画。计算机设备也可以通过优化后的目标骨骼权重矩阵和更新后的骨骼旋转平移矩阵,还原目标动画。
[0144] 本申请实施例中,获取对象在目标动画的第一动画帧中的骨骼旋转平移矩阵,对象包括M个顶点和N个骨骼,并获取对象的骨骼权重矩阵,采用骨骼权重矩阵和骨骼旋转平移矩阵,预测M个顶点在目标动画的第二动画帧中的位置,得到M个顶点的预测位置;基于M个顶点在第二动画帧中的真实位置与M个顶点的预测位置之间的差异,对骨骼权重矩阵和骨骼旋转平移矩阵进行交替迭代更新,得到目标骨骼权重矩阵。可见,通过顶点的预测位置与顶点的真实位置之间的差异,对骨骼权重矩阵和骨骼旋转平移矩阵进行交替迭代更新,可以降低顶点的预测位置与顶点的真实位置之间的误差,从而提高骨骼权重矩阵的拟合精准度。进一步地,通过对骨骼权重矩阵进行优化,可以改善骨骼权重跨区问题,有效约束了骨骼权重的影响范围,进一步提高通过优化后的骨骼权重矩阵还原的目标动画的拟合精准度。
[0145] 上述详细阐述了本申请实施例的方法,为了便于更好地实施本申请实施例的上述方案,相应地,下面提供了本申请实施例的装置。
[0146] 请参见图6,图6为本申请实施例提供的一种动画处理装置的结构示意图,图6所示的动画处理装置可以搭载在计算机设备中,该计算机设备具体可以是终端设备或者服务器。该动画处理装置可以用于执行上述图2和图3所描述的方法实施例中的部分或全部功能。请参见图6,该动画处理装置包括:
[0147] 获取单元601,用于获取对象在目标动画的第一动画帧中的骨骼旋转平移矩阵,对象包括M个顶点和N个骨骼,N,M均为正整数;
[0148] 以及用于获取对象的骨骼权重矩阵;
[0149] 处理单元602,用于采用骨骼权重矩阵和骨骼旋转平移矩阵,预测M个顶点在目标动画的第二动画帧中的位置,得到M个顶点的预测位置;其中,第二动画帧在目标动画中的播放顺序位于第一动画帧之后;
[0150] 以及用于基于M个顶点在第二动画帧中的真实位置与M个顶点的预测位置之间的差异,对骨骼权重矩阵和骨骼旋转平移矩阵进行交替迭代更新,得到目标骨骼权重矩阵。
[0151] 在一种实施方式中,预测位置包括第一位置,则处理单元602用于,基于M个顶点在第二动画帧中的真实位置与M个顶点的预测位置之间的差异,对骨骼权重矩阵和骨骼旋转平移矩阵进行交替迭代更新,得到目标骨骼权重矩阵,具体用于:
[0152] 基于M个顶点在第二动画帧中的真实位置与M个顶点的第一位置之间的差异,对骨骼权重矩阵进行更新,得到更新后的骨骼权重矩阵;
[0153] 通过更新后的骨骼权重矩阵和骨骼旋转平移矩阵,预测M个顶点在第二动画帧中的位置,得到M个顶点的第二位置;
[0154] 基于M个顶点在第二动画帧中的真实位置与M个顶点的第二位置之间的差异,对骨骼旋转平移矩阵进行更新,得到更新后的骨骼旋转平移矩阵;
[0155] 通过更新后的骨骼权重矩阵和更新后的骨骼旋转平移矩阵,预测M个顶点在第二动画帧中的位置,得到M个顶点的第三位置;
[0156] 基于M个顶点在第二动画帧中的真实位置与M个顶点的第三位置之间的差异,对更新后的骨骼权重矩阵进行再次更新,得到目标骨骼权重矩阵。
[0157] 在一种实施方式中,处理单元602用于,基于M个顶点在第二动画帧中的真实位置与M个顶点的第一位置之间的差异,对骨骼权重矩阵进行迭代更新,得到更新后的骨骼权重矩阵,具体用于:
[0158] 基于M个顶点在第二动画帧中的真实位置与M个顶点的第一位置之间的差异,按照约束条件对骨骼权重矩阵进行线性回归处理,得到更新后的骨骼权重矩阵;
[0159] 其中,约束条件包括以下至少一项:骨骼权重矩阵中各个骨骼对应的权重值大于等于0,每个顶点对应的N个骨骼的骨骼权重值之和为1,每个顶点对应的骨骼权重大于预设值的骨骼数量小于K,K为正整数。
[0160] 在一种实施方式中,骨骼旋转平移矩阵包括N个骨骼的旋转平移量;处理单元602用于,基于M个顶点在第二动画帧中的真实位置与M个顶点的第二位置之间的差异,对骨骼旋转平移矩阵进行更新,得到更新后的骨骼旋转平移矩阵,具体用于:
[0161] 基于M个顶点在第二动画帧中的真实位置与M个顶点的第二位置之间的差异,构造误差函数;
[0162] 通过误差函数分别对骨骼旋转平移矩阵中的每个骨骼的旋转平移量进行更新,得到更新后的骨骼旋转平移矩阵。
[0163] 在一种实施方式中,处理单元602用于,采用骨骼权重矩阵和骨骼旋转平移矩阵,预测M个顶点在目标动画的第二动画帧中的位置,得到M个顶点的预测位置,具体用于:
[0164] 获取第一动画帧中顶点i在N个骨骼局部空间下的位置,顶点i为M个顶点中的任一个顶点;
[0165] 通过骨骼旋转平移矩阵和第一动画帧中顶点i在N个骨骼的局部空间下的位置,计算目标动画的第二动画帧中顶点i在N个骨骼的局部空间下的位置;
[0166] 根据第二动画帧中顶点i在N个骨骼的局部空间下的位置和骨骼权重矩阵,计算顶点i在第二动画帧中的位置,得到顶点i的预测位置。
[0167] 在一种实施方式中,M>N,对象在目标动画的第一动画帧中的骨骼旋转平移矩阵包括N个骨骼在第一动画帧中的骨骼旋转平移量;处理单元602用于,获取对象在目标动画的第一动画帧中的骨骼旋转平移矩阵,具体用于:
[0168] 基于骨骼j分别与M个顶点之间的距离,确定骨骼j对应的顶点k,顶点k是M个顶点中与骨骼j距离最近的顶点,骨骼j为N个骨骼中的任一个骨骼;
[0169] 根据骨骼j和顶点k在第一动画帧中的位置,建立骨骼j与顶点k的映射关系;
[0170] 获取顶点k在第一动画帧中的旋转平移量,并根据顶点k在第一动画帧中的旋转平移量和骨骼j与顶点k的映射关系,确定骨骼j在第一动画帧中的旋转平移量。
[0171] 在一种实施方式中,目标骨骼权重矩阵中包括M*N个骨骼权重,第a行第j列的骨骼权重为顶点a在骨骼b的骨骼权重,a为小于等于M的正整数,b为小于等于N的正整数;处理单元602还用于:
[0172] 对目标骨骼权重矩阵中小于第一权重阈值的骨骼权重进行置零处理。
[0173] 在一种实施方式中,目标骨骼权重矩阵中包括M*N个骨骼权重,第a行第b列的骨骼权重为顶点a在骨骼b的骨骼权重,a为小于等于M的正整数,b为小于等于N的正整数;目标骨骼权重矩阵中包括至少一个在骨骼j的骨骼权重小于第二权重阈值的候选优化顶点,骨骼j为N个骨骼中的任一个骨骼;处理单元602还用于:
[0174] 获取目标候选优化顶点对应的骨骼数目阈值P,目标候选优化顶点是在骨骼j的骨骼权重小于第二权重阈值的候选优化顶点中的任一个候选优化顶点,P为小于N的正整数;
[0175] 若N个骨骼中与目标候选优化顶点距离最近的P个骨骼中不包括骨骼j,则对目标候选优化顶点在骨骼j的骨骼权重进行置零处理。
[0176] 在一种实施方式中,处理单元602用于,获取目标候选优化顶点对应的骨骼数目阈值P,具体用于:
[0177] 获取目标候选优化顶点对应的第一骨骼数和第二骨骼数,第一骨骼数是基于目标候选优化顶点绑定的骨骼数和骨骼参数确定的,目标候选优化顶点绑定的骨骼数是指:目标候选优化顶点在N个骨骼的骨骼权重中骨骼权重大于第三权重阈值的骨骼的数量,第二骨骼数是基于N计算得到的;
[0178] 根据第一骨骼数和第二骨骼数,计算目标候选优化顶点对应的骨骼数目阈值P。
[0179] 在一种实施方式中,处理单元602还用于:
[0180] 获取对象的网格模型,并基于网格模型构造对象的拓扑数据结构,拓扑数据结构用于指示M个顶点的连通性,以及连通顶点之间的最小间隔跳数;
[0181] 基于拓扑数据结构,确定顶点i的邻居顶点集合,顶点i的邻居顶点集合包括M个顶点中与顶点i之间的最小间隔跳数小于跳数阈值的顶点,顶点i是M个顶点中的任一个顶点;
[0182] 若顶点i在骨骼j的骨骼权重大于0,且顶点i的邻居顶点集合中的各顶点在骨骼j的骨骼权重均为0,则对顶点i在骨骼j的骨骼权重进行置零处理。
[0183] 在一种实施方式中,处理单元602还用于:
[0184] 若顶点i在骨骼j的骨骼权重和顶点i的邻居顶点集合中的各顶点在骨骼j的骨骼权重均小于第四权重阈值,且顶点i的邻居顶点集合中存在目标顶点,则对顶点i在骨骼j的骨骼权重进行置零处理;
[0185] 其中,目标顶点在骨骼j的骨骼权重小于顶点i在骨骼j的骨骼权重,且目标顶点与骨骼j之间的距离小于顶点i与骨骼j之间的距离。
[0186] 在一种实施方式中,目标动画包括Q个动画帧,Q为正整数;处理单元602还用于:
[0187] 获取对象在Q个动画帧中的骨骼旋转平移矩阵;
[0188] 基于目标骨骼权重矩阵和对象在Q个动画帧中的骨骼旋转平移矩阵,还原目标动画。
[0189] 根据本申请的一个实施例,图2和图3所示的动画处理方法所涉及的部分步骤可由图6所示的动画处理装置中的各个单元来执行。例如,图2中所示的步骤S201和步骤S202可由图6所示的获取单元601执行,图2中所示的步骤S203和步骤S204可由图6所示的处理单元602执行;图3中所示的步骤S301,步骤S302,步骤S310和步骤S312可由图6所示的获取单元
601执行,步骤S303‑步骤S309,步骤S311,步骤S313和步骤S314可由图6所示的处理单元602执行。图6所示的动画处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,动画处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
[0190] 根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机设备的通用计算装置上运行能够执行如图2和图3中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图6中所示的动画处理装置,以及来实现本申请实施例的动画处理方法。计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算装置中,并在其中运行。
[0191] 基于同一发明构思,本申请实施例中提供的动画处理装置解决问题的原理与有益效果与本申请方法实施例中动画处理方法解决问题的原理和有益效果相似,可以参见方法的实施的原理和有益效果,为简洁描述,在这里不再赘述。
[0192] 请参阅图7,图7为本申请实施例提供的一种计算机设备的结构示意图,该计算机设备可以是终端设备或者服务器。如图7所示,计算机设备至少包括处理器701、通信接口702和存储器703。其中,处理器701、通信接口702和存储器703可通过总线或其他方式连接。
其中,处理器701(或称中央处理器(Central Processing Unit,CPU))是计算机设备的计算核心以及控制核心,其可以解析计算机设备内的各类指令以及处理计算机设备的各类数据,例如:CPU可以用于解析对象向计算机设备所发出的开关机指令,并控制计算机设备进行开关机操作;再如:CPU可以在计算机设备内部结构之间传输各类交互数据,等等。通信接口702可选的可以包括标准的有线接口、无线接口(如WI‑FI、移动通信接口等),受处理器
701的控制可以用于收发数据;通信接口702还可以用于计算机设备内部数据的传输以及交互。存储器703(Memory)是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的存储器703既可以包括计算机设备的内置存储器,当然也可以包括计算机设备所支持的扩展存储器。存储器703提供存储空间,该存储空间存储了计算机设备的操作系统,可包括但不限于:安卓(Android)系统、互联网操作系统(Internetworking Operating System,IOS)等等,本申请对此并不作限定。
[0193] 本申请实施例还提供了一种计算机可读存储介质(Memory),计算机可读存储介质是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质既可以包括计算机设备中的内置存储介质,当然也可以包括计算机设备所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了计算机设备的处理系统。并且,在该存储空间中还存放了适于被处理器701加载并执行的计算机程序。需要说明的是,此处的计算机可读存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non‑volatile memory),例如至少一个磁盘存储器;可选的,还可以是至少一个位于远离前述处理器的计算机可读存储介质。
[0194] 在一个实施例中,处理器701通过运行存储器703中的计算机程序,执行如下操作:
[0195] 获取对象在目标动画的第一动画帧中的骨骼旋转平移矩阵,对象包括M个顶点和N个骨骼,N,M均为正整数;
[0196] 获取对象的骨骼权重矩阵;
[0197] 采用骨骼权重矩阵和骨骼旋转平移矩阵,预测M个顶点在目标动画的第二动画帧中的位置,得到M个顶点的预测位置;其中,第二动画帧在目标动画中的播放顺序位于第一动画帧之后;
[0198] 基于M个顶点在第二动画帧中的真实位置与M个顶点的预测位置之间的差异,对骨骼权重矩阵和骨骼旋转平移矩阵进行交替迭代更新,得到目标骨骼权重矩阵。
[0199] 作为一种可选的实施例,预测位置包括第一位置,则处理器701基于M个顶点在第二动画帧中的真实位置与M个顶点的预测位置之间的差异,对骨骼权重矩阵和骨骼旋转平移矩阵进行交替迭代更新,得到目标骨骼权重矩阵的具体实施例为:
[0200] 基于M个顶点在第二动画帧中的真实位置与M个顶点的第一位置之间的差异,对骨骼权重矩阵进行更新,得到更新后的骨骼权重矩阵;
[0201] 通过更新后的骨骼权重矩阵和骨骼旋转平移矩阵,预测M个顶点在第二动画帧中的位置,得到M个顶点的第二位置;
[0202] 基于M个顶点在第二动画帧中的真实位置与M个顶点的第二位置之间的差异,对骨骼旋转平移矩阵进行更新,得到更新后的骨骼旋转平移矩阵;
[0203] 通过更新后的骨骼权重矩阵和更新后的骨骼旋转平移矩阵,预测M个顶点在第二动画帧中的位置,得到M个顶点的第三位置;
[0204] 基于M个顶点在第二动画帧中的真实位置与M个顶点的第三位置之间的差异,对更新后的骨骼权重矩阵进行再次更新,得到目标骨骼权重矩阵。
[0205] 作为一种可选的实施例,处理器701基于M个顶点在第二动画帧中的真实位置与M个顶点的第一位置之间的差异,对骨骼权重矩阵进行迭代更新,得到更新后的骨骼权重矩阵的具体实施例为:
[0206] 基于M个顶点在第二动画帧中的真实位置与M个顶点的第一位置之间的差异,按照约束条件对骨骼权重矩阵进行线性回归处理,得到更新后的骨骼权重矩阵;
[0207] 其中,约束条件包括以下至少一项:骨骼权重矩阵中各个骨骼对应的权重值大于等于0,每个顶点对应的N个骨骼的骨骼权重值之和为1,每个顶点对应的骨骼权重大于预设值的骨骼数量小于K,K为正整数。
[0208] 作为一种可选的实施例,骨骼旋转平移矩阵包括N个骨骼的旋转平移量;处理器701基于M个顶点在第二动画帧中的真实位置与M个顶点的第二位置之间的差异,对骨骼旋转平移矩阵进行更新,得到更新后的骨骼旋转平移矩阵的具体实施例为:
[0209] 基于M个顶点在第二动画帧中的真实位置与M个顶点的第二位置之间的差异,构造误差函数;
[0210] 通过误差函数分别对骨骼旋转平移矩阵中的每个骨骼的旋转平移量进行更新,得到更新后的骨骼旋转平移矩阵。
[0211] 作为一种可选的实施例,处理器701采用骨骼权重矩阵和骨骼旋转平移矩阵,预测M个顶点在目标动画的第二动画帧中的位置,得到M个顶点的预测位置,的具体实施例为:
[0212] 获取第一动画帧中顶点i在N个骨骼局部空间下的位置,顶点i为M个顶点中的任一个顶点;
[0213] 通过骨骼旋转平移矩阵和第一动画帧中顶点i在N个骨骼的局部空间下的位置,计算目标动画的第二动画帧中顶点i在N个骨骼的局部空间下的位置;
[0214] 根据第二动画帧中顶点i在N个骨骼的局部空间下的位置和骨骼权重矩阵,计算顶点i在第二动画帧中的位置,得到顶点i的预测位置。
[0215] 作为一种可选的实施例,M>N,对象在目标动画的第一动画帧中的骨骼旋转平移矩阵包括N个骨骼在第一动画帧中的骨骼旋转平移量;处理器701获取对象在目标动画的第一动画帧中的骨骼旋转平移矩阵的具体实施例为:
[0216] 基于骨骼j分别与M个顶点之间的距离,确定骨骼j对应的顶点k,顶点k是M个顶点中与骨骼j距离最近的顶点,骨骼j为N个骨骼中的任一个骨骼;
[0217] 根据骨骼j和顶点k在第一动画帧中的位置,建立骨骼j与顶点k的映射关系;
[0218] 获取顶点k在第一动画帧中的旋转平移量,并根据顶点k在第一动画帧中的旋转平移量和骨骼j与顶点k的映射关系,确定骨骼j在第一动画帧中的旋转平移量。
[0219] 作为一种可选的实施例,目标骨骼权重矩阵中包括M*N个骨骼权重,第a行第j列的骨骼权重为顶点a在骨骼b的骨骼权重,a为小于等于M的正整数,b为小于等于N的正整数;处理器701通过运行存储器703中的计算机程序,还执行如下操作:
[0220] 对目标骨骼权重矩阵中小于第一权重阈值的骨骼权重进行置零处理。
[0221] 作为一种可选的实施例,目标骨骼权重矩阵中包括M*N个骨骼权重,第a行第b列的骨骼权重为顶点a在骨骼b的骨骼权重,a为小于等于M的正整数,b为小于等于N的正整数;目标骨骼权重矩阵中包括至少一个在骨骼j的骨骼权重小于第二权重阈值的候选优化顶点,骨骼j为N个骨骼中的任一个骨骼;处理器701通过运行存储器703中的计算机程序,还执行如下操作:
[0222] 获取目标候选优化顶点对应的骨骼数目阈值P,目标候选优化顶点是在骨骼j的骨骼权重小于第二权重阈值的候选优化顶点中的任一个候选优化顶点,P为小于N的正整数;
[0223] 若N个骨骼中与目标候选优化顶点距离最近的P个骨骼中不包括骨骼j,则对目标候选优化顶点在骨骼j的骨骼权重进行置零处理。
[0224] 作为一种可选的实施例,处理器701获取目标候选优化顶点对应的骨骼数目阈值P的具体实施例为:
[0225] 获取目标候选优化顶点对应的第一骨骼数和第二骨骼数,第一骨骼数是基于目标候选优化顶点绑定的骨骼数和骨骼参数确定的,目标候选优化顶点绑定的骨骼数是指:目标候选优化顶点在N个骨骼的骨骼权重中骨骼权重大于第三权重阈值的骨骼的数量,第二骨骼数是基于N计算得到的;
[0226] 根据第一骨骼数和第二骨骼数,计算目标候选优化顶点对应的骨骼数目阈值P。
[0227] 作为一种可选的实施例,处理器701通过运行存储器703中的计算机程序,还执行如下操作:
[0228] 获取对象的网格模型,并基于网格模型构造对象的拓扑数据结构,拓扑数据结构用于指示M个顶点的连通性,以及连通顶点之间的最小间隔跳数;
[0229] 基于拓扑数据结构,确定顶点i的邻居顶点集合,顶点i的邻居顶点集合包括M个顶点中与顶点i之间的最小间隔跳数小于跳数阈值的顶点,顶点i是M个顶点中的任一个顶点;
[0230] 若顶点i在骨骼j的骨骼权重大于0,且顶点i的邻居顶点集合中的各顶点在骨骼j的骨骼权重均为0,则对顶点i在骨骼j的骨骼权重进行置零处理。
[0231] 作为一种可选的实施例,处理器701通过运行存储器703中的计算机程序,还执行如下操作:
[0232] 若顶点i在骨骼j的骨骼权重和顶点i的邻居顶点集合中的各顶点在骨骼j的骨骼权重均小于第四权重阈值,且顶点i的邻居顶点集合中存在目标顶点,则对顶点i在骨骼j的骨骼权重进行置零处理;
[0233] 其中,目标顶点在骨骼j的骨骼权重小于顶点i在骨骼j的骨骼权重,且目标顶点与骨骼j之间的距离小于顶点i与骨骼j之间的距离。
[0234] 作为一种可选的实施例,目标动画包括Q个动画帧,Q为正整数;处理器701通过运行存储器703中的计算机程序,还执行如下操作:
[0235] 获取对象在Q个动画帧中的骨骼旋转平移矩阵;
[0236] 基于目标骨骼权重矩阵和对象在Q个动画帧中的骨骼旋转平移矩阵,还原目标动画。
[0237] 基于同一发明构思,本申请实施例中提供的计算机设备解决问题的原理与有益效果与本申请方法实施例中动画处理方法解决问题的原理和有益效果相似,可以参见方法的实施的原理和有益效果,为简洁描述,在这里不再赘述。
[0238] 本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序适于被处理器加载并执行上述方法实施例的动画处理方法。
[0239] 本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,计算机程序适于被处理器加载并执行上述方法实施例的动画处理方法。
[0240] 本申请实施例还提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的动画处理方法。
[0241] 本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
[0242] 本申请实施例装置中的模块可以根据实际需要进行合并、划分和删减。
[0243] 本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,可读存储介质可以包括:闪存盘、只读存储器(Read‑Only Memory ,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
[0244] 以上所揭露的仅为本申请一种较佳实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于申请所涵盖的范围。