一种3D游戏的人物路径搜索方法技术

技术编号:17859852 阅读:60 留言:0更新日期:2018-05-05 11:36
本发明专利技术提供一种3D游戏的人物路径搜索方法,包括:将3D游戏的人物路径导航地图划分成若干三角形;以起始点所在三角形的三条边为初始三个可行搜索方向,搜索交叠搜索节点找到分支点,相邻两个分支点之间的交叠搜索节点保存为交叠搜索节点集合;若两个分支点之间有多条路径,标记最短路径;判断人物路径的大致方向;结束点与起始点间不能够直达,则依次连接起始点、分支点间的最短路径、结束点;否则起始点与结束点的连线为搜索到的人物路径。本发明专利技术在搜索过程中将整个人物路径导航地图分支开并标记,搜索相关联的分支路径进行拼凑组合成最终路径,搜索拐点时利用射线的原理,避免不必要节点的搜索与计算,减少搜索时间和内存占有量。

A method of character path search for 3D games

The invention provides a method for searching the character path of 3D games, which includes: dividing the navigation map of the character path of the 3D game into a number of triangles, and taking the three edges of the triangle at the starting point as the initial three feasible search directions, searching the overlapping search node to find the branch points, and the overlapping search nodes between the adjacent two branch points. It is saved as a set of overlapping search nodes; if there are multiple paths between two branch points, the shortest path is marked; the rough direction of the character path is judged; the end point and the starting point can not be reached directly, then the starting point, the shortest path between the branch points and the end point are connected in turn; otherwise, the connection between the starting point and the end point is searched. The character path. In the search process, the whole character path navigation map is branched and marked, and the related branch path is searched and combined into the final path, and the principle of ray is used to search the inflection point, to avoid the search and calculation of unnecessary nodes, and to reduce the search time and the amount of memory possession.

【技术实现步骤摘要】
一种3D游戏的人物路径搜索方法
本专利技术属于数字媒体
,特别涉及一种3D游戏的人物路径搜索方法。
技术介绍
随着人们对游戏的要求不断提高,3D游戏在游戏中占据了越来越重的比率。3D游戏比较2D游戏,其更显真实,而且对空间操作的随意性也较强。这意味着3D游戏对显卡的运算速度和内存要求都存在很高的要求。3D游戏中一个重要环节就是自动寻路。自动寻路采用的算法对于复杂的地形计算时间较长,占有内存较多,不仅如此,对于处理动态障碍物问题上也有相同的问题出现。这样在3D游戏中用户可能出现等待时间长,游戏不流畅等问题。影响了游戏的质量。传统3D游戏采用A*算法作为主要实现算法。A*算法是一种静态路网中求解最短路径最有效的直接搜索方法。公式表示为:f(n)=g(n)+h(n),其中f(n)是从初始点经由节点n到目标点的估价函数,g(n)是在状态空间中从初始节点到n节点的实际代价,h(n)是从n到目标节点最佳路径的估计代价。保证找到最短路径(最优解的)条件,关键在于估价函数f(n)的选取。估价值h(n)<=n到目标节点的距离实际值,这种情况下,搜索的点数多,搜索范围大,效率低。但能得到最优解。并且如果h(n)=d(n),即距离估计h(n)等于最短距离,那么搜索将严格沿着最短路径进行,此时的搜索效率是最高的。但在复杂地形下A*算法占据的内存较大,计算的时间也比较长。在3D游戏中,其物理环境采用了一种分层次的路径规划解决方案。首先,游戏环境处理层负责根据地形,静态障碍物的规划以及关卡设计信息生成导航网格图。然后,路径规划层负责选择合适的寻路算法对不同角色进行路径规划。最后,动态障碍物规避层则负责处理碰撞检测局部规避,群体角色寻路优先级等问题。在动态障碍物规避层处理碰撞问题时采用A*算法往往速度较慢,内存占据较大。因而,虽然能够达到搜索最短路径,但是在3D游戏中,玩家对于长时间的等待和画面的卡顿是很不愉悦的,因此内存占有和搜索速度是大家研究的重心。
技术实现思路
针对现有技术存在的不足,本专利技术提供一种3D游戏的人物路径搜索方法。本专利技术的技术方案是:一种3D游戏的人物路径搜索方法,包括:步骤1:将3D游戏的人物路径导航地图划分成若干三角形,并记录每个三角形的顶点和边,相邻两个三角形连接的顶点设为搜索节点;步骤2:将人物路径的起始位置作为人物路径搜索的起始点,以起始点所在三角形的三条边为搜索边,即人物路径的初始三个可行搜索方向;步骤3:分别以人物路径的初始三个可行搜索方向,搜索人物路径导航地图中的所有交叠搜索节点,找到人物路径导航地图中的所有分支点,将相邻两个分支点之间的交叠搜索节点保存为交叠搜索节点集合;所述交叠搜索节点是与当前三角形共用两个搜索节点的三角形中的另一个搜索节点;每两个交叠搜索节点组成成对交叠搜索节点;步骤4:分别以各交叠搜索节点集合为路径,确定各路径上的最短路线并记录,若出现两个分支点之间有多条路径,标记该两个分支点间最短路径;步骤5:判断人物路径的大致方向:选取人物路径的结束点,从起始点向起始点所在三角形三边中点分别做射线,以结束点向三条射线分别做垂线,垂线长度最小值对应的射线所在方向即人物路径的大致方向;步骤6:从结束点向起始点做射线,若射线经过不可行区域,则结束点与起始点间有障碍物不能够直达,从结束点往起始点搜索分支点依次连接起始点、分支点间的最短路径、结束点,得到人物路径搜索结果;否则结束点与起始点间没有障碍物能够直达,此时起始点与结束点的连线为搜索到的人物路径。步骤3所述搜索人物路径导航地图中的所有交叠搜索节点过程中,三个搜索节点都被搜索过的三角形标记为已搜索三角形;当搜索到已搜索三角形或无后续三角形时结束搜索。所述步骤3按如下步骤进行:步骤3-1:以起始点所在三角形的三条边中任一条作为搜索方向开始搜索,找到与起始点所在三角形共用两个搜索节点的三角形中的另一个搜索节点,即交叠搜索节点;步骤3-2:根据当前交叠搜索节点继续向前搜索交叠搜索节点,若根据当前交叠搜索节点能搜索到不止一个交叠搜索节点,则当前交叠搜索节点具有分支路径,执行步骤3-3;否则,当前交叠搜索节点没有分支路径;步骤3-3:标记具有分支路径的交叠搜索节点为分支点,将相邻两个分支点之间的交叠搜索节点保存为交叠搜索节点集合;并判断是否已搜索完所有交叠搜索节点:是,则执行步骤4;否则分别以分支点搜索到的各交叠搜索节点与该分支点组成的边作为继续搜索方向,返回执行步骤3-2。所述步骤4,包括:步骤4-1:建立当前路径某搜索方向中轴:从分支点开始,在当前路径中选取某搜索方向上的第一对交叠搜索节点之间连线的中点与起始点之间的连线设为中轴;步骤4-2:分别计算当前搜索方向上的成对交叠搜索节点到中轴的距离;步骤4-3:若成对交叠搜索节点到中轴的距离数值为一正一负,则成对的交叠搜索节点分别位于中轴的两侧,记录当前成对交叠搜索节点,返回步骤4-2沿当前搜索方向继续计算成对交叠搜索节点到中轴的距离;否则,成对交叠搜索节点到中轴的距离数值都是正数或都是负数,停止记录当前搜索方向上其余成对交叠搜索节点到中轴距离,此时当前成对交叠搜索节点在中轴的同侧,执行步骤4-4;步骤4-4:计算当前成对交叠搜索节点在当前中轴上的四个垂点坐标,将距离最近的两个垂点所对应的两个交叠搜索节点配对,另两个垂点所对应的两个交叠搜索节点配对,形成两对新的成对交叠搜索节点;若与原成对交叠搜索节点不同,则替换原成对交叠搜索节点,重新计算新的成对交叠搜索节点到中轴的距离,并执行步骤4-3;若与原成对交叠搜索节点相同,执行步骤4-5;步骤4-5:人物路径产生拐点,当前成对交叠搜索节点中到中轴的距离的数值的绝对值大的一个可能为拐点;步骤4-6:判断可能为拐点的交叠搜索节点与起始点之间是否存在障碍:是,则执行步骤4-7,否则,可能为拐点的交叠搜索节点设为拐点并记录,两个分支点间的拐点与两个分支点的连线即两分支点间的最短路径,执行步骤5;步骤4-7:搜索上一对交叠搜索节点中与可能为拐点的交叠搜索节点到中轴的距离数值正负号相同的交叠搜索节点,判断其是否达到起始点:是,则将搜索的该交叠搜索节点设为拐点,否则,执行步骤4-8;步骤4-8:判断上一对交叠搜索节点中与可能为拐点的交叠搜索节点到中轴的距离数值正负号相同的交叠搜索节点与起始点之间有无障碍:有,则将其设为拐点,两个分支点间的拐点与两个分支点的连线即两分支点间的最短路径,执行步骤5;否则执行步骤4-9;步骤4-9:继续向上搜索,直到出现与起始点之间没有障碍的与可能为拐点的交叠搜索节点到中轴的距离数值正负号相同的交叠搜索节点,并将其设为拐点,两个分支点间的拐点与两个分支点的连线即两分支点间的最短路径,执行步骤5。有益效果:本专利技术的3D游戏的人物路径搜索方法在搜索过程中将整个人物路径导航地图分支开并标记,待结束点确定后,搜索相关联的分支路径进行拼凑组合成最终路径,以此减少了搜索时间。搜索拐点时利用了射线的原理,避免了不必要节点的搜索与计算,减少了搜索时间和内存占有量。附图说明图1是本专利技术具体实施方式中搜索所有交叠搜索节点的示意图;图2是本专利技术具体实施方式中搜索所有交叠搜索节点过程中的标记示意图;图3是本专利技术具体实施方式中根据分支点得到路线的示意图;本文档来自技高网
...
一种3D游戏的人物路径搜索方法

【技术保护点】
一种3D游戏的人物路径搜索方法,其特征在于,包括:步骤1:将3D游戏的人物路径导航地图划分成若干三角形,并记录每个三角形的顶点和边,相邻两个三角形连接的顶点设为搜索节点;步骤2:将人物路径的起始位置作为人物路径搜索的起始点,以起始点所在三角形的三条边为人物路径的初始三个可行搜索方向;步骤3:分别以人物路径的初始三个可行搜索方向,搜索人物路径导航地图中的所有交叠搜索节点,找到人物路径导航地图中的所有分支点,将相邻两个分支点之间的交叠搜索节点保存为交叠搜索节点集合;所述交叠搜索节点是与当前三角形共用两个搜索节点的三角形中的另一个搜索节点;每两个交叠搜索节点组成成对交叠搜索节点;步骤4:分别以各交叠搜索节点集合为路径,确定各路径上的最短路线并记录,若出现两个分支点之间有多条路径,标记该两个分支点间最短路径;步骤5:判断人物路径的大致方向:选取人物路径的结束点,从起始点向起始点所在三角形三边中点分别做射线,以结束点向三条射线分别做垂线,垂线长度最小值对应的射线所在方向即人物路径的大致方向;步骤6:从结束点向起始点做射线,若射线经过不可行区域,则结束点与起始点间有障碍物不能够直达,从结束点往起始点搜索分支点依次连接起始点、分支点间的最短路径、结束点,得到人物路径搜索结果;否则结束点与起始点间没有障碍物能够直达,此时起始点与结束点的连线为搜索到的人物路径。...

【技术特征摘要】
1.一种3D游戏的人物路径搜索方法,其特征在于,包括:步骤1:将3D游戏的人物路径导航地图划分成若干三角形,并记录每个三角形的顶点和边,相邻两个三角形连接的顶点设为搜索节点;步骤2:将人物路径的起始位置作为人物路径搜索的起始点,以起始点所在三角形的三条边为人物路径的初始三个可行搜索方向;步骤3:分别以人物路径的初始三个可行搜索方向,搜索人物路径导航地图中的所有交叠搜索节点,找到人物路径导航地图中的所有分支点,将相邻两个分支点之间的交叠搜索节点保存为交叠搜索节点集合;所述交叠搜索节点是与当前三角形共用两个搜索节点的三角形中的另一个搜索节点;每两个交叠搜索节点组成成对交叠搜索节点;步骤4:分别以各交叠搜索节点集合为路径,确定各路径上的最短路线并记录,若出现两个分支点之间有多条路径,标记该两个分支点间最短路径;步骤5:判断人物路径的大致方向:选取人物路径的结束点,从起始点向起始点所在三角形三边中点分别做射线,以结束点向三条射线分别做垂线,垂线长度最小值对应的射线所在方向即人物路径的大致方向;步骤6:从结束点向起始点做射线,若射线经过不可行区域,则结束点与起始点间有障碍物不能够直达,从结束点往起始点搜索分支点依次连接起始点、分支点间的最短路径、结束点,得到人物路径搜索结果;否则结束点与起始点间没有障碍物能够直达,此时起始点与结束点的连线为搜索到的人物路径。2.根据权利要求1所述的方法,其特征在于,步骤3所述搜索人物路径导航地图中的所有交叠搜索节点过程中,三个搜索节点都被搜索过的三角形标记为已搜索三角形;当搜索到已搜索三角形或无后续三角形时结束搜索。3.根据权利要求1所述的方法,其特征在于,所述步骤3按如下步骤进行:步骤3-1:以起始点所在三角形的三条边中任一条作为搜索方向开始搜索,找到与起始点所在三角形共用两个搜索节点的三角形中的另一个搜索节点,即交叠搜索节点;步骤3-2:根据当前交叠搜索节点继续向前搜索交叠搜索节点,若根据当前交叠搜索节点能搜索到不止一个交叠搜索节点,则当前交叠搜索节点具有分支路径,执行步骤3-3;否则,当前交叠搜索节点没有分支路径;步骤3-3:标记具有分支路径的交叠搜索节点为分支点,将相邻两个分支点之间的交叠搜索节点保存为交叠搜索节点集合;并判断是否已搜索完所有交叠搜索节点:是,则执行步骤4;否则分别以分支点搜索到的各交叠...

【专利技术属性】
技术研发人员:高天寒徐嘉宝
申请(专利权)人:北京广同川临场互动科技有限公司
类型:发明
国别省市:北京,11

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

1