一种AI墙面寻路的方法及系统与流程

文档序号:11240621阅读:688来源:国知局
一种AI墙面寻路的方法及系统与流程

本发明涉及计算机应用技术领域,特别涉及一种ai墙面寻路的方法及系统。



背景技术:

随着现代社会科技的发展,越来越多的手机或电脑游戏进入到人们的生活中。针对游戏中ai(artificialintelligence,人工智能)寻路往往是通过recastnavigation项目实现的,如游戏中的各种怪物ai通过recastnavigation项目计算从地图中的一点到另外一点的可行路径。

现有技术中,recastnavigation项目的技术实现如下:对游戏地图进行预处理,根据ai的高度和可行斜面斜率等输入参数生成地图的可寻路(可行)区域,该区域由一系列二维凸多边形组成,这些凸多边形可组成一个(或多个)连通的可行区域;针对上述可寻路区域上的任意两点(即ai寻路的ai起始点和ai目标点),使用a*算法(astartalgorithm)先找出连通起始点所在多边形区域和目标点所在多边形区域的可寻路凸多边形连接带;根据找出的凸多边形连接带,使用拐角点法找出一条连接起始点和目标点的路径,该路径在这个多边形连接带上。

然而,现有技术中可寻路区域并不包括墙面区域,使得无法实现墙面区域的ai寻路,若ai寻路的ai目标点或ai起始点在墙面上,无法生成有效的可行路径;并且无法实现通过墙面区域的可行路径的计算,也就是ai寻路的行走过程中,不能通过墙面区域。因此,如何能够对开源项目recastnavigation进行扩展,实现墙面区域的ai寻路和通过墙面区域的可行路径的计算,丰富游戏中ai的行为,增强游戏可玩性,提高用户体验度,是现今急需解决的问题。



技术实现要素:

本发明的目的是提供一种ai墙面寻路的方法及系统,以对开源项目recastnavigation进行扩展,实现墙面区域的ai寻路和通过墙面区域的可行路径的计算,丰富游戏中ai的行为,增强游戏可玩性。

为解决上述技术问题,本发明提供一种ai墙面寻路的方法,包括:

加载预先生成的可寻路区域信息;其中,所述可寻路区域信息包括添加了墙面寻路面片的可寻路区域的信息;

判断ai起始点和ai目标点是否均在所述可寻路区域上;

若是,则计算出所述ai起始点到所述ai目标点的可行路径,使ai按所述可行路径行走。

可选的,所述加载预先生成的可寻路区域信息之前,还包括:

离线生成所述可寻路区域信息。

可选的,所述离线生成所述可寻路区域信息,包括:

利用ai地图可视化编辑器添加预设墙面各自对应的所述墙面寻路面片;

计算并连接每个所述墙面寻路面片上层和下层相邻的可寻路区域,生成所述可寻路区域的信息。

可选的,所述离线生成所述可寻路区域信息,还包括:

对每个所述墙面寻路面片进行坐标转换,获取水平面片;

根据所述水平面片生成墙面可寻路区域信息。

可选的,所述计算出所述ai起始点到所述ai目标点的可行路径,使ai按所述可行路径行走,包括:

判断所述ai起始点是否在所述墙面寻路面片上;

若所述ai起始点不在所述墙面寻路面片上,则进行全局寻路,计算出所述ai起始点到所述ai目标点的第一可行路径,使所述ai按所述第一可行路径行走;

若所述ai起始点在所述墙面寻路面片上,则判断所述ai目标点是否在所述墙面寻路面片上;

若所述ai目标点不在所述墙面寻路面片上,则计算出所述ai离开所述ai起始点所在的墙面寻路面片的脱离点坐标;

根据所述ai起始点所在的墙面寻路面片对应的墙面可寻路区域信息进行局部寻路,计算出所述ai起始点到所述脱离点坐标的第二可行路径;

进行全局寻路计算出所述脱离点坐标到所述ai目标点的第三可行路径,使所述ai按所述第二可行路径和第三可行路径行走;

若所述ai目标点在所述墙面寻路面片上,则判断所述ai目标点和所述ai起始点是否在相同的墙面寻路面片上;

若所述ai目标点和所述ai起始点不在相同的墙面寻路面片上,则执行所述计算出所述ai离开所述ai起始点所在的墙面寻路面片的脱离点坐标的步骤;

若所述ai目标点和所述ai起始点在相同的墙面寻路面片上,则根据所述ai起始点和所述ai目标点所在的墙面寻路面片对应的墙面可寻路区域信息进行局部寻路,计算出所述ai起始点到所述ai目标点的第四可行路径,使所述ai按所述第四可行路径行走。

此外,本发明还提供了一种ai墙面寻路的系统,包括:

加载模块,用于加载预先生成的可寻路区域信息;其中,所述可寻路区域信息包括添加了墙面寻路面片的可寻路区域的信息;

判断模块,用于判断ai起始点和ai目标点是否均在所述可寻路区域上;

寻路模块,用于若所述ai起始点和所述ai目标点均在所述可寻路区域上,则计算出所述ai起始点到所述ai目标点的可行路径,使ai按所述可行路径行走。

可选的,该系统还包括:

生成模块,用于离线生成所述可寻路区域信息。

可选的,所述生成模块,包括:

添加子模块,用于利用ai地图可视化编辑器添加预设墙面各自对应的所述墙面寻路面片;

第一生成子模块,用于计算并连接每个所述墙面寻路面片上层和下层相邻的可寻路区域,生成所述可寻路区域的信息。

可选的,所述生成模块,还包括:

转换子模块,用于对每个所述墙面寻路面片进行坐标转换,获取水平面片;

第二生成子模块,用于根据所述水平面片生成墙面可寻路区域信息。

可选的,所述寻路模块,包括:

第一判断子模块,用于判断所述ai起始点是否在所述墙面寻路面片上;

第一寻路子模块,用于若所述ai起始点不在所述墙面寻路面片上,则进行全局寻路,计算出所述ai起始点到所述ai目标点的第一可行路径,使所述ai按所述第一可行路径行走;

第二判断子模块,用于若所述ai起始点在所述墙面寻路面片上,则判断所述ai目标点是否在所述墙面寻路面片上;

计算子模块,用于若所述ai目标点不在所述墙面寻路面片上,则计算出所述ai离开所述ai起始点所在的墙面寻路面片的脱离点坐标;

第二寻路子模块,用于根据所述ai起始点所在的墙面寻路面片对应的墙面可寻路区域信息进行局部寻路,计算出所述ai起始点到所述脱离点坐标的第二可行路径;

第三寻路子模块,用于进行全局寻路计算出所述脱离点坐标到所述ai目标点的第三可行路径,使所述ai按所述第二可行路径和第三可行路径行走;

第三判断子模块,用于若所述ai目标点在所述墙面寻路面片上,则判断所述ai目标点和所述ai起始点是否在相同的墙面寻路面片上;若所述ai目标点和所述ai起始点不在相同的墙面寻路面片上,则向所述计算子模块发送启动信号;

第四寻路子模块,用于若所述ai目标点和所述ai起始点在相同的墙面寻路面片上,则根据所述ai起始点和所述ai目标点所在的墙面寻路面片对应的墙面可寻路区域信息进行局部寻路,计算出所述ai起始点到所述ai目标点的第四可行路径,使所述ai按所述第四可行路径行走。

本发明所提供的一种ai墙面寻路的方法,包括:加载预先生成的可寻路区域信息;其中,所述可寻路区域信息包括添加了墙面寻路面片的可寻路区域的信息;判断ai起始点和ai目标点是否均在所述可寻路区域上;若是,则计算出所述ai起始点到所述ai目标点的可行路径,使ai按所述可行路径行走;

可见,本发明通过加载预先生成的可寻路区域信息,可以加载添加了墙面寻路面片的可寻路区域的信息,使得在计算出ai起始点到ai目标点的可行路径时,可以计算出ai起始点和/或ai目标点在墙面寻路面片的墙面区域的可行路径,并且可以计算出通过墙面区域的可行路径,实现了墙面区域的ai寻路和通过墙面区域的可行路径的计算,丰富了游戏中ai的行为,增强了游戏可玩性。此外,本发明还提供了一种ai墙面寻路的系统,同样具有上述有益效果。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例所提供的一种ai墙面寻路的方法的流程图;

图2为本发明实施例所提供的另一种ai墙面寻路的方法的流程图;

图3为本发明实施例所提供的另一种ai墙面寻路的方法的墙面寻路面片的示意图;

图4为本发明实施例所提供的另一种ai墙面寻路的方法的水平面片的示意图;

图5为本发明实施例所提供的一种ai墙面寻路的系统的结构图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图1,图1为本发明实施例所提供的一种ai墙面寻路的方法的流程图。该方法可以包括:

步骤101:加载预先生成的可寻路区域信息;其中,可寻路区域信息包括添加了墙面寻路面片的可寻路区域的信息。

可以理解的是,本步骤中的预先生成的可寻路区域信息,可以为网络游戏的主机或服务器预先离线或在线生成的可寻路区域信息,也就是本实施例所提供的方法还可以包括离线生成可寻路区域信息。本实施例对此不受任何限制。

需要说明的是,对于本步骤中的可寻路区域信息的具体内容,可以为添加了墙面寻路面片的可寻路区域的信息;也可以为添加了墙面寻路面片的可寻路区域的信息和每个墙面寻路面片对应的墙面可寻路区域信息;还可以为其他内容。对于可寻路区域信息的具体内容,可以由设计人员根据实用场景和使用需求自行设置,只要可以通过可寻路区域信息计算出通过墙面区域的可行路径,本实施例对此不受任何限制。

步骤102:判断ai起始点和ai目标点是否均在可寻路区域上;若是,则进入步骤103。

可以理解的是,本步骤的目的是为了判断ai起始点和ai目标点的位置是否正常;若正常,则通过接下来的步骤计算ai的可行路径;若不正常,则可以结束本实施例所提供的方法,通过可以其他方法对ai的ai起始点和/或ai目标点进行调整,本实施例对此不受任何限制。

需要说明的是,本步骤可以直接判断ai起始点和ai目标点是否均在可寻路区域上;也可以分别判断ai起始点是否在可寻路区域上和ai目标点是否在可寻路区域上。本实施例对此不受任何限制。

步骤103:计算出ai起始点到ai目标点的可行路径,使ai按可行路径行走。

其中,对于本步骤中计算出ai起始点到ai目标点的可行路径的具体方式,可以直接根据可寻路区域信息通过全局寻路进行计算;由于如果ai起始点在墙面寻路面片时,全局寻路无法再墙面寻路面片上生成比较精确可行路径,可能会产生如ai重叠的情况发生,也可以通过先计算ai离开ai起始点所在的墙面寻路面片的脱离点坐标;再根据ai起始点所在的墙面寻路面片对应的墙面可寻路区域信息进行局部寻路,计算出ai起始点到脱离点坐标的可行路径;最后进行全局寻路计算出脱离点坐标到ai目标点的可行路径,使ai按两个可行路径行走的方式;还可以使用其他方式。对于计算出ai起始点到ai目标点的可行路径的具体方式,可以由设计人员根据实用场景和用户需求自行设置,本实施例对此不受任何限制。

可以理解的是,本实施例所提供的方法可以适用于ai寻路,如fps网络游戏中各种怪物ai的寻路,也可以适用于用户控制的游戏对象的寻路。本实施例对此不受任何限制。

需要说明的是,对于本步骤计算出的可行路径的数量以及ai根据可行路径进行行走的过程,可以采用与现有技术相同或相似的方式实现,也可以由设计人员自行设置其他方式,本实施例对此不受任何限制。

本实施例中,本发明实施例通过加载预先生成的可寻路区域信息,可以加载添加了墙面寻路面片的可寻路区域的信息,使得在计算出ai起始点到ai目标点的可行路径时,可以计算出ai起始点和/或ai目标点在墙面寻路面片的墙面区域的可行路径,并且可以计算出通过墙面区域的可行路径,实现了墙面区域的ai寻路和通过墙面区域的可行路径的计算,丰富了游戏中ai的行为,增强了游戏可玩性。

请参考图2、图3和图4,图2为本发明实施例所提供的另一种ai墙面寻路的方法的流程图;图3为本发明实施例所提供的另一种ai墙面寻路的方法的墙面寻路面片的示意图;图4为本发明实施例所提供的另一种ai墙面寻路的方法的水平面片的示意图。该方法可以包括:

步骤201:离线生成可寻路区域信息;其中,可寻路区域信息包括添加了墙面寻路面片的可寻路区域的信息和每个墙面寻路面片对应的墙面可寻路区域信息。

可以理解的是,对于可寻路区域的信息的具体生成方式,可以通过利用ai地图可视化编辑器添加预设墙面各自对应的墙面寻路面片,计算并连接每个墙面寻路面片上层和下层相邻的可寻路区域,生成可寻路区域的信息的方式,如将图3中ai可爬行的墙面利用ai地图可视化编辑器添加成墙面寻路面片,再将该墙面寻路面片与相邻的原本的可寻路区域连接,形成新的可寻路区域,生成新的可寻路区域的信息;也可以利用其它工具生成可寻路区域的信息。只要可以将如墙面寻路面片的墙面区域添加到可寻路区域中,对于可寻路区域的信息的具体生成方式,本实施例不做任何限制。

需要说明的是,对于墙面可寻路区域信息的具体生成方式,可以通过对每个墙面寻路面片进行坐标转换,获取水平面片,根据水平面片生成墙面可寻路区域信息的方式,如将图3中的墙面寻路面片进行坐标转换,获取如图4所示的水平面片,根据该水平面片生成可用于计算可行路径的墙面可寻路区域信息;也可以通过其他方式生成墙面可寻路区域信息。只要可以生成能够用于计算墙面区域的可行路径的墙面可寻路区域信息,对于墙面可寻路区域信息的具体生成方式,本实施例不做任何限制。

步骤202:加载可寻路区域信息。

步骤203:判断ai起始点和ai目标点是否均在可寻路区域上;若是,则进入步骤204。

其中,步骤202和步骤203与步骤101和步骤102相似,在此不再赘述。

步骤204:判断ai起始点是否在墙面寻路面片上;若否,则进入步骤205;若是,则进入步骤206。

可以理解的是,本步骤的目的是为了根据ai起始点的位置判断是否可以进行全局寻路,由于如果ai起始点在墙面寻路面片时,全局寻路无法再墙面寻路面片上生成比较精确可行路径,可能会产生如ai重叠的情况发生,可以通过步骤206至步骤209,计算较为精确的可行路径,避免ai重叠的情况发生。

步骤205:进行全局寻路,计算出ai起始点到ai目标点的第一可行路径,使ai按第一可行路径行走。

可以理解的是,本步骤可以为当ai起始点不在墙面寻路面片上时,直接进行全局寻路,对于全局寻路的具体方式,可以采用与现有技术相似的方式,直接计算出可以通过墙面寻路面片的可行路径。进一步的为了提高墙面寻路面片上的可行路径的精确度,还可以对通过与步骤207和步骤208所示的方式相似的方式,对可行路径通过的墙面寻路面片进行局部寻路。本实施例对此不受任何限制。

需要说明的是,本步骤中通过全局寻路计算第一可行路径的过程,也可以放在步骤204之前,如先通过全局寻路计算第一可行路径,再判断ai起始点是否在墙面寻路面片上,若否,则使ai按第一可行路径行走,若是,则进入步骤206。本实施例对此不受任何限制。

步骤206:判断ai目标点是否在墙面寻路面片上;若否,则进入步骤207;若是,则进入步骤210。

可以理解的是,本步骤的目的是为了接下来判断ai目标点和ai起始点是否在相同的墙面寻路面片上做准备。

步骤207:计算出ai离开ai起始点所在的墙面寻路面片的脱离点坐标。

其中,本步骤的目的是为了计算出ai离开ai起始点所在的墙面寻路面片的脱离点坐标,对于具体的计算方式和过程,可以由设计人员自行设置,只要可以计算出ai离开ai起始点所在的墙面寻路面片的脱离点坐标,本实施例对此不受任何限制。

步骤208:根据ai起始点所在的墙面寻路面片对应的墙面可寻路区域信息进行局部寻路,计算出ai起始点到脱离点坐标的第二可行路径。

可以理解的是,本步骤的目的是为了根据墙面可寻路区域信息进行局部寻路,计算出ai从ai起始点到离开所在墙面寻路面片的脱离点坐标的第二可行路径,对于局部寻路的具体过程,可以通过与全局寻路相似的方式,只是将全局寻路的区域变为墙面寻路面片进行坐标转换后的水平面片对应的墙面可寻路区域。本实施例对此不受任何限制。

步骤209:进行全局寻路计算出脱离点坐标到ai目标点的第三可行路径,使ai按第二可行路径和第三可行路径行走。

其中,本步骤的目的是为了计算出ai离开墙面寻路面片后所在的脱离点坐标到ai目标点的第三可行路径,以使ai可以按照第二可行路径和第三可行路径行走,达到从ai起始点到ai目标点的寻路目的。

可以理解的是,步骤207至步骤209可以为通过计算墙面寻路面片的脱离点坐标,达到从ai起始点到脱离点坐标再到ai目标点的寻路过程,提高了墙面寻路面片上的可行路径的精确度。本实施例所提供的方法只是展示了对ai起始点所在墙面寻路面片上进行脱离点坐标计算和局部寻路的过程,对于全局寻路通过的墙面寻路面片也可以通过与上述方式相似的方式,计算在墙面寻路面片上更为精确的可行路径,本实施例对此不受任何限制。

步骤210:判断ai目标点和ai起始点是否在相同的墙面寻路面片上;若否,则进入步骤207;若是,则进入步骤211。

可以理解的是,本步骤的目的是为了通过判断ai目标点和ai起始点是否在相同的墙面寻路面片上,从而判断是否可以直接对ai起始点到ai目标点的可行路径进行局部寻路。

步骤211:根据ai起始点和ai目标点所在的墙面寻路面片对应的墙面可寻路区域信息进行局部寻路,计算出ai起始点到ai目标点的第四可行路径,使ai按第四可行路径行走。

需要说明的是,本步骤的目的是为了当ai目标点和ai起始点在相同的墙面寻路面片上,直接根据该墙面寻路面片对应的墙面可寻路区域信息进行局部寻路,计算出该墙面寻路面片上ai起始点到ai目标点的可行路径,进一步提高了墙面寻路面片上的可行路径的精确度。

可以理解的是,本实施例所提供的方法只是对ai起始点所在的墙面寻路面片上的可行路径的计算进行了详细的展示,对于全局寻路计算出的可行路径通过的墙面寻路面片也可以与本实施例所提供的ai起始点所在的墙面寻路面片上的可行路径的计算相似的方式,计算在墙面寻路面片上更为精确的可行路径,本实施例对此不受任何限制。

本实施例中,本发明实施例通过计算出ai离开ai起始点所在的墙面寻路面片的脱离点坐标,可以获取ai离开墙面寻路面片的坐标点;通过根据ai起始点所在的墙面寻路面片对应的墙面可寻路区域信息进行局部寻路,计算出ai起始点到脱离点坐标的第二可行路径,可以计算ai离开墙面寻路面片的较为精确的可行路径,进一步提升了墙面寻路面片上可行路径计算的精确度,丰富了游戏中ai的行为,增强了游戏可玩性。

请参考图5,图5为本发明实施例所提供的一种ai墙面寻路的系统的结构图,该系统可以包括:

加载模块100,用于加载预先生成的可寻路区域信息;其中,可寻路区域信息包括添加了墙面寻路面片的可寻路区域的信息;

判断模块200,用于判断ai起始点和ai目标点是否均在可寻路区域上;

寻路模块300,用于若ai起始点和ai目标点均在可寻路区域上,则计算出ai起始点到ai目标点的可行路径,使ai按可行路径行走。

可选的,该系统还可以包括:

生成模块,用于离线生成可寻路区域信息。

可选的,生成模块,可以包括:

添加子模块,用于利用ai地图可视化编辑器添加预设墙面各自对应的墙面寻路面片;

第一生成子模块,用于计算并连接每个墙面寻路面片上层和下层相邻的可寻路区域,生成可寻路区域的信息。

可选的,生成模块,还可以包括:

转换子模块,用于对每个墙面寻路面片进行坐标转换,获取水平面片;

第二生成子模块,用于根据水平面片生成墙面可寻路区域信息。

可选的,寻路模块300,可以包括:

第一判断子模块,用于判断ai起始点是否在墙面寻路面片上;

第一寻路子模块,用于若ai起始点不在墙面寻路面片上,则进行全局寻路,计算出ai起始点到ai目标点的第一可行路径,使ai按第一可行路径行走;

第二判断子模块,用于若ai起始点在墙面寻路面片上,则判断ai目标点是否在墙面寻路面片上;

计算子模块,用于若ai目标点不在墙面寻路面片上,则计算出ai离开ai起始点所在的墙面寻路面片的脱离点坐标;

第二寻路子模块,用于根据ai起始点所在的墙面寻路面片对应的墙面可寻路区域信息进行局部寻路,计算出ai起始点到脱离点坐标的第二可行路径;

第三寻路子模块,用于进行全局寻路计算出脱离点坐标到ai目标点的第三可行路径,使ai按第二可行路径和第三可行路径行走;

第三判断子模块,用于若ai目标点在墙面寻路面片上,则判断ai目标点和ai起始点是否在相同的墙面寻路面片上;若ai目标点和ai起始点不在相同的墙面寻路面片上,则向计算子模块发送启动信号;

第四寻路子模块,用于若ai目标点和ai起始点在相同的墙面寻路面片上,则根据ai起始点和ai目标点所在的墙面寻路面片对应的墙面可寻路区域信息进行局部寻路,计算出ai起始点到ai目标点的第四可行路径,使ai按第四可行路径行走。

本实施例中,本发明实施例通过加载模块100加载预先生成的可寻路区域信息,可以加载添加了墙面寻路面片的可寻路区域的信息,使得在通过寻路模块300计算出ai起始点到ai目标点的可行路径时,可以计算出ai起始点和/或ai目标点在墙面寻路面片的墙面区域的可行路径,并且可以计算出通过墙面区域的可行路径,实现了墙面区域的ai寻路和通过墙面区域的可行路径的计算,丰富了游戏中ai的行为,增强了游戏可玩性。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的ai墙面寻路的方法及系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1