CN113426103A - 虚拟角色移动控制方法、装置、电子设备及存储介质 - Google Patents
虚拟角色移动控制方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113426103A CN113426103A CN202110757418.7A CN202110757418A CN113426103A CN 113426103 A CN113426103 A CN 113426103A CN 202110757418 A CN202110757418 A CN 202110757418A CN 113426103 A CN113426103 A CN 113426103A
- Authority
- CN
- China
- Prior art keywords
- virtual character
- movement
- client
- virtual
- role
- 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 52
- 238000004422 calculation algorithm Methods 0.000 claims description 25
- 238000012545 processing Methods 0.000 claims description 13
- 238000010295 mobile communication Methods 0.000 abstract description 3
- 230000003993 interaction Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000002829 reductive effect Effects 0.000 description 7
- 238000007654 immersion Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000002411 adverse Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000009191 jumping Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000010845 search algorithm Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000000454 anti-cipatory effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 208000015041 syndromic microphthalmia 10 Diseases 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Between Computers (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本公开提供一种虚拟角色移动控制方法、装置、电子设备及计算机可读存储介质;涉及移动通信技术领域。所述虚拟角色移动控制方法包括:第一客户端计算虚拟角色的目标位置;服务器端以预设时间间隔接收所述第一客户端上传的所述虚拟角色的目标位置;当所述目标位置与所述虚拟角色的当前服务端角色位置不同时,所述服务器端根据当前服务端角色位置以及所述目标位置,计算所述虚拟角色的移动轨迹并控制所述虚拟角色按照所述移动轨迹在第二客户端移动。本公开可以提高用户在弱网环境下的游戏体验。
Description
技术领域
本公开涉及移动通信技术领域,具体而言,涉及基于移动通信技术的一种虚拟角色移动控制方法、虚拟角色移动控制装置、电子设备以及计算机可读存储介质。
背景技术
随着移动互联网的发展以及4G、5G通信技术的成熟和普及,应用于移动终端,尤其是应用于手机的应用程序(APP)也迅速地发展和壮大。在移动终端上运行应用程序具有方便快捷的优点,然而同时也面临着在弱网环境下通信困难的问题。
“弱网”是指具有突发性高丢包、高延迟的网络环境,通常可能发生在用户处于隧道、地铁或基站盲区的情况下。以游戏产品为例,现有的游戏中的虚拟角色移动控制方式通常是由用户操纵游戏界面中的摇杆,服务端的逻辑层接收移动终端上传的摇杆方向和移动信息,随后向移动终端返回相应的控制信息以控制虚拟角色进行移动。当用户在手机上运行例如动作角色扮演游戏(ARPG)或多人在线战术竞技游戏(MOBA)等对即时通信要求较高的游戏时,如果遭遇弱网环境,则对于用户的直观感受就是虚拟角色的移动出现卡顿,甚至无法移动。
现有的解决方式是采用“客户端先行”的处理方式,也就是说,在遭遇弱网环境时,不是根据服务端下发的控制信息来控制虚拟角色移动,而是以移动终端侧的实际控制结果为准。但存在的问题是,由于在弱网环境下移动终端与服务端无法实现数据交互,造成服务端的虚拟角色位置与移动终端上的虚拟角色位置不同;当脱离弱网环境时,移动终端侧的虚拟角色位置会按照服务端侧的虚拟角色位置进行“回调”,使得用户的直观感受是角色被“拉”回原地,导致游戏体验中断。
因此,根据现有技术的解决方案未能较好地解决弱网环境下通信不良的问题,导致用户的游戏体验不佳。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开实施例的目的在于提供一种虚拟角色移动控制方法、虚拟角色移动控制装置、电子设备以及计算机可读存储介质,从而至少在一定程度上提高用户在弱网环境下的游戏体验。
根据本公开的一个方面,提供一种虚拟角色移动控制方法,包括:
第一客户端计算虚拟角色的目标位置;
服务器端以预设时间间隔接收所述第一客户端上传的所述虚拟角色的目标位置;
当所述目标位置与所述虚拟角色的当前服务端角色位置不同时,所述服务器端根据当前服务端角色位置以及所述目标位置,计算所述虚拟角色的移动轨迹并控制所述虚拟角色按照所述移动轨迹在第二客户端移动。
在本公开的一种示例性实施例中,所述服务器端根据当前服务端角色位置以及所述目标位置,计算所述虚拟角色的移动轨迹包括:所述服务器端以所述当前服务端角色位置为起点位置以及以所述虚拟角色的目标位置为终点位置,通过预定算法确定多个轨迹点;其中,所述多个轨迹点构成所述移动轨迹。
在本公开的一种示例性实施例中,所述服务器端根据当前服务端角色位置以及所述目标位置,计算所述虚拟角色的移动轨迹还包括:所述服务器端根据所述虚拟角色的移动速度和所述预设时间间隔确定所述虚拟角色的单位移动路径;以及所述服务器端将每个单位移动路径的起点和终点分别设置为所述多个轨迹点中的一个,并基于所述单位移动路径计算所述虚拟角色的移动轨迹,使得所述移动轨迹由多个单位移动路径构成。
在本公开的一种示例性实施例中,所述服务器端控制所述虚拟角色按照所述移动轨迹在第二客户端移动,包括:所述服务器端控制所述虚拟角色沿所述移动轨迹以所述单位移动路径在第二客户端移动。
在本公开的一种示例性实施例中,所述服务器端控制所述虚拟角色按照所述移动轨迹在第二客户端移动,还包括:所述服务器端控制所述虚拟角色沿所述移动轨迹在所述预设时间间隔内移动经过多个所述单位移动路径。
在本公开的一种示例性实施例中,所述预定算法为寻路算法。
在本公开的一种示例性实施例中,所述预设时间间隔为一帧。
根据本公开的一个方面,提供一种虚拟角色移动控制装置,应用于服务器端,包括:
接收模块,用于接收第一客户端上传的虚拟角色的目标位置;
处理模块,用于当所述目标位置与所述虚拟角色的当前服务端角色位置不同时,根据当前服务端角色位置以及所述目标位置,计算所述虚拟角色的移动轨迹并控制所述虚拟角色按照所述移动轨迹在第二客户端移动。
根据本公开的一个方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的方法。
根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的方法。
本公开示例性实施例可以具有以下部分或全部有益效果:
在公开示例实施方式所提供的虚拟角色移动控制方法中,以预设时间间隔接收第一客户端上传的虚拟角色的目标位置;当所述目标位置与所述虚拟角色的当前服务端角色位置不同时,根据当前服务端角色位置以及所述目标位置,计算所述虚拟角色的移动轨迹并控制所述虚拟角色按照所述移动轨迹在第二客户端移动。一方面,本公开不再采用客户端以服务器端下发的虚拟角色位置为准的控制方式,而是采用服务器端以客户端计算出的虚拟角色位置为准并通过计算表现在其他客户端上的控制方式,从而最大程度地避免了在客户端遭遇弱网环境时造成的虚拟角色移动卡死、虚拟角色位置被“拉扯”、抖动等不良的游戏体验,并能够避免游戏体验被中断,提高了用户的沉浸度。另一方面,由于本公开在服务器端根据虚拟角色的位置变化计算该虚拟角色的移动路径并在其他客户端上进行表现,从而使得即使客户端遭遇弱网环境,虚拟角色在其他客户端上仍然能够实现平滑移动,而不是发生位置“跳变”、闪烁等,进一步提升了用户的游戏体验以及沉浸度。再一方面,针对单个客户端,相对于现有的“客户端上传控制信息——服务器端计算虚拟角色位置——客户端接收下发的虚拟角色位置”这一信息交互方式,本公开至少省去了其中的一个交互步骤,使得能够至少在一定程度上减小由于网络状况波动而给客户端与服务器端之间的信息交互带来的不良影响,降低了对网络稳定性的依赖程度并提高了用户进行操作时的响应速度,从而进一步保证用户能够具有较佳的游戏体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了可以应用本公开实施例的一种虚拟角色移动控制方法及装置的示例性系统架构的示意图;
图2示意性示出了根据本公开的一个实施例的虚拟角色移动控制方法的流程图;
图3示意性示出了应用根据本公开一个实施例的虚拟角色移动控制方法的客户端与服务器端之间的总体交互的流程图;
图4A示意性示出了在本公开的一个实施例中虚拟角色在第一客户端上的移动轨迹;
图4B示意性示出了在本公开的一个实施例中虚拟角色在第二客户端上的移动轨迹;
图4C示意性示出了在本公开的另一个实施例中虚拟角色在第一客户端上的移动轨迹;
图4D示意性示出了在本公开的另一个实施例中虚拟角色在第二客户端上的移动轨迹;
图5示意性示出了根据本公开的一个实施例的虚拟角色移动控制装置的框图;
图6示出了适于用来实现本公开实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
图1示出了可以应用本公开实施例的虚拟角色移动控制方法及装置的示例性系统架构的示意图。
如图1所示,系统架构100可以包括终端设备101、102、103中的一个或多个、网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路。可以以各种类型的连接接入网络104,例如以有线、无线通信链路或者光纤电缆等方式。终端设备101、102、103可以是各种电子设备,包括但不限于台式计算机、便携式计算机、智能手机和平板电脑等等;并且终端设备101、102、103可以是相同类型的终端设备,也可以是彼此不同类型的终端设备。应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实际需要,可以具有任意数目的终端设备、网络和服务器。比如服务器105可以是多个服务器组成的服务器集群等。
举例而言,在一种示例性实施例中,可以是服务器105以预设时间间隔接收终端设备103上传的虚拟角色的目标位置;当该目标位置与虚拟角色的当前服务端角色位置不同时,服务器105根据当前服务端角色位置以及该目标位置,计算虚拟角色的移动轨迹并控制虚拟角色按照该移动轨迹在终端设备101和102上移动。但本领域技术人员容易理解的是,上述应用场景仅是用于举例,本示例性实施例中并不以此为限。
以下对本公开实施例的技术方案进行详细阐述:
本示例实施方式提供了一种虚拟角色移动控制方法。该虚拟角色移动控制方法可以应用于上述终端设备101、102、103中的一个或多个,本示例性实施例中对此不做特殊限定。
参考图2所示,该虚拟角色移动控制方法可以包括以下步骤:
步骤S210.第一客户端计算虚拟角色的目标位置;
步骤S220.服务器端以预设时间间隔接收第一客户端上传的虚拟角色的目标位置;
步骤S230.当所述目标位置与所述虚拟角色的当前服务端角色位置不同时,根据当前服务端角色位置以及所述目标位置,计算所述虚拟角色的移动轨迹并控制所述虚拟角色按照所述移动轨迹在第二客户端移动。
在本示例实施方式所提供的虚拟角色移动控制方法中,一方面,由于采用服务器端以客户端计算出的虚拟角色位置为准并通过计算表现在其他客户端上的控制方式,最大程度地避免了在客户端遭遇弱网环境时造成的虚拟角色移动卡死、虚拟角色位置被“拉扯”、抖动等不良的游戏体验,并能够避免游戏体验被中断,提高了用户的沉浸度。另一方面,由于在服务器端根据虚拟角色的位置变化计算该虚拟角色的移动路径并在其他客户端上进行表现,从而使得即使客户端遭遇弱网环境,虚拟角色在其他客户端上仍然能够实现平滑移动,而不是发生位置“跳变”、闪烁等,进一步提高了用户的游戏体验和沉浸度。再一方面,针对单个客户端,本公开省去了“客户端从服务器端接收虚拟角色位置”的交互步骤,使得能够至少在一定程度上减小由于网络状况波动而给客户端与服务器端之间的信息交互带来的不良影响,降低了对网络稳定性的依赖程度并提高了用户进行操作时的响应速度,从而进一步保证用户能够具有较佳的游戏体验。
下面,在另一实施例中,对上述步骤进行更加详细的说明。
在步骤S210中,第一客户端计算虚拟角色的目标位置。
在本示例实施方式中,例如可以采用客户端先行的方式来处理虚拟角色的移动,也就是说,可以不采用由服务器端接收客户端上传的控制信息并计算虚拟角色的移动过程的方式,而是由客户端在本地计算虚拟角色的移动过程。在一个示例中,例如预设时间间隔(示例性地,一帧)用st表示,而虚拟角色的移动速度为v,控制虚拟角色移动的虚拟摇杆的方向为则在一个st时间内,第一客户端对虚拟角色的移动进行计算的结果为:
其中,p为计算得到的虚拟角色的目标位置,而p’为虚拟角色在预设时间间隔(示例性地,一帧)开始时的初始位置。在计算得到虚拟角色的目标位置p后,第一客户端直接将虚拟角色的移动过程和目标位置渲染在游戏界面上。
在步骤S220中,服务器端以预设时间间隔接收第一客户端上传的虚拟角色的目标位置。
在本示例实施方式中,预设时间间隔例如可以是一帧;具体而言,取决于游戏可能采用的不同帧率,一帧的时间例如可以是1/15秒、1/30秒、1/60秒或1/90秒等等。此外,上述预设时间间隔例如也可以是其他长度的时间间隔,例如可以是两帧或50毫秒等,本示例实施方式对此不做特别限定。在本公开后续的说明中,以预设时间间隔为一帧的时间为例进行说明。
在第一客户端通过上述方式计算得到虚拟角色的目标位置p后,第一客户端将该目标位置p上传至服务器端。相应地,在一个预设时间间隔内,服务器端接收第一客户端上传的虚拟角色的目标位置p
在步骤S230中,当所述目标位置与所述虚拟角色的当前服务端角色位置不同时,所述服务器端根据当前服务端角色位置以及所述目标位置,计算所述虚拟角色的移动轨迹并控制所述虚拟角色按照所述移动轨迹在第二客户端移动。
在本示例实施方式中,如果第一客户端上的虚拟角色例如在一个预设时间间隔内发生了移动,则服务器端接收到的目标位置p不同于在前一个预设时间间隔接收到的虚拟角色位置p’,也就是说,在st时间内得到的目标位置p与虚拟角色的当前服务端角色位置p’不同。在这种情况下,服务器端的逻辑层例如可以根据当前服务端角色位置p’以及目标位置p计算虚拟角色的移动轨迹。其中。逻辑层是服务器端用于计算的部分,其对应于游戏应用程序的数据部分。
在一个具体示例中,逻辑层例如可以以当前服务端角色位置p’为起点,以目标位置p为终点,并例如通过寻路算法进行最短的避障路径搜索。其中,上述寻路算法例如可以是A*算法,A*(A-Star)算法是一种在静态路网中求解最短路径的有效的直接搜索方法,并且例如利用了直接搜索算法、启发式算法、静态图搜索算法等来实现避障搜索两点间的最短路径。举例来说,例如可以通过A*算法计算得到当前服务端角色位置p’与目标位置p之间的由多个轨迹点构成的移动轨迹,其中,多个轨迹点例如可以用d1,d2,…,dn来表示并且可以各自对应于当前游戏场景地图中的不同坐标点;其中可以使d1与p’重合,并使dn与p重合。逻辑层在计算得到虚拟角色X的移动轨迹之后,则可以控制虚拟角色按照该移动轨迹在第二客户端的游戏界面上进行相应的移动。其中,第二客户端例如为与第一客户端的虚拟角色在同一游戏场景下进行游戏的其它虚拟角色所对应的客户端。举例来说,在服务器上的同一游戏分组场景中共有6名用户共同参与进行多人在线战术竞技游戏,其中,假设用户A的客户端为第一客户端,该第一客户端对应的虚拟角色为X,则与用户A在该同一游戏分组场景中共同进行游戏的其他5名用户B、C、D、E、F的各自的客户端均为第二客户端。当虚拟角色X在用户A的第一客户端上发生移动时,由于游戏的实时性,该虚拟角色X由逻辑层控制在用户B、C、D、E、F的各自的第二客户端上也进行相应的移动。需要说明的是,在实际应用中,第二客户端的数量根据实际情况可以是任意自然数,例如可以是1个,也可以是7个,而并不限于上述示例中所例示的数量。
除上述A*算法之外,例如还可以使用迪克斯特拉(Dijkstra)算法、贝尔曼-福特算法的队列优化形式(SPFA算法)等其他算法来计算虚拟角色的移动轨迹,本示例实施方式在此不做特别限定。
通过上述方式,一方面,由于采用服务器端以第一客户端计算出的虚拟角色位置为准的控制方式,使得即使第一客户端遭遇弱网环境,虚拟角色仍然能够根据在第一客户端本地计算的移动位置正常进行移动,最大程度地避免了弱网环境可能造成的虚拟角色移动卡死、虚拟角色位置被“拉扯”、抖动等不良的游戏体验,并能够避免用户的游戏体验被中断,提高了用户的沉浸度。另一方面,由于在服务器端根据虚拟角色的位置变化计算该虚拟角色的移动路径并在第二客户端上进行表现,从而使得即使第一客户端遭遇弱网环境,虚拟角色在第二客户端上仍然能够实现平滑移动,而不是发生位置“跳变”、闪烁等,进一步提高了用户的游戏体验和沉浸度。
在另一个具体示例中,逻辑层例如还可以对虚拟角色的移动轨迹进行进一步计算。示例性地,在逻辑层侧,例如虚拟角色的移动速度为v,则虚拟角色在一个预设时间间隔st内移动过的单位移动路径为:
l=st×v;
则在通过最短路径算法计算得到虚拟角色的移动轨迹的多个轨迹点的基础上,可以使虚拟角色在预设时间间隔st内沿移动轨迹以单位移动路径l进行移动。举例而言,例如可以使每个单位移动路径l的起点和终点分别为多个轨迹点d1,d2,…,dn中的一个;例如可以使第一个预设时间间隔st内的单位移动路径l1的起点为d1(例如,当前服务端角色位置p’),而终点为dx;并且使第二个预设时间间隔st内的单位移动路径l2的起点为dx(也就是说,前一个单位移动路径l1的终点),而终点为dx’,以此类推。其中,d1、dx、dx’各自为轨迹点d1,d2,…,dn中的一个,直至第n个预设时间间隔st内的单位移动路径ln的终点为dn(例如,目标位置p)为止。上述基于单位移动路径l计算移动轨迹的过程例如可以表示为:
通过上述示例中的方式,当第一客户端所处的网络环境正常时,第一客户端可以在每个预设时间间隔st向服务器端正常上传虚拟角色的目标位置;在这种情况下,可以使单位移动路径l的起点为d1,终点为dn或位于dn附近的坐标点,并且使虚拟角色在第二客户端的游戏界面上沿单位移动路径l从d1移动至dn或位于dn附近的坐标点。也就是说,在第一客户端所处的网络环境正常的情况下,虚拟角色在第二客户端的游戏界面上,能够以在每个预设时间间隔st移动单位移动路径l的方式进行移动。
而当第一客户端遭遇弱网环境时,例如第一客户端向服务器端上传虚拟角色X的目标位置失败,并且在20帧的时间后才成功上传当前的目标位置;在这种情况下,一旦服务器端成功接收第一客户端上传的虚拟角色X的当前目标位置p,则服务器端的逻辑层根据当前服务端角色位置p’(例如,在20帧的时间之前收到的由第一客户端上传的虚拟角色X的位置)以及接收到的目标位置p,例如通过A*算法计算得到当前服务端角色位置p’与目标位置p之间的由多个轨迹点d1,d2,…,dn构成的移动轨迹,并且以使得首尾相接的每个单位移动路径l的起点和终点分别被设置为轨迹点d1,d2,…,dn中的一个的方式,计算得到虚拟角色X在第二客户端的游戏界面上的实际移动轨迹,并且控制虚拟角色X使得在第二客户端的游戏界面上,虚拟角色X在一个预设时间间隔st内沿移动轨迹移动通过多个单位移动路径l,例如在一帧内移动通过5个单位移动路径l,直至移动至目标位置p为止,从而实现服务端角色位置“追赶”角色的目标位置的过程。在追赶的过程中,如果第一客户端的虚拟角色X继续发生移动,例如从目标位置p又移动到了另一目标位置p”处,则逻辑层可以以该新的目标位置p”为终点,通过上述方式继续计算虚拟角色X的实际移动轨迹,直至虚拟角色X在第二客户端的游戏界面上追赶上在第一客户端上的当前目标位置p”为止。
通过上述方式,即使第一客户端遭遇弱网环境,对应于第一客户端的虚拟角色X在第二客户端的游戏界面上仍然能够以平滑的方式进行移动。在第二客户端的用户的直观感受中,虚拟角色X可能以比正常移动速度更快的速度,并以平滑移动的方式移动至当前目标位置。由此,虚拟角色X的移动轨迹对于第二客户端的用户是可见的并且是可追溯的,而并不会出现一旦第一客户端遭遇弱网环境,在恢复通信后虚拟角色X的位置发生“跳变”、闪烁等,使得第二客户端的用户可能无法找到虚拟角色X的最终位置或者要适应虚拟角色X的位置跳变,从而使其产生游戏体验出现明显中断的感觉,从而进一步提升了用户的游戏体验。另外,根据本示例实施方式,第一客户端与服务器端的信息交互例如为“第一客户端上传目标位置——服务器端计算虚拟角色位置”,而第二客户端与服务器端的信息交互例如为“服务器端计算虚拟角色移动轨迹——第二客户端表现该虚拟角色移动轨迹”,相对于现有的“客户端上传控制信息——服务器端计算虚拟角色位置——客户端接收下发的虚拟角色位置”这一信息交互方式,本本示例实施方式至少省去了其中的一个交互步骤,使得能够至少在一定程度上减小由于网络状况波动而给客户端与服务器端之间的信息交互带来的不良影响,降低了对网络稳定性的依赖程度并提高了用户进行操作时的响应速度,从而进一步保证用户能够具有较佳的游戏体验。
应当注意,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
图3示出了应用根据本示例实施方式的虚拟角色移动控制方法的客户端与服务器端之间的总体交互流程的示意图。
如图3所示,在S301,第一客户端可以在本地根据用户输入的控制信息来计算第一虚拟角色的第一目标位置,其中,该第一虚拟角色为在第一客户端的游戏界面上受用户控制的虚拟角色。在计算得到第一虚拟角色的第一目标位置之后,在S302,第一客户端可以将该第一目标位置上传至服务器端。在接收到第一目标位置之后,在S303,服务器端的逻辑层可以根据第一虚拟角色在服务器端的当前服务端第一角色位置和该第一目标位置,使用最短路径算法计算得到该第一虚拟角色的移动轨迹;其中,如上所述,该移动轨迹可以由连续的轨迹点或多个单位移动路径构成,在此不再赘述。在S304,服务器端可以根据计算得到的移动轨迹控制第一虚拟角色在第二客户端的游戏界面上进行移动。
与第一客户端类似地,第二虚拟角色例如受第二客户端的用户控制也在同一游戏场景中进行移动。在这种情况下,在S305,第二客户端可以在本地根据用户输入的控制信息来计算第二虚拟角色的第二目标位置。在计算得到第二虚拟角色的第二目标位置之后,在S306,第二客户端可以将该第二目标位置上传至服务器端。在接收到第二目标位置之后,在S307,服务器端的逻辑层可以根据第二虚拟角色在服务器端的当前服务端第二角色位置和该第二目标位置,使用最短路径算法计算得到该第二虚拟角色的移动轨迹。在S308,服务器端可以根据计算得到的移动轨迹控制第二虚拟角色在第一客户端的游戏界面上进行移动。
综上,在本公开的示例性实施方式中,在同一游戏场景内连接到服务器的各个客户端均采用下述虚拟角色移动控制方式:在本地计算虚拟角色的目标位置并上传至服务器端,由服务器端的逻辑层根据虚拟角色的位置变化起止点计算虚拟角色的移动轨迹,并按照该移动轨迹控制虚拟角色在其他客户端的游戏界面上进行移动。通过这种方式,无论哪一个或哪几个客户端遭遇了弱网环境,都不会过多地影响用户的游戏体验,从而降低了对网络稳定性的依赖程度,提高了用户进行操作时的响应速度,进而保证了用户具有较佳的游戏体验。
图4示出了虚拟角色在第一客户端和第二客户端上的不同移动轨迹。如图4A至图4D所示,其中,401、402、403、404代表虚拟角色,410、420、430、440代表虚拟角色的移动轨迹,而405和406代表游戏场景中的障碍物。在图4A中,在第一客户端,虚拟角色401可以受第一客户端的用户的控制而沿移动轨迹410进行移动,并到达目标位置。在图4B中,在服务器端接收到第一客户端上传的虚拟角色的目标位置后,逻辑层可以根据寻路算法计算出当前服务端角色位置与目标位置之间的由多个轨迹点构成的最短路径420,并且在第二客户端,控制虚拟角色402沿该计算得到的最短路径420进行移动。在图4C中,在第一客户端,当游戏场景中存在障碍物405时,虚拟角色403例如可以受第一客户端的用户的控制,从而沿如图4C所示的移动轨迹430避开该障碍物405进行移动,并到达目标位置。在图4D中,在服务器端接收到第一客户端上传的虚拟角色的目标位置后,逻辑层可以根据寻路算法计算出当前服务端角色位置与目标位置之间的由单位移动路径构成的最短路径440,同时使得计算得到的最短路径440能够避开障碍物406;并且在第二客户端,逻辑层可以控制虚拟角色404沿该计算得到的最短路径440以单位移动路径进行移动。通过这种方式,实现了由服务器端计算虚拟角色的移动轨迹并且表现在第二客户端上。
此外,在本公开的示例性实施方式中,第一客户端除了虚拟角色的目标位置之外,还可以向服务器端上传控制摇杆的拖动方向,以便逻辑层根据上传的摇杆拖动方向确定虚拟角色的技能释放方向,并在第二客户端上进行表现。
进一步的,本示例实施方式中,还提供了一种虚拟角色移动控制装置。该虚拟角色移动控制装置可以应用于服务器端。参考图5所示,该虚拟角色移动控制装置500可以包括接收模块510和处理模块520。其中:
接收模块510可以用于接收第一客户端上传的虚拟角色的目标位置;处理模块520可以用于当所述目标位置与所述虚拟角色的当前服务端角色位置不同时,根据当前服务端角色位置以及所述目标位置,计算所述虚拟角色的移动轨迹并控制所述虚拟角色按照所述移动轨迹在第二客户端移动。
在本公开的一种示例性实施例中,处理模块520可以具体用于以所述当前服务端角色位置为起点位置以及以所述虚拟角色的目标位置为终点位置,通过预定算法确定多个轨迹点;其中,所述多个轨迹点构成所述移动轨迹。
在本公开的一种示例性实施例中,处理模块520还可以具体用于根据所述虚拟角色的移动速度和所述预设时间间隔确定所述虚拟角色的单位移动路径;以及将每个单位移动路径的起点和终点分别设置为所述多个轨迹点中的一个,并基于所述单位移动路径计算所述虚拟角色的移动轨迹,使得所述移动轨迹由多个单位移动路径构成。
在本公开的一种示例性实施例中,处理模块520还可以具体用于控制所述虚拟角色沿所述移动轨迹以所述单位移动路径在第二客户端移动。
在本公开的一种示例性实施例中,处理模块520还可以具体用于控制所述虚拟角色沿所述移动轨迹在所述预设时间间隔内移动经过多个所述单位移动路径。
在本公开的一种示例性实施例中,所述预定算法为寻路算法。
在本公开的一种示例性实施例中,所述预设时间间隔为一帧。
上述虚拟角色移动控制装置中各模块或单元的具体细节已经在对应的虚拟角色移动控制方法中进行了详细的描述,因此此处不再赘述。
图6示出了适于用来实现本公开实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图6示出的电子设备的计算机系统600仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统操作所需的各种程序和数据。CPU601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)显示器、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本公开的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请的方法和装置中限定的各种功能。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如上述实施例中所述的方法。
需要说明的是,本公开所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (11)
1.一种虚拟角色移动控制方法,其特征在于,包括:
第一客户端计算虚拟角色的目标位置;
服务器端以预设时间间隔接收所述第一客户端上传的所述虚拟角色的目标位置;
当所述目标位置与所述虚拟角色的当前服务端角色位置不同时,所述服务器端根据当前服务端角色位置以及所述目标位置,计算所述虚拟角色的移动轨迹并控制所述虚拟角色按照所述移动轨迹在第二客户端移动。
2.如权利要求1所述的虚拟角色移动控制方法,其特征在于,所述服务器端根据当前服务端角色位置以及所述目标位置,计算所述虚拟角色的移动轨迹包括:
所述服务器端以所述当前服务端角色位置为起点位置以及以所述虚拟角色的目标位置为终点位置,通过预定算法确定多个轨迹点;其中,所述多个轨迹点构成所述移动轨迹。
3.如权利要求2所述的虚拟角色移动控制方法,其特征在于,所述服务器端根据当前服务端角色位置以及所述目标位置,计算所述虚拟角色的移动轨迹还包括:
所述服务器端根据所述虚拟角色的移动速度和所述预设时间间隔确定所述虚拟角色的单位移动路径;
所述服务器端将每个单位移动路径的起点和终点分别设置为所述多个轨迹点中的一个,并基于所述单位移动路径计算所述虚拟角色的移动轨迹,使得所述移动轨迹由多个单位移动路径构成。
4.如权利要求3所述的虚拟角色移动控制方法,其特征在于,所述服务器端控制所述虚拟角色按照所述移动轨迹在第二客户端移动,包括:
所述服务器端控制所述虚拟角色沿所述移动轨迹以所述单位移动路径在第二客户端移动。
5.如权利要求4所述的虚拟角色移动控制方法,其特征在于,所述服务器端控制所述虚拟角色按照所述移动轨迹在第二客户端移动,还包括:
所述服务器端控制所述虚拟角色沿所述移动轨迹在所述预设时间间隔内移动经过多个所述单位移动路径。
6.如权利要求2所述的虚拟角色移动控制方法,其特征在于,所述预定算法为寻路算法。
7.如权利要求3所述的虚拟角色移动控制方法,其特征在于,所述预设时间间隔为一帧。
8.一种虚拟角色移动控制方法,其特征在于,包括:
以预设时间间隔接收第一客户端上传的虚拟角色的目标位置;
当所述目标位置与所述虚拟角色的当前服务端角色位置不同时,根据当前服务端角色位置以及所述目标位置,计算所述虚拟角色的移动轨迹并控制所述虚拟角色按照所述移动轨迹在第二客户端移动。
9.一种虚拟角色移动控制装置,应用于服务器端,其特征在于,包括:
接收模块,用于接收第一客户端上传的虚拟角色的目标位置;
处理模块,用于当所述目标位置与所述虚拟角色的当前服务端角色位置不同时,根据当前服务端角色位置以及所述目标位置,计算所述虚拟角色的移动轨迹并控制所述虚拟角色按照所述移动轨迹在第二客户端移动。
10.一种电子设备,其特征在于,包括:
存储器;以及
耦合到所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如权利要求1-8任一项所述的虚拟角色移动控制方法。
11.一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现如权利要求1-8任一项所述的虚拟角色移动控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110757418.7A CN113426103A (zh) | 2021-07-05 | 2021-07-05 | 虚拟角色移动控制方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110757418.7A CN113426103A (zh) | 2021-07-05 | 2021-07-05 | 虚拟角色移动控制方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113426103A true CN113426103A (zh) | 2021-09-24 |
Family
ID=77758967
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110757418.7A Pending CN113426103A (zh) | 2021-07-05 | 2021-07-05 | 虚拟角色移动控制方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113426103A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1941788A (zh) * | 2005-09-26 | 2007-04-04 | 腾讯科技(深圳)有限公司 | 一种联网游戏中角色的移动方法 |
CN107185242A (zh) * | 2017-04-27 | 2017-09-22 | 腾讯科技(深圳)有限公司 | 多单位寻路方法及装置 |
CN107837530A (zh) * | 2017-11-06 | 2018-03-27 | 网易(杭州)网络有限公司 | 游戏同步方法、装置及设备 |
KR20180045668A (ko) * | 2016-10-26 | 2018-05-04 | (주)잼투고 | 터치 유저 인터페이스를 이용한 카메라의 이동경로와 이동시간의 동기화를 위한 사용자 단말장치 및 컴퓨터 구현 방법 |
CN109011575A (zh) * | 2018-07-04 | 2018-12-18 | 苏州玩友时代科技股份有限公司 | 一种自动寻路方法、装置和设备 |
CN109276883A (zh) * | 2018-09-14 | 2019-01-29 | 网易(杭州)网络有限公司 | 游戏信息的同步方法、服务端、客户端、介质及电子设备 |
CN112755528A (zh) * | 2019-11-01 | 2021-05-07 | 阿里巴巴集团控股有限公司 | 游戏中角色的移动同步方法及装置、电子设备和存储介质 |
-
2021
- 2021-07-05 CN CN202110757418.7A patent/CN113426103A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1941788A (zh) * | 2005-09-26 | 2007-04-04 | 腾讯科技(深圳)有限公司 | 一种联网游戏中角色的移动方法 |
KR20180045668A (ko) * | 2016-10-26 | 2018-05-04 | (주)잼투고 | 터치 유저 인터페이스를 이용한 카메라의 이동경로와 이동시간의 동기화를 위한 사용자 단말장치 및 컴퓨터 구현 방법 |
CN107185242A (zh) * | 2017-04-27 | 2017-09-22 | 腾讯科技(深圳)有限公司 | 多单位寻路方法及装置 |
CN107837530A (zh) * | 2017-11-06 | 2018-03-27 | 网易(杭州)网络有限公司 | 游戏同步方法、装置及设备 |
CN109011575A (zh) * | 2018-07-04 | 2018-12-18 | 苏州玩友时代科技股份有限公司 | 一种自动寻路方法、装置和设备 |
CN109276883A (zh) * | 2018-09-14 | 2019-01-29 | 网易(杭州)网络有限公司 | 游戏信息的同步方法、服务端、客户端、介质及电子设备 |
CN112755528A (zh) * | 2019-11-01 | 2021-05-07 | 阿里巴巴集团控股有限公司 | 游戏中角色的移动同步方法及装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110882542B (zh) | 游戏智能体的训练方法、装置、设备及存储介质 | |
CN111659120B (zh) | 虚拟角色位置同步方法、装置、介质及电子设备 | |
US11995311B2 (en) | Adaptive display method and apparatus for virtual scene, electronic device, storage medium, and computer program product | |
US20230321543A1 (en) | Control method and apparatus of virtual skill, device, storage medium and program product | |
CN111539345A (zh) | 用于确定变道动作的方法、装置、设备及可读存储介质 | |
WO2023138504A1 (zh) | 图像渲染方法、装置、电子设备及存储介质 | |
CN111589166A (zh) | 交互式任务控制、智能决策模型训练方法、设备和介质 | |
CN112789093A (zh) | 在多玩家程序中引入较高输入等待时间 | |
CN113052253A (zh) | 超参数确定方法、装置、深度强化学习框架、介质及设备 | |
US20240123348A1 (en) | Game character control method and apparatus, storage medium and electronic device | |
CN113476823B (zh) | 虚拟对象控制方法、装置、存储介质及电子设备 | |
CN109621420A (zh) | 游戏中的寻路方法、装置、介质及电子设备 | |
JP2021151870A (ja) | 車窓表示方法及び装置 | |
CN113426103A (zh) | 虚拟角色移动控制方法、装置、电子设备及存储介质 | |
CN113694530A (zh) | 虚拟角色移动控制方法、装置、电子设备及存储介质 | |
CN110597657B (zh) | 客户端数据的校验方法、系统及服务器 | |
CN109718540B (zh) | 游戏中的漂移效果的实现方法、装置、设备及存储介质 | |
CN113476845A (zh) | 游戏中的交互控制方法、装置、电子设备及计算机介质 | |
CN113144606B (zh) | 虚拟对象的技能触发方法及相关设备 | |
CN112461239B (zh) | 移动体路径规划方法、装置、设备及存储介质 | |
CN109091866A (zh) | 显示控制方法、装置、计算机可读介质及电子设备 | |
CN111701242B (zh) | 一种游戏场景中的路径拟合方法及装置 | |
CN117101129A (zh) | 游戏视角的移动方法、装置、电子设备及计算机可读介质 | |
KR20210003627A (ko) | 전자 장치 및 전자 장치에서 게임의 관심 영역을 표시하는 방법 | |
CN117046111B (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 |