CN111773717A - 对象控制方法和装置、存储介质和电子装置 - Google Patents

对象控制方法和装置、存储介质和电子装置 Download PDF

Info

Publication number
CN111773717A
CN111773717A CN202010621500.2A CN202010621500A CN111773717A CN 111773717 A CN111773717 A CN 111773717A CN 202010621500 A CN202010621500 A CN 202010621500A CN 111773717 A CN111773717 A CN 111773717A
Authority
CN
China
Prior art keywords
path
area
movement
adjacent
moved
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
Application number
CN202010621500.2A
Other languages
English (en)
Inventor
康世禹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Perfect World Beijing Software Technology Development Co Ltd
Original Assignee
Perfect World Beijing Software Technology Development Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Perfect World Beijing Software Technology Development Co Ltd filed Critical Perfect World Beijing Software Technology Development Co Ltd
Priority to CN202010621500.2A priority Critical patent/CN111773717A/zh
Publication of CN111773717A publication Critical patent/CN111773717A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • A63F13/56Computing 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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Remote Sensing (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Navigation (AREA)

Abstract

本申请公开了一种对象控制方法和装置、存储介质和电子装置。其中,该方法包括:确定待移动对象的移动起点所在的第一区域和待移动对象的移动终点所在的第二区域;确定第一区域内的第一路径和第二区域内的第二路径,其中,第一路径为移动起点至第一区域的第一邻接口的路径,第二路径为第二区域的第二邻接口至移动终点的路径;根据第一路径、第二路径和预先存储的每个区域的邻接口之间的路径,获取由移动起点至移动终点的第三路径;按照第三路径控制待移动对象由移动起点移动到移动终点。本申请解决了相关技术中的地图寻路方式存在由于地图中包含的多边形节点过多导致的寻路效率低的问题。

Description

对象控制方法和装置、存储介质和电子装置
技术领域
本申请涉及互联网领域,具体而言,涉及一种对象控制方法和装置、存储介质和电子装置。
背景技术
目前,在游戏地图中,可以为游戏地图中的虚拟角色进行寻路,生成导航路径,上述游戏地图可以是MMO(Massive Multiplayer Online,大型多人在线)游戏大地图。寻路是指:给定地图上的起点和终点,寻找由起点到终点的一条路径。在进行寻路时,要求所寻的路径是可行的,且尽可能短。
相关技术中,一般采用A*(A-Star)算法进行寻路。A*寻路是一种启发式搜索方式,基于导航区域中包含的多边形节点,通过对当前每一个搜索位置(多边形节点)进行估价,确定搜索的方向。
上述地图寻路方式与地图中包含的多边形节点数量有关,多边形节点越多,寻路所需的时间越长,寻路效率越低。大世界地图中包含的多边形节点的数量级较大,例如,对于2km*2km的大世界地图,其包含的多边形节点可以达到10^5数量级。
因此,相关技术中的地图寻路方式,存在由于地图中包含的多边形节点过多导致的寻路效率低的问题。
发明内容
本申请实施例提供了一种对象控制方法和装置、存储介质和电子装置,以至少解决相关技术中的地图寻路方式存在由于地图中包含的多边形节点过多导致的寻路效率低的问题。
根据本申请实施例的一个方面,提供了一种对象控制方法,包括:确定待移动对象的移动起点所在的第一区域和待移动对象的移动终点所在的第二区域,其中,待移动对象所在的目标地图被划分为多个区域,多个区域包括第一区域和第二区域,多个区域中的每个区域包含允许从每个区域进入到每个区域的相邻区域的邻接口;确定第一区域内的第一路径和第二区域内的第二路径,其中,第一路径为移动起点至第一区域的第一邻接口的路径,第二路径为第二区域的第二邻接口至移动终点的路径;根据第一路径、第二路径和预先存储的每个区域的邻接口之间的路径,获取由移动起点至移动终点的第三路径;按照第三路径控制待移动对象由移动起点移动到移动终点。
根据本申请实施例的另一个方面,提供了一种对象控制装置,包括:第一确定单元,用于确定待移动对象的移动起点所在的第一区域和待移动对象的移动终点所在的第二区域,其中,待移动对象所在的目标地图被划分为多个区域,多个区域包括第一区域和第二区域,多个区域中的每个区域包含允许从每个区域进入到每个区域的相邻区域的邻接口;第二确定单元,用于确定第一区域内的第一路径和第二区域内的第二路径,其中,第一路径为移动起点至第一区域的第一邻接口的路径,第二路径为第二区域的第二邻接口至移动终点的路径;第一获取单元,用于根据第一路径、第二路径和预先存储的每个区域的邻接口之间的路径,获取由移动起点至移动终点的第三路径;控制单元,用于按照第三路径控制待移动对象由移动起点移动到移动终点。
根据本申请实施例的又一个方面,还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本申请实施例的又一个方面,还提供了一种电子装置,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在本申请实施例中,采用将地图划分为区域并预先保存区域入口(区域的邻接口)之间路径的方式,通过确定待移动对象的移动起点所在的第一区域和待移动对象的移动终点所在的第二区域,其中,待移动对象所在的目标地图被划分为多个区域,多个区域包括第一区域和第二区域,多个区域中的每个区域包含允许从每个区域进入到每个区域的相邻区域的邻接口;确定第一区域内的第一路径和第二区域内的第二路径,其中,第一路径为移动起点至第一区域的第一邻接口的路径,第二路径为第二区域的第二邻接口至移动终点的路径;根据第一路径、第二路径和预先存储的每个区域的邻接口之间的路径,获取由移动起点至移动终点的第三路径;按照第三路径控制待移动对象由移动起点移动到移动终点,由于将地图划分为区域并预先保存区域入口之间路径,每个区域内可以包含一定数量的地图单元(例如,网格,多边形),在进行地图寻路时,按照区域进行寻路而不是按照地图中包含的多边形进行寻路,可以实现减少寻路算法的搜索次数的目的,从而达到提高地图寻路效率的技术效果,进而解决了相关技术中的地图寻路方式存在由于地图中包含的多边形节点过多导致的寻路效率低的问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的对象控制方法的硬件环境的示意图;
图2是根据本申请实施例的一种可选的对象控制方法的流程图;
图3是根据本申请实施例的一种可选的对象控制方法的示意图;
图4是根据本申请实施例的另一种可选的对象控制方法的示意图;
图5是根据本申请实施例的又一种可选的对象控制方法的示意图;
图6是根据本申请实施例的又一种可选的对象控制方法的示意图;
图7是根据本申请实施例的又一种可选的对象控制方法的示意图;
图8是根据本申请实施例的又一种可选的对象控制方法的示意图;
图9是根据本申请实施例的又一种可选的对象控制方法的示意图;
图10是根据本申请实施例的又一种可选的对象控制方法的示意图;
图11是根据本申请实施例的另一种可选的对象控制方法的流程图;
图12是根据本申请实施例的一种可选的对象控制装置的示意图;
图13是根据本申请实施例的一种电子装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本申请实施例的一方面,提供了一种对象控制方法的方法实施例。可选地,在本实施例中,上述对象控制方法可以应用于如图1所示的由终端101和服务器103所构成的硬件环境中。如图1所示,服务器102通过网络与终端101连接,可用于为终端或终端上安装的客户端提供服务(如游戏服务、应用服务等),可在服务器上或独立于服务器设置数据库105,用于为服务器103提供数据存储服务,上述网络包括但不限于:广域网、城域网或局域网,终端101并不限定于PC(Personal Computer,个人计算机)、手机、平板电脑等。本申请实施例的对象控制方法可以由服务器103来执行,也可以由终端101来执行,还可以是由服务器103和终端101共同执行。其中,终端101执行本申请实施例的对象控制方法也可以是由安装在其上的客户端来执行。
可选地,本申请实施例中提供了一种对象控制方法,图2是根据本申请实施例的一种可选的对象控制方法的流程图,如图2所示,该方法可以包括以下步骤:
步骤S202,确定待移动对象的移动起点所在的第一区域和待移动对象的移动终点所在的第二区域,其中,待移动对象所在的目标地图被划分为多个区域,多个区域包括第一区域和第二区域,多个区域中的每个区域包含允许从每个区域进入到每个区域的相邻区域的邻接口;
步骤S204,确定第一区域内的第一路径和第二区域内的第二路径,其中,第一路径为移动起点至第一区域的第一邻接口的路径,第二路径为第二区域的第二邻接口至移动终点的路径;
步骤S206,根据第一路径、第二路径和预先存储的每个区域的邻接口之间的路径,获取由移动起点至移动终点的第三路径;
步骤S208,按照第三路径控制待移动对象由移动起点移动到移动终点。
通过上述步骤S202至步骤S208,通过确定待移动对象的移动起点所在的第一区域和待移动对象的移动终点所在的第二区域,其中,待移动对象所在的目标地图被划分为多个区域,多个区域包括第一区域和第二区域,多个区域中的每个区域包含允许从每个区域进入到每个区域的相邻区域的邻接口;确定第一区域内的第一路径和第二区域内的第二路径,其中,第一路径为移动起点至第一区域的第一邻接口的路径,第二路径为第二区域的第二邻接口至移动终点的路径;根据第一路径、第二路径和预先存储的每个区域的邻接口之间的路径,获取由移动起点至移动终点的第三路径;按照第三路径控制待移动对象由移动起点移动到移动终点,解决了相关技术中的地图寻路方式存在由于地图中包含的多边形节点过多导致的寻路效率低的问题,提高了地图寻路的效率。
在步骤S202提供的技术方案中,确定待移动对象的移动起点所在的第一区域和待移动对象的移动终点所在的第二区域,其中,待移动对象所在的目标地图被划分为多个区域,多个区域包括第一区域和第二区域,多个区域中的每个区域包含允许从每个区域进入到每个区域的相邻区域的邻接口。
本实施例中的对象控制方法可以应用于地图中控制对象移动的场景,上述地图可以是游戏地图,或者其他场景地图(例如,购物地图等)。
目标地图可以包含有地图单元,该地图单元可以是地图划分的最小单位,每个地图单元可以是多边形。该多边形可以是形状规则的多边形,例如,对于栅格地图,栅格地图的地图单元为地图中的栅格,栅格为规则的四边形;该多边形也可以是形状不规则的多边形,例如,对于导航地图,导航地图的地图单元为地图中的导航网格,导航网格为不规则的多边形。
目标地图可以被划分为多个区域(集群),每个区域中包含多个基本地图单元。对于多个区域中的任意两个相邻区域,两者如果是连通的,则两个相邻区域的邻接位置可以作为区域连通位置。每个区域中的连通位置可以是本区域进入相邻区域的区域入口(即,邻接口),因此,每个区域包含允许从本区域进入到本区域的相邻区域的入口。
对于一个区域,该区域可以有一个或多个相邻区域。在该区域中,可以包含进入到一个相邻区域的一个或多个入口,也可以不包含进入到一个相邻区域的入口。
以目标地图为游戏地图为例,游戏地图可以是目标游戏的地图,该目标游戏可以包括但不限于MMO游戏。该目标游戏(目标游戏应用)的用户可以使用其终端设备上运行的该目标游戏的客户端通过目标帐号登录到该目标游戏,以控制客户端与目标游戏的服务器之间的交互。同一帐号可以控制目标游戏中的一个虚拟角色,也可以同时控制目标游戏中的多个虚拟角色,本实施例中以控制一个虚拟角色为例进行说明。
目标用户可以使用目标帐号登录目标客户端,来启动目标游戏。该目标用户控制的虚拟角色为待移动对象。在操作待移动对象在游戏地图中移动的过程中,可以确定此次移动的移动起点和移动终点。该移动起点位于目标地图中包含的多个区域内的第一区域中,该移动终点位于目标地图中包含的多个区域内的第二区域中,第一区域和第二区域可以是不同的区域。
服务器可以基于对待移动对象的客户端所执行的操作,确定待移动对象的移动起点所在的第一区域和待移动对象的移动终点所在的第二区域。
在步骤S204提供的技术方案中,确定第一区域内的第一路径和第二区域内的第二路径,其中,第一路径为移动起点至第一区域的第一邻接口的路径,第二路径为第二区域的第二邻接口至移动终点的路径。
在确定出第一区域和第二区域之后,服务器可以确定移动起点至第一区域的第一入口的路径(即,第一路径)以及移动终点至第二区域的第二入口的路径(即,第二路径)。
第一区域中的第一入口的数量可以有一个或多个,如果第一入口的数量为一个,该第一路径可以包括该移动起点至该第一入口的一条路径。如果第一入口的数量为多个,该第一路径可以包括该移动起点至每个第一入口的一条或多条路径。
第二区域中的第二入口的数量可以有一个或多个,如果第二入口的数量为一个,该第二路径可以包括该第二入口至该移动终点的一条路径。如果第二入口的数量为多个,该第二路径可以包括多个第二入口至该移动终点的一条或多条路径。
在确定第一路径和第二路径时,可以采用相关技术中已有的地图寻路方法进行寻路,例如,A*算法,Dijkstra算法等,在此不做赘述。
在步骤S206提供的技术方案中,根据第一路径、第二路径和预先存储的每个区域的入口之间的路径,获取由移动起点至移动终点的第三路径。
针对A*寻路方案中存在的寻路效率低的问题,本实施例中所提供了对象控制方法是一种分层寻路方案,通过对地图进行多层抽象,在不同高层集群之间进行寻路。
例如,从位于A城市的a位置到位于B城市的b位置,可以分为:
步骤1,从a位置导航到A城市的高铁站;
步骤2,从A城市的高铁站坐高铁到B城市的高铁站;
步骤3,由B城市的高铁站导航到b位置。
与此类似地,可以将目标地图分层,并在高层地图上进行寻路。a位置可以对应于移动起点,b位置可以对应于移动终点,A城市和B城市可以对应于目标地图中的区域(集群),高铁站可以对应于区域的入口。不同集群之间的路径(一个集群的入口到另一个集群的入口之间的路径)相当于两个城市之间的铁路(一个城市的高铁站到一个城市的高铁站之间的铁路),可以是预先生成并存储的。
需要说明的是,在本实施例中,通过对目标地图进行分层,每一高层集群(每个集群,每个区域)的多边形(例如,栅格,导航网格)数量尽可能的平均。得到的层可以认为是地图中的多边形的高层,在多边形之间的寻路可以抽象为高层集群与高层集群之间的寻路,即,在更高层地图上进行寻路。
例如,可以将栅格地图划分为多个区域(多个高层集群,每个区域对应于一个高层集群),每个区域为该区域包含的栅格的高层抽象。第一栅格到第二栅格的寻路,可以抽象为第一栅格所在的区域到第二栅格所在的区域的寻路,也就是,在更高层地图上进行寻路。
服务器可以预先存储目标地图中每个区域的入口之间的路径,对于一个区域,如果其入口有多个,该区域内的入口之间的路径可以有一条或多条。在为同一区域内的入口进行寻路时,可以采用相关技术中已有的地图寻路方法进行寻路,例如,A*算法,Dijkstra算法等,在此不做赘述。
在得到第一路径和第二路径之后,服务器可以根据第一路径、第二路径和预先存储的每个区域的入口之间的路径,获取由移动起点至移动终点的第三路径。由于按照区域而不是按照地图单元进行寻路,可以减少寻路的复杂度。
在步骤S208提供的技术方案中,按照第三路径控制待移动对象由移动起点移动到移动终点。
确定的第三路径为待移动对象的移动起点至移动终点的路径。在由服务器统一控制游戏地图中的对象的移动时,服务器可以使用该第三路径控制待移动对象由移动起点移动到移动终点,并将移动过程同步到显示有待移动对象的客户端上。
客户端可以接收服务器同步的待移动对象的移动数据,更新其显示界面上显示的信息,从而同步显示待移动对象由移动起点至移动终点的过程。
例如,起点所在的集群为集群1,终点所在的集群为集群2。在进行寻路时,首先,可以查找起点到集群1的入口的第一路径以及集群2的入口到终点的第二路径(可以是实时计算的,也可以是预先保存的);然后,可以获取预先保存的各个集群内的入口之间的预存路径;最后,根据第一路径、第二路径和预存路径,查找起点与终点之间的一条路径。
需要说明的是,本实施例中的对象控制方法所寻到的路径不一定是最优的(最短路径),但由于集群之间的路径是预先定义并保存的,可以直接使用,无需关心所经过的集群内部的路径细节(因为是预先生成的,也就是定义好的,直接使用即可),因此该路径是能够快速找出的一条路径。
作为一种可选的实施例,在确定待移动对象的移动起点所在的第一区域和待移动对象的移动终点所在的第二区域之前,上述方法还包括:
S11,在目标地图为栅格地图的情况下,按照目标地图的地图长度和地图宽度,将目标地图划分为大小相等的多个区域;
S12,在目标地图为导航地图的情况下,按照目标地图包含的导航网格数量,将目标地图划分为多个区域,其中,多个区域中的每个区域内包含预定数量的导航网格。
目标地图可以包括但不限于以下之一:栅格地图,导航地图。栅格地图具有规整的区域范围,其地图单元(栅格)可以是规则的四边形(方格)。导航地图没有规整的区域范围,其地图单元(导航网格)可以是不规则的凸多边形。可以采用不同的方式将栅格地图和导航地图划分为多个区域。
对于栅格地图,可以按照目标地图的地图长度和地图宽度,将目标地图划分为大小相等的多个区域。例如,可预先配置每个区域的区域长度和区域宽度,按照区域长度和区域宽度,将游戏地图划分为多个区域。
对于导航地图,可以按照目标地图包含的导航网格数量,将目标地图划分包含相同数量的导航网格的多个区域。例如,可预先配置每个区域中包含的导航网格的数量。按照预先配置的每个区域包含的导航网格的数量,可以将游戏地图划分为多个区域。
导航地图不像栅格地图那样规整,不能按照类似栅格地图一样利用坐标进行分层的方式。导航网格是一系列凸多边形节点组成的图,可以把导航地图中的凸多边形(导航网格)当作图论的节点,凸多边形之间的公共边作为图论的边,抽取出完整的图论模型,那么,对导航地图进行分层可以借助一些基于图论的分层算法:例如,multilevel bisectionalgorithm(多级二分算法)。该算法可以将任意给定的无向图均匀分成若干高层集群,每个集群的节点数量在k个左右(k为输入值)。
当图论的节点被分到各个集群之后,图论中的无向边可以分为两种:第一种无向边是边连接的两个节点都属于同一个集群,第二种无向边是边连接的两个节点属于不同的集群(这样的边可以称为“EdgeCut(割边)”)。第二种无向边连接两个不同的集群,等于就是集群与集群之间的连接关系。
例如,如图3所示,图3中的游戏地图为栅格地图,可以对栅格地图中的栅格进行分层,抽象出栅格集群(每个集群相当于一个更高层次地图的地图单元),每个集群对应于栅格地图中的一片区域,包含该区域内的所有栅格。
又例如,如图4所示,图4中的游戏地图为导航地图,可以对导航地图中的导航网格进行分层,抽象出导航网格集群(每个集群相当于一个更高层次地图的节点),每个集群对应于导航地图中的一片区域,包含该区域内的所有导航网格,每个集群中包含的导航网格的数量为预定值。
通过本实施例,通过对导航地图和栅格地图按照不同的方式划分为多个区域,可以保证区域划分的合理性,进而保证地图寻路的效率。
作为一种可选的实施例,在确定待移动对象的移动起点所在的第一区域和待移动对象的移动终点所在的第二区域之前,上述方法还包括:
S21,在目标地图为栅格地图的情况下,确定多个区域中的每个区域的邻接口;
S22,在多个区域中包含具有多个邻接口的第三区域的情况下,获取第三区域内的多个邻接口之间的第一参考路径;
S23,保存第三区域内的多个邻接口之间的第一参考路径。
为了提高寻路效率,可以预先存储每个区域的入口之间的路径。对于栅格地图,可以确定多个区域中的每个区域的入口。每个区域可以包含多个边,可以分别确定每个边上的入口,从而得到该区域的入口。
每个区域中的入口的数量可以包含一个或者多个。如果一个区域中的入口的数量为一个,则该区域为出入口仅为一个,不存在入口之间的路径。
如果一个区域(例如,第三区域)中的入口的数量为多个,则可以分别确定多个入口中的任意两个入口之间的路径。如果两个入口之间是连通的,则可以查找到两者之间的一条路径(例如,第一参考路径)。如果两个入口之间是不连通的,则无法查找到两者之间的路径。
例如,如果一个集群有多个相邻集群,在该集群包含多个出入口,可以在集群内部连接入口,也就是,将每个集群中的各个入口进行连接,得到集群内连接路径。
在得到每个区域中的入口之间的路径之后,可以保存得到的上述路径(例如,第一参考路径),得到的路径可以保存在目标数据库中。
目标地图中的地图寻路可以抽象为抽象图中的寻路问题,该抽象图可以是基于图论模型的抽象图。每个区域的入口可以作为抽象图中的节点,入口之间的路径可以作为抽象图中的边,路径的长度可以作为边的权重。
如图5所示,左侧圆圈中的栅格块为同一集群内的入口(入口),对应于抽象图中的节点(右侧中的圆圈),两个入口之间的路径,对应于抽象图中节点之间的边,路径长度(所经过的栅格块数量),对应于抽象图中的边的权重(6、8、12等)。
通过本实施例,通过识别并保存每个区域的入口之间的路径,可以便于地图寻路的过程中使用,提高地图寻路效率。
作为一种可选的实施例,确定多个区域中的每个区域的邻接口包括:
S31,识别多个区域中的每个区域的候选邻接口,其中,候选邻接口为每个区域中允许从每个区域进入到每个区域的相邻区域的栅格;
S32,在候选邻接口包含连续的多个栅格的情况下,从多个栅格中选取一个栅格作为每个区域的一个邻接口;
S33,在候选邻接口包含不连续的一个或多个栅格的情况下,将一个或多个栅格确定为每个区域的一个或多个邻接口。
为了识别每个区域中包含的入口,则可以识别多个区域中的每个区域的候选入口。对于栅格地图,候选入口为每个区域中允许从该区域进入到该区域的相邻区域的栅格。
对于识别的候选入口,其可以包含连续的栅格,也可以包含离散的栅格,对于连续栅格,其可以均作为该区域的入口。为减少寻路复杂度,可以从连续栅格中选取一个作为该区域的一个入口,连续栅格中的其他栅格不作该区域的入口。对于离散栅格,可以直接将其作为该区域的入口。
例如,如图6所示,如果相邻集群的入口块的数量有连续的多个,可以选择其中相邻的两个作为该相邻集群的入口,并将入口相连。选择的入口块可以抽象为抽象图中的两个节点,该两个节点之间的边的权重为1。
通过本实施例,在候选入口包含连续的多个栅格时选择其中的一个作为入口,可以减少寻路复杂度,提高寻路效率。
作为一种可选的实施例,在确定待移动对象的移动起点所在的第一区域和待移动对象的移动终点所在的第二区域之前,上述方法还包括:
S41,在目标地图为导航地图的情况下,确定多个区域中的每个区域与每个区域的相邻区域之间的邻接边;
S42,从每个区域的每个邻接边上选取一个邻接点作为每个邻接边上的邻接口,得到每个区域的邻接口;
S43,在多个区域中包含具有多个邻接口的第四区域的情况下,获取第四区域内的多个邻接口之间的第二参考路径;
S44,保存第四区域内的多个邻接口之间的第二参考路径。
为了提高寻路效率,可以预先存储每个区域的入口之间的路径。对于导航地图中包含的多个区域,可以首先确定多个区域中的每个区域与该区域的相邻区域之间的邻接边。可以在邻接边上直接选取一个点作为区域与区域(集群与集群)之间的入口。
每个区域中的入口的数量可以包含一个或者多个。如果一个区域中的入口的数量为一个,则该区域为出入口仅为一个,不存在入口之间的路径。
如果一个区域(例如,第四区域)中的入口的数量为多个,则可以分别确定多个入口中的任意两个入口之间的路径。如果两个入口之间是连通的,则可以查找到两者之间的一条路径(例如,第二参考路径)。如果两个入口之间是不连通的,则无法查找到两者之间的路径。
在得到每个区域中的入口之间的路径之后,可以保存得到的上述路径(例如,第二参考路径),得到的路径可以保存在目标数据库中。例如,高层集群内路径可以保存第一入口点与第二入口点之间的真实路径,最终路径由多个高层集群之间的真实路径拼接起来。
通过本实施例,通过识别并保存每个区域的邻接口之间的路径,可以便于地图寻路的过程中使用,提高地图寻路效率。
可选地,在本实施例中,对于导航网格,高层集群与高层集群之间的边界是EdgeCut类型的公共边(邻接边),那么高层集群与高层集群之间的入口落在该公共边上。可以在相邻集群的公共边上直接选取一个点作为高层集群与高层集群之间的入口。高层集群内路径保存第一入口点与第一入口点之间的真实路径(路点路径),最终路径由多个高层集群之间的真实路径拼接起来。
对于上述场景,假设同一高层集群中与其它高层集群相连的有N个入口,那么在该高层集群中一共计算N(N-1)/2次每两个入口间的路径,并存储N(N-1)/2条路径。
在计算起点或者终点到本集群入口的路径时,以起点为例,假如本集群的入口分别是入口点A、B、C、D,起点是S,那么就需要从点S向A、B、C、D四个点发起四次寻路。
作为一种可选的实施例,根据第一路径、第二路径和预先存储的每个区域的邻接口之间的路径,获取由移动起点至移动终点的第三路径包括:
S51,以移动起点、移动终点以及每个区域的邻接口为节点,以第一路径、第二路径以及每个区域的邻接口之间的路径为边,搜索移动起点至移动终点的路径,得到第三路径。
对于栅格地图和导航地图,可以将移动起点和移动终点加入到抽象图中,并将移动起点、移动终点以及每个区域的入口为节点,以第一路径、第二路径和每个区域的入口之间的路径为边,按照图论模型中的寻路算法(例如,A*算法)搜索移动起点至移动终点的一条路径,从而得到移动起点至移动终点的第三路径。
例如,对于图3所示的栅格地图,其对应的集群入口和集群内的入口之间的路径如图7所示。如图8所示,在进行地图寻路时,将起点和终点加入到抽象图,圆圈位置为起点,五角星位置为终点,分别生成起点到所在集群入口之间的路径,终点到所在集群入口之间的路径。
在抽象图中寻路,并提炼路径:在抽象图中通过如A*等寻路方式确定起点至终点之间的路径,得到如图9所示的路径。
通过本实施例,采用图论算法进行地图寻路,可以适用于已有的图论算法,提高地图寻路方式的适用性。
可选地,在本实施例中,对于导航网格地图,先不直接选取一个点,以整条公共边(邻接边)为入口。高层集群内路径保存的是入口公共边和入口公共边之间的多边形路径。最终再由多个高层集群之间的公共边路径经过路径提炼算法(如StringPull算法)提炼真实路径。
作为一种可选的实施例,在确定待移动对象的移动起点所在的第一区域和待移动对象的移动终点所在的第二区域之前,上述方法还包括:
S61,在目标地图为导航地图的情况下,确定多个区域中的每个区域的邻接边,其中,每个区域的邻接边为每个区域与每个区域的相邻区域之间的邻接口;
S62,在多个区域中包含具有多个邻接边的第五区域的情况下,以第五区域内包含的导航网格为节点,以导航网格之间的公共边为边,搜索第五区域内的多个邻接边之间的第一路径区域,其中,第一路径区域包含第一路径区域所经过的导航网格;
S63,保存第五区域内的多个邻接边之间的第一路径区域。
对于导航地图中包含的多个区域,可以直接选择区域之间的整条邻接边作为入口,而先不直接选取一个点作为入口。对于导航地图中包含的多个区域,可以确定每个区域与该区域的相邻区域之间的邻接边(公共边),并将邻接边作为该区域的入口。
每个区域中的邻接边的数量可以包含一个或者多个。如果一个区域中的邻接边的数量为一个,则该区域为出入口仅为一个,不存在邻接边之间的路径。
如果一个区域(例如,第五区域)中的邻接边的数量为多个,则可以分别确定多个邻接边中的任意两个邻接边之间的路径。如果两个邻接边之间是连通的,则可以查找到两者之间的一条路径(例如,第一路径区域)。如果两个邻接边之间是不连通的,则无法查找到两者之间的路径。
在区域内进行邻接边之间的寻路时,可以以区域内包含的导航网格为节点,以导航网格之间的公共边为边,搜索该区域内的任意两个邻接边之间的路径,该路径包含一串凸多边形(即,包含一串导航网格,以及导航网格之间的公共边),可以认为是一片路径区域(即,第一路径区域)。
在得到每个区域中的邻接边之间的路径区域之后,可以保存得到的上述路径区域(例如,第一路径区域),得到的路径区域可以保存在目标数据库中。
对于导航地图,集群内路径保存的是入口公共边(邻接边)和入口公共边(邻接边)之间的多边形路径。
在计算集群内不同入口之间的路径时,由于选择的是一整条公共边作为入口,这个信息属于抽象之后的图论模型上的信息。如果有多个节点A、B、C、D都要向点E进行寻路,可以以E为起点,反向地对所有节点调用单源最短路算法进行寻路。单源最短路算法最终输出的是以E点为根的最短路径搜索树。这样,如果一个集群有K个节点,N个入口点,一共需要保存N棵最短路径搜索树。对于保存一棵树的一种方法是直接存储每个节点的父亲节点,所以一共需要存储K*N个父亲节点即可。
在计算起点或者终点到本集群入口的路径时,以起点为例,由于已经对所有图论节点存储了最短路径树,不需要再进行寻路,如果要查询起点S到入口公共边P的路径,首先在导航网格上把起点S对应到凸多边形SS上,然后在以P为根的最短路径搜索树上,找到SS到P的路径即可(树上每两点间路径是唯一的)。
通过本实施例,通过识别并保存每个区域的邻接边之间的路径,可以便于地图寻路的过程中使用,提高地图寻路效率。
作为一种可选的实施例,根据第一路径、第二路径和预先存储的每个区域的邻接口之间的路径,获取由移动起点至移动终点的第三路径包括:
S71,以移动起点、移动终点以及每个区域的邻接边为节点,以第一路径、第二路径和第一路径区域为边,搜索移动起点至移动终点的第二路径区域,其中,第二路径区域包含第二路径区域所经过的导航网格;
S72,从第二路径区域内获取由移动起点至移动终点的第三路径。
在进行地图寻路时,可以将移动起点和移动终点加入到抽象图中,并将移动起点、移动终点以及每个区域的邻接边为节点,以第一路径、第二路径和第一路径区域为边,按照图论模型中的寻路算法(例如,A*算法)搜索移动起点至移动终点的一条路径,该路径为一条多边形串,可以还原为导航地图中的一片路径区域,例如,第二路径区域,该第二路径区域包含第二路径区域所经过的导航网格。
在得到第二路径区域之后,经过路径提炼算法提炼出移动起点至移动终点的第三路径,例如,按照公共边中点法确定移动起点至移动终点的第三路径。可选地,在本实施例中,为了减少路径的拐点数量,以保证寻路得到的移动起点至移动终点的路径尽可能短,可以采用如StringPull等算法依靠多边形与多边形之间的公共边来确定路径最终的拐点,从而确定出第三路径。
例如,如图10所示,在进行地图寻路时,可以采用StringPull算法减少拐点数量,维护单调递减的漏斗,将起点对应到凸多边形的公共边上,移动第一条边,漏斗角度减少,确定移动;移动第二条边,漏斗角度仍减少,确定移动;再移动第一条边,漏斗角度继续减少,确定移动;由于无法朝着同一方向移动第二条边,因此还是移动第一条边,此时漏斗的两个边的位置关系发生变化,不允许移动则确定此处需要一个拐点。确定好该拐点之后,可以继续以该拐点为起点调用StringPull算法提炼路径。
通过本实施例,采用图论算法进行地图寻路,并将寻路得到的多边形串还原地图中的路径,不仅可以提高地图寻路效率,更保证了寻得的路径的可行性与更好的路径质量。
作为一种可选的实施例,在确定待移动对象的移动起点所在的第一区域和待移动对象的移动终点所在的第二区域之前,上述方法还包括:
S81,接收待移动对象的客户端发送的移动请求,移动请求用于请求控制待移动对象由移动起点移动到移动终点;
S82,响应移动请求,确定待移动对象的移动起点和移动终点。
地图寻路可以是基于客户端发送的移动请求确定的。待移动对象的客户端可以检测对该客户端执行的操作,响应该操作,生成待移动对象的移动请求,该移动请求用于请求控制待移动对象由移动起点移动到移动终点。并通过与服务器之间的通信连接发送给服务器。
服务器可以接收客户端发送的移动请求,响应该移动请求,服务器可以确定待移动对象的移动起点和移动终点。该移动起点和移动终点可以是通过目标地图中的坐标进行表示的,也可以是通过位置标识确定的,也就是说,移动请求中携带有移动起点和/或移动终点的位置标识。服务器提取该移动请求中的该位置标识,并通过位置标识与位置之间的对应关系,确定出移动起点和/或移动终点的位置坐标。
通过本实施例,通过移动请求触发待移动对象在目标地图中的移动,可以提高用户对于地图中的对象的控制能力。
作为一种可选的实施例,按照第三路径控制待移动对象由移动起点移动到移动终点包括:
S91,生成移动控制指令,其中,移动控制指令用于指示待移动对象按照第三路径移动;
S92,将移动控制指令发送给上述待移动对象的客户端,以控制待移动对象按照第三路径由移动起点移动到移动终点。
控制待移动对象由移动起点移动到移动终点也可以是由终端设备执行的。服务器可以生成移动控制指令,该移动控制指令用于指示待移动对象按照第三路径移动,并将移动控制指令发送给上述待移动对象的客户端。
服务器在接收到该移动控制指令之后,可以从移动控制指令中提取与该第三路径,并按照第三路径控制待移动对象由移动起点移动到移动终点。
对于其他显示有待移动对象的客户端,可以由该客户端进行位置同步,将待移动对象的位置同步到服务器,并由服器将待移动对象的位置同步到其他客户端。
通过本实施例,通过客户端控制待移动对象的移动,可以减少服务器的运行负担,保证游戏运行的顺畅性。
下面结合可选示例对本申请实施例中的对象控制方法进行说明。本示例中的对象控制方法应用有游戏场景,游戏地图为栅格地图,或者导航地图,地图划分为的区域为集群,每个集群对应于一个高层次地图中的地图单元。
如图11所示,本示例中的对象控制方法的流程可以包括如下步骤:
步骤S1102,将游戏地图中的网格划分为抽象集群,识别并配置相邻集群的入口,并构建游戏地图的抽象图。
对于栅格地图,可以利用坐标的划分方式将栅格地图划分为多个集群,每个集群对应于一个高层次地图中的地图单元,识别各个集群的入口,也就是,该集群进入到该集群的相邻集群的栅格。
确定各个集群内的入口之间的路径,也就是,在集群内部连接入口,得到集群内入口之间的路径。相邻集群的相邻入口之间的具有路径,该路径的长度可以是1。以集群的入口为节点、节点之间的路径为边,构建游戏地图的抽象图,也就是,游戏地图的图论模型。
对于导航地图,可以将导航网格作为图论的节点,导航网格之间的公共边作为图论的边,抽取出完整的图论模型,并基于multilevel bisection algorithm将图论模型中的节点分成多个集群,每个集群包含数据相同或者大致相同的节点。
对于每个集群,可以将集群之间的公共边上的点、或者整个公共边作为集群入口,计算每个集群内的入口之间的路径。对于以整个公共边作为集群入口的场景,寻得的路径可以是一串凸多边形,而在集群内寻路时,公共边可以认为是导航网格上的节点。
以集群的入口为节点、节点之间的路径为边,构建游戏地图的抽象图。
步骤S1104,将起点和终点加入到抽象图,并在抽象图中寻路,并提炼路径。
对于栅格地图,可以将起点和终点加入到栅格地图的抽象图,计算起点到起点所在集群的入口之间的路径,计算起点到起点所在集群的入口之间的路径,并在图论模型中添加起点与起点所在集群的入口之间的边以及终点与终点所在集群的入口之间的边。在该图论模型上进行寻路,得到起点与终点之间的一条路径。进行路径提炼,将该路径映射到栅格地图中的路径,得到一条真实的路径。
对于导航地图,整个寻路过程可以分成两部分。第一部分是在导航网格的图论模型上进行A*寻路,得到的是图论模型的节点路径,也就是一条多边形串,寻路方式与前述类似,在此不做赘述。第二部分是将多边形串还原到真实路径,可以采用StringPull算法基于多边形与多边形之间的公共边来确定路径最终的拐点,得到一条真实路径。
步骤S1106,使用提炼的路径控制游戏地图中的虚拟对象由起点移动到终点。
该寻路过程对应于游戏地图中的虚拟对象,在提炼出一条真实路径之后,服务器可以控制该虚拟对象由起点移动到终点。
通过本示例,在不过分降低路径质量的情况下,提高路径计算效率;由于高层节点的存在,节约了内存;预先计算集群入口之间的路径,可以支持异步寻路请求。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各实施例所述的方法。
根据本申请实施例的另一个方面,还提供了一种用于实施上述对象控制方法的对象控制装置。该装置可以应用于上述动画创建设备。图12是根据本申请实施例的一种可选的对象控制装置的示意图,如图12所示,该装置可以包括:
(1)第一确定单元1202,用于确定待移动对象的移动起点所在的第一区域和待移动对象的移动终点所在的第二区域,其中,待移动对象所在的目标地图被划分为多个区域,多个区域包括第一区域和第二区域,多个区域中的每个区域包含允许从每个区域进入到每个区域的相邻区域的邻接口;
(2)第二确定单元1204,与第一确定单元1202相连,用于确定第一区域内的第一路径和第二区域内的第二路径,其中,第一路径为移动起点至第一区域的第一邻接口的路径,第二路径为第二区域的第二邻接口至移动终点的路径;
(3)第一获取单元1206,与第二确定单元1204相连,用于根据第一路径、第二路径和预先存储的每个区域的邻接口之间的路径,获取由移动起点至移动终点的第三路径;
(4)控制单元1208,与第一获取单元1206相连,用于按照第三路径控制待移动对象由移动起点移动到移动终点。
需要说明的是,该实施例中的第一确定单元1202可以用于执行本申请实施例中的步骤S202,该实施例中的第二确定单元1202可以用于执行本申请实施例中的步骤S204,该实施例中的第一获取单元1206可以用于执行本申请实施例中的步骤S206,该实施例中的控制单元1208可以用于执行本申请实施例中的步骤S208。
通过上述模块,通过确定待移动对象的移动起点所在的第一区域和待移动对象的移动终点所在的第二区域,其中,待移动对象所在的目标地图被划分为多个区域,多个区域包括第一区域和第二区域,多个区域中的每个区域包含允许从每个区域进入到每个区域的相邻区域的邻接口;确定第一区域内的第一路径和第二区域内的第二路径,其中,第一路径为移动起点至第一区域的第一邻接口的路径,第二路径为第二区域的第二邻接口至移动终点的路径;根据第一路径、第二路径和预先存储的每个区域的邻接口之间的路径,获取由移动起点至移动终点的第三路径;按照第三路径控制待移动对象由移动起点移动到移动终点,解决了相关技术中的地图寻路方式存在由于地图中包含的多边形节点过多导致的寻路效率低的问题,提高了地图寻路的效率。
作为一种可选的实施例,上述装置还包括:
第一划分单元,用于在确定待移动对象的移动起点所在的第一区域和待移动对象的移动终点所在的第二区域之前,在目标地图为栅格地图的情况下,按照目标地图的地图长度和地图宽度,将目标地图划分为大小相等的多个区域;
第二划分单元,用于在目标地图为导航地图的情况下,按照目标地图包含的导航网格数量,将目标地图划分为多个区域,其中,多个区域中的每个区域内包含预定数量的导航网格。
作为一种可选的实施例,上述装置还包括:
第三确定单元,用于在确定待移动对象的移动起点所在的第一区域和待移动对象的移动终点所在的第二区域之前,在目标地图为栅格地图的情况下,确定多个区域中的每个区域的邻接口;
第二获取单元,用于在多个区域中包含具有多个邻接口的第三区域的情况下,获取第三区域内的多个邻接口之间的第一参考路径;
第一保存单元,用于保存第三区域内的多个邻接口之间的第一参考路径。
作为一种可选的实施例,第三确定单元包括:
识别模块,用于识别多个区域中的每个区域的候选邻接口,其中,候选邻接口为每个区域中允许从每个区域进入到每个区域的相邻区域的栅格;
选取模块,用于在候选邻接口包含连续的多个栅格的情况下,从多个栅格中选取一个栅格作为每个区域的一个邻接口;
确定模块,用于在候选邻接口包含不连续的一个或多个栅格的情况下,将一个或多个栅格确定为每个区域的一个或多个邻接口。
作为一种可选的实施例,上述装置还包括:
第四确定单元,用于在确定待移动对象的移动起点所在的第一区域和待移动对象的移动终点所在的第二区域之前,在目标地图为导航地图的情况下,确定多个区域中的每个区域与每个区域的相邻区域之间的邻接边;
选取单元,用于从每个区域的每个邻接边上选取一个邻接点作为每个邻接边上的邻接口,得到每个区域的邻接口;
第三获取单元,用于在多个区域中包含具有多个邻接口的第四区域的情况下,获取第四区域内的多个邻接口之间的第二参考路径;
第二保存单元,用于保存第四区域内的多个邻接口之间的第二参考路径。
作为一种可选的实施例,上述装置还包括:
第五确定单元,用于在确定待移动对象的移动起点所在的第一区域和待移动对象的移动终点所在的第二区域之前,在目标地图为导航地图的情况下,确定多个区域中的每个区域的邻接边,其中,每个区域的邻接边为每个区域与每个区域的相邻区域之间的邻接口;
搜索单元,用于在多个区域中包含具有多个邻接边的第五区域的情况下,以第五区域内包含的导航网格为节点,以导航网格之间的公共边为边,搜索第五区域内的多个邻接边之间的第一路径区域,其中,第一路径区域包含第一路径区域所经过的导航网格;
第三保存单元,用于保存第五区域内的多个邻接边之间的第一路径区域。
作为一种可选的实施例,第一获取单元包括:
第一搜索模块,用于以移动起点、移动终点以及每个区域的邻接边为节点,以第一路径、第二路径和第一路径区域为边,搜索移动起点至移动终点的第二路径区域,其中,第二路径区域包含第二路径区域所经过的导航网格;
获取模块,用于从第二路径区域内获取由移动起点至移动终点的第三路径。
作为一种可选的实施例,第一获取单元1206包括:
第二搜索模块,用于以移动起点、移动终点以及每个区域的邻接口为节点,以第一路径、第二路径以及每个区域的邻接口之间的路径为边,搜索移动起点至移动终点的路径,得到第三路径。
作为一种可选的实施例,上述装置还包括:
接收单元,用于在确定待移动对象的移动起点所在的第一区域和待移动对象的移动终点所在的第二区域之前,接收待移动对象的客户端发送的移动请求,移动请求用于请求控制待移动对象由移动起点移动到移动终点;
第六确定单元,用于响应移动请求,确定待移动对象的移动起点和移动终点。
作为一种可选的实施例,控制单元包括:
生成模块,用于生成移动控制指令,其中,移动控制指令用于指示待移动对象按照第三路径移动;
发送模块,用于将移动控制指令发送给上述待移动对象的客户端,以控制待移动对象按照第三路径由移动起点移动到移动终点。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
根据本申请实施例的又一个方面,还提供了一种用于实施上述模型控制方法的电子装置,该电子装置可以是服务器、终端、或者其组合。
图13是根据本申请实施例的一种电子装置的结构框图,如图13所示,该电子装置包括存储器1302和处理器1304,该存储器1302中存储有计算机程序,该处理器1304被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,确定待移动对象的移动起点所在的第一区域和待移动对象的移动终点所在的第二区域,其中,待移动对象所在的目标地图被划分为多个区域,多个区域包括第一区域和第二区域,多个区域中的每个区域包含允许从每个区域进入到每个区域的相邻区域的邻接口;
S2,确定第一区域内的第一路径和第二区域内的第二路径,其中,第一路径为移动起点至第一区域的第一邻接口的路径,第二路径为第二区域的第二邻接口至移动终点的路径;
S3,根据第一路径、第二路径和预先存储的每个区域的邻接口之间的路径,获取由移动起点至移动终点的第三路径;
S4,按照第三路径控制待移动对象由移动起点移动到移动终点。
其中,存储器1302可用于存储软件程序以及模块,如本申请实施例中的模型控制方法和装置对应的程序指令/模块,处理器1304通过运行存储在存储器1302内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述模型控制方法。存储器1302可包括高速随机存储器,还可以包括非易失性存储器,如一个或多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1302可进一步包括相对于处理器1304远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
作为一种示例,如图13所示,上述存储器1302中可以但不限于包括上述模型控制装置中的第一确定单元1202、第二确定单元1204、第一获取单元1206和控制单元1208。此外,还可以包括但不限于上述模型控制装置中的其他模块单元,本示例中不再赘述。
可选地,上述的传输装置1306用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1306包括一个NIC(NetworkInterface Controller,网络适配器),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1306为RF(Radio Frequency,射频)模块,其用于通过无线方式与互联网进行通讯。
此外,上述电子装置还包括:显示器1308,用于显示上述客户端的界面;和连接总线1310,用于连接上述电子装置中的各个模块部件。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图13所示的结构仅为示意,实施上述模型控制方法的设备可以是终端设备,该终端设备可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及MID(Mobile Internet Devices,移动互联网设备)、PAD等终端设备。图13其并不对上述电子装置的结构造成限定。例如,终端设备还可包括比图13中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图13所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、ROM(Read-Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取器)、磁盘或光盘等。
根据本申请实施例的又一个方面,还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行模型控制方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,确定待移动对象的移动起点所在的第一区域和待移动对象的移动终点所在的第二区域,其中,待移动对象所在的目标地图被划分为多个区域,多个区域包括第一区域和第二区域,多个区域中的每个区域包含允许从每个区域进入到每个区域的相邻区域的邻接口;
S2,确定第一区域内的第一路径和第二区域内的第二路径,其中,第一路径为移动起点至第一区域的第一邻接口的路径,第二路径为第二区域的第二邻接口至移动终点的路径;
S3,根据第一路径、第二路径和预先存储的每个区域的邻接口之间的路径,获取由移动起点至移动终点的第三路径;
S4,按照第三路径控制待移动对象由移动起点移动到移动终点。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例中对此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、ROM、RAM、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本申请的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (13)

1.一种对象控制方法,其特征在于,包括:
确定待移动对象的移动起点所在的第一区域和所述待移动对象的移动终点所在的第二区域,其中,所述待移动对象所在的目标地图被划分为多个区域,所述多个区域包括所述第一区域和所述第二区域,所述多个区域中的每个区域包含允许从所述每个区域进入到所述每个区域的相邻区域的邻接口;
确定所述第一区域内的第一路径和第二区域内的第二路径,其中,所述第一路径为所述移动起点至所述第一区域的第一邻接口的路径,所述第二路径为所述第二区域的第二邻接口至所述移动终点的路径;
根据所述第一路径、所述第二路径和预先存储的所述每个区域的邻接口之间的路径,获取由所述移动起点至所述移动终点的第三路径;
按照所述第三路径控制所述待移动对象由所述移动起点移动到所述移动终点。
2.根据权利要求1所述的方法,其特征在于,在所述确定待移动对象的移动起点所在的第一区域和所述待移动对象的移动终点所在的第二区域之前,所述方法还包括:
在所述目标地图为栅格地图的情况下,按照所述目标地图的地图长度和地图宽度,将所述目标地图划分为大小相等的所述多个区域;
在所述目标地图为导航地图的情况下,按照所述目标地图包含的导航网格数量,将所述目标地图划分为所述多个区域,其中,所述多个区域中的每个区域内包含预定数量的导航网格。
3.根据权利要求1所述的方法,其特征在于,在所述确定待移动对象的移动起点所在的第一区域和所述待移动对象的移动终点所在的第二区域之前,所述方法还包括:
在所述目标地图为栅格地图的情况下,确定所述多个区域中的每个区域的邻接口;
在所述多个区域中包含具有多个邻接口的第三区域的情况下,获取所述第三区域内的多个邻接口之间的第一参考路径;
保存所述第三区域内的多个邻接口之间的所述第一参考路径。
4.根据权利要求3所述的方法,其特征在于,所述确定所述多个区域中的每个区域的邻接口包括:
识别所述多个区域中的每个区域的候选邻接口,其中,所述候选邻接口为所述每个区域中允许从所述每个区域进入到所述每个区域的相邻区域的栅格;
在所述候选邻接口包含连续的多个栅格的情况下,从所述多个栅格中选取一个栅格作为所述每个区域的一个邻接口;
在所述候选邻接口包含不连续的一个或多个栅格的情况下,将所述一个或多个栅格确定为所述每个区域的一个或多个邻接口。
5.根据权利要求1所述的方法,其特征在于,在所述确定待移动对象的移动起点所在的第一区域和所述待移动对象的移动终点所在的第二区域之前,所述方法还包括:
在所述目标地图为导航地图的情况下,确定所述多个区域中的每个区域与所述每个区域的相邻区域之间的邻接边;
从所述每个区域的每个邻接边上选取一个邻接点作为所述每个邻接边上的邻接口,得到所述每个区域的邻接口;
在所述多个区域中包含具有多个邻接口的第四区域的情况下,获取所述第四区域内的多个邻接口之间的第二参考路径;
保存所述第四区域内的多个邻接口之间的所述第二参考路径。
6.根据权利要求1所述的方法,其特征在于,在所述确定待移动对象的移动起点所在的第一区域和所述待移动对象的移动终点所在的第二区域之前,所述方法还包括:
在所述目标地图为导航地图的情况下,确定所述多个区域中的每个区域的邻接边,其中,所述每个区域的邻接边为所述每个区域与所述每个区域的相邻区域之间的邻接口;
在所述多个区域中包含具有多个邻接边的第五区域的情况下,以所述第五区域内包含的导航网格为节点,以导航网格之间的公共边为边,搜索所述第五区域内的多个邻接边之间的第一路径区域,其中,所述第一路径区域包含所述第一路径区域所经过的导航网格;
保存所述第五区域内的多个邻接边之间的所述第一路径区域。
7.根据权利要求6所述的方法,其特征在于,所述根据所述第一路径、所述第二路径和预先存储的所述每个区域的邻接口之间的路径,获取由所述移动起点至所述移动终点的第三路径包括:
以所述移动起点、所述移动终点以及所述每个区域的邻接边为节点,以所述第一路径、所述第二路径和所述第一路径区域为边,搜索所述移动起点至所述移动终点的第二路径区域,其中,所述第二路径区域包含所述第二路径区域所经过的导航网格;
从第二路径区域内获取由所述移动起点至所述移动终点的所述第三路径。
8.根据权利要求1所述的方法,其特征在于,所述根据所述第一路径、所述第二路径和预先存储的所述每个区域的邻接口之间的路径,获取由所述移动起点至所述移动终点的第三路径包括:
以所述移动起点、所述移动终点以及所述每个区域的邻接口为节点,以所述第一路径、所述第二路径以及所述每个区域的邻接口之间的路径为边,搜索所述移动起点至所述移动终点的路径,得到所述第三路径。
9.根据权利要求1所述的方法,其特征在于,在所述确定待移动对象的移动起点所在的第一区域和所述待移动对象的移动终点所在的第二区域之前,所述方法还包括:
接收所述待移动对象的客户端发送的移动请求,所述移动请求用于请求控制所述待移动对象由所述移动起点移动到所述移动终点;
响应所述移动请求,确定所述待移动对象的所述移动起点和所述移动终点。
10.根据权利要求1至9中任一项所述的方法,其特征在于,所述按照所述第三路径控制所述待移动对象由所述移动起点移动到所述移动终点包括:
生成移动控制指令,其中,所述移动控制指令用于指示所述待移动对象按照所述第三路径移动;
将所述移动控制指令发送给所述待移动对象的客户端,以控制所述待移动对象按照所述第三路径由所述移动起点移动到所述移动终点。
11.一种对象控制装置,其特征在于,包括:
第一确定单元,用于确定待移动对象的移动起点所在的第一区域和所述待移动对象的移动终点所在的第二区域,其中,所述待移动对象所在的目标地图被划分为多个区域,所述多个区域包括所述第一区域和所述第二区域,所述多个区域中的每个区域包含允许从所述每个区域进入到所述每个区域的相邻区域的邻接口;
第二确定单元,用于确定所述第一区域内的第一路径和第二区域内的第二路径,其中,所述第一路径为所述移动起点至所述第一区域的第一邻接口的路径,所述第二路径为所述第二区域的第二邻接口至所述移动终点的路径;
第一获取单元,用于根据所述第一路径、所述第二路径和预先存储的所述每个区域的邻接口之间的路径,获取由所述移动起点至所述移动终点的第三路径;
控制单元,用于按照所述第三路径控制所述待移动对象由所述移动起点移动到所述移动终点。
12.一种计算机可读的存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1至10中任一项所述的方法。
13.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行权利要求1至10中任一项所述的方法。
CN202010621500.2A 2020-06-30 2020-06-30 对象控制方法和装置、存储介质和电子装置 Pending CN111773717A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010621500.2A CN111773717A (zh) 2020-06-30 2020-06-30 对象控制方法和装置、存储介质和电子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010621500.2A CN111773717A (zh) 2020-06-30 2020-06-30 对象控制方法和装置、存储介质和电子装置

Publications (1)

Publication Number Publication Date
CN111773717A true CN111773717A (zh) 2020-10-16

Family

ID=72761004

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010621500.2A Pending CN111773717A (zh) 2020-06-30 2020-06-30 对象控制方法和装置、存储介质和电子装置

Country Status (1)

Country Link
CN (1) CN111773717A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112190946A (zh) * 2020-10-21 2021-01-08 网易(杭州)网络有限公司 一种游戏场景中的路径生成方法及装置
CN113190766A (zh) * 2021-04-22 2021-07-30 北京百度网讯科技有限公司 路径规划方法、装置、电子设备及存储介质
CN113720342A (zh) * 2021-08-05 2021-11-30 杭州易现先进科技有限公司 导航路径规划方法和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103714234A (zh) * 2013-08-09 2014-04-09 网易(杭州)网络有限公司 一种游戏中确定对象移动路径的方法和设备
CN103893969A (zh) * 2014-04-15 2014-07-02 广州博冠信息科技有限公司 一种游戏中寻路的方法和设备
CN104645616A (zh) * 2015-03-16 2015-05-27 成都优聚软件有限责任公司 一种塔防游戏中游戏对象的移动路径设置方法和系统
CN108434741A (zh) * 2018-03-15 2018-08-24 网易(杭州)网络有限公司 虚拟现实中的移动控制方法及装置
CN110721472A (zh) * 2019-10-08 2020-01-24 上海莉莉丝科技股份有限公司 一种寻路方法、装置、设备以及记录介质
WO2023125512A1 (zh) * 2021-12-31 2023-07-06 丰疆智能(深圳)有限公司 导航路径的规划方法、装置及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103714234A (zh) * 2013-08-09 2014-04-09 网易(杭州)网络有限公司 一种游戏中确定对象移动路径的方法和设备
CN103893969A (zh) * 2014-04-15 2014-07-02 广州博冠信息科技有限公司 一种游戏中寻路的方法和设备
CN104645616A (zh) * 2015-03-16 2015-05-27 成都优聚软件有限责任公司 一种塔防游戏中游戏对象的移动路径设置方法和系统
CN108434741A (zh) * 2018-03-15 2018-08-24 网易(杭州)网络有限公司 虚拟现实中的移动控制方法及装置
CN110721472A (zh) * 2019-10-08 2020-01-24 上海莉莉丝科技股份有限公司 一种寻路方法、装置、设备以及记录介质
WO2023125512A1 (zh) * 2021-12-31 2023-07-06 丰疆智能(深圳)有限公司 导航路径的规划方法、装置及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112190946A (zh) * 2020-10-21 2021-01-08 网易(杭州)网络有限公司 一种游戏场景中的路径生成方法及装置
CN113190766A (zh) * 2021-04-22 2021-07-30 北京百度网讯科技有限公司 路径规划方法、装置、电子设备及存储介质
CN113720342A (zh) * 2021-08-05 2021-11-30 杭州易现先进科技有限公司 导航路径规划方法和装置
CN113720342B (zh) * 2021-08-05 2024-03-26 杭州易现先进科技有限公司 导航路径规划方法和装置

Similar Documents

Publication Publication Date Title
CN111773717A (zh) 对象控制方法和装置、存储介质和电子装置
CN110523081B (zh) 导航寻路路径的规划方法及装置
CN110772791B (zh) 三维游戏场景的路线生成方法、装置和存储介质
US20120069190A1 (en) Automatic vision sensor placement apparatus and method
CN111773687A (zh) 地图寻路方法和装置、存储介质和电子装置
CN110853150B (zh) 适用于虚拟漫游系统的实际与虚拟空间的映射方法及系统
CN109104464A (zh) 一种边缘计算环境下面向协同存储的分布式数据更新方法
Antsfeld et al. Finding multi-criteria optimal paths in multi-modal public transportation networks using the transit algorithm
CN104156459A (zh) 一种基于相同开销网格的高效寻路的方法及系统
JP2022551016A (ja) スパニングツリーを用いたセル結合による領域分割 本開示は、一般に、領域分割に関し、特に、位置情報ゲームで使用するための異なる地域の特定に関するものである。
CN105043379A (zh) 一种基于时空约束的景区浏览路径规划方法、装置
CN111714892A (zh) 游戏寻路方法及装置、存储介质、计算机设备
CN107659596B (zh) 一种动态导航的方法及装置、终端
CN111860880A (zh) 一种路径确定方法、装置、电子设备和存储介质
CN107465615A (zh) 一种基于分层多域的路由确定方法及控制器
CN108268493A (zh) 基于地理位置的最近站点搜索方法及装置
CN115779424A (zh) 一种导航网格寻路方法、装置、设备及介质
CN112231428A (zh) 一种融合战场态势信息的车辆路径规划方法
CN115560767B (zh) 机器人路径的生成方法及装置、存储介质、电子设备
CN109461198A (zh) 网格模型的处理方法及装置
CN112711647B (zh) 地图信息显示方法和装置、存储介质及电子设备
CN112337093B (zh) 一种虚拟对象的分簇方法、装置、存储介质和电子装置
CN112263836A (zh) 虚拟场景的处理方法和装置以及存储介质
CN106600062A (zh) 多区域交叉复杂网络图中单源最短路径的计算方法
Munoz et al. Design of an Unstructured and Free Geo-Coordinates Information Brokerage System for Sensor Networks using Directional Random Walks.

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