一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种虚拟人物穿模调整方法、装置、设备及存储介质与流程

2022-07-31 00:56:26 来源:中国专利 TAG:


1.本发明涉及虚拟现实技术领域,特别是涉及一种虚拟人物穿模调整方法、装置、设备及存储介质。


背景技术:

2.随着娱乐活动多样化的发展,虚拟偶像、虚拟主播等虚拟人物越来越受到人们的欢迎。相关技术中,虚拟人物的动作是通过真人演员(下文统称中之人)穿着动作捕捉服,由动作捕捉服获取中之人的动作数据,并将所获取的动作数据映射至虚拟人物模型上实现的。
3.由于无法保证中之人与虚拟人物的身材完全一致,故虚拟人物动作穿模时有发生,如图1所示,虚拟人物手腕处与躯体发生了穿模。相关技术中改善动作穿模的方式往往是通过限制中之人的动作幅度来尽可能避免穿模,或者使用专业软件重定向功能对穿模部位进行调整,或者在后期由专业人员通过软件逐帧对穿模部位进行调整。然而,相关技术的调整穿模的方式存在穿模调整效率较低的问题。


技术实现要素:

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.图1为相关技术中虚拟人物的一种穿模示意图;
35.图2为本发明提供的虚拟人物穿模调整方法的一种流程示意图;
36.图3为本发明提供的虚拟人物的代理体的一种结构示意图;
37.图4为本发明提供的一种结构体平面与四肢胶囊体节点之间的位置关系示意图;
38.图5为本发明提供的一种四肢结构体表面与四肢胶囊体节点之间的位置关系示意图;
39.图6为本发明提供的另一种四肢结构体表面与四肢胶囊体节点之间的位置关系示意图;
40.图7为本发明提供的一种骨骼节点示意图;
41.图8为本发明提供的一种约束平面示意图;
42.图9为本发明提供的一种映射后的虚拟人物目标点示意图;
43.图10为本发明提供的虚拟人物穿模调整方法的一种流程示意图;
44.图11为本发明提供的虚拟人物穿模调整装置的一种结构示意图;
45.图12为本发明提供的电子设备的一种示意性框图。
具体实施方式
46.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本发明所获得的所有其他实施例,都属于本发明保护的范围。
47.相关技术中,借助构建虚拟人物模型,并利用动作捕捉服捕捉真人演员(下文统称中之人)的动作数据,能够将中之人的动作数据迁移至虚拟人物的模型数据中,便可实现虚拟人物做出多种多样的动作表演,在本发明实施例中,虚拟人物为虚拟角色的统称,并不单单表示人形的虚拟模型,还可表示其他非人形的虚拟模型。
48.由于无法保证中之人与虚拟人物的身材完全一致,虚拟人物在做与中之人相同的动作时,容易出现如图1所示的动作穿模,图1中虚拟人物左手手腕处与身体发生穿模。相关技术中,关于动作穿模调整方法有:
49.方法一、规定中之人的动作幅度。例如虚拟人物的腿围比中之人粗时,中之人在做手部接触腿部的动作时,手部与腿部需保持一定的距离。如此,对中之人的专业程度要求较高,且同样的动作无法同时应用于不同的虚拟人物上。
50.方法二、使用专业软件重定向功能进行调整。现有的专业软件重定向功能的工作原理是:识别虚拟人物各个部位是否发生穿模,并将穿模部位朝向穿模方向的反方向进行调整。比如,如图1所示,虚拟人物手腕关节处与躯干发生了穿模,专业软件重定向过程中识别出该部位发生了穿模,然后将手腕关节的关节位置向躯干以外位置进行修改,以使手腕关节调整离开躯干。此种调整方法在调整过程中,并未结合中之人实际动作数据进行调整,按照调整经验或者按照预估调整量进行调整,容易导致虚拟人物动作变形。
51.方法三、后期由专业人员通过软件逐帧调整。此种方式需要耗费大量的人力,并且调整效率极低,且容易出错。
52.为了解决相关技术存在的问题,本发明实施例提供了一种虚拟人物穿模调整方法、装置、设备及存储介质,以实现提高虚拟人物穿模调整的效率的目的。
53.本发明所提供的虚拟人物穿模调整方法可应用于任一具备虚拟模型数据调整的电子设备中,包括但不限于移动终端、个人电脑、服务器等。
54.如图2所示,本发明实施例提供了一种虚拟人物穿模调整方法,具体包括如下步骤:
55.s201,获取中之人的代理体中各个结构体之间的位置约束关系;
56.s202,根据中之人的代理体中各个结构体之间的位置约束关系,对虚拟人物的模型数据中各个部位的数据进行调整。
57.其中,代理体包括用于表示身体各个部位的结构体,位置约束关系包括:距离权重系数、约束平面,距离权重系数用于表示代理体中各个结构体对从结构体的节点所处位置的约束能力,约束平面用于约束不同的从结构体处于该约束平面的两侧。
58.采用本发明实施例,获取中之人的代理体中各个结构体之间的位置约束关系,然后根据中之人的代理体中各个结构体之间的位置约束关系,对虚拟人物的模型数据中各个
部位的数据进行调整。由于中之人作为演员,做动作时,身体各个部位并不会发生穿模,故当调整后的虚拟人物的模型数据中各个部位的数据符合该位置约束关系时,表明虚拟人物身体各个部位之间的相对位置关系,与中之人身体各个部位之间的相对位置关系相同,均属于不穿模状态,进而完成了对虚拟人物穿模部位的调整。
59.直接根据中之人的身材数据对虚拟人物的模型数据进行调整,使得虚拟人物的模型数据中的各个部位同中之人的各个部位一样,保持一个不穿模的状态。即,采用本发明实施例,无需后期逐帧对虚拟人物穿模部位进行调整,能够有效提高虚拟人物穿模调整效率。
60.由于在将中之人的动作数据迁移至虚拟人物的模型数据中的过程中,人们往往更为关注中之人的身材数据(或者虚拟人物的模型数据)中各个部位的位置信息。故,可忽略中之人(或者虚拟人物)的化学的、生物的或者社会的属性信息,利用中之人(或者虚拟人物模型)的形状、大小、各个部位的位置关系等数学性质,构建代理体,用以对中之人的身材(或者虚拟人物的身材)进行抽象、简化,以便后续计算各个部位之间的位置关系。
61.在本发明实施例中,代理体是一种根据人物身材数据构建而成的几何体模型,通常由多个结构体组合而成。示例性的,中之人的代理体是根据中之人的身材数据构建而成的几何体模型,虚拟人物的代理体是根据虚拟人物的模型数据构建而成的几何体模型,如图3所示,右侧的几何体模型是根据左侧虚拟人物的模型数据构建而成的代理体。
62.在本发明实施例中,提供了一种可能的代理体构建方法,可通过在中之人(或者虚拟人物)的身体上选择预设数量个能够代表身体特征的采样点,并将采样点相连,构建用以表示身体各个部位的结构体。在本发明实施例中,代理体可以包括:用于表示躯干的主体结构体、用于表示除躯干以外其他部位的从结构体。其中,躯干可以为头部、胸腔或者腹部其中一个或多个组合而成的部位,从结构体可以用于表示除躯干以外其他一个部位或几个部位,比如,四肢、翅膀、尾巴等一个或多个组合而成的部位。为了便于描述,本发明实施例中,从结构体以四肢结构体为例进行描述,其他翅膀、尾巴等其他非躯干部位的结构体的构建原理以及穿模调整原理与四肢结构体相同,本文不再一一赘述。
63.在本发明实施例所提供的代理体构建方法中,具体可通过在中之人的身体上选取预设数量个采样点,生成一个以各个采样点作为顶点的多面体,该多面体用于表示中之人的身体部位。比如,在中之人的头部上,选取26个可表示头部特征的采样点,以相邻的三个采样点为顶点,生成三角平面,并将各个三角平面进行拼接,获得一个54个三角平面组成的头部多面体,所获得的头部多面体用于表示中之人的头部。或者,在中之人的躯干选取60个采样点,然后将相邻的采样点之间采用直线相连,得到由100个三角形平面构成的多面体,所获得的躯干多面体用于表示中之人的躯干。
64.在本发明实施例中,提供了另一种可能的代理体构建方法,可通过测量中之人身体各个部位的各个纬度的数据,利用测量得到的各个纬度的数据构建结构体。示例性的,可通过测量中之人四肢的长度、平均直径,利用测量得到的中之人四肢的长度、平均直径构建一个胶囊体,该胶囊体用以表示中之人的一个四肢。
65.在本发明实施例中,可采用相同的代理体构建规则,同时构建中之人的代理体与虚拟人物的代理体,能够利于后续计算过程中,将中之人代理体中的数据迁移至虚拟人物的代理体中。示例性的,可在中之人身体和虚拟人物身体的相同位置处选择采样点,以便中之人各个采样点与虚拟人物的各个采样点之间位置一一对应。比如,在构建中之人头部结
构体时,选择了中之人的左眼眼角、左耳耳垂作为两个采样点,那么在构建虚拟人物头部结构体时,仍在该虚拟人物的左眼眼角、左耳耳垂处选择采样点。同样,在构建代理体时,中之人与虚拟人物各个采样点之间采样相同的连线方式,比如均采用直线连接,或者均采用与身体表面实际长度相对应的曲线进行连接等,具体连接方式本发明不作具体限定。
66.或者,可在中之人和虚拟人物身体上的相同位置测量各个纬度的数据,然后利用测量得到中之人的各个纬度的数据构建中之人代理体中的结构体,利用测量得到虚拟人物的各个纬度的数据构建虚拟人物代理体中的结构体。比如,在构建中之人四肢结构体时,可测量中之人左手臂腕关节处直径、左手臂肘关节处直径,以及中之人左手臂腕关节与左手臂肘关节中点处直径,以测量得到的各个直径的平均值,构建以中之人的左手臂下部胶囊体,即用于表示中之人左手臂肘关节-腕关节这一四肢的结构体,可分别用中之人的左手臂下部胶囊体的两端节点表示中之人的左手臂肘关节和中之人的左手臂腕关节。
67.同样,测量虚拟人物左手臂腕关节处直径、左手臂肘关节处直径,以及虚拟人物手臂腕关节与左手臂肘关节中点处直径后,利用测量得到的各个直径的平均值,构建虚拟人物左手臂下部胶囊体,即用于表示虚拟人物左手臂下部胶囊体,可分别用虚拟人物的左手臂下部胶囊体的两端节点表示虚拟人物的左手臂肘关节和虚拟人物的左手臂腕关节。
68.在本发明实施例中,在步骤s201中,可通过计算中之人代理体中各个结构体之间的距离权重系数、约束平面,用计算得到的距离权重系数、约束平面表示中之人的代理体中各个结构体之间的位置约束关系。
69.具体的,距离权重系数是表示代理体中各个结构体对四肢结构体的节点所处位置的约束能力的强弱,距离权重系数越大,则表明结构体对四肢结构体的节点所处位置的约束能力越强。示例性的,第一距离权重系数表示代理体中第一结构体对第一四肢结构体的第一节点所处位置的约束能力强弱,第二距离权重系数表示代理体中第一结构体对第一四肢结构体的第二节点所处位置的约束能力强弱。当第一距离权重系数越大,则表明该第一结构体对第一四肢结构体的第一节点所处位置的约束能力越强,当第一距离权重系数大于第二距离权重系数,则表明第一结构体对第一四肢结构体的第一节点所处位置的约束能力强于第一结构体对第一四肢结构体的第二节点所处位置的约束能力。
70.示例性的,中之人在做抬左手摸左耳朵这一动作时,第一距离权重系数为中之人头部结构体对第一四肢结构体的第一节点所处位置的约束能力,第二距离权重系数为中之人头部结构体对第一四肢结构体的第二节点所处位置的约束能力。如果第一四肢结构体的第一节点所处的位置为左手腕关节,第一四肢结构体的第二节点所处的位置为左手肘关节,则第一距离权重系数表示中之人头部对左手腕关节位置的约束能力强弱,同理,第二距离权重系数表示中之人头部对左手肘关节位置的约束能力强弱,当第一距离权重系数大于第二距离权重系数,则表明中之人头部对左手腕关节位置的约束能力大于中之人头部对左手肘关节位置的约束能力。
71.根据正常的四肢结构可以看出,两个四肢结构之间是保持一定的相对位置关系的,比如在做左手与右手抱拳这一动作时,左手小臂应处于右手小臂整个四肢的外部,右手小臂应处于左手小臂整个四肢的外部。本发明实施例中,可通过约束平面,将不同的两个四肢结构体分别约束在该约束平面两侧,用于表示两个四肢结构体之间存在的相对位置关系。
72.示例性的,假设在中之人代理体中包括:用于表示左手小臂的第一四肢结构体、用于表示右手小臂的第二四肢结构体,以及用于表示左手腕关节的球体,可取该球的一个切平面作为约束平面,用以约束第一四肢结构体与第二四肢结构体之间的相对位置关系,即第一四肢结构体与第二四肢结构体处于该约束平面的两侧,即可表示左手小臂处于右手小臂之外,右手小臂处于左手小臂之外。
73.由于中之人作为真实的演员,所以中之人在做任何动作表演时,中之人身体各个部位之间并不会发生穿模。在本发明实施例中,通过获取中之人的代理体中各个结构体之间的位置约束关系,以获取中之人在做任何动作时,各个部位之间位置的相互约束关系。当虚拟人物的各个部位之间位置的相互约束关系满足该中之人的各个部位之间的位置约束关系时,虚拟人物的各个部位也相应不会发生穿模。
74.本发明提供的一种实施例中,上述步骤s202还可以通过如下方式实现:
75.根据中之人的代理体中各个结构体之间的位置约束关系,以及中之人的身材数据与虚拟人物的模型数据之间的尺寸差异,对虚拟人物的模型数据中各个部位的数据进行调整。
76.由于中之人与虚拟人物的身材无法保持完全相同,采用本发明实施例,若虚拟人物与中之人的身材不同,可根据中之人的代理体中各个结构体之间的位置约束关系,以及中之人的身材数据与虚拟人物的模型数据之间的尺寸差异,对虚拟人物的模型数据中各个部位的数据进行调整。也即是说,采用本发明实施例,在虚拟人物穿模部位调整过程中,能够有效避免因调整幅度不符合虚拟人物的实际尺寸,而导致的动作调整幅度过大而发生变形。
77.本发明提供的一种实施例中,上述步骤s201可以通过如下方式实现:
78.根据第一距离、第一夹角,计算第一平面至第一胶囊体第一节点之间的距离权重系数。
79.在本实施例中,代理体是由用以表示身体各个部位的结构体组合而成的几何体模型,在本发明实施例中,代理体中包括:用于表示躯干的主结构体、用于表示四肢的从结构体。其中,主结构体可以仅为头部结构体,也可以为不包含头部、四肢的躯体结构体,也可以为不包含四肢的集合结构体,该集合结构体为头部结构体与躯体结构体的集合,对此,本发明不作具体限定。
80.在本发明实施例中,主结构体可以为多面体,从结构体可以为胶囊体,胶囊体两端的节点用于表示该胶囊体所表示的四肢两端的关节。基于此,距离权重系数可以为用于表示该多面体对胶囊体中一个节点的约束能力,也即是说,该距离权重系数可以为用于表示躯干对四肢中的一个关节的约束能力。
81.在本发明实施例中,也可通过计算该多面体上各个平面对胶囊体中的一个节点的距离权重系数,利用计算得到的距离权重系数表示该多面体各个平面对胶囊体中的一个节点的约束能力。示例性的,本发明实施例中,可通过计算多面体上第一平面至胶囊体第一节点之间的距离权重系数,利用该计算得到的距离权重系数表示该多面体上第一平面对胶囊体第一节点的约束能力。
82.具体的,本发明实施例中,可在第一平面上选取一个特征点作为预设特征点,该预设特征点可以为第一平面上一个边的中点,或者该预设特征点可以为第一平面上两个边的
交点,该预设特征点还可以为第一平面的重心。在本发明实施例中,虚拟人物的代理体中的预设特征点的选取方式,应与中之人的代理体中的预设特征点的选取方式保持相同。示例性的,在中之人代理体中,选取第一平面的重心作为预设特征点,则在虚拟人物的代理体中同样选择对应的第一平面的重心作为预设特征点。
83.将该预设特征点与胶囊体第一节点之间的距离确定为第一距离。将该预设特征点与胶囊体第一节点之间的连线、与第一平面法向量之间夹角确定为第一夹角,根据该第一距离、第一夹角便可计算出第一平面至胶囊体第一节点之间的距离权重系数。示例性的,如图4所示,以第一平面的预设特征点为第一平面的重心为例,可将第一平面的重心与胶囊体第一节点之间的距离确定为第一距离,将第一平面的重心与胶囊体第一节点之间的连线、与第一平面法向量之间的夹角确定为第一夹角。
84.本发明实施例中,第i个平面的距离权重系数可以用λi表示,λi可通过公式λi=λ
pi
λ
oi
计算得到,其中λ
pi
=1/第一距离,λ
oi
=cosα,α为第一夹角,即为第i个平面的预设特征点与胶囊体第一节点之间的连线、与第i平面法向量之间的夹角。其中,距离权重系数与第一距离负相关,距离权重系数与第一夹角负相关。即,关节位置距离躯干平面越近,表明该躯干平面对该关节位置的约束能力越强,关节位置与躯干平面之间的夹角越小,表明该躯干表面对该关节位置的约束能力越强。
85.在本发明实施例中,还可以借助数学向量对第一距离、第一夹角进行表示。具体的,以第i个平面的预设特征点xi为向量起点,胶囊体第一节点pj为向量终点,构建第i个平面与胶囊体第一节点之间的距离向量vi,则第一距离为距离向量vi的模长,第一夹角为距离向量vi与第i平面法向量ni与之间的夹角。基于此,第i个平面的距离权重系数λi=λ
pi
λ
oi
,其中λ
pi
=1/‖vi‖,λ
oi
=cosα,α为向量vi与第i个平面法向量ni之间的夹角。
86.采用本发明实施例,可通过计算多面体各个平面对四肢结构体的节点所处位置的距离权重系数,获取该多面体各个平面对四肢结构体的节点所处位置的约束能力强弱。若该多面体用于表示中之人的躯干,四肢结构体的节点用于表示中之人的关节,采用本发明实施例,可以获取中之人的躯干对四肢关节的位置约束能力的强弱。
87.本发明提供的一种实施例中,上述步骤s201可以通过如下方式实现:
88.根据第二距离、第二夹角,计算第二胶囊体表面至第一胶囊体第一节点之间的距离权重系数。
89.本发明实施例中,四肢结构体可以为胶囊体,胶囊体两端的节点用于表示该胶囊体所表示的四肢两端的关节。示例性的,第一胶囊体用于表示第一四肢,第一胶囊体两端的节点用于表示第一四肢上的两个关节。第二胶囊体用于表示第二四肢,第二胶囊体两端的节点用于表示第二四肢上的两个关节。比如,第一胶囊体用于表示左上臂,第一胶囊体第一节点用于表示左上臂的肩关节,第一胶囊体第二节点用于表示左上臂的肘关节,第二胶囊体用于表示右下臂。第二胶囊体第一节点用于表示右下臂的肘关节,第一胶囊体节点用于表示右下臂的腕关节。
90.具体的,在本发明实施例中,可通过计算第二胶囊体表面上第一目标点至第一胶囊体第一节点之间的距离权重系数,利用该计算得到的距离权重系数表示第二胶囊体对第一胶囊体第一节点的约束能力。
91.将第二胶囊体表面上的第一目标点与第一胶囊体第一节点之间的距离确定为第
二距离。将该第一目标点与第一胶囊体第一节点之间的连线、与第二平面法向量之间的夹角确定为第二夹角,根据该第二距离、第二夹角便可计算出第二胶囊体至第一胶囊体第一节点之间的距离权重系数。示例性的,如图5、图6所示,第一目标点可以为位于第二胶囊体上,且距离第一胶囊体第一节点最近的点。第二平面法向量可以为过第一胶囊体第一节点,且垂直于第二胶囊体长轴平面的向量。
92.其中,第二胶囊体长轴平面为过第二胶囊体长轴,沿预设方向扩展的平面,第二胶囊体长轴为第二胶囊体上距离最远的两个点之间的连线。在本发明实施例中,中之人的代理体中第二胶囊体长轴平面所沿方向,与虚拟人物的代理体中对应的第二胶囊体的长轴平面所沿方向保持一致。示例性的,中之人呈站立姿势时,中之人的代理体中第二胶囊体的长轴平面平行于地平面,则虚拟人物的代理体中对应的第二胶囊体的长轴平面也应与地平面保持平行。
93.具体的,本发明实施例中,第二胶囊体至第一胶囊体第一节点之间的距离权重系数可用λi表示,λi可通过公式λi=λ
pi
λ
oi
计算得到,其中λ
pi
=1/第一距离,λ
oi
=cosα,α为第二夹角,即为该第一目标点与第一胶囊体第一节点连线,与第二平面法向量之间的夹角。其中,距离权重系数与第二距离负相关,距离权重系数与第二夹角负相关。即,第二四肢与第一四肢的第一关节位置的距离越近,表明该第二四肢对该第一四肢的第一关节位置的约束能力越强,第二四肢与第一四肢的第一关节位置之间的夹角越小,表明该第二四肢对该第一四肢的第一关节位置的约束能力越强。
94.在本发明实施例中,还可以借助数学向量对第二距离、第二夹角进行表示。具体的,以第二胶囊体上的第一目标点xi为向量起点,第一胶囊体的第一节点pj为向量终点,构建第二胶囊体表面第一目标点与第一胶囊体第一节点之间的距离向量vi,则第二距离为距离向量vi的模长,第二夹角为距离向量vi与第二平面法向量ni与之间的夹角,其中第二平面法向量ni为过第一胶囊体的第一节点pj且垂直于第二胶囊体长轴平面的向量。基于此,第二胶囊体至第一胶囊体第一节点之间的距离权重系数λi=λ
pi
λ
oi
,其中λ
pi
=1/‖vi‖,λ
oi
=cosα,α为向量vi与第二平面法向量ni之间的夹角。
95.采用本发明实施例,可通过计算第二胶囊体对第一胶囊体第一节点所处位置的距离权重系数,获取该第二胶囊体表面对第一胶囊体第一节点所处位置的约束能力的强弱。如果第一胶囊体、第二胶囊体用于表示中之人的不同两个四肢,第一胶囊体第一节点用于表示中之人的一个关节,则采用本发明实施例,可以获取中之人的一个四肢对另一个四肢的一个关节的位置约束能力的强弱。
96.在本发明实施例中,还可通过数学向量具体求解胶囊体的关节点的具体位置,第一胶囊体第一节点的位置可用表示,其中,m为多面体中平面数量与胶囊体数量的总和;xi为各个预设特征点的位置或者各个第一目标点的位置;vi为第一平面与第一胶囊体第一节点之间的距离向量,或者第二胶囊体表面第一目标点与第一胶囊体第一节点之间的距离向量。其中,示例性的,在本发明实施例中,可以等于1,即
97.本发明实施例,上述步骤s202可通过如下方式实现:
98.根据中之人的代理体中各个结构体之间的位置约束关系,以及中之人的身材数据
与虚拟人物的模型数据之间的尺寸差异,对虚拟人物的模型数据中各个部位的数据进行调整,过程中,可将虚拟人物的各个结构体对虚拟人物的四肢结构体的节点所处位置的距离权重系数,调整与中之人的各个结构体对中之人的四肢结构体的节点所处位置的距离权重系数一致。示例性的,可将虚拟人物中躯干结构体对虚拟人物第一四肢结构体的第一节点所处位置的距离权重系数,调整与中之人躯干结构体对中之人第一四肢结构体的第一节点所处位置的距离权重系数一致。
99.示例性的,由于中之人的代理体与虚拟人物的代理体采用相同的代理体构建规则,因此,中之人头部结构体的各个平面与虚拟人物的头部结构体的各个平面一一对应。比如,中之人的头部结构体第一平面用于表示中之人左眼所处平面,则虚拟人物的头部结构体第一平面用于表示虚拟人物左眼所处平面。
100.假设中之人躯干结构体为26个平面构成的头部结构体,虚拟人物躯干结构体也为26个平面构成的头部结构体,假设中之人第一四肢结构体第一节点用于表示中之人左手臂肘关节,虚拟人物的第一四肢结构体第一节点用于表示虚拟人物左手臂肘关节。中之人头部结构体各个平面分别为:中之人第一平面,中之人第二平面
···
中之人第二十六平面,各个平面对中之人左手臂肘关节的距离权重系数分别为λ1、λ2、λ3···
λ
26
。虚拟人物头部结构体各个平面为:虚拟人物第一平面,虚拟人物第二平面
···
虚拟人物第二十六平面。采用本发明实施例,可将虚拟人物头部结构体各个平面对虚拟人物左手臂肘关节的距离权重系数,调整与中之人头部结构体各个平面对中之人左手臂肘关节的距离权重系数一致。也即是说,将虚拟人物第一平面对虚拟人物左手臂肘关节的距离权重系数调整为λ1,将虚拟人物第二平面对虚拟人物左手臂肘关节的距离权重系数调整为λ2,以此类推。
101.基于此,对调整虚拟人物中四肢的关节点位置时,将虚拟人物中四肢中的关节位置中的λi保持与中之人代理体中的各个距离权重系数λi一致,便可计算出虚拟人物四肢中的关节在不穿模状态下应处于哪一位置。
102.其中,x
′i为虚拟人物的代理体中的预设特征点,或者第一目标点的位置。v
′i为虚拟人物中第i平面与第一胶囊体第一节点之间的距离向量,或者虚拟人物中第二胶囊体表面第一目标点与第一胶囊体第一节点之间的距离向量,v
′i需根据中之人的身材数据与虚拟人物的模型数据之间的尺寸差异计算得到。
103.其中,虚拟人物的代理体中的预设特征点以及第一目标点的确定方式,应与中之人的代理体中的预设特征点以及第一目标点的确定方式保持相同。示例性的,假设中之人躯干结构体为多面体,预设特征点为平面的重心,则虚拟人物中的预设特征点也对应为平面的重心。比如,中之人第一平面为中之人左眼所处平面,预设特征点x1为中之人第一平面的重心,则虚拟人物预设特征点x
′1也应为虚拟人物左眼所处平面的重心。
104.在本发明实施例中,v
′i可通过如下方式计算得到:
105.v
′i=τ

ji
vi/‖vi‖
106.其中,vi为中之人的代理体中第i平面与第一胶囊体第一节点之间的距离向量,或者第二胶囊体表面第一目标点与第一胶囊体第一节点之间的距离向量,‖vi‖为向量vi的模长,τ

ji
为投影长度系数,具体的,τ

ji
可通过如下公式计算得到:
107.τ

ji
=*‖vi‖,其中β为中之人的代理体和虚拟人物的代理体上的第i平面到四肢结构体的第j个节点之间的投影路径比值。示例性的,假设中之人的代理体上的第i表面到四
肢结构体的第j个节点之间的投影路径长度为l
ji
,虚拟人物的代理体上的第i表面到四肢结构体的第j个节点之间的投影路径长度为l

ji
,则β=l
ji
/l

ji

108.具体的,本发明实施例中,提供了一种第i表面到四肢结构体的第j个节点之间的投影路径长度的计算方式,具体为:
109.根据四肢结构体的第j个节点到第i表面的根节点的骨骼路径上的骨骼节点数,以及各个骨骼向量,计算第i表面到四肢结构体的第j个节点之间的投影路径长度。
110.如图7所示,代理体身体各个表皮对应存在根节点,用于简要表示中之人或者虚拟人物中的多个骨骼节点。在本发明实施例中,各个表皮对应骨骼节点名称如下表所示:
[0111][0112]
在本发明实施例中,可以根据公式计算第i表面到四肢结构体的第j个节点之间的投影路径长度。其中,sk为骨骼向量,n为第j个节点到第i表面的根节点的骨骼路径上的骨骼节点数。示例性的,头部表面至左小腿的骨骼节点之间的投影路径其中,s1骨骼节点1至骨骼节点2之间的骨骼向量,s2为骨骼节点2至骨骼节点6u之间的骨骼向量,s3为骨骼节点6u至骨骼节点6v之间的骨骼向量,其中,cosγk=visk/‖vi‖‖sk‖。
[0113]
采用本发明实施例,可根据中之人身材数据与虚拟人物的模型数据的尺寸差异,确定出虚拟人物的模型数据中各个关节的位置p
′j,并根据确定出的虚拟人物的模型数据中各个关节的位置p
′j对虚拟人物的模型数据中的关节数据进行调整,可使得调整后得到的虚拟人物的模型数据中的各个关节位置与身体其他部位之间的位置约束关系,满足中之的各个关节位置与身体其他部位之间的位置约束关系。本发明实施例提供一种调整虚拟人物各个关节位置的方法,可通过调节虚拟人物的每个关节的旋转角度,使得旋转后的各个关节与躯干之间的位置约束关系满足中之人的关节与躯干之间的位置约束关系。
[0114]
本发明实施例,位置约束关系包括约束平面,约束平面可以包括第一约束平面、第二约束平面,位置约束关系包括:第一四肢结构体与第二四肢结构体分别位于第一约束平面两侧,并且第一四肢结构体与第二四肢结构体分别位于第二约束平面两侧。
[0115]
示例性的,若第一约束平面为第一四肢结构体的一个特征平面,第二约束平面为第二四肢结构体的一个特征平面,则第一四肢结构体与第二四肢结构体分别位于第一四肢结构体的一个特征平面的两侧的同时,也分别位于第二四肢结构体的一个特征平面的两侧。
[0116]
比如,假设第一四肢结构体为第一胶囊体,第二四肢结构体为第二胶囊体,第一约束平面为第一目标点所处切平面,第二约束平面为第二目标点所处切平面,第一目标点为位于第一胶囊体表面,且距离第二胶囊体表面最近的点,第二目标点为位于第二胶囊体表面,且距离第一胶囊体表面最近的点。第一胶囊体与第二胶囊体分别位于第一约束平面的两侧,且第一胶囊体与第二胶囊体分别位于第二约束平面的两侧,意味着第一胶囊体与第
二胶囊体互不相交,即第一四肢与第二四肢在空间上不存在穿模。示例性的,如图8所示,中之人第一胶囊体上第一目标点为位于中之人第一胶囊体表面,且距离中之人第二胶囊体最近的点,中之人第二胶囊体上第二目标点为位于中之人第二胶囊体表面,且距离中之人第一胶囊体最近的点,第一约束平面为以第一目标点为切点的切平面,第二约束平面为以第二目标点为切点的切平面。
[0117]
采用本发明实施例,可采用第一约束平面与第二约束平面约束第一四肢结构体与第二四肢结构体之间的相对位置关系,使得第一四肢结构体与第二四肢结构体在空间上保持不穿模状态。
[0118]
本发明实施例,上述步骤s202还可通过如下方式实现:
[0119]
根据目标坐标转换关系,以及中之人的身材数据与虚拟人物的模型数据之间的尺寸差异,将中之人的四肢结构体在中之人四肢结构体局部坐标系中的坐标,映射至虚拟人物四肢结构体局部坐标系中,以获取映射后的虚拟人物四肢结构体;
[0120]
根据映射后的虚拟人物四肢结构体与约束平面之间的相对位置关系,对虚拟人物四肢结构体进行调整,并根据调整后的虚拟人物四肢结构体数据对虚拟人物的模型数据中的四肢数据进行调整,其中,调整后的第一虚拟人物四肢结构体与第二虚拟人物四肢结构体分别位于约束平面两侧。
[0121]
具体的,中之人四肢结构体局部坐标系是以中之人四肢结构体中预设特征点为坐标原点构建的空间直角坐标系,或者空间极坐标系,虚拟人物四肢结构体局部坐标系是以虚拟人物四肢结构体的中预设特征点为坐标原点构建的空间直角坐标系,或者空间极坐标系。其中,中之人四肢结构体中预设特征点在中之人四肢结构体中所处的位置,与虚拟人物四肢结构体中预设特征点在虚拟人物四肢结构体中所处的位置相对应。示例性的,中之人第一四肢结构体局部坐标系的坐标原点是中之人第一四肢结构体第一节点,则虚拟人物第一四肢结构体局部坐标系的坐标原点也应该是虚拟人物第一四肢结构体第一节点。
[0122]
目标坐标转换关系为中之人四肢结构体局部坐标系与虚拟人物四肢结构体局部坐标系之间的映射关系,用于将中之人四肢结构体上的目标特征点映射至虚拟人物四肢结构体上。示例性的,目标坐标转换关系可以为保持各点与各个坐标轴之间的夹角不变,根据中之人身材数据与虚拟人物的模型数据的尺寸差异,将中之人四肢结构体各点映射至虚拟人物四肢结构体局部坐标系中。
[0123]
比如,以局部坐标系为空间极坐标为例,第一目标点在中之人四肢结构体局部坐标系中的坐标为:p
第一目标点
=(r,φ,θ),其中坐标r是第一目标点p到原点的距离,φ是通过z轴和第一目标点p的半平面与坐标面zox所构成的角;θ是线段op与z轴正方向的夹角。本发明实施例中,通过保持p
第一目标点
=(r,φ,θ)的夹角φ、θ不变,根据中之人身材数据与虚拟人物的模型数据的尺寸差异,对第一目标点坐标中的r进行调整,使得调整后的第一坐标中的r与虚拟人物第一胶囊体的半径相一致,进而实现将中之人的第一目标点映射至虚拟人物的第一胶囊体表面上,得到虚拟人物第一胶囊体映射第一目标点。
[0124]
同样,可在中之人第二四肢结构体局部坐标系中,保持第二目标点与各个坐标轴之间的夹角不变,根据中之人身材数据与虚拟人物的模型数据的尺寸差异,将中之人第二四肢结构体上的第二目标点映射至虚拟人物第二四肢结构体局部坐标系中,得到虚拟人物第二胶囊体映射第二目标点。
[0125]
在本发明实施例中,可根据映射后的虚拟人物四肢结构体、映射后的目标特征点、以及约束平面之间的相对位置关系,对虚拟人物的四肢结构体进行调整。示例性的,以虚拟人物第一胶囊体映射第一目标点为切点,构建第一切平面,该第一切平面为第一约束平面。可根据映射后的虚拟人物四肢结构体与第一约束平面之间的相对位置关系,对虚拟人物的四肢结构体进行调整,使得虚拟人物第一四肢结构体与虚拟人物第二四肢结构体分别位于第一约束平面两侧。
[0126]
或者,以虚拟人物第一胶囊体映射第一目标点为切点,构建第一切平面,该第一切平面为第一约束平面,并且,以虚拟人物第二胶囊体映射第二目标点为切点,构建第二切平面,该第二切平面为第二约束平面。根据虚拟人物第一胶囊体、虚拟人物第二胶囊体、第一切平面、第二切平面之间的相对位置关系,对虚拟人物第一胶囊体与第二胶囊体之间的相对位置关系进行调整,使得调整后的虚拟人物第一胶囊体与第二胶囊体分别位于第一切平面的两侧,且虚拟人物第一胶囊体与第二胶囊体分别位于第二切平面的两侧。如图9所示,图中第一目标点为映射得到的虚拟人物第一胶囊体第一目标点,第二目标点为映射得到的虚拟人物第二胶囊体第二目标点。第一约束平面为:以虚拟人物第一胶囊体第一目标点为切点的切平面,第二约束平面为:以虚拟人物第二胶囊体第二目标点为切点的切平面。
[0127]
采用本发明实施例,将中之人的目标点映射至虚拟人物的坐标系中,可以使得调整后的虚拟人物的模型数据中的各个部位的数据满足中之人与虚拟人物之间的尺寸差异,能够有效提高四肢穿模调整的准确度。
[0128]
为了避免过度调整,本发明实施例提供了一种第一四肢结构体与第二四肢结构体之间相对位置的调整方法,可根据放松的约束平面对第一四肢结构体与第二四肢结构体进行调整,其中,放松的约束平面是根据约束平面与四肢结构体之间的距离确定得到。
[0129]
具体的,根据第一约束平面与第二四肢结构体之间的距离、第二约束平面与第一四肢结构体之间的距离,计算距离加权系数,并根据计算得到的距离加权系数确定放松的约束平面。其中,确定得到的放松的约束平面为第一约束平面旋转预设角度后得到的约束平面,预设角度为第一四肢结构体的放松的约束平面的法向量与第一约束平面的法向量之间的夹角。第一四肢结构体的放松的约束平面的法向量通过第一约束平面的法向量、第二约束平面的法向量以及计算得到的距离加权系数计算得到。
[0130]
示例性的,以第一四肢结构体为第一胶囊体,第二四肢结构体为第二胶囊体为例,假设第一胶囊体第一约束平面与第二胶囊体表面的距离为d1,第二胶囊体第二约束平面与第一胶囊体表面的距离为d2,可根据d1和d2计算第一距离加权系数k1和第二距离加权系数k2,根据第一距离加权系数k1与第二距离加权系数k2可计算出平面间的加权系数σ,最后利用计算得到的平面间的加权系数σ计算第一胶囊体的放松的约束平面的法向量n。其中,第一胶囊体的放松的约束平面的法向量n=σ
×
第一约束平面的法向量n1 (1-σ)
×
第二约束平面的法向量n2。
[0131]
采用相同的计算方法,可根据第一胶囊体第一约束平面与第二胶囊体表面的距离为d1,第二胶囊体第二约束平面与第一胶囊体表面的距离为d2,计算出第二胶囊体的放松的约束平面的法向量,并根据计算得到的第二胶囊体的放松的约束平面的法向量与第二胶囊体第二约束平面法向量之间的夹角,对第二约束平面进行旋转,以获取第二胶囊体的放松的约束平面。
[0132]
其中,第i四肢结构体的约束平面与第j四肢结构体表面之间的距离加权系数ki可根据公式计算得到,di为第i约束平面与第j胶囊体表面的距离,di为正,则表明第i四肢结构体的约束平面在第j四肢结构体之外,di为负,则表明第i四肢结构体的约束平面在第j四肢结构体之内。示例性的,其中d1为第一胶囊体第一约束平面与第二胶囊体表面的距离,k1为第一胶囊体第一约束平面与第二胶囊体表面的距离加权系数。
[0133]
第i四肢结构体的放松约束平面与第i四肢结构体第一约束平面间的加权系数σ可根据公式σi=ki/(ki kj)计算得到,其中,ki为第i四肢结构体的约束平面与第j四肢结构体表面之间的距离加权系数,kj为第j四肢结构体的约束平面与第i四肢结构体表面之间的距离加权系数。
[0134]
在本发明实施例中,第一胶囊体的放松的约束平面也可以为:法向量=σ1×
第一约束平面的法向量n1 (1-σ1)
×
第二约束平面的法向量n2,且与第一胶囊体第一目标点相切的平面。第二胶囊体的放松的约束平面可以为:法向量=(1-σ2)
×
第一约束平面的法向量n1 σ2×
第二约束平面的法向量n2,且与第二胶囊体第二目标点相切的平面。
[0135]
根据第一胶囊体的放松的约束平面、第二胶囊体的放松的约束平面对第一胶囊体、第二胶囊体进行调整,可以为:将第一胶囊体与第二胶囊体分别调整至第一胶囊体的放松的约束平面的两侧,将第一胶囊体与第二胶囊体分别调整至第二胶囊体的放松的约束平面的两侧。
[0136]
本发明实施例中,对第一胶囊体、第二胶囊体进行调整,还可以为:将第一胶囊体的第一目标点调整至第二胶囊体的放松的约束平面之外,并且,将第二胶囊体的第二目标点调整至第一胶囊体的放松的约束平面之外。其中,第一胶囊体位于第一胶囊体的放松的约束平面之内,第二胶囊体位于第二胶囊体的放松的约束平面之内。
[0137]
为了使得计算简单,本发明实施例中,可将胶囊体简化为轴线段,并将胶囊体的约束平面沿其法向量方向进行移动,移动位移量可以为胶囊体半径的距离。
[0138]
在本发明实施例中,各个四肢结构体的调整顺序可以由下至上,也可以由上至下。具体调整顺序可根据实际调整过程进行选择,本发明不作具体限定。在本发明实施例中,提供一种由上至下的调整顺序。示例性的,以对右上臂的调整为例,可首先判断右手肘关节位置是否满足相应的位置约束关系,如若不满足相应的位置约束关系,则对右手肘关节进行调整,调整完毕后,再判断右手腕关节位置是否满足相应的位置约束关系,进一步确定是否需要对右手腕关节进行调整。在对右手肘关节调整过程中,由于右手肘关节同时位于右大臂四肢结构体与右小臂四肢结构体中,故左大臂对右手肘关节的约束便有:左大臂对右大臂中肘关节的约束,以及左大臂对右小臂中肘关节的约束,即左大臂上对右手肘关节的约束平面有两个:左大臂相对右大臂的约束平面,左大臂相对右小臂的约束平面。在调整过程中,需要将右手肘关节的位置调整至同时满足两个约束平面的约束条件。
[0139]
采用本发明实施例,通过第一四肢结构体第一约束平面与第二四肢结构体之间的距离、第二四肢结构体第二约束平面与第一四肢结构体之间的距离,确定距离加权系数,并确定第一四肢结构体的放松的约束平面,以及第二四肢结构体的放松的约束平面。利用确定得到的第一四肢结构体的放松的约束平面,以及第二四肢结构体的放松的约束平面,对
第一四肢结构体、第二四肢结构体进行调整,不仅能够使得第一四肢结构体与第二四肢结构体之间不发生穿模,还可避免对第一四肢结构体、第二四肢结构体的过度调整,而引起的动作变形。
[0140]
为了更清楚的对本发明提供的虚拟人物穿模调整方法进行说明,下面将结合具体的应用场景,对本发明提供的虚拟人物穿模调整方法的原理进行说明,参见图10,包括:
[0141]
通过代理体设计模块根据中之人身材数据、虚拟人物的模型数据,构建中之人的代理体、虚拟人物的代理体。具体构建方式可参见前述步骤s201记载的相关代理体构建方法,此处不再一一赘述;
[0142]
获取中之人的运动数据后,将中之人运动数据中各个关节部位的数据迁移至中之人代理体中,可对中之人的代理体的四肢结构体的数据进行修改。比如,修改中之人四肢结构体中关节节点的旋转角度、四肢结构体与四肢结构体之间的角度等等。
[0143]
通过关节位置重计算模块,利用前述步骤s201中记载的获取距离权重系数、约束平面等内容,计算出中之人的四肢结构体中节点位置的位置约束关系。
[0144]
通过反向运动学模块,将中之人的四肢结构体中节点的位置约束关系,对虚拟人物的四肢结构体的中的节点的位置约束关系进行调整,使得虚拟人物的四肢中关节部位的数据符合该位置约束关系。具体调整方法,可参见前述步骤s202记载内容,此处不再一一赘述。
[0145]
通过四肢穿模调整模块,利用中之人四肢结构体与四肢结构体之间的相对位置关系以及约束平面,对虚拟人物的四肢结构体与四肢结构体之间的相对位置关系进行调整,以使的虚拟人物的四肢结构体与四肢结构体之间处于不穿模状态。具体调整方法,可参见前述步骤s202记载内容,此处不再一一赘述。
[0146]
由于虚拟人物的各个部位之间是相互关联的,并非独立的,因此调整其中一个部位容易引起另一个部位位置的移动。因此,在本发明实施例中,可以根据位置约束关系,反复对虚拟人物的模型数据进行调整。具体可以为,本次调整是基于前一次调整后的虚拟人物的模型数据,再次根据位置约束关系对前一次调整后的虚拟人物的模型数据中的四肢关节位置进行调整,直至本次调整后的关节位置与前一次调整后的关节位置空间距离满足预设阈值,则可认定调整至收敛。具体按照位置约束关系对虚拟人物的模型数据进行调整的方法,参见前述步骤s202记载内容,此处不再一一赘述。
[0147]
采用本发明实施例,由于根据中之人代理体中各个结构体之间的位置约束关系,对虚拟人物的模型数据中的各个部位的数据进行调整,无需人工逐帧调整,且可以根据中之人的身材数据与虚拟人物的模型数据的尺寸差异,对虚拟人物的模型数据中的各个部位的数据进行调整,能够有效避免过度调整而引发的动作变形。并且,在需要将同一套动作应用于不同的虚拟人物时,只需根据中之人身材数据与新的虚拟人物的模型数据的尺寸差异,对新的虚拟人物的模型数据进行修改,便可完成对新的虚拟人物的模型数据中的各个部位的数据进行修改,无需重新录制动作,更适合批量制作虚拟人物为主演的作品。
[0148]
参见图11,图11为本发明提供的虚拟人物穿模调整装置的一种结构示意图,包括:
[0149]
获取模块1101,用于获取中之人的代理体中各个结构体之间的位置约束关系;其中,代理体包括:用于表示身体各个部位的结构体;
[0150]
调整模块1102,用于根据中之人的代理体中各个结构体之间的位置约束关系,对
所虚拟人物的模型数据中各个部位的数据进行调整;其中,调整后的虚拟人物的模型数据中各个部位的数据符合该位置约束关系。
[0151]
在一种可能的实施例中,调整模块1102还用于根据中之人的代理体中各个结构体之间的位置约束关系,以及中之人的身材数据与虚拟人物的模型数据之间的尺寸差异,对虚拟人物的模型数据中各个部位的数据进行调整。
[0152]
在一种可能的实施例中,代理体还包括:用于表示躯干的主结构体,主结构体为多面体,用于表示四肢的从结构体,从结构体为胶囊体,每个胶囊体两端的节点,用于表示胶囊体所表示的四肢两端的关节,本发明提供的虚拟人物穿模调整装置包括:
[0153]
第一计算模块,用于根据第一距离、第一夹角,计算第一平面至第一胶囊体第一节点之间的距离权重系数;
[0154]
其中,距离权重系数与第一距离负相关,并且与第一夹角负相关;第一平面为多面体上的一个平面;第一距离为第一平面与第一胶囊体第一节点之间的距离;第一夹角为:第一平面的重心与第一胶囊体第一节点连线,与第一平面法向量之间的夹角。
[0155]
在一种可能的实施例中,用于表示四肢的从结构体为胶囊体,每个胶囊体两端的节点,用于表示胶囊体所表示的四肢两端的关节,本发明提供的虚拟人物穿模调整装置包括:
[0156]
第二计算模块,用于根据第二距离、第二夹角,计算第二胶囊体表面至第一胶囊体第一节点之间的距离权重系数;
[0157]
其中,距离权重系数与第二距离负相关,并且与第二夹角负相关;第二距离为第一目标点与第一胶囊体第一节点之间的距离,第一目标点为位于第二胶囊体表面,且距离第一胶囊体第一节点最近的点;第二夹角为第一目标点与第一胶囊体第一节点连线,与第二平面法向量之间的夹角;第二平面法向量为过第一胶囊体第一节点,且垂直于第二胶囊体长轴平面的向量。
[0158]
在一种可能的实施例中,用于表示四肢的从结构体为胶囊体,每个胶囊体两端的节点,用于表示胶囊体所表示的四肢两端的关节,约束平面包括:第一约束平面、第二约束平面,位置约束关系包括:第一胶囊体与第二胶囊分别位于第一约束平面两侧,并且第一胶囊体与第二胶囊分别位于第二约束平面两侧。
[0159]
在一种可能的实施例中,第一约束平面为第一目标点所处切平面,第一目标点为位于第一胶囊体表面,且距离第二胶囊体表面最近的点;第二约束平面为第二目标点所处切平面,第二目标点为位于第二胶囊体表面,且距离第一胶囊体表面最近的点。
[0160]
在一种可能的实施例中,本发明提供的虚拟人物穿模调整装置包括:
[0161]
坐标映射模块,用于根据目标坐标转换关系以及中之人的身材数据与虚拟人物的模型数据之间的尺寸差异,将中之人的从结构体在中之人从结构体局部坐标系中的坐标,映射至虚拟人物从结构体局部坐标系中,以获取映射后的虚拟人物从结构体;
[0162]
调整模块1102,具体用于:
[0163]
根据映射后的虚拟人物四肢结构体与约束平面之间的相对位置关系,对虚拟人物四肢结构体进行调整;其中,调整后的第一虚拟人物四肢结构体与第二虚拟人物四肢结构体分别位于约束平面两侧;
[0164]
根据调整后的虚拟人物四肢结构体数据对虚拟人物的模型数据中四肢数据进行
调整。
[0165]
本发明实施例还提供了一种电子设备,如图12所示,包括处理器1201、通信接口1202、存储器1203和通信总线1204,其中,处理器1201,通信接口1202,存储器1203通过通信总线1204完成相互间的通信,
[0166]
存储器1203,用于存放计算机程序;
[0167]
处理器1201,用于执行存储器1203上所存放的程序时,实现如下步骤:
[0168]
获取中之人的代理体中各个结构体之间的位置约束关系;其中,该代理体包括:用于表示四肢的四肢结构体;
[0169]
根据该中之人的代理体中各个结构体之间的位置约束关系,对虚拟人物的模型数据中各个部位的数据进行调整;其中,调整后的所述虚拟人物的模型数据中各个部位的数据符合该中之人的代理体中各个结构体之间的位置约束关系;
[0170]
该中之人的代理体中各个结构体之间的位置约束关系包括:距离权重系数、约束平面;其中,该距离权重系数用于表示代理体中各个结构体对四肢结构体的节点所处位置的约束能力,约束平面用于约束不同的四肢结构体处于约束平面的两侧。
[0171]
上述终端提到的通信总线可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0172]
通信接口用于上述终端与其他设备之间的通信。
[0173]
存储器可以包括随机存取存储器(random access memory,简称ram),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0174]
上述的处理器可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processor,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0175]
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中任一所述的虚拟人物穿模调整方法。
[0176]
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的虚拟人物穿模调整方法。
[0177]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字
用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
[0178]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0179]
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0180]
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献