CN109999498A - 一种虚拟对象的寻路方法和装置 - Google Patents
一种虚拟对象的寻路方法和装置 Download PDFInfo
- Publication number
- CN109999498A CN109999498A CN201910407818.8A CN201910407818A CN109999498A CN 109999498 A CN109999498 A CN 109999498A CN 201910407818 A CN201910407818 A CN 201910407818A CN 109999498 A CN109999498 A CN 109999498A
- Authority
- CN
- China
- Prior art keywords
- point
- intermediate transit
- virtual objects
- boundary
- transit point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/56—Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明实施例提供了一种虚拟对象的寻路方法及装置,通过获取虚拟对象当前的起始点以及第一目标点,根据起始点以及第一目标点,判断沿虚拟对象移动方向的预设直线距离内,是否存在障碍物,当存在障碍物时,计算针对障碍物的第一中转点,虚拟对象移动至第一中转点,并从第一中转点直线移动至第一目标点,从而通过计算中转点,使得虚拟对象在寻路过程中,能够做到局部最短寻路,进而实现了全局路线最短,提高了寻路效率。
Description
技术领域
本发明涉及游戏技术领域,特别是涉及一种虚拟对象的寻路方法和一种虚拟对象的寻路装置。
背景技术
自动寻路是网络游戏中一项智能功能。在无障碍物阻挡的情况下,从起始点到第一目标点,两点之间的线段最短。然而在实际中,各种形式的障碍物是十分常见的,由于障碍物的存在,游戏中的虚拟对象无法简单地直线前行,需要进行相应的避障处理。
常见的寻路方式包括迪杰斯特拉算法和A星搜索算法,其中,迪杰斯特拉算法是由荷兰计算机科学家狄克斯特拉于1959年提出的,因此又叫狄克斯特拉算法,它是计算从一个顶点到其余各顶点的最短路径算法,解决的是图中最短路径问题,迪杰斯特拉算法主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。A星搜索算法是比较流行的启发式搜索算法之一,被广泛应用于路径优化领域。它的独特之处是在检查最短路径中每个可能的节点时引入了全局信息,对当前节点到终点的距离做出估计,并作为评价该节点处于最短路线上的可能性的量度。
然而,上述两种方式虽然适用范围广,但是耗时长,计算效率低,且需要在虚拟对象进行移动之前做出完整的路径规划,若是在移动过程中,第一目标点出现变更,则需要重新做出完整的路径规划。此外,在部分极端场景中,上述方式中所得寻路结果往往是近似解,从而容易导致寻路结果在直观上显得不合理。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种虚拟对象的寻路方法和相应的一种虚拟对象的寻路装置。
为了解决上述问题,本发明实施例公开了一种虚拟对象的寻路方法,包括:
获取虚拟对象当前的起始点以及第一目标点;
根据所述起始点以及所述第一目标点,判断沿所述虚拟对象移动方向的预设直线距离内,是否存在障碍物;
当存在障碍物时,计算针对所述障碍物的第一中转点;
所述虚拟对象移动至所述第一中转点,并从所述第一中转点直线移动至所述第一目标点。
可选的,所述根据所述起始点以及所述第一目标点,判断沿所述虚拟对象移动方向的预设直线距离内,是否存在障碍物,包括:
判断所述起始点是否与所述第一目标点为相同位置点;
当所述起始点不为所述第一目标点,且所述虚拟对象未能从所述起始点直线移动至所述第一目标点时,获取针对所述第一目标点的第二中转点;
当所述虚拟对象从所述起始点直线移动至所述第二中转点后,判断所述预设直线距离内是否存在障碍物。
可选的,所述计算针对所述障碍物的第一中转点,包括:
采用搜索算法计算针对所述虚拟对象的各个阻碍点;
采用所述各个阻碍点,生成针对所述虚拟对象的第一阻挡区域以及针对所述第一目标点的第二阻挡区域;
判断所述第二阻挡区域是否包围所述第一目标点;
当所述第二阻挡区域未包围所述第一目标点时,根据所述第一阻挡区域计算所述第一中转点;
当所述第二阻挡区域包围所述第一目标点时,根据所述第一阻挡区域以及所述第二阻挡区域计算所述第一中转点。
可选的,所述根据所述第一阻挡区域计算所述第一中转点,包括:
采用所述第一阻挡区域,确定针对所述虚拟对象的第一阻挡边界以及第二阻挡边界;
以所述第一阻挡边界为垂线,确定第一候选中转点;
以所述第二阻挡边界为垂线,确定第二候选中转点;
从所述第一候选中转点以及所述第二候选中转点中,提取第一总距离最短的候选中转点,作为所述第一中转点;
其中,所述第一总距离为所述虚拟对象从所述起始点直线移动至候选中转点,与所述虚拟对象从候选中转点直线移动至所述第一目标点的距离之和。
可选的,所述根据所述第一阻挡区域以及所述第二阻挡区域计算所述第一中转点,包括:
采用所述第二阻挡区域,确定针对所述第一目标点的第三阻挡边界以及第四阻挡边界;
采用所述第三阻挡边界以及所述第四阻挡边界,对所述第一目标点进行调整,得到第二目标点;
采用所述第一阻挡区域,确定针对所述虚拟对象的第一阻挡边界以及第二阻挡边界;
以所述第一阻挡边界为垂线,确定第一候选中转点;
以所述第二阻挡边界为垂线,确定第二候选中转点;
从所述第一候选中转点以及所述第二候选中转点中,提取第二总距离最短的候选中转点,作为所述第一中转点;
其中,所述第二总距离为所述虚拟对象从所述起始点直线移动至候选中转点,与所述虚拟对象从候选中转点直线移动至所述第二目标点的距离之和。
可选的,所述采用所述第二阻挡边界以及所述第三阻挡边界,对所述第一目标点进行调整,得到第二目标点,包括:
从所述第三阻挡边界中,确定第一边界阻挡点;
从所述第四阻挡边界中,确定第二边界阻挡点;
将所述第一边界阻挡点以及所述第二边界阻挡点连线的中点,作为针对所述第一目标点的第二目标点。
可选的,还包括:
当不存在障碍物时,所述虚拟对象从所述中转点直线移动至所述第一目标点。
本发明实施例还公开了一种虚拟对象的寻路装置,包括:
位置点获取模块,用于获取虚拟对象当前的起始点以及第一目标点;
障碍物判断模块,用于根据所述起始点以及所述第一目标点,判断沿所述虚拟对象移动方向的预设直线距离内,是否存在障碍物;
中转点计算模块,用于当存在障碍物时,计算针对所述障碍物的第一中转点;
第一移动模块,用于所述虚拟对象移动至所述第一中转点,并从所述第一中转点直线移动至所述第一目标点。
可选的,所述障碍物判断模块包括:
位置点判断子模块,用于判断所述起始点是否与所述第一目标点为相同位置点;
中转点获取子模块,用于当所述起始点不为所述第一目标点,且所述虚拟对象未能从所述起始点直线移动至所述第一目标点时,获取针对所述第一目标点的第二中转点;
障碍物判断子模块,用于当所述虚拟对象从所述起始点直线移动至所述第二中转点后,判断所述预设直线距离内是否存在障碍物。
可选的,所述中转点计算模块包括:
阻碍点计算子模块,用于采用搜索算法计算针对所述虚拟对象的各个阻碍点;
阻挡区域生成子模块,用于采用所述各个阻碍点,生成针对所述虚拟对象的第一阻挡区域以及针对所述第一目标点的第二阻挡区域;
目标点判断子模块,用于判断所述第二阻挡区域是否包围所述第一目标点;
第一计算子模块,用于当所述第二阻挡区域未包围所述第一目标点时,根据所述第一阻挡区域计算所述第一中转点;
第二计算子模块,用于当所述第二阻挡区域包围所述第一目标点时,根据所述第一阻挡区域以及所述第二阻挡区域计算所述第一中转点。
可选的,所述第一计算子模块包括:
第一阻挡边界确定单元,用于采用所述第一阻挡区域,确定针对所述虚拟对象的第一阻挡边界以及第二阻挡边界;
候选中转点确定单元,用于以所述第一阻挡边界为垂线,确定第一候选中转点;以所述第二阻挡边界为垂线,确定第二候选中转点;
候选中转点选择单元,用于从所述第一候选中转点以及所述第二候选中转点中,提取第一总距离最短的候选中转点,作为所述第一中转点;
其中,所述第一总距离为所述虚拟对象从所述起始点直线移动至候选中转点,与所述虚拟对象从候选中转点直线移动至所述第一目标点的距离之和。
可选的,所述第二计算子模块包括:
第二阻挡边界确定单元,用于采用所述第二阻挡区域,确定针对所述第一目标点的第三阻挡边界以及第四阻挡边界;
目标点调整单元,用于采用所述第三阻挡边界以及所述第四阻挡边界,对所述第一目标点进行调整,得到第二目标点;
第一阻挡边界确定单元,用于采用所述第一阻挡区域,确定针对所述虚拟对象的第一阻挡边界以及第二阻挡边界;
候选中转点确定单元,用于以所述第一阻挡边界为垂线,确定第一候选中转点;以所述第二阻挡边界为垂线,确定第二候选中转点;
候选中转点选择单元,用于从所述第一候选中转点以及所述第二候选中转点中,提取第二总距离最短的候选中转点,作为所述第一中转点;
其中,所述第二总距离为所述虚拟对象从所述起始点直线移动至候选中转点,与所述虚拟对象从候选中转点直线移动至所述第二目标点的距离之和。
可选的,所述目标点调整单元具体用于:
从所述第三阻挡边界中,确定第一边界阻挡点;
从所述第四阻挡边界中,确定第二边界阻挡点;
将所述第一边界阻挡点以及所述第二边界阻挡点连线的中点,作为针对所述第一目标点的第二目标点。
可选的,还包括:
第二移动模块,用于当不存在障碍物时,所述虚拟对象从所述中转点直线移动至所述第一目标点。
本发明实施例还公开了一种装置,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行如上所述的一个或多个的方法。
本发明实施例还公开了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如上所述的一个或多个的方法。
本发明实施例包括以下优点:
在本发明实施例中,获取虚拟对象当前的起始点以及第一目标点,根据起始点以及第一目标点,判断沿虚拟对象移动方向的预设直线距离内,是否存在障碍物,当存在障碍物时,计算针对障碍物的第一中转点,虚拟对象移动至第一中转点,并从第一中转点直线移动至第一目标点,从而通过计算中转点,使得虚拟对象在寻路过程中,能够做到局部最短寻路,进而实现了全局路线最短,提高了寻路效率。
同时,在虚拟对象进行寻路的过程中,通过仅对中转点进行计算,降低了计算量,提高了运算效率。
附图说明
图1是本发明的一种虚拟对象的寻路方法实施例一的步骤流程图;
图2是本发明的一种虚拟对象的寻路方法实施例一中第一阻挡区域的示意图;
图3是本发明的一种虚拟对象的寻路方法实施例一中第二阻挡区域的示意图;
图4是本发明的一种虚拟对象的寻路方法实施例一中候选中转点的示意图;
图5是本发明的一种虚拟对象的寻路方法实施例一中虚拟对象移动的示意图;
图6是本发明的一种虚拟对象的寻路方法实施例二的步骤流程图;
图7是本发明的一种虚拟对象的寻路方法实施例二中虚拟对象移动的示意图;
图8是本发明的一种虚拟对象的寻路方法实施例二中虚拟对象移动的示意图;
图9是本发明的一种虚拟对象的寻路方法实施例二中虚拟对象移动的示意图;
图10是本发明的一种虚拟对象的寻路方法实施例二中虚拟对象移动的示意图;
图11是本发明的一种虚拟对象的寻路装置实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明的一种虚拟对象的寻路方法实施例的步骤流程图,具体可以包括如下步骤:
步骤101,获取虚拟对象当前的起始点以及第一目标点;
作为一种示例,游戏NPC(Non-Player Character,非玩家角色)是必不可少的元素,为了使NPC更加生动,游戏开发者通常赋予NPC以AI,并将游戏NPC的行为逻辑统称为游戏AI,优秀的游戏AI能够给玩家带来较好的游戏体验。
在游戏中,可以根据智能水平分为低级游戏AI和高级游戏AI。低级游戏AI通常为游戏中非主要NPC,如小怪、野怪等,低级游戏AI只需要按照一定的设计好的路线行进,并通过简单逻辑与游戏玩家进行交互。而对于高级AI,则是带有博弈性质的游戏主角之一,它与玩家唯一的不同点在于它由电脑来操控。
其中,自动寻路是游戏中的游戏NPC所具有的一项智能功能,游戏NPC的路线可以包括预设设置好的路线以及随游戏战局变化而变化的路线,如对于游戏中一些普通的游戏NPC,可以预先设置其对应的路线,则普通游戏NPC只需要沿着对应的路线进行移动即可,而对于具有高级游戏AI的游戏NPC,其需要与人类玩家进行游戏竞技,则游戏NPC可以根据游戏中的实时战局进行自动寻路,提高游戏NPC与人类玩家的竞技能力。
在本发明实施例中,虚拟对象可以为游戏中具有高级游戏AI的游戏NPC,则在进行自动寻路时,可以获取虚拟对象当前的起始点以及第一目标点,其中,第一目标点为虚拟对象从起始点进行移动,并最终停留或到达的位置点。
在具体实现中,游戏中的地图可以看作一个x*x的矩阵,可以由若干个具有相同尺寸的正方形格子组成,在矩阵中可以设置游戏模型以及虚拟对象,如在地图中设置小面积障碍物、基地、防御塔等虚拟对象不可穿越的游戏模型。其中,各游戏模型在矩阵中占据了若干个格子。当游戏NPC需要进行移动时,可以获取当前的位置点,作为起始点,同时确定移动的钟点,作为第一目标点。
步骤102,根据起始点以及第一目标点,判断沿虚拟对象移动方向的预设直线距离内,是否存在障碍物;
在本发明实施例中,为了实现最短寻路,可以根据虚拟对象当前的起始点以及第一目标点,判断沿虚拟对象的移动方向的预设直线距离内,是否存在障碍物,从而可以确定虚拟对象是否能够进行直线移动。
在具体实现中,可以根据起始点以及第一目标点,判断虚拟对象从起始点移动至第一目标点是否遇到障碍物,若虚拟对象无法从起始点沿移动方向直线移动至第一目标点,则表示在虚拟对象移动方向的预设直线距离内存在障碍物;若虚拟对象可以从起始点沿移动方向直线移动至第一目标点,则表示在虚拟对象移动方向的预设直线距离内不存在障碍物。
在本发明实施例的一种可选实施例中,步骤102可以包括如下子步骤:
判断起始点是否与第一目标点为相同位置点;当起始点不为第一目标点,且虚拟对象未能从起始点直线移动至第一目标点时,获取针对第一目标点的第二中转点;当虚拟对象从起始点直线移动至第二中转点后,判断预设直线距离内是否存在障碍物。
在具体实现中,游戏系统可以实时对虚拟对象的位置进行监控,通过实时帧更新,可以获取虚拟对象当前的位置点,在新的一帧中判断虚拟对象当前是否已经从起始点移动至第一目标点。当检测到虚拟对象未移动至第一目标点,即当前的位置点不是第一目标点时,可以进一步判断虚拟对象能否从当前的位置点直线移动至第一目标点。若可以,则虚拟对象从当前位置点直线移动至第一目标点;若不可以,则获取与第一目标点对应且已经存在的第二中转点,虚拟对象可以以当前的位置点为起始点,从起始点直线移动至第二中转点进行中转,再从第二中转点移动至第一目标点,并将第二中转点清除。
其中,第二中转点为虚拟对象在移动过程中已经计算出的中转点,当虚拟对象在移动中遇障时,可以通过步骤103对中转点进行计算。
步骤103,当存在障碍物时,计算针对障碍物的第一中转点;
在本发明实施例中,当虚拟对象沿移动方向的预设直线距离内存在障碍物,且当前不存在中转点时,可以通过计算针对障碍物的第一中转点,并通过第一中转点进行中转,移动至第一目标点。
在本发明实施例的一种可选实施例中,步骤103可以包括如下子步骤:
子步骤S11,采用搜索算法计算针对虚拟对象的各个阻碍点;
在本发明实施例中,搜索方法可以包括深度优先搜索和广度优先搜索等,通过采用搜索算法,可以计算针对虚拟对象的各个阻碍点。
在具体实现中,游戏中的地图可以看作一个x*x的矩阵,可以由若干个具有相同尺寸的正方形格子组成,在地图中小型障碍物也由若干个格子组成,则可以通过遍历图的搜索算法计算虚拟对象在移动中可能遇到的阻碍点,从而将所有阻碍点进行组合,得到针对虚拟对象的第一阻挡区域,以及针对第一目标点的第二阻挡区域。
在本发明实施例的另一种示例中,以深度优先搜索计算阻碍点的:
S111,获取虚拟对象移动方向上视野中的最近阻碍点,并标记为初始点,执行步骤S112;
S112,设最近阻碍点为当前计算点,进行访问,并标记为已访问,执行步骤S113;
S113,判断当前计算点是否为阻碍点,其中,首次执行步骤S113时,结果必为是。若当前计算点为阻碍点时,执行步骤S114;若当前计算点不为阻碍点时,则将当前计算点设置为“父节点”,并执行步骤S115;
S114,根据当前得到阻碍点,对针对虚拟对象的第一阻挡区域进行更新,以及对针对第一目标点的第二阻挡区域进行更新,并执行步骤S115;
S115,判断虚拟对象在当前计算点的八个方向(每个方向间隔角度为45°)是否存在相邻的未访问的阻碍点。若存在,则将当前计算点设置为“父节点”,并设置相邻点为当前计算点,返回执行步骤S112;若不存在相邻的未访问的阻碍点,则执行步骤S116;
S116,判断当前计算点是否为初始点,若当前计算点不为初始点,则将当前计算点设置为“父节点”,并返回执行步骤S115。
通过上述过程,可以将虚拟对象在移动过程遍历所有阻碍点,从而可以采用阻碍点计算针对虚拟对象的第一阻挡区域,以及针对第一目标点的第二阻挡区域。
需要说明的是,在本发明实施例中以深度优先搜索为例进行示例性说明,可以理解的是,本领域技术人员在本发明实施例的思想下,可以采用其他算法对阻碍点进行计算,从而采用阻碍点计算阻挡区域,本发明对此不作限制。
子步骤S12,采用各个阻碍点,生成针对虚拟对象的第一阻挡区域以及针对第一目标点的第二阻挡区域;
在具体实现中,当通过搜索算法得到针对虚拟对象的所有阻碍点后,可以进一步计算针对虚拟对象的第一阻挡区域,以及针对第一目标点的第二阻挡区域。
在本发明实施例的一种示例中,参考图2,示出了本发明的一种虚拟对象的寻路方法实施例一中第一阻挡区域的示意图,通过搜索算法对阻碍点进行遍历的过程中,可以将阻碍点当作一个离散的格子,即边长为m的正方形,假设此时的虚拟对象到阻碍中心点的角度为θ,距离为d,则阻挡对行动单位的阻挡区域近似等[θ-arctan(m/(2*d)),θ+arctan(m/(2*d))]。
在遍历的过程中是采用的是深度优先搜索,访问已访问点相邻的点,则上述计算出的每个阻挡区域都可以并入总的阻挡区域。因此,如果阻挡数目为N,那么总时间复杂度为O(N)。
在本发明实施例的另一种示例中,参考图3,示出了本发明的一种虚拟对象的寻路方法实施例一中第二阻挡区域的示意图,第二阻挡区域的计算过程与第一阻挡区域的计算过程相同,在此不再赘述。
子步骤S13,判断第二阻挡区域是否包围第一目标点;
在具体实现中,计算出第二阻挡区域后,可以通过第二阻挡区域判断障碍物是否包围了第一目标点,具体的,根据第二阻挡区域是否大于180°判断障碍物是否包围第一目标点,当第二阻挡区域未包围第一目标点时,根据第一阻挡区域计算第一中转点;当第二阻挡区域包围第一目标点时,则根据第一阻挡区域以及第二阻挡区域计算第一中转点。
在本发明实施例的一种示例中,参考图4示出了本发明的一种虚拟对象的寻路方法实施例一中候选中转点的示意图,当第二阻挡区域未包围第一目标点时,通过采用第一阻挡区域,确定针对虚拟对象的第一阻挡边界以及第二阻挡边界,再以第一阻挡边界以及第二阻挡边界为垂线,确定多个候选中转点,接着可以从多个候选中转点,提取第一总距离最短的候选中转点,作为第一中转点,其中,第一总距离为虚拟对象从起始点直线移动至候选中转点,与虚拟对象从候选中转点直线移动至第一目标点的距离之和。
在具体实现中,第一阻挡区域可以由若干正方形格子组成的不规则障碍区域,可以通过确定第一阻挡区域两端最外侧的正方形格子,并将所确定的正方型格子与虚拟对象所在的位置点连线,从而得到第一阻挡边界以及第二阻挡边界,接着以第一阻挡边界为底边,向外做第一垂线,以第二阻挡边界为底边,向外做第二垂线,从而向外扩展距离为k的位置点,其中,该位置点一般是可行走点,不会是阻碍点,即使为阻碍点,也可以继续向外扩展k距离,直到得到可行走点,从而得到虚拟对象的两个候选中转点。
参考图5,示出了本发明的一种虚拟对象的寻路方法实施例一中虚拟对象移动的示意图,当得到虚拟对象的两个候选中转点后,可以根据“虚拟对象到候选中转点1的距离”D11和“候选中转点1到目标点的距离”D12之和,与“虚拟对象到候选中转点2的距离”D21和“候选中转点2到目标点的距离”D22之和的比较,选择总和较小的候选中转点作为虚拟对象当前的中转点。
在本发明实施例的另一种示例中,参考图3,示出了本发明的一种虚拟对象的寻路方法实施例一中第二阻挡区域的示意图,当第二阻挡区域包围第一目标点时,可以通过采用第二阻挡区域,确定针对第一目标点的第三阻挡边界以及第四阻挡边界,采用第三阻挡边界以及第四阻挡边界,对第一目标点进行调整,得到第二目标点。
具体的,可以从第三阻挡边界中,确定第一边界阻挡点,再从第四阻挡边界中,确定第二边界阻挡点,接着可以将第一边界阻挡点以及第二边界阻挡点连线的中点,作为针对第一目标点的第二目标点,从而对虚拟对象的第一目标点调整为第二目标点,将原始的目标点暂时转换为阻挡可行通道口的第二目标点,后续虚拟对象移动至第二目标点后,可以继续从第二目标点直线移动至第一目标点。
具体的,第二阻挡区域可以由若干正方形格子组成的不规则障碍区域,当第二阻挡区域包围住第一目标点时,可以将第二阻挡区域两端内侧端点与第一目标点进行连接,确定第三阻挡边界以及第四阻挡边界,接着可以从选取第三阻挡边界与第四阻挡边界中各选取一个边界阻挡点,从而得到第一边界阻挡点以及第二边界阻挡点,并将第一边界阻挡点以及第二边界阻挡点连线的重点作为第二目标点,将第一目标点暂时切换到第二阻挡区域的通道口出的第二目标点。
将第一目标点调整为第二目标点后,可以采用第一阻挡区域,确定针对虚拟对象的第一阻挡边界以及第二阻挡边界,再以第一阻挡边界为垂线,确定第一候选中转点,以第二阻挡边界为垂线,确定第二候选中转点,接着可以从第一候选中转点以及第二候选中转点中,提取第二总距离最短的候选中转点,作为第一中转点,其中,第二总距离为虚拟对象从起始点直线移动至候选中转点,与虚拟对象从候选中转点直线移动至第二目标点的距离之和。
参考图5,示出了本发明的一种虚拟对象的寻路方法实施例一中虚拟对象移动的示意图,当得到虚拟对象的两个候选中转点后,可以根据“虚拟对象到候选中转点1的距离”D11和“候选中转点1到第二目标点的距离”D12之和,与“虚拟对象到候选中转点2的距离”D21和“候选中转点2到第二目标点的距离”D22之和的比较,选择总和较小的候选中转点作为虚拟对象当前的中转点。
在本发明实施例中,在虚拟对象的寻路过程中,通过仅对中转点的计算,大大降低了计算量,同时,在中转点的计算过程中,时间消耗主要由“前方直线视野格子数”与“前方阻挡格子数”两部分相加构成,在地图满足单个障碍物区域面积远小于可行走区域的条件下,“前方直线视野格子”可以设置得很小,且“前方阻挡格子数”也很小,因此,中转点的算法复杂度很低,保证了很高的算法效率。
步骤104,虚拟对象移动至第一中转点,并从第一中转点直线移动至第一目标点。
在具体实现中,确定最优的第一中转点后,虚拟对象可以直线移动至第一中转点,接着从第一中转点直线移动至第一目标点,从而在虚拟对象进行寻路的过程中,在大方向上保持直线朝目标点前进,当前进视野中出现阻挡时,才通过计算中转点,通过局部最短路线进行避障,具体为选择“向左”还是“向右”,改变当前前行方向,改向以大方向为基准的绕顺时针、或者逆时针旋转的某一个合适的方向前行,进而实现了全局路线最短,在寻路过程中,只需要保持大方向前行,而不需要对全局路线进行规划,提高了寻路效率。
在本发明实施例中,获取虚拟对象当前的起始点以及第一目标点,根据起始点以及第一目标点,判断沿虚拟对象移动方向的预设直线距离内,是否存在障碍物,当存在障碍物时,计算针对障碍物的第一中转点,虚拟对象移动至第一中转点,并从第一中转点直线移动至第一目标点,从而通过计算中转点,使得虚拟对象在寻路过程中,能够做到局部最短寻路,进而实现了全局路线最短,提高了寻路效率。同时,在虚拟对象进行寻路的过程中,通过仅对中转点进行计算,降低了计算量,提高了运算效率。
参考图6,示出了本发明的一种虚拟对象的寻路方法实施例二的步骤流程图,具体可以包括如下步骤:
步骤601,获取虚拟对象当前的起始点以及第一目标点;
步骤602,判断虚拟对象是否已经到达第一目标点,若是,则寻路算法结束;若否,则执行步骤步骤603;
步骤603,判断虚拟对象移动方向上一定段距离内,是否可以从当前的起始点直线移动至第一目标点,若是,则执行步骤607,并返回步骤601;若否,则执行步骤604;
步骤604,判断虚拟对象是否处于在向第一中转点移动的状态,若是,则执行步骤605;若否,则执行步骤606;其中,第一中转点已经计算并存储的中转点。
步骤605,判断虚拟对象是否到达第一中转点,若是,则清除该第一中转点,并执行步骤606;若否,则虚拟对象从起始点直线移动至第一中转点,并返回执行步骤601;
步骤606,判断虚拟对象移动方向的一定预设直线距离内,是否存在障碍物,若是,则计算第二中转点,虚拟对象直线朝第二中转点进行移动,并返回步骤601;若否,则执行步骤607,并返回步骤601;
步骤607,虚拟对象从起始点直线移动至第一目标点。
在本发明实施例的一种示例中,中转点的计算流程可以如下所述:
S6061,获取虚拟对象移动方向上视野中的最近阻碍点,并标记为初始点,执行步骤S6062;
S6062,设最近阻碍点为当前计算点,进行访问,并标记为已访问,执行步骤S606;
S6063,判断当前计算点是否为阻碍点,其中,首次执行步骤S6063时,结果必为是。若当前计算点为阻碍点时,执行步骤S6064;若当前计算点不为阻碍点时,则将当前计算点设置为“父节点”,并执行步骤S6065;
S6064,根据当前得到阻碍点,对针对虚拟对象的第一阻挡区域进行更新,以及对针对第一目标点的第二阻挡区域进行更新,并执行步骤S6065;
S6065,判断虚拟对象在当前计算点的八个方向(每个方向间隔角度为45°)是否存在相邻的未访问的阻碍点。若存在,则将当前计算点设置为“父节点”,并设置相邻点为当前计算点,返回执行步骤S6062;若不存在相邻的未访问的阻碍点,则执行步骤S6066;
S6066,判断当前计算点是否为初始点,若当前计算点不为初始点,则将当前计算点设置为“父节点”,并返回执行步骤S6065。
在本发明实施例的一种示例中,参考图7,示出了本发明的一种虚拟对象的寻路方法实施例二中虚拟对象移动的示意图,当确定虚拟对象需要移动的目标点后,且虚拟对象可以从起始点直线移动至目标点时(中间无阻挡),虚拟对象则从起始点直线移动至目标点。
在本发明实施例的另一种示例中,参考图8,示出了本发明的一种虚拟对象的寻路方法实施例二中虚拟对象移动的示意图,当确定虚拟对象需要移动的目标点后,且在虚拟对象移动方向的预设直线距离内存在障碍物时,可以计算针对目标点的候选中转点,并根据距离最短选择最优中转点,如图所示,“起始点至候选中转点1的距离”D11与“候选中转点1至目标点的距离”D12的总距离,小于“起始点至候选中转点2的距离”D21与“候选中转点2至目标点的距离”D22的总距离,因此,候选中转点1为最优中转点,虚拟对象可以先从起始点直线移动至候选中转点1,再从候选中转点1移动至目标点。
在本发明实施例的另一种示例中,参考图9,示出了本发明的一种虚拟对象的寻路方法实施例二中虚拟对象移动的示意图,当确定虚拟对象需要移动的目标点后,且在虚拟对象移动方向的预设直线距离内存在障碍物时,可以计算针对目标点的候选中转点,并根据距离最短选择最优中转点,如图所示,“起始点至候选中转点1的距离”D31与“候选中转点1至目标点的距离”D32(图中未标示)的总距离,小于“起始点至候选中转点2的距离”D41与“候选中转点2至目标点的距离”D42(图中未标示)的总距离,则将候选中转点作为最优中转点,虚拟对象可以从起始点直线移动至候选中转点1。当虚拟对象移动至中转点1后,清除候选中转点1,再次检测到在虚拟对象移动方向的预设直线距离内存在障碍物时,重新计算中转点,并选择最优中转点进行直线移动。如图10所示,虚拟对象的移动路线为起始点-中转点1-中转点12-目标点。
在本发明实施例的另一种示例中,参考图10,示出了本发明的一种虚拟对象的寻路方法实施例二中虚拟对象移动的示意图,当确定虚拟对象需要移动的目标点后,且在虚拟对象移动方向的预设直线距离内存在障碍物时,可以计算针对目标点的候选中转点,并根据距离最短选择最优中转点,如图所示,“起始点至候选中转点1的距离”D51与“候选中转点1至目标点的距离”D52(图中未标示)的总距离,小于“起始点至候选中转点2的距离”D61与“候选中转点2至目标点的距离”D62(图中未标示)的总距离,则将候选中转点作为最优中转点,虚拟对象可以从起始点直线移动至候选中转点1。当虚拟对象移动至中转点1后,清除候选中转点1,检测到目标点被障碍物包围,则通过计算将目标点暂时转换至目标调整点3,重新进行自动寻路,检测到在虚拟对象移动方向的预设直线距离内存在障碍物时,重新计算中转点,并选择最优中转点进行直线移动。如图10所示,虚拟对象的移动路线为起始点-中转点1-中转点12-目标调整点3-目标点。
需要说明的是,本发明实施例包括但不限于上述示例,在游戏中,虚拟对象自动寻路可以为上述示例的一个或多个,或组合情况,本发明对此不作限制。
在本发明实施例中,获取虚拟对象当前的起始点以及第一目标点,根据起始点以及第一目标点,判断沿虚拟对象移动方向的预设直线距离内,是否存在障碍物,当存在障碍物时,计算针对障碍物的第一中转点,虚拟对象移动至第一中转点,并从第一中转点直线移动至第一目标点,从而通过计算中转点,使得虚拟对象在寻路过程中,能够做到局部最短寻路,进而实现了全局路线最短,提高了寻路效率。同时,在虚拟对象进行寻路的过程中,通过仅对中转点进行计算,降低了计算量,提高了运算效率。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图11,示出了本发明的一种虚拟对象的寻路装置实施例的结构框图,具体可以包括如下模块:
位置点获取模块1101,用于获取虚拟对象当前的起始点以及第一目标点;
障碍物判断模块1102,用于根据所述起始点以及所述第一目标点,判断沿所述虚拟对象移动方向的预设直线距离内,是否存在障碍物;
中转点计算模块1103,用于当存在障碍物时,计算针对所述障碍物的第一中转点;
第一移动模块1104,用于所述虚拟对象移动至所述第一中转点,并从所述第一中转点直线移动至所述第一目标点。
在本发明实施例的一种可选实施例中,所述障碍物判断模块1102可以包括:
位置点判断子模块,用于判断所述起始点是否与所述第一目标点为相同位置点;
中转点获取子模块,用于当所述起始点不为所述第一目标点,且所述虚拟对象未能从所述起始点直线移动至所述第一目标点时,获取针对所述第一目标点的第二中转点;
障碍物判断子模块,用于当所述虚拟对象从所述起始点直线移动至所述第二中转点后,判断所述预设直线距离内是否存在障碍物。
在本发明实施例的一种可选实施例中,所述中转点计算模块1103可以包括:
阻碍点计算子模块,用于采用搜索算法计算针对所述虚拟对象的各个阻碍点;
阻挡区域生成子模块,用于采用所述各个阻碍点,生成针对所述虚拟对象的第一阻挡区域以及针对所述第一目标点的第二阻挡区域;
目标点判断子模块,用于判断所述第二阻挡区域是否包围所述第一目标点;
第一计算子模块,用于当所述第二阻挡区域未包围所述第一目标点时,根据所述第一阻挡区域计算所述第一中转点;
第二计算子模块,用于当所述第二阻挡区域包围所述第一目标点时,根据所述第一阻挡区域以及所述第二阻挡区域计算所述第一中转点。
在本发明实施例的一种可选实施例中,所述第一计算子模块可以包括:
第一阻挡边界确定单元,用于采用所述第一阻挡区域,确定针对所述虚拟对象的第一阻挡边界以及第二阻挡边界;
候选中转点确定单元,用于以所述第一阻挡边界为垂线,确定第一候选中转点;以所述第二阻挡边界为垂线,确定第二候选中转点;
候选中转点选择单元,用于从所述第一候选中转点以及所述第二候选中转点中,提取第一总距离最短的候选中转点,作为所述第一中转点;
其中,所述第一总距离为所述虚拟对象从所述起始点直线移动至候选中转点,与所述虚拟对象从候选中转点直线移动至所述第一目标点的距离之和。
在本发明实施例的一种可选实施例中,所述第二计算子模块可以包括:
第二阻挡边界确定单元,用于采用所述第二阻挡区域,确定针对所述第一目标点的第三阻挡边界以及第四阻挡边界;
目标点调整单元,用于采用所述第三阻挡边界以及所述第四阻挡边界,对所述第一目标点进行调整,得到第二目标点;
第一阻挡边界确定单元,用于采用所述第一阻挡区域,确定针对所述虚拟对象的第一阻挡边界以及第二阻挡边界;
候选中转点确定单元,用于以所述第一阻挡边界为垂线,确定第一候选中转点;以所述第二阻挡边界为垂线,确定第二候选中转点;
候选中转点选择单元,用于从所述第一候选中转点以及所述第二候选中转点中,提取第二总距离最短的候选中转点,作为所述第一中转点;
其中,所述第二总距离为所述虚拟对象从所述起始点直线移动至候选中转点,与所述虚拟对象从候选中转点直线移动至所述第二目标点的距离之和。
在本发明实施例的一种可选实施例中,所述目标点调整单元具体可以用于:
从所述第三阻挡边界中,确定第一边界阻挡点;
从所述第四阻挡边界中,确定第二边界阻挡点;
将所述第一边界阻挡点以及所述第二边界阻挡点连线的中点,作为针对所述第一目标点的第二目标点。
在本发明实施例的一种可选实施例中,还可以包括:
第二移动模块,用于当不存在障碍物时,所述虚拟对象从所述中转点直线移动至所述第一目标点。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例还提供了一种装置,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行本发明实施例所述的方法。
本发明实施例还提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行本发明实施例所述的方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种虚拟对象的寻路方法和一种虚拟对象的寻路装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (16)
1.一种虚拟对象的寻路方法,其特征在于,包括:
获取虚拟对象当前的起始点以及第一目标点;
根据所述起始点以及所述第一目标点,判断沿所述虚拟对象移动方向的预设直线距离内,是否存在障碍物;
当存在障碍物时,计算针对所述障碍物的第一中转点;
所述虚拟对象移动至所述第一中转点,并从所述第一中转点直线移动至所述第一目标点。
2.根据权利要求1所述的方法,其特征在于,所述根据所述起始点以及所述第一目标点,判断沿所述虚拟对象移动方向的预设直线距离内,是否存在障碍物,包括:
判断所述起始点是否与所述第一目标点为相同位置点;
当所述起始点不为所述第一目标点,且所述虚拟对象未能从所述起始点直线移动至所述第一目标点时,获取针对所述第一目标点的第二中转点;
当所述虚拟对象从所述起始点直线移动至所述第二中转点后,判断所述预设直线距离内是否存在障碍物。
3.根据权利要求1或2所述的方法,其特征在于,所述计算针对所述障碍物的第一中转点,包括:
采用搜索算法计算针对所述虚拟对象的各个阻碍点;
采用所述各个阻碍点,生成针对所述虚拟对象的第一阻挡区域以及针对所述第一目标点的第二阻挡区域;
判断所述第二阻挡区域是否包围所述第一目标点;
当所述第二阻挡区域未包围所述第一目标点时,根据所述第一阻挡区域计算所述第一中转点;
当所述第二阻挡区域包围所述第一目标点时,根据所述第一阻挡区域以及所述第二阻挡区域计算所述第一中转点。
4.根据权利要求3所述的方法,其特征在于,所述根据所述第一阻挡区域计算所述第一中转点,包括:
采用所述第一阻挡区域,确定针对所述虚拟对象的第一阻挡边界以及第二阻挡边界;
以所述第一阻挡边界为垂线,确定第一候选中转点;
以所述第二阻挡边界为垂线,确定第二候选中转点;
从所述第一候选中转点以及所述第二候选中转点中,提取第一总距离最短的候选中转点,作为所述第一中转点;
其中,所述第一总距离为所述虚拟对象从所述起始点直线移动至候选中转点,与所述虚拟对象从候选中转点直线移动至所述第一目标点的距离之和。
5.根据权利要求3所述的方法,其特征在于,所述根据所述第一阻挡区域以及所述第二阻挡区域计算所述第一中转点,包括:
采用所述第二阻挡区域,确定针对所述第一目标点的第三阻挡边界以及第四阻挡边界;
采用所述第三阻挡边界以及所述第四阻挡边界,对所述第一目标点进行调整,得到第二目标点;
采用所述第一阻挡区域,确定针对所述虚拟对象的第一阻挡边界以及第二阻挡边界;
以所述第一阻挡边界为垂线,确定第一候选中转点;
以所述第二阻挡边界为垂线,确定第二候选中转点;
从所述第一候选中转点以及所述第二候选中转点中,提取第二总距离最短的候选中转点,作为所述第一中转点;
其中,所述第二总距离为所述虚拟对象从所述起始点直线移动至候选中转点,与所述虚拟对象从候选中转点直线移动至所述第二目标点的距离之和。
6.根据权利要求5所述的方法,其特征在于,所述采用所述第二阻挡边界以及所述第三阻挡边界,对所述第一目标点进行调整,得到第二目标点,包括:
从所述第三阻挡边界中,确定第一边界阻挡点;
从所述第四阻挡边界中,确定第二边界阻挡点;
将所述第一边界阻挡点以及所述第二边界阻挡点连线的中点,作为针对所述第一目标点的第二目标点。
7.根据权利要求1所述的方法,其特征在于,还包括:
当不存在障碍物时,所述虚拟对象从所述中转点直线移动至所述第一目标点。
8.一种虚拟对象的寻路装置,其特征在于,包括:
位置点获取模块,用于获取虚拟对象当前的起始点以及第一目标点;
障碍物判断模块,用于根据所述起始点以及所述第一目标点,判断沿所述虚拟对象移动方向的预设直线距离内,是否存在障碍物;
中转点计算模块,用于当存在障碍物时,计算针对所述障碍物的第一中转点;
第一移动模块,用于所述虚拟对象移动至所述第一中转点,并从所述第一中转点直线移动至所述第一目标点。
9.根据权利要求8所述的装置,其特征在于,所述障碍物判断模块包括:
位置点判断子模块,用于判断所述起始点是否与所述第一目标点为相同位置点;
中转点获取子模块,用于当所述起始点不为所述第一目标点,且所述虚拟对象未能从所述起始点直线移动至所述第一目标点时,获取针对所述第一目标点的第二中转点;
障碍物判断子模块,用于当所述虚拟对象从所述起始点直线移动至所述第二中转点后,判断所述预设直线距离内是否存在障碍物。
10.根据权利要求8或9所述的装置,其特征在于,所述中转点计算模块包括:
阻碍点计算子模块,用于采用搜索算法计算针对所述虚拟对象的各个阻碍点;
阻挡区域生成子模块,用于采用所述各个阻碍点,生成针对所述虚拟对象的第一阻挡区域以及针对所述第一目标点的第二阻挡区域;
目标点判断子模块,用于判断所述第二阻挡区域是否包围所述第一目标点;
第一计算子模块,用于当所述第二阻挡区域未包围所述第一目标点时,根据所述第一阻挡区域计算所述第一中转点;
第二计算子模块,用于当所述第二阻挡区域包围所述第一目标点时,根据所述第一阻挡区域以及所述第二阻挡区域计算所述第一中转点。
11.根据权利要求10所述的装置,其特征在于,所述第一计算子模块包括:
第一阻挡边界确定单元,用于采用所述第一阻挡区域,确定针对所述虚拟对象的第一阻挡边界以及第二阻挡边界;
候选中转点确定单元,用于以所述第一阻挡边界为垂线,确定第一候选中转点;以所述第二阻挡边界为垂线,确定第二候选中转点;
候选中转点选择单元,用于从所述第一候选中转点以及所述第二候选中转点中,提取第一总距离最短的候选中转点,作为所述第一中转点;
其中,所述第一总距离为所述虚拟对象从所述起始点直线移动至候选中转点,与所述虚拟对象从候选中转点直线移动至所述第一目标点的距离之和。
12.根据权利要求10所述的装置,其特征在于,所述第二计算子模块包括:
第二阻挡边界确定单元,用于采用所述第二阻挡区域,确定针对所述第一目标点的第三阻挡边界以及第四阻挡边界;
目标点调整单元,用于采用所述第三阻挡边界以及所述第四阻挡边界,对所述第一目标点进行调整,得到第二目标点;
第一阻挡边界确定单元,用于采用所述第一阻挡区域,确定针对所述虚拟对象的第一阻挡边界以及第二阻挡边界;
候选中转点确定单元,用于以所述第一阻挡边界为垂线,确定第一候选中转点;以所述第二阻挡边界为垂线,确定第二候选中转点;
候选中转点选择单元,用于从所述第一候选中转点以及所述第二候选中转点中,提取第二总距离最短的候选中转点,作为所述第一中转点;
其中,所述第二总距离为所述虚拟对象从所述起始点直线移动至候选中转点,与所述虚拟对象从候选中转点直线移动至所述第二目标点的距离之和。
13.根据权利要求12所述的装置,其特征在于,所述目标点调整单元具体用于:
从所述第三阻挡边界中,确定第一边界阻挡点;
从所述第四阻挡边界中,确定第二边界阻挡点;
将所述第一边界阻挡点以及所述第二边界阻挡点连线的中点,作为针对所述第一目标点的第二目标点。
14.根据权利要求8所述的装置,其特征在于,还包括:
第二移动模块,用于当不存在障碍物时,所述虚拟对象从所述中转点直线移动至所述第一目标点。
15.一种装置,其特征在于,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行如权利要求1-7所述的一个或多个的方法。
16.一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如权利要求1-7所述的一个或多个的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910407818.8A CN109999498A (zh) | 2019-05-16 | 2019-05-16 | 一种虚拟对象的寻路方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910407818.8A CN109999498A (zh) | 2019-05-16 | 2019-05-16 | 一种虚拟对象的寻路方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109999498A true CN109999498A (zh) | 2019-07-12 |
Family
ID=67177070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910407818.8A Pending CN109999498A (zh) | 2019-05-16 | 2019-05-16 | 一种虚拟对象的寻路方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109999498A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110743161A (zh) * | 2019-10-16 | 2020-02-04 | 腾讯科技(深圳)有限公司 | 虚拟对象控制方法、装置、终端及存储介质 |
CN111773724A (zh) * | 2020-07-31 | 2020-10-16 | 网易(杭州)网络有限公司 | 一种跨越虚拟障碍的方法和装置 |
CN112148622A (zh) * | 2020-10-15 | 2020-12-29 | 腾讯科技(深圳)有限公司 | 虚拟道具的控制方法、装置、电子设备及存储介质 |
CN112221143A (zh) * | 2020-10-09 | 2021-01-15 | 腾讯科技(深圳)有限公司 | 一种控制虚拟对象移动的方法、装置及存储介质 |
CN113101663A (zh) * | 2021-04-20 | 2021-07-13 | 网易(杭州)网络有限公司 | 游戏的寻路控制方法、装置、处理设备及存储介质 |
CN114326736A (zh) * | 2021-12-29 | 2022-04-12 | 深圳鹏行智能研究有限公司 | 跟随路径规划方法以及足式机器人 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108176050A (zh) * | 2017-12-07 | 2018-06-19 | 北京像素软件科技股份有限公司 | 寻路方法和装置 |
EP3381524A1 (en) * | 2017-03-30 | 2018-10-03 | IO-Interactive A/S | Controlling locomotion of a plurality of non-player characters in a simulated multi-dimensional world space |
CN109731332A (zh) * | 2018-12-21 | 2019-05-10 | 网易(杭州)网络有限公司 | 非玩家角色的控制方法、装置、设备及存储介质 |
-
2019
- 2019-05-16 CN CN201910407818.8A patent/CN109999498A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3381524A1 (en) * | 2017-03-30 | 2018-10-03 | IO-Interactive A/S | Controlling locomotion of a plurality of non-player characters in a simulated multi-dimensional world space |
CN108176050A (zh) * | 2017-12-07 | 2018-06-19 | 北京像素软件科技股份有限公司 | 寻路方法和装置 |
CN109731332A (zh) * | 2018-12-21 | 2019-05-10 | 网易(杭州)网络有限公司 | 非玩家角色的控制方法、装置、设备及存储介质 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110743161A (zh) * | 2019-10-16 | 2020-02-04 | 腾讯科技(深圳)有限公司 | 虚拟对象控制方法、装置、终端及存储介质 |
CN111773724A (zh) * | 2020-07-31 | 2020-10-16 | 网易(杭州)网络有限公司 | 一种跨越虚拟障碍的方法和装置 |
CN111773724B (zh) * | 2020-07-31 | 2024-04-26 | 网易(上海)网络有限公司 | 一种跨越虚拟障碍的方法和装置 |
CN112221143A (zh) * | 2020-10-09 | 2021-01-15 | 腾讯科技(深圳)有限公司 | 一种控制虚拟对象移动的方法、装置及存储介质 |
CN112148622A (zh) * | 2020-10-15 | 2020-12-29 | 腾讯科技(深圳)有限公司 | 虚拟道具的控制方法、装置、电子设备及存储介质 |
CN112148622B (zh) * | 2020-10-15 | 2022-02-25 | 腾讯科技(深圳)有限公司 | 虚拟道具的控制方法、装置、电子设备及存储介质 |
CN113101663A (zh) * | 2021-04-20 | 2021-07-13 | 网易(杭州)网络有限公司 | 游戏的寻路控制方法、装置、处理设备及存储介质 |
CN113101663B (zh) * | 2021-04-20 | 2024-02-23 | 网易(杭州)网络有限公司 | 游戏的寻路控制方法、装置、处理设备及存储介质 |
CN114326736A (zh) * | 2021-12-29 | 2022-04-12 | 深圳鹏行智能研究有限公司 | 跟随路径规划方法以及足式机器人 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109999498A (zh) | 一种虚拟对象的寻路方法和装置 | |
CN104548598B (zh) | 一种虚拟现实场景中寻路的方法 | |
CN106679669B (zh) | 一种移动机器人路径规划方法和系统 | |
CN107773164B (zh) | 用于清洁机器人的清洁方法、装置及机器人 | |
Oskam et al. | Visibility transition planning for dynamic camera control | |
Harabor et al. | Improving jump point search | |
CN107744663B (zh) | 人工智能ai单位的寻路方法及装置 | |
CN104156459B (zh) | 一种基于相同开销网格的高效寻路的方法及系统 | |
CN113190010B (zh) | 一种沿边绕障路径规划方法、芯片及机器人 | |
US20070198178A1 (en) | Pathfinding system | |
CN112254733B (zh) | 基于扩展a*算法的火灾逃生路径规划方法及系统 | |
JP2001507143A (ja) | ネットワーク内の領域の出口および入口を決定する方法 | |
CN106582023A (zh) | 一种游戏寻路方法和装置 | |
CN102693362B (zh) | 一种与地形相适应的游戏角色跳跃方法和装置 | |
CN113156956B (zh) | 机器人的导航方法、芯片及机器人 | |
CN113101663B (zh) | 游戏的寻路控制方法、装置、处理设备及存储介质 | |
JP2007530967A (ja) | 経路探索システム | |
CN106931970A (zh) | 一种动态环境中机器人安全自主规划导航方法 | |
US10406437B1 (en) | Route navigation system within a game application environment | |
CN107478232B (zh) | 机器人导航路径的搜索方法 | |
CN113110497B (zh) | 基于导航路径的沿边绕障路径选择方法、芯片及机器人 | |
CN106422330B (zh) | 单位的寻路方法及装置 | |
CN108489501A (zh) | 一种基于智能绕过障碍的快速路径搜索算法 | |
JP2022084929A (ja) | 車両走行制御方法及び装置 | |
CN114161416A (zh) | 基于势函数的机器人路径规划方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190712 |
|
RJ01 | Rejection of invention patent application after publication |