一种动画重定向方法、装置、计算机设备及存储介质与流程

文档序号:30755516发布日期:2022-07-13 10:56阅读:138来源:国知局
一种动画重定向方法、装置、计算机设备及存储介质与流程

1.本技术涉及计算机技术领域,具体涉及一种动画重定向方法、装置、计算机设备及存储介质。


背景技术:

2.随着科技的发展,角色动画在场景重现、影视制作、医学模拟等很多领域发挥越来越重要的作用。传统的角色动画一般是由动画制作者直接通过手动调节骨骼或控制器来完成的,这往往需要消耗大量的人力和财力。随着动作捕捉技术、计算机技术的发展,动作复用技术,即利用已有动画来制作更细化和具体的动作的方法得到了越来越广泛的应用。
3.相关技术中,动作复用场景主要集中在两足人形生物的动画制作上。比如,常见的动作捕捉技术,需要真人演员穿戴相关的设备,并通过摄像机捕捉演员的动作信息,最后再将动作投射到创作的角色身上。在非人形生物场景下,动作复用技术应用相对较少,且往往仅支持四足生物的动画制作。现有的针对非人形生物的动作复用技术,通常只是硬性地传递对应骨骼的旋转量,因此要求源生物与目标生物的骨骼层级朝向要大体一致,不能有太多的差异,从而造成了源生物的动画数据传递到目标生物上,动画效果较差。


技术实现要素:

4.本技术实施例提供一种动画重定向方法、装置、计算机设备及存储介质,可以提高动画重定向的适用性。
5.本技术实施例提供了一种动画重定向方法,包括:
6.获取源对象骨骼模型和目标对象骨骼模型;
7.获取通用骨骼匹配模板,所述通用骨骼匹配模板包括对生物身体进行划分得到的多个身体部位,每一身体部位至少包括一个骨骼;
8.基于所述源对象骨骼模型和所述目标对象骨骼模型分别与所述通用骨骼匹配模板的身体部位的匹配结果,确定所述源对象骨骼模型和所述目标对象骨骼模型的身体部位对应关系;
9.根据所述身体部位对应关系将所述源对象骨骼模型的动画信息重定向至所述目标对象骨骼模型,得到所述目标对象骨骼模型的目标动画模型。
10.相应的,本技术实施例还提供了一种动画重定向装置,包括:
11.第一获取单元,用于获取源对象骨骼模型和目标对象骨骼模型;
12.第二获取单元,用于获取通用骨骼匹配模板,所述通用骨骼匹配模板包括对生物身体进行划分得到的多个身体部位,每一身体部位至少包括一个骨骼;
13.确定单元,用于基于所述源对象骨骼模型和所述目标对象骨骼模型分别与所述通用骨骼匹配模板的身体部位的匹配结果,确定所述源对象骨骼模型和所述目标对象骨骼模型的身体部位对应关系;
14.第一处理单元,用于根据所述身体部位对应关系将所述源对象骨骼模型的动画信
息重定向至所述目标对象骨骼模型,得到所述目标对象骨骼模型的目标动画模型。
15.在一些实施例中,第一处理单元包括:
16.第一确定子单元,用于根据与所述源对象身体部位对应的目标对象身体部位,确定与所述源对象身体部位中的源骨骼对应的所述目标对象身体部位中的目标骨骼;
17.调整子单元,用于基于与所述目标骨骼对应的源骨骼的骨骼旋转量对所述目标骨骼进行旋转调整,得到调整后动画模型;
18.第一比较子单元,用于将所述源对象骨骼模型中位于指定身体部位的第一骨骼与所述目标对象骨骼模型中位于所述指定身体部位的第二骨骼进行形态比较,得到比较结果;
19.第二确定子单元,用于根据所述调整后动画模型以及所述比较结果确定所述目标动画模型。
20.在一些实施例中,第二确定子单元具体用于:
21.若所述比较结果指示所述第一骨骼与所述第二骨骼形态相同,则基于所述调整后动画模型得到所述目标动画模型;
22.若所述比较结果指示所述第一骨骼与所述第二骨骼形态不相同,则根据所述第一骨骼的位置信息对所述调整后动画模型进行再次调整,得到所述目标动画模型。
23.在一些实施例中,第二确定子单元具体用于:
24.若所述比较结果指示所述第一骨骼与所述第二骨骼形态相同,则基于所述调整后动画模型得到所述目标动画模型;
25.若所述比较结果指示所述第一骨骼与所述第二骨骼形态不相同,则基于所述位置信息确定所述第二骨骼的目标位置;根据所述目标位置以及所述第二骨骼在所述调整后动画模型中的初始位置,确定骨骼旋转差量;基于所述骨骼旋转差量对所述调整后动画模型中的骨骼进行旋转调整,得到所述目标动画模型。
26.在一些实施例中,第二确定子单元具体用于:
27.若所述比较结果指示所述第一骨骼与所述第二骨骼形态相同,则基于所述调整后动画模型得到所述目标动画模型;
28.若所述比较结果指示所述第一骨骼与所述第二骨骼形态不相同,则获取所述第一骨骼在指定平面的第一偏移量和第一高度,以及所述第二骨骼在所述指定平面的第二偏移量和第二高度;基于所述位置信息、所述第一偏移量、所述第一高度、所述第二偏移量和所述第二高度,计算所述目标位置;根据所述目标位置以及所述第二骨骼在所述调整后动画模型中的初始位置,确定骨骼旋转差量;基于所述骨骼旋转差量对所述调整后动画模型中的骨骼进行旋转调整,得到所述目标动画模型。
29.在一些实施例中,第一处理单元还包括:
30.第二比较子单元,用于将所述源对象身体部位中的源骨骼数量与所述目标对象身体部位中的目标骨骼数量进行比较;
31.第三确定子单元,用于若与所述源骨骼数量不等于所述目标骨骼数量,则从所述源对象身体部位或者所述目标对象身体部位中确定多余骨骼。
32.在一些实施例中,调整子单元具体用于:
33.若所述多余骨骼属于所述源对象身体部位,则根据所述多余骨骼和所述多余骨骼
的相邻骨骼的骨骼旋转量调整所述目标对象身体部位中与所述相邻骨骼对应的骨骼的骨骼旋转量,以及根据所述源对象身体部位中除所述多余骨骼之外的其余骨骼的骨骼旋转量调整所述目标对象身体部位中与所述其余骨骼对应的骨骼的骨骼旋转量;
34.若所述多余骨骼属于所述目标对象身体部位,则根据所述多余骨骼的相邻骨骼在所述源对象身体部位中对应的骨骼的骨骼旋转量调整所述多余骨骼的骨骼旋转量,以及根据所述源对象身体部位中各个骨骼的骨骼旋转量调整所述目标对象身体部位中与所述各个骨骼对应的骨骼的骨骼旋转量。
35.在一些实施例中,调整子单元还具体用于:
36.计算所述源对象身体部位中的源骨骼数量与所述目标对象身体部位中的目标骨骼数量的数量比例;
37.基于所述数量比例以及所述源对象身体部位中每一源骨骼的骨骼旋转量,调整所述目标对象身体部位中每一目标骨骼的骨骼旋转量。
38.在一些实施例中,确定单元包括:
39.第一匹配子单元,用于将所述源对象骨骼模型与所述通用骨骼匹配模板的身体部位进行匹配,从所述通用骨骼匹配模板的身体部位中确定与所述源对象骨骼模型匹配成功的源对象身体部位;
40.第二匹配子单元,用于将所述目标对象骨骼模型与所述通用骨骼匹配模板的身体部位进行匹配,从所述通用骨骼匹配模板的身体部位中确定与所述目标对象骨骼模型匹配成功的目标对象身体部位;
41.第四确定子单元,用于根据对应于所述通用骨骼匹配模板的同一身体部位的源对象身体部位与目标对象身体部位,得到所述源对象骨骼模型和所述目标对象骨骼模型的身体部位对应关系。
42.在一些实施例中,第一获取单元包括:
43.第一获取子单元,用于根据源对象动画的动画帧的播放顺序依次获取每一动画帧中的源对象骨骼模型,以及从目标对象初始帧中获取所述目标对象骨骼模型。
44.在一些实施例中,第一处理单元包括:
45.处理子单元,用于根据每一源对象骨骼模型与所述目标对象骨骼模型的身体部位对应关系,将每一源对象骨骼模型的动画信息重定向至所述目标对象骨骼模型,得到所述目标对象骨骼模型的多个目标动画模型。
46.在一些实施例中,该装置还包括:
47.第二处理单元,用于根据所述多个目标动画模型的排列顺序,对相邻两个目标动画模型进行平滑约束处理,得到处理后多个目标动画模型;
48.生成单元,用于基于所述处理后多个目标动画模型生成所述目标对象骨骼模型的目标动画。
49.相应的,本技术实施例还提供了一种计算机设备,包括存储器,处理器及存储在储存器上并可在处理器上运行的计算机程序,其中,处理器执行本技术实施例任一提供的动画重定向方法。
50.相应的,本技术实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有多条指令,指令适于处理器进行加载,以执行如上的动画重定向方法。
51.本技术实施例通过将生物模型划分为若干身体部位得到通用骨骼匹配模板,将源生物骨骼模型与目标生物骨骼模型基于通用骨骼匹配模板进行匹配,得到身体部位对应关系,然后根据身体部位对应关系将源生物骨骼模型的动画数据重定向至目标生物骨骼模型中,适用于多种类型生物的动画数据的重定向,从而可以提高动画重定向的适用性。
附图说明
52.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
53.图1为本技术实施例提供的一种动画重定向方法的流程示意图。
54.图2为本技术实施例提供的另一种动画重定向方法的流程示意图。
55.图3为本技术实施例提供的一种生物骨骼模型示意图。
56.图4为本技术实施例提供的另一种生物骨骼模型示意图。
57.图5为本技术实施例提供的一种动画重定向装置的结构框图。
58.图6为本技术实施例提供的计算机设备的结构示意图。
具体实施方式
59.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
60.本技术实施例提供一种动画重定向方法、装置、存储介质及计算机设备。具体地,本技术实施例的动画重定向方法可以由计算机设备执行,其中,该计算机设备可以为终端或者服务器等设备。该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、个人计算机(pc,personal computer)、个人数字助理(personal digital assistant,pda)等终端设备。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。
61.例如,该计算机设备可以是终端,该终端可以获取源对象骨骼模型和目标对象骨骼模型;获取通用骨骼匹配模板,通用骨骼匹配模板包括对生物身体进行划分得到的多个身体部位,每一身体部位至少包括一个骨骼;基于源对象骨骼模型和目标对象骨骼模型分别与通用骨骼匹配模板的身体部位的匹配结果,确定源对象骨骼模型和目标对象骨骼模型的身体部位对应关系;根据身体部位对应关系将源对象骨骼模型的动画信息重定向至目标对象骨骼模型,得到目标对象骨骼模型的目标动画模型。
62.基于上述问题,本技术实施例提供第一种动画重定向方法、装置、计算机设备及存储介质,可以提高动画重定向的适用性。
63.以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优
选顺序的限定。
64.本技术实施例提供一种动画重定向方法,该方法可以由终端或服务器执行,本技术实施例以动画重定向方法由终端执行为例来进行说明。
65.请参阅图1,图1为本技术实施例提供的一种动画重定向方法的流程示意图。该动画重定向方法的具体流程可以如下:
66.101、获取源对象骨骼模型和目标对象骨骼模型。
67.在本技术实施例中,源对象骨骼模型为源对象的源对象动画中某一动画帧中源对象的骨骼模型。源对象动画指的是为源对象设计的动态动画效果,则源对象骨骼模型为源对象动画的某一静态动画帧中的源对象的骨骼模型;目标对象骨骼模型为目标对象的初始骨骼模型。
68.其中,源对象和目标对象可以为相同种类或者不同种类的生物。
69.在一些实施例中,为了根据源对象的动画效果生成目标对象的动画效果,步骤“获取源对象骨骼模型和目标对象骨骼模型”,可以包括以下操作:
70.根据源对象动画的动画帧的播放顺序依次获取每一动画帧中的源对象骨骼模型,以及从目标对象初始帧中获取目标对象骨骼模型。
71.其中,源对象动画中包括多个动画帧,该多个动画帧按照预先设计的播放顺序依次播放,以展示源对象的动画效果。
72.例如,源对象动画中的多个动画帧的播放顺序可以为:第一动画帧、第二动画帧、第三动画帧、第四动画帧,则根据该播放顺序依次从源对象动画中获取每一动画帧中的源对象骨骼模型,得到第一动画帧中的源对象骨骼模型,第二动画帧中的源对象骨骼模型,第三动画帧中的源对象骨骼模型以及第四动画帧中的源对象骨骼模型。
73.其中,目标对象初始帧可以为根据目标对象静止状态设计的一帧图像,目标对象初始帧中包括有目标对象静止状态下的目标对象骨骼模型。
74.102、获取通用骨骼匹配模板。
75.其中,通用骨骼匹配模板包括对生物身体进行划分得到的多个身体部位,每一身体部位至少包括一个骨骼。比如,通用骨骼匹配模板中可以包括:腿部、脊柱、脖子、尾巴、翅膀、头部等区域。
76.在本技术实施例中,设计通用骨骼匹配模板的生物不具体指代某一种生物,可以为常见或者不常见的生物类。具体的,在根据对生物身体进行划分得到通用骨骼匹配模板时,可以获取多种生物,对不同种类生物的身体部位进行划分,然后基于多种划分结果进行总结,得到通用骨骼匹配模板,该通用骨骼匹配模板可以适用于多种生物类型。
77.103、基于源对象骨骼模型和目标对象骨骼模型分别与通用骨骼匹配模板的身体部位的匹配结果,确定源对象骨骼模型和目标对象骨骼模型的身体部位对应关系。
78.在一些实施例中,为了提高源对象动画效果的通用性,步骤“基于源对象骨骼模型和目标对象骨骼模型分别与通用骨骼匹配模板的身体部位的匹配结果,确定源对象骨骼模型和目标对象骨骼模型的身体部位对应关系”,可以包括以下操作:
79.将源对象骨骼模型与通用骨骼匹配模板的身体部位进行匹配,从通用骨骼匹配模板的身体部位中确定与源对象骨骼模型匹配成功的源对象身体部位;
80.将目标对象骨骼模型与通用骨骼匹配模板的身体部位进行匹配,从通用骨骼匹配
模板的身体部位中确定与目标对象骨骼模型匹配成功的目标对象身体部位;
81.根据对应于通用骨骼匹配模板的同一身体部位的源对象身体部位与目标对象身体部位,得到源对象骨骼模型和目标对象骨骼模型的身体部位对应关系。
82.其中,通用骨骼匹配模板中包括多个身体部位,比如,多个身体部位可以为:头部,颈部,脊柱,尾部,翅膀,腿部,其中,翅膀可以包括多个翅膀,腿部可以包括多条腿等。
83.具体的,将源对象骨骼模型与通用骨骼匹配模板中的各个身体部位进行匹配,得到源对象骨骼模型包括的源对象身体部位;将目标对象骨骼模型与通用骨骼匹配模板中的各个身体部位进行匹配,得到目标对象骨骼模型包括的目标对象身体部位。
84.例如,通用骨骼匹配模板中包括:头部,颈部,脊柱,尾部,翅膀,腿部等身体部位,然后将源对象骨骼模型与各身体部位进行匹配,基于匹配成功的身体部位得到源对象骨骼模型中包括的源对象身体部位,比如源对象身体部位可以包括:头部,颈部,脊柱,尾部,腿部;将目标对象骨骼模型与各身体部位进行匹配,基于匹配成功的身体部位得到目标对象骨骼模型中包括的目标对象身体部位,比如目标对象身体部位可以包括:头部,颈部,脊柱,尾部,腿部。
85.进一步的,根据源对象骨骼模型与通用骨骼匹配模板的匹配结果,以及目标对象骨骼模型与通用骨骼匹配模板的匹配结果,得到源对象骨骼模型与目标对象骨骼模型的身体部位的对应关系。
86.例如,源对象骨骼模型包括的身体部位可以为:源对象头部,源对象颈部,源对象脊柱,源对象尾部,源对象腿部;目标对象骨骼模型包括的身体部位可以为:目标对象头部,目标对象颈部,目标对象脊柱,目标对象尾部,目标对象腿部。根据源对象骨骼模型与目标对象骨骼模型包括的身体部位建立身体部位对应关系为:源对象头部对应目标对象头部,源对象颈部对应目标对象颈部,源对象脊柱对应目标对象脊柱,源对象尾部对应目标对象尾部,源对象腿部对应目标对象腿部。
87.在一些实施例中,为了节省处理资源,在步骤“将源对象骨骼模型与通用骨骼匹配模板的身体部位进行匹配”之前,还可以包括以下步骤:
88.判断是否存在源对象骨骼模型与通用骨骼匹配模板的身体部位的匹配结果。
89.在本技术实施例中,源对象的动画效果可以复用到其他目标对象之上,则在将源对象的动画效果复用到其他目标对象时,需要将源对象骨骼模型与通用骨骼匹配模板的身体部位进行匹配,得到源对象骨骼模型与通用骨骼匹配模板的身体部位的匹配结果,将匹配结果进行存储,则在下一次使用时,无需将源对象骨骼模型与通用骨骼匹配模板的身体部位进行匹配,可以直接获取之前的匹配结果,从而可以节省操作步骤。
90.104、根据身体部位对应关系将源对象骨骼模型的动画信息重定向至目标对象骨骼模型,得到目标对象骨骼模型的目标动画模型。
91.其中,将源对象骨骼模型的动画信息重定向至目标对象骨骼模型,指的是根据源对象骨骼模型的动画信息设置目标对象骨骼模型的动画。
92.在一些实施例中,为了提高动画重定向效果,步骤“根据身体部位对应关系将源对象骨骼模型的动画信息重定向至目标对象骨骼模型,得到目标对象骨骼模型的目标动画模型”,可以包括以下操作:
93.根据与源对象身体部位对应的目标对象身体部位,确定与源对象身体部位中的源
骨骼对应的目标对象身体部位中的目标骨骼;
94.基于与目标骨骼对应的源骨骼的骨骼旋转量对目标骨骼进行旋转调整,得到调整后动画模型;
95.将源对象骨骼模型中位于指定身体部位的第一骨骼与目标对象骨骼模型中位于指定身体部位的第二骨骼进行形态比较,得到比较结果;
96.根据调整后动画模型以及比较结果确定目标动画模型。
97.其中,源对象骨骼模型与目标对象骨骼模型的身体部位对应关系包括:与源对象骨骼模型中源对象身体部位对应的目标对象骨骼模型中目标对象身体部位,也即源对象身体部位对应的目标对象身体部位;动画信息至少包括:源对象骨骼模型中每一源骨骼的骨骼旋转量。
98.具体的,源对象身体部位与目标对象身体部位由骨骼组成,则可以根据源对象身体部位与目标对象身体部位的对应关系得到源骨骼与目标骨骼的对应关系。
99.例如,源对象身体部位可以为源对象尾部,则与源对象尾部对应的目标对象身体部位为目标对象尾部,其中,源对象尾部的骨骼可以包括:第一尾骨,第二尾骨,在源对象的骨骼链的连接顺序为:第一尾骨,第二尾骨;目标对象尾部的骨骼可以包括:第三尾骨,第四尾骨,在目标对象的骨骼链的连接顺序为:第三尾骨,第四尾骨。则可以确定骨骼对应关系为:第一尾骨对应第三尾骨,第二尾骨对应第四尾骨。
100.进一步的,在确定与源骨骼对应的目标骨骼后,可以根据源骨骼的骨骼旋转量调整与该源骨骼对应的目标骨骼的骨骼旋转量,对目标骨骼进行调整。
101.例如,第一尾骨的骨骼旋转量可以为:第一旋转量,第二尾骨的骨骼旋转量可以为:第二旋转量,则可以将与第一尾骨对应的第三尾骨的骨骼旋转量设置为第一旋转量,将与第二尾骨对应的第四尾骨的骨骼旋转量设置为第二旋转量。通过上述方式,可以完成将源对象骨骼模型中的各个身体部位的骨骼的骨骼旋转量复用到目标对象骨骼模型的各个身体部位的骨骼上。
102.在本技术实施例中,为了进一步提高动画重定向效果,可以将源对象骨骼模型中位于指定身体部位的第一骨骼与目标对象骨骼模型中位于指定身体部位的第二骨骼进行形态比较,得到比较结果。然后根据调整后动画模型以及比较结果进一步确定目标动画模型。
103.其中,指定身体部位可以为任一身体部位,比如脚部等。由于源对象与目标对象的脚步形态可能存在差异,则在将源对象骨骼模型的脚部骨骼的骨骼旋转量复用到目标对象骨骼模型的脚部骨骼后,可能存在目标对象骨骼模型的脚部与地面接触出现异常,比如脚插地,脚滑步等问题。
104.在一些实施例中,为了提高目标对象骨骼模型的动作效果,步骤“根据调整后动画模型以及比较结果确定目标动画模型”,可以包括以下操作:
105.若比较结果指示第一骨骼与第二骨骼形态相同,则基于调整后动画模型得到目标动画模型;
106.若比较结果指示第一骨骼与第二骨骼形态不相同,则根据第一骨骼的位置信息对调整后动画模型进行再次调整,得到目标动画模型。
107.具体的,若源对象骨骼模型中位于指定身体部位的第一骨骼与目标对象骨骼模型
中位于指定身体部位的第二骨骼的形态相同,则无需对调整后动画模型进行再次调整,可以将调整后动画模型作为目标动画模型。
108.具体的,若源对象骨骼模型中位于指定身体部位的第一骨骼与目标对象骨骼模型中位于指定身体部位的第二骨骼的形态不相同,则需要对调整后动画模型进行再次调整,将调整后的调整后动画模型作为目标动画模型。
109.在一些实施例中,为了保证目标对象骨骼模型的动画效果,步骤“根据第一骨骼的位置信息对调整后动画模型进行再次调整,得到目标动画模型”,可以包括以下操作:
110.基于位置信息确定第二骨骼的目标位置;
111.根据目标位置以及第二骨骼在调整后动画模型中的初始位置,确定骨骼旋转差量;
112.基于骨骼旋转差量对调整后动画模型中的骨骼进行旋转调整,得到目标动画模型。
113.首先,可以获取源对象骨骼模型中指定身体部位的第一骨骼的位置信息,该位置信息可以为第一骨骼在源对象骨骼模型中的位置,然后根据该位置信息计算出第二骨骼的目标位置,该目标位置为第二骨骼需要调整的位置。
114.在一些实施例中,步骤“基于位置信息确定第二骨骼的目标位置”,可以包括以下操作:
115.获取第一骨骼在指定平面的第一偏移量和第一高度,以及第二骨骼在指定平面的第二偏移量和第二高度;
116.基于位置信息、第一偏移量、第一高度、第二偏移量和第二高度,计算目标位置。
117.在本技术实施例中,考虑到源对象与目标对象的体型存在一定差异,会根据源对象和目标对象的体型尺寸计算一个比例因子,将该比例因子作用于源对象骨骼模型的指定身体部位的第一骨骼上,从而得到初始的目标对象骨骼模型的指定身体部位的第二骨骼的位置。具体的,比例因子计算公式为:
[0118][0119]
其中,分别为目标对象骨骼模型中的第一骨骼、源对象骨骼模型中的第二骨骼在指定平面(如xz平面)上的偏移量,h
tar
、h
src
分别为目标对象骨骼模型中的第一骨骼、源对象骨骼模型中的第二骨骼高度。
[0120]
其中,则计算初始的第二骨骼的位置为:
[0121][0122]
在一些实施例中,考虑到不同生物的指定身体部位的骨骼相对位置关系也存在差异,本技术实施例可以记录tpose下源对象骨骼模型和目标对象骨骼模型的偏差,并计算对应指定身体部位的骨骼的变换关系,将该变换关系作用于初始的第二骨骼的位置,得到最终的第二骨骼的位置。
[0123]
其中,tpose指的是骨骼姿势,也即是对象动画前作为骨骼绑定的标准动作。
[0124]
具体的,获取tpose下源对象骨骼模型和目标对象骨骼模型第i个指定身体部位的
骨骼位置分别为然后,计算最终的第二骨骼的位置,也即目标位置可以为:
[0125][0126]
其中,为第一骨骼在目标对象骨骼模型中的初始的位置,ry为根骨骼绕y轴旋转的分量。
[0127]
在本技术实施例中,为了权衡动作相似度与到达位置之间的关系,设置了可调节的权重系数(ik/fk融合系数)α,可以用于融合直接迁移旋转数据的结果和ik反算的结果。其中,融合后的末端节点位置为:
[0128][0129]
在本技术实施例中,为了避免对目标对象骨骼模型的骨骼进行旋转时产生骨骼反向,可以约束骨骼扭转方向与tpose定义一致。
[0130]
然后,根据目标位置以及第二骨骼在调整后动画模型中的初始位置,确定骨骼旋转差量。
[0131]
具体的,在获得最终的第二骨骼的位置之后,通过逆向运动学(ik)技术,在上述根据源对象骨骼模型中骨骼的骨骼旋转量计算目标对象骨骼模型的骨骼旋转量的结果的基础上,迭代地计算新的骨骼旋转量,从而让目标对象骨骼模型的第二骨骼达到经过上面计算得到的最终位置上,更新的骨骼旋转差量可以为:
[0132][0133]
其中,j为雅克比矩阵(雅可比矩阵是一阶偏导数以一定方式排列成的矩阵),i为单位矩阵(从左上角到右下角的对角线(称为主对角线)上的元素均为1以外全都为0),为第二骨骼初始位置到指定位置的差。其中,反向运动学(ik)使用目标导向方法,可以用来定位目标对象,并且程序计算链末端的位置和方向。在所有计算都完成后,层次的最终位置就称作ik解决方案。有许多ik解算器可以应用到层次上。反向运动学开始于链接和轴点位置,并将它们作为地基,然后添加以下原则:关节受特定的位置和旋转属性的约束,父对象的位置和方向由子对象的位置和方向所确定。
[0134]
然后,基于骨骼旋转差量对调整后动画模型中的骨骼进行旋转调整,也即重新调整目标对象骨骼模型中的骨骼的骨骼旋转量。
[0135]
在一些实施例中,由于源对象骨骼模型与目标对象骨骼模型的骨骼尺寸存在差异,可能存在源对象骨骼模型中的源对象身体部位对应的目标对象骨骼模型中的目标对象身体部位的骨骼数量不相同,为了完成不同骨骼数量的相同身体部位的骨骼旋转量的复用,在步骤“基于与目标骨骼对应的源骨骼的骨骼旋转量对目标骨骼进行旋转调整,得到调整后动画模型”之前,还可以包括以下步骤:
[0136]
将源对象身体部位中的源骨骼数量与目标对象身体部位中的目标骨骼数量进行比较;
[0137]
若与源骨骼数量不等于目标骨骼数量,则从源对象身体部位或者目标对象身体部位中确定多余骨骼。
[0138]
例如,源对象身体部位可以为源对象尾部,目标对象身体部位可以为目标对象尾
部,源对象尾部对应目标对象尾部,获取源对象尾部的骨骼数量,可以为第一数量,获取目标对象尾部的骨骼数量,可以为第二数量。
[0139]
然后,将第一数量与第二数量进行比较,若第一数量与第二数量不想等,则可以从源对象身体部位或者目标对象身体部位中确定多余骨骼,该多余骨骼为不存在对应骨骼的骨骼。
[0140]
则步骤“基于与目标骨骼对应的源骨骼的骨骼旋转量对目标骨骼进行旋转调整,得到调整后动画模型”,可以包括以下操作:
[0141]
若多余骨骼属于源对象身体部位,则根据多余骨骼和多余骨骼的相邻骨骼的骨骼旋转量调整目标对象身体部位中与相邻骨骼对应的骨骼的骨骼旋转量,以及根据源对象身体部位中除多余骨骼之外的其余骨骼的骨骼旋转量调整目标对象身体部位中与其余骨骼对应的骨骼的骨骼旋转量;
[0142]
若多余骨骼属于目标对象身体部位,则根据多余骨骼的相邻骨骼在源对象身体部位中对应的骨骼的骨骼旋转量调整多余骨骼的骨骼旋转量,以及根据源对象身体部位中各个骨骼的骨骼旋转量调整目标对象身体部位中与各个骨骼对应的骨骼的骨骼旋转量。
[0143]
在本技术实施例中,当源骨骼数量不等于目标骨骼数量,设计了最近邻分配法来解决对应身体部位不同骨骼数量的动作重定向问题。
[0144]
具体的,若多余骨骼属于源对象身体部位,则可以确定目标对象身体部位中不存在与该多余骨骼对应的骨骼,则为了保证动作复用效果,可以将该多余骨骼的骨骼旋转量叠加到与该多余骨骼相邻的相邻骨骼的骨骼旋转量,得到叠加骨骼旋转量,然后将该叠加骨骼旋转量复用给该相邻骨骼在目标对象身体部位对应的目标骨骼上。
[0145]
例如,源对象身体部位包括:骨骼a,骨骼b,骨骼c,目标对象身体部位包括:骨骼d,骨骼e,其中,骨骼a对应骨骼d,骨骼b对应骨骼e,则可以确定多余骨骼为:骨骼c,在进行骨骼旋转量复用时,将骨骼c的骨骼旋转量叠加到相邻的骨骼b的骨骼旋转量上,得到叠加后旋转量,然后根据该叠加后旋转量调整骨骼e的旋转量。
[0146]
具体的,若多余骨骼属于目标对象身体部位,则可以确定源身体部位中不存在与该多余骨骼对应的骨骼,则为了保证动作复用效果,可以根据该多余骨骼的相邻骨骼在源身体部位中对应的骨骼的骨骼旋转量调整该多余骨骼的骨骼旋转量。
[0147]
例如,源对象身体部位包括:骨骼a,骨骼b,目标对象身体部位包括:骨骼c,骨骼d,骨骼e,其中,骨骼a对应骨骼c,骨骼b对应骨骼d,则可以确定多余骨骼为:骨骼e,在进行骨骼旋转量复用时,根据骨骼b的骨骼旋转量调整骨骼e的旋转量。
[0148]
在一些实施例中,当源骨骼数量不等于目标骨骼数量,还设计了等比例分配法来解决对应身体部位不同骨骼数量的动作重定向问题,则当源骨骼数量不等于目标骨骼数量时,还可以包括以下步骤:
[0149]
计算源对象身体部位中的源骨骼数量与目标对象身体部位中的目标骨骼数量的数量比例;
[0150]
基于数量比例以及源对象身体部位中每一源骨骼的骨骼旋转量,调整目标对象身体部位中每一目标骨骼的骨骼旋转量。
[0151]
具体的,等比例分配法通过计算目标骨骼数量和源骨骼数量的比例,然后按照该比例以及骨骼之间的层级关系将源骨骼的骨骼旋转量分配给目标骨骼。
[0152]
例如,源骨骼数量可以3根,目标骨骼数量可以为4根,计算源骨骼数量与目标骨骼数量的数量比例可以为:3/4,然后,将源对象身体部位的第一根骨骼的骨骼旋转量分配3/4给目标身体部位的第一根骨骼,将源对象身体部位的第一根骨骼的骨骼旋转量1/4叠加源对象身体部位的第二根骨骼的骨骼旋转量的2/4给目标身体部位的第二根骨骼,源对象身体部位的第二根骨骼的骨骼旋转量的2/4加源对象身体部位的第三根骨骼的骨骼旋转量的1/4给目标身体部位的第二根骨骼...以此类推,直至完成将源对象骨骼模型中各个骨骼的骨骼旋转量分配给目标对象骨骼模型的骨骼。
[0153]
在一些实施例中,最近邻分配法与等比例分配法可以适用于不同的身体部位的骨骼旋转量的分配,可以根据实际情况在不同身体部位的骨骼旋转量复用时选择不同的旋转量分配方法,以达到较好动作复用的效果。
[0154]
在一些实施例中,为了生成目标对象的完整动画效果,步骤“根据身体部位对应关系将源对象骨骼模型的动画信息重定向至目标对象骨骼模型,得到目标对象骨骼模型的目标动画模型”,可以包括以下操作:
[0155]
根据每一源对象骨骼模型与目标对象骨骼模型的身体部位对应关系,将每一源对象骨骼模型的动画信息重定向至目标对象骨骼模型,得到目标对象骨骼模型的多个目标动画模型。
[0156]
例如,源对象动画中的多个动画帧的播放顺序可以为:第一动画帧、第二动画帧、第三动画帧、第四动画帧,则根据该播放顺序依次从源对象动画中获取每一动画帧中的源对象骨骼模型,得到第一动画帧中的源对象骨骼模型,第二动画帧中的源对象骨骼模型,第三动画帧中的源对象骨骼模型以及第四动画帧中的源对象骨骼模型。
[0157]
进一步的,根据第一动画帧中的源对象骨骼模型,第二动画帧中的源对象骨骼模型,第三动画帧中的源对象骨骼模型以及第四动画帧中的源对象骨骼模型分别对目标对象骨骼模型进行动作设置,得到多个目标动画模型,包括:第一目标动画模型,第二目标动画模型,第三目标动画模型以及第四目标动画模型。
[0158]
在一些实施例中,在得到目标对象骨骼模型的多个目标动画模型之后,为了生成目标对象骨骼模型的动画效果,还可以包括以下步骤:
[0159]
根据多个目标动画模型的排列顺序,对相邻两个目标动画模型进行平滑约束处理,得到处理后多个目标动画模型;
[0160]
基于处理后多个目标动画模型生成目标对象骨骼模型的目标动画。
[0161]
在本技术实施例中,为保持动作的连贯性,我们添加了帧间平滑约束,计算公式可以为:
[0162]
l
smooth
=q
cur-q
pre

[0163]
其中,l
smooth
是loss项,q
cur
是当前目标动画模型的旋转量,q
pre
是位于当前目标动画模型的前一目标动画模型的旋转量。
[0164]
通过上述帧间平滑约束对多个目标动画模型进处理,得到处理后多个目标动画模型,然后基于处理后多个目标动画模型生成目标对象骨骼模型的目标动画。
[0165]
在一些实施例中,为了方便对目标动画进行修改,在步骤“基于处理后多个目标动画模型生成目标对象骨骼模型的目标动画”之后,还可以包括以下步骤:
[0166]
将目标动画存储为指定格式的动画文件。
[0167]
其中,将目标动画存储为指定格式的动画文件,比如,指定格式文件可以为fbx文件(一种通用模型格式文件,支持所有主要的三维数据元素以及二维、音频和视频媒体元素)。
[0168]
进一步的,用户或者研发人员可以通过设计工具打开动画文件,并对目标动画进行修改。具体的,通过获取fbx文件中每一帧的目标对象骨骼模型在世界空间(系统的绝对坐标系)的位置信息,再把位置信息传递给控制器,这样动画师就可以在生成的目标动画上进行二次修改。
[0169]
其中,控制器为动画师使用的代理控制物体。控制器集合了约束,ik等功能,从而方便动作制作。
[0170]
最后,生成的控制器动画文件交接给动画师后,动画师可以在目标动画的基础上添加动画层,或者直接调整对应控制器的动画曲线进行二次动画修复,以完成对目标对象骨骼模型的动画设计。
[0171]
本技术实施例公开了一种动画重定向方法,该方法包括:获取源对象骨骼模型和目标对象骨骼模型;获取通用骨骼匹配模板,通用骨骼匹配模板包括对生物身体进行划分得到的多个身体部位,每一身体部位至少包括一个骨骼;基于源对象骨骼模型和目标对象骨骼模型分别与通用骨骼匹配模板的身体部位的匹配结果,确定源对象骨骼模型和目标对象骨骼模型的身体部位对应关系;根据身体部位对应关系将源对象骨骼模型的动画信息重定向至目标对象骨骼模型,得到目标对象骨骼模型的目标动画模型。以此,可以提高动画重定向的适用性。
[0172]
根据上述介绍的内容,下面将举例来进一步说明本技术的动画重定向方法。请参阅图2,图2为本技术实施例提供的另一种动画重定向方法的流程示意图,以该动画重定向方法应用于终端为例,具体流程可以如下:
[0173]
201、终端获取源生物骨骼模型和目标生物骨骼模型。
[0174]
其中,目标生物骨骼模型需要根据源生物骨骼模型的动画信息进行动画设计。
[0175]
例如,请参阅图3,图3为本技术实施例提供的一种生物骨骼模型示意图。图3示出了源生物骨骼模型,源生物骨骼模型中标记了源生物骨骼链,以及请参阅图4,图4为本技术实施例提供的另一种生物骨骼模型示意图。图4示出了目标生物骨骼模型,目标生物骨骼模型中标记了目标生物骨骼链。
[0176]
具体的,生物骨骼的拓扑,可以为一个树形结构,生物体不同部位的骨骼都是由一条有向无环链条构成。本技术实施例通过生物骨骼模型中骨骼链的首端和末端关节的方式来确定一条骨骼链,进一步可以确定生物的不同部位。
[0177]
202、终端基于通用骨骼匹配模板将源生物骨骼模型与目标生物骨骼模型进行匹配,得到源生物骨骼模型与目标生物骨骼模型的身体部位对应关系。
[0178]
在本技术实施例中,预先设计了一个通用骨骼匹配模板,该通用骨骼匹配模板包括多个生物身体部位:腿部、脊柱、脖子、尾巴、翅膀、头部区域,并搭配了一个骨骼匹配列表,可以实现任意骨骼拓扑的匹配。
[0179]
具体的,首先将源生物骨骼模型与通用骨骼匹配模板进行匹配,得到源生物骨骼模型包括的源身体部位,然后目标生物骨骼模型与通用骨骼匹配模板进行匹配,得到目标生物骨骼模型包括的目标身体部位,最后将源身体部位与目标身体部位进行匹配,得到源
身体部位与目标身体部位的对应关系,也即身体部位对应关系。
[0180]
203、终端根据身体部位对应关系将源生物骨骼模型的旋转数据重定向至目标生物骨骼模型,得到调整后动画模型。
[0181]
其中,旋转数据指的是骨骼旋转量。
[0182]
具体的,根据身体部位对应关系将源生物骨骼模型中骨骼的骨骼旋转量复用至与源生物骨骼模型中骨骼对应的目标生物骨骼模型中的骨骼上。
[0183]
首先,可以根据源生物骨骼模型与目标生物骨骼模型的身体部位对应关系确定源生物骨骼模型与目标生物骨骼模型的骨骼对应关系,然后根据骨骼对应关系,进行骨骼旋转量的复用。
[0184]
在一些实施例中,不同的多足生物在同一身体部位的骨骼数量可能存在不相同,本技术实施例设计了两种骨骼旋转量的分配方法来解决不同骨骼数的重定向问题,包括:最近邻分配法和等比例分配法。
[0185]
其中,最近邻分配法会将源生物骨骼模型中未匹配的骨骼旋转量叠加到与其最接近的有匹配的骨骼上,而目标生物骨骼模型中未匹配的骨骼则由与此骨骼最接近的骨骼分配一定比例获得,最近邻分配法可以适用于腿部骨骼。等比例分配法则会计算源生物骨骼模型和目标生物骨骼模型的骨骼段数的比例,按比例按层级关系将源骨骼旋转分配给目标骨骼,等比例分配法可以适用于尾巴、脊柱等部位骨骼的重定向。另外,对于源生物骨骼模型和目标生物骨骼模型骨骼段数一致的情况下,无需分配骨骼旋转量。具体的,对于最近邻分配法和等比例分配法的说明请参见上述实施例,在此不多做赘述。
[0186]
204、终端根据源生物骨骼模型和目标生物骨骼模型的末端节点的位置对调整后动画模型进行处理,得到目标生物骨骼模型对应的目标动画模型。
[0187]
在一些实施例中,将源生物骨骼模型的旋转数据直接复用到目标生物骨骼模型的结果往往会导致目标生物骨骼模型存在滑步、插地等问题。那么,为保持目标生物骨骼模型的动作踩地、贴地的效果,可以将源生物骨骼模型末端节点的位置变化迁移到目标生物骨骼模型上。考虑到不同生物的体型存在一定差异,可以根据源生物骨骼模型和目标生物骨骼模型的体型尺寸计算一个比例因子,作用于源生物骨骼模型的末端节点上,从而得到初始目标生物骨骼模型末端节点位置。比例因子计算公式可以参见上述实施例。
[0188]
进一步的,根据源生物骨骼模型末端节点的位置以及比例因子可以计算得到初始目标末端节点位置e1。
[0189]
在本技术实施例中,考虑到不同生物的末端节点相对位置关系也存在差异,可以记录tpose下源生物骨骼模型和目标生物骨骼模型末端节点的偏差,并计算对应末端节点的变换关系,将变换关系作用于初始目标模型末端节点位置e1,得到最终的目标末端节点位置e2。具体的,e2的计算方式可以参见上述实施例,再次不多做赘述。
[0190]
在获得目标末端节点位置之后,通过逆向运动学(ik)技术,在上述数据旋转复用结果的基础上,迭代地计算新的骨骼旋转量,从而让目标模型的末端节点达到经过上面计算得到的目标末端节点位置上。
[0191]
具体的,为权衡动作相似度与到达位置之间的关系,本发明设置了可调节的权重系数(ik/fk融合系数)α,用于融合直接迁移旋转数据的结果和ik反算的结果。其中,融合后的末端节点位置的计算公式可以参见上述实施例。
[0192]
另外,在旋转数据复用时,为避免目标对象骨骼模型的骨骼反向,可以约束骨骼扭转方向与tpose定义一致。
[0193]
205、终端基于每一源生物骨骼模型得到的目标动画模型生成目标生物骨骼模型的目标动画,并将目标动画存储为指定格式文件。
[0194]
通过上面的重定向计算后,将生成目标骨骼的动画。其中,在基于每一源生物骨骼模型得到的目标动画模型生成目标生物骨骼模型的目标动画过程中,为保持目标生物骨骼模型动作的连贯性,可以在多个目标动画模型之间添加了帧间平滑约束。
[0195]
最后,可以把结果存储为fbx文件,通过获取fbx中每一帧的骨骼在世界空间的位置信息,再把位置信息传递给控制器以使动画师可以在生成的结果上进行二次修改。具体的,生成的控制器动画文件交接给动画师后,动画师可以在此基础上添加动画层,或者直接调整对应控制器的动画曲线进行二次动画修复,以提高目的生物骨骼模型的动画表现效果。
[0196]
本技术实施例公开了一种动画重定向方法,该方法包括:终端获取源生物骨骼模型和目标生物骨骼模型,基于通用骨骼匹配模板将源生物骨骼模型与目标生物骨骼模型进行匹配,得到源生物骨骼模型与目标生物骨骼模型的身体部位对应关系,根据身体部位对应关系将源生物骨骼模型的旋转数据重定向至目标生物骨骼模型,得到调整后动画模型,根据源生物骨骼模型和目标生物骨骼模型的末端节点的位置对调整后动画模型进行处理,得到目标生物骨骼模型对应的目标动画模型,基于每一源生物骨骼模型得到的目标动画模型生成目标生物骨骼模型的目标动画,并将目标动画存储为指定格式文件。以此,可以提高动画重定向的适用性和表现效果。
[0197]
为便于更好的实施本技术实施例提供的动画重定向方法,本技术实施例还提供一种基于上述动画重定向方法的动画重定向装置。其中名词的含义与上述动画重定向方法中相同,具体实现细节可以参考方法实施例中的说明。
[0198]
请参阅图5,图5为本技术实施例提供的一种动画重定向装置的结构框图,该装置包括:
[0199]
第一获取单元301,用于获取源对象骨骼模型和目标对象骨骼模型;
[0200]
第二获取单元302,用于获取通用骨骼匹配模板,所述通用骨骼匹配模板包括对生物身体进行划分得到的多个身体部位,每一身体部位至少包括一个骨骼;
[0201]
确定单元303,用于基于所述源对象骨骼模型和所述目标对象骨骼模型分别与所述通用骨骼匹配模板的身体部位的匹配结果,确定所述源对象骨骼模型和所述目标对象骨骼模型的身体部位对应关系;
[0202]
第一处理单元304,用于根据所述身体部位对应关系将所述源对象骨骼模型的动画信息重定向至所述目标对象骨骼模型,得到所述目标对象骨骼模型的目标动画模型。
[0203]
在一些实施例中,第一处理单元304可以包括:
[0204]
第一确定子单元,用于根据与所述源对象身体部位对应的目标对象身体部位,确定与所述源对象身体部位中的源骨骼对应的所述目标对象身体部位中的目标骨骼;
[0205]
调整子单元,用于基于与所述目标骨骼对应的源骨骼的骨骼旋转量对所述目标骨骼进行旋转调整,得到调整后动画模型;
[0206]
第一比较子单元,用于将所述源对象骨骼模型中位于指定身体部位的第一骨骼与
所述目标对象骨骼模型中位于所述指定身体部位的第二骨骼进行形态比较,得到比较结果;
[0207]
第二确定子单元,用于根据所述调整后动画模型以及所述比较结果确定所述目标动画模型。
[0208]
在一些实施例中,第二确定子单元具体可以用于:
[0209]
若所述比较结果指示所述第一骨骼与所述第二骨骼形态相同,则基于所述调整后动画模型得到所述目标动画模型;
[0210]
若所述比较结果指示所述第一骨骼与所述第二骨骼形态不相同,则根据所述第一骨骼的位置信息对所述调整后动画模型进行再次调整,得到所述目标动画模型。
[0211]
在一些实施例中,第二确定子单元具体可以用于:
[0212]
若所述比较结果指示所述第一骨骼与所述第二骨骼形态相同,则基于所述调整后动画模型得到所述目标动画模型;
[0213]
若所述比较结果指示所述第一骨骼与所述第二骨骼形态不相同,则基于所述位置信息确定所述第二骨骼的目标位置;根据所述目标位置以及所述第二骨骼在所述调整后动画模型中的初始位置,确定骨骼旋转差量;基于所述骨骼旋转差量对所述调整后动画模型中的骨骼进行旋转调整,得到所述目标动画模型。
[0214]
在一些实施例中,第二确定子单元具体可以用于:
[0215]
若所述比较结果指示所述第一骨骼与所述第二骨骼形态相同,则基于所述调整后动画模型得到所述目标动画模型;
[0216]
若所述比较结果指示所述第一骨骼与所述第二骨骼形态不相同,则获取所述第一骨骼在指定平面的第一偏移量和第一高度,以及所述第二骨骼在所述指定平面的第二偏移量和第二高度;基于所述位置信息、所述第一偏移量、所述第一高度、所述第二偏移量和所述第二高度,计算所述目标位置;根据所述目标位置以及所述第二骨骼在所述调整后动画模型中的初始位置,确定骨骼旋转差量;基于所述骨骼旋转差量对所述调整后动画模型中的骨骼进行旋转调整,得到所述目标动画模型。
[0217]
在一些实施例中,第一处理单元304还可以包括:
[0218]
第二比较子单元,用于将所述源对象身体部位中的源骨骼数量与所述目标对象身体部位中的目标骨骼数量进行比较;
[0219]
第三确定子单元,用于若与所述源骨骼数量不等于所述目标骨骼数量,则从所述源对象身体部位或者所述目标对象身体部位中确定多余骨骼。
[0220]
在一些实施例中,调整子单元具体可以用于:
[0221]
若所述多余骨骼属于所述源对象身体部位,则根据所述多余骨骼和所述多余骨骼的相邻骨骼的骨骼旋转量调整所述目标对象身体部位中与所述相邻骨骼对应的骨骼的骨骼旋转量,以及根据所述源对象身体部位中除所述多余骨骼之外的其余骨骼的骨骼旋转量调整所述目标对象身体部位中与所述其余骨骼对应的骨骼的骨骼旋转量;
[0222]
若所述多余骨骼属于所述目标对象身体部位,则根据所述多余骨骼的相邻骨骼在所述源对象身体部位中对应的骨骼的骨骼旋转量调整所述多余骨骼的骨骼旋转量,以及根据所述源对象身体部位中各个骨骼的骨骼旋转量调整所述目标对象身体部位中与所述各个骨骼对应的骨骼的骨骼旋转量。
[0223]
在一些实施例中,调整子单元还具体可以用于:
[0224]
计算所述源对象身体部位中的源骨骼数量与所述目标对象身体部位中的目标骨骼数量的数量比例;
[0225]
基于所述数量比例以及所述源对象身体部位中每一源骨骼的骨骼旋转量,调整所述目标对象身体部位中每一目标骨骼的骨骼旋转量。
[0226]
在一些实施例中,确定单元303可以包括:
[0227]
第一匹配子单元,用于将所述源对象骨骼模型与所述通用骨骼匹配模板的身体部位进行匹配,从所述通用骨骼匹配模板的身体部位中确定与所述源对象骨骼模型匹配成功的源对象身体部位;
[0228]
第二匹配子单元,用于将所述目标对象骨骼模型与所述通用骨骼匹配模板的身体部位进行匹配,从所述通用骨骼匹配模板的身体部位中确定与所述目标对象骨骼模型匹配成功的目标对象身体部位;
[0229]
第四确定子单元,用于根据对应于所述通用骨骼匹配模板的同一身体部位的源对象身体部位与目标对象身体部位,得到所述源对象骨骼模型和所述目标对象骨骼模型的身体部位对应关系。
[0230]
在一些实施例中,第一获取单元301可以包括:
[0231]
第一获取子单元,用于根据源对象动画的动画帧的播放顺序依次获取每一动画帧中的源对象骨骼模型,以及从目标对象初始帧中获取所述目标对象骨骼模型。
[0232]
在一些实施例中,第一处理单元304可以包括:
[0233]
处理子单元,用于根据每一源对象骨骼模型与所述目标对象骨骼模型的身体部位对应关系,将每一源对象骨骼模型的动画信息重定向至所述目标对象骨骼模型,得到所述目标对象骨骼模型的多个目标动画模型。
[0234]
在一些实施例中,该装置还可以包括:
[0235]
第二处理单元,用于根据所述多个目标动画模型的排列顺序,对相邻两个目标动画模型进行平滑约束处理,得到处理后多个目标动画模型;
[0236]
生成单元,用于基于所述处理后多个目标动画模型生成所述目标对象骨骼模型的目标动画。
[0237]
本技术实施例公开了一种动画重定向装置,通过第一获取单元301获取源对象骨骼模型和目标对象骨骼模型,第二获取单元302获取通用骨骼匹配模板,所述通用骨骼匹配模板包括对生物身体进行划分得到的多个身体部位,每一身体部位至少包括一个骨骼,确定单元303基于所述源对象骨骼模型和所述目标对象骨骼模型分别与所述通用骨骼匹配模板的身体部位的匹配结果,确定所述源对象骨骼模型和所述目标对象骨骼模型的身体部位对应关系,第一处理单元304根据所述身体部位对应关系将所述源对象骨骼模型的动画信息重定向至所述目标对象骨骼模型,得到所述目标对象骨骼模型的目标动画模型。以此,可以提高动画重定向的适用性。
[0238]
相应的,本技术实施例还提供一种计算机设备,该计算机设备可以为终端。如图6所示,图6为本技术实施例提供的计算机设备的结构示意图。该计算机设备500包括有一个或者一个以上处理核心的处理器501、有一个或一个以上计算机可读存储介质的存储器502及存储在存储器502上并可在处理器上运行的计算机程序。其中,处理器501与存储器502电
性连接。本领域技术人员可以理解,图中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0239]
处理器501是计算机设备500的控制中心,利用各种接口和线路连接整个计算机设备500的各个部分,通过运行或加载存储在存储器502内的软件程序和/或模块,以及调用存储在存储器502内的数据,执行计算机设备500的各种功能和处理数据,从而对计算机设备500进行整体监控。
[0240]
在本技术实施例中,计算机设备500中的处理器501会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器502中,并由处理器501来运行存储在存储器502中的应用程序,从而实现各种功能:
[0241]
获取源对象骨骼模型和目标对象骨骼模型;
[0242]
获取通用骨骼匹配模板,通用骨骼匹配模板包括对生物身体进行划分得到的多个身体部位,每一身体部位至少包括一个骨骼;
[0243]
基于源对象骨骼模型和目标对象骨骼模型分别与通用骨骼匹配模板的身体部位的匹配结果,确定源对象骨骼模型和目标对象骨骼模型的身体部位对应关系;
[0244]
根据身体部位对应关系将源对象骨骼模型的动画信息重定向至目标对象骨骼模型,得到目标对象骨骼模型的目标动画模型。
[0245]
在一些实施例中,身体部位对应关系包括与源对象骨骼模型中源对象身体部位对应的目标对象骨骼模型中目标对象身体部位,动画信息至少包括源对象骨骼模型中每一源骨骼的骨骼旋转量;
[0246]
根据身体部位对应关系将源对象骨骼模型的动画信息重定向至目标对象骨骼模型,得到目标对象骨骼模型的目标动画模型,包括:
[0247]
根据与源对象身体部位对应的目标对象身体部位,确定与源对象身体部位中的源骨骼对应的目标对象身体部位中的目标骨骼;
[0248]
基于与目标骨骼对应的源骨骼的骨骼旋转量对目标骨骼进行旋转调整,得到调整后动画模型;
[0249]
将源对象骨骼模型中位于指定身体部位的第一骨骼与目标对象骨骼模型中位于指定身体部位的第二骨骼进行形态比较,得到比较结果;
[0250]
根据调整后动画模型以及比较结果确定目标动画模型。
[0251]
在一些实施例中,根据调整后动画模型以及比较结果确定目标动画模型,包括:
[0252]
若比较结果指示第一骨骼与第二骨骼形态相同,则基于调整后动画模型得到目标动画模型;
[0253]
若比较结果指示第一骨骼与第二骨骼形态不相同,则根据第一骨骼的位置信息对调整后动画模型进行再次调整,得到目标动画模型。
[0254]
在一些实施例中,根据第一骨骼的位置信息对调整后动画模型进行再次调整,得到目标动画模型,包括:
[0255]
基于位置信息确定第二骨骼的目标位置;
[0256]
根据目标位置以及第二骨骼在调整后动画模型中的初始位置,确定骨骼旋转差量;
[0257]
基于骨骼旋转差量对调整后动画模型中的骨骼进行旋转调整,得到目标动画模
型。
[0258]
在一些实施例中,基于位置信息确定第二骨骼的目标位置,包括:
[0259]
获取第一骨骼在指定平面的第一偏移量和第一高度,以及第二骨骼在指定平面的第二偏移量和第二高度;
[0260]
基于位置信息、第一偏移量、第一高度、第二偏移量和第二高度,计算目标位置。
[0261]
在一些实施例中,在基于与目标骨骼对应的源骨骼的骨骼旋转量对目标骨骼进行旋转调整,得到调整后动画模型之前,还包括:
[0262]
将源对象身体部位中的源骨骼数量与目标对象身体部位中的目标骨骼数量进行比较;
[0263]
若与源骨骼数量不等于目标骨骼数量,则从源对象身体部位或者目标对象身体部位中确定多余骨骼;
[0264]
基于与目标骨骼对应的源骨骼的骨骼旋转量对目标骨骼进行旋转调整,得到调整后动画模型,包括:
[0265]
若多余骨骼属于源对象身体部位,则根据多余骨骼和多余骨骼的相邻骨骼的骨骼旋转量调整目标对象身体部位中与相邻骨骼对应的骨骼的骨骼旋转量,以及根据源对象身体部位中除多余骨骼之外的其余骨骼的骨骼旋转量调整目标对象身体部位中与其余骨骼对应的骨骼的骨骼旋转量;
[0266]
若多余骨骼属于目标对象身体部位,则根据多余骨骼的相邻骨骼在源对象身体部位中对应的骨骼的骨骼旋转量调整多余骨骼的骨骼旋转量,以及根据源对象身体部位中各个骨骼的骨骼旋转量调整目标对象身体部位中与各个骨骼对应的骨骼的骨骼旋转量。
[0267]
在一些实施例中,还包括:
[0268]
计算源对象身体部位中的源骨骼数量与目标对象身体部位中的目标骨骼数量的数量比例;
[0269]
基于数量比例以及源对象身体部位中每一源骨骼的骨骼旋转量,调整目标对象身体部位中每一目标骨骼的骨骼旋转量。
[0270]
在一些实施例中,基于源对象骨骼模型和目标对象骨骼模型分别与通用骨骼匹配模板的身体部位的匹配结果,确定源对象骨骼模型和目标对象骨骼模型的身体部位对应关系,包括:
[0271]
将源对象骨骼模型与通用骨骼匹配模板的身体部位进行匹配,从通用骨骼匹配模板的身体部位中确定与源对象骨骼模型匹配成功的源对象身体部位;
[0272]
将目标对象骨骼模型与通用骨骼匹配模板的身体部位进行匹配,从通用骨骼匹配模板的身体部位中确定与目标对象骨骼模型匹配成功的目标对象身体部位;
[0273]
根据对应于通用骨骼匹配模板的同一身体部位的源对象身体部位与目标对象身体部位,得到源对象骨骼模型和目标对象骨骼模型的身体部位对应关系。
[0274]
在一些实施例中,获取源对象骨骼模型和目标对象骨骼模型,包括:
[0275]
根据源对象动画的动画帧的播放顺序依次获取每一动画帧中的源对象骨骼模型,以及从目标对象初始帧中获取目标对象骨骼模型。
[0276]
在一些实施例中,根据身体部位对应关系将源对象骨骼模型的动画信息重定向至目标对象骨骼模型,得到目标对象骨骼模型的目标动画模型,包括:
[0277]
根据每一源对象骨骼模型与目标对象骨骼模型的身体部位对应关系,将每一源对象骨骼模型的动画信息重定向至目标对象骨骼模型,得到目标对象骨骼模型的多个目标动画模型。
[0278]
在一些实施例中,还包括:
[0279]
根据多个目标动画模型的排列顺序,对相邻两个目标动画模型进行平滑约束处理,得到处理后多个目标动画模型;
[0280]
基于处理后多个目标动画模型生成目标对象骨骼模型的目标动画。
[0281]
本方案通过将生物模型划分为若干身体部位得到通用骨骼匹配模板,将源生物骨骼模型与目标生物骨骼模型基于通用骨骼匹配模板进行匹配,得到身体部位对应关系,然后根据身体部位对应关系将源生物骨骼模型的动画数据重定向至目标生物骨骼模型中,适用于多种类型生物的动画数据的重定向,从而可以提高动画重定向的适用性。
[0282]
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
[0283]
可选的,如图6所示,计算机设备500还包括:触控显示屏503、射频电路504、音频电路505、输入单元506以及电源507。其中,处理器501分别与触控显示屏503、射频电路504、音频电路505、输入单元506以及电源507电性连接。本领域技术人员可以理解,图6中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0284]
触控显示屏503可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏503可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及计算机设备的各种图形用户接口,这些图形用户接口可以由图形、引导信息、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(lcd,liquid crystal display)、有机发光二极管(oled,organic light-emitting diode)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器501,并能接收处理器501发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器501以确定触摸事件的类型,随后处理器501根据触摸事件的类型在显示面板上提供相应的视觉输出。在本技术实施例中,可以将触控面板与显示面板集成到触控显示屏503而实现输入和输出功能。但是在某些实施例中,触控面板与显示面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏503也可以作为输入单元506的一部分实现输入功能。
[0285]
射频电路504可用于收发射频信号,以通过无线通信与网络设备或其他计算机设备建立无线通讯,与网络设备或其他计算机设备之间收发信号。
[0286]
音频电路505可以用于通过扬声器、传声器提供用户与计算机设备之间的音频接口。音频电路505可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路505接收后转换为音频数据,再将音频数据输出处理器501处理后,经射频电路504以发送给比如另一
计算机设备,或者将音频数据输出至存储器502以便进一步处理。音频电路505还可能包括耳塞插孔,以提供外设耳机与计算机设备的通信。
[0287]
输入单元506可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
[0288]
电源507用于给计算机设备500的各个部件供电。可选的,电源507可以通过电源管理系统与处理器501逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源507还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
[0289]
尽管图6中未示出,计算机设备500还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。
[0290]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0291]
由上可知,本实施例提供的计算机设备,获取源对象骨骼模型和目标对象骨骼模型;获取通用骨骼匹配模板,通用骨骼匹配模板包括对生物身体进行划分得到的多个身体部位,每一身体部位至少包括一个骨骼;基于源对象骨骼模型和目标对象骨骼模型分别与通用骨骼匹配模板的身体部位的匹配结果,确定源对象骨骼模型和目标对象骨骼模型的身体部位对应关系;根据身体部位对应关系将源对象骨骼模型的动画信息重定向至目标对象骨骼模型,得到目标对象骨骼模型的目标动画模型。
[0292]
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
[0293]
为此,本技术实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本技术实施例所提供的任一种动画重定向方法中的步骤。例如,该计算机程序可以执行如下步骤:
[0294]
获取源对象骨骼模型和目标对象骨骼模型;
[0295]
获取通用骨骼匹配模板,通用骨骼匹配模板包括对生物身体进行划分得到的多个身体部位,每一身体部位至少包括一个骨骼;
[0296]
基于源对象骨骼模型和目标对象骨骼模型分别与通用骨骼匹配模板的身体部位的匹配结果,确定源对象骨骼模型和目标对象骨骼模型的身体部位对应关系;
[0297]
根据身体部位对应关系将源对象骨骼模型的动画信息重定向至目标对象骨骼模型,得到目标对象骨骼模型的目标动画模型。
[0298]
在一些实施例中,身体部位对应关系包括与源对象骨骼模型中源对象身体部位对应的目标对象骨骼模型中目标对象身体部位,动画信息至少包括源对象骨骼模型中每一源骨骼的骨骼旋转量;
[0299]
根据身体部位对应关系将源对象骨骼模型的动画信息重定向至目标对象骨骼模型,得到目标对象骨骼模型的目标动画模型,包括:
[0300]
根据与源对象身体部位对应的目标对象身体部位,确定与源对象身体部位中的源骨骼对应的目标对象身体部位中的目标骨骼;
[0301]
基于与目标骨骼对应的源骨骼的骨骼旋转量对目标骨骼进行旋转调整,得到调整后动画模型;
[0302]
将源对象骨骼模型中位于指定身体部位的第一骨骼与目标对象骨骼模型中位于指定身体部位的第二骨骼进行形态比较,得到比较结果;
[0303]
根据调整后动画模型以及比较结果确定目标动画模型。
[0304]
在一些实施例中,根据调整后动画模型以及比较结果确定目标动画模型,包括:
[0305]
若比较结果指示第一骨骼与第二骨骼形态相同,则基于调整后动画模型得到目标动画模型;
[0306]
若比较结果指示第一骨骼与第二骨骼形态不相同,则根据第一骨骼的位置信息对调整后动画模型进行再次调整,得到目标动画模型。
[0307]
在一些实施例中,根据第一骨骼的位置信息对调整后动画模型进行再次调整,得到目标动画模型,包括:
[0308]
基于位置信息确定第二骨骼的目标位置;
[0309]
根据目标位置以及第二骨骼在调整后动画模型中的初始位置,确定骨骼旋转差量;
[0310]
基于骨骼旋转差量对调整后动画模型中的骨骼进行旋转调整,得到目标动画模型。
[0311]
在一些实施例中,基于位置信息确定第二骨骼的目标位置,包括:
[0312]
获取第一骨骼在指定平面的第一偏移量和第一高度,以及第二骨骼在指定平面的第二偏移量和第二高度;
[0313]
基于位置信息、第一偏移量、第一高度、第二偏移量和第二高度,计算目标位置。
[0314]
在一些实施例中,在基于与目标骨骼对应的源骨骼的骨骼旋转量对目标骨骼进行旋转调整,得到调整后动画模型之前,还包括:
[0315]
将源对象身体部位中的源骨骼数量与目标对象身体部位中的目标骨骼数量进行比较;
[0316]
若与源骨骼数量不等于目标骨骼数量,则从源对象身体部位或者目标对象身体部位中确定多余骨骼;
[0317]
基于与目标骨骼对应的源骨骼的骨骼旋转量对目标骨骼进行旋转调整,得到调整后动画模型,包括:
[0318]
若多余骨骼属于源对象身体部位,则根据多余骨骼和多余骨骼的相邻骨骼的骨骼旋转量调整目标对象身体部位中与相邻骨骼对应的骨骼的骨骼旋转量,以及根据源对象身体部位中除多余骨骼之外的其余骨骼的骨骼旋转量调整目标对象身体部位中与其余骨骼对应的骨骼的骨骼旋转量;
[0319]
若多余骨骼属于目标对象身体部位,则根据多余骨骼的相邻骨骼在源对象身体部位中对应的骨骼的骨骼旋转量调整多余骨骼的骨骼旋转量,以及根据源对象身体部位中各个骨骼的骨骼旋转量调整目标对象身体部位中与各个骨骼对应的骨骼的骨骼旋转量。
[0320]
在一些实施例中,还包括:
[0321]
计算源对象身体部位中的源骨骼数量与目标对象身体部位中的目标骨骼数量的数量比例;
[0322]
基于数量比例以及源对象身体部位中每一源骨骼的骨骼旋转量,调整目标对象身体部位中每一目标骨骼的骨骼旋转量。
[0323]
在一些实施例中,基于源对象骨骼模型和目标对象骨骼模型分别与通用骨骼匹配模板的身体部位的匹配结果,确定源对象骨骼模型和目标对象骨骼模型的身体部位对应关系,包括:
[0324]
将源对象骨骼模型与通用骨骼匹配模板的身体部位进行匹配,从通用骨骼匹配模板的身体部位中确定与源对象骨骼模型匹配成功的源对象身体部位;
[0325]
将目标对象骨骼模型与通用骨骼匹配模板的身体部位进行匹配,从通用骨骼匹配模板的身体部位中确定与目标对象骨骼模型匹配成功的目标对象身体部位;
[0326]
根据对应于通用骨骼匹配模板的同一身体部位的源对象身体部位与目标对象身体部位,得到源对象骨骼模型和目标对象骨骼模型的身体部位对应关系。
[0327]
在一些实施例中,获取源对象骨骼模型和目标对象骨骼模型,包括:
[0328]
根据源对象动画的动画帧的播放顺序依次获取每一动画帧中的源对象骨骼模型,以及从目标对象初始帧中获取目标对象骨骼模型。
[0329]
在一些实施例中,根据身体部位对应关系将源对象骨骼模型的动画信息重定向至目标对象骨骼模型,得到目标对象骨骼模型的目标动画模型,包括:
[0330]
根据每一源对象骨骼模型与目标对象骨骼模型的身体部位对应关系,将每一源对象骨骼模型的动画信息重定向至目标对象骨骼模型,得到目标对象骨骼模型的多个目标动画模型。
[0331]
在一些实施例中,还包括:
[0332]
根据多个目标动画模型的排列顺序,对相邻两个目标动画模型进行平滑约束处理,得到处理后多个目标动画模型;
[0333]
基于处理后多个目标动画模型生成目标对象骨骼模型的目标动画。
[0334]
本方案通过将生物模型划分为若干身体部位得到通用骨骼匹配模板,将源生物骨骼模型与目标生物骨骼模型基于通用骨骼匹配模板进行匹配,得到身体部位对应关系,然后根据身体部位对应关系将源生物骨骼模型的动画数据重定向至目标生物骨骼模型中,适用于多种类型生物的动画数据的重定向,从而可以提高动画重定向的适用性。
[0335]
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
[0336]
其中,该计算机可读存储介质可以包括:只读存储器(rom,read only memory)、随机存取记忆体(ram,random access memory)、磁盘或光盘等。
[0337]
由于该计算机可读存储介质中所存储的计算机程序,可以执行本技术实施例所提供的任一种动画重定向方法中的步骤,因此,可以实现本技术实施例所提供的任一种动画重定向方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
[0338]
以上对本技术实施例所提供的一种动画重定向方法、装置、存储介质及计算机设备进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1