CN109847361A - 运动状态的同步方法和装置、存储介质、电子装置 - Google Patents
运动状态的同步方法和装置、存储介质、电子装置 Download PDFInfo
- Publication number
- CN109847361A CN109847361A CN201910147619.8A CN201910147619A CN109847361A CN 109847361 A CN109847361 A CN 109847361A CN 201910147619 A CN201910147619 A CN 201910147619A CN 109847361 A CN109847361 A CN 109847361A
- Authority
- CN
- China
- Prior art keywords
- time
- client
- movement velocity
- initial
- parameter
- 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
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种运动状态的同步方法和装置、存储介质、电子装置。其中,该方法包括:获取第一客户端的同步信息,其中,同步信息用于指示虚拟场景中被第一客户端控制的第一对象的运动速度发生变化;基于同步信息确定第一目标时间时第一对象在虚拟场景中的预估位置和在预估位置的预估运动速度;在时间到达第一目标时间的情况下,在第二客户端上显示位于预估位置的第一对象按照预估运动速度运动的图像,其中,在获取到同步信息之前第一对象在第二客户端显示的虚拟场景中的运动速度与在第一客户端显示的虚拟场景中发生变化前的运动速度相同。本发明解决了相关技术中的移动轨迹与物体移动的物理规律匹配度较差的技术问题。
Description
技术领域
本发明涉及互联网领域,具体而言,涉及一种运动状态的同步方法和装置、存储介质、电子装置。
背景技术
竞速游戏是一种电子游戏类型,主要是以第一人物或者第三人物参与速度的竞争。竞速游戏可以包含赛车游戏,还有一些非常规的飞行竞速游戏,科幻竞速游戏,特殊竞速游戏。
在竞速游戏等类型的游戏中,对在当前客户端(即玩家当前进行竞速操控的客户端)和其它客户端(即需要同步当前客户端所操控的对象的客户端)之间的游戏数据同步有着较高的要求,如果当前客户端的逻辑帧和其它客户端的逻辑帧不一致、或者出现网络延迟,就会造成不同客户端上同一对象的位置差异较大,此时其它客户端就会瞬间强制将当前客户端所操控的对象拉扯至于当前客户端保持一致的位置,从而造成其它客户端对对象的状态同步产生的移动轨迹不符合移动的物理规律的问题。
类似地,在需要进行同步的社交场景,军事、医疗等模拟场景中也存在类似的问题。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种运动状态的同步方法和装置、存储介质、电子装置,以至少解决相关技术中的移动轨迹与物体移动的物理规律匹配度较差的技术问题。
根据本发明实施例的一个方面,提供了一种运动状态的同步方法,包括:获取第一客户端的同步信息,其中,同步信息用于指示虚拟场景中被第一客户端控制的第一对象的运动速度发生变化;基于同步信息确定第一目标时间时第一对象在虚拟场景中的预估位置和在预估位置的预估运动速度;在时间到达第一目标时间的情况下,在第二客户端上显示位于预估位置的第一对象按照预估运动速度运动的图像,其中,在获取到同步信息之前第一对象在第二客户端显示的虚拟场景中的运动速度与在第一客户端显示的虚拟场景中发生变化前的运动速度相同。
根据本发明实施例的另一方面,还提供了一种运动状态的同步装置,包括:获取单元,用于获取第一客户端的同步信息,其中,同步信息用于指示虚拟场景中被第一客户端控制的第一对象的运动速度发生变化;预估单元,用于基于同步信息确定第一目标时间时第一对象在虚拟场景中的预估位置和在预估位置的预估运动速度;同步单元,用于在时间到达第一目标时间的情况下,在第二客户端上显示位于预估位置的第一对象按照预估运动速度运动的图像,其中,在获取到同步信息之前第一对象在第二客户端显示的虚拟场景中的运动速度与在第一客户端显示的虚拟场景中发生变化前的运动速度相同。
根据本发明实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的方法。
根据本发明实施例的另一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器通过计算机程序执行上述的方法。
在本发明实施例中,第二客户端获取到第一客户端的同步信息时,基于同步信息预估得到第一目标时间时第一对象在虚拟场景中的预估位置和在预估位置的预估运动速度;在时间到达第一目标时间的情况下,在第二客户端上与第一客户端同步显示位于预估位置的第一对象按照预估运动速度运动的图像,由于是经过一段时间的过渡才使得第一对象在第二客户端和第一客户端上同步显示,从而使得第一对象的运动轨迹不存在拉扯而存在过渡曲线,可以解决相关技术中的移动轨迹与物体移动的物理规律匹配度较差的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的运动状态的同步方法的硬件环境的示意图;
图2是根据本发明实施例的一种可选的运动状态的同步方法的流程图;
图3是根据本发明实施例的一种可选的运动状态的同步轨迹的示意图;
图4是根据本发明实施例的一种可选的运动状态的同步方法的流程图;
图5是根据本发明实施例的一种可选的同步轨迹的示意图;
图6是根据本发明实施例的一种可选的同步轨迹的示意图;
图7是根据本发明实施例的一种可选的竞技游戏界面的示意图;
图8是根据本发明实施例的一种可选的碰撞处理方法的流程图;
图9是根据本发明实施例的一种可选的运动状态的同步装置的示意图;以及
图10是根据本发明实施例的一种终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本发明实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:
同步率:由于网络延迟的存在,经过网络同步到另一端的游戏角色跟原角色状态之间可能存在轻微的偏差,一局游戏内偏差的程度定义为同步率,偏差越少同步率越高。
主端车:即玩家自己客户端操控的车(如本申请中的第一客户端),多人比赛的时候主端车会直接或者间接地往其他客户端发送数据包。
网络车:相对于主端车而言,网络车即其他客户端中显示的前述玩家所操控的车,多人比赛的时候接收同步数据包。
由于手机、平板等智能终端的接入网络方式的多样性,导致其具有更多不确定性(如手机游戏的网络相比PC游戏)的问题,如相关技术中的状态同步产生的移动轨迹不符合车辆移动的物理规律的问题,高速运动时车辆碰撞也会导致拉扯现象,可见,做好网络同步(如高速带物理碰撞物体的网络同步)是非常必要的,为了实现该目的,根据本发明实施例的一方面,提供了一种运动状态的同步方法的方法实施例,可以实现具有高精度预测、平滑插值的同步方案。
可选地,在本实施例中,上述运动状态的同步方法可以应用于如图1所示的由终端101(如安装有竞速类应用的客户端所在的终端)和服务器103所构成的硬件环境中。如图1所示,服务器103通过网络与终端101进行连接,可用于为终端或终端上安装的客户端提供服务(如游戏服务、社交服务、模拟服务等),可在服务器上或独立于服务器设置数据库105,用于为服务器103提供数据存储服务(如存储游戏数据、社交数据等),上述网络包括但不限于:广域网、城域网或局域网,终端101并不限定于PC、手机、平板电脑等。
本申请的技术方案可以应用在采用增强现实AR、虚拟现实VR等技术的社交场景中,此时提供的社交场景即虚拟场景,在采用增强现实AR、虚拟现实VR等的社交应用中,在用户在社交应用的第一客户端上登陆后,在虚拟场景中存在一个与登录用户对应的虚拟对象(相当于下述第一对象),该虚拟对象在虚拟场景中的状态(如位置、速度等)会被同步至社交应用的其他客户端(相当于第二客户端)上,在网络延时较大时,会出现第一客户端和第二客户端上第一对象状态(如位置、速度等)不同步的情况,相关技术中第二客户端接收到同步信息时,会在第二客户端上将第一对象拉扯至与第一客户端上同步的位置,从而造成其它客户端对对象的状态同步产生的移动轨迹不符合移动的物理规律的问题,采用本申请的技术方案,在接收到同步信息时,是预估一段时间后第一对象在第一客户端上的位置和速度,进而通过这段时间来逐步调整,使其在第二客户端上的位置和速度在这段时间之后与第一客户端保持一致,避免出现状态同步产生的移动轨迹不符合移动的物理规律的问题。
本申请的技术方案还可以应用在游戏场景中,如MOBA游戏(Multiplayer OnlineBattle Arena,中文译为多人在线战术竞技游戏)、FPS游戏(First-person shooter game,中文译为第一人称射击类游戏)、TPS游戏(Third-person shooter game,中文译为第三人称射击类游戏)、竞速类游戏等,此时游戏提供的游戏场景即虚拟场景,当玩家处于游戏的过程中,在游戏应用的第一客户端所显示的虚拟场景中存在一个与玩家对应的游戏对象(相当于下述第一对象),该游戏对象在虚拟场景中的状态(如位置、速度等)会被同步至游戏应用的其他客户端(相当于第二客户端)上,但网络延时较大时,会出现第一客户端和第二客户端上游戏对象状态不同步的情况,相关技术中第二客户端接收到同步信息时,会在第二客户端上将游戏对象拉扯至与第一客户端上同步的位置,从而造成其它客户端对对象的状态同步产生的移动轨迹不符合移动的物理规律的问题,采用本申请的技术方案,在接收到同步信息时,是预估一段时间后游戏对象在第一客户端上的位置和速度,进而通过这段时间来逐步调整,使其在第二客户端上的位置和速度在这段时间之后与第一客户端保持一致。
在其他具有虚拟场景且存在需要同步状态的对象时,也可按照上述方式将本申请的技术方案应用于其中,在此不再赘述。
本发明实施例的运动状态的同步方法可以由终端101来执行,图2是根据本发明实施例的一种可选的运动状态的同步方法的流程图,如图2所示,该方法可以包括以下步骤:
步骤S202,终端获取第一客户端的同步信息,同步信息用于指示虚拟场景中被第一客户端控制的第一对象的运动速度发生变化。
上述终端为安装有第二客户端的终端,上述的同步信息可来源于第一客户端或者服务器,如在第一对象的瞬时速度和/或加速度(即运动速度)发生变化时第一客户端或者服务器会生成该同步信息。
上述虚拟场景可以为社交应用的社交场景、游戏应用的游戏场景、模拟应用的模拟场景等;对象(如上述第一对象和下述第二对象)即为虚拟场景中可移动的对象,如第一对象可在第一客户端的控制下运动,第一对象如社交场景中的虚拟人物、虚拟人物的宠物,游戏场景中的游戏人物、游戏道具,模拟场景中的虚拟人物、虚拟军事道具等。
步骤S204,终端基于同步信息确定第一目标时间时第一对象在虚拟场景中的预估位置和在预估位置的预估运动速度。第一目标时间为第二客户端接收到同步信息之后的时间,换言之,预估位置和在预估位置的预估运动速度为终端预估的一段时间后的第一道具在第一客户端显示的虚拟场景中的位置和速度。步骤S204即进行对象状态的预测(或称为预估),可通过当前角色状态(即第一对象的状态,可以通过同步信息确定),计算若干时间后的第一目标时间该角色的状态。
步骤S206,在时间到达第一目标时间的情况下,终端在第二客户端上显示位于预估位置的第一对象按照预估运动速度运动的图像。
在获取到同步信息之前第一对象在第二客户端显示的虚拟场景中的运动速度与在第一客户端显示的虚拟场景中发生变化前的运动速度相同,为了保持网络同步,可以通过预估一段时间后的预估位置和预估运动速度来实现,预估位置和在预估位置的预估运动速度为终端预估的一段时间后的第一目标时间的第一道具在第一客户端显示的虚拟场景中的位置和速度,而在第一目标时间到来时,也在第二客户端上显示位于预估位置的第一对象按照预估运动速度运动的图像,相当于在第一目标时刻完成第一客户端和第二客户端上第一对象的同步,如玩家角色通过网络同步后使得另一个玩家看到相同的操作和效果。
在本发明的上述实施例中以本申请的运动状态的同步方法由终端101来执行为例进行说明,本申请的运动状态的同步方法也可以是由服务器103和终端101共同执行。其中,终端101执行本发明实施例的运动状态的同步方法也可以是由安装在其上的客户端来执行。
通过上述步骤S202至步骤S206,第二客户端获取到第一客户端的同步信息时,基于同步信息预估得到第一目标时间时第一对象在虚拟场景中的预估位置和在预估位置的预估运动速度;在时间到达第一目标时间的情况下,在第二客户端上与第一客户端同步显示位于预估位置的第一对象按照预估运动速度运动的图像,由于是经过一段时间的过渡才使得第一对象在第二客户端和第一客户端上同步显示,从而使得第一对象的运动轨迹不存在拉扯而存在过渡曲线,可以解决相关技术中的移动轨迹与物体移动的物理规律匹配度较差的技术问题。
下面结合图2所示的步骤进一步详述本申请的技术方案。
在步骤S202提供的技术方案中,终端获取第一客户端的同步信息包括但不局限于如下方式:
1)在虚拟场景中存在与操作第一客户端的用户对应的虚拟人物或者角色(即第一对象),在用户操作该虚拟人物或者角色移动(如速度或者加速度发生变化)时,第一客户端或者服务器生成同步信息,并发送给第二客户端;
2)在虚拟场景中存在与操作第一客户端的用户对应的虚拟人物或者角色,与此同时,还存在与该虚拟人物或者角色关联的对象,如虚拟人物的驾驶车辆、宠物等(即第二对象),在用户操作驾驶车辆、宠物时,第一客户端或者服务器生成同步信息,并发送给第二客户端。
在步骤S204提供的技术方案中,终端基于同步信息确定第一目标时间时第一对象在虚拟场景中的预估位置和在预估位置的预估运动速度。第一目标时间为第二客户端接收到同步信息之后的时间。
可选地,基于同步信息确定第一目标时间时第一对象在虚拟场景中的预估位置和在预估位置的预估运动速度可包括:获取同步信息所指示的对第一对象的目标操作和第一对象的对象信息,目标操作即对第一对象的运动速度(包括瞬时速度和/或加速度)产生影响的操作,而对象信息为影响目标操作的有效性的时间,例如目标操作为“氮气”加速操作,而对象信息为“氮气”量,利用“氮气”量可以确认加速时间;根据目标操作和第一对象的对象信息确定第一目标时间时第一对象在虚拟场景中的预估位置和在预估位置的预估运动速度,例如加速度为1m每秒,而加速时间为5秒,若第一目标时间与当前时间之间的间隔小于5秒,那么第一目标时间的速度为初始运动速度v1与间隔时间t之和,若间隔时间大于等于5秒,那么第一目标时间的速度为(v1+5)。
可选地,考虑到客户端之间的不同步主要是由于网络延时造成的,故获取同步信息所指示的对第一对象的目标操作和第一对象的对象信息时:可获取第一客户端发送同步信息的发送时间,其中,第一客户端和第二客户端为提供虚拟场景的竞速应用的客户端;在发送时间与第二客户端的当前时间之间的差值大于第二阈值的情况下,即网络延迟较大(如大于1秒)的情况下,获取同步信息所指示的对第一对象的目标操作和第一对象的对象信息。
在上述实施例中,可考虑转向时两前轮之间的角度差异,真实的车辆在转向时,两个前轮一般会在角度上存在一定偏差;且对象为后轮驱动的车辆,后驱是一种相对比较简单的情况,因为牵引力仅由后轮产生,且后轮不存在转向,因此这种情况下牵引力的方向将始终指向车头(或车尾)方向,这也意味着,牵引力将仅仅用于计算车辆沿车头/车位方向的加速度,而不会存在一个侧向的分量来影响转向的过程。
加速度a在x方向的分量a.x=netForce.x/m,;
加速度a在y方向的分量a.y=netForce.y/m;
速度v在x方向的分量v.x,v.x+=a.x*delta;
速度v在y方向的分量v.y+=a.y*delta;
netForceLong为车辆在x方向受到的合力,netForce.y为车辆在y方向上受到的合力,m为车辆重量,delta为更新时间间隔。
netForce.x=rollingResistanceFront.x+lateralForceFront.x+rollingResistanceRear.x+drag.x+fraction;
rollingResistanceFront.x为前轮在x方向上的摩擦力,lateralForceFront.x为前轮的lateral Force在x方向上的分量,rollingResistanceRear.x为后轮的滚动摩擦力在x方向上的分量,drag.x为风阻在x方向上的分量,fraction表示车辆牵引力。
netForce.y=rollingResistanceFront.y+lateralForceFront.y+drag.y+lateralForceRear;
rollingResistanceFront.y为前轮在y方向上的摩擦力,lateralForceFront.y为前轮的lateral Force在y方向上的分量,rollingResistanceRear.y为后轮的滚动摩擦力在y方向上的分量,drag.y为风阻在y方向上的分量,lateralForceRear为后轮的lateralForce。
在步骤S206提供的技术方案中,在时间到达第一目标时间的情况下,终端在第二客户端上显示位于预估位置的第一对象按照预估运动速度运动的图像。
在上述实施例中,在基于同步信息确定第一目标时间时第一对象在虚拟场景中的预估位置和在预估位置的预估运动速度之后,在时间位于初始时间与第一目标时间之间的情况下,在第二客户端上播放第一对象从初始位置移动至预估位置的画面,初始时间为第二客户端获取到同步信息时的时间,初始位置为第二客户端获取到同步信息时第一对象在第二客户端显示的虚拟场景中的位置。
可选地,在时间位于初始时间与第一目标时间之间的情况下,在第二客户端上播放第一对象从初始位置移动至预估位置的画面包括:在当前时间ct为位于初始时间t1与第一目标时间t2之间的情况下,根据当前时间ct、初始时间t1、第一目标时间t2、初始位置p1、预估位置p2、初始运动速度v1以及预估运动速度v2确定当前时间ct时第一对象在第二客户端显示的虚拟场景中的位置pt和运动速度vt,其中,初始运动速度为第二客户端获取到同步信息时第一对象在第二客户端显示的虚拟场景中的运动速度;在第二客户端上播放当前时间ct时位于位置pt的第一对象按照运动速度vt运动的图像。
一种可选地根据当前时间ct、初始时间t1、第一目标时间t2、初始位置p1、预估位置p2、初始运动速度v1以及预估运动速度v2确定当前时间ct时第一对象在第二客户端显示的虚拟场景中的位置pt和运动速度vt的实施方式如下:将第一参数、第二参数、第三参数以及第一位置的和作为位置pt,其中,第一参数为第一乘积和第二乘积的差值、时间间隔t的立方以及参数k的立方的倒数四者之间的乘积,参数k为第一目标时间t2与初始时间t1之间的差值,时间间隔t为当前时间ct与初始时间t1之间的间隔,第一乘积为初始运动速度v1和预估运动速度v2之间的速度差值与参数k之间的乘积,第二乘积为2与第四参数之间的乘积,第四参数为预估位置p2和初始位置p1之间的差值减去初始运动速度v1与参数k之间的乘积,第二参数为第三乘积和第一乘积的差值、时间间隔t的平方以及参数k的平方的倒数之间的乘积,第三乘积3与第四参数之间的乘积,第三参数为初始运动速度与时间间隔t之间的乘积;并,将第一参数与时间间隔之间的比值的3倍、第二参数与时间间隔之间的比值的2倍以及初始运动速度v1三者之和作为运动速度vt。
可选地,高速运动的物体(即第一对象)进行同步另一个比较重要的问题是碰撞的处理,在第二客户端上播放第一对象从初始位置移动至预估位置的画面的过程中,可能存在同步过程中第一对象在第二客户端显示的虚拟场景中与其他对象碰撞而实际上并未发生碰撞(即第一对象在第一客户端显示的虚拟场景中未与其他对象发生碰撞)的情况下,此时为了避免这种问题的出现,可以按照如下方式进行处理:在第一对象与第二对象之间的间隔距离小于第一阈值的情况下,停止执行步骤根据当前时间ct、初始时间t1、第一目标时间t2、初始位置p1、预估位置p2、初始运动速度v1以及预估运动速度v2确定当前时间ct时第一对象在第二客户端显示的虚拟场景中的位置pt和运动速度vt。
可选地,在停止执行步骤根据当前时间ct、初始时间t1、第一目标时间t2、初始位置p1、预估位置p2、初始运动速度v1以及预估运动速度v2确定当前时间ct时第一对象在第二客户端显示的虚拟场景中的位置pt和运动速度vt之后,可在第二客户端播放第一对象在虚拟场景中按照当前时间tc之前确认的运动速度运动的画面,也即在第一对象与另一对象(即第二对象)处于比较接近的情况下,停止同步逻辑的执行,而按照之前的速度前进,避免发生碰撞。
可选地,在第二客户端播放第一对象在虚拟场景中按照当前时间tc之前确认的运动速度运动的画面之后,在再次获取到第一客户端发送的同步信息的情况下,基于再次获取到的同步信息预估第二目标时间时第一对象在虚拟场景中的预估位置和在预估位置的预估运动速度,即等新的同步信息再到达的时候继续运行同步逻辑。
作为一种可选的实施例,下面以将本申请的技术方案应用在竞技游戏中为例进一步详述本申请的技术方案。
相关技术中的状态同步产生的移动轨迹不符合车辆移动的物理规律,高速运动时车辆碰撞也会导致拉扯现象。本申请的技术方案可解决这两个问题。
客户端和服务器对时,保证各个客户端都使用同一个服务器时间,当操作改变或者一定周期内,客户端(即第一客户端)向服务器发送数据包(即同步信息),数据包含当前车的状态以及操作,服务器转发客户端的数据包到所有其他客户端(即第二客户端)。如图3所示,示出了客户端A(即第一客户端)操作的车(即第一对象)发生状态改变时(拐弯),如何同步到客户端B(即第二客户端)的。
在图3中,客户端A发生右转的时候,状态发生改变,会发送数据包通过服务器中转到客户端B。客户端B收到网络包之前,还是按照直行的状态继续运行,客户端B收到网络包后,根据包内数据进行预测,预测到未来一个时间,然后从当前位置到预测点位置进行插值,到此,客户端A和客户端B两端车辆完成了同步(即插值结束)。下次客户端A改变状态时,再进行一次上述过程。为了使得同步效果较好,可以尽量提高预测的精准性和插值的平滑性。流程图如图4所示:
步骤S401,进入车辆动力模拟游戏。
步骤S402,判断游戏计时是否结束,若是则执行步骤S403,否则执行步骤S404。
步骤S403,结束预测。
步骤S404,判断是否收到同步包(即同步信息),若是则执行步骤S405,否则返回步骤S401。
步骤S405,对收到的同步包进行预处理。
步骤S406,判断是否正在预测,若是则执行步骤S408,否则执行步骤S407。
步骤S407,执行本次预测。
步骤S408,取消上次预测。
为了实现精确的预测,可以预先建立专门的动力计算模型,在模型中创建动力、摩擦力、转向力等参数与速度之间的关系。同步包可包含车辆的位置、速度、旋转数据,还可包含动力计算需要的各种状态以及操作数据,这样另一端收到同步数据包后,就可以用动力计算模拟发包时间点之后的所有状态。这样计算出来的预测状态更加准确,尤其是车辆漂移的时候。
步骤S409,进行插值处理。
由于网络延迟的存在,网络车响应操作会比主端车要滞后,且由于赛车的高速特性,短时间的延迟也能造成较大的位置差异。为了实现平滑插值,预测完成后,可用一种方式去纠正这种不同步状态,如使用平滑插值算法。
假定预测完成时,网络车位置为p1,速度为v1,服务器时间为t1;预测的位置为p2,速度为v2,服务器时间为t2。那么可在t2-t1的时间内将网络车从p1插值到p2,并且速度需要从v1过渡到v2,这样来平滑衔接起来。如图5所示,实线代表网络车的运行轨迹,虚线代表预测的轨迹,箭头代表速度方向。
插值计算公式,给定时间ct,ct介于t1、t2之间,需求是计算出ct时刻网络车所在的位置,而且t1、t2时的位置、速度要衔接上。可用一个二项式去拟合车的运动曲线,那么问题转化为了求解一个二项式函数P(t),令k=t2-t1,t=(ct-t1)/k。这个二项式可以如下表示:
P=a×t3+b×t2+c×t+d
已知t1,t2时刻的位置,得到如下方程:
P(0)=p1;
P(k)=p2;
又已知t1,t2时刻的速度,得到函数导数方程:
P'(0)=v1;
P'(k)=v2;
解这4个方程,即可得到最终公式:
上述描述的是基于插值的方案,能在较短时间内将角色从不同步过渡到同步,同步率较高,同时能够使得状态较短时间内恢复一致,游戏竞技性会较高,为了防止弱网络导致的状态差异太大时容易导致拉扯和重置等现象,同时保证效果平滑的方案,可采用每一帧向预测的状态逼近,较少拉扯和重置。如图6所示,应用此平滑插值得到的车运行轨迹如右侧所示,不同于左侧的非平滑插值。
对于碰撞的处理,高速运动的物体进行同步另一个比较重要的问题是碰撞的处理。由于移动终端的网络环境多样,且存在弱网络和网络抖动的情况,导致在同一时刻网络车状态与主端车存在较大的差异。这时如果网络车发生了车辆之间的碰撞,主端车很可能并没有碰撞,这时会造成更大的不同步。在如图7所示的赛车竞速游戏中,强制让其保持同步会导致严重的拉扯感,故可遵循一个统一的原则:优先视觉表现。按照这个原则,在网络车发生碰撞的时候,立即退出同步逻辑的执行,并交给动力系统按照当前状态继续行驶一段时间,等新的同步包再到达的时候继续运行同步逻辑。同步逻辑会将碰撞导致的状态差异平滑过渡。图8是整个过程的流程图:
步骤S801,执行网络同步逻辑(即图4所示的逻辑)。
步骤S802,判断是否发生或者即将发生碰撞,若是则执行步骤S803,否则执行步骤S801,返回继续执行网络同步逻辑。
步骤S803,进行碰撞处理。
采用本申请的同步方案,能使得竞速等类型的手游在一般网络下同步时,运动轨迹比较自然,同步率较高,整体体验良好。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
根据本发明实施例的另一个方面,还提供了一种用于实施上述运动状态的同步方法的运动状态的同步装置。图9是根据本发明实施例的一种可选的运动状态的同步装置的示意图,如图9所示,该装置可以包括:
获取单元901,用于获取第一客户端的同步信息,其中,同步信息用于指示虚拟场景中被第一客户端控制的第一对象的运动速度发生变化;
预估单元903,用于基于同步信息确定第一目标时间时第一对象在虚拟场景中的预估位置和在预估位置的预估运动速度;
同步单元905,用于在时间到达第一目标时间的情况下,在第二客户端上显示位于预估位置的第一对象按照预估运动速度运动的图像,其中,在获取到同步信息之前第一对象在第二客户端显示的虚拟场景中的运动速度与在第一客户端显示的虚拟场景中发生变化前的运动速度相同。
需要说明的是,该实施例中的获取单元901可以用于执行本申请实施例中的步骤S202,该实施例中的预估单元903可以用于执行本申请实施例中的步骤S204,该实施例中的同步单元905可以用于执行本申请实施例中的步骤S206。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
通过上述模块,第二客户端获取到第一客户端的同步信息时,基于同步信息预估得到第一目标时间时第一对象在虚拟场景中的预估位置和在预估位置的预估运动速度;在时间到达第一目标时间的情况下,在第二客户端上与第一客户端同步显示位于预估位置的第一对象按照预估运动速度运动的图像,由于是经过一段时间的过渡才使得第一对象在第二客户端和第一客户端上同步显示,从而使得第一对象的运动轨迹不存在拉扯而存在过渡曲线,可以解决相关技术中的移动轨迹与物体移动的物理规律匹配度较差的技术问题。
可选地,同步单元还可用于:在基于同步信息确定第一目标时间时第一对象在虚拟场景中的预估位置和在预估位置的预估运动速度之后,在时间位于初始时间与第一目标时间之间的情况下,在第二客户端上播放第一对象从初始位置移动至预估位置的画面,其中,初始时间为第二客户端获取到同步信息时的时间,初始位置为第二客户端获取到同步信息时第一对象在第二客户端显示的虚拟场景中的位置。
可选地,同步单元可包括:确定模块,用于在当前时间ct为位于初始时间t1与第一目标时间t2之间的情况下,根据当前时间ct、初始时间t1、第一目标时间t2、初始位置p1、预估位置p2、初始运动速度v1以及预估运动速度v2确定当前时间ct时第一对象在第二客户端显示的虚拟场景中的位置pt和运动速度vt,其中,初始运动速度为第二客户端获取到同步信息时第一对象在第二客户端显示的虚拟场景中的运动速度;同步模块,用于在第二客户端上播放当前时间ct时位于位置pt的第一对象按照运动速度vt运动的图像。
可选地,确定模块还可用于:将第一参数、第二参数、第三参数以及第一位置的和作为位置pt,其中,第一参数为第一乘积和第二乘积的差值、时间间隔t的立方以及参数k的立方的倒数四者之间的乘积,参数k为第一目标时间t2与初始时间t1之间的差值,时间间隔t为当前时间ct与初始时间t1之间的间隔,第一乘积为初始运动速度v1和预估运动速度v2之间的速度差值与参数k之间的乘积,第二乘积为2与第四参数之间的乘积,第四参数为预估位置p2和初始位置p1之间的差值减去初始运动速度v1与参数k之间的乘积,第二参数为第三乘积和第一乘积的差值、时间间隔t的平方以及参数k的平方的倒数之间的乘积,第三乘积3与第四参数之间的乘积,第三参数为初始运动速度与时间间隔t之间的乘积;并,将第一参数与时间间隔之间的比值的3倍、第二参数与时间间隔之间的比值的2倍以及初始运动速度v1三者之和作为运动速度vt。
可选地,同步单元还可用于在第二客户端上播放第一对象从初始位置移动至预估位置的画面的过程中,在第一对象与第二对象之间的间隔距离小于第一阈值的情况下,停止执行步骤根据当前时间ct、初始时间t1、第一目标时间t2、初始位置p1、预估位置p2、初始运动速度v1以及预估运动速度v2确定当前时间ct时第一对象在第二客户端显示的虚拟场景中的位置pt和运动速度vt。
可选地,同步单元还可用于在停止执行步骤根据当前时间ct、初始时间t1、第一目标时间t2、初始位置p1、预估位置p2、初始运动速度v1以及预估运动速度v2确定当前时间ct时第一对象在第二客户端显示的虚拟场景中的位置pt和运动速度vt之后,在第二客户端播放第一对象在虚拟场景中按照当前时间tc之前确认的运动速度运动的画面。
可选地,同步单元还可用于在第二客户端播放第一对象在虚拟场景中按照当前时间tc之前确认的运动速度运动的画面之后,在再次获取到第一客户端发送的同步信息的情况下,基于再次获取到的同步信息预估第二目标时间时第一对象在虚拟场景中的预估位置和在预估位置的预估运动速度。
可选地,确定单元还可用于:获取同步信息所指示的对第一对象的目标操作和第一对象的对象信息;根据目标操作和第一对象的对象信息确定第一目标时间时第一对象在虚拟场景中的预估位置和在预估位置的预估运动速度。
可选地,确定单元还可用于:获取第一客户端发送同步信息的发送时间,其中,第一客户端和第二客户端为提供虚拟场景的竞速应用的客户端;在发送时间与第二客户端的当前时间之间的差值大于第二阈值的情况下,获取同步信息所指示的对第一对象的目标操作和第一对象的对象信息。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
根据本发明实施例的另一个方面,还提供了一种用于实施上述运动状态的同步方法的服务器或终端。
图10是根据本发明实施例的一种终端的结构框图,如图10所示,该终端可以包括:一个或多个(图中仅示出一个)处理器1001、存储器1003、以及传输装置1005,如图10所示,该终端还可以包括输入输出设备1007。
其中,存储器1003可用于存储软件程序以及模块,如本发明实施例中的运动状态的同步方法和装置对应的程序指令/模块,处理器1001通过运行存储在存储器1003内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的运动状态的同步方法。存储器1003可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1003可进一步包括相对于处理器1001远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置1005用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1005包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1005为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器1003用于存储应用程序。
处理器1001可以通过传输装置1005调用存储器1003存储的应用程序,以执行下述步骤:
获取第一客户端的同步信息,其中,同步信息用于指示虚拟场景中被第一客户端控制的第一对象的运动速度发生变化;
基于同步信息确定第一目标时间时第一对象在虚拟场景中的预估位置和在预估位置的预估运动速度;
在时间到达第一目标时间的情况下,在第二客户端上显示位于预估位置的第一对象按照预估运动速度运动的图像,其中,在获取到同步信息之前第一对象在第二客户端显示的虚拟场景中的运动速度与在第一客户端显示的虚拟场景中发生变化前的运动速度相同。
处理器1001还用于执行下述步骤:
在当前时间ct为位于初始时间t1与第一目标时间t2之间的情况下,根据当前时间ct、初始时间t1、第一目标时间t2、初始位置p1、预估位置p2、初始运动速度v1以及预估运动速度v2确定当前时间ct时第一对象在第二客户端显示的虚拟场景中的位置pt和运动速度vt,其中,初始运动速度为第二客户端获取到同步信息时第一对象在第二客户端显示的虚拟场景中的运动速度;
在第二客户端上播放当前时间ct时位于位置pt的第一对象按照运动速度vt运动的图像。
采用本发明实施例,第二客户端获取到第一客户端的同步信息时,基于同步信息预估得到第一目标时间时第一对象在虚拟场景中的预估位置和在预估位置的预估运动速度;在时间到达第一目标时间的情况下,在第二客户端上与第一客户端同步显示位于预估位置的第一对象按照预估运动速度运动的图像,由于是经过一段时间的过渡才使得第一对象在第二客户端和第一客户端上同步显示,从而使得第一对象的运动轨迹不存在拉扯而存在过渡曲线,可以解决相关技术中的移动轨迹与物体移动的物理规律匹配度较差的技术问题。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图10所示的结构仅为示意,终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile InternetDevices,MID)、PAD等终端设备。图10其并不对上述电子装置的结构造成限定。例如,终端还可包括比图10中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图10所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行运动状态的同步方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
获取第一客户端的同步信息,其中,同步信息用于指示虚拟场景中被第一客户端控制的第一对象的运动速度发生变化;
基于同步信息确定第一目标时间时第一对象在虚拟场景中的预估位置和在预估位置的预估运动速度;
在时间到达第一目标时间的情况下,在第二客户端上显示位于预估位置的第一对象按照预估运动速度运动的图像,其中,在获取到同步信息之前第一对象在第二客户端显示的虚拟场景中的运动速度与在第一客户端显示的虚拟场景中发生变化前的运动速度相同。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
在当前时间ct为位于初始时间t1与第一目标时间t2之间的情况下,根据当前时间ct、初始时间t1、第一目标时间t2、初始位置p1、预估位置p2、初始运动速度v1以及预估运动速度v2确定当前时间ct时第一对象在第二客户端显示的虚拟场景中的位置pt和运动速度vt,其中,初始运动速度为第二客户端获取到同步信息时第一对象在第二客户端显示的虚拟场景中的运动速度;
在第二客户端上播放当前时间ct时位于位置pt的第一对象按照运动速度vt运动的图像。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (15)
1.一种运动状态的同步方法,其特征在于,包括:
获取第一客户端的同步信息,其中,所述同步信息用于指示虚拟场景中被所述第一客户端控制的第一对象的运动速度发生变化;
基于所述同步信息确定第一目标时间时所述第一对象在所述虚拟场景中的预估位置和在所述预估位置的预估运动速度;
在时间到达所述第一目标时间的情况下,在第二客户端上显示位于所述预估位置的所述第一对象按照所述预估运动速度运动的图像,其中,在获取到所述同步信息之前所述第一对象在所述第二客户端显示的所述虚拟场景中的运动速度与在所述第一客户端显示的所述虚拟场景中发生变化前的运动速度相同。
2.根据权利要求1所述的方法,其特征在于,在基于所述同步信息确定第一目标时间时所述第一对象在所述虚拟场景中的预估位置和在所述预估位置的预估运动速度之后,所述方法还包括:
在时间位于初始时间与所述第一目标时间之间的情况下,在所述第二客户端上播放所述第一对象从初始位置移动至所述预估位置的画面,其中,所述初始时间为所述第二客户端获取到所述同步信息时的时间,所述初始位置为所述第二客户端获取到所述同步信息时所述第一对象在所述第二客户端显示的所述虚拟场景中的位置。
3.根据权利要求2所述的方法,其特征在于,在时间位于初始时间与所述第一目标时间之间的情况下,在所述第二客户端上播放所述第一对象从初始位置移动至所述预估位置的画面包括:
在当前时间ct为位于所述初始时间t1与所述第一目标时间t2之间的情况下,根据所述当前时间ct、所述初始时间t1、所述第一目标时间t2、所述初始位置p1、所述预估位置p2、初始运动速度v1以及所述预估运动速度v2确定当前时间ct时所述第一对象在所述第二客户端显示的所述虚拟场景中的位置pt和运动速度vt,其中,所述初始运动速度为所述第二客户端获取到所述同步信息时所述第一对象在所述第二客户端显示的所述虚拟场景中的运动速度;
在所述第二客户端上播放当前时间ct时位于位置pt的所述第一对象按照运动速度vt运动的图像。
4.根据权利要求3所述的方法,其特征在于,根据所述当前时间ct、所述初始时间t1、所述第一目标时间t2、所述初始位置p1、所述预估位置p2、初始运动速度v1以及所述预估运动速度v2确定当前时间ct时所述第一对象在所述第二客户端显示的所述虚拟场景中的位置pt和运动速度vt包括:
将第一参数、第二参数、第三参数以及第一位置的和作为位置pt,其中,所述第一参数为第一乘积和第二乘积的差值、时间间隔t的立方以及参数k的立方的倒数四者之间的乘积,参数k为所述第一目标时间t2与所述初始时间t1之间的差值,时间间隔t为当前时间ct与所述初始时间t1之间的间隔,所述第一乘积为所述初始运动速度v1和所述预估运动速度v2之间的速度差值与参数k之间的乘积,所述第二乘积为2与第四参数之间的乘积,所述第四参数为所述预估位置p2和所述初始位置p1之间的差值减去所述初始运动速度v1与参数k之间的乘积,所述第二参数为第三乘积和所述第一乘积的差值、时间间隔t的平方以及参数k的平方的倒数之间的乘积,所述第三乘积3与所述第四参数之间的乘积,所述第三参数为所述初始运动速度与时间间隔t之间的乘积;并,
将所述第一参数与时间间隔之间的比值的3倍、所述第二参数与时间间隔之间的比值的2倍以及初始运动速度v1三者之和作为运动速度vt。
5.根据权利要求3所述的方法,其特征在于,在所述第二客户端上播放所述第一对象从初始位置移动至所述预估位置的画面的过程中,所述方法还包括:
在所述第一对象与第二对象之间的间隔距离小于第一阈值的情况下,停止执行步骤根据所述当前时间ct、所述初始时间t1、所述第一目标时间t2、所述初始位置p1、所述预估位置p2、初始运动速度v1以及所述预估运动速度v2确定当前时间ct时所述第一对象在所述第二客户端显示的所述虚拟场景中的位置pt和运动速度vt。
6.根据权利要求5所述的方法,其特征在于,在停止执行步骤根据所述当前时间ct、所述初始时间t1、所述第一目标时间t2、所述初始位置p1、所述预估位置p2、初始运动速度v1以及所述预估运动速度v2确定当前时间ct时所述第一对象在所述第二客户端显示的所述虚拟场景中的位置pt和运动速度vt之后,所述方法还包括:
在所述第二客户端播放所述第一对象在所述虚拟场景中按照当前时间tc之前确认的运动速度运动的画面。
7.根据权利要求6所述的方法,其特征在于,在所述第二客户端播放所述第一对象在所述虚拟场景中按照当前时间tc之前确认的运动速度运动的画面之后,所述方法还包括:
在再次获取到所述第一客户端发送的同步信息的情况下,基于再次获取到的同步信息预估第二目标时间时所述第一对象在所述虚拟场景中的预估位置和在所述预估位置的预估运动速度。
8.根据权利要求1至6中任意一项所述的方法,其特征在于,基于所述同步信息确定第一目标时间时所述第一对象在所述虚拟场景中的预估位置和在所述预估位置的预估运动速度包括:
获取所述同步信息所指示的对所述第一对象的目标操作和所述第一对象的对象信息;
根据所述目标操作和所述第一对象的对象信息确定所述第一目标时间时所述第一对象在所述虚拟场景中的预估位置和在所述预估位置的预估运动速度。
9.根据权利要求8所述的方法,其特征在于,获取所述同步信息所指示的对所述第一对象的目标操作和所述第一对象的对象信息包括:
获取所述第一客户端发送所述同步信息的发送时间,其中,所述第一客户端和所述第二客户端为提供所述虚拟场景的竞速应用的客户端;
在所述发送时间与所述第二客户端的当前时间之间的差值大于第二阈值的情况下,获取所述同步信息所指示的对所述第一对象的目标操作和所述第一对象的对象信息。
10.一种运动状态的同步装置,其特征在于,包括:
获取单元,用于获取第一客户端的同步信息,其中,所述同步信息用于指示虚拟场景中被所述第一客户端控制的第一对象的运动速度发生变化;
预估单元,用于基于所述同步信息确定第一目标时间时所述第一对象在所述虚拟场景中的预估位置和在所述预估位置的预估运动速度;
同步单元,用于在时间到达所述第一目标时间的情况下,在第二客户端上显示位于所述预估位置的所述第一对象按照所述预估运动速度运动的图像,其中,在获取到所述同步信息之前所述第一对象在所述第二客户端显示的所述虚拟场景中的运动速度与在所述第一客户端显示的所述虚拟场景中发生变化前的运动速度相同。
11.根据权利要求10所述的装置,其特征在于,所述同步单元还用于:
在基于所述同步信息确定第一目标时间时所述第一对象在所述虚拟场景中的预估位置和在所述预估位置的预估运动速度之后,在时间位于初始时间与所述第一目标时间之间的情况下,在所述第二客户端上播放所述第一对象从初始位置移动至所述预估位置的画面,其中,所述初始时间为所述第二客户端获取到所述同步信息时的时间,所述初始位置为所述第二客户端获取到所述同步信息时所述第一对象在所述第二客户端显示的所述虚拟场景中的位置。
12.根据权利要求11所述的装置,其特征在于,所述同步单元包括:
确定模块,用于在当前时间ct为位于所述初始时间t1与所述第一目标时间t2之间的情况下,根据所述当前时间ct、所述初始时间t1、所述第一目标时间t2、所述初始位置p1、所述预估位置p2、初始运动速度v1以及所述预估运动速度v2确定当前时间ct时所述第一对象在所述第二客户端显示的所述虚拟场景中的位置pt和运动速度vt,其中,所述初始运动速度为所述第二客户端获取到所述同步信息时所述第一对象在所述第二客户端显示的所述虚拟场景中的运动速度;
同步模块,用于在所述第二客户端上播放当前时间ct时位于位置pt的所述第一对象按照运动速度vt运动的图像。
13.根据权利要求12所述的装置,其特征在于,所述确定模块还用于:
将第一参数、第二参数、第三参数以及第一位置的和作为位置pt,其中,所述第一参数为第一乘积和第二乘积的差值、时间间隔t的立方以及参数k的立方的倒数四者之间的乘积,参数k为所述第一目标时间t2与所述初始时间t1之间的差值,时间间隔t为当前时间ct与所述初始时间t1之间的间隔,所述第一乘积为所述初始运动速度v1和所述预估运动速度v2之间的速度差值与参数k之间的乘积,所述第二乘积为2与第四参数之间的乘积,所述第四参数为所述预估位置p2和所述初始位置p1之间的差值减去所述初始运动速度v1与参数k之间的乘积,所述第二参数为第三乘积和所述第一乘积的差值、时间间隔t的平方以及参数k的平方的倒数之间的乘积,所述第三乘积3与所述第四参数之间的乘积,所述第三参数为所述初始运动速度与时间间隔t之间的乘积;并,
将所述第一参数与时间间隔之间的比值的3倍、所述第二参数与时间间隔之间的比值的2倍以及初始运动速度v1三者之和作为运动速度vt。
14.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至9任一项中所述的方法。
15.一种电子装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器通过所述计算机程序执行上述权利要求1至9任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910147619.8A CN109847361B (zh) | 2019-02-27 | 2019-02-27 | 运动状态的同步方法和装置、存储介质、电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910147619.8A CN109847361B (zh) | 2019-02-27 | 2019-02-27 | 运动状态的同步方法和装置、存储介质、电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109847361A true CN109847361A (zh) | 2019-06-07 |
CN109847361B CN109847361B (zh) | 2020-11-10 |
Family
ID=66899318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910147619.8A Active CN109847361B (zh) | 2019-02-27 | 2019-02-27 | 运动状态的同步方法和装置、存储介质、电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109847361B (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110404270A (zh) * | 2019-07-12 | 2019-11-05 | 武汉市龙五物联网络科技有限公司 | 基于智能跑步芯片的虚拟游戏场景应用方法 |
CN110830521A (zh) * | 2020-01-13 | 2020-02-21 | 南昌市小核桃科技有限公司 | Vr多人同屏数据同步处理方法及装置 |
CN110855861A (zh) * | 2019-10-16 | 2020-02-28 | 建荣半导体(深圳)有限公司 | 一种儿童相机的联机游戏方法、装置和儿童相机 |
CN111084989A (zh) * | 2019-12-25 | 2020-05-01 | 网易(杭州)网络有限公司 | 游戏信息的更新方法和装置 |
CN111265864A (zh) * | 2020-01-19 | 2020-06-12 | 腾讯科技(深圳)有限公司 | 信息显示方法、装置、存储介质以及电子装置 |
CN111389004A (zh) * | 2020-03-25 | 2020-07-10 | 网易(杭州)网络有限公司 | 虚拟角色的控制方法、存储介质及处理器 |
CN111589107A (zh) * | 2020-05-14 | 2020-08-28 | 北京代码乾坤科技有限公司 | 虚拟模型的行为预测方法和装置 |
CN112381954A (zh) * | 2020-11-11 | 2021-02-19 | 郑州捷安高科股份有限公司 | 一种动态模型显示方法、装置及设备 |
CN112402947A (zh) * | 2020-11-20 | 2021-02-26 | 上海莉莉丝网络科技有限公司 | 游戏对象控制系统、方法及计算机可读存储介质 |
CN112642143A (zh) * | 2020-12-30 | 2021-04-13 | 明日世界(上海)网络科技有限公司 | 一种实现信息同步的方法、装置、存储介质和电子设备 |
CN112752119A (zh) * | 2019-10-31 | 2021-05-04 | 中兴通讯股份有限公司 | 一种时延误差校正方法、终端设备、服务器及存储介质 |
CN112891932A (zh) * | 2021-03-08 | 2021-06-04 | 腾讯科技(深圳)有限公司 | 控制虚拟角色进行移动的方法、装置、设备及介质 |
WO2021160080A1 (en) * | 2020-02-12 | 2021-08-19 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Evaluating pose data of an augmented reality (ar) application |
CN113365126A (zh) * | 2021-05-24 | 2021-09-07 | 武汉乐谷在线科技有限公司 | 一种游戏数据同步方法及系统、设备、存储介质 |
CN114344892A (zh) * | 2022-01-04 | 2022-04-15 | 腾讯科技(深圳)有限公司 | 一种数据处理方法和相关装置 |
CN114367981A (zh) * | 2021-12-28 | 2022-04-19 | 达闼机器人有限公司 | 对象控制方法、装置、设备和存储介质 |
CN116619394A (zh) * | 2023-07-26 | 2023-08-22 | 佛山智能装备技术研究院 | 工业机器人仿真方法、装置、设备及存储介质 |
US11893702B2 (en) | 2019-07-30 | 2024-02-06 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Virtual object processing method and apparatus, and storage medium and electronic device |
WO2024051372A1 (zh) * | 2022-09-06 | 2024-03-14 | 腾讯科技(深圳)有限公司 | 角色的同步显示方法、装置、设备、存储介质及程序产品 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104954349A (zh) * | 2014-03-31 | 2015-09-30 | 北京畅游天下网络技术有限公司 | 一种2d游戏中客户端的同步方法、装置和系统 |
CN108379832A (zh) * | 2018-01-29 | 2018-08-10 | 珠海金山网络游戏科技有限公司 | 一种游戏同步方法和装置 |
EP3406312A1 (en) * | 2017-05-24 | 2018-11-28 | Nintendo Co., Ltd. | Information processing system, information processing apparatus, information processing program, and information processing method |
JP2019028368A (ja) * | 2017-08-02 | 2019-02-21 | 株式会社ソニー・インタラクティブエンタテインメント | レンダリング装置、ヘッドマウントディスプレイ、画像伝送方法、および画像補正方法 |
-
2019
- 2019-02-27 CN CN201910147619.8A patent/CN109847361B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104954349A (zh) * | 2014-03-31 | 2015-09-30 | 北京畅游天下网络技术有限公司 | 一种2d游戏中客户端的同步方法、装置和系统 |
EP3406312A1 (en) * | 2017-05-24 | 2018-11-28 | Nintendo Co., Ltd. | Information processing system, information processing apparatus, information processing program, and information processing method |
JP2019028368A (ja) * | 2017-08-02 | 2019-02-21 | 株式会社ソニー・インタラクティブエンタテインメント | レンダリング装置、ヘッドマウントディスプレイ、画像伝送方法、および画像補正方法 |
CN108379832A (zh) * | 2018-01-29 | 2018-08-10 | 珠海金山网络游戏科技有限公司 | 一种游戏同步方法和装置 |
Non-Patent Citations (1)
Title |
---|
[美]JOSHUA GLAZER、SANJAY MADHAV著,王晓慧、张国鑫 译: "《网络多人游戏架构与编程》", 31 October 2017 * |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110404270A (zh) * | 2019-07-12 | 2019-11-05 | 武汉市龙五物联网络科技有限公司 | 基于智能跑步芯片的虚拟游戏场景应用方法 |
US11893702B2 (en) | 2019-07-30 | 2024-02-06 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Virtual object processing method and apparatus, and storage medium and electronic device |
CN110855861A (zh) * | 2019-10-16 | 2020-02-28 | 建荣半导体(深圳)有限公司 | 一种儿童相机的联机游戏方法、装置和儿童相机 |
CN110855861B (zh) * | 2019-10-16 | 2021-11-30 | 建荣半导体(深圳)有限公司 | 一种儿童相机的联机游戏方法、装置和儿童相机 |
CN112752119A (zh) * | 2019-10-31 | 2021-05-04 | 中兴通讯股份有限公司 | 一种时延误差校正方法、终端设备、服务器及存储介质 |
CN112752119B (zh) * | 2019-10-31 | 2023-12-01 | 中兴通讯股份有限公司 | 一种时延误差校正方法、终端设备、服务器及存储介质 |
CN111084989A (zh) * | 2019-12-25 | 2020-05-01 | 网易(杭州)网络有限公司 | 游戏信息的更新方法和装置 |
CN110830521A (zh) * | 2020-01-13 | 2020-02-21 | 南昌市小核桃科技有限公司 | Vr多人同屏数据同步处理方法及装置 |
CN111265864A (zh) * | 2020-01-19 | 2020-06-12 | 腾讯科技(深圳)有限公司 | 信息显示方法、装置、存储介质以及电子装置 |
WO2021160080A1 (en) * | 2020-02-12 | 2021-08-19 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Evaluating pose data of an augmented reality (ar) application |
CN111389004B (zh) * | 2020-03-25 | 2023-05-26 | 网易(杭州)网络有限公司 | 虚拟角色的控制方法、存储介质及处理器 |
CN111389004A (zh) * | 2020-03-25 | 2020-07-10 | 网易(杭州)网络有限公司 | 虚拟角色的控制方法、存储介质及处理器 |
CN111589107A (zh) * | 2020-05-14 | 2020-08-28 | 北京代码乾坤科技有限公司 | 虚拟模型的行为预测方法和装置 |
CN112381954A (zh) * | 2020-11-11 | 2021-02-19 | 郑州捷安高科股份有限公司 | 一种动态模型显示方法、装置及设备 |
CN112402947A (zh) * | 2020-11-20 | 2021-02-26 | 上海莉莉丝网络科技有限公司 | 游戏对象控制系统、方法及计算机可读存储介质 |
CN112642143A (zh) * | 2020-12-30 | 2021-04-13 | 明日世界(上海)网络科技有限公司 | 一种实现信息同步的方法、装置、存储介质和电子设备 |
CN112891932A (zh) * | 2021-03-08 | 2021-06-04 | 腾讯科技(深圳)有限公司 | 控制虚拟角色进行移动的方法、装置、设备及介质 |
CN113365126B (zh) * | 2021-05-24 | 2023-02-21 | 武汉乐谷在线科技有限公司 | 一种游戏数据同步方法及系统、设备、存储介质 |
CN113365126A (zh) * | 2021-05-24 | 2021-09-07 | 武汉乐谷在线科技有限公司 | 一种游戏数据同步方法及系统、设备、存储介质 |
CN114367981A (zh) * | 2021-12-28 | 2022-04-19 | 达闼机器人有限公司 | 对象控制方法、装置、设备和存储介质 |
CN114344892B (zh) * | 2022-01-04 | 2023-07-18 | 腾讯科技(深圳)有限公司 | 一种数据处理方法和相关装置 |
CN114344892A (zh) * | 2022-01-04 | 2022-04-15 | 腾讯科技(深圳)有限公司 | 一种数据处理方法和相关装置 |
WO2024051372A1 (zh) * | 2022-09-06 | 2024-03-14 | 腾讯科技(深圳)有限公司 | 角色的同步显示方法、装置、设备、存储介质及程序产品 |
CN116619394A (zh) * | 2023-07-26 | 2023-08-22 | 佛山智能装备技术研究院 | 工业机器人仿真方法、装置、设备及存储介质 |
CN116619394B (zh) * | 2023-07-26 | 2023-09-26 | 佛山智能装备技术研究院 | 工业机器人仿真方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109847361B (zh) | 2020-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109847361A (zh) | 运动状态的同步方法和装置、存储介质、电子装置 | |
JP7169338B2 (ja) | ゲームコンテンツの同期表示に関する方法、装置およびコンピュータプログラム | |
CN105288998B (zh) | 智能硬件的交互方法及装置 | |
Pantel et al. | On the impact of delay on real-time multiplayer games | |
US11771985B2 (en) | Drama engine for dramatizing video gaming | |
WO2018210071A1 (zh) | 场景动画的播放方法、装置及系统 | |
EP2950899B1 (en) | Methods and apparatus for hiding latency in network multiplayer games | |
US7803054B1 (en) | Multi-vehicle cross-network coordination | |
CN108379832A (zh) | 一种游戏同步方法和装置 | |
CN109672918B (zh) | 动画的同步播放方法和装置 | |
CN102933267A (zh) | 交互式混合异步计算机游戏基础结构 | |
CN110170169B (zh) | 信息的展示方法和装置、存储介质、电子装置 | |
Che et al. | Packet-level traffic analysis of online games from the genre characteristics perspective | |
CN109731330A (zh) | 画面的显示方法和装置、存储介质、电子装置 | |
US9560131B2 (en) | Efficient synchronization of behavior trees using network significant nodes | |
CN107744665A (zh) | 游戏帐号的游戏操作的获取方法和装置 | |
CN108310771A (zh) | 任务的执行方法和装置、存储介质、电子装置 | |
CN110124307A (zh) | 操作控制方法和装置、存储介质及电子装置 | |
US11093023B2 (en) | System, method and apparatus of simulating physics in a virtual environment | |
CN109529355A (zh) | 虚拟现实场景的信息同步方法、装置、处理器及服务器 | |
CN101420347B (zh) | 一种将Flash单机双人游戏在双主机上同步运行的方法 | |
US20110072072A1 (en) | System and method for unitized maneuvers for multi-player games | |
Jain et al. | Time-scaled interactive object-driven multi-party VR | |
CN110210788A (zh) | 一种卫星调度方法、装置、设备和计算机存储介质 | |
CN113577761B (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 |