CN109821242B - 地图可视化编辑方法及其系统 - Google Patents
地图可视化编辑方法及其系统 Download PDFInfo
- Publication number
- CN109821242B CN109821242B CN201910039341.2A CN201910039341A CN109821242B CN 109821242 B CN109821242 B CN 109821242B CN 201910039341 A CN201910039341 A CN 201910039341A CN 109821242 B CN109821242 B CN 109821242B
- Authority
- CN
- China
- Prior art keywords
- map
- event
- queue
- path
- editing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供地图可视化编辑方法及其系统,方法包括:地图编辑模块实时遍历物件维护模块中的物件表,判断所述物件表是否新增物件ID,所述物件表的表字段包括物件ID和物件资源路径;若是,则依据新增物件ID对应的物件资源路径,加载并显示新增的物件;地图编辑模块接收对应所显示物件中的至少一个目标物件的操作指令,所述操作指令包括选中及其与移动、旋转、缩放、替换、替换和删除中至少一个的组合。本发明大大减轻了美术,策划和程序的工作耦合度,提高了工作效率;并且具备可移植性。
Description
技术领域
本发明涉及游戏地图编辑领域,具体涉及地图可视化编辑方法及其系统。
背景技术
现有的H5游戏引擎LayaAir3D,并没有可视化操作的三维编辑器(3D地图编辑工具),允许由美术制作地图元素,策划借助编辑器,组合产生地图场景的3D编辑器。在缺少三维编辑器的情况下,需要美术、策划和程序三者配合,才能完成一个地图的编辑,并且所有地图元素必须由程序硬编码写入,无法做到地图场景快速迭代更新。这就导致了地图制作周期长,各部门配合耦合度高的问题。一个地图制作往往需要一个月的时间。
例如,一个具体游戏其中的一个关卡设计,需要程序构建底层数据结构,支持策划的关卡设计。由于是硬编码,美术和策划都无法实时预览关卡结构,需要三方协商在纸面上敲定相关数据后,由程序硬编码到项目中,一个月只设计出一个关卡内容,且关卡可玩性低,内容不丰富,难于维护。
另外传统的Roguelike游戏往往是简单的事件堆积,即游戏一开始时,地图中所有事件即已确定,无法做到事件的动态更新。专利为策划提供了一套事件编辑解决方案,通过专利工具,策划可以自由设计事件,丰富游戏玩法。
发明内容
本发明所要解决的技术问题是:提供地图可视化编辑方法及其系统,能实现大大减轻美术、策划和编程三者的工作耦合度,显著提高工作效率。
为了解决上述技术问题,本发明采用的技术方案为:
地图可视化编辑方法,包括:
地图编辑模块实时遍历物件维护模块中的物件表,判断所述物件表是否新增物件ID,所述物件表的表字段包括物件ID和物件资源路径;
若是,则依据新增物件ID对应的物件资源路径,加载并显示新增的物件;
地图编辑模块接收对应所显示物件中的至少一个目标物件的操作指令,所述操作指令包括选中及其与移动、旋转、缩放、替换、替换和删除中至少一个的组合。
本发明提供的另一个技术方案为:
地图可视化编辑系统,包括物件维护模块和地图编辑模块,所述地图编辑模块包括基础编辑器;
所述物件维护模块,用于生成并更新物件表;
所述基础编辑器,用于实时遍历物件维护模块中的物件表,判断所述物件表是否新增物件ID,所述物件表的表字段包括物件ID和物件资源路径;若是,则依据新增物件ID对应的物件资源路径,加载并显示新增的物件;以及
接收对应所显示物件中的至少一个目标物件的操作指令,所述操作指令包括选中及其与移动、旋转、缩放、替换、替换和删除中至少一个的组合。
本发明的有益效果在于:能将美术、策划和编程三者的工作区域进行严格分工,美工只需通过物件维护模块对物件表进行维护和更新,而策划只需要利用地图编辑模块自动读取物件维护模块的数据完成数据更新,并基于地图编辑模块进行可视化编辑地图数据;编程只需基于地图编辑模块的输出开展工程项目即可。本发明的运用,大大降低了美术、策划和编程三者的工作耦合度。策划工作不再涉及繁杂的数据维护和逻辑业务,而是只需专注于关卡玩法设计上,大大提高了策划的工作效率以及游戏地图制作整体的工作效率。
附图说明
图1为本发明实施例地图可视化编辑方法的流程示意图;
图2为本发明实施例地图可视化编辑方法对应的系统框架图;
图3为本发明实施例一的物件维护模块所维护的物件表的格式示意图;
图4(a)为本发明实施例一的地图编辑模块对应基础操作步骤中快速复制地图元素的操作示意图;
图4(b)为以图4(a)的方式快速复制得到多个相同地图元素的结果示意图;
图5为本发明实施例一的地图编辑模块对应基础操作步骤中自定义多选操作的示意图;
图6(a)为本发明实施例一的地图编辑模块对应基础操作步骤中动态修改实时反馈的操作过程中选中待替换物件的界面示意图;
图6(b)为对应图6(a)替换后的界面示意图;
图7为本发明实施例一的地图编辑模块对应随机地图步骤的界面示意图;
图8为本发明实施例一的地图逻辑模块对应事件编辑步骤的流程示意图;
图9为本发明实施例一的数据导出模块所导出数据的格式示意图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:美工只需通过物件维护模块对物件表进行维护和更新,而策划只需要利用地图编辑模块自动读取物件维护模块的数据完成数据更新,并基于地图编辑模块进行可视化编辑地图数据。
本发明涉及的技术术语解释:
技术术语 | 解释 |
物件表 | 存储所有地图元素的名称、ID、路径等相关数据的文件 |
连通队列 | 存放与目标区域紧邻且合法的所有区域的容器 |
连通树 | 记录地图上任意两个区域相通关系的树状结构 |
通路随机因子 | 决定通路产生的因素 |
通路 | 将两个区域连接起来的通道 |
断头通路 | 仅连接到一个区域房间的通道 |
事件队列 | 存放地块元素上所有行为信息的容器 |
事件关联队列 | 存放事件执行条件的所有信息的容器 |
地图掩码 | 将地图各个信息按一定规则进行保存的数据 |
请参照图1,本发明提供一种地图可视化编辑方法,包括:
地图编辑模块实时遍历物件维护模块中的物件表,判断所述物件表是否新增物件ID,所述物件表的表字段包括物件ID和物件资源路径;
若是,则依据新增物件ID对应的物件资源路径,加载并显示新增的物件;
地图编辑模块接收对应所显示物件中的至少一个目标物件的操作指令,所述操作指令包括选中及其与移动、旋转、缩放、替换、替换和删除中至少一个的组合。
进一步的,还包括:
地图编辑模块接收包括至少两个预设区域的地图;
对应各个预设区域,分别构建连通队列;
以一预设区域为起点,依据各个连通队列递归构建地图连通树;
依据预设的通路随机因子,在地图连通树中随机插入通路;
依据预设的房间数量,在连通树节点上随机创建房间,生成一随机地图。
由上述描述可知,本发明的地图编辑模块同时整合了一套操作简单易行的随机地图算法,为策划略编辑游戏关卡提供辅助参考,进一步提高策划工作的工作效率。
进一步的,还包括:
遍历所述随机地图,获取其中四个方向均只与另一个通路相连的断头通路;
遍历各个断头通路,判断当前断头通路的子节点是否为断头通路,若是,则时删除当前断头通路及其子节点;若否,则删除当前断头通路;
遍历结束后获取所述随机地图对应的简化地图。
由上述描述可知,本发明的地图编辑模块所提供的随机地图算法,还能自动剔除地图中的“断头路”,实现地图精简化,获取一系列高度随机的地图。
进一步的,所述方法还包括:
地图编辑模块通过事件编辑器对各个物件ID对应的逻辑值、事件队列、事件关联队列、事件队列中的各个事件对应的条件值和结果值,以及事件关联队列中的各个事件关联队列对应的条件值和结果值进行编辑;
当一物件ID对应的逻辑值发生变化时,分别遍历所述一物件ID对应的事件队列和事件关联队列,查询是否存在事件或事件关联对应的条件值等于当前的逻辑值,若有,则触发对应的事件或事件关联,并将所述一物件ID的逻辑值修改为所述对应的事件或事件关联的结果值。
由上述描述可知,通过本发明的地图编辑模块所提供的事件编辑器,能便于策划人员高效地完成时间之间相互关系的设定,实现物件事件的动态更新效率。
进一步的,所述方法还包括:
地图编辑模块导出包括地图ID、地图名称、地图掩码、事件列表、事件资源列表、地形资源列表、地图总资源列表以及地图大小的地图数据包。
由上述描述可知,能通过本发明提供的数据导出模块高效导出包括事件表、资源表和通行矩阵掩码三大数据集供编程直接读取使用,不仅方便策划工作和编程工作的配合,而且能进一步提高地图编辑工作整体的效率。
请参阅图2,本发明提供的另一个技术方案为:
地图可视化编辑系统,包括物件维护模块和地图编辑模块,所述地图编辑模块包括基础编辑器;
所述物件维护模块,用于生成并更新物件表;
所述基础编辑器,用于实时遍历物件维护模块中的物件表,判断所述物件表是否新增物件ID,所述物件表的表字段包括物件ID和物件资源路径;若是,则依据新增物件ID对应的物件资源路径,加载并显示新增的物件;以及
接收对应所显示物件中的至少一个目标物件的操作指令,所述操作指令包括选中及其与移动、旋转、缩放、替换、替换和删除中至少一个的组合。
从上述描述可知,本发明的有益效果在于:通过本发明系统提供的物件维护模块和地图编辑模块,能实现将美术、策划和编程三者的工作区域进行严格分工,美工只需通过物件维护模块对物件表进行维护和更新,而策划只需要利用地图编辑模块自动读取物件维护模块的数据完成数据更新,并基于地图编辑模块进行可视化编辑地图数据;编程只需基于地图编辑模块的输出开展工程项目即可。本发明的运用,大大降低了美术、策划和编程三者的工作耦合度。策划工作不再涉及繁杂的数据维护和逻辑业务,而是只需专注于关卡玩法设计上,大大提高了策划的工作效率以及游戏地图制作整体的工作效率。
进一步的,所述地图编辑模块包括随机地图生成器;
所述随机地图生成器,用于接收包括至少两个预设区域的地图;以及
对应各个预设区域,分别构建连通队列;以及
以一预设区域为起点,依据各个连通队列递归构建地图连通树;以及
依据预设的通路随机因子,在地图连通树中随机插入通路;以及
依据预设的房间数量,在连通树节点上随机创建房间,生成一随机地图。
进一步的,所述随机地图生成器,还用于遍历所述随机地图,获取其中四个方向均只与另一个通路相连的断头通路;以及
遍历各个断头通路,判断当前断头通路的子节点是否为断头通路,若是,则时删除当前断头通路及其子节点;若否,则删除当前断头通路;以及
遍历结束后获取所述随机地图对应的简化地图。
进一步的,所述地图编辑模块包括事件逻辑器;
所述事件逻辑器,用于对各个物件ID对应的逻辑值、事件队列、事件关联队列、事件队列中的各个事件对应的条件值和结果值,以及事件关联队列中的各个事件关联队列对应的条件值和结果值进行编辑;
当一物件ID对应的逻辑值发生变化时,分别遍历所述一物件ID对应的事件队列和事件关联队列,查询是否存在事件或事件关联对应的条件值等于当前的逻辑值,若有,则触发对应的事件或事件关联,并将所述一物件ID的逻辑值修改为所述对应的事件或事件关联的结果值。
进一步的,所述系统还包括数据导出模块;
所述数据导出模块,用于导出包括地图ID、地图名称、地图掩码、事件列、事件资源列、地形资源列、地图总资源列以及地图大小的地图数据包。
实施例一
请参照图2,本实施例提供一种地图可视化编辑方法以解放各部分的生产力。方法基于成熟的3D数据编辑平台Unity3D,将H5地图编辑工具抽象分为3个模块,即:物件维护模块,地图编辑模块和数据导出模块。本实施例对美术、策划和程序三者的工作区域进行严格分工:美术只负责3D地图元素更新与维护;策划通过H5地图编辑工具,可以可视化编辑地图数据;编辑好的地图数据,策划可以使用H5地图编辑工具导出数据功能,将编辑好的地图导出为事件表、资源表、通行矩阵掩码三大数据集;程序通过读取这三大数据集,根据地图重构算法在网页重现策划编辑的地图。优选的,本实施例相关数据集均采用json格式,保证了数据的可移植性。
本实施例的H5地图编辑器(下述简称H5地编工具)中的三个模块先后执行,但执行步骤间互不关联。
本实施例的方法包括:
一、物件维护模块
本实施例的H5地编工具提供一张物件表配置,由美术来编辑维护,以便快速更新物件资源,供策划编辑地图时使用。物件表的格式内容如图3所示。
在一具体实施方式中,物件维护模块执行包括:
步骤一:H5地编工具根据项目需求,预先设计物件表的结构。物件表的表字段包括:物件ID(id)、物件名(name)、物件资源路径(resPath)、物件属性(eventGroup)、物件类型(type)、地图匹配类型(mapType)、事件触发点(points)、标签(remark)等,具体可参阅图3。
步骤二:由美术维护物件表数据。例如,当新增一个物件时,则在物件表中新增一条物件记录,通过物件ID字段对应的物件资源路径,H5地编工具索引到正确的物件资源,并实时加载显示于H5地编窗口中。通过这种方式,美术的资源更新并不会影响到策划的工作流程,大大降低了部门工作流程中的耦合性。
二、地图编辑模块
策划人员通过H5地编工具提供的地图编辑模块进行游戏地图关卡的设计和编辑操作,能通过简单、便捷的操作方式提高工作效率。
地图编辑模块能执行包括:
地图编辑模块实时遍历物件维护模块中的物件表,判断所述物件表是否新增物件ID,所述物件表的表字段包括物件ID和物件资源路径;
若是,则依据新增物件ID对应的物件资源路径,加载并显示新增的物件;
地图编辑模块接收对应所显示物件中的至少一个目标物件的操作指令,所述操作指令包括选中及其与移动、旋转、缩放、替换、替换和删除中至少一个的组合。
具体的,地图编辑模块执行包括:
2.1、基础操作:
(1)H5地编工具支持通过地图编辑模块实现快速复制物件元素:绘制操作箭头、通过鼠标拖动箭头,以及对选中的地图元素(物件)进行移动拷贝元素信息。如图4(a)和图4(b)所示,图4(b)为快速拷贝物件获取多个物件的编辑结果。
(2)支持自定义快捷键,结合鼠标移动,进行快速多选、减选多个元素,便于批量编辑多个地图元素(物件)。如图5所示。
(3)支持对选中的物件元素进行实时动态修改替换元素资源,达到编辑器所见即所得,实时反馈关卡编辑结果,便于策划关卡编辑调试,如图6(a)和图6(b)所示,其中,图6(a)为最上面宝藏箱体样式替换前,图6(b)为替换后。
进一步的,本实施例的地图编辑模块还可以执行包括以下步骤:
2.2、通过随机地图生成器生成随机地图:
(1)地图编辑模块接收地图,该地图预先划分好至少两个预设区域;
(2)对应各个预设区域,分别构建连通队列;
(3)以一预设区域为起点,依据各个连通队列递归构建地图连通树;
(4)依据预设的通路随机因子,在地图连通树中随机插入通路;
依据预设的房间数量,在连通树节点上随机创建房间,生成一随机地图。
对应上述步骤(1)至(4)的一具体实施方式为:
策划在编辑关卡时常常需要设计随机性比较强的关卡。H5地编工具整合了一套简单的随机地图方案,为策划编辑关卡提供辅助参考:
步骤一:策划预先设计好地图区域划分及尺寸。例如策划将地图的长划分为4个区域,宽划分为2个区域,总计8个区域,(如果遇到地块数无法被区域整除时,则向下取整地块数)。
步骤二:构建地图区域连通树。每一个区域会构建一个四连通队列,判断周围区域是否为合法的地图区域空间,条件成立即存储在当前区域的连通队列中。
步骤三:随机选定一块地图区域为起点,根据区域的连通队列,递归构建地图连通树。
步骤四:根据通路随机因子,在联通树种随机插入通路。
步骤五:根据策划设定的房间数量,在联通树节点上创建随机房间,生成一随机地图。
通过上述步骤一至步骤五生成的随机地图,会存在一种通路四方向只与另一个通路地块相连,未与任何房间相连。这种对于玩家无意义的通路称其为“断头路”。为了优化玩家游戏体验,同时也是进一步简化上述的随机地图,本实施例还包括以下步骤:
(5)遍历所述随机地图,获取其中四个方向均只与另一个通路相连的断头通路;
(6)遍历各个断头通路,判断当前断头通路的子节点是否为断头通路,若是,则时删除当前断头通路及其子节点;若否,则删除当前断头通路;
(7)遍历结束后获取所述随机地图对应的简化地图。
对应上述步骤(5)-(7)的具体实施方式为:
步骤六:简化随机地图。在地图生成器增加了一个地图简化算法:遍历所有“断头路”,存储在“断头路”队列中,循环遍历“断头路”队列,删除“断头路”的同时,判断其子节点是否为新的“断头路”,如果“是”,存储到“断头路”队列中。反复此步骤,直到“断头路”队列为空。
通过以上六个步骤,即可生成一系列高度随机的地图,如图7所示,随机后的地图可供策划在关卡编辑进行参考。
2.3、事件编辑
地图编辑模块通过事件编辑器对各个物件ID对应的逻辑值、事件队列、事件关联队列、事件队列中的各个事件对应的条件值和结果值,以及事件关联队列中的各个事件关联队列对应的条件值和结果值进行编辑;
具体的,当一物件ID对应的逻辑值发生变化时,分别遍历所述一物件ID对应的事件队列和事件关联队列,查询是否存在事件或事件关联对应的条件值等于当前的逻辑值,若有,则触发对应的事件或事件关联,并将所述一物件ID的逻辑值修改为所述对应的事件或事件关联的结果值。
请参阅图8,对应该步骤的一具体实施方式为:
根据策划需求,需要设定事件之间的相互关系,例如:触发A处的开关,需要打开B处的石门,并且A处开关的触发还是需要玩家满足一定的条件,比如说身上有一把钥匙。因此传统的Rougelike游戏算法已经无法满足项目需求,专利对每一个地块元素(物件)功能进行抽象,将地块元素(物件)分为:逻辑值,事件队列和事件关联队列三个部分。地块逻辑值负责管理事件调度和关联调度,如图8所示。
每一个地块元素(物件)都有一个逻辑值,地块上的每一个事件或者事件关联都有一个条件值和结果值,玩家通过点击地块与地块交互,修改地块的逻辑值。当地块的逻辑值发生变化时,就会遍历地块的事件队列和事件关联队列查询是否存在事件或者事件关联的条件值等于当前逻辑值,条件成立即触发相关事件或事件关联,并将地块的逻辑值修改为事件或事件关联的结果值,达到地块事件动态更新的效果。
三、数据导出模块
通过数据导出模块导出包括地图ID、地图名称、地图掩码、事件列表、事件资源列表、地形资源列表、地图总资源列表以及地图大小的地图数据包。
在一具体实施方式中,策划通过上述的地图编辑模块编辑好地图后,需将地图所有相关数据导出成地图数据包,以便在LayaAir3D中解析、重现地图场景。地图数据包包括地图ID,地图名称,地图掩码(用于标识可行走区域),事件列,buff列,事件资源列,地形资源列,地图总资源列,地图长,宽数据。如图9所示。
其中,地图的ID和地图名称都是地图数据的标识位,地图的大小则是用于初始化地图时。需要申请多大内存空间重构地图。
其中,地图掩码(即表中的point列)用于标识地图的地形数据。a表示空地,b表示不可行走区域,c表示可行走区域。
其中,事件列(即表中的events列)用于存储地块上的事件数据集,x,y分别表示地块位置,g表示地块上的事件组数据集,g的第一位事件索引,第二位表示事件组Id,第三位表示条件值,第四位表示结果值。举例,事件表数据中g:0,802083,0,-1,x:16,y:6,表示的是x=16,y=6的地图,有一个事件,其0号事件的Id为802083,触发该事件的条件值是当前地块的逻辑值为0,触发该事件后,当前地块的逻辑值为-1。
其中,Buffs列用于存储地图的buff区域,r表示行数,c表示列数,buff区域的Id为二维Id,分别用x,y来表示。g表示对应的buff表中的索引。举例,表中g:200012,c:23,r:23,x:0,y:0,表示第1行,第1列中23行23列的区域范围内,皆为buff表中200012号buff。
其中,事件资源列(eventResList列)和地形资源列(resList列)表示的是在目标位置上使用哪一个资源,x,y分别表示目标位置的行和列,r表示资源的旋转值,res表示资源ID,举例,x:8,y:5,r:0,res:12101表示第8行,第5列,放置资源列表中12101号资源,且旋转0°。
总资源列(allResID列)表示加载这张地图,需要哪些资源。该列存储着资源ID数据集。
具体的,地图数据导出需要如下步骤:
步骤一:策划设置地图ID、地图名、地图类型等数据。
步骤二:H5地编工具自动获取地图数据。遍历地图上所有物件,获取物件数据。主要包括物件的空间位置、旋转值、物件ID值、物件的事件队伍、物件间的事件关联等数据。
步骤三:将地图数据存储为Json格式的数据文件。
实施例二
请参照图2,本实施例对应实施例一,提供一地图可视化编辑系统,包括物件维护模块和地图编辑模块,所述地图编辑模块包括基础编辑器;
其中,所述物件维护模块,用于生成并更新物件表;
所述基础编辑器,用于实时遍历物件维护模块中的物件表,判断所述物件表是否新增物件ID,所述物件表的表字段包括物件ID和物件资源路径;若是,则依据新增物件ID对应的物件资源路径,加载并显示新增的物件;以及
接收对应所显示物件中的至少一个目标物件的操作指令,所述操作指令包括选中及其与移动、旋转、缩放、替换、替换和删除中至少一个的组合。
具体的,所述地图编辑模块包括随机地图生成器;
所述随机地图生成器,用于接收包括至少两个预设区域的地图;以及
对应各个预设区域,分别构建连通队列;以及
以一预设区域为起点,依据各个连通队列递归构建地图连通树;以及
依据预设的通路随机因子,在地图连通树中随机插入通路;以及
依据预设的房间数量,在连通树节点上随机创建房间,生成一随机地图。
具体的,所述随机地图生成器,还用于遍历所述随机地图,获取其中四个方向均只与另一个通路相连的断头通路;以及
遍历各个断头通路,判断当前断头通路的子节点是否为断头通路,若是,则时删除当前断头通路及其子节点;若否,则删除当前断头通路;以及
遍历结束后获取所述随机地图对应的简化地图。
具体的,所述地图编辑模块还包括事件逻辑器;
所述事件逻辑器,用于对各个物件ID对应的逻辑值、事件队列、事件关联队列、事件队列中的各个事件对应的条件值和结果值,以及事件关联队列中的各个事件关联队列对应的条件值和结果值进行编辑;
当一物件ID对应的逻辑值发生变化时,分别遍历所述一物件ID对应的事件队列和事件关联队列,查询是否存在事件或事件关联对应的条件值等于当前的逻辑值,若有,则触发对应的事件或事件关联,并将所述一物件ID的逻辑值修改为所述对应的事件或事件关联的结果值。
具体的,所述系统还包括数据导出模块;
所述数据导出模块,用于导出包括地图ID、地图名称、地图掩码、事件列、事件资源列、地形资源列、地图总资源列以及地图大小的地图数据包。
实施例三
本实施例对应上述实施例一和实施例二,提供一具体运用场景:
策划在全民宝藏项目中设计的4个关卡,通过H5地编工具,策划在第三关和第四关配置了复杂的事件组触发逻辑,并有大量的事件关联设置,这些编辑工作均由策划独立完成。若没有H5地编工具的支持,这些复杂的逻辑数据都需要程序硬编码在程序逻辑里,这种方式即不利于策划编辑调试,也不利于程序的代码维护。一旦策划想要新添加一个事件组或者事件关联组,都需要程序更改项目源代码。采用H5地编工具后,对于程序来说,地图事件只是简单的数据集,独立于项目基础的逻辑代码,对地图事件的编辑也仅仅对数据的增删改查。并不影响程序逻辑。这就保证了策划编辑的灵活性的同时也保证了程序代码的稳定性。
策划在编辑好这些复杂的数据集后,使用H5地编工具的数据导出功能,即可把地编数据集导出成json文件。这些json文件在网页编程是通用数据集,任何一个H5项目都可以适配。程序只需采用通用方法即可解析数据。并通过地图重构函数,即可在网页中还原策划编辑的地图。
全民宝藏项目在未采用本发明的技术方案时,一个关卡的设计,需要程序构建底层数据结构,支持策划的关卡设计。由于是硬编码,美术和策划都无法实时预览关卡结构,需要三方协商在纸面上敲定相关数据后,由程序硬编码到项目中,一个月只设计出一个关卡内容。且关卡可玩性低,内容不丰富,难于维护。在采用本发明的技术方案后,美术只需要周期性地维护场景物件的更新工作,而程序只需要负责将相关数据的导入到工程项目中,即可重现设计场景。策划工作不再涉及繁杂的数据维护和逻辑业务,而是只需专注于关卡玩法设计上,大大提高了策划的工作效率。一周时间就完成了5个关卡的设计工作。实践证明,本发明的技术方案大大减轻了美术,策划和程序的工作耦合度,提高了工作效率。
综上所述,本发明提供的地图可视化编辑方法及其系统,大大减轻了美术,策划和程序的工作耦合度,提高了工作效率;并且具备可移植性。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种地图可视化编辑方法,其特征在于,包括:
地图编辑模块实时遍历物件维护模块中的物件表,判断所述物件表是否新增物件ID,所述物件表的表字段包括物件ID和物件资源路径;
若是,则依据新增物件ID对应的物件资源路径,加载并显示新增的物件;
地图编辑模块接收对应所显示物件中的至少一个目标物件的操作指令,所述操作指令包括选中及其与移动、旋转、缩放、替换和删除中至少一个的组合;
所述方法还包括:
地图编辑模块通过事件编辑器对各个物件ID对应的逻辑值、事件队列、事件关联队列、事件队列中的各个事件对应的条件值和结果值,以及事件关联队列中的各个事件关联队列对应的条件值和结果值进行编辑;
当一物件ID对应的逻辑值发生变化时,分别遍历所述一物件ID对应的事件队列和事件关联队列,查询是否存在事件或事件关联对应的条件值等于当前的逻辑值,若有,则触发对应的事件或事件关联,并将所述一物件ID的逻辑值修改为所述对应的事件或事件关联的结果值。
2.如权利要求1所述的地图可视化编辑方法,其特征在于,还包括:
地图编辑模块接收包括至少两个预设区域的地图;
对应各个预设区域,分别构建连通队列;
以一预设区域为起点,依据各个连通队列递归构建地图连通树;
依据预设的通路随机因子,在地图连通树中随机插入通路;
依据预设的房间数量,在连通树节点上随机创建房间,生成一随机地图。
3.如权利要求2所述的地图可视化编辑方法,其特征在于,还包括:
遍历所述随机地图,获取其中四个方向均只与另一个通路相连的断头通路;
遍历各个断头通路,判断当前断头通路的子节点是否为断头通路,若是,则时删除当前断头通路及其子节点;若否,则删除当前断头通路;
遍历结束后获取所述随机地图对应的简化地图。
4.如权利要求3所述的地图可视化编辑方法,其特征在于,所述方法还包括:
数据导出模块导出包括地图ID、地图名称、地图掩码、事件列、事件资源列、地形资源列、地图总资源列以及地图大小的地图数据包。
5.一种地图可视化编辑系统,其特征在于,包括物件维护模块和地图编辑模块,所述地图编辑模块包括基础编辑器;
所述物件维护模块,用于生成并更新物件表;
所述基础编辑器,用于实时遍历物件维护模块中的物件表,判断所述物件表是否新增物件ID,所述物件表的表字段包括物件ID和物件资源路径;若是,则依据新增物件ID对应的物件资源路径,加载并显示新增的物件;以及
接收对应所显示物件中的至少一个目标物件的操作指令,所述操作指令包括选中及其与移动、旋转、缩放、替换和删除中至少一个的组合;
所述地图编辑模块包括事件编辑器;
所述事件编辑器,用于对各个物件ID对应的逻辑值、事件队列、事件关联队列、事件队列中的各个事件对应的条件值和结果值,以及事件关联队列中的各个事件关联队列对应的条件值和结果值进行编辑;
当一物件ID对应的逻辑值发生变化时,分别遍历所述一物件ID对应的事件队列和事件关联队列,查询是否存在事件或事件关联对应的条件值等于当前的逻辑值,若有,则触发对应的事件或事件关联,并将所述一物件ID的逻辑值修改为所述对应的事件或事件关联的结果值。
6.如权利要求5所述的地图可视化编辑系统,其特征在于,所述地图编辑模块包括随机地图生成器;
所述随机地图生成器,用于接收包括至少两个预设区域的地图;以及
对应各个预设区域,分别构建连通队列;以及
以一预设区域为起点,依据各个连通队列递归构建地图连通树;以及
依据预设的通路随机因子,在地图连通树中随机插入通路;以及
依据预设的房间数量,在连通树节点上随机创建房间,生成一随机地图。
7.如权利要求6所述的地图可视化编辑系统,其特征在于,所述随机地图生成器,还用于遍历所述随机地图,获取其中四个方向均只与另一个通路相连的断头通路;以及
遍历各个断头通路,判断当前断头通路的子节点是否为断头通路,若是,则时删除当前断头通路及其子节点;若否,则删除当前断头通路;以及
遍历结束后获取所述随机地图对应的简化地图。
8.如权利要求7所述的地图可视化编辑系统,其特征在于,所述系统还包括数据导出模块;
所述数据导出模块,用于导出包括地图ID、地图名称、地图掩码、事件列、事件资源列、地形资源列、地图总资源列以及地图大小的地图数据包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910039341.2A CN109821242B (zh) | 2019-01-16 | 2019-01-16 | 地图可视化编辑方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910039341.2A CN109821242B (zh) | 2019-01-16 | 2019-01-16 | 地图可视化编辑方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109821242A CN109821242A (zh) | 2019-05-31 |
CN109821242B true CN109821242B (zh) | 2022-04-01 |
Family
ID=66860542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910039341.2A Active CN109821242B (zh) | 2019-01-16 | 2019-01-16 | 地图可视化编辑方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109821242B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110674544A (zh) * | 2019-08-22 | 2020-01-10 | 广东东方思维科技有限公司 | 一种高速公路现场勘验图的制作方法 |
CN111617483A (zh) * | 2020-06-04 | 2020-09-04 | 珠海金山网络游戏科技有限公司 | 一种地图编辑方法及装置 |
CN112100531B (zh) * | 2020-09-22 | 2024-05-28 | 深圳市火星人互动娱乐有限公司 | 一种基于CocosCreator地图编辑与生成方法 |
CN112270833B (zh) * | 2020-10-27 | 2021-11-23 | 智慧足迹数据科技有限公司 | 一种轨迹拟合方法、装置、电子设备和存储介质 |
CN112667759B (zh) * | 2020-12-21 | 2024-03-22 | 上海云思智慧信息技术有限公司 | 基于可视化地图的空间管理方法、管理系统及电子设备 |
CN112774192A (zh) * | 2021-01-27 | 2021-05-11 | 网易(杭州)网络有限公司 | 游戏场景跳转方法、装置、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102194043A (zh) * | 2010-03-15 | 2011-09-21 | 北京乐升科技有限公司 | 地图图像与虚拟地图的产生方法及虚拟地图产生器 |
CN103914470A (zh) * | 2012-12-31 | 2014-07-09 | 高德软件有限公司 | 一种三维电子地图信息管理方法及系统 |
CN104063240A (zh) * | 2013-05-20 | 2014-09-24 | 腾讯科技(深圳)有限公司 | 一种地图显示方法和装置 |
CN105597318A (zh) * | 2015-12-25 | 2016-05-25 | 珠海金山网络游戏科技有限公司 | 一种自动生成随机游戏场景的方法、系统和装置 |
JP2016158839A (ja) * | 2015-02-27 | 2016-09-05 | 浮田建設株式会社 | ゲーム編集装置及びその制御方法、ゲーム装置及びその制御方法、並びにコンピュータ・プログラム |
CN107544972A (zh) * | 2016-06-23 | 2018-01-05 | 腾讯科技(深圳)有限公司 | 地图编辑方法和装置 |
CN108939541A (zh) * | 2018-07-24 | 2018-12-07 | 合肥爱玩动漫有限公司 | 一种游戏中通过随机数点竞争特殊场景的方法 |
-
2019
- 2019-01-16 CN CN201910039341.2A patent/CN109821242B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102194043A (zh) * | 2010-03-15 | 2011-09-21 | 北京乐升科技有限公司 | 地图图像与虚拟地图的产生方法及虚拟地图产生器 |
CN103914470A (zh) * | 2012-12-31 | 2014-07-09 | 高德软件有限公司 | 一种三维电子地图信息管理方法及系统 |
CN104063240A (zh) * | 2013-05-20 | 2014-09-24 | 腾讯科技(深圳)有限公司 | 一种地图显示方法和装置 |
JP2016158839A (ja) * | 2015-02-27 | 2016-09-05 | 浮田建設株式会社 | ゲーム編集装置及びその制御方法、ゲーム装置及びその制御方法、並びにコンピュータ・プログラム |
CN105597318A (zh) * | 2015-12-25 | 2016-05-25 | 珠海金山网络游戏科技有限公司 | 一种自动生成随机游戏场景的方法、系统和装置 |
CN107544972A (zh) * | 2016-06-23 | 2018-01-05 | 腾讯科技(深圳)有限公司 | 地图编辑方法和装置 |
CN108939541A (zh) * | 2018-07-24 | 2018-12-07 | 合肥爱玩动漫有限公司 | 一种游戏中通过随机数点竞争特殊场景的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109821242A (zh) | 2019-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109821242B (zh) | 地图可视化编辑方法及其系统 | |
JP6262874B2 (ja) | データベース実現方法 | |
Brinkhoff | Generating traffic data | |
US20140081613A1 (en) | Method, system and computer readable medium for scenario mangement of dynamic, three-dimensional geological interpretation and modeling | |
CN103853820A (zh) | 一种数据处理方法及系统 | |
CN101231642A (zh) | 时空数据库管理方法及其系统 | |
CN106104592A (zh) | 映射带键实体的属性 | |
CN103106188A (zh) | 数据模型的图形化分析系统和图形化分析方法 | |
CN103530407B (zh) | 一种富文本文档的生成方法与装置 | |
CN106708941B (zh) | 电网多任务在线协同编辑方法 | |
CN104573915A (zh) | 高速列车产品结构树构建方法和装置 | |
CN102855332A (zh) | 一种基于图形数据库的图形配置管理数据库 | |
CN112463149B (zh) | 一种面向软件定义卫星的可复用代码库构建方法与装置 | |
CN106951453A (zh) | 一种快速更新和数据共享的地理实体编码方法 | |
EP2220574B1 (en) | System and method for editing cartographic data | |
CN105956163A (zh) | 图形数据库的管理方法和装置 | |
CN114281509A (zh) | 一种基于场景描述的航天器多用户协同任务规划系统 | |
CN106649776A (zh) | 一种半自动化综合矢量多边形的方法 | |
CN111475602B (zh) | 多版本知识图谱的存储方法、装置、存储介质及电子设备 | |
CN101814064B (zh) | 报表模板的创建方法、报表生成方法及报表系统 | |
CN101937455A (zh) | 基于无限分层和信息遗传实现多维分类集群的创建方法 | |
CN113505184B (zh) | 一种系统间信息关系图的自动生成方法及存储介质 | |
KR20130110691A (ko) | 주소부여 자동 생성시스템 | |
CN111984680A (zh) | 基于Hive分区表实现物化视图性能优化的方法及系统 | |
Song et al. | A spatio-temporal cadastral data model based on space-time composite model |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |