CN117482511A - 虚拟对象的移动控制方法、装置、设备及存储介质 - Google Patents
虚拟对象的移动控制方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117482511A CN117482511A CN202311247254.9A CN202311247254A CN117482511A CN 117482511 A CN117482511 A CN 117482511A CN 202311247254 A CN202311247254 A CN 202311247254A CN 117482511 A CN117482511 A CN 117482511A
- Authority
- CN
- China
- Prior art keywords
- target
- virtual object
- virtual
- road section
- speed
- 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 84
- 230000004044 response Effects 0.000 claims abstract description 44
- 230000008569 process Effects 0.000 claims abstract description 34
- 238000006073 displacement reaction Methods 0.000 claims description 38
- 238000013507 mapping Methods 0.000 claims description 37
- 230000008859 change Effects 0.000 claims description 25
- 230000001133 acceleration Effects 0.000 claims description 16
- 238000004422 calculation algorithm Methods 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 9
- 230000009471 action Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
-
- 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/60—Methods for processing data by generating or executing the game program
- A63F2300/64—Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Processing Or Creating Images (AREA)
Abstract
本公开涉及计算机领域,提供了一种虚拟对象的移动控制方法、装置、设备及存储介质,该方法包括:响应于目标虚拟对象在目标路径中第一虚拟路段中以第一运动状态运动,确定目标路径中与第一虚拟路段相邻的第二虚拟路段;基于第一运动状态、第一虚拟路段和第二虚拟路段之间的路段参数差异,确定目标虚拟对象抵达第二虚拟路段时第二运动状态;响应于目标虚拟对象抵达第二虚拟路段,控制目标虚拟对象以第二运动状态进行运动。本方法通过在虚拟对象基于目标路径上的虚拟路段进行移动时,计算出虚拟对象进行移动的第二运动状态,通过第二运动状态控制虚拟对象至虚拟路段,避免虚拟对象在移动过程中表现不自然的问题。
Description
技术领域
本公开涉及计算机领域,尤其涉及一种虚拟对象的移动控制方法、装置、设备及存储介质。
背景技术
游戏中的虚拟对象会受场景、玩法和机制等因素的影响,在整个游戏的进程中不停移动,且经常需要通过自主寻路的方式不断向目标终点移动,而自主寻路的实现可以通常是通过获取由若干目标点连接而成的最短路径,然后沿着最短路径进行移动直到抵达目标终点。现有技术会把重心放在如何更快速、高效以及准确地寻找到一条通向目标终点的最短路径上,并根据预设的速度控制虚拟对象根据最短路径进行移动,然而,计算出的最短路径基本会存在不同角度的转折,当面对路径中需要进行转向的情况时,由于虚拟对象保持预设的速度进行移动,容易导致虚拟对象在移动过程中表现不自然的问题发生。
发明内容
本公开的主要目的在于解决现有的游戏控制虚拟对象进行寻路的过程中,转向时移动表现不自然的技术问题。
本公开第一方面提供了一种虚拟对象的移动控制方法,通过终端设备提供图形用户界面,所述图形用户界面显示有至少部分的游戏场景,所述游戏场景包括目标虚拟对象,方法包括:
响应针对所述目标虚拟对象的位移事件,在所述虚拟场景中确定与所述位移事件对应的目标路径并控制所述目标虚拟对象沿所述目标路径运动,其中,所述目标路径包括多个虚拟路段;
响应于所述目标虚拟对象在所述目标路径中第一虚拟路段中以第一运动状态运动,确定所述目标路径中与所述第一虚拟路段相邻的第二虚拟路段,其中,所述第一运动状态包括第一运动速度和第一运动方向;
基于所述第一运动状态、所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异,确定所述目标虚拟对象抵达所述第二虚拟路段时第二运动状态;
响应于所述目标虚拟对象抵达所述第二虚拟路段,控制所述目标虚拟对象以所述第二运动状态进行运动,其中,所述第二运动状态包括第二运动速度和第二运动方向;
其中,所述第二运动状态和所述第一运动状态至少运动方向不同,所述第二运动方向基于所述路段参数差异确定,所述第二运动速度与目标转向角度相匹配,所述目标转向角度为所述第一运动方向与所述第二运动方向之间的角度差。
本公开第二方面提供了一种虚拟对象的移动控制装置,通过终端设备提供图形用户界面,所述图形用户界面显示有至少部分的游戏场景,所述游戏场景包括目标虚拟对象,装置包括:
位移控制模块,用于响应针对所述目标虚拟对象的位移事件,在所述虚拟场景中确定与所述位移事件对应的目标路径并控制所述目标虚拟对象沿所述目标路径运动,其中,所述目标路径包括多个虚拟路段;
相邻路段确定模块,用于响应于所述目标虚拟对象在所述目标路径中第一虚拟路段中以第一运动状态运动,确定所述目标路径中与所述第一虚拟路段相邻的第二虚拟路段,其中,所述第一运动状态包括第一运动速度和第一运动方向;
第二运动状态计算模块,用于基于所述第一运动状态、所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异,确定所述目标虚拟对象抵达所述第二虚拟路段时第二运动状态;
运动控制模块,用于响应于所述目标虚拟对象抵达所述第二虚拟路段,控制所述目标虚拟对象以所述第二运动状态进行运动,其中,所述第二运动状态包括第二运动速度和第二运动方向;其中,所述第二运动状态和所述第一运动状态至少运动方向不同,所述第二运动方向基于所述路段参数差异确定,所述第二运动速度与目标转向角度相匹配,所述目标转向角度为所述第一运动方向与所述第二运动方向之间的角度差。
本公开第三方面提供了一种虚拟对象的移动控制装置,包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;所述至少一个处理器调用所述存储器中的所述指令,以使得所述虚拟对象的移动控制设备执行上述的虚拟对象的移动控制方法的步骤。
本公开的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的虚拟对象的移动控制方法的步骤。
本公开响应针对所述目标虚拟对象的位移事件,在所述虚拟场景中确定与所述位移事件对应的目标路径并控制所述目标虚拟对象沿所述目标路径运动,其中,所述目标路径包括多个虚拟路段;响应于所述目标虚拟对象在所述目标路径中第一虚拟路段中以第一运动状态运动,确定所述目标路径中与所述第一虚拟路段相邻的第二虚拟路段,其中,所述第一运动状态包括第一运动速度和第一运动方向;基于所述第一运动状态、所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异,确定所述目标虚拟对象抵达所述第二虚拟路段时第二运动状态;响应于所述目标虚拟对象抵达所述第二虚拟路段,控制所述目标虚拟对象以所述第二运动状态进行运动,其中,所述第二运动状态包括第二运动速度和第二运动方向;其中,所述第二运动状态和所述第一运动状态至少运动方向不同。本方法通过在虚拟对象基于目标路径上的虚拟路段进行移动时,计算出虚拟对象进行移动的第二运动状态,通过第二运动状态控制虚拟对象至虚拟路段,避免虚拟对象在移动过程中表现不自然的问题。
本公开的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本公开而了解。本公开的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
图1为本公开实施例中虚拟对象的移动控制方法的一个实施例示意图;
图2为本公开实施例中虚拟对象的移动控制方法的另一个实施例示意图;
图3为本公开实施例中虚拟对象的移动控制方法的另一个实施例示意图;
图4为本公开实施例中虚拟对象的移动控制装置的一个实施例示意图;
图5为本公开实施例中虚拟对象的移动控制装置的另一个实施例示意图;
图6为本公开实施例中虚拟对象的移动控制设备的一个实施例示意图。
具体实施方式
本发明实施例提供一种虚拟对象的移动控制方法、装置、设备及存储介质,响应针对所述目标虚拟对象的位移事件,在所述虚拟场景中确定与所述位移事件对应的目标路径并控制所述目标虚拟对象沿所述目标路径运动,其中,所述目标路径包括多个虚拟路段;响应于所述目标虚拟对象在所述目标路径中第一虚拟路段中以第一运动状态运动,确定所述目标路径中与所述第一虚拟路段相邻的第二虚拟路段,其中,所述第一运动状态包括第一运动速度和第一运动方向;基于所述第一运动状态、所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异,确定所述目标虚拟对象抵达所述第二虚拟路段时第二运动状态;响应于所述目标虚拟对象抵达所述第二虚拟路段,控制所述目标虚拟对象以所述第二运动状态进行运动,其中,所述第二运动状态包括第二运动速度和第二运动方向;其中,所述第二运动状态和所述第一运动状态至少运动方向不同。本方法通过在虚拟对象基于目标路径上的虚拟路段进行移动时,计算出虚拟对象进行移动的第二运动状态,通过第二运动状态控制虚拟对象至虚拟路段,避免虚拟对象在移动过程中表现不自然的问题。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中镜头属性调整方法的第一个实施例包括:
101、响应针对目标虚拟对象的位移事件,在虚拟场景中确定与位移事件对应的目标路径并控制目标虚拟对象沿目标路径运动;
在实际应用中,无论是玩家所控制的虚拟对象还是游戏AI自主控制的角色,都会受场景、玩法和机制等因素的影响,在整个游戏的进程中不停移动,且经常需要通过自主寻路的方式不断向目标终点移动。而自主寻路的实现可以概括为两个步骤,步骤一是获取由若干目标点连接而成的最短路径,步骤二是沿着最短路径进行移动直到抵达目标终点。在步骤一种需要先对地图进行预处理,将由地图边界的顶点和障碍物外围边界的顶点所组成的顶点集合,转换成为一个全部由三角形构成的寻路网络。然后通过依次验证最短网格路径上相邻三角形的顶点,来找到一条连接起始点和最终目标点的最短路径,在本实施例中,该最短路径即为虚拟对象当前进行寻路的目标路径,此外,也可以是其他的移动路径,本公开实施例不做限定。而目标虚拟对象,即为进行寻路的虚拟对象,该虚拟对象可以是玩家所控制的虚拟对象,也可以是游戏AI自主控制的角色,或者玩家当前显示设备显示的虚拟对象。
在本实施例中,为了让寻路算法运行的更为高效,寻路网格一定不会无限制的细分下去,也就会导致执行完步骤一后所获得的最短路径,大概率会是一条折线而不是平滑的曲线,在该折线上,存在有多个虚拟路段,目标虚拟对象在不同的移动阶段,均沿着对应的虚拟路段进行移动,当移动到对应的虚拟路段时,再调整移动到下一虚拟路段,直至到达最终虚拟路段,也就是该目标路径的寻路目标的位置。
102、响应于目标虚拟对象在目标路径中第一虚拟路段中以第一运动状态运动,确定所述目标路径中与所述第一虚拟路段相邻的第二虚拟路段;
在本实施例中,可以获取目标虚拟对象在游戏中的当前位置,根据目标虚拟对象当前所处的位置和运动状态,确定其位于目标路径的哪一个虚拟路段,并标识为第一虚拟路段。例如,如果目标虚拟对象位于目标路径的起点附近并且正在行走状态,那么起点所在的虚拟路段就是第一虚拟路段,在确定了第一虚拟路段后,根据目标路径的设计和规则,找到与该虚拟路段相邻的下一个虚拟路段,并将其识别为第二虚拟路段。
需要注意的是,由于目标路径中的虚拟路段可能不是连续的,例如第一虚拟路段是路面,而第二虚拟路段在空中,此时,当第一虚拟路段检索不到在路面相邻的第二虚拟路段时,识别空中最近的虚拟路段为相邻路段,并作为第二虚拟路段以及所述第一运动状态包括第一运动速度和第一运动方向。
103、基于第一运动状态、第一虚拟路段和第二虚拟路段之间的路段参数差异,确定目标虚拟对象抵达第二虚拟路段时第二运动状态;
在本实施例中,根据游戏设计和规则,确定用于描述每个虚拟路段的参数或属性。这些参数可以涉及地形类型、障碍物分布、坡度、道路宽度等。通过获取第一虚拟路段和第二虚拟路段之间的参数差异,可以判断目标虚拟对象在两个路段之间需要适应的变化。比较第一虚拟路段和第二虚拟路段之间的参数差异。例如,如果第一虚拟路段是平坦的道路,而第二虚拟路段是陡峭的山坡,那么参数差异可能包括坡度增加、阻力增大等。根据参数差异,确定目标虚拟对象在抵达第二虚拟路段时的第二运动速度。例如,若参数差异表明目标虚拟对象需要克服较大的阻力或者爬升陡峭的山坡,第二运动速度可能会减慢;反之,若参数差异表明目标虚拟对象面临平缓的下坡或宽阔的道路,第二运动速度可能会加快。根据参数差异,确定目标虚拟对象在抵达第二虚拟路段时的第二运动方向。例如,如果参数差异表明目标虚拟对象需要绕过一个障碍物,第二运动方向可能会调整以避开障碍物;或者如果参数差异表明目标虚拟对象进入一个狭窄的通道,第二运动方向可能会调整以适应通道的走向。根据确定的第二运动速度和第二运动方向,将其应用于目标虚拟对象在抵达第二虚拟路段时的运动行为。
104、响应于目标虚拟对象抵达第二虚拟路段,控制目标虚拟对象以第二运动状态进行运动。
在本实施例中,在控制所述目标虚拟对象以所述第二运动状态进行运动的过程中,可以根据确定的第二运动速度,控制目标虚拟对象的移动速度。如果目标虚拟对象需要减速,可以逐渐降低其速度,确保其平稳地适应路段的变化。若目标虚拟对象需要加速,可以逐渐增加其速度,使其能够快速而安全地穿越虚拟路段。根据确定的第二运动方向,控制目标虚拟对象的转向。如果目标虚拟对象需要绕过障碍物或遵循特定路线,可以通过调整其旋转角度来使其按照预期路径行进。根据所述第二虚拟路段的参数差异,控制目标虚拟对象适应环境的变化。例如,如果第二虚拟路段是陡峭的山坡,目标虚拟对象可能需要调整其姿态和动作,以适应上坡或下坡的情况。如果第二虚拟路段存在道路狭窄的情况,目标虚拟对象可能需要调整其行进方式,以适应有限的空间。需要注意的是,所述第二运动状态包括第二运动速度和第二运动方向;其中,所述第二运动状态和所述第一运动状态至少运动方向不同,并且所述第二运动方向基于所述路段参数差异确定,所述第二运动速度与目标转向角度相匹配,所述目标转向角度为所述第一运动方向与所述第二运动方向之间的角度差。
在本实施例中,响应针对目标虚拟对象的位移事件,在虚拟场景中确定与位移事件对应的目标路径并控制目标虚拟对象沿目标路径运动,其中,目标路径包括多个虚拟路段;响应于目标虚拟对象在目标路径中第一虚拟路段中以第一运动状态运动,确定目标路径中与第一虚拟路段相邻的第二虚拟路段,其中,第一运动状态包括第一运动速度和第一运动方向;基于第一运动状态、第一虚拟路段和第二虚拟路段之间的路段参数差异,确定目标虚拟对象抵达第二虚拟路段时第二运动状态;响应于目标虚拟对象抵达第二虚拟路段,控制目标虚拟对象以第二运动状态进行运动,其中,第二运动状态包括第二运动速度和第二运动方向;其中,第二运动状态和第一运动状态至少运动方向不同。本方法通过在虚拟对象基于目标路径上的虚拟路段进行移动时,计算出虚拟对象进行移动的第二运动状态,通过第二运动状态控制虚拟对象至虚拟路段,避免虚拟对象在移动过程中表现不自然的问题。
请参阅图2,本公开实施例中虚拟对象的移动控制方法的另一个实施例包括:
201、响应针对目标虚拟对象的位移事件,在虚拟场景中确定与位移事件对应的目标路径并控制目标虚拟对象沿目标路径运动,其中,目标路径包括多个虚拟路段;
202、响应于目标虚拟对象在目标路径中第一虚拟路段中以第一运动状态运动,确定目标路径中与第一虚拟路段相邻的第二虚拟路段;
在本实施例中,步骤201-202与第一实施例中的步骤101-102相似,在此不再赘述。
203、获取第二虚拟路段的路段类型,并根据路段类型确定目标虚拟对象的第二运动方向;
在本实施例中,所述获取所述第二虚拟路段的路段类型,并根据所述路段类型确定所述目标虚拟对象的第二运动方向包括:获取所述第二虚拟路段的路段类型,并判断所述第二虚拟路段的路段类型;当所述路段类型为最终虚拟路段时,获取所述第二虚拟路段的路段方向,并将所述第二虚拟路段的路段方向作为所述目标虚拟对象的第二运动方向;当所述路段类型为非最终虚拟路段时,获取第三虚拟路段,并获取所述第三虚拟路段的路段方向,并将所述第二虚拟路段的路段方向作为所述目标虚拟对象的第二运动方向。
204、根据第二运动方向和第一运动状态,计算目标虚拟对象从第一虚拟路段抵达第二虚拟路段的转向角度;
在本实施例中,所述根据所述第二运动方向和所述第一运动状态,计算所述目标虚拟对象从所述第一虚拟路段抵达所述第二虚拟路段的转向角度包括:根据所述第一运动状态中的第一运动方向,生成所述目标虚拟对象抵达所述第一虚拟路段的第一运动方向向量,并生成所述第二运动方向的第二运动方向向量;根据所述第一运动方向向量和所述第二运动方向向量,计算所述第一运动方向和所述第二运动方向的角度差;将所述角度差作为所述目标虚拟对象从所述第一虚拟路段抵达所述第二虚拟路段的转向角度。
205、根据第二虚拟路段的路段类型、转向角度、第一虚拟路段和第二虚拟路段之间的路段参数差异确定目标虚拟对象抵达第二虚拟路段时的第二运动速度;
在本实施例中,当所述目标点类型为非最终目标点时,所述根据所述第二虚拟路段的路段类型、所述转向角度、所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异确定所述目标虚拟对象抵达所述第二虚拟路段时的第二运动速度包括:判断所述转向角度是否大于第一预设角度阈值;若是,则将所述目标虚拟对象的最小移动速率作为第二运动速度;若否,则判断所述目标虚拟对象是否存在设定速率或所述转向角度是否小于第二预设角度阈值;若所述目标虚拟对象存在设定速率且所述转向角度小于第二预设角度阈值,则将所述设定速率作为第二运动速度;若所述目标虚拟对象不存在设定速率或所述转向角度不小于第二预设角度阈值,则根据预设的映射关系和所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异,计算所述转向角度的映射速率,并将所述映射速率作为第二运动速度。
具体的,在本实施例中,第二运动速度根据不同情况分别等于种不同的速率:映射速率、设定速率、行走速率,通过转向角度的大小与第一预设角度阈值进行比对,判断第二运动速度对应的是哪一种速率。当转向角度大于第一预设角度阈值时,由于目标虚拟对象的速度方向变化过于剧烈,因此需要将最小的移动速率作为当前的第二运动速度,来限制移动轨迹的半径从而增强大角度的转向表现,因此将目标虚拟对象的最小移动速率作为第二运动速度。,当转向角度不大于第一预设角度阈值时,需要对该转向角度进行二次判断是否小于第二预设角度阈值以及是否存在设定速率,进而确定目标速度对应的是哪一种速率。由于目标虚拟对象的第二运动速度只有一个,因此为了避免在设定时与映射速率冲突,需要在保证转向角度的绝对值在0°到第二预设角度阈值的范围内,也就是目标虚拟对象不需要为了更好的转向表现进行大幅度的减速动作时,才能将设定速率设定为第二运动速度,此外,要求目标虚拟对象存在设定速率才能将设定速率作为第二运动速度。当转向角度越小,就说明目标虚拟对象的速度方向变化越不明显,也就越可以保持预设的速度大小来通过当前目标点。所以此种情况的第二运动速度就越接近预设速率,因此,设定目标虚拟对象不存在设定速率或转向角度不小于第二预设角度阈值时,第二运动速度采用映射速率。
进一步的,当所述目标点类型为最终目标点时,所述根据所述第二虚拟路段的路段类型、所述转向角度、所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异确定所述目标虚拟对象抵达所述第二虚拟路段时的第二运动速度包括:判断所述转向角度是否大于第一预设角度阈值;若是,则将所述目标虚拟对象的最小移动速率作为第二运动速度;若否,则判断所述目标虚拟对象是否存在设定速率以及所述转向角度是否小于第二预设角度阈值;若存在设定速率且所述转向角度小于第二预设角度阈值,则将所述设定速率作为第二运动速度;若所述转向角度不小于第二预设角度阈值,则根据预设的映射关系和所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异,计算所述转向角度的映射速率,并将所述映射速率作为第二运动速度;若不存在设定速率且所述转向角度小于第二预设角度阈值,则获取所述目标路径的寻路目标,并将所述寻路目标的移动速率作为第二运动速度。
具体的,当目标点类型为最终目标点时,第二运动速度根据不同情况分别等于四种不同的速率,分别为映射速率、设定速率、行走速率和寻路目标的移动速率,其中映射速率是指,根据上述的转向角度以及预设速率映射出的移动速率。当转向角度越小,就说明目标虚拟对象的速度方向变化越不明显,也就越可以保持预设的速度大小来通过第二虚拟路段。所以此种情况的第二运动速度就越接近预设速率。反之则说明目标虚拟对象的速度方向变化越明显,也就需要更明显的移动速率变化才能通过第一个目标点,否侧可能会导致实际的移动轨迹与目标点之间的连线轨迹偏差过大,甚至会与其它未被检测的障碍物发生碰撞。为了避免上述问题的发生,也就需要减小移动时的速率,以此来缩小通过目标点时移动轨迹的半径。所以此种情况的目标速度大小就越接近与最小寻路速率,其中具体的映射方式为,当转向角度为0°时,对应的速率就等于100%的预设速率,代表的是在寻路过程中不需要转向,也就可以保持预设的最大速率。而当转向角度为90°时,对应的速率就等于a%的预设速率,代表的是在寻路过程中要进行大幅度转向,也就需要将速率降低至预设速率的一小部分,其中的参数a可以根据经验进行设定。接下来,就可以根据两组极端值的比例计算0°和90°之间的角度所对应的速率。设定速率是指为了能更好的衔接寻路行为后的下一个行为,所要求在到达最终目标点时目标虚拟对象需要保持的速率。是一个可以根据不同需求而进行编辑的速率,其取值范围在预设速率和零速率之间。由于目标虚拟对象的第二运动速度只有一个,因此为了避免在设定时与映射速率冲突,在本实施例中,第一预设角度阈值设定为90°,第二预设角度阈值设定为30°,需要在保证转向角度的绝对值在0°到30°的范围内,也就是目标虚拟对象不需要为了更好的转向表现进行大幅度的减速动作时,才能将设定速率设定为第二运动速度。行走速率是指目标虚拟对象的行走动画中根骨骼的移动速率,代表的是其在寻路中的最小移动速率。当转向角度的绝对值大于第一预设角度阈值,也就是在90°到180°的范围内时,由于目标虚拟对象的速度方向变化过于剧烈,因此需要将最小的寻路速率作为当前的第二运动速度,来限制移动轨迹的半径从而增强大角度的转向表现。寻路目标的移动速率是指最终目标点的移动速率,由于目标虚拟对象的寻路目标可能也会在游戏中移动,因此需要在特殊情况下记录该寻路目标的移动速率。由于目标虚拟对象的第二运动速度只有一个,因此为了避免在设定时与映射速率冲突,需要在保证转向角度的绝对值在0°到30°的范围内,也就是目标虚拟对象不需要为了更好的转向表现进行大幅度的减速动作时,才能将目标的移动速率设定为第二运动速度。
206、响应于目标虚拟对象抵达第二虚拟路段,控制目标虚拟对象以第二运动状态进行运动。
在本实施例中,响应针对目标虚拟对象的位移事件,在虚拟场景中确定与位移事件对应的目标路径并控制目标虚拟对象沿目标路径运动,其中,目标路径包括多个虚拟路段;响应于目标虚拟对象在目标路径中第一虚拟路段中以第一运动状态运动,确定目标路径中与第一虚拟路段相邻的第二虚拟路段,其中,第一运动状态包括第一运动速度和第一运动方向;基于第一运动状态、第一虚拟路段和第二虚拟路段之间的路段参数差异,确定目标虚拟对象抵达第二虚拟路段时第二运动状态;响应于目标虚拟对象抵达第二虚拟路段,控制目标虚拟对象以第二运动状态进行运动,其中,第二运动状态包括第二运动速度和第二运动方向;其中,第二运动状态和第一运动状态至少运动方向不同。本方法通过在虚拟对象基于目标路径上的虚拟路段进行移动时,计算出虚拟对象进行移动的第二运动状态,通过第二运动状态控制虚拟对象至虚拟路段,避免虚拟对象在移动过程中表现不自然的问题。
请参阅图3,本公开实施例中虚拟对象的移动控制方法的另一个实施例包括:
301、响应针对目标虚拟对象的位移事件,在虚拟场景中确定与位移事件对应的目标路径并控制目标虚拟对象沿目标路径运动;
302、响应于目标虚拟对象在目标路径中第一虚拟路段中以第一运动状态运动,确定目标路径中与第一虚拟路段相邻的第二虚拟路段;
303、基于第一运动状态、第一虚拟路段和第二虚拟路段之间的路段参数差异,确定目标虚拟对象抵达第二虚拟路段时第二运动状态;
304、根据预设的速率参数以及目标虚拟对象的当前速率和第二运动速度,确定目标虚拟对象抵达第二虚拟路段的移动逻辑关系;
在本实施例中,所述根据预设的速率参数以及所述目标虚拟对象的当前速率和第二运动速度,确定所述目标虚拟对象抵达所述第二虚拟路段的移动逻辑关系包括:根据所述速度参数以及所述目标虚拟对象的当前速率和第二运动速度,计算所述目标虚拟对象抵达所述第二虚拟路段的理想移动距离和理想移动时间;根据所述理想移动距离、理想移动时间、速率参数以及所述目标虚拟对象的当前速率和第二运动速度计算所述目标虚拟对象抵达所述第二虚拟路段的时间参数,其中,所述时间参数为所述目标虚拟对象抵达所述第二虚拟路段的加速度时间、减速度时间或匀速时间中的一种或多种;根据所述速度参数、所述当前速率、第二运动速度和时间参数构建目标虚拟对象抵达所述第二虚拟路段的移动逻辑关系。
具体的,在本实施例中,据微积分原理可得,角色在一定时间内移动的距离就是速率函数v(t)所围成的面积。为了能模拟追赶的效果,需要有一个加速再减速的过程才能快速缩进与目标点的距离,因此可以先假设目标虚拟对象会先以固定的加速度从当前速率加速到预设速率,再立刻以固定的减速度减速到第二运动速度,而这就是最理想的速率变化方式。基于理想的速度变化方式可以计算出理想的移动距离S0,和理想的移动总时间T0。
进一步的,所述根据所述理想移动距离、理想移动时间、速率参数以及所述目标虚拟对象的当前速率和第二运动速度计算所述目标虚拟对象抵达所述第二虚拟路段的时间参数包括:判断所述理想移动距离是否小于所述目标虚拟对象移动到所述第二虚拟路段的实际距离;若是,则根据预设的速率参数以及所述目标虚拟对象的当前速率和第二运动速度计算所述目标虚拟对象的时间参数,若否,则根据所述实际距离、所述理想移动距离、理想移动时间、所述速率参数以及所述目标虚拟对象的当前速率和第二运动速度计算所述目标虚拟对象抵达所述第二虚拟路段的最大匀速速率;根据所述最大匀速速率与所述当前速率和第二运动速度之间的大小关系,确定对应的时间计算算法,并根据所述时间计算算法计算所述目标虚拟对象抵达所述第二虚拟路段的时间参数。
具体的,如果理想的移动距离S0小于目标虚拟对象与第二虚拟路段的实际距离S1。那么可以理解为目标虚拟对象在接下来的寻路过程中,可以将速度加速至理想的预设速度后再进行减速,甚至可以保持理想的预设速度再移动一段距离。这时就可以通过计算出加速时间、匀速时间、减速时间,来构成新的速率变化方式。
如果理想的移动距离S0大于或等于目标虚拟对象与第一个目标点的实际距离S1。那么可以理解为,目标虚拟对象在接下来的寻路过程中,无法将速度加速至理想的预设速度,就会由于距离的限制而被迫提前减速。因为无法到达预设速率,所以在移动的理想总时间T0不变的情况下,一定会有一个最大的匀速速率将实际距离S1从理想的移动距离S0中划分出来。而根据最大匀速速率、当前速率、第二运动速度之间大小关系的不同,计算速率变化方式的算法也会有所不同。
当最大匀速速率同时大于当前速率和第二运动速度时,最大匀速速率就会作为能加速到的最大速度,并会产生如下图所示的速率变化方式。其具体的流程是以固定的加速度从当前速率加速到最大匀速速率,在保持最大匀速速率运动一段时间后,最后以固定的减速度从最大匀速速率减速到第二运动速度。而只要计算出最大匀速速率,就可以比较方便的推算出构成新的速率变化方式的加速时间、匀速时间、减速时间,其中计算最大匀速速率的公式为:
其中,Vm为最大匀速速率,Vd为理想情况下,目标虚拟对象能够达到的最大速率,S0为理想的移动距离,S1为实际距离,a1为加速度大小,a2为减速度大小。
当最大匀速速率大于当前速率,且小于第二运动速度时,为了保证速率变化后所移动的距离能等于与第二虚拟路段的实际距离,也就是白色的图形面积需要等于最大匀速速率下方的图形面积,就会产生如下图所示的速率变化方式。其具体流程是先保持当前速率移动一段时间,再以固定的加速度从当前速率加速到第二运动速度,最后保持第二运动速度移动一段时间,经过推倒可得计算最大匀速速率的公式为:
其中,VC为目标虚拟对象的当前速率,T0为理想的移动总时间。
而只要计算出最大匀速速率,就可以推导出以下的关系式,经过整理并代入已知的数据后,就可以用来计算加速时间t1和减速减时间t3,公式如下:
以及
当最大匀速速率小于当前速率,且大于第二运动速度时,为了保证速率变化后所移动的距离能等于与第二虚拟路段的实际距离,也就是白色的图形面积需要等于最大匀速速率下方的图形面积,就会产生如下图所示的速率变化方式。其具体流程是先以固定的减速度从当前速率减速到最大匀速速率,再保持最大匀速速率移动一段时间,然后以固定的减速度从最大匀速速率减速到第二运动速度,最后再以第二运动速度移动一段时间,同时经过推倒可得计算最大匀速速率的公式为:
而只要计算出最大匀速速率,就可以推导出以下的关系式,经过整理并代入已知的数据后,就可以用来计算加速时间t1和减速减时间t3,公式如下:
以及
当最大匀速速率同时小于当前速率和第二运动速度时,就说明与当前目标的实际距离比较小,没办法在当前速率和第二运动速度之间进行加速或减速,因此可以选择将目标虚拟对象以固定的减速度从当前速率减速到零速率,使其先平稳的停下来。
305、根据移动逻辑关系控制目标虚拟对象抵达第二虚拟路段;
在本实施例中,所述根据所述移动逻辑关系控制所述目标虚拟对象抵达所述第二虚拟路段包括:根据所述移动逻辑关系确定所述目标虚拟对象抵达所述第二虚拟路段的速率变化过程;获取所述目标路径的寻路目标,并根据所述目标虚拟对象的当前速率和目标虚拟对象与所述寻路目标的实际距离,确定所述目标虚拟对象的逻辑朝向;根据所述逻辑朝向和所述目标虚拟对象的当前速度方向向量之间的夹角信息,确定所述目标虚拟对象抵达所述第二虚拟路段的动画表现数据;根据所述速率变化过程、所述逻辑朝向和所述动画表现数据控制所述目标虚拟对象抵达所述第二虚拟路段。
具体的,虚拟对象的移动作为一个整体的系统进行分析,可以归纳出三个能影响寻路移动表现的模块,分别是速度、旋转、动画。其中速度又可以细分为速度大小和速度方向,并最终决定着目标虚拟对象的移动轨迹,而旋转影响着整个移动过程中角色模型的正面朝向,动画则需要在匹配移动轨迹的同时尽可能展示出更多的表现力,在虚拟对象根据移动逻辑关系进行移动时,根据当前寻路目标的位置和虚拟对象的位置计算目标速度方向,并通过向量插值来获取每一帧的速度方向。根据当前速率,以及与玩家角色的实时距离来切换目标虚拟对象的逻辑朝向,根据当前速率,以及当前逻辑朝向方向与当前速度方向的夹角来匹配动画表现数据,根据匹配的动画表现数据调整目标虚拟对象的动画表现。
306、响应于目标虚拟对象抵达第二虚拟路段,控制目标虚拟对象以第二运动状态进行运动。
在本实施例中,所述步骤306与第一实施例中的步骤104相似,在此不再赘述。
本实施例中,响应针对目标虚拟对象的位移事件,在虚拟场景中确定与位移事件对应的目标路径并控制目标虚拟对象沿目标路径运动,其中,目标路径包括多个虚拟路段;响应于目标虚拟对象在目标路径中第一虚拟路段中以第一运动状态运动,确定目标路径中与第一虚拟路段相邻的第二虚拟路段,其中,第一运动状态包括第一运动速度和第一运动方向;基于第一运动状态、第一虚拟路段和第二虚拟路段之间的路段参数差异,确定目标虚拟对象抵达第二虚拟路段时第二运动状态;响应于目标虚拟对象抵达第二虚拟路段,控制目标虚拟对象以第二运动状态进行运动,其中,第二运动状态包括第二运动速度和第二运动方向;其中,第二运动状态和第一运动状态至少运动方向不同。本方法通过在虚拟对象基于目标路径上的虚拟路段进行移动时,计算出虚拟对象进行移动的第二运动状态,通过第二运动状态控制虚拟对象至虚拟路段,避免虚拟对象在移动过程中表现不自然的问题。
上面对本公开实施例中虚拟对象的移动控制方法进行了描述,下面对本公开实施例中虚拟对象的移动控制装置进行描述,通过终端设备提供图形用户界面,所述图形用户界面显示有至少部分的游戏场景,所述游戏场景包括目标虚拟对象,请参阅图4,本公开实施例中虚拟对象的移动控制装置的一个实施例包括:
位移控制模块401,用于响应针对所述目标虚拟对象的位移事件,在所述虚拟场景中确定与所述位移事件对应的目标路径并控制所述目标虚拟对象沿所述目标路径运动,其中,所述目标路径包括多个虚拟路段;
相邻路段确定模块402,用于响应于所述目标虚拟对象在所述目标路径中第一虚拟路段中以第一运动状态运动,确定所述目标路径中与所述第一虚拟路段相邻的第二虚拟路段,其中,所述第一运动状态包括第一运动速度和第一运动方向;
第二运动状态计算模块403,用于基于所述第一运动状态、所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异,确定所述目标虚拟对象抵达所述第二虚拟路段时第二运动状态;
运动控制模块404,用于响应于所述目标虚拟对象抵达所述第二虚拟路段,控制所述目标虚拟对象以所述第二运动状态进行运动,其中,所述第二运动状态包括第二运动速度和第二运动方向;其中,所述第二运动状态和所述第一运动状态至少运动方向不同,所述第二运动方向基于所述路段参数差异确定,所述第二运动速度与目标转向角度相匹配,所述目标转向角度为所述第一运动方向与所述第二运动方向之间的角度差。
在本实施例中,响应针对目标虚拟对象的位移事件,在虚拟场景中确定与位移事件对应的目标路径并控制目标虚拟对象沿目标路径运动,其中,目标路径包括多个虚拟路段;响应于目标虚拟对象在目标路径中第一虚拟路段中以第一运动状态运动,确定目标路径中与第一虚拟路段相邻的第二虚拟路段,其中,第一运动状态包括第一运动速度和第一运动方向;基于第一运动状态、第一虚拟路段和第二虚拟路段之间的路段参数差异,确定目标虚拟对象抵达第二虚拟路段时第二运动状态;响应于目标虚拟对象抵达第二虚拟路段,控制目标虚拟对象以第二运动状态进行运动,其中,第二运动状态包括第二运动速度和第二运动方向;其中,第二运动状态和第一运动状态至少运动方向不同。本方法通过在虚拟对象基于目标路径上的虚拟路段进行移动时,计算出虚拟对象进行移动的第二运动状态,通过第二运动状态控制虚拟对象至虚拟路段,避免虚拟对象在移动过程中表现不自然的问题。
请参阅图5,本公开实施例中虚拟对象的移动控制装置的另一个实施例包括:
位移控制模块401,用于响应针对所述目标虚拟对象的位移事件,在所述虚拟场景中确定与所述位移事件对应的目标路径并控制所述目标虚拟对象沿所述目标路径运动,其中,所述目标路径包括多个虚拟路段;
相邻路段确定模块402,用于响应于所述目标虚拟对象在所述目标路径中第一虚拟路段中以第一运动状态运动,确定所述目标路径中与所述第一虚拟路段相邻的第二虚拟路段,其中,所述第一运动状态包括第一运动速度和第一运动方向;
第二运动状态计算模块403,用于基于所述第一运动状态、所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异,确定所述目标虚拟对象抵达所述第二虚拟路段时第二运动状态;
运动控制模块404,用于响应于所述目标虚拟对象抵达所述第二虚拟路段,控制所述目标虚拟对象以所述第二运动状态进行运动,其中,所述第二运动状态包括第二运动速度和第二运动方向;其中,所述第二运动状态和所述第一运动状态至少运动方向不同,所述第二运动方向基于所述路段参数差异确定,所述第二运动速度与目标转向角度相匹配,所述目标转向角度为所述第一运动方向与所述第二运动方向之间的角度差。
在一种可行的实施方式中,所述第二运动状态计算模块403包括:
目标方向计算单元4031,用于获取所述第二虚拟路段的路段类型,并根据所述路段类型确定所述目标虚拟对象的第二运动方向,其中,所述路段类型包括最终虚拟路段和非最终虚拟路段;
转向计算单元4032,用于根据所述第二运动方向和所述第一运动状态,计算所述目标虚拟对象从所述第一虚拟路段抵达所述第二虚拟路段的转向角度;
速度计算单元4033,用于根据所述第二虚拟路段的路段类型、所述转向角度、所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异确定所述目标虚拟对象抵达所述第二虚拟路段时的第二运动速度。
在一种可行的实施方式中,所述目标方向计算单元4031具体用于:
获取所述第二虚拟路段的路段类型,并判断所述第二虚拟路段的路段类型;
当所述路段类型为最终虚拟路段时,获取所述第二虚拟路段的路段方向,并将所述第二虚拟路段的路段方向作为所述目标虚拟对象的第二运动方向;
当所述路段类型为非最终虚拟路段时,获取第三虚拟路段,并获取所述第三虚拟路段的路段方向,并将所述第二虚拟路段的路段方向作为所述目标虚拟对象的第二运动方向。
在一种可行的实施方式中,所述转向计算单元4032具体用于:
根据所述第一运动状态中的第一运动方向,生成所述目标虚拟对象抵达所述第一虚拟路段的第一运动方向向量,并生成所述第二运动方向的第二运动方向向量;
根据所述第一运动方向向量和所述第二运动方向向量,计算所述第一运动方向和所述第二运动方向的角度差;
将所述角度差作为所述目标虚拟对象从所述第一虚拟路段抵达所述第二虚拟路段的转向角度。
在一种可行的实施方式中,当所述目标点类型为非最终目标点时,所述速度计算单元4033具体用于:
判断所述转向角度是否大于第一预设角度阈值;
若是,则将所述目标虚拟对象的最小移动速率作为第二运动速度;
若否,则判断所述目标虚拟对象是否存在设定速率或所述转向角度是否小于第二预设角度阈值;
若所述目标虚拟对象存在设定速率且所述转向角度小于第二预设角度阈值,则将所述设定速率作为第二运动速度;
若所述目标虚拟对象不存在设定速率或所述转向角度不小于第二预设角度阈值,则根据预设的映射关系和所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异,计算所述转向角度的映射速率,并将所述映射速率作为第二运动速度。
在一种可行的实施方式中,当所述目标点类型为最终目标点时,所述速度计算单元4033具体用于:
判断所述转向角度是否大于第一预设角度阈值;
若是,则将所述目标虚拟对象的最小移动速率作为第二运动速度;
若否,则判断所述目标虚拟对象是否存在设定速率以及所述转向角度是否小于第二预设角度阈值;
若存在设定速率且所述转向角度小于第二预设角度阈值,则将所述设定速率作为第二运动速度;
若所述转向角度不小于第二预设角度阈值,则根据预设的映射关系和所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异,计算所述转向角度的映射速率,并将所述映射速率作为第二运动速度;
若不存在设定速率且所述转向角度小于第二预设角度阈值,则获取所述目标路径的寻路目标,并将所述寻路目标的移动速率作为第二运动速度。
在一种可行的实施方式中,所述虚拟对象的移动控制装置还包括运动逻辑控制模块405,所述运动逻辑控制模块405:
根据预设的速率参数以及所述目标虚拟对象的当前速率和第二运动速度,确定所述目标虚拟对象抵达所述第二虚拟路段的移动逻辑关系;
根据所述移动逻辑关系控制所述目标虚拟对象抵达所述第二虚拟路段。
在一种可行的实施方式中,所述运动逻辑控制模块405具体用于:
根据所述速度参数以及所述目标虚拟对象的当前速率和第二运动速度,计算所述目标虚拟对象抵达所述第二虚拟路段的理想移动距离和理想移动时间;
根据所述理想移动距离、理想移动时间、速率参数以及所述目标虚拟对象的当前速率和第二运动速度计算所述目标虚拟对象抵达所述第二虚拟路段的时间参数,其中,所述时间参数为所述目标虚拟对象抵达所述第二虚拟路段的加速度时间、减速度时间或匀速时间中的一种或多种;
根据所述速度参数、所述当前速率、第二运动速度和时间参数构建目标虚拟对象抵达所述第二虚拟路段的移动逻辑关系。
在一种可行的实施方式中,所述运动逻辑控制模块405具体用于:
判断所述理想移动距离是否小于所述目标虚拟对象移动到所述第二虚拟路段的实际距离;
若是,则根据预设的速率参数以及所述目标虚拟对象的当前速率和第二运动速度计算所述目标虚拟对象的时间参数,
若否,则根据所述实际距离、所述理想移动距离、理想移动时间、所述速率参数以及所述目标虚拟对象的当前速率和第二运动速度计算所述目标虚拟对象抵达所述第二虚拟路段的最大匀速速率;
根据所述最大匀速速率与所述当前速率和第二运动速度之间的大小关系,确定对应的时间计算算法,并根据所述时间计算算法计算所述目标虚拟对象抵达所述第二虚拟路段的时间参数。
在一种可行的实施方式中,所述运动逻辑控制模块405具体用于:
根据所述移动逻辑关系确定所述目标虚拟对象抵达所述第二虚拟路段的速率变化过程;
获取所述目标路径的寻路目标,并根据所述目标虚拟对象的当前速率和目标虚拟对象与所述寻路目标的实际距离,确定所述目标虚拟对象的逻辑朝向;
根据所述逻辑朝向和所述目标虚拟对象的当前速度方向向量之间的夹角信息,确定所述目标虚拟对象抵达所述第二虚拟路段的动画表现数据;
根据所述速率变化过程、所述逻辑朝向和所述动画表现数据控制所述目标虚拟对象抵达所述第二虚拟路段。
本实施例中,响应针对目标虚拟对象的位移事件,在虚拟场景中确定与位移事件对应的目标路径并控制目标虚拟对象沿目标路径运动,其中,目标路径包括多个虚拟路段;响应于目标虚拟对象在目标路径中第一虚拟路段中以第一运动状态运动,确定目标路径中与第一虚拟路段相邻的第二虚拟路段,其中,第一运动状态包括第一运动速度和第一运动方向;基于第一运动状态、第一虚拟路段和第二虚拟路段之间的路段参数差异,确定目标虚拟对象抵达第二虚拟路段时第二运动状态;响应于目标虚拟对象抵达第二虚拟路段,控制目标虚拟对象以第二运动状态进行运动,其中,第二运动状态包括第二运动速度和第二运动方向;其中,第二运动状态和第一运动状态至少运动方向不同。本方法通过在虚拟对象基于目标路径上的虚拟路段进行移动时,计算出虚拟对象进行移动的第二运动状态,通过第二运动状态控制虚拟对象至虚拟路段,避免虚拟对象在移动过程中表现不自然的问题。
上面图4和图5从模块化功能实体的角度对本公开实施例中的中虚拟对象的移动控制装置进行详细描述,下面从硬件处理的角度对本公开实施例中虚拟对象的移动控制设备进行详细描述。
图6是本公开实施例提供的一种虚拟对象的移动控制设备的结构示意图,该虚拟对象的移动控制设备600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,CPU)610(例如,一个或一个以上处理器)和存储器620,一个或一个以上存储应用程序633或数据632的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器620和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对虚拟对象的移动控制设备600中的一系列指令操作。更进一步地,处理器610可以设置为与存储介质630通信,在虚拟对象的移动控制设备600上执行存储介质630中的一系列指令操作,以实现以下步骤:
响应针对所述目标虚拟对象的位移事件,在所述虚拟场景中确定与所述位移事件对应的目标路径并控制所述目标虚拟对象沿所述目标路径运动,其中,所述目标路径包括多个虚拟路段;响应于所述目标虚拟对象在所述目标路径中第一虚拟路段中以第一运动状态运动,确定所述目标路径中与所述第一虚拟路段相邻的第二虚拟路段,其中,所述第一运动状态包括第一运动速度和第一运动方向;基于所述第一运动状态、所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异,确定所述目标虚拟对象抵达所述第二虚拟路段时第二运动状态;响应于所述目标虚拟对象抵达所述第二虚拟路段,控制所述目标虚拟对象以所述第二运动状态进行运动,其中,所述第二运动状态包括第二运动速度和第二运动方向;其中,所述第二运动状态和所述第一运动状态至少运动方向不同,所述第二运动方向基于所述路段参数差异确定,所述第二运动速度与目标转向角度相匹配,所述目标转向角度为所述第一运动方向与所述第二运动方向之间的角度差。本方法通过在虚拟对象基于目标路径上的虚拟路段进行移动时,计算出虚拟对象进行移动的第二运动状态,通过第二运动状态控制虚拟对象至虚拟路段,避免虚拟对象在移动过程中表现不自然的问题。
可选的,所述基于所述第一运动状态、所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异,确定所述目标虚拟对象抵达所述第二虚拟路段时第二运动状态包括:获取所述第二虚拟路段的路段类型,并根据所述路段类型确定所述目标虚拟对象的第二运动方向,其中,所述路段类型包括最终虚拟路段和非最终虚拟路段;根据所述第二运动方向和所述第一运动状态,计算所述目标虚拟对象从所述第一虚拟路段抵达所述第二虚拟路段的转向角度;根据所述第二虚拟路段的路段类型、所述转向角度、所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异确定所述目标虚拟对象抵达所述第二虚拟路段时的第二运动速度。
可选的,所述获取所述第二虚拟路段的路段类型,并根据所述路段类型确定所述目标虚拟对象的第二运动方向包括:
获取所述第二虚拟路段的路段类型,并判断所述第二虚拟路段的路段类型;
当所述路段类型为最终虚拟路段时,获取所述第二虚拟路段的路段方向,并将所述第二虚拟路段的路段方向作为所述目标虚拟对象的第二运动方向;
当所述路段类型为非最终虚拟路段时,获取第三虚拟路段,并获取所述第三虚拟路段的路段方向,并将所述第二虚拟路段的路段方向作为所述目标虚拟对象的第二运动方向。
可选的,所述根据所述第二运动方向和所述第一运动状态,计算所述目标虚拟对象从所述第一虚拟路段抵达所述第二虚拟路段的转向角度包括:
根据所述第一运动状态中的第一运动方向,生成所述目标虚拟对象抵达所述第一虚拟路段的第一运动方向向量,并生成所述第二运动方向的第二运动方向向量;
根据所述第一运动方向向量和所述第二运动方向向量,计算所述第一运动方向和所述第二运动方向的角度差;
将所述角度差作为所述目标虚拟对象从所述第一虚拟路段抵达所述第二虚拟路段的转向角度。
可选的,当所述目标点类型为非最终目标点时,所述根据所述第二虚拟路段的路段类型、所述转向角度、所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异确定所述目标虚拟对象抵达所述第二虚拟路段时的第二运动速度包括:
判断所述转向角度是否大于第一预设角度阈值;
若是,则将所述目标虚拟对象的最小移动速率作为第二运动速度;
若否,则判断所述目标虚拟对象是否存在设定速率或所述转向角度是否小于第二预设角度阈值;
若所述目标虚拟对象存在设定速率且所述转向角度小于第二预设角度阈值,则将所述设定速率作为第二运动速度;
若所述目标虚拟对象不存在设定速率或所述转向角度不小于第二预设角度阈值,则根据预设的映射关系和所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异,计算所述转向角度的映射速率,并将所述映射速率作为第二运动速度。
可选的,当所述目标点类型为最终目标点时,所述根据所述第二虚拟路段的路段类型、所述转向角度、所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异确定所述目标虚拟对象抵达所述第二虚拟路段时的第二运动速度包括:
判断所述转向角度是否大于第一预设角度阈值;
若是,则将所述目标虚拟对象的最小移动速率作为第二运动速度;
若否,则判断所述目标虚拟对象是否存在设定速率以及所述转向角度是否小于第二预设角度阈值;
若存在设定速率且所述转向角度小于第二预设角度阈值,则将所述设定速率作为第二运动速度;
若所述转向角度不小于第二预设角度阈值,则根据预设的映射关系和所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异,计算所述转向角度的映射速率,并将所述映射速率作为第二运动速度;
若不存在设定速率且所述转向角度小于第二预设角度阈值,则获取所述目标路径的寻路目标,并将所述寻路目标的移动速率作为第二运动速度。
可选的,在所述基于所述第一运动状态、所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异,确定所述目标虚拟对象抵达所述第二虚拟路段时第二运动状态之后还包括:
根据预设的速率参数以及所述目标虚拟对象的当前速率和第二运动速度,确定所述目标虚拟对象抵达所述第二虚拟路段的移动逻辑关系;
根据所述移动逻辑关系控制所述目标虚拟对象抵达所述第二虚拟路段。
可选的所述根据预设的速率参数以及所述目标虚拟对象的当前速率和第二运动速度,确定所述目标虚拟对象抵达所述第二虚拟路段的移动逻辑关系包括:
根据所述速度参数以及所述目标虚拟对象的当前速率和第二运动速度,计算所述目标虚拟对象抵达所述第二虚拟路段的理想移动距离和理想移动时间;
根据所述理想移动距离、理想移动时间、速率参数以及所述目标虚拟对象的当前速率和第二运动速度计算所述目标虚拟对象抵达所述第二虚拟路段的时间参数,其中,所述时间参数为所述目标虚拟对象抵达所述第二虚拟路段的加速度时间、减速度时间或匀速时间中的一种或多种;
根据所述速度参数、所述当前速率、第二运动速度和时间参数构建目标虚拟对象抵达所述第二虚拟路段的移动逻辑关系。
可选的,所述根据所述理想移动距离、理想移动时间、速率参数以及所述目标虚拟对象的当前速率和第二运动速度计算所述目标虚拟对象抵达所述第二虚拟路段的时间参数包括:
判断所述理想移动距离是否小于所述目标虚拟对象移动到所述第二虚拟路段的实际距离;
若是,则根据预设的速率参数以及所述目标虚拟对象的当前速率和第二运动速度计算所述目标虚拟对象的时间参数,
若否,则根据所述实际距离、所述理想移动距离、理想移动时间、所述速率参数以及所述目标虚拟对象的当前速率和第二运动速度计算所述目标虚拟对象抵达所述第二虚拟路段的最大匀速速率;
根据所述最大匀速速率与所述当前速率和第二运动速度之间的大小关系,确定对应的时间计算算法,并根据所述时间计算算法计算所述目标虚拟对象抵达所述第二虚拟路段的时间参数。
可选的,所述根据所述移动逻辑关系控制所述目标虚拟对象抵达所述第二虚拟路段包括:
根据所述移动逻辑关系确定所述目标虚拟对象抵达所述第二虚拟路段的速率变化过程;
获取所述目标路径的寻路目标,并根据所述目标虚拟对象的当前速率和目标虚拟对象与所述寻路目标的实际距离,确定所述目标虚拟对象的逻辑朝向;
根据所述逻辑朝向和所述目标虚拟对象的当前速度方向向量之间的夹角信息,确定所述目标虚拟对象抵达所述第二虚拟路段的动画表现数据;
根据所述速率变化过程、所述逻辑朝向和所述动画表现数据控制所述目标虚拟对象抵达所述第二虚拟路段。
虚拟对象的移动控制设备600还可以包括一个或一个以上电源640,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口660,和/或,一个或一个以上操作系统631,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图6示出的虚拟对象的移动控制设备结构并不构成对本公开提供的虚拟对象的移动控制设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本公开还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,计算机可读存储介质中存储有指令,当指令在计算机上运行时,使得计算机执行以下步骤:
响应针对所述目标虚拟对象的位移事件,在所述虚拟场景中确定与所述位移事件对应的目标路径并控制所述目标虚拟对象沿所述目标路径运动,其中,所述目标路径包括多个虚拟路段;响应于所述目标虚拟对象在所述目标路径中第一虚拟路段中以第一运动状态运动,确定所述目标路径中与所述第一虚拟路段相邻的第二虚拟路段,其中,所述第一运动状态包括第一运动速度和第一运动方向;基于所述第一运动状态、所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异,确定所述目标虚拟对象抵达所述第二虚拟路段时第二运动状态;响应于所述目标虚拟对象抵达所述第二虚拟路段,控制所述目标虚拟对象以所述第二运动状态进行运动,其中,所述第二运动状态包括第二运动速度和第二运动方向;其中,所述第二运动状态和所述第一运动状态至少运动方向不同,所述第二运动方向基于所述路段参数差异确定,所述第二运动速度与目标转向角度相匹配,所述目标转向角度为所述第一运动方向与所述第二运动方向之间的角度差。本方法通过在虚拟对象基于目标路径上的虚拟路段进行移动时,计算出虚拟对象进行移动的第二运动状态,通过第二运动状态控制虚拟对象至虚拟路段,避免虚拟对象在移动过程中表现不自然的问题。
可选的,所述基于所述第一运动状态、所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异,确定所述目标虚拟对象抵达所述第二虚拟路段时第二运动状态包括:获取所述第二虚拟路段的路段类型,并根据所述路段类型确定所述目标虚拟对象的第二运动方向,其中,所述路段类型包括最终虚拟路段和非最终虚拟路段;根据所述第二运动方向和所述第一运动状态,计算所述目标虚拟对象从所述第一虚拟路段抵达所述第二虚拟路段的转向角度;根据所述第二虚拟路段的路段类型、所述转向角度、所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异确定所述目标虚拟对象抵达所述第二虚拟路段时的第二运动速度。
可选的,所述获取所述第二虚拟路段的路段类型,并根据所述路段类型确定所述目标虚拟对象的第二运动方向包括:
获取所述第二虚拟路段的路段类型,并判断所述第二虚拟路段的路段类型;
当所述路段类型为最终虚拟路段时,获取所述第二虚拟路段的路段方向,并将所述第二虚拟路段的路段方向作为所述目标虚拟对象的第二运动方向;
当所述路段类型为非最终虚拟路段时,获取第三虚拟路段,并获取所述第三虚拟路段的路段方向,并将所述第二虚拟路段的路段方向作为所述目标虚拟对象的第二运动方向。
可选的,所述根据所述第二运动方向和所述第一运动状态,计算所述目标虚拟对象从所述第一虚拟路段抵达所述第二虚拟路段的转向角度包括:
根据所述第一运动状态中的第一运动方向,生成所述目标虚拟对象抵达所述第一虚拟路段的第一运动方向向量,并生成所述第二运动方向的第二运动方向向量;
根据所述第一运动方向向量和所述第二运动方向向量,计算所述第一运动方向和所述第二运动方向的角度差;
将所述角度差作为所述目标虚拟对象从所述第一虚拟路段抵达所述第二虚拟路段的转向角度。
可选的,当所述目标点类型为非最终目标点时,所述根据所述第二虚拟路段的路段类型、所述转向角度、所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异确定所述目标虚拟对象抵达所述第二虚拟路段时的第二运动速度包括:
判断所述转向角度是否大于第一预设角度阈值;
若是,则将所述目标虚拟对象的最小移动速率作为第二运动速度;
若否,则判断所述目标虚拟对象是否存在设定速率或所述转向角度是否小于第二预设角度阈值;
若所述目标虚拟对象存在设定速率且所述转向角度小于第二预设角度阈值,则将所述设定速率作为第二运动速度;
若所述目标虚拟对象不存在设定速率或所述转向角度不小于第二预设角度阈值,则根据预设的映射关系和所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异,计算所述转向角度的映射速率,并将所述映射速率作为第二运动速度。
可选的,当所述目标点类型为最终目标点时,所述根据所述第二虚拟路段的路段类型、所述转向角度、所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异确定所述目标虚拟对象抵达所述第二虚拟路段时的第二运动速度包括:
判断所述转向角度是否大于第一预设角度阈值;
若是,则将所述目标虚拟对象的最小移动速率作为第二运动速度;
若否,则判断所述目标虚拟对象是否存在设定速率以及所述转向角度是否小于第二预设角度阈值;
若存在设定速率且所述转向角度小于第二预设角度阈值,则将所述设定速率作为第二运动速度;
若所述转向角度不小于第二预设角度阈值,则根据预设的映射关系和所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异,计算所述转向角度的映射速率,并将所述映射速率作为第二运动速度;
若不存在设定速率且所述转向角度小于第二预设角度阈值,则获取所述目标路径的寻路目标,并将所述寻路目标的移动速率作为第二运动速度。
可选的,在所述基于所述第一运动状态、所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异,确定所述目标虚拟对象抵达所述第二虚拟路段时第二运动状态之后还包括:
根据预设的速率参数以及所述目标虚拟对象的当前速率和第二运动速度,确定所述目标虚拟对象抵达所述第二虚拟路段的移动逻辑关系;
根据所述移动逻辑关系控制所述目标虚拟对象抵达所述第二虚拟路段。
可选的所述根据预设的速率参数以及所述目标虚拟对象的当前速率和第二运动速度,确定所述目标虚拟对象抵达所述第二虚拟路段的移动逻辑关系包括:
根据所述速度参数以及所述目标虚拟对象的当前速率和第二运动速度,计算所述目标虚拟对象抵达所述第二虚拟路段的理想移动距离和理想移动时间;
根据所述理想移动距离、理想移动时间、速率参数以及所述目标虚拟对象的当前速率和第二运动速度计算所述目标虚拟对象抵达所述第二虚拟路段的时间参数,其中,所述时间参数为所述目标虚拟对象抵达所述第二虚拟路段的加速度时间、减速度时间或匀速时间中的一种或多种;
根据所述速度参数、所述当前速率、第二运动速度和时间参数构建目标虚拟对象抵达所述第二虚拟路段的移动逻辑关系。
可选的,所述根据所述理想移动距离、理想移动时间、速率参数以及所述目标虚拟对象的当前速率和第二运动速度计算所述目标虚拟对象抵达所述第二虚拟路段的时间参数包括:
判断所述理想移动距离是否小于所述目标虚拟对象移动到所述第二虚拟路段的实际距离;
若是,则根据预设的速率参数以及所述目标虚拟对象的当前速率和第二运动速度计算所述目标虚拟对象的时间参数,
若否,则根据所述实际距离、所述理想移动距离、理想移动时间、所述速率参数以及所述目标虚拟对象的当前速率和第二运动速度计算所述目标虚拟对象抵达所述第二虚拟路段的最大匀速速率;
根据所述最大匀速速率与所述当前速率和第二运动速度之间的大小关系,确定对应的时间计算算法,并根据所述时间计算算法计算所述目标虚拟对象抵达所述第二虚拟路段的时间参数。
可选的,所述根据所述移动逻辑关系控制所述目标虚拟对象抵达所述第二虚拟路段包括:
根据所述移动逻辑关系确定所述目标虚拟对象抵达所述第二虚拟路段的速率变化过程;
获取所述目标路径的寻路目标,并根据所述目标虚拟对象的当前速率和目标虚拟对象与所述寻路目标的实际距离,确定所述目标虚拟对象的逻辑朝向;
根据所述逻辑朝向和所述目标虚拟对象的当前速度方向向量之间的夹角信息,确定所述目标虚拟对象抵达所述第二虚拟路段的动画表现数据;
根据所述速率变化过程、所述逻辑朝向和所述动画表现数据控制所述目标虚拟对象抵达所述第二虚拟路段。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统或装置、单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本公开的技术方案,而非对其限制;尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的精神和范围。
Claims (13)
1.一种虚拟对象的移动控制方法,其特征在于,通过终端设备提供图形用户界面,所述图形用户界面显示有至少部分的游戏场景,所述游戏场景包括目标虚拟对象,所述方法包括:
响应针对所述目标虚拟对象的位移事件,在所述虚拟场景中确定与所述位移事件对应的目标路径并控制所述目标虚拟对象沿所述目标路径运动,其中,所述目标路径包括多个虚拟路段;
响应于所述目标虚拟对象在所述目标路径中第一虚拟路段中以第一运动状态运动,确定所述目标路径中与所述第一虚拟路段相邻的第二虚拟路段,其中,所述第一运动状态包括第一运动速度和第一运动方向;
基于所述第一运动状态、所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异,确定所述目标虚拟对象抵达所述第二虚拟路段时第二运动状态;
响应于所述目标虚拟对象抵达所述第二虚拟路段,控制所述目标虚拟对象以所述第二运动状态进行运动,其中,所述第二运动状态包括第二运动速度和第二运动方向;
其中,所述第二运动状态和所述第一运动状态至少运动方向不同,所述第二运动方向基于所述路段参数差异确定,所述第二运动速度与目标转向角度相匹配,所述目标转向角度为所述第一运动方向与所述第二运动方向之间的角度差。
2.根据权利要求1所述的虚拟对象的移动控制方法,其特征在于,所述基于所述第一运动状态、所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异,确定所述目标虚拟对象抵达所述第二虚拟路段时第二运动状态包括:
获取所述第二虚拟路段的路段类型,并根据所述路段类型确定所述目标虚拟对象的第二运动方向,其中,所述路段类型包括最终虚拟路段和非最终虚拟路段;
根据所述第二运动方向和所述第一运动状态,计算所述目标虚拟对象从所述第一虚拟路段抵达所述第二虚拟路段的转向角度;
根据所述第二虚拟路段的路段类型、所述转向角度、所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异确定所述目标虚拟对象抵达所述第二虚拟路段时的第二运动速度。
3.根据权利要求2所述的虚拟对象的移动控制方法,其特征在于,所述获取所述第二虚拟路段的路段类型,并根据所述路段类型确定所述目标虚拟对象的第二运动方向包括:
获取所述第二虚拟路段的路段类型,并判断所述第二虚拟路段的路段类型;
当所述路段类型为最终虚拟路段时,获取所述第二虚拟路段的路段方向,并将所述第二虚拟路段的路段方向作为所述目标虚拟对象的第二运动方向;
当所述路段类型为非最终虚拟路段时,获取第三虚拟路段,并获取所述第三虚拟路段的路段方向,并将所述第二虚拟路段的路段方向作为所述目标虚拟对象的第二运动方向。
4.根据权利要求3所述的虚拟对象的移动控制方法,其特征在于,所述根据所述第二运动方向和所述第一运动状态,计算所述目标虚拟对象从所述第一虚拟路段抵达所述第二虚拟路段的转向角度包括:
根据所述第一运动状态中的第一运动方向,生成所述目标虚拟对象抵达所述第一虚拟路段的第一运动方向向量,并生成所述第二运动方向的第二运动方向向量;
根据所述第一运动方向向量和所述第二运动方向向量,计算所述第一运动方向和所述第二运动方向的角度差;
将所述角度差作为所述目标虚拟对象从所述第一虚拟路段抵达所述第二虚拟路段的转向角度。
5.根据权利要求2所述的虚拟对象的移动控制方法,其特征在于,当所述目标点类型为非最终目标点时,所述根据所述第二虚拟路段的路段类型、所述转向角度、所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异确定所述目标虚拟对象抵达所述第二虚拟路段时的第二运动速度包括:
判断所述转向角度是否大于第一预设角度阈值;
若是,则将所述目标虚拟对象的最小移动速率作为第二运动速度;
若否,则判断所述目标虚拟对象是否存在设定速率或所述转向角度是否小于第二预设角度阈值;
若所述目标虚拟对象存在设定速率且所述转向角度小于第二预设角度阈值,则将所述设定速率作为第二运动速度;
若所述目标虚拟对象不存在设定速率或所述转向角度不小于第二预设角度阈值,则根据预设的映射关系和所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异,计算所述转向角度的映射速率,并将所述映射速率作为第二运动速度。
6.根据权利要求2所述的虚拟对象的移动控制方法,其特征在于,当所述目标点类型为最终目标点时,所述根据所述第二虚拟路段的路段类型、所述转向角度、所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异确定所述目标虚拟对象抵达所述第二虚拟路段时的第二运动速度包括:
判断所述转向角度是否大于第一预设角度阈值;
若是,则将所述目标虚拟对象的最小移动速率作为第二运动速度;
若否,则判断所述目标虚拟对象是否存在设定速率以及所述转向角度是否小于第二预设角度阈值;
若存在设定速率且所述转向角度小于第二预设角度阈值,则将所述设定速率作为第二运动速度;
若所述转向角度不小于第二预设角度阈值,则根据预设的映射关系和所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异,计算所述转向角度的映射速率,并将所述映射速率作为第二运动速度;
若不存在设定速率且所述转向角度小于第二预设角度阈值,则获取所述目标路径的寻路目标,并将所述寻路目标的移动速率作为第二运动速度。
7.根据权利要求1-6中任一项所述的虚拟对象的移动控制方法,其特征在于,在所述基于所述第一运动状态、所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异,确定所述目标虚拟对象抵达所述第二虚拟路段时第二运动状态之后还包括:
根据预设的速率参数以及所述目标虚拟对象的当前速率和第二运动速度,确定所述目标虚拟对象抵达所述第二虚拟路段的移动逻辑关系;
根据所述移动逻辑关系控制所述目标虚拟对象抵达所述第二虚拟路段。
8.根据权利要求7所述的虚拟对象的移动控制方法,其特征在于,所述根据预设的速率参数以及所述目标虚拟对象的当前速率和第二运动速度,确定所述目标虚拟对象抵达所述第二虚拟路段的移动逻辑关系包括:
根据所述速度参数以及所述目标虚拟对象的当前速率和第二运动速度,计算所述目标虚拟对象抵达所述第二虚拟路段的理想移动距离和理想移动时间;
根据所述理想移动距离、理想移动时间、速率参数以及所述目标虚拟对象的当前速率和第二运动速度计算所述目标虚拟对象抵达所述第二虚拟路段的时间参数,其中,所述时间参数为所述目标虚拟对象抵达所述第二虚拟路段的加速度时间、减速度时间或匀速时间中的一种或多种;
根据所述速度参数、所述当前速率、第二运动速度和时间参数构建目标虚拟对象抵达所述第二虚拟路段的移动逻辑关系,。
9.根据权利要求8所述的虚拟对象的移动控制方法,其特征在于,所述根据所述理想移动距离、理想移动时间、速率参数以及所述目标虚拟对象的当前速率和第二运动速度计算所述目标虚拟对象抵达所述第二虚拟路段的时间参数包括:
判断所述理想移动距离是否小于所述目标虚拟对象移动到所述第二虚拟路段的实际距离;
若是,则根据预设的速率参数以及所述目标虚拟对象的当前速率和第二运动速度计算所述目标虚拟对象的时间参数,
若否,则根据所述实际距离、所述理想移动距离、理想移动时间、所述速率参数以及所述目标虚拟对象的当前速率和第二运动速度计算所述目标虚拟对象抵达所述第二虚拟路段的最大匀速速率;
根据所述最大匀速速率与所述当前速率和第二运动速度之间的大小关系,确定对应的时间计算算法,并根据所述时间计算算法计算所述目标虚拟对象抵达所述第二虚拟路段的时间参数。
10.根据权利要求7所述的虚拟对象的移动控制方法,其特征在于,所述根据所述移动逻辑关系控制所述目标虚拟对象抵达所述第二虚拟路段包括:
根据所述移动逻辑关系确定所述目标虚拟对象抵达所述第二虚拟路段的速率变化过程;
获取所述目标路径的寻路目标,并根据所述目标虚拟对象的当前速率和目标虚拟对象与所述寻路目标的实际距离,确定所述目标虚拟对象的逻辑朝向;
根据所述逻辑朝向和所述目标虚拟对象的当前速度方向向量之间的夹角信息,确定所述目标虚拟对象抵达所述第二虚拟路段的动画表现数据;
根据所述速率变化过程、所述逻辑朝向和所述动画表现数据控制所述目标虚拟对象抵达所述第二虚拟路段。
11.一种虚拟对象的移动控制装置,其特征在于,通过终端设备提供图形用户界面,所述图形用户界面显示有至少部分的游戏场景,所述游戏场景包括目标虚拟对象,所述虚拟对象的移动控制装置包括:
位移控制模块,用于响应针对所述目标虚拟对象的位移事件,在所述虚拟场景中确定与所述位移事件对应的目标路径并控制所述目标虚拟对象沿所述目标路径运动,其中,所述目标路径包括多个虚拟路段;
相邻路段确定模块,用于响应于所述目标虚拟对象在所述目标路径中第一虚拟路段中以第一运动状态运动,确定所述目标路径中与所述第一虚拟路段相邻的第二虚拟路段,其中,所述第一运动状态包括第一运动速度和第一运动方向;
第二运动状态计算模块,用于基于所述第一运动状态、所述第一虚拟路段和所述第二虚拟路段之间的路段参数差异,确定所述目标虚拟对象抵达所述第二虚拟路段时第二运动状态;
运动控制模块,用于响应于所述目标虚拟对象抵达所述第二虚拟路段,控制所述目标虚拟对象以所述第二运动状态进行运动,其中,所述第二运动状态包括第二运动速度和第二运动方向;其中,所述第二运动状态和所述第一运动状态至少运动方向不同,所述第二运动方向基于所述路段参数差异确定,所述第二运动速度与目标转向角度相匹配,所述目标转向角度为所述第一运动方向与所述第二运动方向之间的角度差。
12.一种虚拟对象的移动控制设备,其特征在于,所述虚拟对象的移动控制设备包括:存储器和至少一个处理器,所述存储器中存储有指令;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述虚拟对象的移动控制设备执行如权利要求1-10中任意一项所述的虚拟对象的移动控制方法的步骤。
13.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现如权利要求1-10中任意一项所述虚拟对象的移动控制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311247254.9A CN117482511A (zh) | 2023-09-25 | 2023-09-25 | 虚拟对象的移动控制方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311247254.9A CN117482511A (zh) | 2023-09-25 | 2023-09-25 | 虚拟对象的移动控制方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117482511A true CN117482511A (zh) | 2024-02-02 |
Family
ID=89667938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311247254.9A Pending CN117482511A (zh) | 2023-09-25 | 2023-09-25 | 虚拟对象的移动控制方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117482511A (zh) |
-
2023
- 2023-09-25 CN CN202311247254.9A patent/CN117482511A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112677995B (zh) | 一种车辆轨迹规划方法、装置、存储介质及设备 | |
US10452074B2 (en) | Method and system for controlling autonomous driving vehicle reentering autonomous driving mode | |
US10442435B2 (en) | Speed control parameter estimation method for autonomous driving vehicles | |
US10534364B2 (en) | Method and system for autonomous vehicle speed following | |
CN109664884B (zh) | 一种可变车速下的可拓自适应车道保持控制方法 | |
CN111338360B (zh) | 一种规划车辆行驶状态的方法及装置 | |
CN109774715A (zh) | 用于自动驾驶车辆的变道方法及装置 | |
US20130122979A1 (en) | Computing a target speed in a virtual racing environment | |
CN109163728B (zh) | 一种动态环境避障方法、控制器及机器人 | |
CN111265877A (zh) | 游戏虚拟对象的控制方法及装置、电子设备、存储介质 | |
CN114442637A (zh) | 一种无人车局部动态避障路径规划方法 | |
JPWO2018047292A1 (ja) | 車両の走行制御方法および走行制御装置 | |
CN115123262B (zh) | 自主驾驶的纵向加速度控制 | |
CN117482511A (zh) | 虚拟对象的移动控制方法、装置、设备及存储介质 | |
CN114001739A (zh) | 一种路径规划方法、装置、车辆及存储介质 | |
KR20230167301A (ko) | 동적 및 정적 물체 회피를 위한 정밀 도로지도 기반 지역 경로 계획 방법 및 장치 | |
CN114475652B (zh) | 一种车辆运动规划方法、装置、设备和介质 | |
Li et al. | Path-planning algorithms for self-driving vehicles based on improved RRT-Connect | |
CN115061478A (zh) | 自动驾驶车辆局部避障及路径跟踪方法、系统及存储介质 | |
CN109774708A (zh) | 用于自动驾驶车辆的控制方法及装置 | |
Martinson et al. | Navigating autonomous vehicle at the road intersection simulator with reinforcement learning | |
CN112925323B (zh) | 一种基于规则的移动机器人速度调节方法及系统 | |
CN117950395A (zh) | 轨迹规划方法及装置、移动工具、存储介质 | |
CN114620074A (zh) | 车辆控制方法、装置、电子设备及存储介质 | |
CN114735024A (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 |