游戏中虚拟对象的寻路方法、装置及电子设备
文献发布时间:2023-06-19 12:00:51
技术领域
本发明涉及游戏技术领域,尤其是涉及游戏中虚拟对象的寻路方法、装置及电子设备。
背景技术
游戏中的生物寻路主要是指游戏中某一生物朝着目标位置行走所生成的路径,通常生物寻路可以分为两个步骤:游戏场景地图表示和路径搜索;其中,游戏场景地图表示主要是将游戏场景转换成特定的数学模型,用于表征游戏场景的结构和障碍物信息等,路径搜索则是在该数学模型上执行寻路算法,以得到生物寻路路径。
现有的游戏场景地图表示主要是将游戏场景划分成大小相等的二维网格,路径搜索则是基于该二维网格的寻路算法,主要包括纯A*算法、深度优先搜索算法和贪心算法,在实际应用中,现有寻路方法首先进行包含该生物与终点有限的游戏地图范围扫描,并将游戏地图划分为正方形网格,以生物所在位置为起点,并从起点所在的网格开始,执行寻路算法,直至找到终点。
对于沙盒类游戏,上述寻路算法虽然可以实现生物寻路,但由于地图环境经常改变,因此需频繁对游戏场景地图进行扫描,并基于最新的游戏场景地图执行寻路算法,导致寻路消耗较大,影响了寻路的计算效率。
发明内容
有鉴于此,本发明的目的在于提供游戏中虚拟对象的寻路方法、装置及电子设备,以缓解上述问题,提高了寻路效率,具有较好的实用价值。
第一方面,本发明实施例提供了一种游戏中虚拟对象的寻路方法,通过电子设备显示游戏的游戏场景,该方法包括:获取游戏中的虚拟对象的位置信息,其中,该位置信息包括虚拟对象在游戏场景中的初始位置和目标位置;根据位置信息和游戏场景实时生成游戏场景对应的导航网格地图;其中,导航网格地图中的导航网格均对应有高度信息和连通信息;基于导航网格地图确定初始位置至目标位置的目标路径;其中,目标路径包括具有连通性的同高度导航网格,以及满足预设高度差范围且具有连通性的异高度导航网格。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,上述根据位置信息和游戏场景实时生成游戏场景对应的导航网格地图的步骤,包括:将游戏场景按照划分规则划分为预设尺寸的多个单位区域;基于位置信息确定目标单位区域集合;其中,目标单位区域集合包括从初始位置至目标位置的多个目标单位区域;根据目标单位区域集合和对应的游戏场景实时生成游戏场景对应的导航网格地图。
结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第二种可能的实施方式,其中,上述游戏场景包含有多种场景模型,上述根据目标单位区域集合和对应的游戏场景实时生成游戏场景对应的导航网格地图的步骤,包括:获取每个单位区域内的场景模型;其中,场景模型包括多个基础网格,每个基础网格携带有参数信息;根据基础网格的参数信息确定单位区域的有效行走区域;其中,有效行走区域包括多个目标基础网格;将有效行走区域内同高度的目标基础网格按照相邻关系进行合并,得到预设形状的导航网格;确定导航网格间的连通关系,得到游戏场景对应的导航网格地图。
结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,上述参数信息包括尺寸信息和属性信息,上述根据基础网格的参数信息确定单位区域的有效行走区域的步骤,包括:根据基础网格的尺寸信息和预设尺寸确定多个目标基础网格,以得到单位区域的有效行走区域;和/或;根据基础网格的属性信息确定多个目标基础网格,以得到单位区域的有效行走区域;其中,属性信息用于表征虚拟对象在基础网格上是否可行走。
结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,其中,上述确定导航网格间的连通关系的步骤,包括:计算任一导航网格与其相邻导航网格之间的连通性;其中,虚拟对象在具有连通性的两个导航网格间可移动。
结合第一方面的第四种可能的实施方式,本发明实施例提供了第一方面的第五种可能的实施方式,其中,上述计算任一导航网格与其相邻导航网格之间的连通性的步骤,包括:根据两个相邻导航网格的高度信息计算高度差;根据高度差确定相邻导航网格之间的连通性。
结合第一方面的第五种可能的实施方式,本发明实施例提供了第一方面的第六种可能的实施方式,其中,上述根据高度差确定相邻导航网格之间的所述连通性的步骤,包括:判断高度差是否满足高度差范围;如果是,则确定两个相邻导航网格具有双向移动的连通性。
结合第一方面的第六种可能的实施方式,本发明实施例提供了第一方面的第七种可能的实施方式,其中,该方法还包括:如果高度差不满足高度差范围,则确定两个相邻导航网格具有单向移动的连通性。
结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第八种可能的实施方式,其中,该方法还包括:响应针对于场景模型的变更操作,得到变更场景模型对应的变更导航网格;根据变更导航网格与其相邻导航网格的高度信息计算目标高度差;根据目标高度差确定变更导航网格与其相邻导航网格之间的连通性;根据连通性更新导航网格地图中的连通信息。
结合第一方面,本发明实施例提供了第一方面的第九种可能的实施方式,其中,上述基于导航网格地图确定初始位置至目标位置的目标路径的步骤,包括:基于导航网格地图确定初始位置至目标位置的目标导航网格组;其中,目标导航网格组包括具有连通性的同高度导航网格,以及满足预设高度差范围且具有连通性的异高度导航网格;基于目标导航网格组,确定初始位置至目标位置的目标路径。结合第一方面的第九种可能的实施方式,本发明实施例提供了第一方面的第十种可能的实施方式,其中,上述基于导航网格地图确定初始位置至目标位置的目标导航网格组的步骤,包括:基于A*算法对导航网格地图中的导航网格执行寻路算法,得到从初始位置至目标位置的目标导航网格组。
结合第一方面的第九种可能的实施方式,本发明实施例提供了第一方面的第十一种可能的实施方式,其中,上述基于目标导航网格组,确定初始位置至目标位置的目标路径的步骤,包括:基于漏斗算法,确定目标导航网格组中目标导航网格对应的路径点;根据多个路径点,得到初始位置至目标位置的目标路径。
结合第一方面,本发明实施例提供了第一方面的第十二种可能的实施方式,其中,上述确定初始位置至目标位置的目标路径的步骤之后,该方法还包括:响应针对于虚拟对象的移动操作,控制虚拟对象按照目标路径移动至目标位置。
结合第一方面,本发明实施例提供了第一方面的第十三种可能的实施方式,其中,上述获取游戏中的虚拟对象的位置信息的步骤,包括:响应针对于虚拟对象的自动寻路操作,确定虚拟对象的位置信息。第二方面,本发明实施例还提供一种游戏中虚拟对象的寻路装置,通过电子设备显示游戏的游戏场景,该装置包括:位置信息获取模块,用于获取游戏中的虚拟对象的位置信息,其中,位置信息包括虚拟对象在游戏场景中的初始位置和目标位置;导航网格地图生成模块,用于根据位置信息和游戏场景实时生成游戏场景对应的导航网格地图;其中,导航网格地图中的导航网格均对应有高度信息和连通信息;目标路径确定模块,用于基于导航网格地图确定初始位置至目标位置的目标路径;其中,目标路径包括具有连通性的同高度导航网格,以及满足预设高度差范围且具有连通性的异高度导航网格。
第三方面,本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述第一方面的游戏中虚拟对象的寻路方法的步骤。
第四方面,本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述第一方面的游戏中虚拟对象的寻路方法的步骤。
本发明实施例带来了以下有益效果:
本发明实施例提供了游戏中虚拟对象的寻路方法、装置及电子设备,根据虚拟对象的位置信息和游戏场景实时生成游戏场景对应的导航网格地图,并基于携带有高度信息和连通信息的导航网格确定初始位置至目标位置的目标路径,与现有基于二维网格的寻路方法相比,提高了目标路径的确定效率即寻路效率;以及当游戏场景改变时,通过位置信息和更新的游戏场景实时生成导航网格地图,保证了目标路径的准确度,同时避免了频繁扫描游戏地图,缓解了寻路消耗过大的问题,具有较好的实用价值。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种游戏中虚拟对象的寻路方法的流程图;
图2为本发明实施例提供的另一种游戏中虚拟对象的寻路方法的流程图;
图3为本发明实施例提供的另一种游戏中虚拟对象的寻路方法的流程图;
图4为本发明实施例提供的一种纯A*算法的原理示意图;
图5为本发明实施例提供的一种深度优先搜索算法的原理示意图;
图6为本发明实施例提供的一种贪心算法的原理示意图;
图7为本发明实施例提供的一种游戏中虚拟对象的寻路装置的示意图;
图8为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
生物寻路是游戏行业中的常见需求,在诸多游戏中均有广泛应用,如怪物AI(Artificial Intelligence,人工智能)、玩家自动模式、过场动画剧情等。但随着沙盒类游戏的发展以及玩家对游戏内容要求的提高,现有的寻路方法无法对沙盒类游戏给予高效的支持。如何找到一种高效的方法组织场景信息,并给出寻路结果,是游戏业界所关注的问题。
对于沙盒类游戏,其游戏场景主要具有动态变化的特性,如地图环境被改变或者怪物追逐玩家导致玩家不断移动等,上述寻路方法虽然可以实现沙盒类游戏中游戏场景的寻路,但均需要频繁对游戏场景地图进行扫描,并基于最新的游戏场景地图执行寻路算法,导致寻路消耗较大,影响了寻路的计算效率。基于此,本发明实施例提供了一种游戏中虚拟对象的寻路方法、装置及电子设备,该技术可以应用于多种游戏场景中,尤其适用于沙盒类游戏的游戏场景,以及开放世界、随机生成地形的游戏场景等。
为便于对本实施例进行理解,下面首先对本发明实施例提供的一种游戏中虚拟对象的寻路方法进行详细介绍。其中,执行主体为电子设备,该电子设备中存储有游戏的NavMesh组件,NavMesh组件是3D(3Dimension,三维)游戏世界中用于实现动态物体自动寻路的一种技术,将游戏中复杂的结构组织关系简化为带有一定信息的网格,这里网格也称为导航网格,以便在网格的基础上通过寻路算法实现自动寻路。在实际应用中,通过上述电子设备提供游戏的游戏场景和虚拟对象,该虚拟对象也可以称为虚拟角色或游戏角色,游戏场景为沙盒类游戏场景以及开放世界、随机生成地形的游戏场景等,电子设备控制虚拟对象在该游戏场景中移动;其中,电子设备可以是手机、电脑、笔记本、平板电脑等设备。
基于上述电子设备,本发明实施例提供了一种游戏中虚拟对象的寻路方法,如图1所示,该方法包括以下步骤:
步骤S102,获取游戏中的虚拟对象的位置信息;
具体地,响应针对于虚拟对象的自动寻路操作,确定该虚拟对象的位置信息;其中,位置信息包括虚拟对象在游戏场景中的初始位置和目标位置,这里初始位置为虚拟对象当前所在的位置,或者游戏载入时,虚拟对象在游戏场景中所处的位置,目标位置则为自动寻路操作对应的位置。例如,玩家(也称为游戏玩家或用户)控制虚拟对象执行某一任务,则该任务对应的位置则为虚拟对象的目标位置,此时自动寻路操作则为该任务的执行操作,如玩家为了获取某个游戏宝物,或者采集游戏道具等特定物品时,则该游戏宝物或游戏道具所在位置即为目标位置。
需要说明的是,如果上述电子设备提供的界面是触摸屏,则用户可以通过按压操作实现虚拟对象的自动寻路操作;如果界面是非触摸屏,则用户可以通过鼠标和/或键盘的点击操作实现虚拟对象的自动寻路操作,以获取虚拟对象的位置信息,因此,关于自动寻路操作的具体形式,本发明实施例在此不作限制说明。此外,上述玩家也称为游戏玩家或者用户等。
步骤S104,根据位置信息和游戏场景实时生成游戏场景对应的导航网格地图;
上述获取虚拟对象的位置信息之后,电子设备预先存储的游戏的NavMesh组件根据该位置信息和游戏场景实时生成游戏场景对应的导航网格地图;由于导航网格地图是实时生成的,因此,当游戏场景发生变更时,电子设备无需扫描该游戏的整个游戏地图,即可实现生成的导航网格地图与当前的游戏场景相对应,即本发明实施例通过位置信息和游戏场景实时生成游戏场景对应的导航网格地图,避免了寻路过程中多次重复扫描整个游戏地图,导致寻路消耗大的问题。
其中,导航网格地图由多个导航网格组成,每个导航网格均携带有高度信息和连通信息,并按照高度信息分布在导航网格地图中的不同平面上;此外,连通信息包括连通性和非连通性,虚拟对象可以在具有连通性的两个导航网格间可移动,在具有非连通性的两个导航网格间则不可移动,这里非连通性表征两个导航网格不相连,从而虚拟对象不可移动;因此,根据上述带有高度信息和连通信息的导航网格进行寻路,与现有的二维网格相比,避免了导航网格地图中相邻导航网格间的大量寻路计算消耗较大,导致寻路效率较低的问题,从而提高了寻路效率。
步骤S106,基于导航网格地图确定初始位置至目标位置的目标路径。
其中,目标路径中包括具有连通性的同高度导航网格,以及满足预设高度差范围且具有连通性的异高度导航网格;具体地,根据上述导航网格的高度信息和连通信息,可以快速确定具有连通性的同高度导航网格,避免了目标导航网格组中存在具有非连通性的两个相邻导航网格,导致虚拟对象无法移动的问题;此外,对于不同高度的导航网格,则需满足预设高度差范围且具有连通性,从而确保虚拟对象可以在不同高度的导航网格平稳移动,进而基于上述导航网格地图确定初始位置至目标位置的目标路径,不仅提高了目标路径的计算效率,还保证了虚拟对象在目标路径上移动的稳定性,提高了用户的游戏体验度。
本发明实施例提供的游戏中虚拟对象的寻路方法,根据虚拟对象的位置信息和游戏场景实时生成游戏场景对应的导航网格地图,并基于携带有高度信息和连通信息的导航网格确定初始位置至目标位置的目标路径,与现有基于二维网格的寻路方法相比,提高了目标路径的确定效率即寻路效率;以及当游戏场景改变时,通过位置信息和更新的游戏场景实时生成导航网格地图,保证了目标路径的准确度,同时避免了频繁扫描游戏地图,缓解了寻路消耗过大的问题,具有较好的实用价值。
在上述方法实施例的基础上,本发明实施例还提供了另一种游戏中虚拟对象的寻路方法,该方法重点描述了根据位置信息和游戏场景实时生成游戏场景对应的导航网格地图的过程。如图2所示,该方法包括以下步骤:
步骤S202,获取游戏中的虚拟对象的位置信息;
步骤S204,将游戏场景按照划分规则划分为预设尺寸的多个单位区域;
具体地,将游戏场景按照预设的划分规则划分为预设尺寸的多个单位区域;这里预设的划分规则可以为划分尺寸,将整个游戏场景或电子设备当前显示的游戏场景按照预设尺寸划分为多个单位区域,如将游戏场景划分为预设尺寸为16*16的多个单位区域;划分规则也可以为划分区域准则,如从虚拟对象的初始位置至目标位置的预设区域,或者以虚拟对象周围预设尺寸的划分区域等,并将上述预设区域或划分区域划分为预设尺寸的多个单位区域,这种与将整个游戏场景进行划分相比,避免了寻路中无效场景的划分,如湖泊或山洞等在寻路中无效的游戏场景等,从而提高了划分效率,进而提高了寻路效率。
需要说明的是,上述单位区域的预设尺寸可以在游戏载入前设置,也可以在游戏载入后实时生成导航网格地图中设置,本发明实施例对此不作限制说明。此外,在划分过程中,也可以按照预设角度对游戏场景进行划分,如按照用户或玩家相对于电子设备的俯视角进行划分等,以便玩家较清晰的感知划分过程。
此外,上述单位区域的预设尺寸还作为对应的沙盒游戏中构成游戏场景的基础尺寸,即在游戏场景改变时,按照该预设尺寸进行更新,并生成更新后的游戏场景对应的导航网格地图,从而避免了当游戏场景改变,频繁扫描整个游戏地图造成消耗较大的问题。以及,对于游戏场景中还包括多种元素几何体,如怪物、障碍物、植物和建筑等,当某个元素几何体处于两个单位区域的分割线时,还可以将该单位区域继续进行划分,如将某个16*16的单位区域划分为4个8*8的区域等,具体可以根据实际情况进行设置,本发明实施例对此不作限制说明。
步骤S206,基于位置信息确定目标单位区域集合;其中,目标单位区域集合包括从初始位置至目标位置的多个目标单位区域;
对于划分后的多个单位区域,根据虚拟对象的位置信息,还可以确定目标单位区域集合,这里目标单位区域集合包括从初始位置至目标位置的多个目标单位区域,即从初始位置所在的单位区域开始,至目标位置所在的单位区域之间的多个单位区域,从而根据目标单位区域集合和对应的游戏场景实时生成导航网格地图,避免了划分后的单位区域中包含多个无效的单位区域,导致导航网格地图生成效率慢的问题,进而提高了寻路效率。
步骤S208,根据目标单位区域集合和对应的游戏场景实时生成游戏场景对应的导航网格地图;
具体地,游戏场景包含有多种元素几何体对应的场景模型,这里每个场景模型是通过对应的基础网格组成,如一朵花对应的场景模型,由4个基础网格组成,一座山对应的场景模型可能由多个基础网格组成,由于场景模型的大小不等,因此,这里组成每种场景模型的基础网格的尺寸可能相同,也可能不同,如组成花的场景模型的基础网格的尺寸为2*2,而组成山的场景模型的基础网格的尺寸则为6*6等,具体可以根据实际情况如游戏的玩法设置等确定。
由于划分后的多个单位区域对应的游戏场景中的场景模型可能相同,也可能不同,因此,上述根据目标单位区域集合和对应的游戏场景实时生成游戏场景对应的导航网格地图的过程如下:
步骤A1,获取每个单位区域内的场景模型;
其中,场景模型包括多个基础网格,由于游戏场景中场景模型不同,因此,上述多个基础网格也可称为组成场景模型的多种基础网格,每个基础网格均携带有参数信息,该参数信息包括尺寸信息和属性信息,其中尺寸信息指基础网格的尺寸大小,如2*2或者6*6等;属性信息则用于表征虚拟对象在该基础网格上是否可行走,如对于组成花的场景模型的基础网格,该基础网格的属性信息为不可行走,而对于组成道路的场景模型的基础网格,则携带的属性信息为可行走,从而通过属性信息还可以对基础网格进行分类,以便在寻路过程中实现虚拟对象不能行走的基础网格,进一步提高了寻路的效率和准确度。
步骤A2,根据基础网格的参数信息确定单位区域的有效行走区域;其中,有效行走区域包括多个目标基础网格;
由于上述基础网格携带的参数信息包括尺寸信息和属性信息,因此,可根据基础网格的参数信息确定每个单位区域的有效行走区域。其中一种可能的有效行走区域确定方式包括:根据基础网格的尺寸信息和预设尺寸确定多个目标基础网格,以得到该单位区域的有效行走区域;具体地,可以将每个基础网格的尺寸信息和预设尺寸进行比对,也可以将多个相邻的基础网格组成的网格的尺寸信息与预设尺寸进行比对,以便根据确定的目标基础网格得到该单位区域的有效行走区域。
为了便于了解,这里举例说明,如对于某个单位区域内的多个基础网格,预设尺寸为4*4,则对于尺寸信息为6*6的基础网格,该尺寸信息大于预设尺寸,则将6*6的基础网格确定为目标基础网格;和/或,对于多个相邻2*2的基础网格,如果组成的网格的尺寸大于或等于预设尺寸,则将多个相邻2*2的基础网格组成的网格作为目标基础网格,如相邻4个2*2的基础网格组成的网格,其尺寸大于预设尺寸,此时可以将该网格作为一个目标基础网格;因此,对于每个单位区域内的基础网格,可以直接将每个基础网格的尺寸信息与预设尺寸进行比对,也可以直降将多个相邻的基础网格组成的网格的尺寸信息与预设尺寸进行比对,或者先直接将每个基础网格的尺寸信息与预设尺寸进行比对,对于小于预设尺寸的基础网格,再通过将多个相邻的基础网格组成的网格的尺寸信息和预设尺寸进行比对,以便确定多个目标基础网格,从而得到该单位区域的有效行走区域。
另一种可能的有效行走区域确定方式包括:根据基础网格的属性信息确定多个目标基础网格,以得到单位区域的有效行走区域;具体地,直接根据基础网格的属性信息确定满足虚拟对象行走的目标基础网格,该确定方式可以快速的确定目标基础网格,从而提高了寻路效率。需要说明的是,这里属性信息不仅包括虚拟对象在该基础网格上可行走移动,也包括虚拟对象在该基础网格上可站立,即虚拟对象在该基础网格上可站立,并移动至下一个目标基础网格。
此外,在实际应用中,上述两种有效行走区域确定方式可以根据实际情况进行设置,也可以同时采用两种确定方式以确定有效行走区域,从而提高了有效行走区域的效率和精度,进而提高了寻路精度。
步骤A3,将有效行走区域内同高度的目标基础网格按照相邻关系进行合并,得到预设形状的导航网格;
对于上述确定的每个单位区域的多个目标基础网格,首先按照高度进行分组,可以得到多组同高度的目标基础网格。具体地,由于游戏场景中场景模型的尺寸不同,因此,组成每个场景模型的基础网格的尺寸信息除了具有平面尺寸之外,还对应有高度信息,从而根据基础网格组成的导航网格携带有高度信息。
为了便于理解,这里举例说明,如对于三维空间,这里同高度可以理解为同一个y轴平面,如在y=200的平面上,有一个目标基础网格A,(x,z)=(0,0),将其分到第一组,在y=200的平面上,存在另一个目标基础网格B,(x,z)=(0,1),由于目标基础网格B和目标基础网格A高度相同,则分为同一组;而对于y=201的平面上的目标基础网格C,(x,z)=(0,2),由于目标基础网格C和目标基础网格A(或目标基础网格B)的高度不同,因此,目标基础网格C不能与目标基础网格A和目标基础网格B分为同一组。
对于上述同一组内同高度的目标基础网格,按照相邻关系合并成预设形状的导航网格,以得到游戏场景对应的导航网格地图;其中,预设形状包括但不仅限于正方形和矩形等,本发明实施例优选预设形状为矩形或者正方形。
步骤A4,确定导航网格间的连通关系,得到游戏场景对应的导航网格地图。
对于上述导航网格地图中的导航网格,计算任一导航网格与其相邻导航网格之间的连通性;其中,虚拟对象在具有连通性的两个导航网格间可移动,这里导航网格与其相邻导航网格可以处于同一单位区域,也可能处于相邻单位区域,本发明实施例对此不作限制说明。
具体地,连通性的计算过程如下:根据两个相邻导航网格的高度信息计算高度差;判断该高度差是否满足高度差范围;如果是,则确定两个相邻导航网格具有双向移动的连通性,如果高度差不满足高度差范围,则确定两个相邻导航网格具有单向移动的连通性。因此,本发明实施例通过导航网格的高度信息确定导航网格间的连通性,与现有的导航网格间通过大量计算以寻路相比,提高了寻路效率。需要说明的是,上述高度差范围可以根据实际情况进行设置,本发明实施例对此不作限制说明。
为了便于理解,这里举例说明,设置高度差范围为[-2,2],如果同一单位区域内的两个相邻导航网格如导航网格A和导航网格B,根据其高度信息计算高度差,如果高度差小于2,即满足高度差范围,则导航网格A和导航网格B具有连通性,且为双向移动的连通性,则虚拟对象可以从导航网格A移动至导航网格B,也可以从导航网格B移动至导航网格A;如果高度差的绝对值大于或等于2,即不满足高度差范围,且,导航网格A的高度信息大于导航网格B的高度信息,则导航网格A和导航网格B具有连通性,且为单向移动的连通性,虚拟对象只能从导航网格A移动至导航网格B,即从较高的导航网格移动至较低的导航网格。
步骤S210,基于导航网格地图确定初始位置至目标位置的目标路径。
上述游戏中虚拟对象的寻路方法,根据位置信息和游戏场景实时生成游戏场景对应的导航网格地图,并根据导航网格的高度信息确定导航网格间的连通性,与现有基于二维网格的寻路方法相比,提高了目标路径的确定效率即寻路效率。
进一步的,该方法还包括:响应针对于场景模型的变更操作,得到变更场景模型对应的变更导航网格;根据变更导航网格与其相邻导航网格的高度信息计算目标高度差;根据目标高度差确定变更导航网格与其相邻导航网格之间的连通性;根据连通性更新导航网格地图中的连通信息。
具体地,上述变更操作包括但不仅限于建造操作和拆卸操作等,如玩家针对于游戏场景中某个场景模型进行拆卸或建造等,从而导致该场景模型对应的导航网格发生改变,即组成该导航网格的目标基础网格进行拆分,并重新组成变更导航网格,这里变更导航网格可能为一个,也可能为多个,与原导航网格相比,变更导航网格可能缺少了一个或多个基础网格等,从而导致该变更导航网格的高度信息发生变更,因此,需要重新计算变更导航网格与其相邻导航网格的连通性,即根据变更导航网格与其相邻导航网格的高度信息计算目标高度差;并根据目标高度差确定变更导航网格与其相邻导航网格之间的连通性;以及根据连通性更新导航网格地图中的连通信息。需要说明的是,上述变更导航网格与其相邻导航网格可能处于同一单位区域,也可能处于不同单位区域,具体连通性的计算过程可以参考前述实施例,本发明实施例对此不再详细赘述。
因此,本发明实施例提供的游戏中虚拟对象的寻路方法,当游戏场景改变时,通过位置信息和更新的游戏场景实时生成导航网格地图,即通过变更导航网格的高度信息更新导航网格地图的连通信息,保证了寻路过程中目标路径的准确度,同时避免了频繁扫描游戏地图,缓解了寻路消耗过大的问题,具有较好的实用价值。
在图1的基础上,本发明实施例提供了另一种游戏中虚拟对象的寻路方法,该方法重点描述基于导航网格地图确定初始位置至目标位置的目标路径的过程。如图3所示,该方法包括以下步骤:
步骤S302,获取游戏中的虚拟对象的位置信息;
步骤S304,根据位置信息和游戏场景实时生成游戏场景对应的导航网格地图;
上述步骤S302~S304,可以参考前述方法实施例,本发明实施例对此不再详细赘述。
步骤S306,基于导航网格地图确定初始位置至目标位置的目标导航网格组;
现有的生物寻路算法主要包括:纯A*算法、深度优先搜索算法和贪心算法;其中,对于纯A*算法,如图4所示,针对生物要到达的终点B,先进行包含该生物与终点B有限的地图范围扫描,然后从起点A开始,对四周方格进行F值计算,选择F值最小的网格,直至找到终点B或者该地图全部扫描为止,其中,F=G+H,G表示即将移动的网格与起点之间的距离,F表示即将移动的网格与终点之间的距离。对于深度优先搜索算法,则如图5所示,先进行包含生物与终点有限的地图范围扫描,然后从起点A开始,四方位任意选择任一方位直线探测直至有障碍物,如图5中带有斜线的网格部分对应的方位,并朝其余方位中的任一方位继续探测,直至找到终点或者回退至起点为止;对于贪心算法,则如图6所示,仍先进行包含生物与终点有限的地图范围扫描,然后从起点开始,对即将移动的四个网格分别计算至终点的距离,选择距离最小的网格移动,直至移动到终点或者扫描完地图为止,如果游戏场景中存在碗状的障碍物,如图6中虚线部分,则将会计算出多余的路线,导致寻路效率较低,不能满足实际应用需求。
由于沙盒类游戏的游戏场景是动态变化的,因此,如果采用深度优先搜索算法和贪心算法,虽然可以实现导航网格地图的寻路,但效率较慢。因此,本发明实施例采用A*算法,且,由于根据基础网格生成的导航网格地图中导航网格的数量少于基础网格,故在选择F值最小的导航网格时,减少了计算量,提高了目标路径的确定效率。
具体地,在导航网格地图中,根据初始位置和目标位置对应的导航网格,可以将虚拟对象的寻路问题转换为对导航网格构成的最短路径求解问题。本发明实施例基于A*算法对导航网格地图中的导航网格执行寻路算法,得到从初始位置至目标位置的最短路径对应的目标导航网格组;其中,该目标导航网格组包括具有连通性的同高度导航网格,以及满足预设高度差范围且具有连通性的异高度导航网格。以及,上述执行寻路算法的过程中,由于导航网格地图是根据位置信息和场景信息实时生成的,因此,与现有的纯A*算法相比,无需重复包含虚拟对象与目标位置有限的地图范围扫描,缓解了由于重复地图扫描导致寻路消耗过大的问题。
步骤S308,基于目标导航网格组,确定初始位置至目标位置的目标路径。
对于上述目标导航网格组,基于漏斗算法,确定该目标导航网格组中目标导航网格对应的路径点;并根据多个路径点,得到初始位置至目标位置的目标路径。具体地,对于目标导航网格组中的多个目标导航网格,从初始位置开始,通过漏斗算法,可以得到多个目标导航网格对应的路径点,这里路径点可能为每个目标导航网格均对应的路径点,也可能是目标导航网格组中部分目标导航网格对应的路径点,具体可以根据实际情况进行设置,本发明实施例对此不作限制说明。
进一步的,在确定初始位置至目标位置的目标路径的步骤之后,该方法还包括:响应针对于虚拟对象的移动操作,控制虚拟对象按照目标路径移动至目标位置。由于目标路径中各个路径点对应的目标导航网格间具有连通性,从而保证了虚拟对象在目标路径上移动的稳定性,进而提高了游戏过程中虚拟对象的移动效果。
因此,上述游戏中虚拟对象的寻路方法,通过多个目标导航网格确定目标路径,不仅可以提高寻路效率,还可以保证虚拟对象移动过程中保持自然和稳定,从而提高了虚拟对象的移动效果,此外,由于沙盒类游戏中游戏场景可以动态变化,因此,在提高寻路效率的同时,对于怪物追逐玩家对应的虚拟对象的游戏场景,还可以扩大追踪距离,具有较好的实用价值,提高了玩家游戏体验度。
在上述方法实施例的基础上,本发明实施例还提供了一种游戏中虚拟对象的寻路装置,通过电子设备显示游戏的游戏场景。如图7所示,该装置包括依次连接的:位置信息获取模块71、导航网格地图生成模块72和目标路径确定模块73;其中,各个模块的功能如下:
位置信息获取模块71,用于获取游戏中的虚拟对象的位置信息,其中,位置信息包括虚拟对象在游戏场景中的初始位置和目标位置;
导航网格地图生成模块72,用于根据位置信息和游戏场景实时生成游戏场景对应的导航网格地图;其中,导航网格地图中的导航网格均对应有高度信息和连通信息;
目标路径确定模块73,用于基于导航网格地图确定初始位置至目标位置的目标路径;其中,目标路径包括具有连通性的同高度导航网格,以及满足预设高度差范围且具有连通性的异高度导航网。
本发明实施例提供的游戏中虚拟对象的寻路装置,根据虚拟对象的位置信息和游戏场景实时生成游戏场景对应的导航网格地图,并基于携带有高度信息和连通信息的导航网格确定初始位置至目标位置的目标路径,与现有基于二维网格的寻路方法相比,提高了目标路径的确定效率即寻路效率;以及当游戏场景改变时,通过位置信息和更新的游戏场景实时生成导航网格地图,保证了目标路径的准确度,同时避免了频繁扫描游戏地图,缓解了寻路消耗过大的问题,具有较好的实用价值。
在其中一种可能的实施方式中,上述导航网格地图生成模块72还用于:将游戏场景按照划分规则划分为预设尺寸的多个单位区域;基于位置信息确定目标单位区域集合;其中,目标单位区域集合包括从初始位置至目标位置的多个目标单位区域;根据目标单位区域集合和对应的游戏场景实时生成游戏场景对应的导航网格地图。
在另一种可能的实施方式中,上述游戏场景包含有多种场景模型,上述根据目标单位区域集合和对应的游戏场景实时生成游戏场景对应的导航网格地图,包括:获取每个单位区域内的场景模型;其中,场景模型包括多个基础网格,每个基础网格携带有参数信息;根据基础网格的参数信息确定单位区域的有效行走区域;其中,有效行走区域包括多个目标基础网格;将有效行走区域内同高度的目标基础网格按照相邻关系进行合并,得到预设形状的导航网格;确定导航网格间的连通关系,得到游戏场景对应的导航网格地图。
在另一种可能的实施方式中,上述参数信息包括尺寸信息和属性信息,上述根据基础网格的参数信息确定单位区域的有效行走区域,包括:根据基础网格的尺寸信息和预设尺寸确定多个目标基础网格,以得到单位区域的有效行走区域;和/或;根据基础网格的属性信息确定多个目标基础网格,以得到单位区域的有效行走区域;其中,属性信息用于表征虚拟对象在基础网格上是否可行走。
在另一种可能的实施方式中,上述确定导航网格间的连通关系,包括:计算任一导航网格与其相邻导航网格之间的连通性;其中,虚拟对象在具有连通性的两个导航网格间可移动。
在另一种可能的实施方式中,上述计算任一导航网格与其相邻导航网格之间的连通性,包括:根据两个相邻导航网格的高度信息计算高度差;根据高度差确定相邻导航网格之间的连通性。
在另一种可能的实施方式中,上述根据高度差确定相邻导航网格之间的所述连通性,包括:判断高度差是否满足高度差范围;如果是,则确定两个相邻导航网格具有双向移动的连通性。
在另一种可能的实施方式中,该装置还包括:如果高度差不满足高度差范围,则确定两个相邻导航网格具有单向移动的连通性。
在另一种可能的实施方式中,该装置还包括:响应针对于场景模型的变更操作,得到变更场景模型对应的变更导航网格;根据变更导航网格与其相邻导航网格的高度信息计算目标高度差;根据目标高度差确定变更导航网格与其相邻导航网格之间的连通性;根据连通性更新导航网格地图中的连通信息。
在另一种可能的实施方式中,上述目标路径确定模块73还用于:基于导航网格地图确定初始位置至目标位置的目标导航网格组;其中,目标导航网格组包括具有连通性的同高度导航网格,以及满足预设高度差范围且具有连通性的异高度导航网格;基于目标导航网格组,确定初始位置至目标位置的目标路径。
在另一种可能的实施方式中,上述基于导航网格地图确定初始位置至目标位置的目标导航网格组,包括:基于A*算法对导航网格地图中的导航网格执行寻路算法,得到从初始位置至目标位置的目标导航网格组。
在另一种可能的实施方式中,上述基于目标导航网格组,确定初始位置至目标位置的目标路径,包括:基于漏斗算法,确定目标导航网格组中目标导航网格对应的路径点;根据多个路径点,得到初始位置至目标位置的目标路径。
在另一种可能的实施方式中,上述目标路径确定模块73之后,该装置还包括:响应针对于虚拟对象的移动操作,控制虚拟对象按照目标路径移动至目标位置。
在另一种可能的实施方式中,位置信息获取模块71还用于:响应针对于虚拟对象的自动寻路操作,确定虚拟对象的位置信息。
本发明实施例提供的游戏中虚拟对象的寻路装置,与上述实施例提供的游戏中虚拟对象的寻路方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
本发明实施例还提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述游戏中虚拟对象的寻路方法。
参见图8所示,该电子设备包括处理器80和存储器81,该存储器81存储有能够被处理器80执行的机器可执行指令,该处理器80执行机器可执行指令以实现上述游戏中虚拟对象的寻路方法。
进一步地,图8所示的电子设备还包括总线82和通信接口83,处理器80、通信接口83和存储器81通过总线82连接。
其中,存储器81可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口83(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线82可以是ISA(IndustrialStandard Architecture,工业标准结构总线)总线、PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线或EISA(Enhanced Industry StandardArchitecture,扩展工业标准结构)总线等。上述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器80可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器80中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器80可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器81,处理器80读取存储器81中的信息,结合其硬件完成前述实施例的方法的步骤。
本实施例还提供一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述游戏中虚拟对象的寻路方法。
本发明实施例所提供的游戏中虚拟对象的寻路方法、装置和电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
- 游戏中虚拟对象的寻路方法、装置及电子设备
- 用于虚拟游戏中游戏对象的寻路方法及装置