虚拟对象的运动状态修正方法、装置、设备及存储介质制造方法及图纸

技术编号:21634376 阅读:34 留言:0更新日期:2019-07-17 12:54
本申请是关于一种虚拟对象的运动状态修正方法、装置、计算机设备及存储介质,涉及虚拟场景技术领域。该方法包括:接收第二终端发送的同步数据包,根据第一时延以及同步数据包获取虚拟对象在之后的连续N个画面帧中的目标运动状态;获取虚拟对象在N个画面帧中的初始运动状态;根据虚拟对象在N个画面帧中的距离信息,对虚拟对象在N个画面帧中的初始运动状态进行修正,获得虚拟对象在N个画面帧中的实际运动状态。在接收到同步数据包之后,终端根据虚拟对象在之后的多个画面帧中的目标位置和初始位置之间的距离,对其它终端控制的虚拟对象的运动轨迹逐帧进行修正,使得虚拟对象的修正后的移动轨迹更加平滑,从而提高虚拟对象的网络同步效果。

Moving state correction methods, devices, devices and storage media for virtual objects

【技术实现步骤摘要】
虚拟对象的运动状态修正方法、装置、设备及存储介质
本申请涉及虚拟场景
,特别涉及一种虚拟对象的运动状态修正方法、装置、设备及存储介质。
技术介绍
网络同步是指将一个终端控制的虚拟对象的运动状态通过网络同步给另一个终端,使得另一终端能够对该虚拟对象展示相同的动作效果。在相关技术中,两个或者两个以上终端之间可以通过插值方法进行网络同步,以达到虚拟对象运动连贯的效果。比如,控制一个虚拟对象的终端A向终端B发送同步数据包,该同步数据包中包含终端A侧的虚拟对象的位置等状态信息,终端B根据终端A发送的同步数据包更新虚拟对象在终端B中的“影子”,并在下一次接收到终端A发送的同步数据包之前,控制虚拟对象逐帧向其“影子”接近。然而,在上述相关技术中,“影子”的状态两次更新之间,虚拟对象追赶“影子”的过程更趋近于直线运动,从而导致网络同步过程中终端B一侧展示的虚拟对象的运动平滑性较差,影响网络同步的效果。
技术实现思路
本申请实施例提供了一种虚拟对象的运动状态修正方法、装置、设备及存储介质,可以用于解决网络同步过程中虚拟对象的运动平滑性较差的问题,提高网络同步的效果,技术方案如下:一方面,提供了一种虚拟对象的运动状态修正方法,所述方法由第一终端执行,所述方法包括:接收第二终端发送的同步数据包,所述第二终端是控制虚拟场景中的虚拟对象的终端,所述同步数据包中包含所述虚拟对象在所述第二终端侧的运动状态和操作信息,所述操作信息用于指示接收到的控制操作;根据第一时延以及所述同步数据包获取所述虚拟对象在接收到所述同步数据包之后的连续N个画面帧中的目标运动状态,所述目标运动状态包括目标位置,所述第一时延是所述同步数据包从所述第一终端到达所述第二终端的时延;N为大于或者等于2的整数;获取所述虚拟对象在所述N个画面帧中的初始运动状态,所述初始运动状态包括初始位置;根据所述虚拟对象在所述N个画面帧中的距离信息,对所述虚拟对象在所述N个画面帧中的初始运动状态进行修正,获得所述虚拟对象在所述N个画面帧中的实际运动状态,所述距离信息包括所述虚拟对象在对应的画面帧中的初始位置和目标位置之间的距离。一方面,提供了一种虚拟对象的运动状态修正装置,所述装置用于第一终端中,所述装置包括:数据包接收模块,用于接收第二终端发送的同步数据包,所述第二终端是控制虚拟场景中的虚拟对象的终端,所述同步数据包中包含所述虚拟对象在所述第二终端侧的运动状态和操作信息,所述操作信息用于指示接收到的控制操作;目标状态获取模块,用于根据第一时延以及所述同步数据包获取所述虚拟对象在接收到所述同步数据包之后的连续N个画面帧中的目标运动状态,所述目标运动状态包括目标位置,所述第一时延是所述同步数据包从所述第一终端到达所述第二终端的时延;N为大于或者等于2的整数;初始状态获取模块,用于获取所述虚拟对象在所述N个画面帧中的初始运动状态,所述初始运动状态包括初始位置;修正模块,用于根据所述虚拟对象在所述N个画面帧中的距离信息,对所述虚拟对象在所述N个画面帧中的初始运动状态进行修正,获得所述虚拟对象在所述N个画面帧中的实际运动状态,所述距离信息包括所述虚拟对象在对应的画面帧中的初始位置和目标位置之间的距离。可选的,所述目标运动状态还包括目标矢量速度,所述初始运动状态包括初始矢量速度;所述修正模块,用于根据所述虚拟对象在第二画面帧中的初始矢量速度、所述操作信息以及所述虚拟对象在所述第二画面帧中的目标矢量速度进行插值计算,获得所述虚拟对象在所述第二画面帧中的插值矢量速度;所述第二画面帧是所述N个画面帧中的任一画面帧;根据所述虚拟对象在所述第二画面帧中的距离信息对所述插值矢量速度进行修正,获得所述虚拟对象在所述第二画面帧中的实际矢量速度;根据所述虚拟对象在所述第二画面帧中的初始位置以及所述虚拟对象在所述第二画面帧中的实际矢量速度,获取所述虚拟对象在所述第二画面帧中的实际位置。可选的,所述初始状态获取模块,用于将所述虚拟对象在所述第二画面帧的前一画面帧中的实际运动状态,获取为所述虚拟对象在所述第二画面帧中的初始运动状态。可选的,在根据所述虚拟对象在所述第二画面帧中的距离信息对所述插值矢量速度进行修正,获得所述虚拟对象在所述第二画面帧中的实际矢量速度时,所述修正模块,用于,根据所述虚拟对象在第二画面帧中的距离信息获取速度增益,所述速度增益的数值与所述距离信息包含的距离数值成正相关;根据所述插值矢量速度与所述速度增益,获取所述虚拟对象在所述第二画面帧中的实际矢量速度。可选的,在根据所述虚拟对象在所述第二画面帧中的初始位置以及所述虚拟对象在所述第二画面帧中的实际矢量速度,获取所述虚拟对象在所述第二画面帧中的实际位置时,所述修正模块,用于,将从所述虚拟对象在所述第二画面帧中的初始位置开始,按照所述虚拟对象在所述第二画面帧中的实际矢量速度移动帧间隔时长之后的位置获取为所述虚拟对象在所述第二画面帧中的实际位置;所述帧间隔时长是相邻两个画面帧之间的时长。可选的,所述目标状态获取模块,用于,根据所述第一时延获取迭代时间间隔和计算次数M,M为大于或者等于1的整数;根据所述虚拟对象在所述第二终端侧的运动状态和所述操作信息,按照所述迭代时间间隔进行M次计算迭代计算,获得所述虚拟对象在第三画面帧中的目标运动状态;所述第三画面帧是所述N个画面帧中的第一个画面帧;根据所述操作信息以及所述虚拟对象在第三画面帧中的目标运动状态,获取所述虚拟对象在所述第三画面帧之后的N-1个画面帧中的目标运动状态。可选的,在根据所述第一时延获取迭代时间间隔和计算次数M时,所述目标状态获取模块,用于,根据所述第一时延获取所述迭代时间间隔,所述迭代时间间隔与所述第一时延指示的时长成正相关;根据所述第一时延与所述迭代时间间隔,获取所述计算次数M。可选的,在根据所述第一时延获取所述迭代时间间隔时,所述目标状态获取模块,用于,当所述第一时延指示的时长不大于时长阈值时,将第一时间间隔获取为所述迭代时间间隔;当所述第一时延指示的时长大于所述时长阈值时,将第二时间间隔获取为所述迭代时间间隔;所述第一时间间隔小于所述第二时间间隔。可选的,所述实际运动状态包括实际位置,所述装置还包括:展示模块,用于若在第四画面帧中所述虚拟对象在所述虚拟场景中未发生碰撞,则在第五画面帧的展示时刻,根据所述虚拟对象在所述第五画面帧中的实际位置展示所述第五画面帧;其中,所述第四画面帧是所述N个画面帧中除了最后一个画面帧之外的其它任一画面帧,所述第五画面帧是所述第四画面帧的下一画面帧。可选的,所述装置还包括:碰撞状态获取模块,用于若在第四画面帧中所述虚拟对象在所述虚拟场景中发生碰撞,则获取所述虚拟对象在所述第四画面帧中发生碰撞后的运动状态;第一实际状态获取模块,用于根据所述虚拟对象在所述第四画面帧中发生碰撞后的运动状态,获取所述虚拟对象在预设时间段内的各个画面帧中的实际运动状态,所述预设时间段是所述第四画面帧展示之后的预设时间长度时间段。可选的,所述装置还包括:第一实际状态获取模块,用于若在所述预设时间段内接收到所述第二终端发送的新的同步数据包,且所述新的同步数据包是所述虚拟对象在所述第二终端侧发生碰撞触发的同步数据包,则根据第二时延以及所述新的同步数据包获取所述虚拟对象在连续本文档来自技高网...

【技术保护点】
1.一种虚拟对象的运动状态修正方法,其特征在于,所述方法由第一终端执行,所述方法包括:接收第二终端发送的同步数据包,所述第二终端是控制虚拟场景中的虚拟对象的终端,所述同步数据包中包含所述虚拟对象在所述第二终端侧的运动状态和操作信息,所述操作信息用于指示接收到的控制操作;根据第一时延以及所述同步数据包获取所述虚拟对象在接收到所述同步数据包之后的连续N个画面帧中的目标运动状态,所述目标运动状态包括目标位置,所述第一时延是所述同步数据包从所述第一终端到达所述第二终端的时延;N为大于或者等于2的整数;获取所述虚拟对象在所述N个画面帧中的初始运动状态,所述初始运动状态包括初始位置;根据所述虚拟对象在所述N个画面帧中的距离信息,对所述虚拟对象在所述N个画面帧中的初始运动状态进行修正,获得所述虚拟对象在所述N个画面帧中的实际运动状态,所述距离信息包括所述虚拟对象在对应的画面帧中的初始位置和目标位置之间的距离。

【技术特征摘要】
1.一种虚拟对象的运动状态修正方法,其特征在于,所述方法由第一终端执行,所述方法包括:接收第二终端发送的同步数据包,所述第二终端是控制虚拟场景中的虚拟对象的终端,所述同步数据包中包含所述虚拟对象在所述第二终端侧的运动状态和操作信息,所述操作信息用于指示接收到的控制操作;根据第一时延以及所述同步数据包获取所述虚拟对象在接收到所述同步数据包之后的连续N个画面帧中的目标运动状态,所述目标运动状态包括目标位置,所述第一时延是所述同步数据包从所述第一终端到达所述第二终端的时延;N为大于或者等于2的整数;获取所述虚拟对象在所述N个画面帧中的初始运动状态,所述初始运动状态包括初始位置;根据所述虚拟对象在所述N个画面帧中的距离信息,对所述虚拟对象在所述N个画面帧中的初始运动状态进行修正,获得所述虚拟对象在所述N个画面帧中的实际运动状态,所述距离信息包括所述虚拟对象在对应的画面帧中的初始位置和目标位置之间的距离。2.根据权利要求1所述的方法,其特征在于,所述目标运动状态还包括目标矢量速度,所述初始运动状态还包括初始矢量速度;所述根据所述虚拟对象在所述N个画面帧中的距离信息,对所述虚拟对象在所述N个画面帧中的初始运动状态进行修正,获得所述虚拟对象在所述N个画面帧中的实际运动状态,包括:根据所述虚拟对象在第二画面帧中的初始矢量速度、所述操作信息以及所述虚拟对象在所述第二画面帧中的目标矢量速度进行插值计算,获得所述虚拟对象在所述第二画面帧中的插值矢量速度;所述第二画面帧是所述N个画面帧中的任一画面帧;根据所述虚拟对象在所述第二画面帧中的距离信息对所述插值矢量速度进行修正,获得所述虚拟对象在所述第二画面帧中的实际矢量速度;根据所述虚拟对象在所述第二画面帧中的初始位置以及所述虚拟对象在所述第二画面帧中的实际矢量速度,获取所述虚拟对象在所述第二画面帧中的实际位置。3.根据权利要求2所述的方法,其特征在于,所述获取所述虚拟对象在所述N个画面帧中的初始运动状态,包括:将所述虚拟对象在所述第二画面帧的前一画面帧中的实际运动状态,获取为所述虚拟对象在所述第二画面帧中的初始运动状态。4.根据权利要求2所述的方法,其特征在于,所述根据所述虚拟对象在所述第二画面帧中的距离信息对所述插值矢量速度进行修正,获得所述虚拟对象在所述第二画面帧中的实际矢量速度,包括:根据所述虚拟对象在第二画面帧中的距离信息获取速度增益,所述速度增益的数值与所述距离信息包含的距离数值成正相关;根据所述插值矢量速度与所述速度增益,获取所述虚拟对象在所述第二画面帧中的实际矢量速度。5.根据权利要求2所述的方法,其特征在于,所述根据所述虚拟对象在所述第二画面帧中的初始位置以及所述虚拟对象在所述第二画面帧中的实际矢量速度,获取所述虚拟对象在所述第二画面帧中的实际位置,包括:将从所述虚拟对象在所述第二画面帧中的初始位置开始,按照所述虚拟对象在所述第二画面帧中的实际矢量速度移动帧间隔时长之后的位置获取为所述虚拟对象在所述第二画面帧中的实际位置;所述帧间隔时长是相邻两个画面帧之间的时长。6.根据权利要求1至5任一所述的方法,其特征在于,所述根据第一时延以及所述同步数据包获取所述虚拟对象在接收到所述同步数据包之后的连续N个画面帧中的目标运动状态,包括:根据所述第一时延获取迭代时间间隔和计算次数M,M为大于或者等于1的整数;根据所述虚拟对象在所述第二终端侧的运动状态和所述操作信息,按照所述迭代时间间隔进行M次计算迭代计算,获得所述虚拟对象在第三画面帧中的目标运动状态;所述第三画面帧是所述N个画面帧中的第一个画面帧;根据所述操作信息以及所述虚拟对象在第三画面帧中的目标运动状态,获取所述虚拟对象在所述第三画面帧之后的N-1个画面帧中的目标运动状态。7.根据权利要求6所述的方法,其特征在于,所述根据所述第一时延获取迭代时间间隔和...

【专利技术属性】
技术研发人员:管雅君方煜宽蔡洋
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1