发布信息

三维虚拟场景中的寻路方法、装置、存储介质与电子设备与流程 专利技术说明

作者:admin      2023-07-26 11:22:23     871



计算;推算;计数设备的制造及其应用技术1.本公开涉及计算机技术领域,尤其涉及一种三维虚拟场景中的寻路方法、三维虚拟场景中的寻路装置、计算机可读存储介质与电子设备。背景技术:2.随着开放大世界游戏的快速发展,游戏中的场景地图也呈现出越来越大的趋势。在场景地图中进行自动寻路,不仅能够避免游戏玩家在游戏世界巨大自由的空间中迷路,还能够在一定程度上较少游戏玩家的操作负担。3.相关技术中,通常都是将基于俯视视角,产生单一平面的寻路数据,进行寻路。在寻路环境复杂多变时,单一平面的寻路数据难以满足自动寻路的需求,适用性较差。4.需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。技术实现要素:5.本公开提供了一种三维虚拟场景中的寻路方法、三维虚拟场景中的寻路装置、计算机可读存储介质与电子设备,进而至少在一定程度上克服相关技术中适用性较差的问题。6.本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。7.根据本公开的第一方面,提供一种三维虚拟场景中的寻路方法,所述三维虚拟场景包括目标虚拟对象和多个可寻路场景,所述多个可寻路场景分别配置有对应的寻路网格路径数据,所述方法包括:在所述三维虚拟场景中确定一目标位置;基于所述目标位置和所述目标虚拟对象在所述三维虚拟场景中的第一位置,从所述多个可寻路场景对应的场景包围盒中筛选第一场景包围盒,所述第一位置为所述目标虚拟对象的寻路起始位置;基于所述第一场景包围盒对应的寻路网格路径数据,确定从所述第一位置移动至所述目标位置的移动路径,以使所述目标虚拟对象能够沿所述移动路径朝所述目标位置进行移动。8.根据本公开的第二方面,提供一种三维虚拟场景中的寻路装置,所述三维虚拟场景包括目标虚拟对象和多个可寻路场景,所述多个可寻路场景分别配置有对应的寻路网格路径数据,所述装置包括:目标位置确定模块,用于在所述三维虚拟场景中确定一目标位置;包围盒筛选模块,用于基于所述目标位置和所述目标虚拟对象在所述三维虚拟场景中的第一位置,从所述多个可寻路场景对应的场景包围盒中筛选第一场景包围盒,所述第一位置为所述目标虚拟对象的寻路起始位置;虚拟对象寻路模块,用于基于所述第一场景包围盒对应的寻路网格路径数据,确定从所述第一位置移动至所述目标位置的移动路径,以使所述目标虚拟对象能够沿所述移动路径朝所述目标位置进行移动。9.根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一种三维虚拟场景中的寻路方法。10.根据本公开的第四方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一种三维虚拟场景中的寻路方法。11.本公开的技术方案具有以下有益效果:12.上述三维虚拟场景中的寻路过程中,在三维虚拟场景中确定一目标位置;基于目标位置和目标虚拟对象在三维虚拟场景中的第一位置,从多个可寻路场景对应的场景包围盒中筛选第一场景包围盒,第一位置为目标虚拟对象的寻路起始位置;基于第一场景包围盒对应的寻路网格路径数据,确定从所述第一位置移动至所述目标位置的移动路径,以使目标虚拟对象能够沿所述移动路径朝目标位置进行移动。本公开通过将三维虚拟场景划分成多个寻路场景,借助寻路场景对应的场景包围盒中寻路网格路径数据为目标虚拟对象寻路,实现了三维立体的寻路,不仅可以适用于寻路环境较为复杂多变的应用场景,具备较强的适用性,还能够在一定程度上增加目标虚拟对象探索范围的维度,丰富目标虚拟对象的寻路场景,提升游戏玩家的寻路体验。13.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。附图说明14.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施方式,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。15.图1示出本示例性实施方式中一种三维虚拟场景中的寻路方法的流程图;16.图2示出本示例性实施方式中一种场景包围盒筛选的流程图;17.图3a示出本示例性实施方式中一种将可寻路场景对应的场景包围盒进行分层的实例图;18.图3b示出本示例性实施方式中一种寻路网格层实例图;19.图4a示出本示例性实施方式中一种采用碰撞检测方式生成路点的实例图;20.图4b示出本示例性实施方式中一种采用碰撞检测方式生成溶洞寻路网格的实例图;21.图5示出本示例性实施方式中一种确定从第一位置移动至目标位置的移动路径的流程图;22.图6示出本示例性实施方式中一种目标虚拟对象经过具有单一出入口的可寻路场景的流程图;23.图7示出本示例性实施方式中一种基于寻路策略控制目标虚拟对象移动的流程图;24.图8示出本示例性实施方式中一种辅助目标虚拟对象寻路避障的流程图;25.图9示出本示例性实施方式中一种三维虚拟场景中的寻路装置的结构框图;26.图10示出本示例性实施方式中一种用于实现上述三维虚拟场景中的寻路方法的电子设备。具体实施方式27.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。28.此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。29.本文中,“第一”、“第二”等是对特定对象的标记,而并非限定对象的数量或次序。30.相关技术中,通常都是将基于俯视视角,产生单一平面的寻路数据,进行寻路。由于寻路数据维度较为单一,在寻路环境复杂多变的情况下,例如高低起伏的山地、遍布珊瑚的海洋、水下溶洞等较为复杂多变的寻路环境,单一平面的寻路数据难以满足自动寻路的需求,适用性较差。31.鉴于上述一个或多个问题,本公开的示例性实施方式提供一种三维虚拟场景中的寻路方法、三维虚拟场景中的寻路装置、计算机可读存储介质与电子设备,以便能够实现复杂多变寻路场景下的寻路。32.如图1所示,本公开的示例性实施方式提供一种三维虚拟场景中的寻路方法的流程图,该三维虚拟场景包括目标虚拟对象和多个可寻路场景,多个可寻路场景分别配置有对应的寻路网格路径数据,具体包括以下步骤s110至步骤s130:33.步骤s110,在三维虚拟场景中确定一目标位置;34.步骤s120,基于目标位置和目标虚拟对象在三维虚拟场景中的第一位置,从多个可寻路场景对应的场景包围盒中筛选第一场景包围盒,第一位置为目标虚拟对象的寻路起始位置;35.步骤s130,基于第一场景包围盒对应的寻路网格路径数据,确定从第一位置移动至目标位置的移动路径,以使目标虚拟对象能够沿移动路径朝目标位置进行移动。36.上述三维虚拟场景中的寻路过程中,通过将三维虚拟场景划分成多个寻路场景,借助寻路场景对应的场景包围盒中寻路网格路径数据为目标虚拟对象寻路,实现了三维立体的寻路,不仅可以适用于寻路环境较为复杂多变的应用场景,具备较强的适用性,还能够在一定程度上增加目标虚拟对象探索范围的维度,丰富目标虚拟对象的寻路场景,提升游戏玩家的寻路体验。37.需要说明的是,在执行图1所示的步骤时,可通过预设帧率不断检测目标虚拟对象的当前位置,以便获取目标虚拟对象最新的当前位置信息,以不断更新第一场景包围盒,从而实现对目标虚拟对象的跨场景寻路。38.下面分别对图1中的每个步骤进行具体说明。39.步骤s110,在三维虚拟场景中确定一目标位置。40.其中,三维虚拟场景可以是各类开放世界游戏中的三维虚拟场景,可包含目标虚拟对象以及多个可寻路场景。41.其中,目标虚拟对象指的是三维虚拟场景中的待寻路虚拟对象,可以是三维虚拟场景中可被控制的动态对象。可选地,该动态对象可以是虚拟人物、虚拟动物、动漫人物等。虚拟对象可以是游戏玩家通过输入设备进行控制的角色,可以是通过训练设置在虚拟环境中的人工智能(artificialintelligence,ai),还可以是设置在虚拟场景对战中的非玩家角色(non-playercharacter,npc)。42.其中,可寻路场景可以是三维虚拟场景中能够容纳虚拟对象通行的局部虚拟场景,例如平原寻路场景、山地寻路场景、溶洞寻路场景、海洋寻路场景等,配置有对应的寻路网格路径数据。需要说明的是,受可寻路场景位置、大小以及方向的影响,各可寻路场景之间可能存在嵌套关系。示例性的,山地寻路场景中包含一猎场寻路场景。43.具体的,可预先对三维虚拟场景进行划分,得到多个可寻路场景。可选的,为了确保寻路的效率以及准确性,可将可寻路场景的划分与场景区域属性相关联,例如场景区域地形起伏越小、结构越简单,可寻路场景的划分的越粗略;场景区域地形起伏越大、结构越复杂,可寻路场景的划分越精细。44.其中,目标位置指的是寻路的终点位置,目标位置可由三维虚拟场景中的玩家选取操作确定,也可根据预先配置的游戏策略确定,这里不做具体限定。45.步骤s120,基于目标位置和目标虚拟对象在三维虚拟场景中的第一位置,从多个可寻路场景对应的场景包围盒中筛选第一场景包围盒。46.其中,第一位置为目标虚拟对象的寻路起始位置。可选的,由于目标虚拟对象的可移动特性,在实际应用过程中,可以根据目标虚拟对象在三维虚拟场景中的当前所处的位置,实时更新寻路起始位置,即第一位置,以实现对目标虚拟对象的实时寻路。47.其中,场景包围盒指的是可以容纳可寻路场景的最小立方体。需要说明的是,可寻路场景与场景包围盒之间存在一一对应的关系,即每个可寻路场景都可以对应一场景包围盒。不同场景包围盒之间受可寻路场景位置、方向、大小的影响,可能存在嵌套的关系。48.其中,第一场景包围盒可以是包含目标虚拟对象在三维虚拟场景中的第一位置的场景包围盒。在该种情况下,目标位置可能与第一位置处于相同的场景包围盒内,也可能处于不同的场景包围盒内。49.在一种可选的实施方式中,在执行步骤s120之前,可预先基于多个可寻路场景对应的场景包围盒之间的嵌套关系,配置多个可寻路场景对应的场景包围盒的优先级。50.具体的,在基于多个可寻路场景对应的场景包围盒之间的嵌套关系,配置多个可寻路场景对应的场景包围盒的优先级时,嵌套在里的场景包围盒(即体积较小的场景包围盒)可配置较高的优先级,嵌套在外的场景包围盒(即体积较大的场景包围盒)可配置较低的优先级。51.存在可寻路场景对应的场景包围盒之间没有嵌套关系时,可选的,还可以根据目标虚拟对象与各可寻路场景间的距离,确定各可寻路场景的优先级。示例性的,可将距离目标虚拟对象较近的可寻路场景配置较高的优先级,距离目标虚拟对象较远的可寻路场景配置较低的优先级。52.基于嵌套关系或距离远近设定优先级,来筛选第一场景包围盒,可使得优先级越高的场景包围盒对应的寻路网格数据可以优先被优先使用,进而确保寻路的准确度和细致度。53.在一种可选的实施方式中,步骤s120中基于目标位置和目标虚拟对象在三维虚拟场景中的第一位置,从多个可寻路场景对应的场景包围盒中筛选第一场景包围盒,具体可通过以下步骤来实现:基于目标位置和第一位置,从多个可寻路场景对应的场景包围盒中按照优先级从高到低的顺序筛选第一场景包围盒。54.具体的,可基于多个可寻路场景对应的场景包围盒的优先级,从多个可寻路场景对应的场景包围盒中筛选包含第一位置的第一场景包围盒,并根据目标虚拟对象在寻路过程中的位置信息,不断更新第一场景包围盒,直到目标虚拟对象可移动至目标位置。55.可选的,从多个可寻路场景对应的场景包围盒中筛选包含第一位置的第一场景包围盒时,可以按照多个可寻路场景对应的场景包围盒的优先级,将多个可寻路场景对应的场景包围盒进行分组,得到多个优先级不同的包围盒集合;按照优先级从高到低的次序,从多个优先级不同的包围盒集合中提取包含第一位置的第一场景包围盒。56.上述步骤中,对场景包围盒的筛选操作,可以进一步减少所需处理寻路网格路径数据的数据量,进而确保寻路效率。57.示例性的,如图2所示,提供了一种场景包围盒筛选的流程示意图,具体可包含以下步骤:58.步骤s201,设定标定优先级为最高;59.步骤s202,基于标定优先级,获取与标定优先级相匹配的待筛选包围盒集合;60.步骤s203,判断该待筛选包围盒集合中是否存在包围盒元素,若是则执行步骤s204,若否则执行步骤s206;61.步骤s204,检测该待筛选包围盒集合中是否存在包含第一位置的场景包围盒,若是执行步骤s205,若否则执行步骤s207;62.步骤s205,判断包含第一位置的场景包围盒是否为记录的已进入场景包围盒,若是则执行步骤s210,若否则执行步骤s209;63.步骤s206,判断该待筛选包围盒集合的优先级是否达到最低优先级,若否执行步骤s207,若是则执行步骤s208;64.步骤s207,降低标定优先级,并跳转至步骤s202;65.步骤s208,清除记录的已进入场景包围盒,并执行步骤s210;66.步骤s209,更新记录的已进入场景包围盒,并执行步骤s210;67.步骤s210,结束。68.其中,已进入场景包围盒用于表示目标虚拟对象所进入的场景包围盒。69.通过低帧率检测目标虚拟对象在寻路过程中的位置信息,将筛选出的第一场景包围盒不断进行记录和更新,可使得目标虚拟对象不断朝目标位置进行移动,从而实现针对目标虚拟对象的跨场景寻路。70.在筛选出第一场景包围盒后,可继续执行步骤s130。71.步骤s130,基于第一场景包围盒对应的寻路网格路径数据,确定从第一位置移动至目标位置的移动路径,以使目标虚拟对象能够沿移动路径朝目标位置进行移动。72.其中,寻路网格路径数据可用于表征相应可寻路场景的路径信息。具体的,可预先为各可寻路场景对应的场景包围盒创建寻路网格,通过获取第一场景包围盒对应的寻路网格路径数据,确定目标虚拟对象的移动路径,进而控制目标虚拟对象朝三维虚拟场景中的目标位置进行移动。73.在一种可选的实施方式中,还可以在多个可寻路场景对应的场景包围盒中分别创建寻路网格,以便采用寻路网格记载寻路网格路径数据。74.由于采用分层处理的方式适用于大范围且复杂度较低的环境,碰撞检测的方式灵活度更高,可选的,可以通过以下步骤来创建寻路网格:采用分层处理的方式,在可寻路场景对应的场景包围盒中分别创建包含多个高度层级的寻路网格;采用碰撞检测的方式,对包含多个高度层级的寻路网格进行细节调整,得到最终寻路网格。75.示例性的,采用分层处理的方式,在可寻路场景对应的场景包围盒中创建包含多个高度层级的寻路网格时,可采用navmeshgraph生成组件进行构建,以尽可能保留垂直方向的路径信息。其中,navmeshgraph是一种主流寻路网格,通过三角形网格来记录环境的路径信息,三角形的顶点通常坐落在网格的边缘,三角形的中心点来指代路点进行寻路,可以很好地适应场景环境细节,并且降低寻路路点数量,提升查找效率,适用于大范围、复杂度较低的环境,例如平坦的海面、室内地面、岛屿海滩等。76.需要说明的是,同样的高度范围内,层级数越多,在垂直移动时效果越好,因为往上或者往下移动更短的距离就能到达新一层网格,但是由于分的层级数越多,计算开销也会越大,因而在实际应用过程中,可视具体应用情况和需求确定分层的层级数,这里不做具体限定。77.可选的,可以将多个可寻路场景中的每一可寻路场景被配置为多个高度层级,每一高度层级具有与高度层级相匹配的网格寻路数据。78.如图3a所示,提供了一种将可寻路场景对应的场景包围盒进行分层的实例图。具体的,可将可寻路场景对应的场景包围盒301作为扫描范围,对场景包围盒301进行分层,得到层级302,为了便于展示,这里只划分了一层。在划分层级302后,可在层级302中生成寻路网格,得到寻路网格层。需要说明的是,在划分多个高度层级时,可得到多个寻路网格层,如图3b所示,提供了一种寻路网格层实例图,该寻路网格层由多边形组成,勾画出了该层的细节轮廓。不同寻路网格层可记载各自所在高度平面的网格寻路数据。79.示例性的,采用碰撞检测的方式,对包含多个寻路网格层的寻路网格进行细节调整时,可采用pointgraph生成组件进行实现。其中,pointgraph是一种基础寻路网格,本质是由一个个独立的路点连接而成的路网,它的优势是灵活可变,可以随时增加或者减少路点,并可以通过简单的连接来保存最为基本的空间环境结构。80.具体的,可将可寻路场景进一步细化为更小的寻路场景,并采用碰撞检测的方式,为这些小的寻路场景生成寻路网格,以进一步细化可寻路场景对应的寻路网格的细节。81.如图4a所示,提供了一种采用碰撞检测方式生成路点的实例图。具体的,在采用碰撞检测的方式创建寻路网格时,可将可寻路场景对应的场景包围盒401作为扫描范围,并在该扫描范围内确定若干个预生成路点,并将这些预生成路点与场景障碍物402进行碰撞检测,即判断各预生产路点是否被场景中虚拟障碍物402覆盖;若预生成路点被场景中虚拟障碍物402覆盖,则该预生成路点为不可走路点,若预生成路点未被场景中虚拟障碍物402覆盖,则该预生成路点为可走路点。在确定可走路点后,可基于预设路点距离阈值,确定可走路点之间的连接关系,得到由碰撞检测方式生成的寻路网格。82.如图4b所示,提供了一种采用碰撞检测方式生成溶洞寻路网格的实例图。83.可选的,还可以根据三维虚拟场景中各可寻路场景的出入口状态,采用不同的创建方式为这些可寻路场景对应的场景包围盒创建寻路网格。具体的,若可寻路场景具有单一出口和/或单一入口,可采用碰撞检测的方式,在可寻路场景对应的场景包围盒中创建寻路网格。若可寻路场景具有多个出口和多个入口,可采用分层处理的方式,在可寻路场景对应的场景包围盒中创建包含多个寻路网格层的寻路网格。84.上述步骤中,结合两种不同的方式生成寻路网格,来保存寻路过程中所需的路径数据,以便满足多变的环境和空间寻路需求。85.在一种可选的实施方式中,步骤s130中基于第一场景包围盒对应的寻路网格路径数据,确定从第一位置移动至目标位置的移动路径,具体可通过图5所示的步骤来实现:86.步骤s510,基于第一位置的高度信息和目标位置的高度信息,为目标虚拟对象确定目标寻路策略;87.步骤s520,从第一场景包围盒对应的寻路网格路径数据中筛选与目标寻路策略相匹配的目标网格路径数据;88.步骤s530,基于目标网格路径数据,生成从第一位置移动至目标位置的移动路径。89.图5所示的步骤中,通过筛选网格路径数据,确定目标虚拟对象的移动路径,以便进一步控制目标虚拟对象朝目标位置进行移动,无需一次性提供所有的网格路径数据,能够在一定程度上减轻内容和容量的占用压力。90.在步骤s510中,基于第一位置的高度信息和目标位置的高度信息,为目标虚拟对象确定目标寻路策略。91.可选的,可以将当第一位置对应的高度信息与目标位置对应的高度信息进行对比,得到高度信息对比结果;根据高度信息对比结果,为目标虚拟对象确定目标寻路策略。92.在三维立体环境中,第一位置和目标位置可能不在同一高度,可预先指定若干寻路策略,从中选取符合目标虚拟对象所处环境状态的目标寻路策略,以基于所选取的目标寻路策略控制目标虚拟对象朝目标位置不断移动。93.示例性的,若第一位置的高度与目标位置的高度相同,可采用目标虚拟对象当前所在高度层级对应的网格寻路数据寻路到目标位置;若第一位置的高度低于目标位置的高度,可先向上寻路至目标位置所在高度层级,再采用目标位置所在高度层级对应的网格寻路数据寻路到目标位置;若第一位置的高度高于目标位置的高度,可采用目标虚拟对象当前所在高度层级对应的网格寻路数据寻路到目标位置的上方,再向下寻路到目标位置。94.示例性的,若第一位置的高度与目标位置的高度相同,可采用目标虚拟对象当前所在高度层级对应的网格寻路数据寻路到目标位置;若第一位置的高度低于目标位置的高度,采用目标虚拟对象当前所在高度层级对应的网格寻路数据寻路到目标位置的下方,再向上寻路到目标位置;若第一位置的高度高于目标位置的高度,可先向下寻路至目标位置所在高度层级,再采用目标位置所在高度层级对应的网格寻路数据寻路到目标位置。95.在寻路过程中,将空间进行了离散化,以此来降低内存压力,有助于加快数据动态加载和卸载表现。96.在步骤s520中,从第一场景包围盒对应的寻路网格路径数据中筛选与目标寻路策略相匹配的目标网格路径数据。97.在可寻路场景对应的场景包围盒之间存在嵌套关系时,可能会筛选出多个具有嵌套关系的第一场景包围盒。若存在多个具有嵌套关系的第一场景包围盒,步骤s520中从第一场景包围盒对应的寻路网格路径数据中筛选与目标寻路策略相匹配的目标网格路径数据,可通过以下步骤来实现,从多个具有嵌套关系的第一场景包围盒中确定优先级最高的第一场景包围盒;从优先级最高的第一场景包围盒对应的寻路网格路径数据中筛选与目标寻路策略相匹配的目标网格路径数据。98.示例性的,目标虚拟对象位于沙滩小屋内,此时第一场景包围盒可包括沙滩场景包围盒、小屋场景包围盒等,小屋场景包围盒会被嵌套在沙滩场景包围盒内部,这种情况下小屋场景包围盒的优先级高于沙滩场景包围盒,此时,可优先使用小屋场景包围盒对应的寻路数据,以便提升寻路的精细度。99.在步骤s530中,基于目标网格路径数据,生成从第一位置移动至目标位置的移动路径。100.由于三维虚拟场景空间较大,被分为多个可寻路场景,因此目标位置所处的可寻路场景可能与第一位置处于不同的场景包围盒中。101.在一种可选的实施方式中,若目标位置不包含在目标网格路径数据对应的第一场景包围盒中,步骤s530中基于目标网格路径数据,生成从第一位置移动至目标位置的移动路径,还可通过以下步骤来实现:基于目标网格路径数据,确定目标虚拟对象从第一位置移动至第一场景包围盒外部的移动路径;获取目标虚拟对象在三维虚拟场景中的第二位置;根据目标位置和第二位置,从多个可寻路场景对应的场景包围盒中筛选新的第一场景包围盒;基于新的第一场景包围盒对应的寻路网格路径数据,确定目标虚拟对象从第二位置移动至目标位置的移动路径。102.其中,第二位置为目标虚拟对象移动至第一场景包围盒外部所处的位置。上述步骤中,通过不断更新第一场景包围盒,以使得目标虚拟对象不断的朝向目标位置移动,进而实现跨寻路场景的寻路。103.可选的,当目标虚拟对象离开或进入优先级不同的场景包围盒对应的可寻路场景时,可触发一次新的寻路流程,更新控制目标虚拟对象移动所使用的寻路网格路径数据,以确保寻路表现的正确性。104.在一种可选的实施方式中,若目标位置处于第二场景包围盒内,第二场景包围盒对应的可寻路场景具有单一入口,步骤s120中基于第一场景包围盒对应的寻路网格路径数据,确定从第一位置移动至目标位置的移动路径,还可以通过以下步骤来实现:基于第一场景包围盒对应的寻路网格路径数据,确定目标虚拟对象从第一位置移动至第二场景包围盒对应的可寻路场景的单一入口的移动路径;基于第二场景包围盒对应的寻路网格路径数据,确定目标虚拟对象从第二场景包围盒对应的可寻路场景的单一入口移动至目标位置的移动路径。105.示例性的,若目标位置处于具有单一入口的可寻路场景对应的场景包围盒内,例如具有唯一入口的溶洞寻路场景对应的场景包围盒,目标虚拟对象可优先移动至与当前所处环境状态一致的出入口位置,例如第一场景包围盒对应的可寻路场景的出口,然后从第一场景包围盒对应的可寻路场景的出口位置移动至第二场景包围盒对应的可寻路场景的入口位置,再从第二场景包围盒对应的可寻路场景的入口位置移动至目标位置。106.在一种可选的实施方式中,若第一场景包围盒对应的可寻路场景具有单一出口,步骤s120中基于第一场景包围盒对应的寻路网格路径数据,确定从第一位置移动至目标位置的移动路径,还可以通过以下步骤来实现:基于第一场景包围盒对应的寻路网格路径数据,确定目标虚拟对象从第一位置移动至第一场景包围盒对应的可寻路场景的单一出口的移动路径;获取目标虚拟对象在三维虚拟场景中的第三位置;根据目标位置和第三位置,从多个可寻路场景对应的场景包围盒中筛选新的第一场景包围盒;基于新的第一场景包围盒对应的寻路网格路径数据,确定目标虚拟对象从第三位置移动至目标位置的移动路径。107.其中,第三位置为目标虚拟对象移动至第一场景包围盒对应的可寻路场景的单一出口所处的位置。108.示例性的,若第一场景包围盒对应的可寻路场景具有单一出口,例如具有唯一出口的溶洞寻路场景对应的场景包围盒,目标虚拟对象可优先移动至与自己环境状态一致的出入口位置,例如第一场景包围盒对应的可寻路场景的出口,然后从第一场景包围盒对应的可寻路场景的出口位置移动至目标位置。109.此外,如图6所示,提供了一种目标虚拟对象经过具有单一出入口的可寻路场景的流程图,具体包含以下步骤:110.步骤s601,判断目标虚拟对象优先级最高的第一场景包围盒是否嵌套于具有单一出入口的可寻路场景对应的场景包围盒内;111.若是,则表明目标虚拟对象进入具有单一出入口的可寻路场景内,此时可执行步骤s602;若否,则表明目标虚拟对象未进入具有单一出入口的可寻路场景内,此时可执行步骤s603;112.步骤s602,控制目标虚拟对象前往优先级最高的第一场景包围盒对应的可寻路场景的出口,再控制目标虚拟对象从优先级最高的第一场景包围盒对应的可寻路场景的出口前往具有单一出入口的可寻路场景的出口,然后执行步骤s605;113.步骤s603,判断目标虚拟对象优先级最高的第一场景包围盒是否包含具有单一出入口的可寻路场景对应的场景包围盒;114.若目标虚拟对象优先级最高的第一场景包围盒包含具有单一出入口的可寻路场景对应的场景包围盒,此时可执行步骤s604,以使得目标虚拟对象通过具有单一出入口的可寻路场景;若目标虚拟对象优先级最高的第一场景包围盒不包含具有单一出入口的可寻路场景对应的场景包围盒,此时可执行步骤s605,以使得目标虚拟对象绕过具有单一出入口的可寻路场景;115.步骤s604,控制目标虚拟对象前往具有单一出入口的可寻路场景的入口,再控制目标虚拟对象从具有单一出入口的可寻路场景的入口前往具有单一出入口的可寻路场景的出口,然后执行步骤s605;116.步骤s605,继续控制目标虚拟对象前往目标位置。117.需要说明的是,在执行步骤s602时,由于目标虚拟对象优先级最高的第一场景包围盒嵌套于具有单一出入口的可寻路场景对应的场景包围盒内,其出入口单一,这里即可以控制目标虚拟对象朝所需前往的出入口进行移动,也可以将目标虚拟对象直接传送至所需前往的出入口。118.需要说明的是,步骤s604中,在控制目标虚拟对象从具有单一出入口的可寻路场景的入口前往具有单一出入口的可寻路场景的出口时,由于其出入口的单一性,这里即可以控制目标虚拟对象朝所需前往的出入口进行移动,也可以将目标虚拟对象直接传送至所需前往的出入口。119.示例性的,如图7所示,提供了一种基于寻路策略控制目标虚拟对象移动的流程图,具体包括以下步骤:120.步骤s701,开始;121.步骤s702,计算目标位置与当前位置之间的高度差值;122.步骤s703,判断高度差值是否小于高度层级阈值;123.若是,表明目标位置与当前位置处于相同高度层级,可执行步骤s710;若否,表明目标位置与当前位置不处于相同高度层级,可执行步骤704;124.步骤s704,判断目标位置是否高于当前位置;125.若是,则执行步骤s705;若否,则执行步骤s707;126.步骤s705,判断当前所在高度层级是否为最高层级;127.若否,执行步骤s706;若是,执行步骤s710;128.步骤s706,控制目标虚拟对象向上移动到达上一层高度层级,并跳转步骤s702;129.步骤s707,控制目标虚拟对象在当前所在高度层级寻路至目标位置上方;130.步骤s708,判断当前所在高度层级是否为最低层级;131.若否,执行步骤s709;若是,执行步骤s710;132.步骤s709,控制目标虚拟对象向下移动到达下一层高度层级,并跳转步骤s702;133.步骤s710,计算目标位置与目标虚拟对象的当前位置之间的水平差值;134.步骤s711,判断水平差值是否小于误差阈值;135.若否,表明目标虚拟对象未到达目标位置,可执行步骤s712;若是,表明目标虚拟对象到达目标位置,可执行步骤s713;136.步骤s712,继续控制目标虚拟对象移动至目标位置,执行步骤s713;137.步骤s713,结束。138.需要说明的是,图7中,当前位置为目标虚拟对象在三维虚拟场景中所处的实时位置,目标虚拟对象可从第一位置出发向目标位置进行移动。139.在一种可选的实施方式中,步骤s130中基于第一场景包围盒对应的寻路网格路径数据,确定从第一位置移动至目标位置的移动路径,以使目标虚拟对象能够沿移动路径,朝目标位置进行移动,还可以通过以下步骤来实现:基于第一场景包围盒对应的寻路网格路径数据,确定目标虚拟对象的预移动信息,预移动信息包括移动方向和移动距离;若基于预移动信息对目标虚拟对象进行预移动后与虚拟障碍物未发生碰撞,则基于预移动信息,确定目标虚拟对象的可移动路径;若基于预移动信息对目标虚拟对象进行预移动后与虚拟障碍物发生碰撞,则提取预移动信息中的水平移动信息和/或垂直移动信息,基于水平移动信息和/或垂直移动信息,确定目标虚拟对象的可移动路径。140.其中,预移动信息指的是目标虚拟对象的测试移动信息,可包括移动方向和移动距离等。虚拟障碍物指的是三维虚拟场景中可能会阻碍目标虚拟对象通过的环境物体,例如墙体、石块、树、柱子等等。通过将目标虚拟对象进行移动测试,有助为目标虚拟对象找到合理移动方向,实现对虚拟障碍物的躲避,使得目标虚拟对象的移动路径符合物理逻辑。141.具体的,可基于第一场景包围盒对应的寻路网格路径数据,为目标虚拟对象确定从第一位置前往目标位置的预移动信息。若基于预移动信息对目标虚拟对象进行预移动后与虚拟障碍物未发生碰撞,则说明该预移动信息下的寻路环境可容纳目标虚拟对象通行,该预移动信息对应的移动方向是合理的,此时可基于预移动信息,确定目标虚拟对象的可移动路径,控制目标虚拟对象向预移动信息对应的移动方向移动相应的移动距离。若基于预移动信息对目标虚拟对象进行预移动后与虚拟障碍物发生碰撞,则说明该预移动信息下的寻路环境不能容纳目标虚拟对象通行,该预移动信息对应的移动方向不合理,此时可调整目标虚拟对象的测试移动信息,重新进行碰撞测试。示例性的,可提取预移动信息中的水平移动信息、垂直移动信息,并将其分别作为目标虚拟对象新的测试移动信息。142.在一种可选的实施方式中,上述提取预移动信息中的水平移动信息和/或垂直移动信息,基于水平移动信息和/或垂直移动信息,确定目标虚拟对象的可移动路径,具体可通过以下步骤进行实现:提取预移动信息中的水平移动信息;若基于水平移动信息控制目标虚拟对象进行预移动后未与虚拟障碍物发送碰撞,则基于水平移动信息,确定目标虚拟对象的可移动路径;若基于水平移动信息控制目标虚拟对象进行预移动后与虚拟障碍物发送碰撞,则提取预移动信息中的垂直移动信息;若基于垂直移动信息控制目标虚拟对象进行预移动后未与虚拟障碍物发送碰撞,则基于垂直移动信息确定目标虚拟对象的可移动路径;若基于垂直移动信息控制目标虚拟对象进行预移动后与虚拟障碍物发送碰撞,则终止本次寻路。143.需要说明的是,在将目标虚拟对象与虚拟障碍物进行碰撞测试时,可以以目标虚拟对象对应的碰撞胶囊体范围为模板,测试目标虚拟对象移动后是否存在物理碰撞。其中,碰撞胶囊体由两个半球体与一个圆柱体相连接而构成,与胶囊基元形状相同。144.在基于预移动信息对目标虚拟对象进行预移动后与虚拟障碍物发生碰撞时,可先后在水平和垂直方向上进行移动测试。若不存在碰撞便控制目标虚拟对象朝测试方向移动,以达到为目标虚拟对象辅助避障的目的。若存在碰撞则说明没有为目标虚拟对象找到合理的移动方向,此时目标虚拟对象可能走进无法继续通行的死胡同,这种情况下可终止本次寻路逻辑,以避免出现寻路逻辑陷入僵持状态,导致程序无法正常运行。145.示例性的,如图8所示,提供了一种辅助目标虚拟对象寻路避障的流程图,具体可包括以下步骤:146.步骤s801,为目标虚拟对象确定从第一位置前往目标位置的预移动信息;147.步骤s802,以目标虚拟对象对应的碰撞胶囊体范围为模板,测试目标虚拟对象基于预移动信息移动后是否存在物理碰撞;148.若否,则执行步骤s803;若是,则执行步骤s804;149.步骤s803,基于预移动信息,确定目标虚拟对象的可移动路径;150.步骤s804,提取预移动信息中的水平移动信息;151.步骤s805,以目标虚拟对象对应的碰撞胶囊体范围为模板,测试目标虚拟对象基于水平移动信息移动后是否存在物理碰撞;152.若否,则执行步骤s806;若是,则执行步骤s807;153.步骤s806,基于水平移动信息,确定目标虚拟对象的可移动路径;154.步骤s807,提取预移动信息中的垂直移动信息;155.步骤s808,以目标虚拟对象对应的碰撞胶囊体范围为模板,测试目标虚拟对象基于垂直移动信息移动后是否存在物理碰撞;156.若否,则执行步骤s809;若是,则执行步骤s810;157.步骤s809,基于垂直移动信息,确定目标虚拟对象的可移动路径;158.步骤s810,终止本次寻路。159.图9示出了本公开示例性实施方式中的三维虚拟场景中的寻路装置900,该三维虚拟场景包括目标虚拟对象和多个可寻路场景,多个可寻路场景分别配置有对应的寻路网格路径数据,如图9所示,该三维虚拟场景中的寻路装置900可以包括:160.目标位置确定模块910,用于在三维虚拟场景中确定一目标位置;161.包围盒筛选模块920,用于基于目标位置和目标虚拟对象在三维虚拟场景中的第一位置,从多个可寻路场景对应的场景包围盒中筛选第一场景包围盒,第一位置为目标虚拟对象的寻路起始位置;162.虚拟对象寻路模块930,用于基于第一场景包围盒对应的寻路网格路径数据,确定从第一位置移动至目标位置的移动路径,以使目标虚拟对象能够沿移动路径朝目标位置进行移动。163.在一种可选的实施方式中,基于前述方案,三维虚拟场景中的寻路装置900,还包括:优先级配置模块,用于基于多个可寻路场景对应的场景包围盒之间的嵌套关系,配置多个可寻路场景对应的场景包围盒的优先级。包围盒筛选模块920,可以被配置为:基于目标位置和第一位置,从多个可寻路场景对应的场景包围盒中按照优先级从高到低的顺序筛选第一场景包围盒。164.在一种可选的实施方式中,基于前述方案,虚拟对象寻路模块930,可以包括:策略决策模块,用于基于第一位置的高度信息和目标位置的高度信息,为目标虚拟对象确定目标寻路策略;网格数据筛选模块,用于从第一场景包围盒对应的寻路网格路径数据中筛选与目标寻路策略相匹配的目标网格路径数据;移动路径确定模块,用于基于目标网格路径数据,生成从第一位置移动至目标位置的移动路径。165.在一种可选的实施方式中,基于前述方案,多个可寻路场景中的每一可寻路场景被配置为多个高度层级,每一高度层级具有与高度层级相匹配的网格寻路数据。166.在一种可选的实施方式中,基于前述方案,策略决策模块,可以被配置为:若第一位置的高度与目标位置的高度相同,则采用目标虚拟对象当前所在高度层级对应的网格寻路数据寻路到目标位置;若第一位置的高度低于目标位置的高度,则先向上寻路至目标位置所在高度层级,再采用目标位置所在高度层级对应的网格寻路数据寻路到目标位置;若第一位置的高度高于目标位置的高度,则采用目标虚拟对象当前所在高度层级对应的网格寻路数据寻路到目标位置的上方,再向下寻路到目标位置。167.在一种可选的实施方式中,基于前述方案,若存在多个具有嵌套关系的第一场景包围盒,网格数据筛选模块,可以被配置为:从多个具有嵌套关系的第一场景包围盒中确定优先级最高的第一场景包围盒;从优先级最高的第一场景包围盒对应的寻路网格路径数据中筛选与目标寻路策略相匹配的目标网格路径数据。168.在一种可选的实施方式中,基于前述方案,若目标位置不包含在目标网格路径数据对应的第一场景包围盒中,移动路径确定模块,可以被配置为:基于目标网格路径数据,确定目标虚拟对象从第一位置移动至第一场景包围盒外部的移动路径;获取目标虚拟对象在三维虚拟场景中的第二位置,第二位置为目标虚拟对象移动至第一场景包围盒外部所处的位置;根据目标位置和第二位置,从多个可寻路场景对应的场景包围盒中筛选新的第一场景包围盒;基于新的第一场景包围盒对应的寻路网格路径数据,确定目标虚拟对象从第二位置移动至目标位置的移动路径。169.在一种可选的实施方式中,基于前述方案,若目标位置处于第二场景包围盒内,第二场景包围盒对应的可寻路场景具有单一入口,虚拟对象寻路模块930,还可以被配置为:基于第一场景包围盒对应的寻路网格路径数据,确定目标虚拟对象从第一位置移动至第二场景包围盒对应的可寻路场景的单一入口的移动路径;基于第二场景包围盒对应的寻路网格路径数据,确定目标虚拟对象从第二场景包围盒对应的可寻路场景的单一入口移动至目标位置的移动路径。170.在一种可选的实施方式中,基于前述方案,若第一场景包围盒对应的可寻路场景具有单一出口,虚拟对象寻路模块930,还可以被配置为:基于第一场景包围盒对应的寻路网格路径数据,确定目标虚拟对象从第一位置移动至第一场景包围盒对应的可寻路场景的单一出口的移动路径;获取目标虚拟对象在三维虚拟场景中的第三位置,第三位置为目标虚拟对象移动至第一场景包围盒对应的可寻路场景的单一出口所处的位置;根据目标位置和第三位置,从多个可寻路场景对应的场景包围盒中筛选新的第一场景包围盒;基于新的第一场景包围盒对应的寻路网格路径数据,确定目标虚拟对象从第三位置移动至目标位置的移动路径。171.在一种可选的实施方式中,基于前述方案,三维虚拟场景中的寻路装置900,还包括:寻路网格创建模块,用于在多个可寻路场景对应的场景包围盒中分别创建寻路网格。172.在一种可选的实施方式中,基于前述方案,寻路网格创建模块,可以被配置为:采用分层处理的方式,在可寻路场景对应的场景包围盒中分别创建包含多个高度层级的寻路网格;采用碰撞检测的方式,对包含多个高度层级的寻路网格进行细节调整,得到最终寻路网格。173.在一种可选的实施方式中,基于前述方案,目标虚拟对象寻路模块930,还包括:预移动信息确定模块,用于基于第一场景包围盒对应的寻路网格路径数据,确定目标虚拟对象的预移动信息,预移动信息包括移动方向和移动距离;第一预移动模块,用于若基于预移动信息对目标虚拟对象进行预移动后与虚拟障碍物未发生碰撞,则基于预移动信息,确定目标虚拟对象的可移动路径;第二预移动模块,用于若基于预移动信息对目标虚拟对象进行预移动后与虚拟障碍物发生碰撞,则提取预移动信息中的水平移动信息和/或垂直移动信息,基于水平移动信息和/或垂直移动信息,确定目标虚拟对象的可移动路径。174.在一种可选的实施方式中,基于前述方案,第二预移动模块,可以被配置为:提取预移动信息中的水平移动信息;若基于水平移动信息控制目标虚拟对象进行预移动后未与虚拟障碍物发送碰撞,则基于水平移动信息,确定目标虚拟对象的可移动路径;若基于水平移动信息控制目标虚拟对象进行预移动后与虚拟障碍物发送碰撞,则提取预移动信息中的垂直移动信息;若基于垂直移动信息控制目标虚拟对象进行预移动后未与虚拟障碍物发送碰撞,则基于垂直移动信息,确定目标虚拟对象的可移动路径;若基于垂直移动信息控制目标虚拟对象进行预移动后与虚拟障碍物发送碰撞,则终止本次寻路。175.上述三维虚拟场景中的寻路装置900中各模块的具体细节在方法部分实施方式中已经详细说明,未披露的细节内容可以参见方法部分的实施方式内容,因而不再赘述。176.本公开的示例性实施方式还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述三维虚拟场景中的寻路方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在电子设备上运行时,程序代码用于使电子设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。177.该程序产品可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在电子设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。178.程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。179.计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。180.可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf(radio frequency,射频)等等,或者上述的任意合适的组合。181.可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。182.本公开的示例性实施方式还提供了一种能够实现上述三维虚拟场景中的寻路方法的电子设备。下面参照图10来描述根据本公开的这种示例性实施方式的电子设备1000。图10显示的电子设备1000仅仅是一个示例,不应对本公开实施方式的功能和使用范围带来任何限制。183.如图10所示,电子设备1000可以以通用计算设备的形式表现。电子设备1000的组件可以包括但不限于:至少一个处理单元1010、至少一个存储单元1020、连接不同系统组件(包括存储单元1020和处理单元1010)的总线1030和显示单元1040。184.存储单元1020存储有程序代码,程序代码可以被处理单元1010执行,使得处理单元1010执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。185.具体的,计算机可读存储介质上所存储的程序产品可使电子设备执行以下步骤:186.在三维虚拟场景中确定一目标位置;187.基于目标位置和目标虚拟对象在三维虚拟场景中的第一位置,从多个可寻路场景对应的场景包围盒中筛选第一场景包围盒,第一位置为目标虚拟对象的寻路起始位置;188.基于第一场景包围盒对应的寻路网格路径数据,确定从第一位置移动至目标位置的移动路径,以使目标虚拟对象能够沿移动路径朝目标位置进行移动。189.在一种可选的实施方式中,基于前述方案,还可以执行以下步骤:基于多个可寻路场景对应的场景包围盒之间的嵌套关系,配置多个可寻路场景对应的场景包围盒的优先级;上述基于目标位置和目标虚拟对象在三维虚拟场景中的第一位置,从多个可寻路场景对应的场景包围盒中筛选第一场景包围盒,可通过以下步骤来实现:基于目标位置和第一位置,从多个可寻路场景对应的场景包围盒中按照优先级从高到低的顺序筛选第一场景包围盒。190.在一种可选的实施方式中,基于前述方案,上述基于第一场景包围盒对应的寻路网格路径数据,确定从第一位置移动至目标位置的移动路径,可通过以下步骤来实现:基于第一位置的高度信息和目标位置的高度信息,为目标虚拟对象确定目标寻路策略;从第一场景包围盒对应的寻路网格路径数据中筛选与目标寻路策略相匹配的目标网格路径数据;基于目标网格路径数据,生成从第一位置移动至目标位置的移动路径。191.在一种可选的实施方式中,基于前述方案,上述多个可寻路场景中的每一可寻路场景被配置为多个高度层级,每一高度层级具有与高度层级相匹配的网格寻路数据。192.在一种可选的实施方式中,基于前述方案,上述基于第一位置的高度信息和目标位置的高度信息,为目标虚拟对象确定目标寻路策略,可通过以下步骤来实现:若第一位置的高度与目标位置的高度相同,则采用目标虚拟对象当前所在高度层级对应的网格寻路数据寻路到目标位置;若第一位置的高度低于目标位置的高度,则先向上寻路至目标位置所在高度层级,再采用目标位置所在高度层级对应的网格寻路数据寻路到目标位置;若第一位置的高度高于目标位置的高度,则采用目标虚拟对象当前所在高度层级对应的网格寻路数据寻路到目标位置的上方,再向下寻路到目标位置。193.在一种可选的实施方式中,基于前述方案,若存在多个具有嵌套关系的第一场景包围盒,上述从第一场景包围盒对应的寻路网格路径数据中筛选与目标寻路策略相匹配的目标网格路径数据,可通过以下步骤来实现:从多个具有嵌套关系的第一场景包围盒中确定优先级最高的第一场景包围盒;从优先级最高的第一场景包围盒对应的寻路网格路径数据中筛选与目标寻路策略相匹配的目标网格路径数据。194.在一种可选的实施方式中,基于前述方案,若目标位置不包含在目标网格路径数据对应的第一场景包围盒中,上述基于目标网格路径数据,生成从第一位置移动至目标位置的移动路径,可通过以下步骤来实现:基于目标网格路径数据,确定目标虚拟对象从第一位置移动至第一场景包围盒外部的移动路径;获取目标虚拟对象在三维虚拟场景中的第二位置,第二位置为目标虚拟对象移动至第一场景包围盒外部所处的位置;根据目标位置和第二位置,从多个可寻路场景对应的场景包围盒中筛选新的第一场景包围盒;基于新的第一场景包围盒对应的寻路网格路径数据,确定目标虚拟对象从第二位置移动至目标位置的移动路径。195.在一种可选的实施方式中,基于前述方案,若目标位置处于第二场景包围盒内,第二场景包围盒对应的可寻路场景具有单一入口,上述基于第一场景包围盒对应的寻路网格路径数据,确定从第一位置移动至目标位置的移动路径,可通过以下步骤来实现:基于第一场景包围盒对应的寻路网格路径数据,确定目标虚拟对象从第一位置移动至第二场景包围盒对应的可寻路场景的单一入口的移动路径;基于第二场景包围盒对应的寻路网格路径数据,确定目标虚拟对象从第二场景包围盒对应的可寻路场景的单一入口移动至目标位置的移动路径。196.在一种可选的实施方式中,基于前述方案,若第一场景包围盒对应的可寻路场景具有单一出口,上述基于第一场景包围盒对应的寻路网格路径数据,确定从第一位置移动至目标位置的移动路径,可通过以下步骤来实现:基于第一场景包围盒对应的寻路网格路径数据,确定目标虚拟对象从第一位置移动至第一场景包围盒对应的可寻路场景的单一出口的移动路径;获取目标虚拟对象在三维虚拟场景中的第三位置,第三位置为目标虚拟对象移动至第一场景包围盒对应的可寻路场景的单一出口所处的位置;根据目标位置和第三位置,从多个可寻路场景对应的场景包围盒中筛选新的第一场景包围盒;基于新的第一场景包围盒对应的寻路网格路径数据,确定目标虚拟对象从第三位置移动至目标位置的移动路径。197.在一种可选的实施方式中,基于前述方案,还可以包括以下步骤:在多个可寻路场景对应的场景包围盒中分别创建寻路网格。198.在一种可选的实施方式中,基于前述方案,上述在多个可寻路场景对应的场景包围盒中分别创建寻路网格,具体可通过以下步骤来实现:采用分层处理的方式,在可寻路场景对应的场景包围盒中分别创建包含多个高度层级的寻路网格;采用碰撞检测的方式,对包含多个高度层级的寻路网格进行细节调整,得到最终寻路网格。199.在一种可选的实施方式中,基于前述方案,上述基于第一场景包围盒对应的寻路网格路径数据,确定从第一位置移动至目标位置的移动路径,以使目标虚拟对象能够沿移动路径,朝目标位置进行移动,可通过以下步骤来实现:基于第一场景包围盒对应的寻路网格路径数据,确定目标虚拟对象的预移动信息,预移动信息包括移动方向和移动距离;若基于预移动信息对目标虚拟对象进行预移动后与虚拟障碍物未发生碰撞,则基于预移动信息,确定目标虚拟对象的可移动路径;若基于预移动信息对目标虚拟对象进行预移动后与虚拟障碍物发生碰撞,则提取预移动信息中的水平移动信息和/或垂直移动信息,基于水平移动信息和/或垂直移动信息,确定目标虚拟对象的可移动路径。200.在一种可选的实施方式中,基于前述方案,上述提取预移动信息中的水平移动信息和/或垂直移动信息,基于水平移动信息和/或垂直移动信息,确定目标虚拟对象的可移动路径,可通过以下步骤来实现:提取预移动信息中的水平移动信息;若基于水平移动信息控制目标虚拟对象进行预移动后未与虚拟障碍物发送碰撞,则基于水平移动信息,确定目标虚拟对象的可移动路径;若基于水平移动信息控制目标虚拟对象进行预移动后与虚拟障碍物发送碰撞,则提取预移动信息中的垂直移动信息;若基于垂直移动信息控制目标虚拟对象进行预移动后未与虚拟障碍物发送碰撞,则基于垂直移动信息,确定目标虚拟对象的可移动路径;若基于垂直移动信息控制目标虚拟对象进行预移动后与虚拟障碍物发送碰撞,则终止本次寻路。201.上述三维虚拟场景中的寻路过程中,通过将三维虚拟场景划分成多个寻路场景,借助寻路场景对应的场景包围盒中寻路网格路径数据为目标虚拟对象寻路,实现了三维立体的寻路,不仅可以适用于寻路环境较为复杂多变的应用场景,具备较强的适用性,还能够在一定程度上增加目标虚拟对象探索范围的维度,丰富目标虚拟对象的寻路场景,提升游戏玩家的寻路体验。202.存储单元1020可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)1021和/或高速缓存存储单元1022,还可以进一步包括只读存储单元(rom)1023。203.存储单元1020还可以包括具有一组(至少一个)程序模块1025的程序/实用工具1024,这样的程序模块1025包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。204.总线1030可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。205.电子设备1000也可以与一个或多个外部设备1100(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1000交互的设备通信,和/或与使得该电子设备1000能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口1050进行。并且,电子设备1000还可以通过网络适配器1060与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图10所示,网络适配器1060通过总线1030与电子设备1000的其它模块通信。应当明白,尽管图10中未示出,可以结合电子设备1000使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid(redundant arrays of independent disks,独立磁盘冗余阵列)系统、磁带驱动器以及数据备份存储系统等。206.通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开示例性实施方式的方法。207.此外,上述附图仅是根据本公开示例性实施方式的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。208.应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的示例性实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。209.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施方式。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施方式仅被视为示例性的,本公开的真正范围和精神由权利要求指出。210.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部