1.本发明涉及游戏物件制作技术领域,特别是一种3d物件合并分组编辑的方法及其系统。
背景技术:2.在计算机图形学与计算几何领域,一个物体的包围盒就是将物体组合完全包容起来的一个封闭空间。将复杂物体封装在简单的包围盒中,用简单的包围盒形状来近似代替复杂几何体的形状,就可以提高几何运算的效率,而且方便美术和游戏制作人员对物体进行旋转,位置拖放,大小控制。
3.在大型游戏设计中,一张地图中会看到很多怪物,玩家,地贴,路,花,草,树,木等物件,这里我们统称为可编辑物件,在承受住同屏渲染压力后,美术以及客户端人员在制作游戏的过程中就要在这些游戏场景中对某一具体物件进行详细的设定了(如位置,大小,旋转角度,光照,纹理等),在本系统中具体到每个物件都会有个包围盒。
4.系统可以将多个3d物件组合成新的游戏中的组合物件,例如用多个模型道具组合成一个桌椅组合(如一张桌子,4张椅子),也可以多块石头和花,树组成游戏中的围墙。从操作来说,如果已经组合好一个围墙组合,如果需要移动位置,按原有设计方法,就只能先移里面的一个物件,如先移其中的一块石头,假设有10多块石头,那效率明显是不高的,而且每次移动后,还不能保证效果一致,比如间距,角度如何保证。
技术实现要素:5.为克服上述问题,本发明的目的是提供一种3d物件合并分组编辑的方法,保证了组合内所有物件统一的操作,同时提高了用户编辑效率。
6.本发明采用以下方案实现:一种3d物件合并分组编辑的方法,所述方法包括如下步骤:
7.步骤s1、把多个物件摆成一个组合,同时选中多个需要组合的物件;
8.步骤s2、创建组合的分组名字;
9.步骤s3、获取选中的物件的各个包围盒顶点;
10.步骤s4、得到每个物件的每个包围盒顶点的值后,对所有包围盒顶点的x、y、z轴进行比较,并把x轴的最大值、最小值,y轴的最大值、最小值,z轴的最大值、最小值,都放入一顶点列表;
11.步骤s5、将顶点列表中所有的x、y、z轴的最大值和最小值进行组成一个新的包围盒;
12.步骤s6、用新的包围盒形成一个新的物件组合体;
13.步骤s7、对物件组合体进行编辑操作,从而完成物件合并分组编辑。
14.进一步的,所述步骤s4进一步具体为:得到每个物件的每个包围盒顶点的值,则每个物件都有多个的包围盒顶点,将多个的物件对应的包围盒顶点都进行比较,比较所有包
围盒顶点的x轴分量值、y轴分量值、z轴分量值,得到x轴分量值的最大值xmax和最小值xmin;得到y轴分量值的最大值ymax和最小值ymin;得到z轴分量值的最大值zmax和最小值zmin,将最大值xmax、最小值xmin、最大值ymax、最小值ymin、最大值zmax、最小值zmin这6个值都放入一顶点列表中。
15.进一步的,所述步骤s5进一步具体为:得到顶点列表中的最大值xmax、最小值xmin、最大值ymax、最小值ymin、最大值zmax、最小值zmin,设置xyz坐标中以a0点作为起始点,则将最大值xmax、最小值xmin、最大值ymax、最小值ymin、最大值zmax、最小值zmin形成8个顶点,即a0(xmin,ymin,zmin);a1(xmax,ymin,zmin);a2(xmin,ymax,zmin);a3(xmax,ymax,zmin);a4(xmin,ymin,zmax);a5(xmax,ymin,zmax);a6(xmin,ymax,zmax);a7(xmax,ymax,zmax),将这8个顶点组成一个新的包围盒。
16.进一步的,所述对物件组合体进行编辑操作,包括复制、设置位置、设置角度,以及设置大小的操作。
17.进一步的,所述分组名字是为了方便操作人员下次编辑,分组名字由“组合+序号+名字”组成。
18.本发明还提供了一种3d物件合并分组编辑的系统,所述系统包括物件摆放模块、分组命名模块、顶点获取模块、顶点比较模块、包围盒生成模块、组合体形成模块、以及编辑模块;
19.所述物件摆放模块,用于把多个物件摆成一个组合,同时选中多个需要组合的物件;
20.所述分组命名模块,用于创建组合的分组名字;
21.所述顶点获取模块,获取选中的物件的各个包围盒顶点;
22.所述顶点比较模块,得到每个物件的每个包围盒顶点的值后,对所有包围盒顶点的x、y、z轴进行比较,并把x轴的最大值、最小值,y轴的最大值、最小值,z轴的最大值、最小值,都放入一顶点列表;
23.所述包围盒生成模块,将顶点列表中所有的x、y、z轴的最大值和最小值进行组成一个新的包围盒;
24.所述组合体形成模块,用新的包围盒形成一个新的物件组合体;
25.所述编辑模块,对物件组合体进行编辑操作,从而完成物件合并分组编辑。
26.进一步的,所述顶点比较模块的实现方式进一步具体为:得到每个物件的每个包围盒顶点的值,则每个物件都有多个的包围盒顶点,将多个的物件对应的包围盒顶点都进行比较,比较所有包围盒顶点的x轴分量值、y轴分量值、z轴分量值,得到x轴分量值的最大值xmax和最小值xmin;得到y轴分量值的最大值ymax和最小值ymin;得到z轴分量值的最大值zmax和最小值zmin,将最大值xmax、最小值xmin、最大值ymax、最小值ymin、最大值zmax、最小值zmin这6个值都放入一顶点列表中。
27.进一步的,所述包围盒生成模块的实现方式进一步具体为:得到顶点列表中的最大值xmax、最小值xmin、最大值ymax、最小值ymin、最大值zmax、最小值zmin,设置xyz坐标中以a0点作为起始点,则将最大值xmax、最小值xmin、最大值ymax、最小值ymin、最大值zmax、最小值zmin形成8个顶点,即a0(xmin,ymin,zmin);a1(xmax,ymin,zmin);a2(xmin,ymax,zmin);a3(xmax,ymax,zmin);a4(xmin,ymin,zmax);a5(xmax,ymin,zmax);a6(xmin,ymax,
zmax);a7(xmax,ymax,zmax),将这8个顶点组成一个新的包围盒。
28.进一步的,所述对物件组合体进行编辑操作,包括复制、设置位置、设置角度,以及设置大小的操作。
29.进一步的,所述分组名字是为了方便操作人员下次编辑,分组名字由“组合+序号+名字”组成。
30.本发明的有益效果在于:本发明在游戏编辑中,将多个3d物件通过算法合并最大包围顶点进行组合成一个新的物件,这样只需要改变当前组合体进行大小,位置,角度进行统一设定操作,那么物件内所有的物件也会跟随当前的组合体进行统一的操作,保证了组合内所有物件统一的操作,并极大的提高了游戏制作效率。
附图说明
31.图1是本发明的方法流程示意图。
32.图2是本发明一实施例中新的包围盒形成一个新的物件组合体后的坐标系示意图。
33.图3是本发明的系统原理框图。
具体实施方式
34.下面结合附图对本发明做进一步说明。
35.请参阅图1所示,本发明的一种3d物件合并分组编辑的方法,所述方法包括如下步骤:
36.步骤s1、把多个物件摆成一个组合,同时选中多个需要组合的物件;
37.步骤s2、创建组合的分组名字;
38.步骤s3、获取选中的物件的各个包围盒顶点;
39.步骤s4、得到每个物件的每个包围盒顶点的值后,对所有包围盒顶点的x、y、z轴进行比较,并把x轴的最大值、最小值,y轴的最大值、最小值,z轴的最大值、最小值,都放入一顶点列表;
40.步骤s5、将顶点列表中所有的x、y、z轴的最大值和最小值进行组成一个新的包围盒;
41.步骤s6、用新的包围盒形成一个新的物件组合体;
42.步骤s7、对物件组合体进行编辑操作,从而完成物件合并分组编辑。
43.下面结合一具体实施例对本发明做进一步说明:
44.本发明的一种3d物件合并分组编辑的方法,所述方法包括如下步骤:
45.步骤s1、把多个物件摆成一个组合,同时选中多个需要组合的物件;
46.步骤s2、创建组合的分组名字;所述分组名字是为了方便操作人员下次编辑,或者团队更容易理解,分组名字由“组合+序号+名字”组成。比如组合1桌椅(一张桌子和多张椅子);组合2围墙(多个草丛,多颗树,多块石头,火盆组成)。
47.步骤s3、获取选中的物件的各个包围盒顶点;选中的物件都会有对应的包围盒顶点;
48.步骤s4、得到每个物件的每个包围盒顶点的值后,对所有包围盒顶点的x、y、z轴进
行比较,并把x轴的最大值、最小值,y轴的最大值、最小值,z轴的最大值、最小值,都放入一顶点列表;
49.每个物件在地图中都有自己的顶点坐标(相对xyz三个轴中心的坐标0,0,0而言),其中xyz的意思就是:x、y是平面坐标和数学中的坐标是一样的,z代表高度,即是三维的。所以比如三个点的坐标分别(-1,-1,-1),(0,0,0),(1,1,1),则三个点中x轴最大值就是1,最小值-1,y轴最大值就是1,最小值-1,z轴最大值就是1,最小值-1;就是所有物件所有的顶点都需要进行对比;这里进行对比的是每个顶的x值并取最大值,比如2个物件,每个物件8个顶点,则一共有16个顶点,比如x轴最大值、最小值,则需要进行对比的就是16个顶点的每个的顶点x分量值,并取其中的最大最小值(xmax,xmin),取y和z同理。然后取出xmax,xmin,ymax,ymin,zmax,zmin;
50.步骤s5、将顶点列表中所有的x、y、z轴的最大值和最小值进行组成一个新的包围盒;这个包围盒形成的新物件就是用步骤4中顶点,比如2个物件,每个物件在3d地图中都有8个顶点,就在16个顶点中取出x轴最大最小值,y轴最大最小值,z轴最大最小值,构成一个新的a0到a7组成的一个组合物件(实际上是一个虚拟体,只是为了游戏制作人员方便整体进行编辑,复制,删除操作组合而成的一个包围盒);得到顶点列表中的最大值xmax、最小值xmin、最大值ymax、最小值ymin、最大值zmax、最小值zmin,则用这几个值就能构成一个新的包围盒,设置xyz坐标中以a0点作为起始点,则将最大值xmax、最小值xmin、最大值ymax、最小值ymin、最大值zmax、最小值zmin形成8个顶点,6个值按如下组合成8个顶点:
51.如图2所示,+x,+y,+z方向,即a0(xmin,ymin,zmin);a1(xmax,ymin,zmin);a2(xmin,ymax,zmin);a3(xmax,ymax,zmin);a4(xmin,ymin,zmax);a5(xmax,ymin,zmax);a6(xmin,ymax,zmax);a7(xmax,ymax,zmax),将这8个顶点组成一个新的包围盒。
52.步骤s6、用新的包围盒形成一个新的物件组合体;即包围盒所围成的空间即为一个新的物件组合体;
53.步骤s7、对物件组合体进行编辑操作,从而完成物件合并分组编辑。所述对物件组合体进行编辑操作,包括复制、设置位置、设置角度,以及设置大小的操作。
54.如图3所示,本发明还提供了一种3d物件合并分组编辑的系统,所述系统包括物件摆放模块、分组命名模块、顶点获取模块、顶点比较模块、包围盒生成模块、组合体形成模块、以及编辑模块;
55.所述物件摆放模块,用于把多个物件摆成一个组合,同时选中多个需要组合的物件;
56.所述分组命名模块,用于创建组合的分组名字;所述分组名字是为了方便操作人员下次编辑,或者团队更容易理解,分组名字由“组合+序号+名字”组成。比如组合1桌椅(一张桌子和多张椅子);组合2围墙(多个草丛,多颗树,多块石头,火盆组成)。
57.所述顶点获取模块,获取选中的物件的各个包围盒顶点;
58.所述顶点比较模块,得到每个物件的每个包围盒顶点的值后,对所有包围盒顶点的x、y、z轴进行比较,并把x轴的最大值、最小值,y轴的最大值、最小值,z轴的最大值、最小值,都放入一顶点列表;所述顶点比较模块的实现方式进一步具体为:得到每个物件的每个包围盒顶点的值,则每个物件都有多个的包围盒顶点,将多个的物件对应的包围盒顶点都进行比较,比较所有包围盒顶点的x轴分量值、y轴分量值、z轴分量值,得到x轴分量值的最
大值xmax和最小值xmin;得到y轴分量值的最大值ymax和最小值ymin;得到z轴分量值的最大值zmax和最小值zmin,将最大值xmax、最小值xmin、最大值ymax、最小值ymin、最大值zmax、最小值zmin这6个值都放入一顶点列表中。
59.所述包围盒生成模块,将顶点列表中所有的x、y、z轴的最大值和最小值进行组成一个新的包围盒;所述包围盒生成模块的实现方式进一步具体为:得到顶点列表中的最大值xmax、最小值xmin、最大值ymax、最小值ymin、最大值zmax、最小值zmin,设置xyz坐标中以a0点作为起始点,则将最大值xmax、最小值xmin、最大值ymax、最小值ymin、最大值zmax、最小值zmin形成8个顶点,即a0(xmin,ymin,zmin);a1(xmax,ymin,zmin);a2(xmin,ymax,zmin);a3(xmax,ymax,zmin);a4(xmin,ymin,zmax);a5(xmax,ymin,zmax);a6(xmin,ymax,zmax);a7(xmax,ymax,zmax),将这8个顶点组成一个新的包围盒。
60.所述组合体形成模块,用新的包围盒形成一个新的物件组合体;
61.所述编辑模块,对物件组合体进行编辑操作,从而完成物件合并分组编辑。所述对物件组合体进行编辑操作,包括复制、设置位置、设置角度,以及设置大小的操作。
62.下面通过一个例子,说明这种方法如何对游戏界面的物件进行组合并对整体进行编辑优化:
63.例子:比如美术在游戏编辑器设计了一个的围墙组合,此围墙有多个草丛,多颗树,多块石头,以及一个火盆组合而成,而一张地图可可以用到数个这样的给合,比如游戏策划想用多个围墙组成游戏的围墙迷宫。
64.如果美术要一个一个的制作,不止工作效率底下,而且往往花了很大的力气制作多个后也很难保证迷宫的效果,就是保证每面围墙纵组合都一致。
65.美术在本系统中通过物件摆放模块、分组命名模块、顶点获取模块、顶点比较模块、包围盒生成模块、组合体形成模块、以及编辑模块的操作,可以预先摆放好各种需要的草丛,树,石头,火。然后美术此时对刚摆放的各个物件同时选中,在系统右键菜单中选中组合命令,对当前的组合进行命名,变成一个新的组合体。
66.然后美术就可以对当前组合体进行复制操作,并移动复制后的新组合体。这样也不用像原来那样,要每次复制一个组合就需要复制多个物件(因为一个组合体往往有多个物件)。
67.总之,本发明在游戏编辑中,将多个3d物件通过算法合并最大包围顶点进行组合成一个新的物件,这样只需要改变当前组合体进行大小,位置,角度进行统一设定操作,那么物件内所有的物件也会跟随当前的组合体进行统一的操作,保证了组合内所有物件统一的操作,并极大的提高了游戏制作效率。
68.以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
技术特征:1.一种3d物件合并分组编辑的方法,其特征在于:所述方法包括如下步骤:步骤s1、把多个物件摆成一个组合,同时选中多个需要组合的物件;步骤s2、创建组合的分组名字;步骤s3、获取选中的物件的各个包围盒顶点;步骤s4、得到每个物件的每个包围盒顶点的值后,对所有包围盒顶点的x、y、z轴进行比较,并把x轴的最大值、最小值,y轴的最大值、最小值,z轴的最大值、最小值,都放入一顶点列表;步骤s5、将顶点列表中所有的x、y、z轴的最大值和最小值进行组成一个新的包围盒;步骤s6、用新的包围盒形成一个新的物件组合体;步骤s7、对物件组合体进行编辑操作,从而完成物件合并分组编辑。2.根据权利要求1所述的一种3d物件合并分组编辑的方法,其特征在于:所述步骤s4进一步具体为:得到每个物件的每个包围盒顶点的值,则每个物件都有多个的包围盒顶点,将多个的物件对应的包围盒顶点都进行比较,比较所有包围盒顶点的x轴分量值、y轴分量值、z轴分量值,得到x轴分量值的最大值xmax和最小值xmin;得到y轴分量值的最大值ymax和最小值ymin;得到z轴分量值的最大值zmax和最小值zmin,将最大值xmax、最小值xmin、最大值ymax、最小值ymin、最大值zmax、最小值zmin这6个值都放入一顶点列表中。3.根据权利要求2所述的一种3d物件合并分组编辑的方法,其特征在于:所述步骤s5进一步具体为:得到顶点列表中的最大值xmax、最小值xmin、最大值ymax、最小值ymin、最大值zmax、最小值zmin,设置xyz坐标中以a0点作为起始点,则将最大值xmax、最小值xmin、最大值ymax、最小值ymin、最大值zmax、最小值zmin形成8个顶点,即a0(xmin,ymin,zmin);a1(xmax,ymin,zmin);a2(xmin,ymax,zmin);a3(xmax,ymax,zmin);a4(xmin,ymin,zmax);a5(xmax,ymin,zmax);a6(xmin,ymax,zmax);a7(xmax,ymax,zmax),将这8个顶点组成一个新的包围盒。4.根据权利要求1所述的一种3d物件合并分组编辑的方法,其特征在于:所述对物件组合体进行编辑操作,包括复制、设置位置、设置角度,以及设置大小的操作。5.根据权利要求1所述的一种3d物件合并分组编辑的方法,其特征在于:所述分组名字是为了方便操作人员下次编辑,分组名字由“组合+序号+名字”组成。6.一种3d物件合并分组编辑的系统,其特征在于:所述系统包括物件摆放模块、分组命名模块、顶点获取模块、顶点比较模块、包围盒生成模块、组合体形成模块、以及编辑模块;所述物件摆放模块,用于把多个物件摆成一个组合,同时选中多个需要组合的物件;所述分组命名模块,用于创建组合的分组名字;所述顶点获取模块,获取选中的物件的各个包围盒顶点;所述顶点比较模块,得到每个物件的每个包围盒顶点的值后,对所有包围盒顶点的x、y、z轴进行比较,并把x轴的最大值、最小值,y轴的最大值、最小值,z轴的最大值、最小值,都放入一顶点列表;所述包围盒生成模块,将顶点列表中所有的x、y、z轴的最大值和最小值进行组成一个新的包围盒;所述组合体形成模块,用新的包围盒形成一个新的物件组合体;所述编辑模块,对物件组合体进行编辑操作,从而完成物件合并分组编辑。
7.根据权利要求6所述的一种3d物件合并分组编辑的系统,其特征在于:所述顶点比较模块的实现方式进一步具体为:得到每个物件的每个包围盒顶点的值,则每个物件都有多个的包围盒顶点,将多个的物件对应的包围盒顶点都进行比较,比较所有包围盒顶点的x轴分量值、y轴分量值、z轴分量值,得到x轴分量值的最大值xmax和最小值xmin;得到y轴分量值的最大值ymax和最小值ymin;得到z轴分量值的最大值zmax和最小值zmin,将最大值xmax、最小值xmin、最大值ymax、最小值ymin、最大值zmax、最小值zmin这6个值都放入一顶点列表中。8.根据权利要求7所述的一种3d物件合并分组编辑的系统,其特征在于:所述包围盒生成模块的实现方式进一步具体为:得到顶点列表中的最大值xmax、最小值xmin、最大值ymax、最小值ymin、最大值zmax、最小值zmin,设置xyz坐标中以a0点作为起始点,则将最大值xmax、最小值xmin、最大值ymax、最小值ymin、最大值zmax、最小值zmin形成8个顶点,即a0(xmin,ymin,zmin);a1(xmax,ymin,zmin);a2(xmin,ymax,zmin);a3(xmax,ymax,zmin);a4(xmin,ymin,zmax);a5(xmax,ymin,zmax);a6(xmin,ymax,zmax);a7(xmax,ymax,zmax),将这8个顶点组成一个新的包围盒。9.根据权利要求6所述的一种3d物件合并分组编辑的系统,其特征在于:所述对物件组合体进行编辑操作,包括复制、设置位置、设置角度、设置纹理、设置光照以及设置大小的操作。10.根据权利要求6所述的一种3d物件合并分组编辑的系统,其特征在于:所述分组名字是为了方便操作人员下次编辑,分组名字由“组合+序号+名字”组成。
技术总结本发明提供了一种3d物件合并分组编辑的方法,让多个物件组合成一个新的物件组合(内里包含多个物件),将顶点列表中所有的X、Y、Z轴的最大值和最小值进行组成一个新的包围盒;用新的包围盒形成一个新的物件组合体;只需要改变当前组合体进行大小,位置,角度进行统一设定操作,那么物件内所有的物件也会跟随当前的组合体进行了统一的操作,保证了组合内所有物件统一的操作,同时提高了用户编辑效率。同时提高了用户编辑效率。同时提高了用户编辑效率。
技术研发人员:刘德建 李佳 柳旭辉 翁存敏 张延锋
受保护的技术使用者:福建天晴在线互动科技有限公司
技术研发日:2022.04.07
技术公布日:2022/7/5