CN111265863B - 一种目标对象的位置纠正方法、装置、设备及介质 - Google Patents

一种目标对象的位置纠正方法、装置、设备及介质 Download PDF

Info

Publication number
CN111265863B
CN111265863B CN202010055345.2A CN202010055345A CN111265863B CN 111265863 B CN111265863 B CN 111265863B CN 202010055345 A CN202010055345 A CN 202010055345A CN 111265863 B CN111265863 B CN 111265863B
Authority
CN
China
Prior art keywords
target object
time window
window period
time
acquiring
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.)
Active
Application number
CN202010055345.2A
Other languages
English (en)
Other versions
CN111265863A (zh
Inventor
何欢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010055345.2A priority Critical patent/CN111265863B/zh
Publication of CN111265863A publication Critical patent/CN111265863A/zh
Priority to PCT/CN2020/128242 priority patent/WO2021143324A1/zh
Priority to US17/665,151 priority patent/US20220152507A1/en
Application granted granted Critical
Publication of CN111265863B publication Critical patent/CN111265863B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • A63F13/56Computing 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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/358Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features 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/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/535Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for monitoring, e.g. of user parameters, terminal parameters, application parameters, network parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本实施例所提供的目标对象的位置纠正方法,包括:获取目标对象的更新时间窗口期,更新窗口期为客户端与服务器交互的时间间隔;根据更新时间窗口期、目标对象的运动参数和目标对象的位置偏差中的至少一个获取目标对象的纠正策略,位置偏差为目标对象在服务器中的第一位置与目标对象在客户端中的第二位置的差值;在更新时间窗口期内执行纠正策略,以使目标对象由第二位置运动到第一位置。本申请还一种装置、设备及介质,能够在设定纠正策略时,考虑到了目标对象本身的状态,从而指定了与目标对象状态相匹配的纠正策略,防止位置纠正过程中目标对象发生的拖拽现象,提升了画面的流畅程度。

Description

一种目标对象的位置纠正方法、装置、设备及介质
技术领域
本发明涉及电子技术领域,更具体地说,涉及一种目标对象的位置纠正方法、装置、设备及介质。
背景技术
在网络游戏过程中,例如多人在线战术竞技游戏(Multiplayer Online BattleArena,MOBA)或即时战略游戏(Real-Time Strategy Game,RTS),由多名用户分别通过各自的客户端连接服务器,以实现多人在线的游戏。在此过程中,服务器需要确保游戏中的非玩家的角色(Non-Player-Character,NPC)在各个客户端中保持同步。
然而由于服务器相关信息量比较大,带宽相对较小,无法每帧都把所有位置信息传递给客户端。客户端的NPC在两次服务器信息之间的间隙(即更新时间窗口期),需要由客户端预测性的继续执行移动,以让玩家感觉整个游戏是连贯平滑的。但预测总有出错的时候,服务器可能下一次更新时发生了状况,例如NPC重新寻找了目标或重新寻了路,再加上数据传输也有延时和误差,因此客户端预测位置跟服务器实际位置不同是经常发生的事。当下一次服务器数据传输到时,如果NPC的服务器实际状态与NPC在客户端中的当前状态不一致,客户端就会执行位置纠正操作,让NPC的位置恢复到新的已知的正确位置。
现有技术中,在客户端执行位置纠正操作时,一旦遇上误差大等情况,例如,服务器位置发送间隔比较大时,位置纠正操作会表现出明显的拖拽甚至瞬移的感觉,造成游戏画面显示不流畅,NPC的稳定性下降。非常影响玩家体验。
发明内容
有鉴于此,为解决上述问题,本发明提供的技术方案如下:
一种目标对象的位置纠正方法,包括:
获取目标对象的更新时间窗口期,该更新窗口期为客户端与服务器交互的时间间隔;
根据该更新时间窗口期、该目标对象的运动参数和该目标对象的位置偏差中的至少一个获取该目标对象的纠正策略,该运动参数为用于描述该目标对象的运动状态的参数,该位置偏差为该目标对象在服务器中的第一位置与该目标对象在客户端中的第二位置的差值,该纠正策略用于使该目标对象由该第二位置运动到该第一位置;
在该更新时间窗口期内执行该纠正策略,以使该目标对象由该第二位置运动到该第一位置。
一种目标对象的位置纠正装置,包括:
第一获取单元,该第一获取单元用于获取目标对象的更新时间窗口期,该更新窗口期为客户端与服务器交互的时间间隔;
第二获取单元,该第二获取单元用于根据该第一获取单元获取的该更新时间窗口期、该目标对象的运动参数和该目标对象的位置偏差中的至少一个获取该目标对象的纠正策略,该运动参数为用于描述该目标对象的运动状态的参数,该位置偏差为该目标对象在服务器中的第一位置与该目标对象在客户端中的第二位置的差值,该纠正策略用于使该目标对象由该第二位置运动到该第一位置;
执行单元,该指定单元在该第一获取单元获取的该更新时间窗口期内执行该第二获取单元获取的该纠正策略,以使该目标对象由该第二位置运动到该第一位置。
可选地,该第一获取单元还用于:
确定服务器时间;
该获取目标对象的更新时间窗口期,包括:
根据该服务器时间获取该更新时间窗口期。
可选地,该第一获取单元还用于:
获取由该服务器发送的网络传输时延信息,该网络传输时延信息用于记录该客户端与该服务器之间的网络传输时延;
根据该客户端的本地时间和该网络传输时延信息确定该服务器时间。
可选地,该第二获取单元还用于:
获取该更新时间窗口期内该目标对象需要移动的总位移量;
根据该更新时间窗口期拆分该总位移量,得到第一单位纠正量,其中,该第一单位纠正量为该目标对象在执行该纠正策略时单位时间内的位移量;
该在该更新时间窗口期内执行该纠正策略,包括:
在该更新时间窗口期内的单位时间控制该目标对象移动预设个该第一单位纠正量。
可选地,该目标对象的运动参数包括该目标对象的速度和加速度,该第二获取单元还用于:
获取该目标对象在该更新时间窗口期的开始时刻的第一速度;
获取目标时刻与该开始时刻的第一时间差,该目标时刻为该更新时间窗口期内大于该开始时刻的时刻;
获取该目标对象的最大加速度,该最大加速度为预设值;
根据该第一速度、该第一时间差及该最大加速度获取该目标对象在该更新时间窗口期内的最大位移;
根据该最大位移与该位置偏差的差值,获取该总位移量。
可选地,该第二获取单元还用于:
当该最大位移小于该位置偏差时,以该最大位移为该总位移量,将该位置偏差与该最大位移的差值计入下一个更新时间窗口期内位置纠正的位置偏差;
当该最大位移等于该位置偏差时,以该位置偏差的距离作为该目标单位在该更新时间窗口期内的总位移;
当该最大位移大于该位置偏差时:
以该位置偏差的距离作为该目标单位在该总位移量;
根据该第一速度、该第一时间差和该最大加速度获取该目标对象在该更新时间窗口期的结束时刻的第二速度;
以该第二速度作为该目标对象在下一个更新时间窗口期的开始时刻的速度。
可选地,该目标对象的运动参数包括预设的第一操作,该第二获取单元还用于:
根据第一操作将该目标对象由该第二位置直接移动到该第一位置。
可选地,该目标对象的运动参数包括该目标对象的运动方向,则该第二获取单元还用于::
获取目标对象的目标运动方向和实际运动方向;
根据目标运动方向和实际运动方向获取该目标对象的转动角度;
根据该更新时间窗口期拆分该转动角度,得到第二单位纠正量,其中,该第二单位纠正量为该目标对象在执行该纠正策略时单位时间内的转动量;
该在该更新时间窗口期内执行该纠正策略,包括:
在该更新窗口期内的单位时间控制该目标对象转动预设个该第二单位纠正量。
一种计算机设备所述计算机设备包括:交互装置、输入/输出(I/O)接口、处理器和存储器,该存储器中存储有程序指令;该交互装置用于获取用户输入的操作指令;该处理器用于执行存储器中存储的程序指令,执行如上述任意一项所述的方法。
一种计算机可读存储介质,包括指令,当该指令在计算机设备上运行时,使得该计算机设备执行如上述任意一项所述的方法。
本实施例所提供的目标对象的位置纠正方法,包括:获取目标对象的更新时间窗口期,更新窗口期为客户端与服务器交互的时间间隔;根据更新时间窗口期、目标对象的运动参数和目标对象的位置偏差中的至少一个获取目标对象的纠正策略,运动参数为用于描述目标对象的运动状态的参数,位置偏差为目标对象在服务器中的第一位置与目标对象在客户端中的第二位置的差值,纠正策略用于使目标对象由第二位置运动到第一位置;在更新时间窗口期内执行纠正策略,以使目标对象由第二位置运动到第一位置。在设定纠正策略时,考虑到了目标对象本身的状态,从而指定了与目标对象状态相匹配的纠正策略,防止位置纠正过程中目标对象发生的拖拽现象,提升了画面的流畅程度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请当前技术中位置纠正的示意图;
图2为本申请实施例所提供的目标对象的位置纠正方法一个实施例的流程图;
图3为本申请实施例所提供的目标对象的位置纠正方法的另一个实施例的流程图;
图4为本申请实施例所提供的目标对象的位置纠正方法的另一个实施例的流程图;
图5为本申请实施例所提供的目标对象的位置纠正方法的另一个实施例的流程图;
图6为本申请实施例所提供的目标对象的位置纠正方法的另一个实施例的流程图;
图7为本申请实施例所提供的目标对象的位置纠正方法的另一个实施例的流程图;
图8为本申请实施例所提供的目标对象的位置纠正方法的另一个实施例的流程图;
图9为本申请实施例所提供的目标对象的位置纠正方法的工作场景示意图;
图10为本申请实施例所提供的目标对象的位置纠正方法的工作场景示意图;
图11为本申请实施例所提供的计算机设备的示意图;
图12为本申请实施例所提供的目标对象的位置纠正装置的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在网络游戏过程中,例如多人在线战术竞技游戏(Multiplayer Online BattleArena,MOBA)或即时战略游戏(Real-Time Strategy Game,RTS),由多名用户分别通过各自的客户端连接服务器,以实现多人在线的游戏。在此过程中,服务器需要确保游戏中的非玩家的角色(Non-Player-Character,NPC)在各个客户端中保持同步。
然而由于服务器相关信息量比较大,带宽相对较小,无法每帧都把所有位置信息传递给客户端。客户端的NPC在两次服务器信息之间的间隙(即更新时间窗口期),需要由客户端预测性的继续执行移动,以让玩家感觉整个游戏是连贯平滑的。但预测总有出错的时候,服务器可能下一次更新时发生了状况,例如NPC重新寻找了目标或重新寻了路,再加上数据传输也有延时和误差,因此客户端预测位置跟服务器实际位置不同是经常发生的事。当下一次服务器数据传输到时,如果NPC的服务器实际状态与NPC在客户端中的当前状态不一致,客户端就会执行位置纠正操作,让NPC的位置恢复到新的已知的正确位置。
当前,在客户端执行位置纠正操作时,一旦遇上误差大等情况,例如,服务器位置发送间隔比较大时,位置纠正操作会表现出明显的拖拽甚至瞬移的感觉,造成游戏画面显示不流畅,NPC的稳定性下降。非常影响玩家体验。
例如,当前的位置纠错方案,在客户端每帧更新时,会跟据一个常数比例来逐步缩小误差,直到低于某个阈值后,让误差变为0;这个比例常数一般为70%左右,阈值0.2左右。例如,某一帧客户端某单位的位置在X=10.0处,收到服务器消息说位置应该在X=16.0,那么误差就是6.0。下一次更新时,纠错方案会让误差减小70%,即变为6.0-6.0*70%=1.8,于是客户端单位位置会变为X=16.0-1.8=14.2;再下一帧,误差再次缩小70%,变为0.54,于是位置变为X=15.46;再下一次,误差0.162,位置变为X=15.838;再下一次,由于误差已经小于0.2,故误差清零,位置直接变为X=16。
可见,上例中,普通纠错方案用了4次更新,让误差变为0;如图1所示,NPC101从第一位置102移动到第二位置103的过程中,前几次纠正幅度104较大,后几次纠正幅度105较小;仔细看可以发现有“拉拽”感。如果降低70%这个参数,会减小“拉拽”感,但同时也会增加纠错的帧数,甚至如果再次出现需纠错的信息,误差可能瞬时变得更大。因此,当前的纠错方案很难平滑的表现NPC的位置纠正过程。
为了解决上述问题,本申请实施例提供一种目标对象的位置纠正方法,能够根据更新时间窗口期、目标对象的运动参数和目标对象的位置偏差中的至少一个获取目标对象的纠正策略,通过纠正策略对目标对象的位置执行平滑的纠正,防止目标对象在纠正位置的过程中出现明显的拖拽甚至瞬移,提升了画面的流畅度。为便于理解,以下结合附图,对本申请实施例所提供的方法进行详细说明。
需要说明的是,本申请实施例所提供的方法可以应用于各种不同的领域,例如游戏领域中的多人在线战术竞技游戏(Multiplayer Online Battle Arena,MOBA)、即时战略游戏(Real-Time Strategy Game,RTS)或者第一人称射击类游戏(First-person shootinggame,FPS)等,还可以是其他需要进行帧同步的使用领域,对此本申请实施例并不进行限定。
请参阅图2,如图2所示,本申请实施例所提供的目标对象的位置纠正方法的实施例一包括以下步骤。
201、客户端获取目标对象的更新时间窗口期。
本实施例中,目标对象可以是游戏中的NPC、或者各种道具及背景等,也可以是游戏角色,或者其他应用场景下需要进行帧同步的对象,对此本申请实施例并不进行限定,为便于理解,本实施例后续以目标对象为NPC为例进行说明。更新窗口期为客户端与服务器交互的时间间隔,具体工作过程中,在服务器上,每个目标对象的位置会每隔一段时间同步给客户端。同步间隔不是严格固定的,但总体是稳定的。因此在客户端侧,跟据已有的预估的服务器时间,就可以在收到服务器信息时,统计每个目标对象收到数据的间隔了。
跟据每个单位收到服务器数据的时间间隔,提供每个单位用于纠正误差的更新时间窗口。越远的单位,由于重要性越低,数据发送的时间间隔也就越大,误差也就越大,而提供给客户端用于纠正的更新时间窗口也就越大。
202、客户端根据更新时间窗口期、目标对象的运动参数和目标对象的位置偏差中的至少一个获取目标对象的纠正策略。
本实施例中,运动参数为用于描述目标对象的运动状态的参数,位置偏差为目标对象在服务器中的第一位置与目标对象在客户端中的第二位置的差值,纠正策略用于使目标对象由第二位置运动到第一位置,从而实现目标对象的位置纠正。
203、客户端在更新时间窗口期内执行纠正策略,以使目标对象由第二位置运动到第一位置。
本实施例中,由于纠正策略考虑了更新时间窗口期、运动参数和位置偏差中的至少一个因素,所生成的纠正策略能够根据上述至少一个因素进行调整,从而避免位置更新过程中的拖拽感。
本实施例所提供的目标对象的位置纠正方法,包括:获取目标对象的更新时间窗口期,更新窗口期为客户端与服务器交互的时间间隔;根据更新时间窗口期、目标对象的运动参数和目标对象的位置偏差中的至少一个获取目标对象的纠正策略,运动参数为用于描述目标对象的运动状态的参数,位置偏差为目标对象在服务器中的第一位置与目标对象在客户端中的第二位置的差值,纠正策略用于使目标对象由第二位置运动到第一位置;在更新时间窗口期内执行纠正策略,以使目标对象由第二位置运动到第一位置。在设定纠正策略时,考虑到了目标对象本身的状态,从而指定了与目标对象状态相匹配的纠正策略,防止位置纠正过程中目标对象发生的拖拽现象,提升了画面的流畅程度。
需要说明的是,在游戏过程中,为了保证帧同步,客户端以服务器时间为准来进行游戏,因此客户端需要实时了解服务器的时间,虽然客户端里每过一段时间会跟据数据包的时间戳,来修正服务器和客户端的时间差,但这种方法在网络情况发生变化时,可能导致客户端看到的服务器时间不是连续的,甚至不是递增的,这会对逻辑更新产生影响。本申请实施例所提供的位置纠正方法对预估的服务器时间有较高的要求,必须是连贯并且递增的,这样客户端的更新效果也才能连贯。
对此,本申请实施例所提供的目标对象的位置纠正方法提供了一种实施例,通过平滑计算的方式确定服务器时间,为便于理解,以下结合服务对本种情况进行详细说明。
请参阅图3,如图3所示,本申请实施例所提供的目标对象的位置纠正方法的实施例二包括以下步骤。
301、客户端确定服务器时间。
本实施例中,客户端在确定了服务器时间的基础上,才能进一步执行后续的针对目标对象的位置纠正方法,实现与服务器的帧同步。
可选地,客户端可以通过以下方式来确定服务器时间。
1、客户端获取由服务器发送的网络传输时延信息。
本实施例中,网络传输时延信息用于记录客户端与服务器之间的网络传输时延,可选地,客户端可以通过服务器发送的网络层时间来确定网络传输时延信息,具体工作过程中,由于服务器的网络层会根据传输的时延情况调节网络层时间,因此使得客户端能够通过网络层时间获取到网络传输时延信息。
2、客户端根据客户端的本地时间和网络传输时延确定服务器时间。
本实施例中,客户端根据本地时间和网络传输时延信息,即可确定当前的服务器时间,具体地,可以通过以下代码来实现、
1)、设置最小时间单位minIncreasTime和客户端所期望的服务器时间与网络层时间之间偏差值的容忍度数值diffRangeLimit,具体数值可由用户根据实际需要设定,对此并不进行限定。
2)、客户端获取当前时间距离上一次收到服务器更新安排的间隔时realDeltaTime。
3)、客户端获取服务器发送的网络层时间logicServerTime,网络层时间是服务器根据当前网络时延情况生成的时间,能够反映网络传输时延情况。
4)、根据以下算法,确定理想服务器时间idealServerTime:
idealServerTime=FMath::Clamp(SmoothServerTime’+realDeltaTime,logicServerTime-diffRangeLimit,logicServerTime+diffRangeLimit)
其中,idealServerTime为理想的服务器时间,Clamp()为取值算法,取值区间在logicServerTime-diffRangeLimit和logicServerTime+diffRangeLimit之间,SmoothServerTime’为上一次更新的平滑服务器时间。当SmoothServerTime’+realDeltaTime小于logicServerTime-diffRangeLimit时,idealServerTime=logicServerTime-diffRangeLimit,当SmoothServerTime’+realDeltaTime大于logicServerTime+diffRangeLimit时,idealServerTime=logicServerTime+diffRangeLimit,当SmoothServerTime’+realDeltaTime大于logicServerTime-diffRangeLimit且小于logicServerTime+diffRangeLimit时,idealServerTime=SmoothServerTime’+realDeltaTime。
5)、设定初始平滑率smoothRate。本实施例中,平滑率的初始赋值可以根据实际需要进行调节,本申请实施例并不进行限定。
6)、当服务器平滑时间SmoothServerTime大于网络层时间logicServerTime时,说明当前的平滑服务器时间过快,需要通过执行后续步骤对SmoothServerTime进行调节。
7)、根据初始平滑率smoothRate’、平滑服务器时间SmoothServerTime’和网络层时间logicServerTime,通过以下算法确定最新的实时平滑率:
smoothRate=FMath::Max(smoothRate’*0.25f,smoothRate’-(SmoothServerTime’-logicServerTime)*0.75f);
本实施例中,平滑服务器时间SmoothServerTime是根据平滑率smoothRate得到的,当SmoothServerTime过快时,需要对smoothRate进行调节,从而使得SmoothServerTime回到合理的时间。smoothRate的调节通过取最大值算法Max()在smoothRate’*0.25f和smoothRate-(SmoothServerTime’-logicServerTime)*0.75f之间取一个最大值作为更新后的smoothRate。其中,smoothRate’为上一次客户端与服务器进行更新时所计算的平滑率,由于当前SmoothServerTime过快,说明smoothRate’比较激进,因此乘以0.25使其变小,SmoothServerTime’-logicServerTime为当前平衡服务器时间超过网络层时间的时间差,该时间差乘以0.75起到一个调节的作用,之后用当前平滑率smoothRate’减去调节后的时间差,所得到的结果同样能够减小当前的平滑率。需要说明的是,上述参数0.25和0.75只是一种举例,具体数值并不进行限定,只要两个数值的加和等于1即可。
8)、根据实时平滑率获取最新的平滑服务器时间SmoothServerTime。具体可以通过以下算法来实现。
SmoothServerTime=FMath::Max(SmoothServerTime’+miniIncraeseTime,idealServerTime*SmoothRate+logicServerTime*(1.0f-SmoothRate))
其中,更新后的平衡服务器时间,通过取最大值算法Max()在SmoothServerTime’+miniIncraeseTime和idealServerTime*SmoothRate+logicServerTime*(1.0f-SmoothRate)之间取最大值,其中,SmoothServerTime’+miniIncraeseTime为上一次计算的平滑服务时间加上最小时间单位,即按照原有平滑服务器时间得到的当前平滑服务器时间,idealServerTime*SmoothRate+logicServerTime*(1.0f-SmoothRate)是根据前序步骤计算得到的理想服务器时间idealServerTime乘以最新的平滑率SmoothRate之后,加上网络层时间乘以1减去平滑率之后的乘积,二者之间的最大值,即为当前的平滑服务器时间。
302、根据服务器时间获取更新时间窗口期。
本实施例中,根据上述步骤301中获取到的服务器时间,使得客户端当前的时间与服务器时间之间保持了同步,不会出现客户端时间不连续,甚至是不递增之类的情况,基于该平滑的服务器时间,客户端即可按照上述步骤201所记载的方式,获取更新时间窗口期,相关实现方式可参阅上述步骤201的记载,此处不再赘述。
后续步骤303至304可参阅上述步骤202至203,此处不再赘述。
本实施例中,客户端通过本地时间和网络时间延迟信息,预估服务器时间,从而在客户端本地得到了服务器平滑时间,与服务器时间保持了同步,有效防止客户端由于网络情况发生变化,产生的时间不连续,甚至是时间不递增等情况,确保了后续目标对象的位置纠正方法的顺利进行。
需要说明的是,在纠正上述纠正策略时,为避免图1中所示的位置更新拖拽现象,需要在更新时间窗口期内均匀地移动目标对象,从而实现位置校正过程中,偏离服务器位置的目标对象对服务器位置均匀的追赶。对此,本申请所提供的方法对于纠正策略的实现提供了一种具体的实施方式,为便于理解,以下结合附图对此种情况进行详细说明。
请参阅图4,如图4所示,本申请实施例所提供的目标对象的位置纠正方法的实施例三包括以下步骤。
步骤401至402可参阅上述步骤301至302的记载,此处不再赘述。
403、获取更新时间窗口期内目标对象需要移动的总位移量。
本实施例中,待执行位置纠正的目标单位,需要在更新时间窗口期内由现有位置运动到服务器中的逻辑位置,以实现目标单位的位置纠正,这段位置纠正的位移即为该总位移量。该总位移量可以直接通过上述位置偏差获取,即,目标对象在服务器中的第一位置与目标对象在客户端中的第二位置的差值,即为上述总位移量。
404、根据更新时间窗口期拆分总位移量,得到第一单位纠正量。
本实施例中,第一单位纠正量为目标对象在执行纠正策略时单位时间内的位移量,例如,位置偏差为1米,即当前目标对象在客户端所处的位置,与目标对象在服务器中所处的实际位置相距偏差1米,更新时间窗口期为0.5秒,则将1米拆分为五份,每份为0.2米,即第一单位纠正量为0.2米。
405、在更新窗口期内的单位时间控制目标对象移动预设个第一单位纠正量。
本实施例中,更新时间窗口期内的所有单位时间的总和构成整个更新时间窗口期,在单位时间没控制目标对象移动预设个第一单位纠正量,即可在更新时间窗口期内均匀地完成总位移量的移动,从而实现连贯而流畅的位置纠正。例如,位置偏差为1米,更新时间窗口期为0.5秒,单位时间为0.1秒,在执行纠正策略的过程中,那么每0.1秒误差会平均的减少0.2米,在更新时间窗口期结束时,目标对象由第二位置运动到第一位置,从而使得目标对象能够均匀地纠正位置偏差,不会发生拖拽现象。
本实施例中,通过获取总位移量,并根据更新时间窗口期对总位移量进行拆分,从而得到了第一单位纠正量,在更新时间窗口期内的单位时间执行该第一单位纠正量,从而使得目标对象能够进行连贯且平滑的位置纠正,不会产生拖拽现象。
然而,需要说明的是,上述实施例三所说明的是一种较为理想情况,即按照目标对象的运动状态,正好能够在更新时间窗口期完成整改总位移量的运动,在实际工作过程中,位置偏差的大小不同,目标对象的运动状态也不同,无法保证在更新时间窗口期内能够正好从第一位置到达第二位置,因此,为了保持画面的连贯,获取总位移量时,需要考虑到更新时间窗口期开始时刻,目标对象的运动状态参数,从而根据运动状态参数获取不同的总位移量,以使得最终的纠正策略符合目标对象的运动情况。可选地,目标对象的运动参数可以为以下两种情况:一、目标对象的运动参数包括速度与加速度;二、目标对象的运动参数包含预设的特殊操作,为便于理解,以下结合附图,对此两种情况进行详细说明。
一、目标对象的运动参数包括速度与加速度。
本实施例中,当更新时间窗口期开始时,目标对象具有一定的运动速度和加速度,基于该速度和加速度,目标对象在更新时间窗口期内所运动的路程可能会超过位置偏差的位移量,或者,目标对象使用能够达到的最大速度和加速度,仍然无法在更新时间窗口期内达到位置偏差的位移量,针对这些不同的情况,需要对纠正策略进行不同的调整,包括以下步骤。
请参阅图5,如图5所示,本申请实施例所提供的目标对象的位置纠正方法的实施例四包括以下步骤。
步骤501及502可参阅上述步骤301至302的记载,此处不再赘述。
503、获取目标对象在更新时间窗口期的开始时刻的第一速度。
本实施例中,获取第一速度为目标对象在更新时间窗口期内的初速度V0
504、获取目标时刻与开始时刻的第一时间差。
本实施例中,目标时刻为更新时间窗口期内大于开始时刻的时刻,例如,更新时间窗口期的开始时刻为t0,目标时刻为t1,则第一时间差t=t1-t0
505、获取目标对象的最大加速度。
本实施例中,最大加速度为预设值,在每个游戏中,都会对游戏内目标对象的最大加速度进行预设,例如,游戏内汽车的加速度要大于游戏角色的加速度,每个NPC的加速度都有一个预设的上限,该上限即为目标对象的最大加速度a,对于该预设值可以根据实际需要设定,对此本申请实施例并不进行限定。
506、根据第一速度、第一时间差及最大加速度获取目标对象在更新时间窗口期内的最大位移。
本实施例中,最大位移S1的具体计算方式为:
Figure BDA0002372604170000141
其中,V0为上述第一速度,t为上述第一时间差,a为上述最大加速度。
从而根据上述算法,可以得出在更新时间窗口期内的任意一个时间点,目标对象所能够达到的最大位移,当目标时刻为更新时间窗口期的结束时刻时,计算得到的最大位移即为目标对象在更新时间窗口期所能达到的最大位移。
507、根据最大位移与所述位置偏差的差值,获取总位移量。
本实施例中,根据最大位移与位置偏差的差值,确定总位移量,具体包括以下几种情况。
1)、最大位移等于位置偏差。
本实施例中,最大位移等于位置偏差,说在更新时间窗口期内,目标对象正好能够实现位置纠正,此时直接执行上述实施例三的方法即可,此处不再赘述。
2)、最大位移小于位置偏差。
本实施例中,当最大位移小于位置偏差时,说明即使目标对象以最大的加速度运动,仍然无法在更新时间窗口期内由运动到预定位置,此时,需要将最大位移设为总位移量,此时总位移量与位置偏差之间还有一个差值S2,则将该S2计入下一个更新时间窗口期内位置纠正的位置偏差,留待下一轮位置纠正时去解决,由于本轮中目标对象已经采用最大加速度运动,在下一轮更新开始时,目标对象会具有较大的初速度,因此本轮更新未能完成的位置偏差,在下一轮位置纠正中很有可能可以完成。
3)、最大位移大于位置偏差。
本实施例中,当最大位移大于位置偏差,应将位置偏差设置为总位移量,否则,若以最大位移作为总位移量,在更新时间窗口期内目标对象将会运动超过目标位置,此时当目标对象克服位置偏差运动到预定位置时,即完成了位置纠正,此时需要根据当前的加速度更新目标对象的速度,以防止目标对象在下一轮更新中速度发生突变,导致拖拽现象的发生,更新目标对象速度的算法为:
vt=vo+at
其中,vt为目标对象更新后的速度,v0为更新前的速度,a为最大加速度,t为更新时间窗口期的时长。
后续步骤508至509可参阅上述步骤404至405,此处不再赘述。
本实施例中,通过目标对象的速度和加速度,确定目标对象在更新时间窗口期内所能达到的最大位移,进而根据最大位移和位置偏差的大小关系确定更新时间窗口期内目标对象的总位移量,最后根据总位移量配置目标对象的位置纠正策略,从而能够根据目标对象的实际运动情况,合理地配置位置纠正策略,使得目标对象的位置纠正连贯、平滑。
二、目标对象的运动参数包含预设的特殊操作。
本实施例中,目标对象,例如游戏中的NPC,除了按照常规的运动方式纠正到目标位置外,还可以包含特殊操作,例如该特殊操作为“闪现”,即游戏规则中根据该特殊操作,允许NPC由第一点不经过任何路程直接到达第二点,此时,根据这种特殊操作,可以相应地在位置纠正过程中之间对NPC执行闪现,以使得位置纠正策略与NPC的实际运动状态相匹配。为便于理解,以下结合附图进行详细说明。
请参阅图6,如图6所示,本申请实施例所提供的目标对象的位置纠正方法的实施例五包括以下步骤。
步骤601及602可参阅上述步骤301至302的记载,此处不再赘述。
603、根据第一操作将目标对象由第二位置直接移动到第一位置。
本实施例中,第一操作即为上述特殊操作,例如为“闪现”操作,第二位置即目标对象在客户端的位置,第一位置为目标对象在服务器中的位置,根据第一操作,将目标对象从第二位置“闪现”到第一位置,以使得位置纠正策略与目标对象在游戏中的实际运动状态相匹配。
可选地,第一操作还可以是其他的特殊操作,例如使得目标对象具备超过加速度阈值的特殊加速度,则此时可以根据该特殊加速度执行上述实施例四,对此本申请实施例并不进行限定。
本实施例中,结合游戏中设定的游戏规则,获取更新时间窗口期开始时目标对象的特殊操作,并且根据特殊操作情况对目标对象执行位置纠正策略,使得位置纠正策略与目标对象在游戏中的实际运动状态相匹配,保证特殊操作情况下目标对象位置纠正的连贯性。
需要说明的是,在对目标对象执行位置纠正的过程中,不仅仅需要纠正目标对象的位置,还需要纠正目标对象所朝向的方向,例如当前客户端中NPC面向游戏地图中的东方,而在实际服务器中,NPC的方向位面向西方,此时,在进行纠正时,需要NPC在更新时间窗口期内平滑地转动,才能保证游戏中NPC显示的连贯性,否则,若NPC瞬间从东方转动到西方,会造成游戏画面的不连贯。对此,本申请实施例提供一种解决方案,为便于理解,以下结合附图进行详细说明。
请参阅图7,如图7所示,本申请实施例所提供的目标对象的位置纠正方法的实施例六包括以下步骤。
步骤701及702可参阅上述步骤301至302的记载,此处不再赘述。
703、获取目标对象的目标运动方向和实际运动方向。
本实施例中,目标运动方向为服务器中目标对象朝向的方向,实际运动方向为客户端中目标对象当前朝向的方向。
704、根据目标运动方向和实际运动方向获取目标对象的转动角度。
本实施例中,目标运动方向和实际运动方向的差值即为位置纠正过程中目标对象需要转动的转动角度。
705、根据更新时间窗口期拆分转动角度,得到第二单位纠正量。
本实施例中,第二单位纠正量为目标对象在执行纠正策略时单位时间内的转动量,例如转动角度为5°,更新时间窗口期为0.5秒,则第二单位纠正量为1°。
706、在更新窗口期内的单位时间控制目标对象转动预设个第二单位纠正量。
更新时间窗口期内的所有单位时间的总和构成整个更新时间窗口期,在单位时间没控制目标对象转动预设个第二单位纠正量,即可在更新时间窗口期内均匀地完成总位移量的旋转,从而实现连贯而流畅的角度纠正。例如,转动角度为5°,更新时间窗口期为0.5秒,则第二单位纠正量为1°在更新窗口期内,目标对象由实际运动方向向着目标运动方向每0.1秒转动1°,从而实现了目标对象的平滑转动,防止目标对象在角度纠正的过程中瞬间转动,导致游戏画面显示不连贯。
需要说明的是,上述实施例六所提供的角度纠正方案可以和前述的位置纠正方案同步进行,以同时进行目标对象位置和角度的纠正。
基于上述描述,以下以游戏场景下,目标对象为游戏NPC的使用场景为例,对本申请实施例所提供的目标对象的位置纠正方法进行详细说明。
请参阅图8,如图8所示,本申请实施例所提供的目标对象的位置纠正方法的实施例七包括以下步骤。
801、客户端确定服务器时间。
本实施例中,客户端确定服务器时间的具体实现方式可参阅上述实施例二,此处不再赘述。
802、客户端根据与服务器之间消息收发的间隔获取更新时间窗口期。
本实施例中,更新时间窗口期的具体获取方式可参阅上述实施例一或实施例二的记载,此处不再赘述。
803、在更新时间窗口期内对目标对象执行纠正策略。
本实施例中,在更新时间窗口期内对目标对象执行纠正策略,以实现目标对象平滑线性的纠正,使得纠正画面显示连贯,具体地,纠正策略可以包括目标对象速度、加速度的平滑,以及转向的平滑,其中,对于速度、加速度的平衡步骤可参阅上述实施例三至实施例五,关于转向的平滑可参阅上述实施例六,此处不再赘述。
如图9所示,本申请实施例所提供的目标对象的位置纠正方法,能够对游戏中的多个NPC进行位置纠正,在图9中,NPC901的数量为多个,其中,图9中的每个NPC都有一个自己的ID,从而与其他NPC相区分,每个NPC分别执行本申请实施例所提供的目标对象的位置纠正方法,从而各自实现平滑连贯的位置纠正,确保了整个游戏的画面的流畅性。
如图10所示,在大型游戏中,支持大量的NPC1001同时运行,因此网络复制压力比较大,很容易出现数据发送不及时的情况,尤其是相对玩家角色1002较远处的NPC10011,更新的频率更低,远处的怪物由于数据发送低优先级,而寻路逻辑却经常触发,因此经常造成客户端预测错误,因为下一次服务器发送来的数据往往是新的路径上的数据,所以会发现比较频繁的拖拽现象,远处的NPC行为卡顿拖拽现象更加严重。通过本申请实施例所提供的位置纠正方法,通过上述任意一种实施例所提供的控制逻辑下,即使远处的NPC100111,也能跟近处的NPC一样流畅的移动,没有拖拽的现象,速度总是很平滑。确保了游戏画面的流畅性。
本实施例所提供的目标对象的位置纠正方法,包括:获取目标对象的更新时间窗口期,更新窗口期为客户端与服务器交互的时间间隔;根据更新时间窗口期、目标对象的运动参数和目标对象的位置偏差中的至少一个获取目标对象的纠正策略,运动参数为用于描述目标对象的运动状态的参数,位置偏差为目标对象在服务器中的第一位置与目标对象在客户端中的第二位置的差值,纠正策略用于使目标对象由第二位置运动到第一位置;在更新时间窗口期内执行纠正策略,以使目标对象由第二位置运动到第一位置。在设定纠正策略时,考虑到了目标对象本身的状态,从而指定了与目标对象状态相匹配的纠正策略,防止位置纠正过程中目标对象发生的拖拽现象,提升了画面的流畅程度。
上述对本申请实施例提供的方案进行了介绍。可以理解的是,计算机设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
从硬件结构上来描述,上述方法可以由一个实体设备实现,也可以由多个实体设备共同实现,还可以是一个实体设备内的一个逻辑功能模块,本申请实施例对此不作具体限定。
例如,上述方法均可以通过图11中的计算机设备来实现。图11为本申请实施例提供的计算机设备的硬件结构示意图。该计算机设备包括至少一个处理器1101,通信线路1102,存储器1103以及至少一个通信接口1104。
处理器1101可以是一个通用中央处理器(central processing unit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,服务器IC),或一个或多个用于控制本申请方案程序执行的集成电路。
通信线路1102可包括一通路,在上述组件之间传送信息。
通信接口1104,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(wireless local areanetworks,WLAN)等。
存储器1103可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyer服务器able programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信线路1102与处理器相连接。存储器也可以和处理器集成在一起。
其中,存储器1103用于存储执行本申请方案的计算机执行指令,并由处理器1101来控制执行。处理器1101用于执行存储器1103中存储的计算机执行指令,从而实现本申请上述实施例提供的方法。
可选的,本申请实施例中的计算机执行指令也可以称之为应用程序代码,本申请实施例对此不作具体限定。
在具体实现中,作为一种实施例,处理器1101可以包括一个或多个CPU,例如图11中的CPU1和CPU2。
在具体实现中,作为一种实施例,计算机设备可以包括多个处理器,例如图11中的处理器1101和处理器1107。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,计算机设备还可以包括输出设备1105和输入设备1106。输出设备1105和处理器1101通信,可以以多种方式来显示信息。例如,输出设备1105可以是液晶显示器(liquid crystal display,LCD),发光二级管(light emittingdiode,LED)显示设备,阴极射线管(cathode ray tube,CRT)显示设备,或投影仪(projector)等。输入设备1106和处理器1101通信,可以以多种方式接收用户的输入。例如,输入设备1106可以是鼠标、键盘、触摸屏设备或传感设备等。
上述的计算机设备可以是一个通用设备或者是一个专用设备。在具体实现中,计算机设备可以是台式机、便携式电脑、网络服务器、掌上电脑(personal digitalassistant,PDA)、移动手机、平板电脑、无线终端设备、嵌入式设备或有图11中类似结构的设备。本申请实施例不限定计算机设备的类型。
本申请实施例可以根据上述方法示例对存储设备进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
比如,以采用集成的方式划分各个功能单元的情况下,图12示出了一种目标对象的位置纠正装置的示意图。
如图12所示,本申请实施例提供的目标对象的位置纠正装置,包括:
第一获取单元1201,该第一获取单元1201用于获取目标对象的更新时间窗口期,该更新窗口期为客户端与服务器交互的时间间隔;
第二获取单元1202,该第二获取单元1202用于根据该第一获取单元1201获取的该更新时间窗口期、该目标对象的运动参数和该目标对象的位置偏差中的至少一个获取该目标对象的纠正策略,该运动参数为用于描述该目标对象的运动状态的参数,该位置偏差为该目标对象在服务器中的第一位置与该目标对象在客户端中的第二位置的差值,该纠正策略用于使该目标对象由该第二位置运动到该第一位置;
执行单元1203,该指定单元在该第一获取单元1201获取的该更新时间窗口期内执行该第二获取单元1202获取的该纠正策略,以使该目标对象由该第二位置运动到该第一位置。
可选地,该第一获取单元1201还用于:
确定服务器时间;
该第二获取单元1202还用于:
根据该服务器时间获取该更新时间窗口期。
可选地,该第一获取单元1201还用于:
获取由该服务器发送的网络传输时延信息,该网络传输时延信息用于记录该客户端与该服务器之间的网络传输时延;
根据该客户端的本地时间和该网络传输时延信息确定该服务器时间。
可选地,该第二获取单元1202还用于:
获取该更新时间窗口期内该目标对象需要移动的总位移量;
根据该更新时间窗口期拆分该总位移量,得到第一单位纠正量,其中,该第一单位纠正量为该目标对象在执行该纠正策略时单位时间内的位移量;
该在该更新时间窗口期内执行该纠正策略,包括:
在该更新时间窗口期内的单位时间控制该目标对象移动预设个该第一单位纠正量。
可选地,该目标对象的运动参数包括该目标对象的速度和加速度,该第二获取单元1202还用于:
获取该目标对象在该更新时间窗口期的开始时刻的第一速度;
获取目标时刻与该开始时刻的第一时间差,该目标时刻为该更新时间窗口期内大于该开始时刻的时刻;
获取该目标对象的最大加速度,该最大加速度为预设值;
根据该第一速度、该第一时间差及该最大加速度获取该目标对象在该更新时间窗口期内的最大位移;
根据该最大位移与该位置偏差的差值,获取该总位移量。
可选地,该第二获取单元1202还用于:
当该最大位移小于该位置偏差时,以该最大位移为该总位移量,将该位置偏差与该最大位移的差值计入下一个更新时间窗口期内位置纠正的位置偏差;
当该最大位移等于该位置偏差时,以该位置偏差的距离作为该目标单位在该更新时间窗口期内的总位移;
当该最大位移大于该位置偏差时:
以该位置偏差的距离作为该目标单位在该总位移量;
根据该第一速度、该第一时间差和该最大加速度获取该目标对象在该更新时间窗口期的结束时刻的第二速度;
以该第二速度作为该目标对象在下一个更新时间窗口期的开始时刻的速度。
可选地,该目标对象的运动参数包括预设的第一操作,该第二获取单元1202还用于:
根据第一操作将该目标对象由该第二位置直接移动到该第一位置。
可选地,该目标对象的运动参数包括该目标对象的运动方向,则该第二获取单元1202还用于:
获取目标对象的目标运动方向和实际运动方向;
根据目标运动方向和实际运动方向获取该目标对象的转动角度;
根据该更新时间窗口期拆分该转动角度,得到第二单位纠正量,其中,该第二单位纠正量为该目标对象在执行该纠正策略时单位时间内的转动量;
该在该更新时间窗口期内执行该纠正策略,包括:
在该更新窗口期内的单位时间控制该目标对象转动预设个该第二单位纠正量。
进一步的,本发明实施例还提供一种计算机存储介质,包括指令,当该指令在计算机设备上运行时,使得该计算机设备执行上述方法。
有关本申请实施例提供的计算机存储介质中存储的程序的详细描述可参照上述实施例,在此不做赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的核心思想或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (15)

1.一种目标对象的位置纠正方法,其特征在于,包括:
获取目标对象的更新时间窗口期,所述更新时间窗口期为客户端与服务器交互的时间间隔,所述目标对象的更新时间窗口期是根据所述目标对象接收到服务器数据的时间间隔确定的,其中,不同的目标对象对应有不同大小的更新时间窗口期;
根据所述更新时间窗口期、所述目标对象的运动参数和所述目标对象的位置偏差中的一个或者两个获取所述目标对象的纠正策略,所述运动参数为用于描述所述目标对象的运动状态的参数,所述位置偏差为所述目标对象在服务器中的第一位置与所述目标对象在客户端中的第二位置的差值,所述纠正策略用于使所述目标对象由所述第二位置运动到所述第一位置;所述目标对象的运动参数包含预设的特殊操作;
在所述更新时间窗口期内执行所述纠正策略,以使所述目标对象由所述第二位置运动到所述第一位置,其中包括:获取所述更新时间窗口期开始时所述目标对象的特殊操作,根据所述目标对象的特殊操作对所述目标对象执行所述纠正策略,以使得所述纠正策略与所述目标对象的实际运动状态相匹配。
2.根据权利要求1所述的方法,其特征在于,所述获取目标对象的更新时间窗口期,包括:
确定服务器时间;
所述获取目标对象的更新时间窗口期,包括:
根据所述服务器时间获取所述更新时间窗口期。
3.根据权利要求2所述的方法,其特征在于,所述确定服务器时间,包括:
获取由所述服务器发送的网络传输时延信息,所述网络传输时延信息用于记录所述客户端与所述服务器之间的网络传输时延;
根据所述客户端的本地时间和所述网络传输时延信息确定所述服务器时间。
4.根据权利要求1所述的方法,其特征在于,所述根据所述更新时间窗口期、所述目标对象的运动参数和所述目标对象的位置偏差中的一个或者两个获取所述目标对象的纠正策略,包括:
获取所述更新时间窗口期内所述目标对象需要移动的总位移量;
根据所述更新时间窗口期拆分所述总位移量,得到第一单位纠正量,其中,所述第一单位纠正量为所述目标对象在执行所述纠正策略时单位时间内的位移量;
所述在所述更新时间窗口期内执行所述纠正策略,包括:
在所述更新时间窗口期内的单位时间控制所述目标对象移动预设个所述第一单位纠正量。
5.根据权利要求4所述的方法,其特征在于,所述目标对象的运动参数包括所述目标对象的速度和加速度,则所述获取所述更新时间窗口期内所述目标对象需要移动的总位移量,包括:
获取所述目标对象在所述更新时间窗口期的开始时刻的第一速度;
获取目标时刻与所述开始时刻的第一时间差,所述目标时刻为所述更新时间窗口期内大于所述开始时刻的时刻;
获取所述目标对象的最大加速度,所述最大加速度为预设值;
根据所述第一速度、所述第一时间差及所述最大加速度获取所述目标对象在所述更新时间窗口期内的最大位移;
根据所述最大位移与所述位置偏差的差值,获取所述总位移量。
6.根据权利要求5所述的方法,其特征在于,所述根据所述最大位移与所述位置偏差的差值,获取所述总位移量,包括:
当所述最大位移小于所述位置偏差时,以所述最大位移为所述总位移量,将所述位置偏差与所述最大位移的差值计入下一个更新时间窗口期内位置纠正的位置偏差;
当所述最大位移等于所述位置偏差时,以所述位置偏差的距离作为所述目标单位在所述更新时间窗口期内的总位移;
当所述最大位移大于所述位置偏差时:
以所述位置偏差的距离作为所述目标单位在所述总位移量;
根据所述第一速度、所述第一时间差和所述最大加速度获取所述目标对象在所述更新时间窗口期的结束时刻的第二速度;
以所述第二速度作为所述目标对象在下一个更新时间窗口期的开始时刻的速度。
7.根据权利要求1所述的方法,其特征在于,所述目标对象的运动参数包括预设的第一操作,则所述根据所述更新时间窗口期、所述目标对象的运动参数和所述目标对象的位置偏差中的一个或者两个获取所述目标对象的纠正策略,包括:
根据第一操作将所述目标对象由所述第二位置直接移动到所述第一位置。
8.根据权利要求1至7任一所述的方法,其特征在于,所述目标对象的运动参数包括所述目标对象的运动方向,则所述根据所述更新时间窗口期、所述目标对象的运动参数和所述目标对象的位置偏差中的一个或者两个获取所述目标对象的纠正策略,包括:
获取目标对象的目标运动方向和实际运动方向;
根据目标运动方向和实际运动方向获取所述目标对象的转动角度;
根据所述更新时间窗口期拆分所述转动角度,得到第二单位纠正量,其中,所述第二单位纠正量为所述目标对象在执行所述纠正策略时单位时间内的转动量;
所述在所述更新时间窗口期内执行所述纠正策略,包括:
在所述更新时间窗口期内的单位时间控制所述目标对象转动预设个所述第二单位纠正量。
9.一种目标对象的位置纠正装置,其特征在于,包括:
第一获取单元,所述第一获取单元用于获取目标对象的更新时间窗口期,所述更新时间窗口期为客户端与服务器交互的时间间隔,所述目标对象的更新时间窗口期是根据所述目标对象接收到服务器数据的时间间隔确定的,其中,不同的目标对象对应有不同大小的更新时间窗口期;
第二获取单元,所述第二获取单元用于根据所述第一获取单元获取的所述更新时间窗口期、所述目标对象的运动参数和所述目标对象的位置偏差中的一个或者两个获取所述目标对象的纠正策略,所述运动参数为用于描述所述目标对象的运动状态的参数,所述位置偏差为所述目标对象在服务器中的第一位置与所述目标对象在客户端中的第二位置的差值,所述纠正策略用于使所述目标对象由所述第二位置运动到所述第一位置;所述目标对象的运动参数包含预设的特殊操作;
执行单元,所述执行单元在所述第一获取单元获取的所述更新时间窗口期内执行所述第二获取单元获取的所述纠正策略,以使所述目标对象由所述第二位置运动到所述第一位置,其中包括:获取所述更新时间窗口期开始时所述目标对象的特殊操作,根据所述目标对象的特殊操作对所述目标对象执行所述纠正策略,以使得所述纠正策略与所述目标对象的实际运动状态相匹配。
10.根据权利要求9所述的装置,其特征在于,所述第一获取单元还用于:
确定服务器时间;
所述第二获取单元还用于:
根据所述服务器时间获取所述更新时间窗口期。
11.根据权利要求10所述的装置,其特征在于,所述第一获取单元还用于:
获取由所述服务器发送的网络传输时延信息,所述网络传输时延信息用于记录所述客户端与所述服务器之间的网络传输时延;
根据所述客户端的本地时间和所述网络传输时延信息确定所述服务器时间。
12.根据权利要求9所述的装置,其特征在于,所述第二获取单元还用于:
获取所述更新时间窗口期内所述目标对象需要移动的总位移量;
根据所述更新时间窗口期拆分所述总位移量,得到第一单位纠正量,其中,所述第一单位纠正量为所述目标对象在执行所述纠正策略时单位时间内的位移量;
所述在所述更新时间窗口期内执行所述纠正策略,包括:
在所述更新时间窗口期内的单位时间控制所述目标对象移动预设个所述第一单位纠正量。
13.根据权利要求12所述的装置,其特征在于,所述目标对象的运动参数包括所述目标对象的速度和加速度,所述第二获取单元还用于:
获取所述目标对象在所述更新时间窗口期的开始时刻的第一速度;
获取目标时刻与所述开始时刻的第一时间差,所述目标时刻为所述更新时间窗口期内大于所述开始时刻的时刻;
获取所述目标对象的最大加速度,所述最大加速度为预设值;
根据所述第一速度、所述第一时间差及所述最大加速度获取所述目标对象在所述更新时间窗口期内的最大位移;
根据所述最大位移与所述位置偏差的差值,获取所述总位移量。
14.一种计算机设备,其特征在于,所述计算机设备包括:交互装置、输入/输出(I/O)接口、处理器和存储器,所述存储器中存储有程序指令;
所述交互装置用于获取用户输入的操作指令;
所述处理器用于执行存储器中存储的程序指令,执行如权利要求1-8中任意一项所述的方法。
15.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在计算机设备上运行时,使得所述计算机设备执行如权利要求1-8中任意一项所述的方法。
CN202010055345.2A 2020-01-17 2020-01-17 一种目标对象的位置纠正方法、装置、设备及介质 Active CN111265863B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202010055345.2A CN111265863B (zh) 2020-01-17 2020-01-17 一种目标对象的位置纠正方法、装置、设备及介质
PCT/CN2020/128242 WO2021143324A1 (zh) 2020-01-17 2020-11-12 一种目标对象的位置纠正方法、装置、设备及介质
US17/665,151 US20220152507A1 (en) 2020-01-17 2022-02-04 Method, apparatus, and device for correcting position of target object, and medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010055345.2A CN111265863B (zh) 2020-01-17 2020-01-17 一种目标对象的位置纠正方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN111265863A CN111265863A (zh) 2020-06-12
CN111265863B true CN111265863B (zh) 2022-05-24

Family

ID=70991069

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010055345.2A Active CN111265863B (zh) 2020-01-17 2020-01-17 一种目标对象的位置纠正方法、装置、设备及介质

Country Status (3)

Country Link
US (1) US20220152507A1 (zh)
CN (1) CN111265863B (zh)
WO (1) WO2021143324A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111265863B (zh) * 2020-01-17 2022-05-24 腾讯科技(深圳)有限公司 一种目标对象的位置纠正方法、装置、设备及介质
CN112206511A (zh) * 2020-10-15 2021-01-12 网易(杭州)网络有限公司 游戏中的动作同步方法、装置、电子设备及存储介质
CN112642143B (zh) * 2020-12-30 2022-11-15 明日世界(上海)网络科技有限公司 一种实现信息同步的方法、装置、存储介质和电子设备
CN114911887B (zh) * 2022-04-22 2023-06-23 阿波罗智联(北京)科技有限公司 数据处理的方法、装置、设备以及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104954349A (zh) * 2014-03-31 2015-09-30 北京畅游天下网络技术有限公司 一种2d游戏中客户端的同步方法、装置和系统
CN106385408A (zh) * 2016-09-01 2017-02-08 网易(杭州)网络有限公司 运动状态变化的指示、处理方法及装置
CN106817508A (zh) * 2015-11-30 2017-06-09 华为技术有限公司 一种同步对象确定方法、装置和系统
CN109381858A (zh) * 2018-10-22 2019-02-26 竞技世界(北京)网络技术有限公司 一种网络游戏中位置同步方法
EP3543959A1 (en) * 2018-03-22 2019-09-25 Novaquark Dynamic display of objects within a virtual world by octree-based partitioning and publish/subscribe communication

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110022363B (zh) * 2019-04-03 2021-10-29 腾讯科技(深圳)有限公司 虚拟对象的运动状态修正方法、装置、设备及存储介质
CN111265863B (zh) * 2020-01-17 2022-05-24 腾讯科技(深圳)有限公司 一种目标对象的位置纠正方法、装置、设备及介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104954349A (zh) * 2014-03-31 2015-09-30 北京畅游天下网络技术有限公司 一种2d游戏中客户端的同步方法、装置和系统
CN106817508A (zh) * 2015-11-30 2017-06-09 华为技术有限公司 一种同步对象确定方法、装置和系统
CN106385408A (zh) * 2016-09-01 2017-02-08 网易(杭州)网络有限公司 运动状态变化的指示、处理方法及装置
EP3543959A1 (en) * 2018-03-22 2019-09-25 Novaquark Dynamic display of objects within a virtual world by octree-based partitioning and publish/subscribe communication
CN109381858A (zh) * 2018-10-22 2019-02-26 竞技世界(北京)网络技术有限公司 一种网络游戏中位置同步方法

Also Published As

Publication number Publication date
WO2021143324A1 (zh) 2021-07-22
US20220152507A1 (en) 2022-05-19
CN111265863A (zh) 2020-06-12

Similar Documents

Publication Publication Date Title
CN111265863B (zh) 一种目标对象的位置纠正方法、装置、设备及介质
CN111167116B (zh) 一种平滑显示的方法、终端和计算机存储介质
CN108379832B (zh) 一种游戏同步方法和装置
WO2018201935A1 (zh) 多化身位置同步系统、方法、装置及电子设备和存储介质
CN108022286B (zh) 画面渲染方法、装置及存储介质
US11110349B2 (en) Dynamic client buffering and usage of received video frames for cloud gaming
EP2456160A1 (en) Method and device for synchronizing time of network games
CN111659120B (zh) 虚拟角色位置同步方法、装置、介质及电子设备
JP2003006127A (ja) 分散処理システム、分散処理方法、およびその方法を利用可能なクライアント端末
CN109568948B (zh) 网络游戏中对象的运动状态同步方法及装置
CN109381858B (zh) 一种网络游戏中位置同步方法
CN112206511A (zh) 游戏中的动作同步方法、装置、电子设备及存储介质
CN112221120A (zh) 游戏状态同步方法、装置、电子设备及存储介质
CN112843680A (zh) 画面显示方法、装置、终端设备及存储介质
US11752426B2 (en) Peer-to-peer multiplayer cloud gaming architecture
CN109603153B (zh) 虚拟事件处理方法及装置、电子设备和存储介质
CN111265854B (zh) 一种帧同步方法、装置、设备及介质
US10471347B2 (en) Information processing system, information processing apparatus, storage medium storing information processing program, and information processing method
US11167211B2 (en) Spectating simulation
US11980811B2 (en) Synchronization of a VSYNC signal of a first device to a VSYNC signal of a second device
US20230033785A1 (en) Remote image processing method and apparatus
CN116983618A (zh) 一种位置同步方法及装置
CN115756674A (zh) 信息同步显示方法、装置、设备及存储介质
CN115375661A (zh) 一种游戏模式下的图像处理方法及装置
CN113769384A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40024158

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant