掌桥专利:专业的专利平台
掌桥专利
首页

地图生成方法、装置、计算机设备及计算机可读存储介质

文献发布时间:2023-06-19 10:14:56


地图生成方法、装置、计算机设备及计算机可读存储介质

技术领域

本申请涉及游戏设计技术领域,特别是涉及一种地图生成方法、装置、计算机设备及计算机可读存储介质。

背景技术

随着生活水平的提高,人们的生存质量和生活环境发生了翻天覆地的变化,大规模的城市建设,给人们的生活带来高品质享受的同时,也带来了巨大的压力,人们在压力环境下容易出现焦虑、精神不集中、工作无法正常完成等问题,因此,很多可以用于缓解疲劳以及娱乐的游戏应运而生。近年来,游戏设计技术飞速发展,市面上场景类的游戏受到大量玩家的青睐。场景类的游戏中大多为追身镜头,给玩家提供了更加浸入式的游戏体验,游戏中关卡的路线以及乐趣性是极为重要的一个点,因此,游戏的开发人员在开发游戏时,通常会为每个关卡生成多个不同的地图,并在玩家体验关卡时,随机展示地图,使得游戏的玩法增加,玩家可以体会别样的游戏感受。

相关技术中,游戏的开发员通常会为游戏中的每一个关卡生成多张地图,将关卡对应的多张地图与关卡进行绑定,并将绑定后的地图携带在游戏的安装包中。当玩家下载该游戏时,地图也一起下载,这样,在后续游戏运行时,每次玩家进入关卡时,都会随机展示一个地图。

在实现本申请的过程中,申请人发现相关技术至少存在以下问题:

为每个关卡都生成多张地图需要大量的人力物力,且大量的地图会导致游戏的安装包体积过大,不仅导致生成地图的成本过高,还浪费了大量的存储资源。

发明内容

有鉴于此,本申请提供了一种地图生成方法、装置、计算机设备及计算机可读存储介质,主要目的在于解决目前为每个关卡都生成多张地图需要大量的人力物力,且大量的地图会导致游戏的安装包体积过大,不仅导致生成地图的成本过高,还浪费了大量的存储资源的问题。

依据本申请第一方面,提供了一种地图生成方法,该方法包括:

当检测到请求生成地图时,根据设定的目标生成风格,确定起始三维地块;

在所述起始三维地块上确定被选中的起始延伸通道,基于所述起始延伸通道,查询至少一个可拼接三维地块,所述至少一个可拼接三维地块符合所述目标生成风格且存在与所述起始延伸通道匹配的可连接延伸通道;

建立所述起始延伸通道与所述可连接延伸通道之间的连接关系,将所述起始三维地块与所述至少一个可拼接三维地块进行拼接;

确定所述起始三维地块与所述至少一个可拼接三维地块进行拼接产生的拼接处,统计所述拼接处的拼接参数,所述拼接参数至少包括地块厚度差以及地块间隙数据;

按照所述地块厚度差对产生所述拼接处的两个待调整三维地块进行竖直方向的调整,按照所述地块间隙数据对所述两个待调整三维地块进行水平方向的调整,生成目标地图。

在另一个实施例中,所述根据设定的目标生成风格,确定起始三维地块,包括:

确定在请求生成地图时设定的所述目标生成风格,获取所述目标生成风格对应的多个预设三维地块;

在所述多个预设三维地块中确定被选中的预设三维地块;

将所述被选中的预设三维地块的地图属性设置为起始属性,并将设置后的所述预设三维地块作为所述起始三维地块。

在另一个实施例中,所述基于所述起始延伸通道,查询至少一个可拼接三维地块,包括:

在所述目标生成风格对应的多个预设三维地块中获取至少一个候选预设三维地块,所述至少一个候选预设三维地块是所述多个预设三维地块中除所述起始三维地块外的预设三维地块;

确定所述起始延伸通道的起始通道类型;

对于所述至少一个候选预设三维地块中每个候选预设三维地块,查询所述候选预设三维地块包括的延伸通道对应的通道类型;

当查询确定所述候选预设三维地块包括通道类型与所述起始通道类型一致的可连接延伸通道时,将所述候选预设三维地块作为所述可拼接三维地块,继续对所述至少一个候选预设三维地块进行查询,直至所述至少一个候选预设三维地块均查询完毕,得到所述至少一个可拼接三维地块;

当查询确定所述候选预设三维地块未包括通道类型与所述起始通道类型一致的可连接延伸通道时,将所述候选预设三维地块跳过,继续对所述至少一个候选预设三维地块进行查询,直至所述至少一个候选预设三维地块均查询完毕,得到所述至少一个可拼接三维地块。

在另一个实施例中,所述建立所述起始延伸通道与所述可连接延伸通道之间的连接关系,将所述起始三维地块与所述至少一个可拼接三维地块进行拼接,包括:

检测触发操作,在所述至少一个可拼接三维地块中确定所述触发操作选中的目标可拼接三维地块;

在所述目标可拼接三维地块中确定通道类型与所述起始延伸通道一致的可连接延伸通道;

移动所述目标可拼接三维地块,将所述可连接延伸通道与所述起始延伸通道连通,控制所述目标可拼接三维地块与所述起始三维地块拼接;

继续检测下一触发操作并执行所述下一触发操作选中的可拼接三维地块的拼接,直至检测到发生的触发操作将选中的可拼接三维地块的地图属性设置为终止属性。

在另一个实施例中,所述移动所述目标可拼接三维地块,将所述可连接延伸通道与所述起始延伸通道连通,控制所述目标可拼接三维地块与所述起始三维地块拼接之后,所述方法还包括:

检测所述目标可拼接三维地块与所述起始三维地块拼接后是否存在重叠部分;

当检测到存在重叠部分时,生成并展示制作失败提醒;

当检测到不存在重叠部分时,继续检测下一触发操作,执行所述下一触发操作选中的可拼接三维地块的拼接,并在拼接完成后检测是否存在重叠的部分。

在另一个实施例中,所述方法还包括:

生成所述目标地图的地图导航网格,在所述地图导航网络中确定至少一个模块拼接处,将所述至少一个模块拼接处进行激活连通,所述至少一个模块拼接处是三维地块之间拼接产生的;

对所述地图导航网格进行光照处理,在所述地图导航网格中增加光照;

将增加后的所述地图导航网格进行展示。

在另一个实施例中,所述对所述地图导航网格进行光照处理,在所述地图导航网格中增加光照,包括:

对于所述地图导航网络中的所述至少一个模块拼接处,基于点光模式对所述至少一个模块拼接处进行光照处理,为所述至少一个模块拼接处增加光照;

对于所述地图导航网格中的模块中心区域,获取预设光照信息,采用所述预设光照信息对述模块中心区域进行渲染,为所述模块中心区域增加光照,所述模块中心区域是所述起始三维地块以及所述至少一个可拼接三维地块的中心区域。

在另一个实施例中,所述按照所述地块厚度差对产生所述拼接处的两个待调整三维地块进行竖直方向的调整,包括:

在所述两个待调整三维地块中确定第一待调整三维地块和第二待调整三维地块,采用所述地块厚度差对所述第一待调整三维地块的地块厚度进行缩减,控制所述第一待调整三维地块和所述第二待调整三维地块的地块表面处于同一水平面;或,

采用所述地块厚度差对所述第二待调整三维地块的地块厚度进行增加,控制所述第一待调整三维地块和所述第二待调整三维地块的地块表面处于同一水平面;

其中,所述第一待调整三维地块的地块厚度大于所述第二待调整三维地块的地块厚度。

在另一个实施例中,所述按照所述地块间隙数据对所述两个待调整三维地块进行水平方向的调整,包括:

当所述地块间隙数据指示所述两个待调整三维地块中存在边界弯曲的第三待调整三维地块时,将所述第三待调整地块的边界进行拉伸,控制所述第三待调整三维地块的边界与第四待调整三维地块的边界匹配,所述第四待调整三维地块是所述两个待调整三维地块中除所述第三待调整三维地块外的另一待调整三维地块;和/或,

确定所述地块间隙数据指示的间隙距离,控制所述第三待调整三维地块向所述第四待调整三维地块延伸所述间隙距离指示的长度或控制所述第四待调整三维地块向所述第三待调整三维地块延伸所述间隙距离指示的长度。

依据本申请第二方面,提供了一种地图生成装置,该装置包括:

确定模块,用于当检测到请求生成地图时,根据设定的目标生成风格,确定起始三维地块;

查询模块,用于在所述起始三维地块上确定被选中的起始延伸通道,基于所述起始延伸通道,查询至少一个可拼接三维地块,所述至少一个可拼接三维地块符合所述目标生成风格且存在与所述起始延伸通道匹配的可连接延伸通道;

拼接模块,用于建立所述起始延伸通道与所述可连接延伸通道之间的连接关系,将所述起始三维地块与所述至少一个可拼接三维地块进行拼接;

统计模块,用于确定所述起始三维地块与所述至少一个可拼接三维地块进行拼接产生的拼接处,统计所述拼接处的拼接参数,所述拼接参数至少包括地块厚度差以及地块间隙数据;

调整模块,用于按照所述地块厚度差对产生所述拼接处的两个待调整三维地块进行竖直方向的调整,按照所述地块间隙数据对所述两个待调整三维地块进行水平方向的调整,生成目标地图。

在另一个实施例中,所述确定模块,包括:

获取单元,用于确定在请求生成地图时设定的所述目标生成风格,获取所述目标生成风格对应的多个预设三维地块;

确定单元,用于在所述多个预设三维地块中确定被选中的预设三维地块;

设置单元,用于将所述被选中的预设三维地块的地图属性设置为起始属性,并将设置后的所述预设三维地块作为所述起始三维地块。

在另一个实施例中,所述查询模块,包括:

获取单元,用于在所述目标生成风格对应的多个预设三维地块中获取至少一个候选预设三维地块,所述至少一个候选预设三维地块是所述多个预设三维地块中除所述起始三维地块外的预设三维地块;

第一确定单元,用于确定所述起始延伸通道的起始通道类型;

查询单元,用于对于所述至少一个候选预设三维地块中每个候选预设三维地块,查询所述候选预设三维地块包括的延伸通道对应的通道类型;

第二确定单元,用于当查询确定所述候选预设三维地块包括通道类型与所述起始通道类型一致的可连接延伸通道时,将所述候选预设三维地块作为所述可拼接三维地块,继续对所述至少一个候选预设三维地块进行查询,直至所述至少一个候选预设三维地块均查询完毕,得到所述至少一个可拼接三维地块;

所述查询单元,还用于当查询确定所述候选预设三维地块未包括通道类型与所述起始通道类型一致的可连接延伸通道时,将所述候选预设三维地块跳过,继续对所述至少一个候选预设三维地块进行查询,直至所述至少一个候选预设三维地块均查询完毕,得到所述至少一个可拼接三维地块。

在另一个实施例中,所述拼接模块,包括:

第一检测单元,用于检测触发操作,在所述至少一个可拼接三维地块中确定所述触发操作选中的目标可拼接三维地块;

确定单元,用于在所述目标可拼接三维地块中确定通道类型与所述起始延伸通道一致的可连接延伸通道;

控制单元,用于移动所述目标可拼接三维地块,将所述可连接延伸通道与所述起始延伸通道连通,控制所述目标可拼接三维地块与所述起始三维地块拼接;

所述第一检测单元,还用于继续检测下一触发操作并执行所述下一触发操作选中的可拼接三维地块的拼接,直至检测到发生的触发操作将选中的可拼接三维地块的地图属性设置为终止属性。

在另一个实施例中,所述拼接模块,还包括:

第二检测单元,用于检测所述目标可拼接三维地块与所述起始三维地块拼接后是否存在重叠部分;

生成单元,用于当检测到存在重叠部分时,生成并展示制作失败提醒;

所述第二检测单元,还用于当检测到不存在重叠部分时,继续检测下一触发操作,执行所述下一触发操作选中的可拼接三维地块的拼接,并在拼接完成后检测是否存在重叠的部分。

在另一个实施例中,所述装置还包括:

生成模块,用于生成所述目标地图的地图导航网格,在所述地图导航网络中确定至少一个模块拼接处,将所述至少一个模块拼接处进行激活连通,所述至少一个模块拼接处是三维地块之间拼接产生的;

处理模块,用于对所述地图导航网格进行光照处理,在所述地图导航网格中增加光照;

展示模块,用于将增加后的所述地图导航网格进行展示。

在另一个实施例中,所述处理模块,用于对于所述地图导航网络中的所述至少一个模块拼接处,基于点光模式对所述至少一个模块拼接处进行光照处理,为所述至少一个模块拼接处增加光照;对于所述地图导航网格中的模块中心区域,获取预设光照信息,采用所述预设光照信息对述模块中心区域进行渲染,为所述模块中心区域增加光照,所述模块中心区域是所述起始三维地块以及所述至少一个可拼接三维地块的中心区域。

在另一个实施例中,所述调整模块,用于在所述两个待调整三维地块中确定第一待调整三维地块和第二待调整三维地块,采用所述地块厚度差对所述第一待调整三维地块的地块厚度进行缩减,控制所述第一待调整三维地块和所述第二待调整三维地块的地块表面处于同一水平面;或,采用所述地块厚度差对所述第二待调整三维地块的地块厚度进行增加,控制所述第一待调整三维地块和所述第二待调整三维地块的地块表面处于同一水平面;其中,所述第一待调整三维地块的地块厚度大于所述第二待调整三维地块的地块厚度。

在另一个实施例中,所述调整模块,用于当所述地块间隙数据指示所述两个待调整三维地块中存在边界弯曲的第三待调整三维地块时,将所述第三待调整地块的边界进行拉伸,控制所述第三待调整三维地块的边界与第四待调整三维地块的边界匹配,所述第四待调整三维地块是所述两个待调整三维地块中除所述第三待调整三维地块外的另一待调整三维地块;和/或,确定所述地块间隙数据指示的间隙距离,控制所述第三待调整三维地块向所述第四待调整三维地块延伸所述间隙距离指示的长度或控制所述第四待调整三维地块向所述第三待调整三维地块延伸所述间隙距离指示的长度。

依据本申请第三方面,提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述方法的步骤

依据本申请第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的方法的步骤。

借由上述技术方案,本申请提供的一种地图生成方法、装置、计算机设备及计算机可读存储介质,本申请在检测到请求生成地图时,根据输入的目标生成风格,确定起始三维地块,并根据起始三维地块的起始延伸通道,挑选出可以使用的可拼接三维地块,将不同可拼接三维地块的相同通道类型的可连接延伸通道进行连接,实现对三维地块的拼接,并对拼接产生的拼接处进行调整,生成目标地图,无需开发人员制作大量完整的地图,采用将地图进行模块化处理的方案,可在少量三维地块资源的情况下,组合出大量不同的地图,降低地图制作成本,节约开发周期,避免占用大量的存储资源。

上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了本申请实施例提供的一种地图生成方法流程示意图;

图2A示出了本申请实施例提供的一种地图生成方法流程示意图;

图2B示出了本申请实施例提供的一种地图生成方法的示意图;

图2C示出了本申请实施例提供的一种地图生成方法的示意图;

图2D示出了本申请实施例提供的一种地图生成方法的示意图;

图2E示出了本申请实施例提供的一种地图生成方法流程示意图;

图3A示出了本申请实施例提供的一种地图生成装置的结构示意图;

图3B示出了本申请实施例提供的一种地图生成装置的结构示意图;

图3C示出了本申请实施例提供的一种地图生成装置的结构示意图;

图3D示出了本申请实施例提供的一种地图生成装置的结构示意图;

图3E示出了本申请实施例提供的一种地图生成装置的结构示意图;

图3F示出了本申请实施例提供的一种地图生成装置的结构示意图;

图4示出了本申请实施例提供的一种计算机设备的装置结构示意图。

具体实施方式

下面将参照附图更详细地描述本申请的示例性实施例。虽然附图中显示了本申请的示例性实施例,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。

本申请实施例提供了一种地图生成方法,如图1所示,该方法包括:

101、当检测到请求生成地图时,根据设定的目标生成风格,确定起始三维地块。

102、在起始三维地块上确定被选中的起始延伸通道,基于起始延伸通道,查询至少一个可拼接三维地块,至少一个可拼接三维地块符合目标生成风格且存在与起始延伸通道匹配的可连接延伸通道。

103、建立起始延伸通道与可连接延伸通道之间的连接关系,将起始三维地块与至少一个可拼接三维地块进行拼接。

104、确定起始三维地块与至少一个可拼接三维地块进行拼接产生的拼接处,统计拼接处的拼接参数,拼接参数至少包括地块厚度差以及地块间隙数据。

105、按照地块厚度差对产生拼接处的两个待调整三维地块进行竖直方向的调整,按照地块间隙数据对两个待调整三维地块进行水平方向的调整,生成目标地图。

本申请实施例提供的方法,在检测到请求生成地图时,根据输入的目标生成风格,确定起始三维地块,并根据起始三维地块的起始延伸通道,挑选出可以使用的可拼接三维地块,将不同可拼接三维地块的相同通道类型的可连接延伸通道进行连接,实现对三维地块的拼接,并对拼接产生的拼接处进行调整,生成目标地图,无需开发人员制作大量完整的地图,采用将地图进行模块化处理的方案,可在少量三维地块资源的情况下,组合出大量不同的地图,降低地图制作成本,节约开发周期,避免占用大量的存储资源。

本申请实施例提供了一种地图生成方法,如图2A所示,该方法包括:

201、当检测到请求生成地图时,根据设定的目标生成风格,确定起始三维地块。

目前市面上的很多游戏中,在同一章节的关卡里往往需要大量场景地图作为承载关卡玩法的载体,地图通常由开发人员基于某一个设定的生成风格制作多张完整的地图,重复利用,或者采用纯随机的方式选取每个关卡的地图。申请人认识到,为了避免关卡的单调性而制作的多张地图会导致关卡地图制作成本过高,大量的地图数据使得游戏安装包的体积过大。而且采用纯随机的方式选取每个关卡的地图通常应用于2D(2-Dimension,二维)游戏中,考虑到3D(3-Dimension,三维)游戏中多为追身镜头,更加注重浸入式的游戏体验,且具有更加复杂的环境。如果对3D游戏采用纯随机的方式,会造成3D游戏视野被遮挡、光源难以控制、游戏场景缺失美感等问题。另外,对于运行在手机、平板等移动设备上的游戏来说,关卡的路线以及趣味性是极为重要的部分,需要在游戏的制作阶段进行规划以及设计,而采用纯随机的方式无法进行规划和设计,很难生成路线清晰且趣味性较强的地图。因此,本发明提出了一种地图生成方法,预先设置多个不同生成风格的非完整的预设三维地块,每个预设三维地块中都设置有一个或者多个可连接延伸通道。在检测到请求生成地图时,根据输入的生成风格,挑选出可以使用的可拼接三维地块,按照通道类型,将不同可拼接三维地块的相同通道类型的可连接延伸通道进行连接,实现对可拼接三维地块的拼接,生成关卡的地图,无需开发人员制作大量完成的地图,采用将地图进行模块化处理的方案,可在少量三维地块资源的情况下,组合出大量不同的地图,降低地图制作成本,节约开发周期,避免重复地图带来的枯燥感,提升了游戏的新颖性,增加了游戏的可玩性,更加适用于在移动设备中运行的游戏。

为了实现本申请的技术方案,开发人员可事先在开发工具中设置一些预设三维地块,将预设三维地块设定成不同的生成风格,也即Style(风格)。同一Style下的预设三维地块的风格统一,利用模块化的地图保证在同一模块内视野、路线、布局是可控、可理想化的。例如,参见图2B,在Style1下可以包括①、②和③三个预设三维地块。而在Style2下可以包括④、⑤和⑥三个预设三维地块。当检测到请求生成地图时,获取在请求生成地图时设定的目标生成风格,基于该目标生成风格,确定将哪一个预设三维地块作为起始三维地块。其中,首先,确定在请求生成地图时设定的目标生成风格,获取目标生成风格对应的多个预设三维地块。因为在请求生成地图时已经设定了想要生成哪种风格的地图,使用其他风格的预设三维地块与请求生成地图的初衷不相符,所以,需要获取目标生成风格对应的多个预设三维地块,在多个预设三维地块中确定被选中的预设三维地块。由于当下尚未开始地图的生成过程,只有一个预设三维地块被选中,所以,可将当前被选中的预设三维地块作为拼接的起点,将被选中的预设三维地块的地图属性设置为起始属性,并将设置后的预设三维地块作为起始三维地块。

需要说明的是,对预设三维地块进行拼接生成地图的过程可以在游戏的制作阶段执行,这样,开发人员就无需准备大量完整的地图。或者,也可以在游戏运行的过程中执行,这样,游戏的安装包中只需要携带这些预设三维地块就可以生成大量不同样式的地图,既减轻了开发人员的压力,也缩减了游戏的安装包体积。本申请对何时进行预设三维地块的拼接不进行具体限定。

202、在起始三维地块上确定被选中的起始延伸通道,基于起始延伸通道,查询至少一个可拼接三维地块。

在本申请实施例中,每个预设三维地块实际上均设置有1个或者多个已经定义好的延伸通道,每个延伸通道的通道类型,也即PathType(路径类型)是不同的,只有两个相同PathType才允许进行拼接,从而降低生成的目标地图的拼接感。继续参见图2B,对于Style1下的三个预设三维地块,①中设置有一个延伸通道,该延伸通道的PathType为PathTypeA;②中设置有一个延伸通道,该延伸通道的PathType为PathTypeA;③中设置有两个延伸通道,延伸通道的PathType均为PathTypeA。对于Style2下的三个预设三维地块,④中设置有三个延伸通道,延伸通道的PathType分别为PathTypeA和PathTypeB;⑤中设置有两个延伸通道,延伸通道的PathType分别为PathTypeA和PathTypeB;⑥中设置有两个延伸通道,延伸通道的PathType分别为PathTypeA和PathTypeB。因此,需要在确定的起始三维地块上确定被选中的延伸通道作为起始延伸通道,以该起始延伸通道开始,按照起始延伸通道的通道类型确定下一个可以拼接的预设三维地块,从而以此进行预设三维地块的拼接,最终得到目标地图。

由于只有两个相同通道类型的延伸通道才能进行拼接,不存在与起始延伸通道的通道类型相同的延伸通道的预设三维地块并不在考虑的范围内,因此,基于起始延伸通道,查询至少一个可拼接三维地块,使得至少一个可拼接三维地块符合目标生成风格且存在与起始延伸通道匹配的可连接延伸通道。具体地,在查找至少一个可拼接三维地块时,首先,在目标生成风格对应的多个预设三维地块中获取至少一个候选预设三维地块,至少一个候选预设三维地块也就是多个预设三维地块中除起始三维地块外的预设三维地块。随后,确定起始延伸通道的起始通道类型,对于至少一个候选预设三维地块中每个候选预设三维地块,查询候选预设三维地块包括的延伸通道对应的通道类型。一方面,当查询确定候选预设三维地块包括通道类型与起始通道类型一致的可连接延伸通道时,表示该候选预设三维地块是可以与起始三维地块进行拼接的,可以作为后续进行拼接的一种选项,因此,将候选预设三维地块作为可拼接三维地块,并继续对至少一个候选预设三维地块进行查询,直至至少一个候选预设三维地块均查询完毕,便可以得到至少一个可拼接三维地块。另一方面,当查询确定候选预设三维地块未包括通道类型与起始通道类型一致的可连接延伸通道时,表示该候选预设三维地块无法参与到本次的地图生成过程中,将候选预设三维地块跳过即可,并继续对至少一个候选预设三维地块进行查询,直至至少一个候选预设三维地块均查询完毕,得到至少一个可拼接三维地块。

需要说明的是,上述查询至少一个可拼接三维地块的过程也可以由开发工具来完成。当起始延伸通道被选中后,开发工具将该起始延伸通道激活,查询存在与起始延伸通道匹配的可连接延伸通道的至少一个可拼接三维地块直接提取即可。

203、建立起始延伸通道与可连接延伸通道之间的连接关系,将起始三维地块与至少一个可拼接三维地块进行拼接。

在本申请实施例中,当确定了至少一个可拼接三维地块后,根据当前检测到的触发操作,在至少一个可拼接三维地块中确定触发操作选中的目标可拼接三维地块,先开始对该目标可拼接三维地块的拼接过程,将起始三维地块与该目标可拼接三维地块磁力拼接。在拼接时,先在目标可拼接三维地块中确定通道类型与起始延伸通道一致的目标可连接延伸通道。随后,移动目标可拼接三维地块,将目标可连接延伸通道与起始延伸通道连通,控制目标可拼接三维地块与起始三维地块拼接,即完成了对起始三维地块与该目标可拼接三维地块的磁力拼接。例如,参见图2C,起始三维地块与目标可拼接三维地块之间相同的通道类型为PathTypeA,则将起始三维地块中PathTypeA指示的起始延伸通道与目标可拼接三维地块中PathTypeA指示的目标可连接延伸通道连接,得到图2C所示的拼接结果。之后,继续检测下一触发操作并执行下一触发操作选中的可拼接三维地块的拼接,也即继续进行之后被选中的可拼接三维地块的拼接,直至检测到发生的触发操作将选中的可拼接三维地块的地图属性设置为终止属性。

而在实际应用的过程中,有时有些预设三维地块中可能存在不止一个与起始延伸通道的通道类型相同的可连接延伸通道,这时,本申请支持对该预设三维地块进行旋转更换,可以选择想要的可连接延伸通道进行拼接。

另外,在本申请中,地图属性包括“起始属性”和“终止属性”,地图属性被设置为“起始属性”的预设三维地块是起始三维地块,地图属性被设置为“终止属性”的预设三维地块是终止三维地块,当两种地图属性均被定义时,便指示已经完成了对三维地块的拼接。

需要说明的是,在完成了三维地块的拼接后,由于很可能发生拼接的三维地块之间存在重叠的情况,例如,参见图2D,图2D中的预设三维地块①与预设三维地块②之间发生了重叠,重叠的部分为斜线填充部分,这种情况不符合地图制作的标准,不能应用生成地图,因此,当目标可拼接三维地块与起始三维地块拼接后,需要检测目标可拼接三维地块与起始三维地块拼接后是否存在重叠部分。当检测到存在重叠部分时,生成并展示制作失败提醒。而当检测到不存在重叠部分时,继续检测下一触发操作,执行下一触发操作选中的可拼接三维地块的拼接,并在拼接完成后检测是否存在重叠的部分。上述检测过程是完成一次三维地块的拼接便进行一次是否重叠的检测,可以避免后续的一些拼接工作无效。而在实际应用的过程中,也可以当整个拼接的过程完成后检测是否存在重叠的部分,如果存在重叠的部分,便生成并展示制作失败提醒。而如果不存在重叠的部分,便结束拼接操作,从而减少检测重叠的次数。本申请对检测是否发生重叠的时机不进行具体限定。

204、确定起始三维地块与至少一个可拼接三维地块进行拼接产生的拼接处,统计拼接处的拼接参数。

在本申请实施例中,由于实际上三维地块是用来指示土地的且是三维的,三维地块是存在立体边界的,很有可能在进行地块拼接时发生间隙或者发生高度差,因此,需要确定起始三维地块与至少一个可拼接三维地块进行拼接产生的拼接处,统计拼接处的拼接参数,进而按照拼接参数对进行拼接的三维地块进行调整,使三维地块之间的拼接痕迹难以察觉,保证拼接生成的目标地图美观、自然。其中,拼接参数至少包括地块厚度差以及地块间隙数据。地块厚度差用于指示两个三维地块之间的高度差,可以用于后续对三维地块高度的调整操作中,实现地块的消亡操作,使拼接处平整。地块间隙数据用于指示两个三维地块之间的间隙有多大,可以用于后续对三维地块进行延伸,实现地块的生长操作。

205、按照地块厚度差对产生拼接处的两个待调整三维地块进行竖直方向的调整,按照地块间隙数据对两个待调整三维地块进行水平方向的调整,生成目标地图。

在本申请实施例中,确定了拼接参数后,开始按照拼接参数对产生拼接处的两个待调整三维地块进行调整。其中,拼接参数中的地块厚度差可以用于对两个待调整三维地块进行竖直方向的调整,具体可以在两个待调整三维地块中确定第一待调整三维地块和第二待调整三维地块,第一待调整三维地块的地块厚度大于第二待调整三维地块的地块厚度。采用地块厚度差对第一待调整三维地块的地块厚度进行缩减,控制第一待调整三维地块和第二待调整三维地块的地块表面处于同一水平面。或者,采用地块厚度差对第二待调整三维地块的地块厚度进行增加,控制第一待调整三维地块和第二待调整三维地块的地块表面处于同一水平面。这个过程也即是三维地块的消亡操作。

拼接参数中的地块间隙数据可以用于对两个待调整三维地块进行水平方向的调整,具体在进行调整时,当地块间隙数据指示两个待调整三维地块中存在边界弯曲的第三待调整三维地块时,将第三待调整地块的边界进行拉伸,控制第三待调整三维地块的边界与第四待调整三维地块的边界匹配。其中,第四待调整三维地块是两个待调整三维地块中除第三待调整三维地块外的另一待调整三维地块,也即对三维地块进行拉伸,使三维地块的边界弯曲,从而使拼接处的间隙消失,使两个三维地块契合,这个过程也即是三维地块的弯曲操作。或者,也可以确定地块间隙数据指示的间隙距离,控制第三待调整三维地块向第四待调整三维地块延伸间隙距离指示的长度或控制第四待调整三维地块向第三待调整三维地块延伸间隙距离指示的长度。也即控制三维地块生长,使两个三维地块之间衔接,使拼接处的间隙消失,两个三维地块契合,这个过程也即是三维地块的生长操作。另外,为了使生成的地图更加贴近真实的场景,三维地块的上下表面会设置若干可以突起的生长点,并预先设置生长点的外形曲线。在对三维地块进行调整时,控制生长点根据设置的外形曲线做出突起的生长,这个过程也属于三维地块的生长操作。例如,部署有大桥的三维地块通过这些生长点可以生成桥下方突起的冰锥或者石头。

206、生成目标地图的地图导航网格,在地图导航网络中确定至少一个模块拼接处,将至少一个模块拼接处进行激活连通。

在本申请实施例中,由于当前生成的目标地图为模块化拼接形式,较传统完备地图采取的美术绘制行走面方式不一样,所以,需要基于开发工具中的程序,动态生成目标地图的地图导航网格,使游戏角色在目标地图中的行走寻路更加流畅。进一步地,每个预设三维地块的延伸通道默认均是关闭状态的,需要激活才能使角色正常通过,因此,在生成了目标地图的地图导航网格后,在地图导航网络中确定至少一个模块拼接处,将至少一个模块拼接处进行激活连通。其中,至少一个模块拼接处是三维地块之间拼接产生的,也即延伸通道与延伸通道的连接处,在激活时,将延伸通道的属性设置为激活状态即可。

207、对地图导航网格进行光照处理,在地图导航网格中增加光照,将增加后的地图导航网格进行展示。

在本申请实施例中,由于目标地图是采用拼接方式生成的,模块与模块之间是存在拼接处的,为了使拼接处无缝隙感,采用组合光的方式对地图导航网格进行光照处理,在地图导航网格中增加光照,并将增加后的地图导航网格进行展示。具体地,对于地图导航网络中的至少一个模块拼接处,基于点光模式对至少一个模块拼接处进行光照处理,为至少一个模块拼接处增加光照。需要说明的是,点光模式的具体参数可根据模块拼接处的两个延伸通道的通道类型确定。而对于地图导航网格中的模块中心区域,获取预设光照信息,采用预设光照信息对述模块中心区域进行渲染,为模块中心区域增加光照,模块中心区域是起始三维地块以及至少一个可拼接三维地块的中心区域。其中,在开发工具中,对于模块中心区域可以直接采用开发工具的烘焙处理方案进行处理,从而保证地图导航网格的场景内的美感效果。

综上所述,本申请的地图生成方法流程如下:

参见图2E,设定目标生成风格,按照目标生成风格选择起始三维地块,并在起始三维地块上选择起始延伸通道,向起始延伸通道指示的方向进行拼接。随后,展示包括与起始延伸通道的通道类型相同的全部可拼接三维地块,确定被选中的可拼接三维地块,将起始三维地块与可拼接三维地块拼接。检测是否发生重叠,发生重叠则进行提醒,未发生重叠则继续其他被选中的可拼接三维地块的拼接操作,直至检测到有可拼接三维地块的地图属性被设置为终止属性。此时,若没有发生任何重叠,则对拼接产生的拼接处进行调整,得到目标地图,生成目标地图的地图导航网格并导出地图数据。

本申请实施例提供的方法,在检测到请求生成地图时,根据输入的目标生成风格,确定起始三维地块,并根据起始三维地块的起始延伸通道,挑选出可以使用的可拼接三维地块,将不同可拼接三维地块的相同通道类型的可连接延伸通道进行连接,实现对三维地块的拼接,并对拼接产生的拼接处进行调整,生成目标地图,无需开发人员制作大量完整的地图,采用将地图进行模块化处理的方案,可在少量三维地块资源的情况下,组合出大量不同的地图,降低地图制作成本,节约开发周期,避免占用大量的存储资源。

进一步地,作为图1所述方法的具体实现,本申请实施例提供了一种地图生成装置,如图3A所示,所述装置包括:确定模块301,查询模块302和拼接模块303,统计模块304和调整模块305。

该确定模块301,用于当检测到请求生成地图时,根据设定的目标生成风格,确定起始三维地块;

该查询模块302,用于在所述起始三维地块上确定被选中的起始延伸通道,基于所述起始延伸通道,查询至少一个可拼接三维地块,所述至少一个可拼接三维地块符合所述目标生成风格且存在与所述起始延伸通道匹配的可连接延伸通道;

该拼接模块303,用于建立所述起始延伸通道与所述可连接延伸通道之间的连接关系,将所述起始三维地块与所述至少一个可拼接三维地块进行拼接;

该统计模块304,用于确定所述起始三维地块与所述至少一个可拼接三维地块进行拼接产生的拼接处,统计所述拼接处的拼接参数,所述拼接参数至少包括地块厚度差以及地块间隙数据;

该调整模块305,用于按照所述地块厚度差对产生所述拼接处的两个待调整三维地块进行竖直方向的调整,按照所述地块间隙数据对所述两个待调整三维地块进行水平方向的调整,生成目标地图。

在具体的应用场景中,如图3B所示,该确定模块301,包括:获取单元3011,确定单元3012和设置单元3013。

该获取单元3011,用于确定在请求生成地图时设定的所述目标生成风格,获取所述目标生成风格对应的多个预设三维地块;

该确定单元3012,用于在所述多个预设三维地块中确定被选中的预设三维地块;

该设置单元3013,用于将所述被选中的预设三维地块的地图属性设置为起始属性,并将设置后的所述预设三维地块作为所述起始三维地块。

在具体的应用场景中,如图3C所示,该查询模块302,包括:获取单元3021,第一确定单元3022,查询单元3023和第二确定单元3024。

该获取单元3021,用于在所述目标生成风格对应的多个预设三维地块中获取至少一个候选预设三维地块,所述至少一个候选预设三维地块是所述多个预设三维地块中除所述起始三维地块外的预设三维地块;

该第一确定单元3022,用于确定所述起始延伸通道的起始通道类型;

该查询单元3023,用于对于所述至少一个候选预设三维地块中每个候选预设三维地块,查询所述候选预设三维地块包括的延伸通道对应的通道类型;

该第二确定单元3024,用于当查询确定所述候选预设三维地块包括通道类型与所述起始通道类型一致的可连接延伸通道时,将所述候选预设三维地块作为所述可拼接三维地块,继续对所述至少一个候选预设三维地块进行查询,直至所述至少一个候选预设三维地块均查询完毕,得到所述至少一个可拼接三维地块;

该查询单元3023,还用于当查询确定所述候选预设三维地块未包括通道类型与所述起始通道类型一致的可连接延伸通道时,将所述候选预设三维地块跳过,继续对所述至少一个候选预设三维地块进行查询,直至所述至少一个候选预设三维地块均查询完毕,得到所述至少一个可拼接三维地块。

在具体的应用场景中,如图3D所示,该拼接模块303,包括:第一检测单元3031,确定单元3032和控制单元3033。

该第一检测单元3031,用于检测触发操作,在所述至少一个可拼接三维地块中确定所述触发操作选中的目标可拼接三维地块;

该确定单元3032,用于在所述目标可拼接三维地块中确定通道类型与所述起始延伸通道一致的可连接延伸通道;

该控制单元3033,用于移动所述目标可拼接三维地块,将所述可连接延伸通道与所述起始延伸通道连通,控制所述目标可拼接三维地块与所述起始三维地块拼接;

该第一检测单元3031,还用于继续检测下一触发操作并执行所述下一触发操作选中的可拼接三维地块的拼接,直至检测到发生的触发操作将选中的可拼接三维地块的地图属性设置为终止属性。

在具体的应用场景中,如图3E所示,该拼接模块303,还包括:第二检测单元3034和生成单元3035。

该第二检测单元3034,用于检测所述目标可拼接三维地块与所述起始三维地块拼接后是否存在重叠部分;

该生成单元3035,用于当检测到存在重叠部分时,生成并展示制作失败提醒;

该第二检测单元3034,还用于当检测到不存在重叠部分时,继续检测下一触发操作,执行所述下一触发操作选中的可拼接三维地块的拼接,并在拼接完成后检测是否存在重叠的部分。

在具体的应用场景中,如图3F所示,该装置还包括:生成模块306,处理模块307和展示模块308。

该生成模块306,用于生成所述目标地图的地图导航网格,在所述地图导航网络中确定至少一个模块拼接处,将所述至少一个模块拼接处进行激活连通,所述至少一个模块拼接处是三维地块之间拼接产生的;

该处理模块307,用于对所述地图导航网格进行光照处理,在所述地图导航网格中增加光照;

该展示模块308,用于将增加后的所述地图导航网格进行展示。

在具体的应用场景中,该处理模块307,用于对于所述地图导航网络中的所述至少一个模块拼接处,基于点光模式对所述至少一个模块拼接处进行光照处理,为所述至少一个模块拼接处增加光照;对于所述地图导航网格中的模块中心区域,获取预设光照信息,采用所述预设光照信息对述模块中心区域进行渲染,为所述模块中心区域增加光照,所述模块中心区域是所述起始三维地块以及所述至少一个可拼接三维地块的中心区域。

在具体的应用场景中,该调整模块305,用于在所述两个待调整三维地块中确定第一待调整三维地块和第二待调整三维地块,采用所述地块厚度差对所述第一待调整三维地块的地块厚度进行缩减,控制所述第一待调整三维地块和所述第二待调整三维地块的地块表面处于同一水平面;或,采用所述地块厚度差对所述第二待调整三维地块的地块厚度进行增加,控制所述第一待调整三维地块和所述第二待调整三维地块的地块表面处于同一水平面;其中,所述第一待调整三维地块的地块厚度大于所述第二待调整三维地块的地块厚度。

在具体的应用场景中,该调整模块305,用于当所述地块间隙数据指示所述两个待调整三维地块中存在边界弯曲的第三待调整三维地块时,将所述第三待调整地块的边界进行拉伸,控制所述第三待调整三维地块的边界与第四待调整三维地块的边界匹配,所述第四待调整三维地块是所述两个待调整三维地块中除所述第三待调整三维地块外的另一待调整三维地块;和/或,确定所述地块间隙数据指示的间隙距离,控制所述第三待调整三维地块向所述第四待调整三维地块延伸所述间隙距离指示的长度或控制所述第四待调整三维地块向所述第三待调整三维地块延伸所述间隙距离指示的长度。

本申请实施例提供的装置,在检测到请求生成地图时,根据输入的目标生成风格,确定起始三维地块,并根据起始三维地块的起始延伸通道,挑选出可以使用的可拼接三维地块,将不同可拼接三维地块的相同通道类型的可连接延伸通道进行连接,实现对三维地块的拼接,并对拼接产生的拼接处进行调整,生成目标地图,无需开发人员制作大量完整的地图,采用将地图进行模块化处理的方案,可在少量三维地块资源的情况下,组合出大量不同的地图,降低地图制作成本,节约开发周期,避免占用大量的存储资源。

需要说明的是,本申请实施例提供的一种地图生成装置所涉及各功能单元的其他相应描述,可以参考图1和图2A中的对应描述,在此不再赘述。

在示例性实施例中,参见图4,还提供了一种设备,该设备400包括通信总线、处理器、存储器和通信接口,还可以包括、输入输出接口和显示设备,其中,各个功能单元之间可以通过总线完成相互间的通信。该存储器存储有计算机程序,处理器,用于执行存储器上所存放的程序,执行上述实施例中的地图生成方法。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的地图生成方法的步骤。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。

本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。

本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

上述本申请序号仅仅为了描述,不代表实施场景的优劣。

以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。

相关技术
  • 地图生成方法、装置、计算机设备及计算机可读存储介质
  • 地图生成方法、装置、计算机可读存储介质和计算机设备
技术分类

06120112471113