融合寻路网格的生成方法、装置、电子设备及介质制造方法及图纸

技术编号:36945796 阅读:49 留言:0更新日期:2023-03-22 19:07
本公开提供了一种融合寻路网格的生成方法、装置、电子设备及介质,属于导航技术领域。该方法包括:基于游戏场景中的实体对应的N组实体参数,标记体素跨度的实体属性等级和每个实体的实体等级;基于标记的体素跨度的实体属性等级,生成标记了实体属性等级的游戏场景中可行走的多级实体属性区域;简化多级实体属性区域的边缘;将边缘简化后得到的多边形重组为标记了实体属性等级的凸多边形可行走区域;基于凸多边形可行走区域,生成适配N组实体参数的实体的融合寻路网格,以使得基于各个实体的实体等级和融合寻路网格中标记了实体属性等级的凸多边形进行寻路。基于本公开实施例提供的技术方案,可以以使得寻路网格生成更佳便捷。捷。捷。

【技术实现步骤摘要】
融合寻路网格的生成方法、装置、电子设备及介质


[0001]本公开属于导航
,具体涉及一种融合寻路网格的生成方法、装置、电子设备及介质。

技术介绍

[0002]目前,导航网格(navigation mesh)主要是作为AI(Artificial Intelligence,人工智能)移动行走的数据基础,导航网格也可以称为寻路网格,是一种在复杂空间中导航寻路、标记哪些地方可以行走的多边形网格数据结构。
[0003]通常,游戏场景中可以包括多组不同实体参数的实体,一组实体参数可以包括实体的高度、半径、行走坡度以及跨越高度等,相关技术中寻路网格的生成是基于一组实体参数和场景碰撞模型生成寻路网格的。
[0004]然而,由于整个游戏中的寻路网格的生成过程都是基于一组实体参数,一方面,在游戏场景中若存在多种差异较大的实体时,需要基于多组实体参数分别生成多个不同的寻路网格,而通常寻路网格是常驻内存的,则会占用大量的内存空间;另一方面,当场景碰撞发生变化时,需要重新生成一遍所有实体对应的寻路网格,需要花费较多的时间成本进行调试和迭代。因此目前寻路网格的生成不够便捷。

技术实现思路

[0005]本公开实施例的目的是提供一种融合寻路网格的生成方法、装置、电子设备及介质,能够解决寻路网格的生成不够便捷的问题。
[0006]为了解决上述技术问题,本公开是这样实现的:
[0007]第一方面,本公开实施例提供了一种融合寻路网格的生成方法,该方法包括:基于游戏场景中的实体对应的N组实体参数,标记体素跨度的实体属性等级和每个实体的实体等级,N为大于1的整数;基于标记的体素跨度的实体属性等级,生成标记了实体属性等级的游戏场景中可行走的多级实体属性区域;简化多级实体属性区域的边缘;将边缘简化后得到的多边形重组为标记了实体属性等级的凸多边形可行走区域;基于标记了实体属性等级的凸多边形可行走区域,生成适配N组实体参数的实体的融合寻路网格,以使得基于各个实体的实体等级和融合寻路网格中标记了实体属性等级的凸多边形进行寻路。
[0008]可选地,N组实体参数包括N级实体属性阈值;基于游戏场景中的实体对应的N组实体参数,标记实体等级包括:按照实体受到的限制从小到大的顺序,对N级实体属性阈值排序;按照实体属性阈值的顺序标记实体的等级,且将第j级实体的标记位中后j

1位标记为1,1≤j≤N。
[0009]可选地,实体属性包括实体的坡度阈值和高度阈值;基于游戏场景中的实体对应的N组实体参数,标记体素跨度的实体属性等级,包括:基于体素跨度的坡度和N组实体参数中的坡度阈值,对体素跨度的坡度属性等级进行标记;基于垂直方向上相邻体素跨度间的高度差和N组实体参数中的高度阈值,对体素跨度的高度属性等级进行标记;其中,标记位
中包括坡度属性等级的标记和高度属性等级的标记;或者,基于体素跨度的坡度和N组实体参数中的坡度阈值,确定体素跨度的坡度属性等级;基于垂直方向上相邻体素跨度间的高度差和N组实体参数中的高度阈值,确定体素跨度的高度属性等级;将体素跨度的坡度属性等级和体素跨度的高度属性等级中限制高的属性等级确定为体素跨度的实体属性等级;其中,标记位中包括实体属性等级的标记。
[0010]可选地,N组实体参数包括N级实体属性阈值,第i级实体属性阈值对实体的限制,小于第i+1级实体属性阈值对实体的限制;基于游戏场景中的实体对应的N组实体参数,标记体素跨度的实体属性等级,包括:对于不满足第1级实体属性阈值的体素跨度,不进行等级标记;对于满足第N级实体属性阈值的体素跨度记为第1级体素跨度,将第1级体素跨度的标记位标记为全0;对于满足第i级实体属性阈值且不满足第i+1级实体属性阈值的体素跨度记为第i+1级体素跨度,将第i+1级体素跨度的标记位中的倒数第i

1位标记为1,将标记位中其他位标记为0,1<i<N。
[0011]可选地,实体参数包括实体半径;基于标记的体素跨度的实体属性等级,生成标记了实体属性等级的游戏场景中的可行走的多级实体属性区域之后,该方法还包括:基于目标实体参数确定对应实体在多级实体属性区域中的不可行走区域;基于目标实体参数中的实体半径,对目标实体参数对应实体的不可行走区域进行区域膨胀;其中,目标实体参数为N组实体参数中除第1级实体参数之外的任意一组实体参数,同一个不可行走区域中的每个体素跨度的实体属性标记相同。
[0012]可选地,基于目标实体参数中的实体半径,对目标实体参数对应的实体的不可行走区域进行区域膨胀,包括:若目标实体参数中的实体半径大于单位体素宽度,则对目标实体参数对应的实体不可行走的区域进行区域膨胀。
[0013]可选地,对目标实体参数对应的实体不可行走的区域进行区域膨胀,包括:若对实体半径/体素宽度向上取整为M,则针对目标实体参数对应实体的每个不可行走区域按照下述方式处理M次:确定第一体素跨度的8向邻居中,是否存在与第一体素跨度的实体属性等级标记不同的第一邻居体素跨度;采用第一体素跨度的实体属性等级标记第一邻居体素跨度的实体属性等级;其中,第一体素跨度为第一区域中的体素跨度,第一区域为目标实体参数对应的实体不可行走的区域中的任意一个区域。
[0014]可选地,边界体素跨度包括第一边界体素跨度和第二边界体素跨度;第一边界体素跨度指示8向中存在无法连通的邻居体素跨度的体素跨度;第二边界体素跨度指示上方无法行走的体素跨度;在第j级实体的实体半径大于单位体素宽度的情况下,该方法还包括:在j=1的情况下,将到第一边界体素跨度或第二边界体素跨度的距离小于第j级实体的实体半径的体素跨度标记为不可通行;在j≠1的情况下,将允许第1级实体行走,且到第一边界体素跨度的距离小于第j级实体的实体半径的体素跨度标记为第j级体素跨度;在j≠1的情况下,若第二体素跨度到第二边界体素跨度的距离小于第j级实体的实体半径,遍历第二体素跨度的8向邻居,确定是否存在与第二体素跨度的实体属性等级标记不同的第二邻居体素跨度;采用第二体素跨度的实体属性等级标记第二邻居体素跨度的实体属性等级;其中,第二体素跨度为第j级实体无法行走的区域中的体素跨度。
[0015]可选地,基于标记的体素跨度的实体属性等级,生成标记了实体属性等级的游戏场景中可行走的多级实体属性区域,包括:针对已标记实体属性等级的每个等级的体素跨
度,分别按照下述第k级体素跨度的处理方式进行区域划分,以得到多级实体属性区域:若第三体素跨度可连通的邻居体素跨度的数量小于8,且第三体素跨度和第三体素跨度的邻居体素跨度的实体属性等级标记不同,则将第三体素跨度标记为边界,第三体素跨度为第k级体素跨度中的任意一个体素跨度;确定第k级体素跨度中每个体素跨度到边界的距离,生成距离场;将第k级体素跨度基于距离场划分为不同区域,并标记各个区域的实体属性等级;其中,同一个区域的体素跨度的实体属性等级相同,且区域内体素跨度实体属性等级等于区域的实体属性等级。
[0016]可选地,将第k级体素跨度基本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种融合寻路网格的生成方法,其特征在于,所述方法包括:基于游戏场景中的实体对应的N组实体参数,标记体素跨度的实体属性等级和每个实体的实体等级,N为大于1的整数;基于标记的体素跨度的实体属性等级,生成标记了实体属性等级的所述游戏场景中可行走的多级实体属性区域;简化所述多级实体属性区域的边缘;将边缘简化后得到的多边形重组为标记了实体属性等级的凸多边形可行走区域;基于标记了实体属性等级的凸多边形可行走区域,生成适配所述N组实体参数的实体的融合寻路网格,以使得基于各个实体的实体等级和所述融合寻路网格中标记了实体属性等级的凸多边形进行寻路。2.根据权利要求1所述的方法,其特征在于,所述N组实体参数包括N级实体属性阈值;所述基于游戏场景中的实体对应的N组实体参数,标记实体等级,包括:按照实体受到的限制从小到大的顺序,对所述N级实体属性阈值排序;按照实体属性阈值的顺序标记实体的等级,且将第j级实体的标记位中后j

1位标记为1,1≤j≤N。3.根据权利要求1所述的方法,其特征在于,所述实体属性包括实体的坡度阈值和高度阈值;所述基于游戏场景中的实体对应的N组实体参数,标记体素跨度的实体属性等级,包括:基于体素跨度的坡度和所述N组实体参数中的坡度阈值,对体素跨度的坡度属性等级进行标记;基于垂直方向上相邻体素跨度间的高度差和所述N组实体参数中的高度阈值,对体素跨度的高度属性等级进行标记;其中,标记位中包括坡度属性等级的标记和高度属性等级的标记;或者,基于体素跨度的坡度和所述N组实体参数中的坡度阈值,确定体素跨度的坡度属性等级;基于垂直方向上相邻体素跨度间的高度差和所述N组实体参数中的高度阈值,确定体素跨度的高度属性等级;将所述体素跨度的坡度属性等级和所述体素跨度的高度属性等级中限制高的属性等级确定为体素跨度的实体属性等级;其中,标记位中包括实体属性等级的标记。4.根据权利要求1至3任一项所述的方法,其特征在于,所述N组实体参数包括N级实体属性阈值,第i级实体属性阈值对实体的限制,小于第i+1级实体属性阈值对实体的限制;所述基于游戏场景中的实体对应的N组实体参数,标记体素跨度的实体属性等级,包括:对于不满足第1级实体属性阈值的体素跨度,不进行等级标记;对于满足第N级实体属性阈值的体素跨度记为第1级体素跨度,将第1级体素跨度的标记位标记为全0;对于满足第i级实体属性阈值且不满足第i+1级实体属性阈值的体素跨度记为第i+1级体素跨度,将第i+1级体素跨度的标记位中的倒数第i

1位标记为1,将标记位中其他位标记为0,1<i<N。5.根据权利要求4所述的方法,其特征在于,所述实体参数包括实体半径;所述基于标
记的体素跨度的实体属性等级,生成标记了实体属性等级的所述游戏场景中的可行走的多级实体属性区域之后,所述方法还包括:基于目标实体参数确定对应实体在所述多级实体属性区域中的不可行走区域;基于所述目标实体参数中的实体半径,对所述目标实体参数对应实体的不可行走区域进行区域膨胀;其中,所述目标实体参数为所述N组实体参数中除第1级实体参数之外的任意一组实体参数,同一个不可行走区域中的每个体素跨度的实体属性标记相同。6.根据权利要求5所述的方法,其特征在于,所述基于所述目标实体参数中的实体半径,对所述目标实体参数对应的实体的不可行走区域进行区域膨胀,包括:若所述目标实体参数中的实体半径大于单位体素宽度,则对所述目标实体参数对应的实体不可行走的区域进行区域膨胀。7.根据权利要求6所述的方法,其特征在于,所述对所述目标实体参数对应的实体不可行走的区域进行区域膨胀,包括:若对实体半径/体素宽度向上取整为M,则针对所述目标实体参数对应实体的每个不可行走区域按照下述方式处理M次:确定第一体素跨度的8向邻居中,是否存在与所述第一体素跨度的实体属性等级标记不同的第一邻居体素跨度;采用所述第一体素跨度的实体属性等级标记所述第一邻居体素跨度的实体属性等级;其中,所述第一体素跨度为第一区域中的体素跨度,所述第一区域为所述目标实体参数对应的实体不可行走的区域中的任意一个区域。8.根据权利要求4所述的方法,其特征在于,边界体素跨度包括第一边界体素跨度和第二边界体素跨度;所述第一边界体素跨度指示8向中存在无法连通的邻居体素跨度的体素跨度;所述第二边界体素跨度指示上方无法行走的体素跨度;在第j级实体的实体半径大于单位体素宽度的情况下,所述方法还包括:在j=1的情况下,将到所述第一边界体素跨度或所述第二边界体素跨度的距离小于所述第j级实体的实体半径的体素跨度标记为不可通行;在j≠1的情况下,将允许第1级实体行走,且到所述第一边界体素跨度的距离小于所述第j级实体的实体半径的体素跨度标记为第j级体素跨度;在j≠1的情况下,若第二体素跨度到所述第二边界体素跨度的距离小于所述第j级实体的实体半径,遍历所述第二体素跨度的8向邻居,确定是否存在与所述第二体素跨度的实体属性等级标记不同的第二邻居体素跨度;采用所述第二体素跨度的实体属性等级标记所述第二邻居体素跨度的实体属性等级;其中,所述第二体素跨度为所述第j级实体无法行走的区域中的体素跨度。9.根据权利要求4所述的方法,其特征在于,所述基于标记的体素跨度的实体属性等级,生成标记了实体属性等级的所述游戏场景中可行走的多级实体属性区域,包括:针对已标记实体属性等级的每个等级的体素...

【专利技术属性】
技术研发人员:张驰
申请(专利权)人:网易杭州网络有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1