NPC跟随位置定位方法、装置及计算机设备制造方法及图纸

技术编号:37182132 阅读:8 留言:0更新日期:2023-04-20 22:47
本申请提供一种NPC跟随位置定位方法、装置及计算机设备,涉及三维游戏技术领域。本申请通过获取目标玩家角色在超出当前游戏场景的导航网格覆盖范围时的角色位置信息,确定该目标玩家角色在当前游戏场景的二维地图网格范围内的有效探测网格区域,并从当前游戏场景的所有导航网格边中提取出投影位置与有效探测网格区域至少部分重叠且角色高度数据处于对应有效边高度范围的多条期望网格边,然后得以遍历多条期望网格边地确定目标玩家角色到各条期望网格边的垂直距离最短的待定位网格边,并将待定位网格边的与目标玩家角色对应的垂直点位置作为目标NPC的期望跟随位置,从而快速实现NPC的自动跟随效果,提升游戏玩家的游戏体验。游戏体验。游戏体验。

【技术实现步骤摘要】
NPC跟随位置定位方法、装置及计算机设备


[0001]本申请涉及三维游戏
,具体而言,涉及一种NPC跟随位置定位方法、装置及计算机设备。

技术介绍

[0002]随着科学技术的不断发展,三维游戏因能适度减轻人们的精神压力并舒缓人们心情而得到大力发展。在三维游戏的运行过程中,为了给游戏玩家提供更好的玩家角色移动体验,玩家角色的移动操作已不再依赖于导航网格实现,转而利用碰撞探测方式实现,而对于三维游戏中的NPC(Non

Player Character,非玩家角色)来说,为了确保服务器和客户端一致性及防外挂需求,NPC移动操作仍然需要依赖于导航网格实现。
[0003]目前,多数三维游戏运行过程中通常存在NPC跟随游戏玩家角色移动的场景需求,而游戏玩家在操控玩家角色移动时经常会将玩家角色移动到导航网格覆盖范围以外,此时NPC需要寻路跟随到所述导航网格边缘上的最接近该玩家角色的位置,以有效维持NPC的自动跟随效果。现有确定处于导航网格覆盖范围外的玩家角色在导航网格边缘上的最接近位置的方案需要将所有导航网络边分别与该玩家角色的角色位置信息进行比对,以从众多导航网络边中确定出距离该玩家角色最近的某条导航网络边,而后才能在确定出的导航网络边上求解出距离该玩家角色最近的NPC跟随位置。但值得注意的是,这种跟随位置确定方案在导航网格边数目比较多的情况下,实质存在运算资源消耗大、跟随位置定位耗时长、跟随位置定位效率低下的问题,无法快速实现NPC的自动跟随效果,影响游戏玩家的游戏体验。

技术实现思路

[0004]有鉴于此,本申请的目的在于提供一种NPC跟随位置定位方法、装置及计算机设备,能够在玩家角色不处于导航网格覆盖范围内的情况下,直接从众多导航网格边中筛选出实质临近该玩家角色的导航网格边进行最接近点位置定位,以有效降低NPC跟随位置定位过程中的运算资源消耗和随位置定位耗时,并提升跟随位置定位效率,从而快速实现NPC的自动跟随效果,提升游戏玩家的游戏体验。
[0005]为了实现上述目的,本申请实施例采用的技术方案如下:
[0006]第一方面,本申请提供一种NPC跟随位置定位方法,所述方法包括:
[0007]获取目标玩家角色在超出当前游戏场景的导航网格覆盖范围时的角色位置信息;
[0008]根据预设的角色探测距离以及所述角色位置信息,确定所述目标玩家角色在当前游戏场景的二维地图网格范围内的有效探测网格区域,其中所述目标玩家角色投影在所述有效探测网格区域的区域中心位置处;
[0009]从所述当前游戏场景的所有导航网格边中提取出投影位置与所述有效探测网格区域至少部分重叠的多条目标网格边;
[0010]从多条目标网格边中提取所述角色位置信息的高度位置数据处于对应有效边高度范围的多条期望网格边;
[0011]遍历多条期望网格边地根据所述角色位置信息确定所述目标玩家角色到各条期望网格边的垂直距离最短的待定位网格边,并将所述待定位网格边的与所述目标玩家角色对应的垂直点位置作为跟随所述目标玩家角色的目标NPC的期望跟随位置。
[0012]在可选的实施方式中,所述根据预设的角色探测距离以及所述角色位置信息,确定所述目标玩家角色在当前游戏场景的二维地图网格范围内的有效探测网格区域的步骤,包括:
[0013]根据所述角色位置信息在当前游戏场景的二维地图网格范围内的角色投影位置以及所述角色探测距离,构建以所述角色投影位置为圆心并以所述角色探测距离为半径的圆形探测区域;
[0014]求解所述圆形探测区域的外切矩形区域,得到所述有效探测网格区域。
[0015]在可选的实施方式中,所述从所述当前游戏场景的所有导航网格边中提取出投影位置与所述有效探测网格区域至少部分重叠的多条目标网格边的步骤,包括:
[0016]遍历所述有效探测网格区域内的所有单元网格,并针对遍历到的每个单元网格,查询遍历到的该单元网格在预存的地图网格索引数据中是否存在位置对应的边线段,其中所述地图网格索引数据用于记录所有导航网格边各自分割出的所有边线段在所述二维地图网格范围内的线段投影位置与所述二维地图网格范围内的各个单元网格之间的位置对应关系;
[0017]在查询到与遍历到的该单元网格位置对应的至少一条边线段的情况下,将查询到的每条边线段所属的导航网格边作为一条所述目标网格边。
[0018]在可选的实施方式中,所述从多条目标网格边中提取所述角色位置信息的高度位置数据处于对应有效边高度范围的多条期望网格边的步骤,包括:
[0019]遍历多条目标网格边,并针对遍历到的每条目标网格边,检测所述角色位置信息的高度位置数据是否处于遍历到的该目标网格边的有效边高度范围内,其中每条目标网格边的第一边顶点和第二边顶点各自的顶点高度数据均处于对应有效边高度范围的边高度下限值和边高度上限值之间;
[0020]在检测到所述角色位置信息的高度位置数据处于遍历到的该目标网格边的有效边高度范围内的情况下,将遍历到的该目标网格边作为一条所述期望网格边。
[0021]在可选的实施方式中,所述遍历多条期望网格边地根据所述角色位置信息确定所述目标玩家角色到各条期望网格边的垂直距离最短的待定位网格边的步骤,包括:
[0022]遍历多条期望网格边,并针对遍历到的每条期望网格边,根据该期望网格边的第一边顶点和第二边顶点各自在二维地图网格范围内的顶点投影位置,以及所述角色位置信息在当前游戏场景的二维地图网格范围内的角色投影位置,确定所述角色投影位置到两个顶点投影位置之间的投影边线段的投影垂直距离及垂直投影点位置;
[0023]检测所述投影垂直距离是否小于当前的最小垂直投影距离,并在检测到所述投影垂直距离小于当前的最小垂直投影距离的情况下,按照所述投影垂直距离对当前的最小垂直投影距离进行赋值;
[0024]在遍历完所有期望网格边的情况下,将与最终的最小垂直投影距离匹配的垂直投影点位置所对应的期望网格边作为所述待定位网格边。
[0025]在可选的实施方式中,所述将所述待定位网格边的与所述目标玩家角色对应的垂
直点位置作为跟随所述目标玩家角色的目标NPC的期望跟随位置的步骤,包括:
[0026]根据所述待定位网格边的第一边顶点和第二边顶点各自的顶点位置信息,在所述待定位网格边上确定点投影位置与所述待定位网格边的垂直投影点位置重合的目标点高度数据;
[0027]将所述目标点高度数据与所述垂直投影点位置进行位置组合,得到所述待定位网格边的与所述目标玩家角色对应的垂直点位置;
[0028]检测所述垂直点位置所对应的投影垂直距离是否超过所述角色探测距离;
[0029]在检测到所述垂直点位置所对应的投影垂直距离不超过所述角色探测距离的情况下,将得到的所述垂直点位置作为所述目标NPC的期望跟随位置。
[0030]在可选的实施方式中,所述方法还包括:
[0031]针对每个游戏场景,对该游戏场景的每条导航网格边的第一边顶点和第本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种NPC跟随位置定位方法,其特征在于,所述方法包括:获取目标玩家角色在超出当前游戏场景的导航网格覆盖范围时的角色位置信息;根据预设的角色探测距离以及所述角色位置信息,确定所述目标玩家角色在当前游戏场景的二维地图网格范围内的有效探测网格区域,其中所述目标玩家角色投影在所述有效探测网格区域的区域中心位置处;从所述当前游戏场景的所有导航网格边中提取出投影位置与所述有效探测网格区域至少部分重叠的多条目标网格边;从多条目标网格边中提取所述角色位置信息的高度位置数据处于对应有效边高度范围的多条期望网格边;遍历多条期望网格边地根据所述角色位置信息确定所述目标玩家角色到各条期望网格边的垂直距离最短的待定位网格边,并将所述待定位网格边的与所述目标玩家角色对应的垂直点位置作为跟随所述目标玩家角色的目标NPC的期望跟随位置。2.根据权利要求1所述的方法,其特征在于,所述根据预设的角色探测距离以及所述角色位置信息,确定所述目标玩家角色在当前游戏场景的二维地图网格范围内的有效探测网格区域的步骤,包括:根据所述角色位置信息在当前游戏场景的二维地图网格范围内的角色投影位置以及所述角色探测距离,构建以所述角色投影位置为圆心并以所述角色探测距离为半径的圆形探测区域;求解所述圆形探测区域的外切矩形区域,得到所述有效探测网格区域。3.根据权利要求1所述的方法,其特征在于,所述从所述当前游戏场景的所有导航网格边中提取出投影位置与所述有效探测网格区域至少部分重叠的多条目标网格边的步骤,包括:遍历所述有效探测网格区域内的所有单元网格,并针对遍历到的每个单元网格,查询遍历到的该单元网格在预存的地图网格索引数据中是否存在位置对应的边线段,其中所述地图网格索引数据用于记录所有导航网格边各自分割出的所有边线段在所述二维地图网格范围内的线段投影位置与所述二维地图网格范围内的各个单元网格之间的位置对应关系;在查询到与遍历到的该单元网格位置对应的至少一条边线段的情况下,将查询到的每条边线段所属的导航网格边作为一条所述目标网格边。4.根据权利要求1所述的方法,其特征在于,所述从多条目标网格边中提取所述角色位置信息的高度位置数据处于对应有效边高度范围的多条期望网格边的步骤,包括:遍历多条目标网格边,并针对遍历到的每条目标网格边,检测所述角色位置信息的高度位置数据是否处于遍历到的该目标网格边的有效边高度范围内,其中每条目标网格边的第一边顶点和第二边顶点各自的顶点高度数据均处于对应有效边高度范围的边高度下限值和边高度上限值之间;在检测到所述角色位置信息的高度位置数据处于遍历到的该目标网格边的有效边高度范围内的情况下,将遍历到的该目标网格边作为一条所述期望网格边。5.根据权利要求1所述的方法,其特征在于,所述遍历多条期望网格边地根据所述角色位置信息确定所述目标玩家角色到各条期望网格边的垂直距离最短的待定位网格边的步
骤,包括:遍历多条期望网格边,并针对遍历到的每条期望网格边,根据该期望网格边的第一边顶点和第二边顶点各自在二维地图网格范围内的顶点投影位置,以及所述角色位置信息在当前游戏场景的二维地图网格范围内的角色投影位置,确定所述角色投影位置到两个顶点投影位置之间的投影边线段的投影垂直距离及垂直投影点位置;检测所述投影垂直距离是否小于当前的最小垂直投影距离,并在检测到所述投影垂直距离小于当前的最小垂直投影距离的情况下,按照所述投影垂直距离对当前的最小垂直投影距离进行赋值;在遍历完所有期望网格边的情况下,将与最终的最小垂直投影距离匹配的垂直投影点位置所对应的期望网格边作为所述待定位网格边。6.根据权利要求5所述...

【专利技术属性】
技术研发人员:张明阳
申请(专利权)人:北京像素软件科技股份有限公司
类型:发明
国别省市:

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

1