首页 / 专利库 / 电脑图像 / 像素 / 超大地图的可动态修改的寻路导航方法和装置

超大地图的可动态修改的寻路导航方法和装置

阅读:1026发布:2020-06-17

专利汇可以提供超大地图的可动态修改的寻路导航方法和装置专利检索,专利查询,专利分析的服务。并且本 发明 提供了一种超大地图的可动态 修改 的寻路导航方法和装置,涉及 移动通信终端 游戏应用领域;通过建立目标对象的起点和目标三 角 形之间的三角形导航序列;将三角形导航序列光栅化,并进行四叉树切割,形成四叉树结构的 节点 ;基于起点和目标三角形,在四叉树结构的节点中确定导航节点序列;控制目标对象基于导航节点序列移动,解决了超大地图中寻路导航生成数据量过大的问题;通过将动态障碍物的投影光栅化,并设置新的四叉树结构的节点,重新确定导航节点序列,实现了降低内存占用空间,以及在运行时动态修改导航的有益效果,使游戏操作更方便、体验更真实。,下面是超大地图的可动态修改的寻路导航方法和装置专利的具体信息内容。

1.一种超大地图的可动态修改的寻路导航方法,其特征在于,应用于游戏终端,所述方法包括:
确定目标对象的起点和目标三形之间的三角形导航序列;
将所述三角形导航序列光栅化,并进行四叉树切割,形成四叉树结构的节点
基于所述起点和所述目标三角形,在所述四叉树结构的节点中,确定导航节点序列;
控制所述目标对象基于所述导航节点序列移动。
2.根据权利要求1所述的超大地图的可动态修改的寻路导航方法,其特征在于,还包括:
当导航节点序列中出现动态障碍物时,将所述动态障碍物的投影光栅化;
将光栅化的投影与所述导航节点序列相交,并将与所述动态障碍物相交且不可走的导航节点设置为不可走,以及将与所述动态障碍物相交且可走的导航节点的可走部分进行四叉树切割,得到新的四叉树结构的节点;
基于所述新的四叉树结构的节点重新确定导航节点序列;
控制所述目标对象基于重新确定的所述导航节点序列移动。
3.根据权利要求2所述的超大地图的可动态修改的寻路导航方法,其特征在于,将与所述动态障碍物相交且可走的导航节点的可走部分进行四叉树切割,得到新的四叉树结构的节点,包括:
将与所述动态障碍物相交且可走的导航节点的可走部分进行四叉树切割,得到新的节点;
基于所述新的节点对所述可走的导航节点的邻居节点进行合法化处理后,得到新的四叉树结构的节点。
4.根据权利要求3所述的超大地图的可动态修改的寻路导航方法,其特征在于,所述合法化处理,包括:
确定每个四叉树的叶子节点的深度和空间中的邻居叶子节点的深度的差值均小于等于2。
5.根据权利要求1所述的超大地图的可动态修改的寻路导航方法,其特征在于,所述三角形导航序列中的三角形包括地形和建筑,所述四叉树结构的节点包括建筑的节点和地形的节点。
6.根据权利要求1所述的超大地图的可动态修改的寻路导航方法,其特征在于,将所述三角形导航序列光栅化的步骤,包括:
将游戏世界根据按照预设大小的格子划分,得到地形网格;
将三角形导航序列投影到地形网格,并将覆盖的网格设置成地形属性。
7.根据权利要求6所述的超大地图的可动态修改的寻路导航方法,其特征在于,所述地形属性包括:建筑与所述地形网格的连接处的连接标记。
8.一种超大地图的可动态修改的寻路导航装置,其特征在于,包括:
导航序列获取模,用于确定目标对象的起点和目标三角形之间的三角形导航序列;
导航序列处理模块,用于将所述三角形导航序列光栅化,并进行四叉树切割,形成四叉树结构的节点;当导航节点序列中出现动态障碍物时,用于将所述动态障碍物的投影光栅化;
导航节点序列生成模块,用于确定导航节点序列;
控制移动模块,用于控制所述目标对象基于所述导航节点序列移动。
9.根据权利要求8所述的超大地图的可动态修改的寻路导航装置,其特征在于,还包括:
动态导航节点设置模块,用于将光栅化的投影与所述导航节点序列相交,并将与所述动态障碍物相交且不可走的导航节点设置为不可走,以及将与所述动态障碍物相交且可走的导航节点的可走部分进行四叉树切割,得到新的四叉树结构的节点。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行所述权利要求1至7任一所述的方法。

说明书全文

超大地图的可动态修改的寻路导航方法和装置

技术领域

[0001] 本发明涉及移动通信终端游戏应用领域,尤其是一种超大地图的可动态修改的寻路导航方法和装置。

背景技术

[0002] 在三维大型多人在线色扮演游戏(MassiveMultiplayer Online Role-PlayingGame,MMORPG)中,经常需要为世界生成寻路导航,方便非玩家扮演的角色(Non-Player Character,NPC)寻路,移动到特定位置。通常游戏会在离线时生成导航数据,当游戏运行时,使用特定算法快速寻路。
[0003] 目前常用的导航生成工具是重组导航RecastNavigation,是现有的导航生成工具,使用邻接的凸多边形集合描述一个3D场景,可以导入物理模型生成导航。Recast Navigation生成的寻路节点由dtPoly构成,每个dtPoly需要保存多边形的坐标,其中一个坐标需要3个浮点型数据类型float存储。当Recast Navigation应用于超大地图(如,32768*32768米)时,导航生成的数据一般会超过2G,会占用超大的内存空间。

发明内容

[0004] 有鉴于此,本发明的目的在于提供一种超大地图的可动态修改的寻路导航方法和装置,以解决现有技术中存在的问题。
[0005] 第一方面,本实施例提供了一种超大地图的可动态修改的寻路导航方法,包括:
[0006] 确定目标对象的起点和目标三角形之间的三角形导航序列;
[0007] 将所述三角形导航序列光栅化,并进行四叉树切割,形成四叉树结构的节点;
[0008] 基于所述起点和所述目标三角形,在所述四叉树结构的节点中,确定导航节点序列;
[0009] 控制所述目标对象基于所述导航节点序列移动。
[0010] 本实施例提供的超大地图的可动态修改的寻路导航方法,通过建立目标对象的起点和目标三角形之间的三角形导航序列;将三角形导航序列光栅化,并进行四叉树切割,形成四叉树结构的节点;基于起点和目标三角形,在四叉树结构的节点中确定导航节点序列;控制目标对象基于导航节点序列移动,解决了超大地图中寻路导航生成数据量过大的问题,实现了能够减少导航生成的节点数据,明显降低内存占用空间的有益效果。
[0011] 在一种可选的实施方式中,当导航节点序列中出现动态障碍物时,将所述动态障碍物的投影光栅化;
[0012] 将光栅化的投影与所述导航节点序列相交,并将与所述动态障碍物相交且不可走的导航节点设置为不可走,以及将与所述动态障碍物相交且可走的导航节点的可走部分进行四叉树切割,得到新的四叉树结构的节点;
[0013] 基于所述新的四叉树结构的节点重新确定导航节点序列;
[0014] 控制所述目标对象基于重新确定的所述导航节点序列移动。
[0015] 本可选的实施方式提供的超大地图的可动态修改的寻路导航方法,通过将动态障碍物的投影光栅化,并设置新的四叉树结构的节点,重新确定导航节点序列,实现了在运行时动态修改导航的有益效果,使游戏操作更方便、体验更真实。
[0016] 在一种可选的实施方式中,将与所述动态障碍物相交且可走的导航节点的可走部分进行四叉树切割,得到新的四叉树结构的节点,包括:
[0017] 将与所述动态障碍物相交且可走的导航节点的可走部分进行四叉树切割,得到新的节点;
[0018] 基于所述新的节点对所述可走的导航节点的邻居节点进行合法化处理后,得到新的四叉树结构的节点。
[0019] 在一种可选的实施方式中,所述合法化处理包括:
[0020] 确定每个四叉树的叶子节点的深度和空间中的邻居叶子节点的深度的差值均小于等于2。
[0021] 在一种可选的实施方式中,所述三角形导航序列中的三角形包括地形和建筑,所述四叉树结构的节点包括建筑的节点和地形的节点。
[0022] 在一种可选的实施方式中,将所述三角形导航序列光栅化的步骤,包括:
[0023] 将游戏世界根据按照预设大小的格子划分,得到地形网格;
[0024] 将三角形导航序列投影到地形网格,并将覆盖的网格设置成地形属性。
[0025] 在一种可选的实施方式中,所述地形属性包括:建筑与所述地形网格的连接处的连接标记。
[0026] 第二方面,本实施例提供了一种超大地图的可动态修改的寻路导航装置,包括:
[0027] 导航序列获取模,用于确定目标对象的起点和目标三角形之间的三角形导航序列;
[0028] 导航序列处理模块,用于将所述三角形导航序列光栅化,并进行四叉树切割,形成四叉树结构的节点;当导航节点序列中出现动态障碍物时,用于将所述动态障碍物的投影光栅化;
[0029] 导航节点序列生成模块,用于确定导航节点序列;
[0030] 控制移动模块,用于控制所述目标对象基于所述导航节点序列移动。
[0031] 在一种可选的实施方式中,本实施例提供的一种超大地图的可动态修改的寻路导航装置还包括:
[0032] 动态导航节点设置模块,用于将光栅化的投影与所述导航节点序列相交,并将与所述动态障碍物相交且不可走的导航节点设置为不可走,以及将与所述动态障碍物相交且可走的导航节点的可走部分进行四叉树切割,得到新的四叉树结构的节点。
[0033] 第三方面,本实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行所述第一方面中所述的方法。
[0034] 本实施例提供的超大地图的可动态修改的寻路导航方法和装置,通过建立目标对象的起点和目标三角形之间的三角形导航序列;将三角形导航序列光栅化,并进行四叉树切割,形成四叉树结构的节点;基于起点和目标三角形,在四叉树结构的节点中确定导航节点序列;控制目标对象基于导航节点序列移动,解决了超大地图中寻路导航生成数据量过大的问题;通过将动态障碍物的投影光栅化,并设置新的四叉树结构的节点,重新确定导航节点序列,实现了在运行时动态修改导航的有益效果,使游戏操作更方便、体验更真实。附图说明
[0035] 为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0036] 图1为本发明实施例提供的一种超大地图的可动态修改的寻路导航方法烘焙阶段流程图
[0037] 图2为本发明实施例提供的一种三角形导航序列光栅化流程图;
[0038] 图3为本发明实施例提供的一种超大地图的可动态修改的寻路导航方法动态导航阶段流程图;
[0039] 图4为本发明实施例提供的一种动态导航流程图;
[0040] 图5为本发明实施例提供的一种超大地图的可动态修改的寻路导航装置结构图。

具体实施方式

[0041] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0042] 本申请实施例中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0043] 在三维大型多人在线角色扮演游戏MMORPG中,经常需要为世界生成寻路导航,方便NPC寻路,移动到特定位置。通常游戏会在离线时生成导航数据,当游戏运行时,使用特定算法快速寻路。
[0044] 目前常用的导航生成工具是重组导航RecastNavigation,是现有的导航生成工具,使用邻接的凸多边形集合描述一个3D场景,可以导入物理模型生成导航。Recast Navigation生成的寻路节点由dtPoly构成,每个dtPoly需要保存多边形的坐标,其中一个坐标需要3个float存储。当Recast Navigation应用于超大地图(如,32768*32768米)时,导航生成的数据很大,会占用超大的内存空间。
[0045] 另一方面,Recast Navigation由多边形作为寻路节点,当一个玩家在任意位置设置障碍物,需要从导航里抠出一块区域不能寻路时,无法实现高效裁剪,即运行时无法动态修改导航。
[0046] 基于此,本申请实施例提供了一种超大地图的可动态修改的寻路导航方法和装置,以解决现有技术在超大地图生成导航所占用内存空间较大,以及无法动态修改导航的问题。为便于对本实施例进行理解,下面对本发明实施例进行详细介绍。
[0047] 结合第一方面,本申请实施例提供了一种超大地图的可动态修改的寻路导航方法,应用于游戏终端。在一种实施方式中,所述方法包括如图1所示的以下步骤:
[0048] S101,确定目标对象的起点和目标三角形之间的三角形导航序列;
[0049] S102,将三角形导航序列光栅化,并进行四叉树切割,形成四叉树结构的节点;
[0050] S103,基于起点和目标三角形,在四叉树结构的节点中,确定导航节点序列;
[0051] S104,控制目标对象基于导航节点序列移动。
[0052] 对于S101,在一些实施方式中,三角形包括地形和建筑,地形由高度场描述,建筑由多边形描述;三角形导航由导航生成工具生成,在一些实施方式中,所述导航生成工具可以是Recast Navigation。
[0053] 对于S102,光栅化是把顶点数据转换为片元的过程,用于将三维的几何图元转变为二维图像;在一些如图2所示的实施方式中,将三角形导航序列光栅化,包括以下步骤:
[0054] S201,将游戏世界根据按照预设大小的格子划分,得到地形网格;
[0055] S202,将三角形导航序列投影到地形网格,并将覆盖的网格设置成地形属性。
[0056] 对于步骤S201,在一些实施方式中,地形通过高度场进行描述;地形网格化是指将游戏世界根据1*1米大小的格子进行划分,所得到的网格成为地形网格。
[0057] 对于步骤S202,地形属性包括:建筑与地形网格的连接处的连接标记,即在建筑与地面的连接处的网格上记下连接标记,方便在地面上寻找建筑。
[0058] 进一步的,对于S102,四叉树表示一种树状数据结构,在每一个节点上有四个子区块,每个区块都有节点容量,当节点达到最大容量时,节点分裂。通过四叉树组织数据形成四叉树结构的连接节点,四叉树结构的节点包括坐标值x,y和高度值h,其中坐标值的数据类型为只占一个字节内存的字符char,高度值的数据类型为占用四字节内存的浮点型float;而原始Recast Navigation生成的多边形寻路导航的节点坐标的数据类型为三个占用四字节内存的浮点型flot数据,因此在本实施方式中,大大减少了生成寻路导航数据的大小,降低了内存。
[0059] 对于S103,在一些实施方式中,基于预设的起点和目标三角形,确定至少一个导航节点序列,当导航节点序列不止一个时,经过筛选获取最优导航节点序列。
[0060] 对于S104,在一些实施方式中,目标对象可以是游戏中非玩家扮演的角色,如人物、交通工具等;目标对象按照筛选出的最优导航节点序列完成从起点到目的地的移动。
[0061] 此外,本申请实施例提供了的超大地图的可动态修改的寻路导航方法,应用于游戏终端,还包括如图3所示的以下步骤:
[0062] S301,当导航节点序列中出现动态障碍物时,将动态障碍物的投影光栅化;
[0063] S302,将光栅化的投影与导航节点序列相交,并将与动态障碍物相交且不可走的导航节点设置为不可走;
[0064] S303,将与动态障碍物相交且可走的导航节点的可走部分进行四叉树切割,得到新的四叉树结构的节点;
[0065] S304,基于新的四叉树结构的节点重新确定导航节点序列;
[0066] S305,控制目标对象基于重新确定的导航节点序列移动。
[0067] 对于S301,在一些实施方式中,导航节点序列中出现动态障碍物的情形,如一个玩家在导航节点序列的任意位置建了个房子,或者玩家建造的房子部分阻挡了导航节点序列,这时需要实时修改导航的局部位置,设置为不可走。
[0068] 对于S303,在一些如图4所示的实施方式中,动态导航的具体步骤还包括:
[0069] S401,将与动态障碍物相交且可走的导航节点的可走部分进行四叉树切割,得到新的节点;
[0070] S402,基于所新的节点对可走的导航节点的邻居节点进行合法化处理后,得到新的四叉树结构的节点。
[0071] 对于S402,在一些实施方式中,合法化处理包括:确定每个四叉树的叶子节点的深度和空间中的邻居叶子节点的深度的差值均小于等于2,其目的是便于快速查找其空间邻居。
[0072] 结合第二方面,本申请实施例提供了一种超大地图的可动态修改的寻路导航装置,如图5所示,该装置包括:
[0073] 导航序列获取模块501,用于确定目标对象的起点和目标三角形之间的三角形导航序列;导航序列处理模块502,用于将三角形导航序列光栅化,并进行四叉树切割,形成四叉树结构的节点;当导航节点序列中出现动态障碍物时,用于将动态障碍物的投影光栅化;
[0074] 导航节点序列生成模块503,用于确定导航节点序列;控制移动模块504,用于控制目标对象基于导航节点序列移动;
[0075] 在一些实施例中,还包括动态导航节点设置模块505,用于将光栅化的投影与导航节点序列相交,并将与动态障碍物相交且不可走的导航节点设置为不可走,以及将与动态障碍物相交且可走的导航节点的可走部分进行四叉树切割,得到新的四叉树结构的节点。
[0076] 结合第三方面,对应于上述超大地图的可动态修改的寻路导航方法,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述超大地图的可动态修改的寻路导航方法的步骤。
[0077] 本申请实施例所提供的超大地图的可动态修改的寻路导航装置可以为设备上的特定硬件或者安装于设备上的软件固件等。本申请实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。
[0078] 在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0079] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0080] 另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0081] 所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述移动控制方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0082] 在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0083] 最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈