一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

对象控制方法和装置、存储介质及电子设备与流程

2021-10-30 02:58:00 来源:中国专利 TAG:电子设备 装置 对象 控制 计算机


1.本发明涉及计算机领域,具体而言,涉及一种对象控制方法和装置、存储介质及电子设备。


背景技术:

2.在射击类游戏应用提供的对战交互场景中,往往需要玩家通过控制虚拟对象使用虚拟射击道具击杀游戏场景中的目标对象,来获取当前该局射击游戏任务的胜利。在上述射击游戏任务中,玩家往往需要控制虚拟对象在游戏场景中进行实时地移动,以击杀不同位置出现的目标对象。其中,移动中的虚拟对象却常常会碰到游戏场景中设置的障碍物。
3.目前在现有的方案中,移动中的虚拟对象在碰到障碍物后会减速直到停止运动,只有在玩家对方向按键进行方向调整操作,以控制虚拟对象向没有障碍物的方向移动之后,才可以绕过当前障碍物,继续移动。
4.但通常对战交互过程对实时性要求非常高,如果遇到虚拟场景中设置的障碍物时,还需要先对虚拟对象的移动方向进行调整,才可以继续移动。如果再遇到玩家操作水平不高,那虚拟对象很容易被卡在当前障碍物的位置,最终被敌方击杀。也就是说,相关技术提供的对虚拟对象遇到障碍物时的控制操作存在操作复杂度较高的问题。
5.针对上述的问题,目前尚未提出有效的解决方案。


技术实现要素:

6.本发明实施例提供了一种对象控制方法和装置、存储介质及电子设备,以至少解决相关技术提供的对虚拟对象遇到障碍物时的控制操作存在操作复杂度较高的技术问题。
7.根据本发明实施例的一个方面,提供了一种对象控制方法,包括:显示在虚拟场景中处于移动状态的目标虚拟对象;在移动中的上述目标虚拟对象与上述虚拟场景中的障碍物发生碰撞的情况下,确定上述目标虚拟对象与上述障碍物之间的碰撞角度;在上述碰撞角度达到滑行条件的情况下,控制上述目标虚拟对象自动贴合上述障碍物并沿偏移方向滑行移动,其中,上述偏移方向是根据上述目标虚拟对象当前的移动方向确定出的方向。
8.根据本发明实施例的另一方面,还提供了一种对象控制装置,包括:显示单元,用于显示在虚拟场景中处于移动状态的目标虚拟对象;第一确定单元,用于在移动中的上述目标虚拟对象与上述虚拟场景中的障碍物发生碰撞的情况下,确定上述目标虚拟对象与上述障碍物之间的碰撞角度;控制单元,用于在上述碰撞角度达到滑行条件的情况下,控制上述目标虚拟对象自动贴合上述障碍物并沿偏移方向滑行移动,其中,上述偏移方向是根据上述目标虚拟对象当前的移动方向确定出的方向。
9.根据本发明实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述对象控制方法。
10.根据本发明实施例的又一方面,还提供了一种电子设备,包括存储器和处理器,上
述存储器中存储有计算机程序,上述处理器被设置为通过所述计算机程序执行上述的对象控制方法。
11.在本发明实施例中,在虚拟场景内移动中的目标虚拟对象与虚拟场景中的障碍物发生碰撞的情况下,确定目标虚拟对象与障碍物之间的碰撞角度,并在该碰撞角度达到滑行条件的情况下,控制目标虚拟对象自动贴合障碍物并沿偏移方向滑行移动,而无需用户再手动调整目标虚拟对象的移动方向,就可以避免目标虚拟对象被卡在障碍物的位置而无法移动,从而达到简化了目标虚拟对象与障碍物碰撞时的控制操作的效果,进而克服相关技术中存在的对象控制操作复杂度较高的问题。
附图说明
12.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
13.图1是根据本发明实施例的一种可选的对象控制方法的硬件环境的示意图;
14.图2是根据本发明实施例的一种可选的对象控制方法的流程图;
15.图3是根据本发明实施例的一种可选的对象控制方法的示意图;
16.图4是根据本发明实施例的另一种可选的对象控制方法的示意图;
17.图5是根据本发明实施例的又一种可选的对象控制方法的示意图;
18.图6是根据本发明实施例的又一种可选的对象控制方法的示意图;
19.图7是根据本发明实施例的又一种可选的对象控制方法的示意图;
20.图8是根据本发明实施例的又一种可选的对象控制方法的示意图;
21.图9是根据本发明实施例的又一种可选的对象控制方法的示意图;
22.图10是根据本发明实施例的又一种可选的对象控制方法的示意图;
23.图11是根据本发明实施例的另一种可选的对象控制方法的流程图;
24.图12是根据本发明实施例的一种可选的对象控制装置的结构示意图;
25.图13是根据本发明实施例的一种可选的电子设备的结构示意图。
具体实施方式
26.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
27.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
28.根据本发明实施例的一个方面,提供了一种对象控制方法,可选地,作为一种可选的实施方式,上述对象控制方法可以但不限于应用于如图1所示的环境中。上述对象控制方法可以但不限于应用于如图1所示的硬件环境中的对象控制系统中,其中,该对象控制系统可以包括但不限于终端设备102、网络104、服务器106及数据库108。终端设备102中运行有使用目标用户账号登录的目标客户端(如图1所示该目标客户端以游戏客户端为例,在其显示界面中将呈现有虚拟场景)。上述终端设备102中包括人机交互屏幕,处理器及存储器。人机交互屏幕用于显示上述显示界面中的虚拟场景(如虚拟游戏场景),在该虚拟游戏场景显示有处于移动状态的目标虚拟对象100

1和预先配置的障碍物100

2;还用于提供人机交互接口以接收用于控制上述目标虚拟对象执行既定动作的人机交互操作,如这里的既定动作可以为在虚拟场景中执行的射击动作、移动动作等。处理器用于响应上述人机交互操作生成交互指令,并将该交互指令发送给服务器。存储器用于存储上述虚拟场景中显示的目标虚拟对象的对象属性信息(如目标虚拟对象的状态信息等),及虚拟场景中障碍物的属性信息(如障碍物的位置信息和材质信息等)。
29.此外,服务器106中包括处理引擎,处理引擎用于对数据库108执行存储或读取操作,如将从终端设备102中接收到的碰撞角度存储到数据库中,或将各个客户端各自控制的虚拟对象的对象属性信息存储到数据库中。如从数据库中读取上述用于比对判定的滑行条件。也就是说,服务器106可以在从终端设备102中接收到碰撞角度且从数据库中读取滑行条件之后,以判定该碰撞角度是否达到滑行条件,并在确定达到滑行条件的情况下,确定目标虚拟对象在终端设备中呈现的移动方式为贴合障碍物并沿偏移方向滑行移动。
30.具体过程如以下步骤:如步骤s102,在终端设备102运行的目标客户端的显示界面所显示的虚拟场景中,显示处于移动状态的目标虚拟对象100

1。然后如步骤s104

s106,在终端设备102确定移动中的目标虚拟对象100

1与虚拟场景中的障碍物100

2发生碰撞的情况下,确定该目标虚拟对象与障碍物之间的碰撞角度,并将该碰撞角度通过网络104发送给服务器106。这里需要说明的是,计算目标虚拟对象与障碍物之间的碰撞角度还可以由服务器106来完成,如将目标虚拟对象的位置信息及障碍物的位置信息实时同步发送给服务器106,由服务器来确定二者是否碰撞,并确定发生碰撞的情况下,计算二者之间的碰撞角度。
31.服务器106的处理引擎将执行步骤s108

s112:在从数据库中读取滑行条件之后,判断碰撞角度是否达到滑行条件。并在确定碰撞角度达到滑行条件的情况下,确定目标虚拟对象的移动方式为自动贴合障碍物并沿偏移方向滑行移动。然后将该移动方式通过网络104通知终端设备102。
32.如步骤s114,终端设备102将按照上述接收到的移动方式,在显示界面中显示控制目标虚拟对象自动贴合障碍物并沿偏移方向滑行移动的过程。
33.上述图1所示界面及流程步骤为示例,上述步骤s108

s110,也可以在处理能力较强的终端设备中执行。也就是说,可以由终端设备独立完成图1所示的各个步骤,而无需服务器参与,从而节省通讯成本,并缩短处理等待时长,本技术实施例对此不作限定。
34.需要说明的是,在本实施例中,在虚拟场景内移动中的目标虚拟对象与虚拟场景中的障碍物发生碰撞的情况下,确定目标虚拟对象与障碍物之间的碰撞角度,并在该碰撞角度达到滑行条件的情况下,控制目标虚拟对象自动贴合障碍物并沿偏移方向滑行移动,而无需用户再手动调整目标虚拟对象的移动方向,就可以避免目标虚拟对象被卡在障碍物
的位置而无法移动,从而达到简化了目标虚拟对象与障碍物碰撞时的控制操作的效果,进而克服相关技术中存在的对象控制操作复杂度较高的问题。
35.可选地,在本实施例中,上述终端设备可以是配置有目标客户端的终端设备,可以包括但不限于以下至少之一:手机(如android手机、ios手机等)、笔记本电脑、平板电脑、掌上电脑、mid(mobile internet devices,移动互联网设备)、pad、台式电脑、智能电视等。目标客户端可以是用于执行对抗类游戏任务的应用客户端。上述网络可以包括但不限于:有线网络,无线网络,其中,该有线网络包括:局域网、城域网和广域网,该无线网络包括:蓝牙、wifi及其他实现无线通信的网络。上述服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群,或者是云服务器。上述仅是一种示例,本实施例中对此不作任何限定。
36.可选地,在本实施例中,上述对象控制方法可以但不限于应用于在虚拟场景中完成既定对抗游戏任务的游戏类终端应用(application,简称app)中,如多人在线战术竞技游戏(multiplayer online battle arena简称为moba)应用中射击游戏应用,其中,上述对抗游戏任务可以但不限于是当前玩家通过人机交互操作控制虚拟场景中的虚拟角色与其他玩家控制的虚拟角色通过对抗互动完成的游戏任务,这里的对抗游戏任务可以但不限于以插件、小程序形式运行在应用(如非独立运行的游戏app)中,或在游戏引擎中运行在应用(如独立运行的游戏app)中。上述游戏应用的类型可以包括但不限于以下至少之一:二维(two dimension,简称2d)游戏应用、三维(three dimension,简称3d)游戏应用、虚拟现实(virtual reality,简称vr)游戏应用、增强现实(augmented reality,简称ar)游戏应用、混合现实(mixed reality,简称mr)游戏应用。以上只是一种示例,本实施例对此不作任何限定。
37.可选地,作为一种可选的实施方式,如图2所示,上述对象控制方法包括:
38.s202,显示在虚拟场景中处于移动状态的目标虚拟对象;
39.可选地,在本实施例中,上述目标虚拟对象可以但不限于是在虚拟场景中受客户端控制的虚拟角色。例如,以射击对抗游戏为例,在第一人称射击游戏(first person shooting game,简称fps)中所呈现的虚拟场景的画面可以但不限于是上述当前受控的虚拟角色的视角所观察到的画面。这里当虚拟角色与障碍物发生碰撞的情况下,该虚拟角色的观察视野将被障碍物遮挡,且该虚拟角色的移动过程也将受到阻碍。
40.需要说明的是,在本实施例中,上述目标虚拟对象需要在虚拟场景中不断移动,来与不同阵营的敌方对象进行互动操作(如互相通过射击道具击杀对方来获取游戏任务的胜利,或通过对战动作来获取游戏任务的胜利等等)。
41.s204,在移动中的目标虚拟对象与虚拟场景中的障碍物发生碰撞的情况下,确定目标虚拟对象与障碍物之间的碰撞角度;
42.可选地,在本实施例中,上述障碍物可以但不限于是虚拟场景中设置的动态虚拟对象或静态虚拟对象,其中,上述动态虚拟对象可以包括但不限于:虚拟载具对象、非玩家角色对象(non

player character,简称npc)等。上述静态虚拟对象可以包括但不限于:虚拟场景中配置的建筑对象(如房屋墙壁、桥梁护栏等)、虚拟场景中随机出现的道具对象(如道具箱等)、虚拟场景中的景观对象(如石头等)。也就是说,在移动中的目标虚拟对象与上述障碍物发生碰撞的情况下,则获取二者之间碰撞时产生的碰撞角度。
43.需要说明的是,由于目标虚拟对象身上会挂载有游戏引擎(如unity引擎)提供的物理碰撞盒子(即碰撞体),而障碍物为了检测到碰撞事件,也会挂载一个长方体的碰撞体。在相关技术中当两个碰撞体接触的时候,就会使得移动中的目标虚拟对象的碰撞体减速或者立即停下。但实际上在对抗游戏任务中,如果目标虚拟对象碰撞到障碍物后减速并停止在障碍物所在位置,将很大可能增加被敌方对象击杀的概率。因而在相关技术中为了避免上述情况的发生,就需要玩家手动调整目标虚拟对象的移动方向,以使其尽快离开发生碰撞的障碍物。
44.而在本实施例中将省去上述玩家的调整操作,使其自动贴着障碍物沿偏移方向自动滑行移动。上述省去调整操作的移动控制方式,还将有助于避免新手玩家由于操作不熟练导致的任务失败。从而达到简化目标虚拟对象与障碍物发生碰撞时的控制操作的目的。这里的控制方式是针对目标虚拟对象的碰撞体与障碍物发生碰撞体的场景。
45.s206,在碰撞角度达到滑行条件的情况下,控制目标虚拟对象自动贴合障碍物并沿偏移方向滑行移动,其中,偏移方向是根据目标虚拟对象当前的移动方向确定出的方向。
46.需要说明的是,虚拟场景中的两个碰撞体发生碰撞后减速或者停止运动,这些是游戏引擎(如unity)中配置的自身属性。因而,在本实施例中,利用预先设置的滑行条件与碰撞角度的判定结果,来确定是否控制目标虚拟对象贴合障碍物滑行移动。也就是说,在未达到滑行条件的情况下,上述目标虚拟对象将继续按照相关技术提供的方式减速或停止运动,从而保留游戏引擎中原先配置的属性功能。
47.在本实施例中,如果在目标虚拟对象与障碍物发生碰撞后,检测到目标虚拟对象仍然处于移动状态(即玩家仍然对移动按键进行操作),则根据当前的移动方向计算出目标虚拟对象贴合障碍物进行滑行移动的偏移方向,并控制目标虚拟对象沿上述偏移方向快速滑过当前的障碍物。
48.可选地,在本实施例中,虚拟场景中不同类型的障碍物的材质不同,目标虚拟对象在与不同障碍物发生碰撞后,可以但不限于按照不同的滑行速度进行滑行移动。比如,碰撞到一些比较光滑的障碍物,比如石头、瓷砖等,那目标虚拟对象的滑行速度相对快一些;而当碰撞到一些比较粗糙的障碍物,比如木头等,那目标虚拟对象的滑行速度相对慢一些。从而实现针对不同障碍物在虚拟场景中模拟出不同的滑行移动效果,提升滑行移动过程的仿真度。
49.具体结合图3所示示例进行说明:假设目标虚拟对象为客户端控制的虚拟角色(如图中所示虚拟人物角色),障碍物为墙壁。
50.如图3中(a)所示,虚拟角色在虚拟场景中处于移动状态(如正在向前奔跑)。当检测到该虚拟角色与墙壁在p1位置发生碰撞的情况下,确定目标虚拟对象与障碍物之间的碰撞角度α。进一步,判断该碰撞角度α是否达到该游戏任务预先配置的滑行条件。在确定上述碰撞角度α达到滑行条件的情况下,则控制上述虚拟角色贴着墙壁沿与移动方向对应的偏移方向滑行移动,如图3中(b)所示是向p2位置所在方向(虚线箭头指示的方向)滑行移动。
51.通过本技术提供的实施例,在虚拟场景内移动中的目标虚拟对象与虚拟场景中的障碍物发生碰撞的情况下,确定目标虚拟对象与障碍物之间的碰撞角度,并在该碰撞角度达到滑行条件的情况下,控制目标虚拟对象自动贴合障碍物并沿偏移方向滑行移动,而无需用户再手动调整目标虚拟对象的移动方向,就可以避免目标虚拟对象被卡在障碍物的位
置而无法移动,从而达到简化了目标虚拟对象与障碍物碰撞时的控制操作的效果,进而克服相关技术中存在的对象控制操作复杂度较高的问题。
52.作为一种可选的方案,确定目标虚拟对象与障碍物之间的碰撞角度包括:
53.s1,确定目标虚拟对象与障碍物发生碰撞时的碰撞位置;
54.s2,基于碰撞位置确定出障碍物的碰撞面;
55.s3,将目标虚拟对象当前的移动方向与障碍物的碰撞面的垂直方向之间的夹角角度,确定为碰撞角度。
56.需要说明的是,由于虚拟场景中各个障碍物的表面不一定是平面,很有可能是凹凸不平的面。因而,在本实施例中,可以但不限于采用基于碰撞位置确定碰撞面,再基于该碰撞面的法线向量来确定上述碰撞角度。从而达到提高确定出的碰撞角度的准确性。
57.例如,如图4所示,仍以上述假设情景为示例进行说明:如虚拟角色在虚拟场景中处于移动状态(如正在向前奔跑)。当检测到该虚拟角色与墙壁在p1位置发生碰撞,则确定p1位置所在面为障碍物墙壁的碰撞面(如图4中加粗线条所在面)。
58.然后,获取虚拟角色在碰撞时的移动方向,以及上述p1位置所在面为障碍物墙壁的碰撞面的垂直方向,如图4中所示点线构成的两条直线。根据三角函数的关系,可以计算出上述移动方向所在直线相对垂直方向所在直线之间的夹角角度α,并将该夹角角度α确定为碰撞角度α。
59.通过本技术提供的实施例,在确定出碰撞位置对应的障碍物的碰撞面之后,获取目标虚拟对象发生碰撞时的移动方向相对该碰撞面的垂直方向之间的夹角角度,以确保确定出的当前所发生的碰撞事件中用于判定是否满足滑行条件的碰撞角度的准确性,从而提高对滑行移动控制的准确性。
60.作为一种可选的方案,在确定目标虚拟对象与障碍物之间的碰撞角度之后,还包括:
61.1)在碰撞角度小于目标角度阈值的情况下,确定碰撞角度并未达到滑行条件,并控制目标虚拟对象减小移动速度或停止运动;
62.需要说明的是,由于虚拟场景中的两个碰撞体发生碰撞后减速或者停止运动,这些是游戏引擎(如unity)中配置的自身属性。在本实施例中,利用预先设置的滑行条件与碰撞角度的判定结果,来确定是控制目标虚拟对象自动贴合障碍物滑行移动,还是按照游戏引擎自身的属性控制其减速或停止运动。
63.可选地,在本实施例中,当上述碰撞角度小于目标角度阈值的情况下,则确定并未达到滑行条件,即当前发生的碰撞无法触发滑行移动。则控制目标虚拟对象按照自身属性,减速或停止运动。
64.例如,如图5所示,假设oa是障碍物的碰撞面,ob是垂直于oa的垂直方向。假设当前发生的碰撞过程中目标虚拟对象的移动方向可以用oc表示,则确定oc与ob之间的夹角α为碰撞角度。进一步在确定碰撞角度α小于目标角度阈值时,则控制目标虚拟对象减速或停止运动。
65.2)在碰撞角度大于或等于目标角度阈值的情况下,确定碰撞角度达到滑行条件。
66.可选地,在本实施例中,当上述碰撞角度大于或等于目标角度阈值的情况下,则确定已达到滑行条件,即当前发生的碰撞可以触发滑行移动。则控制目标虚拟对象自动贴合
障碍物并沿偏移方向滑行移动。
67.例如,如图5所示,假设oa是障碍物的碰撞面,ob是垂直于oa的垂直方向。假设当前发生的碰撞过程中目标虚拟对象的移动方向可以用od表示,则确定od与ob之间的夹角β为碰撞角度。进一步在确定碰撞角度β大于目标角度阈值时,则控制目标虚拟对象自动贴合障碍物并沿偏移方向滑行移动。
68.滑行移动效果可以结合图3所示内容进行说明。假设移动方向指示目标虚拟对象是从左边斜着与障碍物发生碰撞的,则确定偏移方向是贴墙面向左的方向(如图3中(b)所示虚线箭头所指示的方向)。然后,控制目标虚拟对象按照上述偏移方向贴障碍物滑行移动,如图3中(b)所示,其滑行移动后的停留位置为两个障碍物墙壁形成的角落。
69.可选地,在本实施例中,目标虚拟对象贴合障碍物并沿偏移方向滑行移动的滑行速度可以但不限于根据上述碰撞角度确定。如图5所示,当碰撞角度大于β的情况下,目标虚拟对象将快速滑动,而当碰撞角度大于α且小于β的情况下,目标虚拟对象将缓慢滑动。也就是说,在大于目标角度阈值的角度区间内,碰撞角度越大,其滑行速度越快,而碰撞角度越小,其滑行速度越慢。
70.通过本技术提供的实施例,利用碰撞角度与滑行条件之间的比对结果来区分不同的移动方式,不仅达到保留游戏引擎原始功能的目的,而且还可以由玩家通过控制操作来调整碰撞角度,进而达到灵活地实现滑行移动的效果。也就是实现了对控制目标虚拟对象按照不同移动方式进行移动的达到多方式兼容的效果。
71.作为一种可选的方案,控制目标虚拟对象按照目标滑行速度沿偏移方向滑行移动包括:
72.s1,确定与障碍物的材质相匹配的目标滑行速度;
73.s2,控制目标虚拟对象按照目标滑行速度沿偏移方向滑行移动。
74.可选地,在本实施例中,可以但不限于通过射线检测来确定目标虚拟对象是否与障碍物发生碰撞。假设射线检测的检测结果指示检测到障碍物时,就获取该障碍物上的所有属性信息。这里的属性信息可以包括但不限于碰撞位置、障碍物材质等信息。这里的材质可以指示障碍物的组成成分类型,如石头、木头、玻璃等等。在本实施例中,针对不同材质构成的障碍物,可以但不限于匹配不同的滑行速度。
75.例如,结合图6所示内容进行说明,假设已确定目标虚拟对象贴合障碍物沿偏移方向(p3位置所在方向)滑行移动。若障碍物指示为瓷砖墙壁时,如图6中(a)所示,其从碰撞位置p1开始向p3滑行移动的滑行速度为v1;若障碍物指示为木头墙壁时,如图6中(b)所示,其从碰撞位置p1开始向p3滑行移动的滑行移动的滑行速度为v2。由于木头的摩擦力大于瓷砖的摩擦力,因而,上述滑行速度v2也将小于滑行速度v1。
76.通过本技术提供的实施例,控制目标虚拟对象按照与障碍物的材质相匹配的目标滑行速度滑行移动,将提高虚拟场景中发生碰撞后的目标虚拟对象贴合障碍物滑行移动的仿真度,提升用户体验。
77.作为一种可选的方案,控制目标虚拟对象按照目标滑行速度沿偏移方向滑行移动包括:在目标虚拟对象离开障碍物的情况下,控制目标虚拟对象恢复为发生碰撞前的移动速度。
78.需要说明的是,在目标虚拟对象贴合障碍物滑行移动的过程中,滑行速度可以但
不限于为碰撞前移动速度在偏移方向的速度分量。在目标虚拟对象滑行一段距离后离开障碍物的情况下,在控制目标虚拟对象重新恢复为发生碰撞前的移动速度。
79.例如,假设仍以上述假设情景为示例进行说明:如虚拟角色在虚拟场景中处于移动状态(如正在向前奔跑),其移动速度为v0。如图7中(a)所示,目标虚拟对象与障碍物发生碰撞,碰撞位置为p1。
80.然后在基于碰撞位置p1确定的碰撞角度达到滑行条件的情况下,确定控制目标虚拟对象贴合障碍物沿基于移动方向确定出的偏移方向进行滑行移动。在基于上述移动速度v0确定出偏移方向上的速度分量(即滑行速度v1)后,如图7中(b)所示,控制该目标虚拟对象贴合障碍物从p1位置开始以滑行速度v1滑行移动。在移动至障碍物边界位置p4后,确定该目标虚拟对象离开障碍物,则将该目标虚拟对象恢复为移动速度v0,并继续向位置p5移动。
81.通过本技术提供的实施例,在检测到滑行移动后的目标虚拟对象离开障碍物的情况下,控制该目标虚拟对象恢复为碰撞前的移动速度,使该目标虚拟对象恢复为碰撞前的运动状态,保持其在虚拟场景中的运动信息。
82.作为一种可选的方案,控制目标虚拟对象自动贴合障碍物并沿偏移方向滑行移动包括:
83.s1,确定与碰撞角度相匹配的滑行移动初速度;
84.s2,控制目标虚拟对象按照滑行移动初速度沿偏移方向开始滑行移动。
85.需要说明的是,在目标虚拟对象与障碍物发生碰撞时,不同的碰撞角度将会对滑行速度产生不同的作用。
86.可选地,在本实施例中,确定与碰撞角度相匹配的滑行移动初速度包括:
87.s11,确定目标虚拟对象与障碍物发生碰撞时的移动速度;
88.s12,根据碰撞角度计算移动速度在偏移方向的速度分量;
89.s13,将速度分量确定为滑行移动初速度。
90.需要说明的是,在本实施例中,目标虚拟对象与障碍物发生碰撞后,可以但不限于基于三角函数关系,根据目标虚拟对象碰撞前的移动方向向量在障碍物的碰撞面上的分量,来确定偏移方向的方向向量。也就是说,根据目标虚拟对象在虚拟空间内的移动方向,确定其偏移方向是沿碰撞面的哪一个方向。
91.进一步,基于上述三角函数关系,还可以对目标虚拟对象碰撞前的移动速度的速度向量进行分解,得到其贴合障碍物沿偏移方向滑行移动的滑行速度。
92.例如,假设目标虚拟对象与障碍物发生碰撞时,基于碰撞位置确定出的碰撞面和碰撞面的垂直方向如图8所示。进一步,假设oa向量用于指示目标虚拟对象的移动方向,根据三角函数确定ob向量指示的是目标虚拟对象贴障碍物滑行的偏移方向。
93.在目标虚拟对象与障碍物发生碰撞时的移动速度为v

的情况下,对上述移动速度的速度向量进行分解,得到其在偏移方向上的速度分量v

,则可以将该速度分量v

,确定为目标虚拟对象贴合障碍物沿偏移方向滑行移动的初速度。
94.通过本技术提供的实施例,根据目标虚拟对象与障碍物发生碰撞时的碰撞速度,来确定目标虚拟对象滑行移动时的滑行移动初速度。从而使得玩家可以通过不同的控制操作来得到不同的碰撞角度,进而实现对贴合障碍物滑行移动的初速度得以灵活调整的效
果。
95.作为一种可选的方案,在控制目标虚拟对象按照滑行移动初速度沿偏移方向开始滑行移动之后,还包括:
96.s1,确定与障碍物的材质相匹配的摩擦力;
97.s2,根据摩擦力确定目标虚拟对象沿偏移方向滑行移动时的阻力加速度;
98.s3,根据滑行移动初速度及阻力加速度确定当前滑行速度;
99.s4,控制目标虚拟对象按照当前滑行速度滑行移动。
100.可选地,在本实施例中,可以但不限于通过射线检测来确定目标虚拟对象是否与障碍物发生碰撞。假设射线检测的检测结果指示检测到障碍物时,就获取该障碍物上的所有属性信息。这里的属性信息可以包括但不限于碰撞位置、障碍物材质等信息。这里的材质可以指示障碍物的组成成分类型,如石头、木头、玻璃等等。在本实施例中,针对不同材质构成的障碍物,可以但不限于匹配不同的滑行速度。
101.由于不同材质的障碍物的摩擦系数不同,因而目标虚拟对象在滑行移动过程中所承受的摩擦力也对应不同。也就是说,在按照上述滑行移动初速度进行滑行移动的过程中,针对不同材质的障碍物,目标虚拟对象所受到的阻力加速度对应不同。
102.需要说明的是,目标虚拟对象在滑行移动过程中受到摩擦力的影响,其滑行速度将会逐渐减小。因而在本实施例中,可以但不限于在上述滑行移动初速度的基础上,结合阻力加速度,来计算目标虚拟对象在滑行移动过程中实时的滑行速度,并控制目标虚拟对象按照该滑行速度来滑行移动。
103.可选地,在本实施例中,若目标虚拟对象在滑行移动一段距离后,离开了障碍物,而不再继续滑行移动,受到摩擦力的影响,目标虚拟对象的移动速度将在一定程度上减小,则可以按照其离开障碍物时的速度继续移动。
104.例如,假设仍以上述假设情景为示例进行说明:如虚拟角色在虚拟场景中处于移动状态(如正在向前奔跑),其移动速度为v0。如图9中(a)所示,目标虚拟对象与障碍物发生碰撞,碰撞位置为p1。
105.然后在基于碰撞位置p1确定的碰撞角度达到滑行条件的情况下,确定控制目标虚拟对象贴合障碍物沿基于移动方向确定出的偏移方向进行滑行移动。在基于上述移动速度v0确定出偏移方向上的速度分量(即滑行移动初速度v1)后,如图9中(b)所示,控制该目标虚拟对象贴合障碍物从p1位置以滑行移动初速度v1开始滑行移动。在滑行移动过程中,受到摩擦力影响,目标虚拟对象的滑行速度会不断减小。假设在移动至障碍物边界位置p4后,确定该目标虚拟对象离开障碍物,并确定当前滑行速度已减小至v1’时,则控制该目标虚拟对象恢复按照移动速度v1’,继续向位置p5移动。
106.通过本技术提供的实施例,结合障碍物的材质匹配的摩擦力,来实时计算目标虚拟对象在滑行移动过程中的当前滑行速度,并控制其按照该当前滑行速度来滑行移动,从而使得虚拟场景中目标虚拟对象贴合障碍物滑行移动过程更加贴近真实场景,提高滑行移动的仿真度。
107.作为一种可选的方案,控制目标虚拟对象按照当前滑行速度滑行移动包括:在目标虚拟对象仍贴合障碍物,但当前滑行速度达到目标阈值的情况下,控制目标虚拟对象停止移动。
108.具体结合图10所示进行说明,假设仍以上述假设情景为示例进行说明:如虚拟角色在虚拟场景中处于移动状态(如正在向前奔跑),其移动速度为v0。如图10中(a)所示,目标虚拟对象与障碍物发生碰撞,碰撞位置为p1。
109.然后在确定其碰撞时的碰撞角度达到滑行条件的情况下,则控制目标虚拟对象按照图10中(b)所示,贴合障碍物沿偏移方向(如图中所示虚线箭头指向的方向)滑行移动。假设在滑行移动过程中,受到摩擦力影响,目标虚拟对象的滑行速度不断减小,在滑行至尚未离开障碍物的位置p6时,目标虚拟对象的滑行速度达到0的情况下,则控制目标虚拟对象停止移动,停留在当前位置。
110.通过本技术提供的实施例,在目标虚拟对象仍贴合障碍物,但当前滑行速度达到目标阈值的情况下,控制目标虚拟对象停止移动。从而对目标虚拟对象实现高仿真滑行控制。
111.具体图11所示过程来完整描述本技术提供的实施例:假设以射击对抗游戏任务为例,在该射击对抗游戏任务中,玩家将通过客户端控制虚拟角色使用射击道具来击杀属于不同阵营的敌方角色。其中,上述客户端控制的虚拟角色可以为上述目标虚拟对象。在该射击对抗游戏任务中,为了增强对抗难度及互动性,会设置很多障碍物。
112.在开始一局游戏任务后,如步骤s1102,玩家控制当前受控的虚拟角色往前移动。然后在遇到障碍物时,执行步骤s1104,判断该虚拟角色是否碰撞障碍物。若确定并未碰撞到障碍物,则返回步骤s1102之前。若确定碰撞到障碍物,则执行步骤s1106,计算该虚拟角色与障碍物碰撞时的碰撞角度(即移动方向相对障碍物的碰撞面的垂直方向的夹角)。然后判断该碰撞角度是否超过可滑行角度(即是否达到滑行条件),如步骤s1108。
113.若碰撞角度小于可滑行角度,则如步骤s1110

1,控制虚拟角色停止移动。并根据玩家的手动操作调整其移动方向,并按照调整后的新的移动方向继续往前移动,如返回步骤s1102。
114.若碰撞角度大于或等于可滑行角度,则如步骤s1110

2,计算虚拟角色贴合障碍物滑行移动时的滑行速度。再执行步骤s1112,判断滑行移动一段距离后,是否离开障碍物。若并未离开障碍物,则返回步骤s1110

2之前。若离开障碍物,则执行步骤s1114,停止滑行补偿,控制虚拟角色恢复至正常速度。
115.上述图11所示过程为示例,其流程步骤及其执行顺序为示例,本实施例中对此不作任何限定。
116.需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
117.根据本发明实施例的另一个方面,还提供了一种用于实施上述对象控制方法的对象控制装置。如图12所示,该装置包括:
118.显示单元1202,用于显示在虚拟场景中处于移动状态的目标虚拟对象;
119.第一确定单元1204,用于在移动中的目标虚拟对象与虚拟场景中的障碍物发生碰撞的情况下,确定目标虚拟对象与障碍物之间的碰撞角度;
120.控制单元1206,用于在碰撞角度达到滑行条件的情况下,控制目标虚拟对象自动贴合障碍物并沿偏移方向滑行移动,其中,偏移方向是根据目标虚拟对象当前的移动方向确定出的方向。
121.可选地,在本实施例中,上述对象控制装置还可以包括用于实现对象控制方法对应的各个功能单元模块,参考上述方法实施例得到,这里不再赘述。
122.作为一种可选的方案,第一确定单元1204包括:
123.第一确定模块,用于确定目标虚拟对象与障碍物发生碰撞时的碰撞位置;
124.第二确定模块,用于基于碰撞位置确定出障碍物的碰撞面;
125.第三确定模块,用于将目标虚拟对象当前的移动方向与障碍物的碰撞面的垂直方向之间的夹角角度,确定为碰撞角度。
126.可选地,在本实施例中,上述对象控制装置还可以包括用于实现对象控制方法对应的各个功能单元模块,参考上述方法实施例得到,这里不再赘述。
127.作为一种可选的方案,还包括:
128.第二确定单元,用于在确定目标虚拟对象与障碍物之间的碰撞角度之后,在碰撞角度小于目标角度阈值的情况下,确定碰撞角度并未达到滑行条件,并控制目标虚拟对象减小移动速度或停止运动;在碰撞角度大于或等于目标角度阈值的情况下,确定碰撞角度达到滑行条件。
129.可选地,在本实施例中,上述对象控制装置还可以包括用于实现对象控制方法对应的各个功能单元模块,参考上述方法实施例得到,这里不再赘述。
130.作为一种可选的方案,控制单元1206包括:
131.第四确定模块,用于确定与障碍物的材质相匹配的目标滑行速度;
132.第一控制模块,用于控制目标虚拟对象按照目标滑行速度沿偏移方向滑行移动。
133.可选地,在本实施例中,上述对象控制装置还可以包括用于实现对象控制方法对应的各个功能单元模块,参考上述方法实施例得到,这里不再赘述。
134.作为一种可选的方案,第一控制模块包括:
135.第一控制子模块,用于在目标虚拟对象离开障碍物的情况下,控制目标虚拟对象恢复为发生碰撞前的移动速度。
136.可选地,在本实施例中,上述对象控制装置还可以包括用于实现对象控制方法对应的各个功能单元模块,参考上述方法实施例得到,这里不再赘述。
137.作为一种可选的方案,控制单元1206包括:
138.第五确定模块,用于确定与碰撞角度相匹配的滑行移动初速度;
139.第二控制模块,用于控制目标虚拟对象按照滑行移动初速度沿偏移方向开始滑行移动。
140.可选地,在本实施例中,上述对象控制装置还可以包括用于实现对象控制方法对应的各个功能单元模块,参考上述方法实施例得到,这里不再赘述。
141.作为一种可选的方案,第五确定模块包括:
142.第一确定子模块,用于确定目标虚拟对象与障碍物发生碰撞时的移动速度;
143.计算子模块,用于根据碰撞角度计算移动速度在偏移方向的速度分量;
144.第二确定子模块,用于将速度分量确定为滑行移动初速度。
145.可选地,在本实施例中,上述对象控制装置还可以包括用于实现对象控制方法对应的各个功能单元模块,参考上述方法实施例得到,这里不再赘述。
146.作为一种可选的方案,还包括:
147.第六确定模块,用于在控制目标虚拟对象按照滑行移动初速度沿偏移方向开始滑行移动之后,确定与障碍物的材质相匹配的摩擦力;
148.第七确定模块,用于根据摩擦力确定目标虚拟对象沿偏移方向滑行移动时的阻力加速度;
149.第八确定模块,用于根据滑行移动初速度及阻力加速度确定当前滑行速度;
150.第三控制模块,用于控制目标虚拟对象按照当前滑行速度滑行移动。
151.可选地,在本实施例中,上述对象控制装置还可以包括用于实现对象控制方法对应的各个功能单元模块,参考上述方法实施例得到,这里不再赘述。
152.作为一种可选的方案,第三控制模块包括:
153.第三控制子模块,用于在目标虚拟对象仍贴合障碍物,但当前滑行速度达到目标阈值的情况下,控制目标虚拟对象停止移动。
154.可选地,在本实施例中,上述对象控制装置还可以包括用于实现对象控制方法对应的各个功能单元模块,参考上述方法实施例得到,这里不再赘述。
155.根据本发明实施例的又一个方面,还提供了一种用于实施上述对象控制方法的电子设备,该电子设备可以是图1所示的终端设备或服务器。本实施例以该电子设备为终端设备为例来说明。如图13所示,该电子设备包括存储器1302和处理器1304,该存储器1302中存储有计算机程序,该处理器1304被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
156.可选地,在本实施例中,上述电子设备可以位于计算机网络的多个网络设备中的至少一个网络设备。
157.可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
158.s1,显示在虚拟场景中处于移动状态的目标虚拟对象;
159.s2,在移动中的目标虚拟对象与虚拟场景中的障碍物发生碰撞的情况下,确定目标虚拟对象与障碍物之间的碰撞角度;
160.s3,在碰撞角度达到滑行条件的情况下,控制目标虚拟对象自动贴合障碍物并沿偏移方向滑行移动,其中,偏移方向是根据目标虚拟对象当前的移动方向确定出的方向。
161.可选地,本领域普通技术人员可以理解,图13所示的结构仅为示意,电子设备也可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobile internet devices,mid)、pad等终端设备。图13其并不对上述电子装置电子设备的结构造成限定。例如,电子装置电子设备还可包括比图13中所示更多或者更少的组件(如网络接口等),或者具有与图13所示不同的配置。
162.其中,存储器1302可用于存储软件程序以及模块,如本发明实施例中的对象控制方法和装置对应的程序指令/模块,处理器1304通过运行存储在存储器1302内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的对象控制方法。存储器1302可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1302可进一步包括相对于处理器
1304远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网目标虚拟对象的对象属性信息及障碍物的属性信息等信息。作为一种示例,如图13所示,上述存储器1302中可以但不限于包括上述对象控制装置中的显示单元1202、第一确定单元1204、控制单元1206。此外,还可以包括但不限于上述对象控制装置中的其他模块单元,本示例中不再赘述。
163.可选地,上述的传输装置1306用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1306包括一个网络适配器(network interface controller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1306为射频(radio frequency,rf)模块,其用于通过无线方式与互联网进行通讯。
164.此外,上述电子设备还包括:显示器1308,用于显示虚拟场景及移动状态中的目标虚拟对象及其贴合障碍物沿偏移方向滑行移动的过程;和连接总线1310,用于连接上述电子设备中的各个模块部件。
165.在其他实施例中,上述终端设备或者服务器可以是一个分布式系统中的一个节点,其中,该分布式系统可以为区块链系统,该区块链系统可以是由该多个节点通过网络通信的形式连接形成的分布式系统。其中,节点之间可以组成点对点(p2p,peer to peer)网络,任意形式的计算设备,比如服务器、终端等电子设备都可以通过加入该点对点网络而成为该区块链系统中的一个节点。
166.根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述对象控制方法。其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
167.可选地,在本实施例中,上述计算机可读的存储介质可以被设置为存储用于执行以下步骤的计算机程序:
168.s1,显示在虚拟场景中处于移动状态的目标虚拟对象;
169.s2,在移动中的目标虚拟对象与虚拟场景中的障碍物发生碰撞的情况下,确定目标虚拟对象与障碍物之间的碰撞角度;
170.s3,在碰撞角度达到滑行条件的情况下,控制目标虚拟对象自动贴合障碍物并沿偏移方向滑行移动,其中,偏移方向是根据目标虚拟对象当前的移动方向确定出的方向。
171.可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read

only memory,rom)、随机存取器(random access memory,ram)、磁盘或光盘等。
172.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
173.上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一
台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
174.在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
175.在本技术所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
176.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
177.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
178.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜