【技术实现步骤摘要】
对非玩家角色寻路的方法、装置、存储介质及计算机设备
本申请涉及计算机
,尤其涉及电子游戏领域,具体涉及一种对非玩家角色寻路的方法、装置、存储介质及计算机设备。
技术介绍
在大型多场景多人在线游戏中,为了充实丰富游戏的玩法和剧情内容,通常将大量非玩家角色(Non-PlayerCharacter,NPC)部署于场景中。游戏的玩家可以与NPC进行互动,例如,玩家通过点击NPC进行玩法的开启或推动任务剧情,因此,NPC通常被认为是大型多场景多人在线游戏必不可少的部分。若玩家要与NPC互动,首先要能够找到目标NPC,而在游戏场景中,玩家找寻目标NPC的过程即为对NPC的寻路。目前,对非玩家角色寻路的方法主要是依靠玩家从当前位置开始,在游戏商提供的地图上对位置、角色或/和路径等进行点击,一步一步地接近目标NPC,直至找到目标NPC。上述方法虽然最终能够寻找到目标NPC,然而,由于大型多场景多人游戏中的NPC角色较多,场景复杂,现有对非玩家角色寻路的方法效率非常低,尤其对于一些新手玩家,极其耗费他们的时间。< ...
【技术保护点】
1.一种对非玩家角色寻路的方法,其特征在于,包括:/n接收对目标非玩家角色NPC进行寻路的寻路请求,所述寻路请求包括所述目标NPC的索引信息;/n根据所述目标NPC的索引信息,获取所述目标NPC在游戏场景中的位置;/n根据虚拟角色当前所在游戏场景中的位置与所述目标NPC在游戏场景中的位置,选用预先生成的连通图作为对所述目标NPC进行寻路的网格化地图;/n基于所述网格化地图,对所述目标NPC寻路。/n
【技术特征摘要】
1.一种对非玩家角色寻路的方法,其特征在于,包括:
接收对目标非玩家角色NPC进行寻路的寻路请求,所述寻路请求包括所述目标NPC的索引信息;
根据所述目标NPC的索引信息,获取所述目标NPC在游戏场景中的位置;
根据虚拟角色当前所在游戏场景中的位置与所述目标NPC在游戏场景中的位置,选用预先生成的连通图作为对所述目标NPC进行寻路的网格化地图;
基于所述网格化地图,对所述目标NPC寻路。
2.如权利要求1所述对非玩家角色寻路的方法,其特征在于,所述目标NPC的索引信息包括目标NPC的类型,所述方法还包括:
创建哈希表,所述哈希表以每个NPC的类型为关键码构成一键-值对的键、以所述每个NPC在游戏场景中的位置构成所述键-值对的值来存储所述每个NPC在游戏场景中的位置。
3.如权利要求2所述对非玩家角色寻路的方法,其特征在于,所述创建哈希表,包括:
基于初始哈希函数对X个所述关键码分别进行哈希运算得到所述X个关键码各个关键码对应的第一哈希值;
根据存在冲突的第一哈希值的关键码的数量Y和所述关键码的数量X,确定所述关键码的第一哈希值的冲突概率p,所述X和Y为正整数;
根据所述第一哈希值的冲突概率修改所述初始哈希函数,得到确定哈希函数;
基于所述确定哈希函数分别对所述X个关键码进行哈希运算得到所述X个关键码各个关键码对应的第二哈希值;
根据所述第二哈希值构建红黑树,并基于所述红黑树构建对应的哈希表。
4.如权利要求3所述对非玩家角色寻路的方法,其特征在于,所述根据所述目标NPC的索引信息,获取所述目标NPC在游戏场景中的位置,包括:
以所述目标NPC的类型为关键码,采用所述第二哈希值在所述哈希表上进行索引;
若命中所述哈希表,则从所述第二哈希值对应的存储单元读取所述目标NPC在游戏场景中的位置。
5.如权利要求2所述对非玩家角色寻路的方法,其特征在于,所述创建哈希表包括:
从内存划出第一表项存储空间,所述第一表项存储空间包括若干地址空间;
构建至少两个哈希函数,并利用所述至少两个哈希函数对所述关键码进行哈希计算,得到每个所述关键码对应的至少两个哈希值;
比较所述至少两个哈希值对应的地址空间的空满程度,将待存储信息存储至所述地址空间中存储空间最富余的地址空间;
若所述至少两个哈希值对应的地址空间均已存满,则将所述待存储信息存储至第二表项存储空间。
6.如权利要求5所述对非玩家角色寻路的方法,其特征在于,所述根据所述目标NPC的索引信息,获取所述目标NPC在游戏场景中的位置,包括:
以所述目标NPC的类型为关键码,采用所述至少两个哈希函数对所述关键码并行进行哈希计算得到至少两个哈希值;
以所述至少两个哈希值在所述哈希表上进行索引;
若命中所述哈希表,则从命中所述哈希表时所采用的哈希值对应的存储单元读取所述目标NPC在游戏场景中的位置。
7.如权利要求1所述对非玩家角色寻路的方法,其特征在于,所述方法还包括:
采用主干道配置方式和/或网格导航算法,生成所述连通图。
8.如权利要求7所述对非玩家角色寻路的方法,其特征在于,所述采用主干道配置方式和/或网格导航算法,生成所述连通图,包括:
从所述游戏场景所包含的区域生成多个凸多边形的网格;
采用碰撞检测算法检测所述凸多边形的网格中是否存在能够连通的网格;
将所述凸多边形的网格中符合预设条件的网格配置为主干道中能够连通的网格;
记录所述网格中能够连通的网格的连通信息,形成第一连通图或第二连通图,所述连通信息包括可连通网格中任意一个网格的位置信息、所述可连通网格中任意一个网格所在游戏场景的标识以及所述可连通网格中任意一个网格的邻居网格的标识。
9.如权利要求8所述对非玩家角色寻路的方法,其特征在于,所述从所述游戏场景所包含的区域生成多个凸多边形的网格,包括:
遍历所述区域的轮廓的所有边,以每组三个点为三角形的顶点构成一个有效内部三角形块;
将多个所述有效内部三角形块尽可能合并成一个最大面积的凸多边形,直至所有所述有效内部三角形块都合并成多个凸多边形的网格。
10.如权利要求8所述对非玩家角色寻路的方法,其特征在于,所述采用碰撞检测算法检测所述网格中是否存在能够连通的网格,包括:
将碰撞检测模型从当前所在网格的表面抬升,使其距离所述当前网格的表面至预设高度;
向所述碰撞检测模型当前所在网格的任意一个邻居网格移动所述已抬升碰撞检测模型;
判断所述已抬升碰撞检测模型是否与所述邻居网格发生碰撞;
若所述已抬升碰撞检测模型与所述邻居网格发生碰撞,则确定所述碰撞检测...
【专利技术属性】
技术研发人员:杨建辉,梁宇劲,
申请(专利权)人:网易杭州网络有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。