一种三维模型合并时防穿模的方法、装置及存储介质与流程

文档序号:27261143发布日期:2021-11-05 21:59阅读:424来源:国知局
一种三维模型合并时防穿模的方法、装置及存储介质与流程

1.本发明涉及三维模型技术领域,特别是涉及一种三维模型合并时防穿模的方法、装置及存储介质。


背景技术:

2.在电子游戏中具有人物、宠物等扮演不同角色的对象,为了使这些对象具有更逼真的形象,这些人物、宠物等对象都采用了三维模型进行建模,并且为这些对象设置对应的多套部件模型,游戏玩家可根据需要为人物或宠物选择不同的部件,例如选择不同的服装、首饰、装饰物等。
3.由于三维模型(例如:人物三维模型、宠物三维模型)和部件模型是单独建立的,三维模型在运动或变形时容易出现穿模的问题。例如,人物的三维模型本应被部件模型遮盖的部分外露在部件模型之外,如图1中所示的三维模型1的虚线部11外露于部件模型2外面。
4.为了解决穿模问题,现有技术中主要是采用以下两种解决方案:
5.1、为人物等三维模型的运动部分和部件模型都添加刚体,并以物理引擎实时计算三维模型和部件模型的关系,使部件模型能够与三维模型随动,从而解决穿模问题;
6.2、将部件模型设计为较为宽松的款式;
7.但上述方案1需要复杂的物理引擎,非常消耗性能,且随着模型精细度和骨骼数增加,性能消耗会进一步显著提升;上述方案2在视觉上会有部件不合身或不服帖,影响人物的形象效果。


技术实现要素:

8.为此,需要提供一种3d模型合并方法,用于解决现有技术中3d模型和部件模型易穿模的技术问题。
9.为实现上述目的,发明人提供了一种三维模型合并时防穿模的方法,包括以下步骤:
10.根据合并指令获取待合并的部件;
11.为三维模型更换上所述部件,删除所述三维模型中被所述部件遮盖的部分。
12.进一步的,所述3d模型合并方法还包括步骤:
13.预设所述部件对应的部件模型,所述部件模型包括部件和被所述部件遮盖的辅助模型;
14.所述“为三维模型更换上所述部件,删除所述三维模型中被所述部件遮盖的部分”包括以下步骤:
15.计算所述三维模型中与所述辅助模型的相同部分;
16.删除所述三维模型中的所述相同部分;
17.将删除所述相同部分后的所述三维模型与所述部件进行合并操作使所述部件合并于所述三维模型上。
18.进一步的,所述三维模型和所述辅助模型均包括坐标点以及由各所述坐标点所组成的面;所述“计算所述三维模型中与所述辅助模型的相同部分”包括:
19.计算所述三维模型与所述辅助模型的相同坐标点,以及由所述相同坐标点所组成的面;
20.所述“删除所述三维模型中的所述相同部分”包括:删除所述三维模型中所述相同坐标点和所述相同坐标点所组成的面。
21.进一步的,所述相同坐标点所组成的面由多个三角面组成,所述三角面的每个顶点均为所述坐标点。
22.进一步的,所述“预设所述部件对应的部件模型,所述部件模型包括部件和被所述部件遮盖的辅助模型”包括以下步骤:
23.预设所述部件,所述部件包括服装、首饰、武器、装饰物中的任意一种或多种的组合,所述衣服包括帽子、衣服、裤子、鞋子、衣身、袖子、领子中的任意一种或多种的组合;
24.获取三维模型或所述三维模型中与所述部件对应的部位,删除所述三维模型或所述部位中未被所述部件遮盖的部分得到所述辅助模型。
25.进一步的,所述三维模型是由3d物理引擎生成,所述三维模型删减未被所述部件遮盖的部分是通过调用所述3d物理引擎中接口实现。
26.进一步的,三维模型包括游戏中的人物模型、宠物模型、装备模型中的任意一种或多种。
27.为解决上述技术问题,本发明还提供了另一技术方案:一种三维模型合并时防穿模装置,三维模型合并时防穿模装置包括:
28.获取模块,所述获取模块用于根据合并指令获取待合并的部件;以及
29.合并模块,所述合并模块用于为三维模型更换上所述部件,删除所述三维模型中被所述部件遮盖的部分。
30.进一步的,所述合并模块包括:
31.预设模块,所述预设模块用于预设所述部件对应的部件模型,所述部件模型包括部件和被所述部件遮盖的辅助模型;
32.计算模块,所述计算模块用于计算所述三维模型中与所述辅助模型的相同部分;
33.删除模块,所述删除模块用于删除所述三维模型中的所述相同部分;以及
34.合并子模块,所述合并子模块用于将删除所述相同部分后的所述三维模型与所述部件进行合并操作使所述部件合并于所述三维模型上。
35.为解决上述技术问题,本发明还提供了另一技术方案:
36.一种计算机存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如以上任意一项技术方案所述的三维模型合并时防穿模的方法。
37.区别于现有技术,上述技术方案在为三维模型更换服装、头发等部件时,删除三维模型中被部件所遮盖的部分,从而有效避免了三维模型运动时穿模的发生。并且上述技术方案无需通过物理引擎计算来避免穿模,减小了数据运算量,能够极大的降低对设备的性能需求。进一步的,上述技术方案采用删除三维模型和辅助模型中的相同坐标点来删除三维模型的部分部位,因此不需要复杂的三维透视计算,在合并时的模型合并步骤中,能够极大的降低对设备的性能需求。
附图说明
38.图1为现有技术中穿模的示意图;
39.图2为具体实施方式所述三维模型合并时防穿模的方法的流程图;
40.图3为具体实施方式所述删除所述三维模型中被所述部件遮盖的部分的具体流程图;
41.图4为具体实施方式所述三维模型合并过程示意图;
42.图5为具体实施方式所述三维模型合并装置的模块框图;
43.图6为具体实施方式所述合并模块的具体模块框图;
44.图7为具体实施方式所述计算机存储介质的示意图。
45.附图标记说明:
46.1、3d模型;
47.11、虚线部;
48.2、部件模型;
49.10、三维模型;
50.21、服装;
51.22、辅助模型;
52.400、三维模型合并时防穿模装置;
53.410、获取模块;
54.420、合并模块;
55.421、预设模块;
56.422、计算模块;
57.423、删除模块;
58.424、合并子模块;
59.700、计算机存储介质;
具体实施方式
60.为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
61.请参阅图2至图4,本实施例提供了一种三维模型合并时防穿模的方法。该三维模型合并时防穿模的方法可应用于游戏中为不同三维模型更换服装、头头等部件,该三维模型合并时防穿模的方法可有效避免三维模型穿模,并且无需通过物理引擎计算来避免穿模,减小了数据运算量,能够极大的降低对设备的性能需求。
62.如图2所示,所述三维模型合并时防穿模的方法,包括以下步骤:
63.s101、根据合并指令获取待合并的部件。
64.其中,系统内存储有三维模型和两种以上不同的部件,所述合并指令可以由外界通过输入设备输入也可以由系统自动生产。
65.s102、为三维模型更换上所述部件,删除所述三维模型中被所述部件遮盖的部分。
66.其中,三维模型包括多个部件,三维模型中的每个部件均是可以合并的,部件是合并的最小粒度。三维模型可以为游戏中的人物模型,三维模型可以由3d物理引擎生成,例如
在一实施方式中三维模型为由spine骨骼模型所生成的人物模型,该人物模型可包括头、身体、胳膊、腿等部件。所述部件也可包括多个不同的部分,例如人物模型的部件可包括服装、首饰、武器、装饰物中的任意一种或多种的组合,所述衣服包括帽子、衣服、裤子、鞋子、衣身、袖子、领子中的任意一种或多种的组合,所述上衣也可再细分为衣身(上衣主体)和袖子等,所述裤子也可以根据需要细分为裤管、裤腰等子单元。所述装饰物可以是佩戴的首饰,例如手镯、项链、戒指,还可以是头上佩戴的花等。当所述部件为服装时,服装可以是包括所述三维模型的全身服装,例如服装包括头饰、上衣、裤子和鞋子。另一些实施方式中所述服装也可以是所述三维模型不同部分的局部服装,例如所述服装仅是袖子、腰带或帽子。
67.在一些实施方式中,三维模型也可以是游戏中的宠物模型或装备模型,所述部件可以为假发、配件以及用于装饰所述宠物模型或装备模型的装饰物。
68.在步骤s102中,为三维模型更换上所述部件即为所述三维模型合并上部件,例如,为所述三维模型穿戴上服装(即合并)。所述删除所述三维模型中被所述部件遮盖的部分可以是在为三维模型更换上所述部件之后执行。在一些实施方式中,也可以是先计算出三维模型合并后将会被部件遮盖的部分,然后先删除三维模型中将会被部件遮盖的部分,最后将三维模型与所述部件进行合并操作使所述部件合并于所述三维模型上。
69.在该实施方式中,为三维模型更换部件时,删除三维模型中被部件所遮盖的部分,从而有效避免了三维模型运动时部件穿模的发生。并且上述技术方案无需通过物理引擎计算来避免穿模,减小了数据运算量,能够极大的降低对设备的性能需求。
70.如图3所示,在一实施方式中,提供了如何为三维模型更换上所述部件,删除所述三维模型中被所述部件遮盖的部分,其包括步骤:
71.s201、预设所述部件对应的部件模型,所述部件模型包括所述部件和被所述部件遮盖的辅助模型。
72.其中,辅助模型是针对对应的部件设置的,每个部件都设置有对应的辅助模型,辅助模型位于对应部件的内部(即服装穿戴于辅助模型上),并且辅助模型完全被部件遮盖。所述三维模型和所述辅助模型均包括坐标点以及由各所述坐标点所组成的面。例如,所述部件为服装,服装模型包括所述服装和被所述服装遮盖的辅助模型,辅助模型位于服装内并完全被服装所遮盖。
73.s202、计算所述三维模型中与所述辅助模型的相同部分。
74.其中,辅助模型与所述三维模型的一部分是相同的,因此通过对比坐标点可以找到辅助模型与所述三维模型中相同部分。
75.s203、删除所述三维模型中的所述相同部分。
76.s204、将删除所述相同部分后的所述三维模型与所述部件进行合并操作使所述部件合并于所述三维模型上。
77.在该实施方式中,采用删除相同坐标点的方式来删除三维模型被部件遮盖的部分,因此不需要复杂的三维透视计算,在步骤s204的合并时的模型合并操作中,能够极大的降低对设备的性能需求。
78.在一实施方式中,所述三维模型和所述辅助模型均包括坐标点以及由各所述坐标点所组成的面;所述“计算所述三维模型中与所述辅助模型的相同部分”包括:计算所述三维模型与所述辅助模型的相同坐标点,以及由所述相同坐标点所组成的面。
79.所述“删除所述三维模型中的所述相同部分”包括:删除所述三维模型中所述相同坐标点和所述相同坐标点所组成的面。
80.其中,相同坐标点所组成的面可以采用三个相邻的坐标点形成三角面。在另一些实施方式中,所述相同坐标点所组成的面也可以是由相邻的四个坐标点形成的四角面。
81.在上述实施方式中,所述部件包括服装、首饰、武器、装饰物中的任意一种或多种的组合,所述衣服包括帽子、衣服、裤子、鞋子、衣身、袖子、领子中的任意一种或多种的组合。
82.在一些实施方式中,所述部件为整套服装,三维模型合并时是与整套服装(即所述部件)合并,即为三维模型穿上或更换包括上衣和裤子(在一些情况下还可以包括帽子、鞋子)的整套服装。因此在这种情况下,所述辅助模型可通过将所述服装(即所述套装)试穿于所述三维模型上,然后删除所述三维模型中未被所述服装遮盖的部分得到。
83.在另一些实施方式中,所述部件也可以是更加细分的局部服装,例如,所述上衣可细分为衣身(即上衣的主体部分)、领子、袖子、腰带等,所述服装可以是衣身、领子、袖子、腰带中任意一种,或所述服装是衣身与领子、袖子、腰带中任意一种的组合。在这种情况下制作所述辅助模型时,可先从所述三维模型获取与所述服装对应的部位,然后删除所述部位中未被所述服装遮盖的部分得到所述辅助模型。例如当所述服装为袖子时,此时仅获取所述三维模型中与袖子对应位置的手臂模型,然后将袖子穿在手臂模型上,并删除手臂模型中未被袖子遮盖的那部分,因此得到位于袖子内剩余的部分模型即为辅助模型。
84.在一些实施方式中,所述与三维模型合并的部件也可以为头发、首饰、箱包或武器等,因此通过选择不同的部件可为三维模型合更换头发(即发型)、首饰或携带不同的武器等。所述三维模型可以为游戏中的人物对象,因此通过将人物对象的三维模型与不同的部件合并,可以使人物对象在游戏中扮演不同的角色,使人物对象的服装、箱包、头发、首饰、武器等都可进行更换。
85.在合并之前,先预设制作辅助模型,例如,制作三维模型戴帽子、穿鞋子、穿裤子、穿各类衣服、头发、首饰、箱包、武器等等的辅助模型。当需要进行合并时,直接调用这些预先制作好的辅助模型。
86.如图4所示,以手臂为所述三维模型10,以袖子为服装21(即部件)为例进行说明。其中,手臂三维模型10包括a、b、c、d、e、f、g、h坐标点,以及由这些坐标点组成的三角面(a、b、e)、(b、e、f)、(e、f、g)、(f、g、h)、(g、h、c)和(h、c、d)。袖子服装21包括位于服装21内的辅助模型22,辅助模型22包括坐标点e、f、g、h,以及由这些坐标点组成的三角面(e、f、g)和(f、g、h)。辅助模型22位于服装21内并被服装21完全遮盖。在步骤s202中通过坐标点比对即可找出辅助模型22与手臂三维模型10具有相同的坐标点e、f、g、h,以及由坐标点e、f、g、h组成的三角面(e、f、g)和(f、g、h)。
87.在步骤s203中,可将手臂三维模型10中的坐标点e、f、g、h以及所组成的三角面(e、f、g)和(f、g、h)删除;坐标点e、f、g、h以及所组成的三角面(e、f、g)和(f、g、h)删除可通过3d物理引擎的接口行进。
88.在步骤s204中,将删除所述相同部分后的手臂三维模型10与服装21进行合并操作,从而使所述服装21合并于手臂三维模型10上。如图3所示,合并后服装21已穿戴于手臂三维模型10上,并且手臂三维模型10上被服装21遮盖的部分已被删除,从而使手臂三维模
型运动时不会出现穿模现象。
89.图4所示的实施方式也同样可适用于头发、首饰、武器等部件中,其中,头发、首饰、武器等部件也包括与之对应的辅助模型。例如,当部件为头发时,头发部件包括了头发和头发的辅助模型,所述头发的辅助模型为与被头发遮盖(或头发接触)处的头部模型(当头发比较长时辅助模型还可包括颈部模型);当部件为武器时,武器部件包括武器本体和武器辅助模型,武器辅助模型为被模型遮盖处的身体模型。当头发、首饰、武器等部件等非服装类部件与三维模型合并时(即更换或佩戴这些部件时),其方法与袖子部件换装是一样的,同样需要计算非服装类部件的辅助模型与三维模型的相同部分,然后删除三维模型中与辅助模型相同的部分,最后将非服装类部件合并至三维模型上。
90.如图5所示,在一实施方式中提供了一种三维模型合并时防穿模装置400。三维模型合并时防穿模装置400可应用于游戏中为不同三维模型更换部件,该三维模型合并时防穿模装置400可有效避免三维模型穿模,并且无需通过物理引擎计算来避免穿模,减小了数据运算量,能够极大的降低对设备的性能需求。该三维模型合并时防穿模装置400包括获取模块410和合并模块420。其中,所述获取模块410用于根据合并指令获取待合并的部件。合并模块420用于为三维模型更换上所述部件,删除所述三维模型中被所述部件遮盖的部分。
91.其中,系统内存储有三维模型和两种以上不同的部件,所述合并指令可以由外界通过输入设备输入也可以由系统自动生产。
92.并且三维模型包括多个部件,三维模型中的每个部件均是可以合并的,部件是合并的最小粒度。三维模型可以为游戏中的人物模型,三维模型可以由3d物理引擎生成,例如在一实施方式中三维模型为由spine骨骼模型所生成的人物模型,该人物模型可包括头、身体、胳膊、腿等部件。所述部件也可包括多个不同的部分,例如人物模型的部件可包括服装、首饰、武器、装饰物中的任意一种或多种的组合,所述衣服包括帽子、衣服、裤子、鞋子、衣身、袖子、领子中的任意一种或多种的组合,所述上衣也可再细分为衣身(上衣主体)和袖子等,所述裤子也可以根据需要细分为裤管、裤腰等子单元。当所述部件为服装时,服装可以是包括所述三维模型的全身服装,例如服装包括头饰、上衣、裤子和鞋子。另一些实施方式中所述服装也可以是所述三维模型不同部分的局部服装,例如所述服装仅是袖子、腰带或帽子。
93.在一些实施方式中,三维模型也可以是游戏中的宠物模型或装备模型,所述服装为用于装饰所述宠物模型或装备模型的装饰物。
94.在上述实施方式中,所述部件包括服装、首饰、武器、装饰物中的任意一种或多种的组合,所述衣服包括帽子、衣服、裤子、鞋子、衣身、袖子、领子中的任意一种或多种的组合。
95.在一些实施方式中,三维模型合并时是与整套服装(即所述部件)合并,即为三维模型穿上或更换包括上衣和裤子(在一些情况下还可以包括帽子、鞋子)的整套服装。因此在这种情况下,所述辅助模型可通过将所述服装(即所述套装)试穿于所述三维模型上,然后删除所述三维模型中未被所述服装遮盖的部分得到。
96.在另一些实施方式中,所述服装也可以是更加细分的局部服装,例如,所述上衣可细分为衣身(即上衣的主体部分)、领子、袖子、腰带等,所述服装可以是衣身、领子、袖子、腰带中任意一种,或所述服装是衣身与领子、袖子、腰带中任意一种的组合。在这种情况下制
作所述辅助模型时,可先从所述三维模型获取与所述服装对应的部位,然后删除所述部位中未被所述服装遮盖的部分得到所述辅助模型。例如当所述服装为袖子时,此时仅获取所述三维模型中与袖子对应位置的手臂模型,然后将袖子穿在手臂模型上,并删除手臂模型中未被袖子遮盖的那部分,因此得到位于袖子内剩余的部分模型即为辅助模型。
97.在一些实施方式中,所述与三维模型合并的部件可以为头发、首饰、箱包或武器等。
98.在合并之前,先预设制作辅助模型,例如,制作三维模型戴帽子、穿鞋子、穿裤子、穿各类衣服、头发、首饰、箱包、武器等等的辅助模型。当需要进行合并时,直接调用这些预先制作好的辅助模型。
99.如图6所示,在一实施方式中,所述合并模块420包括预设模块421、计算模块422、删除模块423和合并子模块424。
100.预设模块421用于预设所述部件对应的部件模型,所述部件模型包括部件和被所述部件遮盖的辅助模型。
101.其中,辅助模型是针对对应的部件设置的,每个部件都设置有对应的辅助模型,辅助模型位于对应部件的内部(即服装穿戴于辅助模型上),并且辅助模型完全被部件遮盖。所述三维模型和所述辅助模型均包括坐标点以及由各所述坐标点所组成的面。
102.所述计算模块422用于计算所述三维模型中与所述辅助模型的相同部分。其中,辅助模型与所述三维模型的一部分是相同的,因此通过对比坐标点可以找到辅助模型与所述三维模型中相同部分。
103.所述删除模块423用于删除所述三维模型中的所述相同部分。
104.所述合并子模块424用于将删除所述相同部分后的所述三维模型与所述部件进行合并操作使所述部件合并于所述三维模型上。
105.在该实施方式中,采用删除相同坐标点的方式来删除三维模型被部件遮盖的部分,因此不需要复杂的三维透视计算,在步骤s204的合并时的模型合并操作中,能够极大的降低对设备的性能需求。
106.如图4所示,以手臂为所述三维模型10以袖子为服装21为例进行说明。其中,预设模块421预设了手臂三维模型10和袖子服装21,袖子服装21包括位于服装内的辅助模型22。手臂三维模型10包括a、b、c、d、e、f、g、h坐标点,以及由这些坐标点组成的三角面(a、b、e)、(b、e、f)、(e、f、g)、(f、g、h)、(g、h、c)和(h、c、d)。辅助模型22包括坐标点e、f、g、h,以及由这些坐标点组成的三角面(e、f、g)和(f、g、h)。辅助模型22位于服装21内并被服装21完全遮盖。
107.计算模块422用于通过坐标点比对即可找出辅助模型22与手臂三维模型10具有相同的坐标点e、f、g、h,以及由坐标点e、f、g、h组成的三角面(e、f、g)和(f、g、h)。
108.删除模块423可将手臂三维模型10中的坐标点e、f、g、h以及所组成的三角面(e、f、g)和(f、g、h)删除;坐标点e、f、g、h以及所组成的三角面(e、f、g)和(f、g、h)删除可通过3d物理引擎的接口行进。
109.合并子模块424将删除所述相同部分后的手臂三维模型10与服装21进行合并操作,从而使所述服装21合并于手臂三维模型10上。如图3所示,合并后服装21已穿戴于手臂三维模型10上,并且手臂三维模型10上被服装21遮盖的部分已被删除,从而使手臂三维模
型运动时不会出现穿模现象。
110.在该实施方式中,合并模块420为三维模型更换部件时,删除三维模型中被部件所遮盖的部分,从而有效避免了三维模型运动时部件穿模的发生。并且上述技术方案无需通过物理引擎计算来避免穿模,减小了数据运算量,能够极大的降低对设备的性能需求。
111.图4所示的实施方式也同样可适用于头发、首饰、武器等部件中,其中,头发、首饰、武器等部件也包括与之对应的辅助模型。例如,当部件为头发时,头发部件包括了头发和头发的辅助模型,所述头发的辅助模型为与被头发遮盖(或头发接触)处的头部模型(当头发比较长时辅助模型还可包括颈部模型);当部件为武器时,武器部件包括武器本体和武器辅助模型,武器辅助模型为被模型遮盖处的身体模型。当头发、首饰、武器等部件等非服装类部件与三维模型合并时(即更换或佩戴这些部件时),其方法与袖子部件换装是一样的,同样需要计算非服装类部件的辅助模型与三维模型的相同部分,然后删除三维模型中与辅助模型相同的部分,最后将非服装类部件合并至三维模型上。
112.如图7所示,在一实施方式中提供了一种计算机存储介质700,其上存储有计算机程序,所述程序被处理器执行时实现以上任意一项实施方式所述的三维模型合并时防穿模的方法。
113.该计算机存储介质中的计算机程序在为三维模型更换部件时,删除三维模型中被部件所遮盖的部分,从而有效避免了三维模型运动时部件穿模的发生。并且上述技术方案无需通过物理引擎计算来避免穿模,减小了数据运算量,能够极大的降低对设备的性能需求。进一步的,上述技术方案采用删除三维模型和辅助模型中的相同坐标点来删除三维模型的部分部位,因此不需要复杂的三维透视计算,在合并时的模型合并步骤中,能够极大的降低对设备的性能需求。并且采用删除相同坐标点的方式来删除三维模型被部件遮盖的部分,因此不需要复杂的三维透视计算,在步骤s204的合并时的模型合并操作中,能够极大的降低对设备的性能需求。
114.需要说明的是,尽管在本文中已经对上述各实施例进行了描述,但并非因此限制本发明的专利保护范围。因此,基于本发明的创新理念,对本文所述实施例进行的变更和修改,或利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接地将以上技术方案运用在其他相关的技术领域,均包括在本发明的专利保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1