CN116392814A - 虚拟世界中的寻路方法、装置、设备及介质 - Google Patents
虚拟世界中的寻路方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN116392814A CN116392814A CN202310309337.XA CN202310309337A CN116392814A CN 116392814 A CN116392814 A CN 116392814A CN 202310309337 A CN202310309337 A CN 202310309337A CN 116392814 A CN116392814 A CN 116392814A
- Authority
- CN
- China
- Prior art keywords
- movement
- grid
- coordinate system
- path
- grids
- 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
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000006243 chemical reaction Methods 0.000 claims description 26
- 239000011159 matrix material Substances 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 8
- 230000009466 transformation Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 7
- 238000013507 mapping Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000009191 jumping Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000009193 crawling Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009187 flying Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000036544 posture Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000009183 running Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000009184 walking Effects 0.000 description 1
Images
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
-
- 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/80—Special adaptations for executing a specific game genre or game mode
- A63F13/822—Strategy games; Role-playing games
-
- 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/80—Special adaptations for executing a specific game genre or game mode
- A63F13/837—Shooting of targets
-
- 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
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/80—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
- A63F2300/807—Role playing or strategy games
-
- 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
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/80—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
- A63F2300/8076—Shooting
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请实施例公开了一种虚拟世界中的寻路方法、装置、设备及介质,涉及游戏技术领域。该方法包括:获取移动载具在局部坐标系下的导航网格;将移动单位在世界坐标系下的第一移动起点转化为在所述局部坐标系下的第二移动起点,将所述移动单位在所述世界坐标系下的第一移动终点转化为在所述局部坐标系下的第二移动终点,所述移动单位在所述移动载具上;在所述导航网格上搜索所述移动单位从所述第二移动起点移动至所述第二移动终点的局部移动路径;根据所述移动载具在所述世界坐标系下的状态信息和所述局部移动路径,控制所述移动单位进行移动。该方法解决了即使移动载具在世界坐标系下移动,也能实现移动载具上的移动单位的路径规划。
Description
技术领域
本申请涉及游戏技术领域,特别涉及一种虚拟世界中的寻路方法、装置、设备及介质。
背景技术
随着技术的发展,虚拟世界这一概念正变得越来越流行和重要。而在三维虚拟世界中,移动单位的路径导航是一个复杂的问题。
相关技术是在世界坐标系下将虚拟世界的三维模型转换为导航网格,再使用路径搜索算法在导航网格上搜索一条从起点到终点的通行路径,移动单位沿着通行路径移动就能达到目的地,从而解决路径导航的问题。
由于导航网格是预生成的静态数据,无法随着移动载具的位置和旋转等状态的变化一起变化,使得在移动载具上的路径搜索任务无法完成。
发明内容
本申请实施例提供了一种虚拟世界中的寻路方法、装置、设备及介质,该方法在移动载具对应的局部坐标系下确定移动单位的局部移动路径,并将该局部移动路径转化为世界移动路径,让移动单位沿着世界移动路径进行移动,实现移动载具上的移动单位的路径规划,该方法包括:
根据本申请的另一方面,提供了一种虚拟世界中的寻路方法,该方法包括:
获取移动载具在局部坐标系下的导航网格,所述导航网格是基于所述移动载具的三维模型转换得到的;
将移动单位在世界坐标系下的第一移动起点转化为在所述局部坐标系下的第二移动起点,将所述移动单位在所述世界坐标系下的第一移动终点转化为在所述局部坐标系下的第二移动终点,所述移动单位在所述移动载具上;
在所述导航网格上搜索所述移动单位从所述第二移动起点移动至所述第二移动终点的局部移动路径;
根据所述移动载具在所述世界坐标系下的状态信息和所述局部移动路径,控制所述移动单位进行移动。
根据本申请的另一方面,提供了一种虚拟世界中的寻路装置,该装置包括:
转换模块,用于获取移动载具在局部坐标系下的导航网格,所述导航网格是基于所述移动载具的三维模型转换得到的;
所述转换模块,还用于将移动单位在世界坐标系下的第一移动起点转化为在所述局部坐标系下的第二移动起点,将所述移动单位在所述世界坐标系下的第一移动终点转化为在所述局部坐标系下的第二移动终点,所述移动单位在所述移动载具上;
寻径模块,用于在所述导航网格上搜索所述移动单位从所述第二移动起点移动至所述第二移动终点的局部移动路径;
所述转换模块,还用于根据所述移动载具在所述世界坐标系下的状态信息和所述局部移动路径,控制所述移动单位进行移动。
根据本申请的另一方面,提供了一种计算机设备,该计算机设备包括:处理器和存储器,存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如上方面的虚拟世界中的寻路方法。
根据本申请的另一方面,提供了一种计算机存储介质,计算机可读存储介质中存储有至少一条程序代码,程序代码由处理器加载并执行以实现如上方面的虚拟世界中的寻路方法。
根据本申请的另一方面,提供了一种计算机程序产品或计算机程序,上述计算机程序产品或计算机程序包括计算机指令,上述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从上述计算机可读存储介质读取上述计算机指令,上述处理器执行上述计算机指令,使得上述计算机设备执行如上方面的虚拟世界中的寻路方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
将移动载具的三维模型转换为局部坐标系下的导航网格,并在导航网格中确定移动单位的局部移动路径,再将局部移动路径转化为世界移动路径,使得移动单位可以沿着世界移动路径进行移动。该方法通过移动载具的三维模型对应局部坐标系确定移动单位的局部移动路径,并将局部移动路径转化为世界移动路径,即使移动载具处于移动状态,生成的局部移动路径仍然可以准确地表示出移动单位在移动载具上的路径,由此得到的世界移动路径也能准确地表示出移动单位的移动路径。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请实施例提供的一种计算机系统的示意图;
图2示出了本申请实施例提供的一种虚拟世界中的寻路方法的流程示意图;
图3示出了本申请实施例提供的一种导航网格的生成方法的流程示意图;
图4示出了本申请实施例提供的一种导航网格的示意图;
图5示出了本申请实施例提供的一种路径规划方法的流程示意图;
图6示出了本申请实施例提供的一种路径规划方法的示意图;
图7示出了本申请实施例提供的一种虚拟世界中的寻路方法的界面示意图;
图8示出了本申请实施例提供的一种虚拟世界中的寻路装置的示意图;
图9示出了本申请实施例提供的一种服务器的示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先,对本申请实施例中涉及的名词进行介绍:
移动单位:三维虚拟世界中可以从起点运动到中终点的物体或角色,如虚拟角色、虚拟物品、虚拟载具等。中终点即中点和/或终点。
移动载具:三维虚拟世界中可以移动的大型物体,如大型船舶、飞机等,移动单位可以在其上静止或运动。
图1示出了本申请一个示例性实施例提供的计算机系统的示意图。该计算机系统100可以包括:第一终端110、服务器120和第二终端130。
第一终端110安装和运行有支持虚拟环境的应用程序111,该应用程序111可以是多人在线对战程序。当第一终端运行应用程序111时,第一终端110的屏幕上显示应用程序111的用户界面。该应用程序111可以是MOBA(Multiplayer Online Battle Arena,多人在线战术竞技)游戏、大逃杀射击游戏、模拟战略游戏的任意一种。在本实施例中,以该应用程序111是MOBA游戏来举例说明。第一终端110是第一用户112使用的终端,第一用户112使用第一终端110控制位于虚拟环境中的第一虚拟角色进行活动,第一虚拟角色可以称为第一用户112的主控虚拟角色。第一虚拟角色的活动包括但不限于:调整身体姿态、爬行、步行、奔跑、骑行、飞行、跳跃、射击、攻击、释放技能中的至少一种。示意性的,第一虚拟角色是第一虚拟人物,比如仿真人物或动漫人物。
第二终端130安装和运行有支持虚拟环境的应用程序131,该应用程序131可以是多人在线对战程序。当第二终端130运行应用程序131时,第二终端130的屏幕上显示应用程序131的用户界面。该客户端可以是MOBA游戏、大逃杀射击游戏、SLG游戏中的任意一种,在本实施例中,以该应用程序131是MOBA游戏来举例说明。第二终端130是第二用户132使用的终端,第二用户132使用第二终端130控制位于虚拟环境中的第二虚拟角色进行活动,第二虚拟角色可以称为第二用户132的主控虚拟角色。示意性的,第二虚拟角色是第二虚拟人物,比如仿真人物或动漫人物。
可选地,第一虚拟角色和第二虚拟角色处于同一虚拟世界中。可选地,第一虚拟角色和第二虚拟角色可以属于同一个团队、同一个队伍、同一个组织、具有好友关系或具有临时性的通讯权限。可选的,第一虚拟角色和第二虚拟角色可以属于不同的团队、不同的队伍、不同的组织或具有敌对关系。
可选地,第一终端110和第二终端130上安装的应用程序是相同的,或两个终端上安装的应用程序是不同操作系统平台(安卓或IOS)上的同一类型应用程序。第一终端110可以泛指多个终端中的一个,第二终端130可以泛指多个终端中的另一个,本实施例仅以第一终端110和第二终端130来举例说明。第一终端110和第二终端130的设备类型相同或不同,该设备类型包括:智能手机、平板电脑、电子书阅读器、数码播放器、膝上型便携计算机和台式计算机中的至少一种。
图1中仅示出了两个终端,但在不同实施例中存在多个其它终端可以接入服务器120。可选地,还存在一个或多个终端是开发者对应的终端,在该终端上安装有支持虚拟环境的应用程序的开发和编辑平台,开发者可在该终端上对应用程序进行编辑和更新,并将更新后的应用程序安装包通过有线或无线网络传输至服务器120,第一终端110和第二终端130可从服务器120下载应用程序安装包实现对应用程序的更新。
第一终端110、第二终端130以及其它终端通过无线网络或有线网络与服务器120相连。
服务器120包括一台服务器、多台服务器组成的服务器集群、云计算平台和虚拟化中心中的至少一种。服务器120用于为支持三维虚拟环境的应用程序提供后台服务。可选地,服务器120承担主要计算工作,终端承担次要计算工作;或者,服务器120承担次要计算工作,终端承担主要计算工作;或者,服务器120和终端之间采用分布式计算架构进行协同计算。
在一个示意性的例子中,服务器120包括存储器121、处理器122、对象帐号数据库123、对战服务模块124、面向用户的输入/输出接口(Input/Output Interface,I/O接口)125。其中,处理器122用于加载服务器120中存储的指令,处理对象帐号数据库123和对战服务模块124中的数据;对象帐号数据库123用于存储第一终端110、第二终端130以及其它终端所使用的对象帐号的数据,比如对象帐号的头像、对象帐号的昵称、对象帐号的等级,对象帐号所在的服务区;对战服务模块124用于提供多个对战房间供用户进行对战,比如1V1对战、3V3对战、5V5对战等;面向用户的I/O接口125用于通过无线网络或有线网络和第一终端110和/或第二终端130建立通信交换数据。
图2示出了本申请实施例提供的一种虚拟世界中的寻路方法的流程示意图。该方法可由图1所示的计算机系统中的终端和/或服务器执行,该方法包括:
步骤202:获取移动载具在局部坐标系下的导航网格。
移动载具指三维虚拟世界中可以移动的大型物体,如大型船舶、飞机等。移动单位可以在移动载具上静止或运动,比如平移、旋转、跳跃等等。
导航网格是基于移动载具的三维模型转换得到的。
在一些实施例中,通过RecastNavigation库(一个导航寻路工具集,使用邻接的凸多边形集合描述一个三维场景)将移动载具的三维模型转换为局部坐标系下的导航网格。其中,局部坐标系是以移动载具的中心为基准的三维坐标系,即以移动载具的中心为坐标原点形成的三维坐标系。
在一些实施例中,移动载具处于静止状态,包括相对静止状态和/或绝对静止状态;或者,移动载具处于运动状态,比如平移、旋转、跳跃等等。
步骤204:将移动单位在世界坐标系下的第一移动起点转化为在局部坐标系下的第二移动起点,将移动单位在世界坐标系下的第一移动终点转化为在局部坐标系下的第二移动终点,移动单位在移动载具上。
其中,世界坐标系是以三维虚拟世界的中心为基准的三维坐标系,即以三维虚拟世界的中心为坐标原点形成的三维坐标系。该三维虚拟世界即移动载具和移动单位所处的三维虚拟世界。
移动单位在移动载具上,也可以理解为,移动单位在移动载具中。
示例性的,根据映射关系,将移动单位在世界坐标系下的第一移动起点转化为在局部坐标系下的第二移动起点,将移动单位在世界坐标系下的第一移动终点转化为在局部坐标系下的第二移动终点。其中,映射关系用于表示世界坐标系和局部坐标系之间的关系。例如,使用f(*,*,*)表示映射关系,表示世界坐标系中的坐标,而/>是对应的局部坐标系中的坐标,则/>
步骤206:在导航网格上搜索移动单位从第二移动起点移动至第二移动终点的局部移动路径。
局部移动路径指在局部坐标系中,移动单位从移动起点移动至移动终点的移动路径。
可选地,通过A*算法、A算法、D*算法、贪心算法、Dijkstra(迪杰斯特拉)算法中的至少一种方法确定从移动起点移动至移动终点的局部移动路径。
本申请对搜索移动单位从移动起点移动至移动终点的局部移动路径的具体方法不做具体限定。
在一些实施例中,导航网格包括邻居网格、起点网格、终点网格、中点网格中的至少之一。
示例性的,在移动起点位于起点网格中,且移动终点位于终点网格中的情况下,将起点网格设为待检网格;在导航网格上,确定待检网格的邻居网格,邻居网格属于可移动网格且邻居网格不属于封闭列表内的网格;根据起点网格到邻居网格的距离,计算邻居网格的移动代价,且根据邻居网格到终点网格的距离,计算邻居网格的估算代价;根据邻居网格的移动代价和邻居网格的估算代价计算邻居网格的总代价值;根据邻居网格的总代价值从邻居网格中重新确定待检网格,且将邻居网格放入封闭列表中,将待检网格放入路径列表中;重复上述四个步骤,直至待检网格是终点网格;根据路径列表中的网格确定局部移动路径。
步骤208:根据移动载具在世界坐标系下的状态信息和局部移动路径,控制移动单位进行移动。
可选地,状态信息包括移动载具在世界坐标系下的三维位置和旋转信息中的至少一种。
根据本申请的一种实施方式,根据移动载具在世界坐标系下的状态信息,将局部移动路径转换为世界移动路径;控制移动单位在世界坐标系中沿着世界移动路径。
世界移动路径指在世界坐标系中,移动单位从移动起点移动至移动终点的移动路径。
根据本申请的另一种实施方式,控制移动单位在局部坐标系中沿着局部移动路径移动;在移动单位移动的过程中,将移动单位在局部坐标系中的坐标转换为在世界坐标系中的坐标。
可选地,在移动载具的状态信息发生变化的情况下,重新根据移动载具在世界坐标系下的状态信息,将局部移动路径转换为世界移动路径,状态信息包括位置和旋转信息中的至少一种。
综上所述,本申请实施例将移动载具的三维模型转换为局部坐标系下的导航网格,并在导航网格中确定移动单位的局部移动路径,再将局部移动路径转化为世界移动路径,使得移动单位可以沿着世界移动路径进行移动。该方法通过移动载具的三维模型对应局部坐标系确定移动单位的局部移动路径,并将局部移动路径转化为世界移动路径,即使移动载具处于移动状态,生成的局部移动路径仍然可以准确地表示出移动单位在移动载具上的路径,由此得到的世界移动路径也能准确地表示出移动单位的移动路径。
在接下来的实施例中,导航网格是基于移动载具的三维模型上的可移动区域进行转换的,该方法可以准确且快速地表示出移动载具上的可移动区域,并且将可移动区域转为为二维平面下的导航网格。
图3示出了本申请实施例提供的一种导航网格的生成方法的流程示意图。
该方法可由图1所示的计算机系统中的终端和/或服务器执行,该方法包括:
步骤301:确定移动载具的三维模型上的可移动区域。
可选地,通过体素单位填充移动载具的三维模型的实体空间,得到高度场,高度场用于表示移动载具中不可移动的空间;根据高度场的顶部区域确定可移动区域。体素单位是三维虚拟世界中具有一定体积的几何体,是三维空间分割上的最小单位。
示例性的,根据高度场的顶部区域的面积筛选可移动区域。在一些实施例中,移动单位的移动要求可移动区域的面积大于预设面积阈值,移动单位才能在可移动区域上移动。例如,移动单位是人物时,要求可移动区域的面积不小于该人物的脚的面积;移动单位是自行车时,要求可移动区域的面积不小于自行车允许通行的面积。
示例性的,根据高度场的顶部区域上方空间的空间类型筛选可移动区域,空间类型包括实体空间和非实体空间。在一些实施例中,移动单位是具有一定高度,移动单位的移动过程中,要求该移动单位通过的空间都是非实体空间。例如,移动单位是人物时,该人物的高度是1.76米,区域A上方20厘米存在实体空间,则该人物无法在区域A处移动,故区域A不是可移动区域。
示例性的,根据高度场的顶部区域的区域类型筛选可移动区域。在一些实施例中,以三维游戏为例,三维游戏中设置有陷阱区域,移动单位虽然可以在陷阱区域上移动,但是会对移动单位造成负面影响,故在本实施例中,将陷阱区域设置为不可移动区域。
可选地,通过体素单位覆盖移动载具的三维模型的表面区域;根据体素单位确定可移动区域。在一些实施例中,三维模型是通过三角面片表示的,通过体素单位包覆三维模型上的各个三角面片,并根据体素单位确定可移动区域。
步骤302:将可移动区域划分为多边形网格。
由于上述可移动区域是基于体素单位生成的,因此,可移动区域会呈现出锯齿状,这不利于后续对可移动区域的处理,因此需要对可移动区域的边缘进行光滑化处理,使其变为光滑的曲线。在一些实施例中,对可移动区域的边缘区域做光滑化处理。
在本实施例中,后续的路径算法依赖于多边形网格,这里的多边形网格指凸多边形网格。因此需要将可移动区域转换为多边形网格,便于后续的路径规划。
步骤303:根据多边形网格生成局部坐标系下的导航网格。
可选地,根据多边形网格的位置拼接多边形网格得到局部坐标系下的导航网格。
需要说明的是,在确定移动载具的三维模型上的可移动区域的过程中。已经将原先的三维模型转化为二维平面,因此该步骤造成了高度细节的丢失。在一些实施例中,根据高度信息在多边形网格中添加顶点,使得多边形网格与三维模型的表面等价。
在一些实施例中,通过三角形算法将多边形网格三角化,并拼接三角化后的多边形网格得到导航网格。
示例性的,导航网格如图4所示,导航网格是表示三维虚拟世界中可通行表面的多边形网格。
综上所述,通过体素单位生成移动载具上的可移动区域,并根据可移动区域确定多边形网格,再从多边形网格中提取出导航网格。该实施例可以较为高效且快速地得到导航网格,且导航网格添加了高度信息,使得导航网格包括的信息更加准确,便于后续的路径规划。
在接下来的实施例中,移动起点位于起点网格中,移动终点位于终点网格中,以此为基础进行路径规划。该实施例使用的路径规划方法可以有效地解出最短的局部移动路径,且解算的效率较高。
图5示出了本申请实施例提供的一种路径规划方法的流程示意图。该方法可由图1所示的计算机系统中的终端和/或服务器执行,该方法包括:
步骤401:将起点网格设为待检网格。
待检网格是用于确定路径的网格。
步骤402:在导航网格上,确定待检网格的邻居网格。
邻居网格指与待检网格相邻的网格。
示例性的,请参考图,为方便解释,这里将待检网格全部设为大小相同的正方形网格,图中的白色网格表示可移动区域,黑色网格表示不可移动区域。待检网格是网格A,终点网格是网格G,则待检网格的相邻网格是网格B、网格C、网格D、网格E和网格F。
步骤403:根据起点网格到邻居网格的距离,计算邻居网格的移动代价,且根据邻居网格到终点网格的距离,计算邻居网格的估算代价。
移动代价用于表示从起点网格到指定网格的移动成本。在一些实施例中,移动代价指起点网格到指定网格通过的路径长度。
估算代价用于表示从指定网格到终点网格的预测成本。在一些实施例中,估算代价指指定网格到终点网格的曼哈顿距离、对角距离、欧几里得距离中的至少一种。例如,如果网格中只允许移动单位朝上下左右四个方向移动,则可以使用曼哈顿距离;如果网格中允许移动单位朝八个方向移动,则可以使用对角距离;如果网格中允许移动单位朝任何方向移动,则可以使用欧几里得距离。
示例性的,请参考图6,网格B的移动代价是10,估算代价是38;网格C的移动代价是14,估算代价是28;网格D的移动代价是10,估算代价是38;网格E的移动代价是14,估算代价是48;网格F的移动代价是10,估算代价是52。
步骤404:根据邻居网格的移动代价和邻居网格的估算代价计算邻居网格的总代价值。
可选地,基于邻居网格的移动代价和邻居网格的估算代价的和,确定邻居网格的总代价值。
示例性的,请参考图6,网格B的总代价值是48;网格C的总代价值是42;网格D的总代价值是48;网格E的总代价值是62;网格F的总代价值是62。
步骤405:根据邻居网格的总代价值从邻居网格中重新确定待检网格,且将邻居网格放入封闭列表中,将待检网格放入路径列表中。
根据邻居网格的总代价值的最小值,从邻居网格中取出候选网格;确定候选网格的候选邻居网格;在候选邻居网格与邻居网格存在交集网格的情况下,根据候选网格、待检网格和交集网格,二次计算交集网格的二次移动代价;在交集网格的二次移动代价小于交集网格的移动代价的情况下,将交集网格确定为待检网格;在候选邻居网格与邻居网格不存在交集的情况下,将候选网络确定为待检网格。
其中,封闭列表包括已检网格,或理解为,封闭列表包括不可被视为路径点的网格;路径列表包括待检网格,或理解为,路径列表包括可被视为路径点的网格。
步骤406:重复上述四个步骤,直至待检网格是终点网格。
若待检网格是终端网格,则说明路径规划已经到达终点。
步骤407:根据路径列表中的网格确定局部移动路径。
示例性的,局部移动路径按照路径列表中的网格进行规划。
综上所述,本实施例提供了一种路径规划方法,该方法可以有效地解出最短的局部移动路径,且解算的效率较高。通过该方法得到的局部移动路径能够帮助移动单位以较短的距离从起点移动到终点。
图7示出了本申请实施例提供的一种虚拟世界中的寻路方法的流程示意图。该方法可由图1所示的计算机系统中的终端和/或服务器执行,该方法包括:
步骤601:获取世界坐标系下的第一移动起点和世界坐标系下的第一移动终点。
世界坐标系下的第一移动起点是世界坐标系下移动单位的移动起点,可简称为世界移动起点。世界坐标系下的第一移动终点是世界坐标系下移动单位的移动终点,可简称为世界移动终点。
在一些实施例中,响应于路径规划操作,获取世界移动终点,且将移动单位当前所在位置确定为世界移动起点。例如,用户在地图上选中点A作为世界移动终点,则将移动单位当前所在位置确定为世界移动起点。
步骤602:将移动单位在世界坐标系下的第一移动起点转化为在局部坐标系下的第二移动起点,将移动单位在世界坐标系下的第一移动终点转化为在局部坐标系下的第二移动终点。
示例性的,根据映射关系将移动单位在世界坐标系下的第一移动起点转化为在局部坐标系下的第二移动起点,将移动单位在世界坐标系下的第一移动终点转化为在局部坐标系下的第二移动终点。其中,映射关系用于表示世界坐标系和局部坐标系之间的关系。例如,使用f(*,*,*)表示映射关系,表示世界坐标系中的坐标,而/>是对应的局部坐标系中的坐标,则/>
示例性的,根据移动载具当前在世界坐标系下的三维位置和旋转信息,将世界坐标系下的移动起点Sw转换为移动载具的局部坐标系下的移动起点 将世界坐标系下的移动终点Ew转换为移动载具的局部坐标系下的移动终点/>其中,旋转信息可以用旋转矩阵R、欧拉角、四元数中的至少一种方式进行表示,并且,旋转矩阵R、欧拉角、四元数之间可以相互转化。
示例性的,设旋转矩阵设移动载具当前在世界坐标系下的位置为p=(x,y,z),将位置p和旋转矩阵R组合成变换矩阵/> 变换矩阵T的逆矩阵为T-1,其中T*T-1=E,/> 那么,/>和/>的转换公式为/> 和/>的转换公式为/>
步骤603:在导航网格上搜索移动单位从第二移动起点移动至第二移动终点的局部移动路径。
步骤604:输出局部移动路径。
步骤605:将局部移动路径转换为世界移动路径。
步骤606:控制移动单位沿着世界移动路径移动。
可选地,控制移动单位自动沿着世界移动路径移动,或者,由用户控制移动单位沿着世界移动路径移动。
步骤607:判断移动单位是否到达世界移动终点。
若移动单位未到达世界移动终点,则执行步骤608;
若移动单位到达世界移动终点,则流程结束。
步骤608:判断移动载具的状态信息是否发生变化。
若移动载具的状态信息发生变化,则返回步骤605;
若移动载具的状态信息未发生变化,则返回步骤606。
示例性的,在局部移动路径不变的情况下,移动载具的状态信息从第一状态信息变化为第二状态信息,相应地,世界移动路径从第一世界移动路径变化为第二世界移动路径。移动单位从位于第一世界路径上的第一路径点移动到位于第二世界路径上的第二路径点,或者,移动单位从位于第一世界路径上的第一路径点过渡到位于第二世界路径上的第二路径点。
其中,第一路径点是移动单位在第一世界路径上当前所处的路径点。第二路径点是在第二世界路径上选取的点。在一些实施例中,第二路径点是第二世界路径上与第一路径点对应的路径点,比如,第一路径点是第一世界路径上第n个路径点,第二路径点是第二世界路径上第n个路径点,n为整数;或,第二路径点是第二世界路径上位于起点前方第一距离处的点,第一距离为预设的固定值;或,第二路径点是第二世界路径上位于起点前方第二距离处的点,第二路径是基于移动单位的速度确定的值。
在一些实施例中,基于第一路径点、第二路径点、移动单位的移动方向,生成用于连接第一路径点和第二路径点的曲线路径,比如通过贝叶斯曲线拟合的方式生成该曲线路径,移动单位沿曲线路径从第一路径点过渡到第二路径点。
示例性的,在局部移动路径改变的情况下,返回步骤601。
综上所述,本申请实施例将移动载具的三维模型转换为局部坐标系下的导航网格,并在导航网格中确定移动单位的局部移动路径,再将局部移动路径转化为世界移动路径,使得移动单位可以沿着世界移动路径进行移动。该方法通过移动载具的三维模型对应局部坐标系确定移动单位的局部移动路径,并将局部移动路径转化为世界移动路径,即使移动载具处于移动状态,生成的局部移动路径仍然可以准确地表示出移动单位在移动载具上的路径,由此得到的世界移动路径也能准确地表示出移动单位的移动路径。
图8示出了本申请的一个示例性实施例提供的虚拟世界中的寻路装置的结构示意图。该装置可以通过软件、硬件或者两者的结合实现成为计算机设备的全部或一部分,该装置700包括:
转换模块701,用于获取移动载具在局部坐标系下的导航网格,所述导航网格是基于所述移动载具的三维模型转换得到的;
所述转换模块701,还用于将移动单位在世界坐标系下的第一移动起点转化为在所述局部坐标系下的第二移动起点,将所述移动单位在所述世界坐标系下的第一移动终点转化为在所述局部坐标系下的第二移动终点,所述移动单位在所述移动载具上;
寻径模块702,用于在所述导航网格上搜索所述移动单位从所述第二移动起点移动至所述第二移动终点的局部移动路径;
所述转换模块701,还用于根据所述移动载具在所述世界坐标系下的状态信息和所述局部移动路径,控制所述移动单位进行移动。
在一些实施例中,所述转换模块701,还用于根据所述移动载具在所述世界坐标系下的状态信息,将所述局部移动路径转化为世界移动路径;控制所述移动单位基于所述世界移动路径移动。
在一些实施例中,所述转换模块701,还用于基于所述移动载具在所述世界坐标系下的三维位置和旋转信息,确定变换矩阵;基于所述变换矩阵,将所述局部移动路径转化为所述世界移动路径。
在一些实施例中,所述转换模块701,还用于确定所述移动载具的三维模型上的可移动区域;根据所述可移动区域的轮廓生成多边形网格;根据所述多边形网格生成所述局部坐标系下的所述导航网格。
在一些实施例中,所述转换模块701,还用于通过体素单位填充所述移动载具的三维模型的实体空间,得到高度场,所述高度场用于表示移动载具中不可移动的空间;根据所述高度场的顶部区域确定所述可移动区域。
在一些实施例中,所述导航网格包括多个网格,所述第二移动起点位于所述多个网格中的起点网格;所述第二移动终点位于所述多个网格中的终点网格;所述寻径模块702,还用于将所述起点网格设为待检网格;在所述导航网格上,确定所述待检网格的邻居网格,所述邻居网格属于可移动网格且所述邻居网格不属于封闭列表内的网格;根据所述待检网格到所述邻居网格的距离,计算所述邻居网格的移动代价,且根据所述邻居网格到所述终点网格的距离,计算所述邻居网格的估算代价;根据所述邻居网格的移动代价和所述邻居网格的估算代价计算所述邻居网格的总代价值;根据所述邻居网格的总代价值从所述邻居网格中重新确定所述待检网格,且将所述邻居网格放入所述封闭列表中,将所述待检网格放入路径列表中;重复上述四个步骤,直至所述待检网格是所述终点网格;根据所述路径列表中的网格确定所述局部移动路径。
在一些实施例中,所述寻径模块702,还用于根据所述邻居网格的总代价值的最小值,从所述邻居网格中取出候选网格;确定所述候选网格的候选邻居网格;在所述候选邻居网格与所述邻居网格存在交集网格的情况下,根据所述候选网格、所述待检网格和所述交集网格,二次计算所述交集网格的二次移动代价;在所述交集网格的二次移动代价小于所述交集网格的移动代价的情况下,将所述交集网格确定为所述待检网格;在所述候选邻居网格与所述邻居网格不存在交集的情况下,将所述候选网络确定为所述待检网格。
在一些实施例中,所述转换模块701,还用于在所述移动载具的状态信息发生变化的情况下,重新根据所述移动载具在所述世界坐标系下的所述状态信息,将所述局部移动路径转换为所述世界移动路径,所述状态信息包括位置和旋转信息中的至少一种。
综上所述,本申请实施例将移动载具的三维模型转换为局部坐标系下的导航网格,并在导航网格中确定移动单位的局部移动路径,再将局部移动路径转化为世界移动路径,使得移动单位可以沿着世界移动路径进行移动。该方法通过移动载具的三维模型对应局部坐标系确定移动单位的局部移动路径,并将局部移动路径转化为世界移动路径,即使移动载具处于移动状态,生成的局部移动路径仍然可以准确地表示出移动单位在移动载具上的路径,由此得到的世界移动路径也能准确地表示出移动单位的移动路径。
图9是根据一示例性实施例示出的一种服务器的结构示意图。服务器800包括中央处理单元(Central Processing Unit,CPU)801、包括随机存取存储器(Random AccessMemory,RAM)802和只读存储器(Read-Only Memory,ROM)803的系统存储器804,以及连接系统存储器804和中央处理单元801的系统总线805。计算机设备800还包括帮助计算机设备内的各个器件之间传输信息的基本输入/输出系统(Input/Output,I/O系统)806,和用于存储操作系统813、应用程序814和其他程序模块815的大容量存储设备807。
基本输入/输出系统806包括有用于显示信息的显示器808和用于用户输入信息的诸如鼠标、键盘之类的输入设备809。其中显示器808和输入设备809都通过连接到系统总线805的输入输出控制器810连接到中央处理单元801。基本输入/输出系统806还可以包括输入输出控制器810以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器810还提供输出到显示屏、打印机或其他类型的输出设备。
大容量存储设备807通过连接到系统总线805的大容量存储控制器(未示出)连接到中央处理单元801。大容量存储设备807及其相关联的计算机设备可读介质为计算机设备800提供非易失性存储。也就是说,大容量存储设备807可以包括诸如硬盘或者只读光盘(Compact Disc Read-Only Memory,CD-ROM)驱动器之类的计算机设备可读介质(未示出)。
不失一般性,计算机设备可读介质可以包括计算机设备存储介质和通信介质。计算机设备存储介质包括以用于存储诸如计算机设备可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机设备存储介质包括RAM、ROM、可擦除可编程只读存储器(Erasable Programmable ReadOnly Memory,EPROM)、带电可擦可编程只读存储器(Electrically ErasableProgrammable Read-Only Memory,EEPROM),CD-ROM、数字视频光盘(Digital Video Disc,DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机设备存储介质不局限于上述几种。上述的系统存储器804和大容量存储设备807可以统称为存储器。
根据本公开的各种实施例,计算机设备800还可以通过诸如因特网等网络连接到网络上的远程计算机设备运行。也即计算机设备800可以通过连接在系统总线805上的网络接口单元812连接到网络811,或者说,也可以使用网络接口单元812来连接到其他类型的网络或远程计算机设备系统(未示出)。
存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,中央处理器801通过执行该一个或一个以上程序来实现上述虚拟世界中的寻路方法的全部或者部分步骤。
在示例性实施例中,还提供了一种计算机可读存储介质,计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述各个方法实施例提供的虚拟世界中的寻路方法。
本申请还提供一种计算机设备,计算机设备中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述方法实施例提供的虚拟世界中的寻路方法。
本申请还提供一种计算机程序产品或计算机程序,上述计算机程序产品或计算机程序包括计算机指令,上述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从上述计算机可读存储介质读取上述计算机指令,上述处理器执行上述计算机指令,使得上述计算机设备执行如上方面实施例提供的虚拟世界中的寻路方法。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (12)
1.一种虚拟世界中的寻路方法,其特征在于,所述方法包括:
获取移动载具在局部坐标系下的导航网格,所述导航网格是基于所述移动载具的三维模型转换得到的;
将移动单位在世界坐标系下的第一移动起点转化为在所述局部坐标系下的第二移动起点,将所述移动单位在所述世界坐标系下的第一移动终点转化为在所述局部坐标系下的第二移动终点,所述移动单位在所述移动载具上;
在所述导航网格上搜索所述移动单位从所述第二移动起点移动至所述第二移动终点的局部移动路径;
根据所述移动载具在所述世界坐标系下的状态信息和所述局部移动路径,控制所述移动单位进行移动。
2.根据权利要求1所述的方法,其特征在于,所述根据所述移动载具在所述世界坐标系下的状态信息和所述局部移动路径,控制所述移动单位进行移动,包括:
根据所述移动载具在所述世界坐标系下的状态信息,将所述局部移动路径转化为世界移动路径;
控制所述移动单位基于所述世界移动路径移动。
3.根据权利要求2所述的方法,其特征在于,所述状态信息包括三维位置和旋转信息;
所述根据所述移动载具在所述世界坐标系下的状态信息,将所述局部移动路径转化为世界移动路径,包括:
基于所述移动载具在所述世界坐标系下的所述三维位置和所述旋转信息,确定变换矩阵;
基于所述变换矩阵,将所述局部移动路径转化为所述世界移动路径。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
确定所述移动载具的三维模型上的可移动区域;
将所述可移动区域划分为多边形网格;
根据所述多边形网格生成所述局部坐标系下的所述导航网格。
5.根据权利要求4所述的方法,其特征在于,所述确定所述移动载具的三维模型上的可移动区域,包括:
通过体素单位填充所述移动载具的三维模型的实体空间,得到高度场,所述高度场用于表示所述移动载具中不可移动的空间;
根据所述高度场的顶部区域确定所述可移动区域。
6.根据权利要求1至3任一项所述的方法,其特征在于,所述导航网格包括多个网格,所述第二移动起点位于所述多个网格中的起点网格;所述第二移动终点位于所述多个网格中的终点网格;
所述在所述导航网格上搜索所述移动单位从所述第二移动起点移动至所述第二移动终点的局部移动路径,包括:
将所述起点网格设为待检网格;
在所述多个网格中,确定所述待检网格的邻居网格,所述邻居网格属于可移动网格且所述邻居网格不属于封闭列表内的网格;
根据所述起点网格到所述邻居网格的距离,计算所述邻居网格的移动代价,且根据所述邻居网格到所述终点网格的距离,计算所述邻居网格的估算代价;
根据所述邻居网格的移动代价和所述邻居网格的估算代价计算所述邻居网格的总代价值;
根据所述邻居网格的总代价值从所述邻居网格中重新确定所述待检网格,且将所述邻居网格放入所述封闭列表中,将所述待检网格放入路径列表中;
重复上述四个步骤,直至所述待检网格是所述终点网格;
根据所述路径列表中的网格确定所述局部移动路径。
7.根据权利要求6所述的方法,其特征在于,所述根据所述邻居网格的总代价值从所述邻居网格中重新确定所述待检网格,包括:
根据所述邻居网格的总代价值的最小值,从所述邻居网格中取出候选网格;
确定所述候选网格的候选邻居网格;
在所述候选邻居网格与所述邻居网格存在交集网格的情况下,根据所述候选网格、所述待检网格和所述交集网格,二次计算所述交集网格的二次移动代价;在所述交集网格的二次移动代价小于所述交集网格的移动代价的情况下,将所述交集网格确定为所述待检网格;
在所述候选邻居网格与所述邻居网格不存在交集的情况下,将所述候选网络确定为所述待检网格。
8.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
在所述移动载具的状态信息发生变化的情况下,重新根据所述移动载具在所述世界坐标系下的所述状态信息,将所述局部移动路径转换为所述世界移动路径。
9.一种虚拟世界中的寻路装置,其特征在于,所述装置包括:
转换模块,用于获取移动载具在局部坐标系下的导航网格,所述导航网格是基于所述移动载具的三维模型转换得到的;
所述转换模块,还用于将移动单位在世界坐标系下的第一移动起点转化为在所述局部坐标系下的第二移动起点,将所述移动单位在所述世界坐标系下的第一移动终点转化为在所述局部坐标系下的第二移动终点,所述移动单位在所述移动载具上;
寻径模块,用于在所述导航网格上搜索所述移动单位从所述第二移动起点移动至所述第二移动终点的局部移动路径;
所述转换模块,还用于根据所述移动载具在所述世界坐标系下的状态信息和所述局部移动路径,控制所述移动单位进行移动。
10.一种计算机设备,其特征在于,所述计算机设备包括:处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至8中任一项所述的虚拟世界中的寻路方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条程序代码,所述程序代码由处理器加载并执行以实现如权利要求1至8中任一项所述的虚拟世界中的寻路方法。
12.一种计算机程序产品,包括计算机程序或指令,其特征在于,该计算机程序或指令被处理器执行时实现权利要求1至8中任一项所述的虚拟世界中的寻路方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310309337.XA CN116392814A (zh) | 2023-03-22 | 2023-03-22 | 虚拟世界中的寻路方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310309337.XA CN116392814A (zh) | 2023-03-22 | 2023-03-22 | 虚拟世界中的寻路方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116392814A true CN116392814A (zh) | 2023-07-07 |
Family
ID=87008399
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310309337.XA Pending CN116392814A (zh) | 2023-03-22 | 2023-03-22 | 虚拟世界中的寻路方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116392814A (zh) |
-
2023
- 2023-03-22 CN CN202310309337.XA patent/CN116392814A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11270497B2 (en) | Object loading method and apparatus, storage medium, and electronic device | |
CN112862935B (zh) | 游戏角色的运动处理方法及装置、存储介质、计算机设备 | |
CN107358649B (zh) | 地形文件的处理方法和装置 | |
US7554525B2 (en) | Setting next destination of pointer to each of multiple objects | |
KR102698789B1 (ko) | 가상 장면의 정보 처리 방법 및 장치, 디바이스, 매체 및 프로그램 제품 | |
CN112717400B (zh) | 关卡画面的显示方法、装置、设备及介质 | |
CN112090078A (zh) | 游戏角色移动控制方法、装置、设备和介质 | |
WO2023142609A1 (zh) | 虚拟场景中的对象处理方法、装置、设备、存储介质及程序产品 | |
JP2017144234A (ja) | IoT機器を利用して拡張現実を実現した戦場オンラインゲーム | |
CN113082719B (zh) | 三维虚拟场景的寻路方法、装置及电子设备 | |
CN117398685A (zh) | 虚拟场景构建方法、装置、电子设备及存储介质 | |
CN116484487B (zh) | 墙板配筋方法、装置、设备及存储介质 | |
CN111265874B (zh) | 游戏中目标物的建模方法、装置、设备及存储介质 | |
CN116392814A (zh) | 虚拟世界中的寻路方法、装置、设备及介质 | |
CN115779424A (zh) | 一种导航网格寻路方法、装置、设备及介质 | |
CN112121435B (zh) | 游戏寻路方法、装置、服务器和存储介质 | |
CN112915540B (zh) | 用于虚拟场景中的数据处理方法、装置、设备及存储介质 | |
CN112546630B (zh) | 角色移动方法及装置 | |
CN115120980A (zh) | 游戏场景的生成方法、装置、存储介质和电子装置 | |
CN114168696A (zh) | 地格划分、地格渲染方法、装置、设备及可读介质 | |
Ehtemami et al. | Review of Visualizing Historical Architectural Knowledge through Virtual Reality | |
Silva et al. | Voxel Based Pathfinding with Jumping for Games | |
JP2019118687A (ja) | プログラム、画像処理方法、及び画像処理装置 | |
CN116899216B (zh) | 一种虚拟场景中特效融合的处理方法和装置 | |
US8956225B1 (en) | System and method for using flash symbols for travel nodes in an online flash-based game |
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 |