CN109260709A - 一种动态路线的生成方法及装置 - Google Patents
一种动态路线的生成方法及装置 Download PDFInfo
- Publication number
- CN109260709A CN109260709A CN201811057151.5A CN201811057151A CN109260709A CN 109260709 A CN109260709 A CN 109260709A CN 201811057151 A CN201811057151 A CN 201811057151A CN 109260709 A CN109260709 A CN 109260709A
- Authority
- CN
- China
- Prior art keywords
- plate
- connection
- coordinate
- route
- trigger
- 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.)
- Granted
Links
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/60—Generating 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
Abstract
本申请公开了一种动态路线生成方法及装置。该方法包括:获取场景地图、初始位置的坐标和目的地的坐标,其中,所述场景地图包括一块或多块相同大小的板块;对所述场景地图中的板块进行连接检测,对所述板块中的任意两块板块的连接触发器进行匹配,确定连接的板块;从所述连接的板块中确定一条或多条从所述起始坐标至所述目标坐标的第一路线;从所述一条或多条第一路线中选取一条动态路线,其中,所述动态路线为路径最短的所述第一路线。还公开了相应的装置。通过对连接触发器的匹配情况进行判断完成对场景地图中任意两块板块的连接情况的判断,再根据场景地图中所有板块的连接情况,实时、准确的生成动态路线。
Description
技术领域
本申请涉及计算机科学技术领域,尤其涉及一种动态路线生成方法及装置。
背景技术
得益于手机行业、电脑硬件及网络通信的快速发展,手机游戏和网络游戏也得到了飞速的发展。手机游戏和网络游戏给人们带来了很多娱乐性,同时,也有越来越多的手机游戏和网络游戏应运而生,其中2.5D游戏就是现在最火热的游戏类型之一。
不同于3D游戏,2.5D游戏由于视角的原因,游戏内的物体不会根据物体在场景内与摄像机的位置的距离,而产生远近视角差,即正交视角。现有技术为了解决正交视角下面的被控对象路线生成的问题,只能通过制作完全大小的三维的模型,再将其预先拼接好,且只能是生成固定的路径来实现人物在场景内的移动。这种方法不够灵活,当场内的物体出现变化,譬如消失或者移动后,人物就很难再执行移动操作。此外,寻路的路径,在绝大多的三维游戏里面是预先生成好的,因此,当场景内要是有物体被破坏了,或者丢失时,易出现游戏的穿帮问题。
发明内容
本申请提供了一种动态路线生成方法及装置,以实现对被控对象的动态路线的生成。
第一方面,提供了一种动态路线生成方法,包括:获取场景地图、初始位置的坐标和目的地的坐标,其中,所述场景地图包括一块或多块长、宽、高均相同的板块;对所述场景地图中的板块进行连接检测,对所述板块中的任意两块板块的连接触发器进行匹配,确定连接的板块;从所述连接的板块中确定一条或多条从所述初始位置至所述目的地的第一路线;从所述一条或多条第一路线中选取一条动态路线,其中,所述动态路线为路径最短的所述第一路线。
在一种可能的实现方式中,所述对所述场景地图中的板块进行连接检测,若所述板块中的任意两块板块的连接触发器相匹配,则确定为连接的板块,包括:获取所述场景地图中的一块或多块板块的高度,其中,所述高度为所述板块在场景地图中的竖直坐标;检测所述场景地图中高度相同的板块的高度,得到一组或多组相连的第一板块;检测所述场景地图板块的高度与其他板块的高度均不相同的板块,得到一组或多组不相连的第二板块;将所述一组或多组第一板块与所述一组或多组第二板块串联,得到所述连接的板块。
在另一种可能的实现方式中,所述检测所述场景地图中高度相同的板块的高度,得到一组或多组相连的第一板块,包括:获取第一坐标和第二坐标,其中,所述第一坐标和所述第二坐标分别为所述两块板块中距离最近的两个连接触发器的水平坐标;根据所述第一坐标、所述第二坐标、所述连接触发器的长和宽,得到所述两个连接触发器的面积重合度;若所述面积重合度大于或等于所述预设值,则确定匹配所述连接触发器;根据所述相匹配的连接触发器对应的板块,得到所述一组或多组第一板块。
在又一种可能的实现方式中,所述检测所述场景地图板块的高度与其他板块的高度均不相同的板块,得到一组或多组不相连的第二板块,包括:获取一个或多个所述板块的连接触发器的法线与所述正交摄像机的法线之间的夹角,其中,所述连接触发器为长方体,所述连接触发器的法线过所述连接触发器的几何中心并垂直于所述连接触发器的底面;当所述夹角中的任意两个夹角的差值的绝对值小于预设的容错角度,则视所述两个夹角对应的板块为第三板块;确定与所述夹角对应的连接触发器相匹配;将所述第三板块的第一距离与预设的容错距离进行比较,其中,所述第一距离为所述第三板块中任意两块板块之间的距离;若所述第一距离小于或等于所述容错距离,则确定所述第一距离对应的所述第三板块的连接触发器相匹配;根据所述相匹配的连接触发器对应的所述第三板块,得到所述一组或多组第二板块。
在又一种可能的实现方式中,所述从所述连接的板块中确定一条或多条从所述起始坐标至所述目标坐标的第一路线,包括:对第四板块进行搜索,确定一块或多块与所述第四板块连接的第五板块,其中,所述第四板块为所述初始位置对应的板块;根据所述一块或多块第五板块得到一条或多条第二路线;对所述一块或多块第五板块进行多次搜索,直到搜索得到的板块包含所述目的地,执行对所述第四板块进行搜索,确定一块或多块与所述第四板块连接的第五板块,根据所述一块或多块第五板块,得到一条或多条第二路线的步骤,得到所述一条或多条第一路线。
第二方面,提供了一种动态路线生成装置,包括:获取单元,用于获取场景地图、初始位置的坐标和目的地的坐标,其中,所述场景地图包括一块或多块长、宽、高均相同的板块;检测单元,用于对所述场景地图中的板块进行连接检测,对所述板块中的任意两块板块的连接触发器进行匹配,确定连接的板块;确定单元,用于从所述连接的板块中确定一条或多条从所述初始位置至所述目的地的第一路线;选取单元,用于从所述一条或多条第一路线中选取一条动态路线,其中,所述动态路线为路径最短的所述第一路线。
在一种可能的实现方式中,所述检测单元,包括:第一获取子单元,用于获取所述场景地图中的一块或多块板块的高度,其中,所述高度为所述板块在场景地图中的竖直坐标;第一检测子单元,用于检测所述场景地图中高度相同的板块的高度,得到一组或多组相连的第一板块;第二检测子单元,用于检测所述场景地图板块的高度与其他板块的高度均不相同的板块,得到一组或多组不相连的第二板块;串联子单元,用于将所述一组或多组第一板块与所述一组或多组第二板块串联,得到所述连接的板块。
在另一种可能的实现方式中,所述第一检测子单元还用于:获取第一坐标和第二坐标,其中,所述第一坐标和所述第二坐标分别为所述两块板块中距离最近的两个连接触发器的水平坐标;以及根据所述第一坐标、所述第二坐标、所述连接触发器的长和宽,得到所述两个连接触发器的面积重合度;以及若所述面积重合度大于或等于所述预设值,确定匹配所述连接触发器;以及根据所述相匹配的连接触发器对应的板块,得到所述一组或多组第一板块。
在又一种可能的实现方式中,所述第二检测子单元还用于:获取一个或多个所述板块的连接触发器的法线与所述正交摄像机的法线之间的夹角,其中,所述连接触发器为长方体,所述连接触发器的法线过所述连接触发器的几何中心并垂直于所述连接触发器的底面;以及当所述夹角中的任意两个夹角的差值的绝对值小于预设的容错角度,则视所述两个夹角对应的板块为第三板块;确定与所述夹角对应的连接触发器相匹配;以及将所述第三板块的第一距离与预设的容错距离进行比较,其中,所述第一距离为所述第三板块中任意两块板块之间的距离;以及若所述第一距离小于或等于所述容错距离,则确定所述第一距离对应的所述第三板块的连接触发器相匹配;以及根据所述相匹配的连接触发器对应的所述第三板块,得到所述一组或多组第二板块。
在又一种可能的实现方式中,所述选取单元,包括:搜索子单元,用于对第四板块进行搜索,确定一块或多块与所述第四板块连接的第五板块,其中,所述第四板块为所述初始位置对应的板块;确定子单元,用于根据所述一块或多块第五板块,得到一条或多条第二路线;所述搜索子单元,还用于对所述一块或多块第五板块进行多次搜索,直到搜索得到的板块包含所述目的地,执行对所述第四板块进行搜索,确定一块或多块与所述第四板块连接的第五板块,根据所述一块或多块第五板块,得到一条或多条第二路线的步骤,得到所述一条或多条第一路线。
第三方面,提供了一种动态路线生成装置,包括:包括处理器、存储器;所述处理器被配置为支持所述装置执行上述第一方面及其任一种可能的实现方式的方法中相应的功能。存储器用于与处理器耦合,其保存所述装置必要的程序(指令)和数据。可选的,所述装置还可以包括输入/输出接口,用于支持所述装置与其他装置之间的通信。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面及其任一种可能的实现方式的方法。
第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面及其任一种可能的实现方式的方法。
本申请通过场景地图中板块的高度坐标,将对板块连接的检测分为第一连接检测和第二连接检测,即同一水平面连接检测和正交视角下的连接检测。再通过对连接触发器的匹配情况进行判断完成对场景地图中任意两块板块的连接情况的判断,这样,可在后续的处理中规避不可行路线,提高算法的运行效率。
再根据场景地图中所有板块的连接情况,确定场景地图中所有可行的路线。最后通过将可行路线与本申请的动态路线规划算法相结合,实时规划出从被控对象的当前位置到目标位置的动态路线。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1为本申请实施例提供的一种动态路线生成方法的流程示意图;
图2为本申请实施例提供的另一种动态路线生成方法的流程示意图;
图3为本申请实施例提供的同一高度下板块连接的示意图;
图4为本申请实施例提供的设计者视角下板块分离的示意图;
图5为本申请实施例提供的通过正交摄像机判断两块板块是否相连的示意图
图6为本申请实施例提供的一种动态路线生成装置的结构示意图;
图7为本申请实施例提供的一种动态路线生成装置的硬件结构示意图。
具体实施方式
下面结合本申请实施例中的附图对本申请实施例进行描述。
请参阅图1,图1是本申请实施例提供的一种动态路线生成方法的流程示意图。
S101、获取场景地图、初始位置的坐标和目的地的坐标。
本申请可针对游戏中被控对象生成动态路线,游戏的场景地图中会存在被控对象无法通过的障碍物和区域,且不同游戏的场景地图也不一样。因此,在生成路线之前,需要获取游戏的场景地图。将玩家点击地图中的目的地时,被控对象所处的位置设为初始位置。同时获取初始位置的坐标和目的地的坐标。需要理解的是,上述坐标均为游戏地图坐标系中的坐标。
S102、对场景地图中的板块进行连接检测,对板块中的任意两块板块的连接触发器进行匹配,确定连接的板块。
场景地图包括若干大小相同的板块,但是这些板块不一定是全部相连的。需要理解的是,此处的相连是指:对被控对象来说,可将与其当前所处板块相连的任意一块板块作为下一个可移动的板块,并且被控对象不能移动到与其当前所处板块不相连的任意一块板块。因此,在对被控对象的动态路线进行规划之前,需要将场景地图中所有可行的线路找出,同时规避所有不可行的路线。
S103、从连接的板块中确定一条或多条从初始位置至目的地的第一路线。
通过上述板块连接的检测,可找出地图中所有相连的板块,再将所有相连的板块进行串联,直至找不到下一块相连的板块,确定被控对象的可行范围。因此,可从可行范围内确定一条或多条从初始位置到目的地的第一路线。具体地,以初始位置所在的板块为起始板块,找寻出所有与起始板块相连接的地板,并作为被控对象的下个可移动的点,如此往复,直至找到包含目的地的板块。由于每块板块相连的板块可能有多块,因此最终确定的第一路线可能是一条,也可能是多条。
S104、从一条或多条第一路线中选取一条动态路线。
如上所述,第一路线可能是一条,也可能是多条,但是不同的第一路线的路径大小是不一样的。因此,本申请从第一路线中选取路径最短的一条路线作为动态路线。
本申请通过场景地图中板块的高度坐标,将对板块连接的检测分为第一连接检测和第二连接检测,再通过对连接触发器的匹配情况进行判断完成对场景地图中任意两块板块的连接情况的判断,并基于检测的连接结果,得到所有可行路线。最后通过将可行路线与本申请的动态路线规划算法相结合,实时规划出从被控对象的当前位置到目标位置的动态路线。
请参阅图2,图2是本申请实施例提供的另一种动态路线生成方法的流程示意图。
S201、获取场景地图中的一块或多块板块的高度。
本实施例以游戏的虚拟角色为被控对象,对具体实施方式进行详细阐述。本申请根据玩家对游戏角色的控制,为被控对象实时规划动态路线,以到达玩家所指定的目的地。令被控对象的起始位置为原点o,原点向东的方向为x轴的正方向,原点向北的方向为y轴的正方向,垂直xoy平面竖直向上的方向为z轴的正方向。则游戏地图中的任意一个物体均可用坐标(x,y,z)表示。地图中的地面是由多块板块组成,而任意一块板块的坐标均可由板块的几何中心的坐标表示。同现实地面一样,游戏中的地图也并不是一个水平面,也就是说,不同的板块的高度可能会不一样,即不同的板块的高度坐标z的值可能不一样,这样,就可通过两块板块的z坐标的值来判断两块板块是否处于同一水平面。由于后续对不同板块是否是连接的进行判断之前,需要先对不同板块是否处于同一水平面进行判断,因此,在进行后续处理之前,需要先得到获取地图中所有板块的z坐标,即获取场景地图中的一块或多块板块的高度。
S202、检测场景地图中高度相同的板块的高度,得到一组或多组相连的第一板块。
如图3所示,每一块板块均有4个连接触发器。每个立体模型在三维空间里面均有相应的坐标值和法线值。连接触发器是一个长方体,每个连接触发器的一半摆放在板块的四个位置,而另一半则露出在板块外,且任意两个连接触发器的长、宽、高均一样。这样可保证任意一块板块当与相邻板块摆放在一起时,两个板块的相邻的触发器的坐标值一样或者两个坐标值的差值在容错值范围内。(图3中的A、B、C均表示两个连接器是相匹配的)
当游戏场景载入后,会根据场景设计师或者关卡设计师摆设的三维模型板块,收集每一块板块的数据,并将其保存至板块数据列表里,上述数据包括:板块的坐标、板块的每一个触发连接器的坐标。
如S201所述,在获得地图中所有板块的高度坐标z之后,根据所有板块的z选出所有可能连接在一起的板块组合。具体地,将z坐标一样的板块划分为同一组可能连接在一起的板块组合。连接在一起的板块组合的意思指:设M1和M2分别为两块板块,T1、T2、T3、T4分别为M1的四个连接触发器,t1、t2、t3、t4分别为M2的四个连接触发器。则当M2的t1到t4之间存在有任何一个连接触发器能匹配上M1的连接触发器T1到T4中的任何一个,则将M1与M2视为相连接的两块板块,且可通过这两块板块规划新路线。需要理解的是,若两块板块不是连接在一起的,则不可通过这两块板块规划新路线。
设H1、H2分别为M1和M2中距离最近的两个连接触发器,如上所述,H1、H2均为长方体,且H1和H2处于同一水平面。获取第一坐标和第二坐标,其中,所述第一坐标和所述第二坐标分别为H1和H2的水平坐标。设S1和S2分别为H1和H2的底面积,(x1,y1,z)、(x2,y2,z)分别为H1、H2的坐标,即为H1、H2的几何中心的坐标,则第一坐标为(x1,y1),第二坐标为(x2,y2),S=S1=S2=x1*y1=x2*y2。连接触发器的面积重合度A可由下式求得:
其中,S1∩S2为H1与H2交集的底面积大小。
连接触发器的匹配判据:若则两个连接触发器相匹配;若则两个连接触发器不相匹配。
根据上述匹配判据可得到一组或多组相匹配的板块,再将相匹配的板块串联起来,即可得到一组或多组第一板块。可以理解,第一板块是一片或多片连接区域,即被控对象可移动到该区域的任意一块板块。
S203、检测场景地图板块的高度与其他板块的高度均不相同的板块,得到一组或多组不相连的第二板块。
由于游戏采用正交视角的摄像头来渲染,因此在设计的时候会出现类似图4中的M和N两边的板块相离的状况,但是由于玩家在体验游戏时的视角与设计者设计游戏的视角不一样,因此玩家在实际体验的时候不会感觉到物体之间是分离。在这种情况低下,判断实际分离的板块之间是否是连接在一起的就需要用到正交摄像机。若场景地图中的某一块板块周围的板块的高度坐标均与其不一样,则对该板块进行第二连接检测。
从图5中可以看到,正交摄像机上面有条无限长的直线,这个就是它的法线。当检测到两块板块的高度坐标不一致,触发第二连接检测时,摄像机的法线将与M1和M2中的任意一个连接触发器的法线做对比,并求出摄像机法线与任意一个触发器法线之间的夹角。假设场景地图中的任何场景均不会遮挡摄像机发射出来的法线,则当摄像机发射出来法线与这个触发器接触时,即可获取到摄像机法线与该连接触发器的法线之间的夹角。显然,通过调整摄像机法线的角度,可获取到摄像机法线与任意一个连接触发器的法线之间的夹角,再将摄像机法线与任意一个连接触发器之间的法线夹角和预设的法线夹角容错值相比较,即可找出符合要求的触发器,并得到可能连接的板块组合。具体的,若摄像机法线与待检测的触发器法线的夹角a,预设的法线夹角容错值为b,则任意一个与摄像机法线的夹角在[a-b,a+b]之间的触发器均为符合要求的触发器,并将符合要求的触发器对应的板块与待检测触发器对应的板块列为可能连接的板块组合,即为第三板块。
由于第三板块中可能存在两块板块相距很远的组合,很显然,这两块板块是不相连的,即若被控对象所处的位置是其中一块板块,并不能将另一块板块作为下一块可能移动的板块。因此,需要通过设置距离阈值,将第三板块中相距很远的板块排除掉。具体的,若距离阈值为c,则将距离大于或等于c的第三板块组合排除掉,最终得到的第三板块组合均为相连的。
根据上述确定的一组或多组相匹配的板块,再将相匹配的板块串联起来,即可得到一组或多组第二板块,与第一板块一样,第二板块也是一片或多片连接区域,即被控对象可移动到该区域的任意一块板块。
S204、对第四板块进行搜索,确定一块或多块与第四板块连接的第五板块。
由于第一连接检测只针对处于同一水平面的地面进行检测,第二连接只针对不处于同一水平面的板块进行检测,因此当第一板块中的某一板块可能不存在与之相连的板块时,而第二板块中可能存在与之相连的板块。因此,将第一板块和第二板块相结合,即将所有第一板块和第二板块中所有相连的板块进行串联,得到可行区域。以第四板块为起点,在上述可行区域中进行搜索,确定一块或多块与第四板块连接的第五板块,其中,第四板块为所述初始位置对应的板块。
S205、根据一块或多块第五板块得到一条或多条第二路线。
在游戏设计中,地图可以划分为若干大小相同的板块,这些板块就是动态路线规划的基本单元。当得到第一地图后,玩家在第一地图上点击目标板块,将获取被控对象当前所处位置对应的板块的坐标,同时还将获取目标板块的坐标。
S206、对一块或多块第五板块进行多次搜索,直到搜索得到的板块包含目的地,执行对第四板块进行搜索,确定一块或多块与第四板块连接的第五板块,根据一块或多块第五板块得到一条或多条第二路线的步骤,得到一条或多条第一路线。
以第五板块为起点,在上述可行区域中进行搜索,确定一块或多块与第五板块连接的第六板块,再以第六板块为起点,在上述可行区域中进行多次搜索,直到搜索得到的板块包含目的地。显然,从第五板块到目的地对应的板块的第二路线至少有一条,再将第四板块与第五板块相连,即可得到一条或多条第一路线,需要指出的是,第四板块与第五板块的连接方式也至少有一种。
S207、从一条或多条第一路线中选取一条动态路线。
在游戏中,有一个很常见地需求,就是要让被控对象从A点走向B点,我们期望是让角色走最少的路。但是A到B中间往往会存在一些角色无法穿越的东西,比如墙、坑等障碍物,因此在对被控对象进行动态路线规划时,需要计算出两点之间的最短路径,同时要能避开障碍物。
在确定了寻路的起始点,目标点的情况下,假定每块板块都有一个F值,该值代表了在当前路线下选择走该板块的代价。而动态路线规划的思路很简单:从开始点,每走一步都选择代价最小的板块走,直到达到结束点。因此,动态路线规划的核心公式就是F值的计算:F=G+H。F为被控对象的总移动代价,G表示被控对象的起始位置到当前位置的移动代价,H当前位置到目标板块的预估移动代价。
假设被控对象在某一块板块,邻近有8块板块均可走。当被控对象往上、下、左、右这4块板块走时,移动代价为10;当往左上、左下、右上、右下这4块板块走时,移动代价为14,即走斜线的移动代价为走直线的1.4倍。基本公式:G=移动代价,即被控对象从起始位置移动到当前位置所消耗的移动代价的总和。
可选地,根据游戏需要,可对G值的计算进行拓展。如加上地形因素对寻路的影响。好比同一段路,平地地形和丘陵地形,虽然都可以走,但平地地形显然更易走。对应场景地图中不同的地形,选择通过不同地形的板块,所需要的移动代价肯定不同。因此,我们可以给不同地形赋予不同代价因子,来体现出G值的差异。如给平地地形设置代价因子为1,丘陵地形为2,在移动代价相同情况下,平地地形的G值更低,算法就会倾向选择G值更小的平地地形。拓展公式:G=移动代价*代价因子。
很显然,在只知道当前点和目标点,而不知道这两者的路径情况下,我们无法精确地确定H值大小,所以只能进行预估。本申请采用最常用的方法对H值进行预估:H=当前方块到结束点的水平距离加上当前方块到结束点的垂直距离。需要指出的是,该动态路线规划算法会自动规避掉障碍物。
本申请的动态路线规划在于其可通过预估H值,降低被控对象走弯路的可能性,更容易找到一条更短的路径。因此,相较于其他没有做预估处理的路线规划算法,本申请的路线规划算法的效率更高。
本申请通过场景地图中板块的高度坐标,将对板块连接的检测分为第一连接检测和第二连接检测,即同一水平面连接检测和正交视角下的连接检测。再通过对连接触发器的匹配情况进行判断完成对场景地图中任意两块板块的连接情况的判断,这样,可在后续的处理中规避不可行路线,提高算法的运行效率。
再根据场景地图中所有板块的连接情况,确定场景地图中所有可行的路线。最后通过将可行路线与本申请的动态路线规划算法相结合,实时规划出从被控对象的当前位置到目标位置的动态路线。
请参阅图6,图6为本申请实施例提供的一种动态路线生成装置的结构示意图,该装置1000包括:获取单元11、检测单元12、确定单元13、选取单元14。其中:
获取单元11,用于获取场景地图、初始位置的坐标和目的地的坐标,其中,所述场景地图包括一块或多块长、宽、高均相同的板块;
检测单元12,用于对所述场景地图中的板块进行连接检测,对所述板块中的任意两块板块的连接触发器进行匹配,确定连接的板块;
确定单元13,用于从所述连接的板块中确定一条或多条从所述初始位置至所述目的地的第一路线;
选取单元14,用于从所述一条或多条第一路线中选取一条动态路线,其中,所述动态路线为路径最短的所述第一路线。
进一步地,所述检测单元12,包括:第一获取子单元121,用于获取所述场景地图中的一块或多块板块的高度,其中,所述高度为所述板块在场景地图中的竖直坐标;第一检测子单元122,用于检测所述场景地图中高度相同的板块的高度,得到一组或多组相连的第一板块;第二检测子单元123,用于检测所述场景地图板块的高度与其他板块的高度均不相同的板块,得到一组或多组不相连的第二板块;串联子单元124,用于将所述一组或多组第一板块与所述一组或多组第二板块串联,得到所述连接的板块。
进一步地,所述第一检测子单元122还用于:获取第一坐标和第二坐标,其中,所述第一坐标和所述第二坐标分别为所述两块板块中距离最近的两个连接触发器的水平坐标;以及根据所述第一坐标、所述第二坐标、所述连接触发器的长和宽,得到所述两个连接触发器的面积重合度;以及若所述面积重合度大于或等于所述预设值,确定所述连接触发器相匹配;以及根据所述相匹配的连接触发器对应的板块,得到所述一组或多组第一板块。
进一步地,所述第二检测子单元123还用于:获取一个或多个所述板块的连接触发器的法线与所述正交摄像机的法线之间的夹角,其中,所述连接触发器为长方体,所述连接触发器的法线过所述连接触发器的几何中心并垂直于所述连接触发器的底面;以及当所述夹角中的任意两个夹角的差值的绝对值小于预设的容错角度,则视所述两个夹角对应的板块为第三板块;确定与所述夹角对应的连接触发器相匹配;以及将所述第三板块的第一距离与预设的容错距离进行比较,其中,所述第一距离为所述第三板块中任意两块板块之间的距离;以及若所述第一距离小于或等于所述容错距离,则确定所述第一距离对应的所述第三板块的连接触发器相匹配;以及根据所述相匹配的连接触发器对应的所述第三板块,得到所述一组或多组第二板块。
进一步地,所述选取单元14,包括:搜索子单元141,用于对第四板块进行搜索,确定一块或多块与所述第四板块连接的第五板块,其中,所述第四板块为所述初始位置对应的板块;确定子单元142,用于根据所述一块或多块第五板块,得到一条或多条第二路线;所述搜索子单元141,还用于对所述一块或多块第五板块进行多次搜索,直到搜索得到的板块包含所述目的地,执行对所述第四板块进行搜索,确定一块或多块与所述第四板块连接的第五板块,根据所述一块或多块第五板块,得到一条或多条第二路线的步骤,得到所述一条或多条第一路线。
图7为本申请实施例提供的一种动态路线生成装置的硬件结构示意图。该生成装置包括处理器21,还可以包括输入装置22、输出装置23和存储器24。该输入装置22、输出装置23、存储器24和处理器21之间通过总线相互连接。
存储器包括但不限于是随机存储记忆体(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmable readonly memory,EPROM)、或便携式只读存储器(compact disc read-only memory,CD-ROM),该存储器用于相关指令及数据。
输入装置用于输入数据和/或信号,以及输出装置用于输出数据和/或信号。输出装置和输入装置可以是独立的器件,也可以是一个整体的器件。
处理器可以包括是一个或多个处理器,例如包括一个或多个中央处理器(centralprocessing unit,CPU),在处理器是一个CPU的情况下,该CPU可以是单核CPU,也可以是多核CPU。
存储器用于存储网络设备的程序代码和数据。
处理器用于调用该存储器中的程序代码和数据,执行上述方法实施例中的步骤。具体可参见方法实施例中的描述,在此不再赘述。
可以理解的是,图7仅仅示出了一种动态路线生成装置的简化设计。在实际应用中,动态路线生成装置还可以分别包含必要的其他元件,包含但不限于任意数量的输入/输出装置、处理器、控制器、存储器等,而所有可以实现本申请实施例的动态路线生成装置都在本申请的保护范围之内。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。所显示或讨论的相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者通过该计算机可读存储介质进行传输。该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是只读存储器(read-onlymemory,ROM),或随机存储存储器(random access memory,RAM),或磁性介质,例如,软盘、硬盘、磁带、磁碟、或光介质,例如,数字通用光盘(digital versatile disc,DVD)、或者半导体介质,例如,固态硬盘(solid state disk,SSD)等。
Claims (10)
1.一种动态路线生成方法,其特征在于,包括:
获取场景地图、初始位置的坐标和目的地的坐标,其中,所述场景地图包括一块或多块长、宽、高均相同的板块;
对所述场景地图中的板块进行连接检测,对所述板块中的任意两块板块的连接触发器进行匹配,确定连接的板块;
从所述连接的板块中确定一条或多条从所述初始位置至所述目的地的第一路线;
从所述一条或多条第一路线中选取一条动态路线,其中,所述动态路线为路径最短的所述第一路线。
2.如权利要求1所述的方法,其特征在于,所述对所述场景地图中的板块进行连接检测,若所述板块中的任意两块板块的连接触发器相匹配,则确定为连接的板块,包括:
获取所述场景地图中的一块或多块板块的高度,其中,所述高度为所述板块在场景地图中的竖直坐标;
检测所述场景地图中高度相同的板块的高度,得到一组或多组相连的第一板块;
检测所述场景地图板块的高度与其他板块的高度均不相同的板块,得到一组或多组不相连的第二板块;
将所述一组或多组第一板块与所述一组或多组第二板块串联,得到所述连接的板块。
3.如权利要求2所述的方法,其特征在于,所述检测所述场景地图中高度相同的板块的高度,得到一组或多组相连的第一板块,包括:
获取第一坐标和第二坐标,其中,所述第一坐标和所述第二坐标分别为所述两块板块中距离最近的两个连接触发器的水平坐标;
根据所述第一坐标、所述第二坐标、所述连接触发器的长和宽,得到所述两个连接触发器的面积重合度;
若所述面积重合度大于或等于所述预设值,则确定匹配所述连接触发器;
根据所述相匹配的连接触发器对应的板块,得到所述一组或多组第一板块。
4.如权利要求2所述的方法,其特征在于,所述检测所述场景地图板块的高度与其他板块的高度均不相同的板块,得到一组或多组不相连的第二板块,包括:
获取一个或多个所述板块的连接触发器的法线与所述正交摄像机的法线之间的夹角,其中,所述连接触发器为长方体,所述连接触发器的法线过所述连接触发器的几何中心并垂直于所述连接触发器的底面;
当所述夹角中的任意两个夹角的差值的绝对值小于预设的容错角度,则视所述两个夹角对应的板块为第三板块;确定与所述夹角对应的连接触发器相匹配;
将所述第三板块的第一距离与预设的容错距离进行比较,其中,所述第一距离为所述第三板块中任意两块板块之间的距离;
若所述第一距离小于或等于所述容错距离,则确定所述第一距离对应的所述第三板块的连接触发器相匹配;
根据所述相匹配的连接触发器对应的所述第三板块,得到所述一组或多组第二板块。
5.如权利要求1所述的方法,其特征在于,所述从所述连接的板块中确定一条或多条从所述起始坐标至所述目标坐标的第一路线,包括:
对第四板块进行搜索,确定一块或多块与所述第四板块连接的第五板块,其中,所述第四板块为所述初始位置对应的板块;
根据所述一块或多块第五板块得到一条或多条第二路线;
对所述一块或多块第五板块进行多次搜索,直到搜索得到的板块包含所述目的地,执行对所述第四板块进行搜索,确定一块或多块与所述第四板块连接的第五板块,根据所述一块或多块第五板块得到一条或多条第二路线的步骤,得到所述一条或多条第一路线。
6.一种动态路线生成装置,其特征在于,包括:
获取单元,用于获取场景地图、初始位置的坐标和目的地的坐标,其中,所述场景地图包括一块或多块长、宽、高均相同的板块;
检测单元,用于对所述场景地图中的板块进行连接检测,对所述板块中的任意两块板块的连接触发器进行匹配,确定连接的板块;
确定单元,用于从所述连接的板块中确定一条或多条从所述初始位置至所述目的地的第一路线;
选取单元,用于从所述一条或多条第一路线中选取一条动态路线,其中,所述动态路线为路径最短的所述第一路线。
7.如权利要求6所述的装置,其特征在于,所述检测单元,包括:
第一获取子单元,用于获取所述场景地图中的一块或多块板块的高度,其中,所述高度为所述板块在场景地图中的竖直坐标;
第一检测子单元,用于检测所述场景地图中高度相同的板块的高度,得到一组或多组相连的第一板块;
第二检测子单元,用于检测所述场景地图板块的高度与其他板块的高度均不相同的板块,得到一组或多组不相连的第二板块;
串联子单元,用于将所述一组或多组第一板块与所述一组或多组第二板块串联,得到所述连接的板块。
8.如权利要求7所述的装置,其特征在于,所述第一检测子单元还用于:
获取第一坐标和第二坐标,其中,所述第一坐标和所述第二坐标分别为所述两块板块中距离最近的两个连接触发器的水平坐标;
以及根据所述第一坐标、所述第二坐标、所述连接触发器的长和宽,得到所述两个连接触发器的面积重合度;
以及若所述面积重合度大于或等于所述预设值,确定匹配所述连接触发器;
以及根据所述相匹配的连接触发器对应的板块,得到所述一组或多组第一板块。
9.如权利要求7所述的装置,其特征在于,所述第二检测子单元还用于:
获取一个或多个所述板块的连接触发器的法线与所述正交摄像机的法线之间的夹角,其中,所述连接触发器为长方体,所述连接触发器的法线过所述连接触发器的几何中心并垂直于所述连接触发器的底面;
以及当所述夹角中的任意两个夹角的差值的绝对值小于预设的容错角度,则视所述两个夹角对应的板块为第三板块;确定与所述夹角对应的连接触发器相匹配;
以及将所述第三板块的第一距离与预设的容错距离进行比较,其中,所述第一距离为所述第三板块中任意两块板块之间的距离;
以及若所述第一距离小于或等于所述容错距离,则确定所述第一距离对应的所述第三板块的连接触发器相匹配;
以及根据所述相匹配的连接触发器对应的所述第三板块,得到所述一组或多组第二板块。
10.如权利要求6所述的装置,其特征在于,所述选取单元,包括:
搜索子单元,用于对第四板块进行搜索,确定一块或多块与所述第四板块连接的第五板块,其中,所述第四板块为所述初始位置对应的板块;
确定子单元,用于根据所述一块或多块第五板块,得到一条或多条第二路线;
所述搜索子单元,还用于对所述一块或多块第五板块进行多次搜索,直到搜索得到的板块包含所述目的地,执行对所述第四板块进行搜索,确定一块或多块与所述第四板块连接的第五板块,根据所述一块或多块第五板块,得到一条或多条第二路线的步骤,得到所述一条或多条第一路线。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811057151.5A CN109260709B (zh) | 2018-09-11 | 2018-09-11 | 一种动态路线的生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811057151.5A CN109260709B (zh) | 2018-09-11 | 2018-09-11 | 一种动态路线的生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109260709A true CN109260709A (zh) | 2019-01-25 |
CN109260709B CN109260709B (zh) | 2022-02-22 |
Family
ID=65189157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811057151.5A Active CN109260709B (zh) | 2018-09-11 | 2018-09-11 | 一种动态路线的生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109260709B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109806585A (zh) * | 2019-02-19 | 2019-05-28 | 网易(杭州)网络有限公司 | 游戏的显示控制方法、装置、设备和存储介质 |
CN113082713A (zh) * | 2021-03-01 | 2021-07-09 | 上海硬通网络科技有限公司 | 游戏控制方法、装置及电子设备 |
CN113082714A (zh) * | 2021-03-01 | 2021-07-09 | 上海硬通网络科技有限公司 | 游戏角色的移动路径确定方法、装置及电子设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103893969A (zh) * | 2014-04-15 | 2014-07-02 | 广州博冠信息科技有限公司 | 一种游戏中寻路的方法和设备 |
CN104548597A (zh) * | 2014-12-26 | 2015-04-29 | 北京像素软件科技股份有限公司 | 导航网格的自动生成方法和装置 |
JP2017051493A (ja) * | 2015-09-10 | 2017-03-16 | 株式会社バンダイナムコエンターテインメント | プログラム及びゲームシステム |
CN106600697A (zh) * | 2016-12-13 | 2017-04-26 | 东北大学 | 一种面向3d场景的导航网格地图表示方法 |
CN106582023A (zh) * | 2016-12-01 | 2017-04-26 | 北京像素软件科技股份有限公司 | 一种游戏寻路方法和装置 |
CN107256017A (zh) * | 2017-04-28 | 2017-10-17 | 中国农业大学 | 路线规划方法及系统 |
CN107357581A (zh) * | 2014-12-02 | 2017-11-17 | 厦门飞游信息科技有限公司 | 一种游戏组件及计算终端 |
CN108434741A (zh) * | 2018-03-15 | 2018-08-24 | 网易(杭州)网络有限公司 | 虚拟现实中的移动控制方法及装置 |
-
2018
- 2018-09-11 CN CN201811057151.5A patent/CN109260709B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103893969A (zh) * | 2014-04-15 | 2014-07-02 | 广州博冠信息科技有限公司 | 一种游戏中寻路的方法和设备 |
CN107357581A (zh) * | 2014-12-02 | 2017-11-17 | 厦门飞游信息科技有限公司 | 一种游戏组件及计算终端 |
CN104548597A (zh) * | 2014-12-26 | 2015-04-29 | 北京像素软件科技股份有限公司 | 导航网格的自动生成方法和装置 |
JP2017051493A (ja) * | 2015-09-10 | 2017-03-16 | 株式会社バンダイナムコエンターテインメント | プログラム及びゲームシステム |
CN106582023A (zh) * | 2016-12-01 | 2017-04-26 | 北京像素软件科技股份有限公司 | 一种游戏寻路方法和装置 |
CN106600697A (zh) * | 2016-12-13 | 2017-04-26 | 东北大学 | 一种面向3d场景的导航网格地图表示方法 |
CN107256017A (zh) * | 2017-04-28 | 2017-10-17 | 中国农业大学 | 路线规划方法及系统 |
CN108434741A (zh) * | 2018-03-15 | 2018-08-24 | 网易(杭州)网络有限公司 | 虚拟现实中的移动控制方法及装置 |
Non-Patent Citations (1)
Title |
---|
血月笙歌: "A星寻路在2.5D游戏中的实现", 《HTTPS://BLOG.CSDN.NET/JUEANE/ARTICLE/DETAILS/79179076》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109806585A (zh) * | 2019-02-19 | 2019-05-28 | 网易(杭州)网络有限公司 | 游戏的显示控制方法、装置、设备和存储介质 |
CN109806585B (zh) * | 2019-02-19 | 2024-02-23 | 网易(杭州)网络有限公司 | 游戏的显示控制方法、装置、设备和存储介质 |
CN113082713A (zh) * | 2021-03-01 | 2021-07-09 | 上海硬通网络科技有限公司 | 游戏控制方法、装置及电子设备 |
CN113082714A (zh) * | 2021-03-01 | 2021-07-09 | 上海硬通网络科技有限公司 | 游戏角色的移动路径确定方法、装置及电子设备 |
CN113082714B (zh) * | 2021-03-01 | 2022-08-02 | 上海硬通网络科技有限公司 | 游戏角色的移动路径确定方法、装置及电子设备 |
CN113082713B (zh) * | 2021-03-01 | 2022-12-09 | 上海硬通网络科技有限公司 | 游戏控制方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109260709B (zh) | 2022-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102009105B1 (ko) | 실시간 가상 장면의 충돌체 사이의 충돌을 검출하기 위한 방법 및 단말과 저장 매체 | |
Nüchter et al. | 6D SLAM—3D mapping outdoor environments | |
Li et al. | Coverage hole and boundary nodes detection in wireless sensor networks | |
US20160300389A1 (en) | Correlated immersive virtual simulation for indoor navigation | |
Zhang et al. | Line segment based map building and localization using 2D laser rangefinder | |
EP2915137B1 (en) | Using a plurality of sensors for mapping and localization | |
US10057725B2 (en) | Sensor-based geolocation of a user device | |
CN109260709A (zh) | 一种动态路线的生成方法及装置 | |
CN110812844B (zh) | 一种游戏中的寻路方法、终端及可读存储介质 | |
CN106796434A (zh) | 地图生成方法、自身位置推定方法、机器人系统和机器人 | |
US20160286351A1 (en) | Indoor navigation anomaly detection | |
CN112090078B (zh) | 游戏角色移动控制方法、装置、设备和介质 | |
CN108638062A (zh) | 机器人定位方法、装置、定位设备及存储介质 | |
US20160298969A1 (en) | Graceful sensor domain reliance transition for indoor navigation | |
Cervenak et al. | ARKit as indoor positioning system | |
US20240078701A1 (en) | Location determination and mapping with 3d line junctions | |
CN111724485A (zh) | 实现虚实融合的方法、装置、电子设备及存储介质 | |
CN109858090B (zh) | 基于动态视域的公共建筑引导系统设计方法 | |
Siltanen et al. | Automatic marker field calibration | |
Van Breda | Vector field histogram star obstacle avoidance system for multicopters | |
WO2024095744A1 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
JP3704276B2 (ja) | 電波到達範囲評価装置 | |
CN116943206A (zh) | 移动路径的确定方法和装置、存储介质及电子设备 | |
Fransson et al. | Sensor Fusion based Indoor Positioning with iBeacons | |
CN117128984A (zh) | 导航地图生成方法和装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |