CN107124416B - 多化身位置同步***、方法、装置及电子设备和存储介质 - Google Patents

多化身位置同步***、方法、装置及电子设备和存储介质 Download PDF

Info

Publication number
CN107124416B
CN107124416B CN201710301594.3A CN201710301594A CN107124416B CN 107124416 B CN107124416 B CN 107124416B CN 201710301594 A CN201710301594 A CN 201710301594A CN 107124416 B CN107124416 B CN 107124416B
Authority
CN
China
Prior art keywords
avatar
client
server
information
synchronization
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
CN201710301594.3A
Other languages
English (en)
Other versions
CN107124416A (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.)
Shanghai Lingxi Interactive Entertainment Co ltd
Original Assignee
Alibaba China 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 Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN201710301594.3A priority Critical patent/CN107124416B/zh
Publication of CN107124416A publication Critical patent/CN107124416A/zh
Priority to PCT/CN2018/084307 priority patent/WO2018201935A1/zh
Application granted granted Critical
Publication of CN107124416B publication Critical patent/CN107124416B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明提出了一种多化身位置同步***、方法、装置及电子设备和存储介质。***包括至少一个服务器和多个客户端,多个客户端在空间场景中各自拥有控制其行动的化身,客户端向服务器上报其化身在空间场景内的位置和移动信息;服务器将所述信息下发到其他客户端;客户端在其化身的当前位置与按照前次上报信息下的当前估计位置之间的距离超过第一阈值时,重新上报其化身的位置和移动信息。其他客户端接收服务器下发的所述信息,并且在其当前显示的客户端化身的当前位置与服务器下发的客户端化身的下发位置大于第二阈值时,使客户端化身向下发位置移动。由此能够保证所需的同步精确性的情况下减少不必要的网络流量,同时提升其他客户端化身的移动表现。

Description

多化身位置同步***、方法、装置及电子设备和存储介质
技术领域
本申请涉及在线通信,尤其涉及一种多化身位置同步***、方法、装置及电子设备和存储介质。
背景技术
在虚拟环境和现今流行的增强现实(AR)环境中,人和软件代理都会表现为化身(avatar)。化身可以包含任何类型的可认识的识别信息,但是在典型的应用中,化身通常包括图像,该图像可以像二维图标那样简单,或者像详细的三维图像那样复杂,例如角色的详细渲染。例如在第二人生(Second Life)之类的联网游戏中,由计算机产生的三维图像的各个化身代表由不同用户控制的实体。
在上述环境中,时常需要在一个共享空间场景内同步各用户的不同化身的位置。例如,在角色扮演性网络游戏中,每个用户(玩家)都会在客户端控制一个虚拟角色(化身),控制的最基本行为就是角色的行走,而用户之间想要看到彼此角色的位置,则需要将各自的移动信息上报给服务器,再由服务器转发给其他客户端,这一过程可被称作是玩家之间的位置同步。玩家在客户端通常要看到自己和其他玩家的实时位置,玩家自己的位置由自己控制,玩家在自己的客户端上报给服务器自己的位置,叫做向服务器同步,玩家收到服务器发来的其他的玩家的位置,并且在本客户端将其他玩家的角色移动到指定位置,叫做从服务器同步。在游戏过程中,玩家大部分时间都在产生位移,即在行走和停止的不断切换,所以需要长时间大量的在不同客户端之间同步不同玩家的位移,玩家位置是角色扮演型网络游戏中网络同步最重要和频繁的信息。
然而在实际应用中,位置同步面临着诸多问题。首先,由于位置同步的频繁,通常会导致耗费相当多的网络流量,而在很多条件下网络流量是一种较稀缺的资源。其次,因为不同的玩家的位置是通过网络信息同步的,信息的误差会导致同步的不精确。最后,由于同步的不精确以及网络不稳定等因素的影响,很可能会在客户端接收到其他玩家的位置时在时序上产生跳跃,虚拟角色的突然位移与人的自然移动相违背,会降低游戏的真实性和玩家的乐趣。
为此,需要一种能够解决上述至少一个问题的多化身位置同步方案。
发明内容
本发明提供了一种优化的多化身位置同步方案,每个客户端采用一种策略估计自己在服务器中的位置,只在自己控制的化身和估计的自己在服务器的位置之间有一定距离时才同步给服务器。在显示其他客户端的化身时,优选通过一种策略平滑服务器因为网络不稳定而产生的位置跳跃。本发明的方案能够在保证所需的同步精确性的情况下减少不必要的网络流量,同时能够提升所看到的其他客户端化身的移动表现。
根据本发明的一个方面,提供了一种多化身位置同步***,包括至少一个服务器和多个客户端,多个客户端在空间场景中各自拥有控制其行动的化身,所述服务器在所述空间场景中同步各化身,其中,客户端向所述服务器上报其化身在所述空间场景内的位置和移动信息;所述服务器将所述客户端上报的位置和移动信息下发到其他客户端;以及所述客户端在其化身的当前位置与按照前次上报的位置和移动信息下的当前估计位置之间的距离超过距离阈值时,重新向所述服务器上报其化身的位置和移动信息。
由此,客户端仅在化身当前位置与根据前次上报的估计位置偏差较大时才上报当前的位置和移动信息,由此在确保位置同步精度的同时避免了大量不必要的网络传输,节省了网络流量并且提升了显示的流畅程度。
优选地,其他客户端可以接收所述服务器下发的所述客户端的位置和移动信息,并且在其当前显示的所述客户端的化身的当前位置与所述服务器下发的所述客户端的化身的下发位置的距离大于第二阈值时,使得所述客户端的化身向所述下发位置移动。由此能够现有技术中由于化身位置和下发位置不同而导致的角色位置突然跳动,提升了游戏的自然性。上述移动可以是朝向所述下发位置的匀速直线运动,并且其移动速度可以与所述化身的当前速度和/或下发速度相关。由此使得化身移动更加自然且易于实现。
优选地,当所述客户端控制其化身从移动改为静止,或从静止改为移动的情况下,立刻向所述服务器上报化身在所述空间场景内的位置和移动信息。这样能够确保停止和启动之间转换这类重要运动变化得以在客户端间立即同步。
优选地,位置和移动信息可以包括所述化身在所述空间场景内的二维或三维位置坐标,以及所述化身的移动方向与移动速度。由此能够方便对化身随后的运动轨迹进行估算。
优选地,客户端在距离其前次上报超过时间阈值时才能上报其当前的位置和移动信息。由此,在用户对快速移动变化不敏感的游戏中,可以避免无意义的网络传输和再现。
根据本发明的另一个方面,提供了一种空间场景中多化身位置同步方法,包括:客户端控制其化身在所述空间场景内的行动并向所述服务器上报其化身的位置和移动信息;以及所述客户端在其化身的当前位置与按照前次上报的位置和移动信息下的当前估计位置之间的距离超过距离阈值时,重新向所述服务器上报其化身的位置和移动信息。
优选地,该同步方法还可以包括其他客户端接收所述服务器下发的所述客户端的位置和移动信息,并且在其当前显示的所述客户端的化身的当前位置与所述服务器下发的其他客户端的化身的下发位置不同时,使得所述客户端的化身向所述下发位置移动。
根据本发明的又一方面,还提供了一种空间场景中多化身位置同步装置,包括:化身控制单元,用于控制化身在所述空间场景内的行动;以及信息上报单元,用于向所述服务器上报其化身的位置和移动信息。其中,所述信息上报单元在化身的当前位置与按照前次上报的位置和移动信息下的当前估计位置之间的距离超过第一距离阈值时,重新向所述服务器上报其化身的位置和移动信息。
优选地,该同步装置还可以包括信息接收单元,用于接收所述服务器下发的其他化身的位置和移动信息。并且,所述化身控制单元在当前显示的其他化身的当前位置与所述信息接收单元接收到的其他化身的下发位置的距离大于第二距离阈值时,使得所述其他化身向所述下发位置移动。
根据本发明的又一方面,还提供了一种电子设备,包括:显示屏幕;处理器;以及存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行上述的多化身位置同步方法,以在所述显示屏幕显示的空间场景中实现多化身位置同步。
根据本发明的又一方面,还提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行上述的多化身位置同步方法。
通过仅在与预估位置相差较大时才上报位置信息,能够大量减少不必要的网络传输。相应地,在其他客户端上发现化身下发位置与显示位置不同时,使得化身向着下发位置移动,以避免直接跳跃导致的不自然。上述手段还能够降低信息误差对位置同步的影响。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了可以实现本发明同步***的***框图。
图2示出了根据本发明一个实施例的同步方法的流程图。
图3示出了本发明的同步方案的一个具体实现的示意图。
图4示出了根据本发明一个实施例的同步装置的结构框图。
图5示出了根据本发明一个实施例的电子设备的示意性框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
随着虚拟现实和增强现实(AR)技术的发展,共享空间的应用场景变得愈发丰富和复杂。在实际应用中,位置同步主要面临网络流量耗费巨大、高精度位置同步困难以及客户端玩家自然表现的问题。首先,如果位置需要频繁同步,通常会导致耗费相当多的网络流量,而在很多网络条件下(如***在4G等移动网络下)网络流量是一种较稀缺的资源,尽可能的节省网络流量可以减轻用户的负担,同时也可以减轻服务器网络带宽的压力;其次,因为不同的玩家的位置是通过网络信息同步的,信息的误差(如网络不稳定,同步信息的不及时以及其他难以预计的错误)会导致同步的不精确,而要想进一步提高精确度同时也要求更频繁的同步,对网络流量造成负担;最后由于同步的不精确以及网络不稳定等因素的影响,很可能会在客户端接收到其他玩家的位置时在时序上产生跳跃,即在短时间内,客户端收到服务器的同步信息让其他玩家的虚拟角色产生一个很大的位移,这在表现上是和人的自然移动违背的,这种表现的不自然会降低游戏的真实性和玩家的乐趣。这三点是相辅相成的,很多现有方案存在解决了其中某一点,却加大了另一点的问题。
有鉴于此,本发明提出了一种多化身位置同步方案。该方案包括优化客户端向服务器的同步过程。这主要通过尽量减少位置同步次数实现。首先在每个客户端模拟一个服务器中自己的位置(下文称为服务器影子,不绘制出来),不管客户端中的化身产生怎样的移动,只有当化身实际位置和模拟的服务器中的位置产生一定距离阈值的误差时才向服务器上报一次自己的位移信息。这种策略能够在确保精度的同时避免相当多的无用同步(例如,沿固定方向行进,行进的过程只有较小的弯曲等),从而减少对网络流量的无谓消耗。
此外优选在同步之前考察本次同步和上次同步的时间差是否在一个时间阈值内,也就是说在短时间内客户端最多只能上报一次位置,不管位移是否超过距离阈值,这可以避免很多情况下用户在极短时内故意频繁改变位移造成的大量网络流量消耗,因为通常在很多情况下,其他客户端不需要在非常短的时间内反馈看到某一化身的真实位置。
通过合理设置距离阈值和时间阈值可以在网络流量和精确度之间进行调节,当阈值设置很低时,精确度提高,网络流量上升,当阈值很高时,精确度下降,网络流量也减少。由此方便根据具体情况进动态调节,即,可以在不同的情况下选择不同的精确度。但是对于从静止状态改为移动状态以及从移动状态改为静止状态这两种情况,优选为了移动状态的准确性,立即将当前状态同步给服务器。
本发明的同步方案还可以包括优化从服务器同步的过程。其他客户端(例如,客户端B)需要服务器的告知才能够获知客户端(例如,客户端A)的位置变化。在这个过程中,B收到的A的位置易受网络不稳定的影响,导致收到的位置信息可能是离散的、距离相差较大的点。为了避免B看到的A的位置发生跳跃,本方案在客户端B对客户端A也产生两个对象,一个是A的实体,另一个称为A的影子(不绘制出来),每次客户端B收到服务器发来的A的位置移动信息,B客户端都将A的影子实时的位移到服务器告知的位置,并让A的影子按照服务器告知的移动信息移动(如按照一定的方向、速度等),而A的实体则每一帧持续不断地从A的实体的当前位置朝A的影子位置行进,这样B看到的A的化身的位置移动永远平滑自然,不会因为网络的不稳定而导致移动的跳跃(只有那个不绘制的A的影子有可能发生位移不连续)。即使在网络不稳定的情况下,在短时间内A的实体最终也总是会同A的影子重合,即A的实体总会达到正确的服务器制定的位置,但是表现上更加自然。
下面将参照图1至图3来具体地描述本发明的实施例。首先将结合用于实现本发明实施例的***框图1来进行描述。
如图1所示,***包括至少一个服务器20和多个终端设备10。终端设备10可以经由网络40实现与服务器20的信息收发。服务器20可以通过访问数据库30来获取终端设备10所需的内容,并且提供各客户端10能够在其中控制其化身的共享空间场景。网络40可以是广义上的用于信息传递的网络,可以包括一个或多个通信网络,诸如无线通信网络、因特网、私域网、局域网、城域网、广域网或是蜂窝数据网络等。
终端设备10是可用来访问服务器(例如,安装有用于访问特定联网游戏的客户端)的任何合适的电子设备,包括但不限于智能电话、笔记本计算机或是台式计算机等。图中虽然示出了多个终端设备10-1…N以及单个服务器20和数据库30,并且在随后的描述中会选择其中的一个或部分终端设备加以描述(例如,终端设备10-1),但是本领域技术人员应该了解的是,上述1…N个终端设备旨在表示真实网络中存在的大量终端设备,示出的单个服务器20和数据库30旨在表示本发明的技术方案涉及服务器及数据库的操作。对特定编号的终端设备以及单个服务器和数据库加以详述至少为了说明方便,而非暗示对具体类型或是位置等具有限制。
图1所示的***可以实现为一种多化身位置同步***,包括至少一个服务器和多个客户端,多个客户端在空间场景中各自拥有控制其行动的化身,所述服务器在所述空间场景中同步各化身。任一客户端(例如,客户端A)可以向服务器上报其化身在所述空间场景内的位置和移动信息,服务器可以将A上报的位置和移动信息下发到其他客户端(例如,客户端B)。客户端A在其化身的当前位置与按照前次上报的位置和移动信息下的当前估计位置之间的距离超过距离阈值时,重新向服务器上报其化身的位置和移动信息。
本发明所涉及的空间场景可以是例如二维或三维联网游戏场景,化身相应地可以是用户(玩家)控制的虚拟角色,也可以是其他虚拟或是AR环境,例如,地图应用下实现多个用户的位置共享,真实环境下的虚拟角色叠加等。由于物体的移动信息包括位置、朝向和移动速度三个要素,因此需要上报的信息包括化身的移动方向、速度和位置。在一个实施例中,移动方向和移动速度可以用一个向量速度表示(即用一个具有三个或两个分量的向量表示,向量的方向表示当前移动方向,向量的模表示移动的速度),位置用一个三维或者二维坐标来表示,表示化身在三维场景或二维场景中的位置。通过这两个信息可以确定当前化身的移动状态。当化身静止时,通过位置和最近同步的移动速度确定当前的位置和朝向。当化身移动时,通过最近同步的位置(即起始位置)和移动速度来确定当前的位置和朝向。
在一个实施例中,对于物体从立定状态转为移动状态以及从移动状态转为立定状态,可以不受上述距离阈值限制而优选立即触发同步上报。即,每次运动状态本身的变化(移动至立定,立定至移动)触发一次上报。这是因为在大部分应用场景中,在停止和启动之间的转换被认为是非常重要敏感的运动变化,需要在客户端间立即同步。
在一个实施例中,还可以额外设置一个时间阈值T,每次触发同步的时候,要检查上一次同步的时间和当前时间是否超过了T,如果没有超过则不同步。上述时间阈值控制的优先级可以高于前述运动状态变化而导致的立刻上报。例如,当用户在短时间内频繁地改变化身的运动状态(即,立定到静止或是静止到立定)时,可以将上述改变视为例如对游戏进程无意义的操作而不进行上报。通过加入时间阈值控制,在用户对快速移动变化不敏感的游戏中,可以避免无意义的网络传输和化身再现。
对于从服务器同步过程的优化而言,其他客户端(例如,客户端B)接收所述服务器下发的所述客户端(例如,客户端A)的位置和移动信息,并且在其当前显示的A化身的当前位置与服务器下发的客户端A的化身的下发位置的距离大于某一阈值时,使得A化身向下发位置移动。上述阈值可以是0,即,只要当前位置和下发位置不同就触发移动;也可以是根据实际需要的较小的值,即,***容忍一定范围内的位置误差。上述移动可以是朝向下发位置的匀速直线运动,其移动速度与化身的当前速度和/或下发速度相关。上述移动也可以参考A化身的其他属性,例如客户端A的用户的控制习惯等。
图2示出了根据本发明一个实施例的空间场景中多化身位置同步方法的流程图。该方法可由图1所示的同步***实施。
具体地,在步骤S210,客户端(例如,客户端A)可以控制其化身在空间场景内的行动并向服务器上报其化身的位置和移动信息;在步骤S220,客户端(客户端A)在其化身的当前位置与按照前次上报的位置和移动信息下的当前估计位置之间的距离超过第一距离阈值时,重新向所述服务器上报其化身的位置和移动信息。相应地,服务器负责将各个客户端上报的位置和移动信息下发到其他客户端。
对于下发位置而言,其他客户端(例如,客户端B)可以接收服务器下发的所述客户端(客户端A)的位置和移动信息,并且在其当前显示的所述客户端(A)的化身的当前位置与所述服务器下发的所述客户端的化身的下发位置之间的距离大于第二距离阈值时,使得所述客户端(A)的化身向下发位置移动。从客户端A接收服务器下发的其他客户端位置和移动信息的角度而言,也可以是客户端A接收其他客户端(客户端B)的位置和移动信息,并且在其当前显示的所述其他客户端(B)的化身的当前位置与所述服务器下发的所述其他客户端的化身的下发位置之间的距离大于第二距离阈值时,使得所述其他客户端(B)的化身向下发位置移动。
在一个优选实施例中,在客户端控制其化身从移动改为静止,或从静止改为移动的情况下,立刻向所述服务器上报化身在所述空间场景内的位置和移动信息。同样优选地,所述客户端在距离其前次上报超过时间阈值时才能上报其当前的位置和移动信息。
应该理解的是,上文中关于“第一”和“第二”的描述旨在对距离阈值加以区分,而非在任何意义上暗示上述阈值间的先后或是相互关系。
如下将结合图3描述本发明的位置同步方案在网络游戏场景中的具体应用。在一个网络游戏的运行环境中,包括至少一台服务器S和至少两个两个客户端A和B,两个玩家分别可以控制A和B中的虚拟角色在共享空间中的移动,并且需要通过与服务器S的通信来实时看到彼此的移动状态和位置。这个同步的过程由客户端A向服务器S上报信息和服务器S向B下发信息后客户端B对下发信息的处理两部分组成,同理可以应用于玩家B或其他玩家向服务器S或其他服务器上报信息以及服务器S向客户端A或其他玩家下发信息后这些客户端对信息的处理中。客户端和服务器之间同步的信息m包括两个部分,一个是用向量表示的位置p,一个是用向量表示的带方向的移动速度v。
玩家在游戏的过程中会触发对客户端A的移动控制,控制主要包括在场景地中朝某个方向行走和立定。在这个过程中会触发向服务器上报A的移动信息(如图3左侧所示),上报的时机由按照以下算法步骤决定:
1)客户端A有一个绘制出来的可见的虚拟角色A1,A1受客户端A的玩家的控制在场景中移动,同时客户端A还可以建立一个虚拟对象A2,A2不被绘制出来,只记录位置信息和移动,A1称为实际角色,A2称为A1的服务器影子。A1和A2都拥有一个位置数据p和一个移动速度数据v。初始的时候将A1和A2的数据设为相同,即移动状态一致,位置重叠。
2)每次客户端控制A移动,都驱动A1产生移动,而A2不响应用户的移动操作按照原有的方式移动。在游戏的运行过程中,可以每帧或以其他时间间隔定时计算A1和A2的位置,他们的当前位置p的计算方式是p=F(p0,v,t),其中p0是上一次计算得到的位置,v是移动速度,t是距离上一次计算位置的时间间隔,F是移动方式的函数,对于不同的移动方式有不同的实现,例如对于最简单的匀速直线运动,F(p0,v,t)=p0+v*t。当客户端一直处于立定状态时,不触发任何同步操作。在客户端从立定状态转变为行走状态的情况下,获取当前玩家控制的移动速度v1,将A1的速度v设置为v1,然后向服务器上报A1当前的移动信息位置p1和移动速度v1,同时将A2的速度设置为v1,将A2的位置p2设置为同A1同样的位置,即在从立定状态转为行走状态时向服务器同步一次运动信息,以便其他玩家立即观察到A的行走启动过程。
3)当客户端一直处于运动状态时,移动的速度和方向可能发生改变,即轨迹可能发生改变。每次玩家控制玩家的移动速度改变,只是改变A1的速度,A2不发生改变。每帧或定时的检测当前A1和A2的位置之间的距离D,当这个距离D大于一个阈值距离Dmax时,向服务器上传当前A1的移动信息位置p1和移动速度v1,同时将A2的速度设置为v1,将A2的位置p2设置为同A1同样的位置。
4)在客户端从移动状态改为立定状态的情况下,将A1的速度置0,并将A1的运动静止,向服务器上传当前A1的移动信息位置p1和移动速度v1,同时将A2的速度置0,将A2的位置p2设置为同A1同样的位置。
服务器S收到客户端A上报的移动信息后,需要向可以看到A的客户端B下发客户端A的移动信息,客户端B收到后要进行处理以使客户端B上绘制的A对象的移动状态和客户端A一致(如图3右侧所示),处理的方法步骤如下:
1)在客户端B中会初始建立一个客户端A的角色的对象A1,这个A1是绘制出来的可见的对象,它实时反映了客户端A的移动状态,同时客户端B中还会建立一个虚拟对象A2,A2并不绘制出来,只记录位置信息和移动,A1称为实际角色,A2称为A1的服务器影子。A1和A2都拥有一个位置数据p和一个移动速度数据v。初始的时候将A1和A2的数据设为相同,即移动状态一致,位置重叠。
2)在游戏的运行过程中,会每帧或定时的计算A1和A2的位置,对于A2的位置,他的当前位置p2的计算方式是p2=F(p2_0,v2,t),其中p2_0是上一次计算得到的位置,v2是移动速度,t是距离上一次计算位置的时间间隔,F是移动方式的函数,对于不同的移动方式有不同的实现,例如对于最简单的匀速直线运动F(p2_0,v2,t)=p2_0+v2*t。对于A1的位置,如果当前A1和A2的位置相同(或小于一个微小的阈值Dmin),则不改变A1的位置,并设定它为立定状态,如果不同则他的当前位置p1的计算方式是p1=F’(p1_0,v1,t,p2),其中p1_0是上一次计算得到的A1的位置,v1是移动速度,t是距离上一次计算位置的时间间隔,p2是当前A2的位置,F’是移动方式的函数,这个函数设计为不断地以A1当前的位置为起点,以A2的当前位置为终点进行运动,对于不同的移动方式F’有不同的实现,例如对于最简单的匀速直线运动:
Figure BDA0001284293080000111
(其中Normalized为求向量的归一化向量,||表示向量的模)。
至此已经结合图2-3详细描述本发明的多化身位置同步方法及应用例。
另外,本发明的多化身位置同步方案还可以由一种空间场景中多化身位置同步装置实现。图4示出了跟本发明一个实施例的同步装置的结构框图。其中,同步装置400的功能模块可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图4所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。
图4所示的同步装置400可以用来实现图2所示的多化身位置同步方法,下面仅就同步装置400可以具有的功能模块以及各功能模块可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文结合图2的描述,这里不再赘述。
如图4所示,本发明的同步装置可以包括化身控制单元410和信息上报单元420。化身控制单元410可以用于控制化身在空间场景内的行动,信息上报单元420可以用于向服务器上报其化身的位置和移动信息。其中,信息上报单元420在化身的当前位置与按照前次上报的位置和移动信息下的当前估计位置之间的距离超过第一距离阈值时,重新向服务器上报其化身的位置和移动信息。
优选地,同步装置400还可以包括信息接收单元430。信息接收单元430可以用于接收服务器下发的其他化身的位置和移动信息。并且,化身控制单元410在当前显示的其他化身的当前位置与信息接收单元430接收到的其他化身的下发位置的距离大于第二距离阈值时,使得所述其他化身向所述下发位置移动。
在所述化身控制单元控制化身从移动改为静止,或从静止改为移动的情况下,信息上报单元420立刻向服务器上报化身在空间场景内的位置和移动信息。或者,信息上报单元420在距离其前次上报超过时间阈值时才能上报其当前的位置和移动信息。
本发明的多化身位置同步方法还可以由一种电子设备实现。图5示出了根据本发明一个实施例的电子设备500的示意性框图。其中,电子设备500可以是图1所示的移动终端。
如图5所示,本发明的电子设备500可以包括显示屏幕510、处理器520以及存储器530。存储器530上存储有可执行代码,当可执行代码被处理器520执行时,使处理器520执行上述的多化身位置同步方法,以在显示屏幕510显示的空间场景中实现多化身位置同步。
上述多个电子设备500还可以与服务器及其相应的数据库组成根据本发明的多化身位置同步***。换句话说,图1所示环境也可以看做是本发明的同步***的一个具体配置实现。多个电子设备在空间场景中各自拥有控制其行动的化身,服务器在空间场景中同步各化身,通过仅在与预估位置相差较大时才上报位置信息,大量减少不必要的网络传输。相应地,在其他电子设备上发现化身下发位置与显示位置不同时,使得化身向着下发位置移动,以避免直接跳跃导致的不自然。
上文中已经参考附图详细描述了根据本发明的多化身位置同步***、方法及其优选实施例。在本方案中,每个客户端估计自己在服务器中的位置,只在自己控制的角色和估计的自己在服务器的位置之间有一定距离时才同步给服务器,同时在显示其他客户端的角色时,通过一种策略平滑服务器因为网络不稳定而产生的位置跳跃,能够在保证所需的同步精确性的情况下减少不必要的网络流量,同时能够提升所看到的其他客户端角色的移动表现。
此外,根据本发明的方法还可以实现为一种计算机程序,该计算机程序包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序或计算机指令代码)被电子设备的处理器执行时,使所述处理器执行根据本发明的上述多化身位置同步方法。
或者,根据本发明的方法还可以实现为一种计算机程序产品,该计算机程序产品包括计算机可读介质,在该计算机可读介质上存储有用于执行本发明的上述方法中限定的上述功能的计算机程序。本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的***和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (16)

1.一种多化身位置同步***,包括至少一个服务器和多个客户端,多个客户端在空间场景中各自拥有控制其行动的化身,所述服务器在所述空间场景中同步各化身,其中,
客户端向所述服务器上报其化身在所述空间场景内的位置和移动信息;
所述服务器将所述客户端上报的位置和移动信息下发到其他客户端;以及
所述客户端在其化身的当前位置与按照前次上报的位置和移动信息下的当前估计位置之间的距离超过第一距离阈值时,重新向所述服务器上报其化身的位置和移动信息。
2.如权利要求1所述的同步***,其中,其他客户端接收所述服务器下发的所述客户端的位置和移动信息,并且在其当前显示的所述客户端的化身的当前位置与所述服务器下发的所述客户端的化身的下发位置的距离大于第二距离阈值时,使得所述客户端的化身向所述下发位置移动。
3.如权利要求2所述的同步***,其中,所述移动是朝向所述下发位置的匀速直线运动,其移动速度与所述化身的当前速度和/或下发速度相关。
4.如权利要求1所述的同步***,其中,在所述客户端控制其化身从移动改为静止,或从静止改为移动的情况下,立刻向所述服务器上报化身在所述空间场景内的位置和移动信息。
5.如权利要求1所述的同步***,其中,所述位置和移动信息包括所述化身在所述空间场景内的二维或三维位置坐标,以及所述化身的移动方向与移动速度。
6.如权利要求1-5中任一项所述的同步***,其中,所述客户端在距离其前次上报超过时间阈值时才能上报其当前的位置和移动信息。
7.一种空间场景中多化身位置同步方法,包括:
客户端控制其化身在所述空间场景内的行动并向服务器上报其化身的位置和移动信息;以及
所述客户端在其化身的当前位置与按照前次上报的位置和移动信息下的当前估计位置之间的距离超过第一距离阈值时,重新向所述服务器上报其化身的位置和移动信息。
8.如权利要求7所述的同步方法,还包括:
所述客户端接收所述服务器下发的其他客户端的位置和移动信息,并且在其当前显示的所述其他客户端的化身的当前位置与所述服务器下发的其他客户端的化身的下发位置的距离大于第二距离阈值时,使得所述其他客户端的化身向所述下发位置移动。
9.如权利要求7所述的同步方法,其中,在所述客户端控制其化身从移动改为静止,或从静止改为移动的情况下,立刻向所述服务器上报化身在所述空间场景内的位置和移动信息。
10.如权利要求7-9中任一项所述的同步方法,其中,所述客户端在距离其前次上报超过时间阈值时才能上报其当前的位置和移动信息。
11.一种空间场景中多化身位置同步装置,包括:
化身控制单元,用于控制化身在所述空间场景内的行动;以及
信息上报单元,用于向服务器上报其化身的位置和移动信息,
其中,所述信息上报单元在化身的当前位置与按照前次上报的位置和移动信息下的当前估计位置之间的距离超过第一距离阈值时,重新向所述服务器上报其化身的位置和移动信息。
12.如权利要求11所述的同步装置,还包括:
信息接收单元,用于接收所述服务器下发的其他化身的位置和移动信息,并且
所述化身控制单元在当前显示的其他化身的当前位置与所述信息接收单元接收到的其他化身的下发位置的距离大于第二距离阈值时,使得所述其他化身向所述下发位置移动。
13.如权利要求11所述的同步装置,其中,在所述化身控制单元控制化身从移动改为静止,或从静止改为移动的情况下,所述信息上报单元立刻向所述服务器上报化身在所述空间场景内的位置和移动信息。
14.如权利要求11-13中任一项所述的同步装置,其中,所述信息上报单元在距离其前次上报超过时间阈值时才能上报其当前的位置和移动信息。
15.一种电子设备,包括:
显示屏幕;
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求7-10中任何一项所述的多化身位置同步方法,以在所述显示屏幕显示的空间场景中实现多化身位置同步。
16.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求7-10中任何一项所述的多化身位置同步方法。
CN201710301594.3A 2017-05-02 2017-05-02 多化身位置同步***、方法、装置及电子设备和存储介质 Active CN107124416B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710301594.3A CN107124416B (zh) 2017-05-02 2017-05-02 多化身位置同步***、方法、装置及电子设备和存储介质
PCT/CN2018/084307 WO2018201935A1 (zh) 2017-05-02 2018-04-25 多化身位置同步***、方法、装置及电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710301594.3A CN107124416B (zh) 2017-05-02 2017-05-02 多化身位置同步***、方法、装置及电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN107124416A CN107124416A (zh) 2017-09-01
CN107124416B true CN107124416B (zh) 2020-10-16

Family

ID=59726620

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710301594.3A Active CN107124416B (zh) 2017-05-02 2017-05-02 多化身位置同步***、方法、装置及电子设备和存储介质

Country Status (2)

Country Link
CN (1) CN107124416B (zh)
WO (1) WO2018201935A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107124416B (zh) * 2017-05-02 2020-10-16 阿里巴巴(中国)有限公司 多化身位置同步***、方法、装置及电子设备和存储介质
CN109587188B (zh) * 2017-09-28 2021-10-22 阿里巴巴集团控股有限公司 确定终端设备之间相对位置关系的方法、装置及电子设备
CN108022286B (zh) * 2017-11-30 2019-08-13 腾讯科技(深圳)有限公司 画面渲染方法、装置及存储介质
CN110166519B (zh) * 2018-11-20 2022-09-23 腾讯数码(天津)有限公司 信息同步的方法、客户端、服务器、终端设备与存储介质
CN109568948B (zh) * 2019-01-16 2022-05-20 网易(杭州)网络有限公司 网络游戏中对象的运动状态同步方法及装置
CN110830521B (zh) * 2020-01-13 2020-04-28 南昌市小核桃科技有限公司 Vr多人同屏数据同步处理方法及装置
CN111966216B (zh) * 2020-07-17 2023-07-18 杭州易现先进科技有限公司 空间位置的同步方法、装置、***、电子装置和存储介质
CN115494948B (zh) * 2022-09-30 2024-04-02 领悦数字信息技术有限公司 用于使多个数字分身联动的方法、装置及介质
CN117046102B (zh) * 2023-07-17 2024-02-13 广州三七极耀网络科技有限公司 一种游戏中对象坐标的同步方法、装置、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1941788A (zh) * 2005-09-26 2007-04-04 腾讯科技(深圳)有限公司 一种联网游戏中角色的移动方法
CN104954349A (zh) * 2014-03-31 2015-09-30 北京畅游天下网络技术有限公司 一种2d游戏中客户端的同步方法、装置和***
CN106302679A (zh) * 2016-08-08 2017-01-04 腾讯科技(深圳)有限公司 一种虚拟对象移动同步方法、客户端及服务器

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101171409B1 (ko) * 2004-11-26 2012-08-08 가부시키가이샤 세가 정보 처리 장치, 데이터 처리 방법, 및 기록매체
CN103701918B (zh) * 2013-12-31 2017-04-12 北京像素软件科技股份有限公司 客户端和服务器同步方法和装置
US20170092000A1 (en) * 2015-09-25 2017-03-30 Moshe Schwimmer Method and system for positioning a virtual object in a virtual simulation environment
CN106385408B (zh) * 2016-09-01 2019-08-16 网易(杭州)网络有限公司 运动状态变化的指示、处理方法及装置
CN107124416B (zh) * 2017-05-02 2020-10-16 阿里巴巴(中国)有限公司 多化身位置同步***、方法、装置及电子设备和存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1941788A (zh) * 2005-09-26 2007-04-04 腾讯科技(深圳)有限公司 一种联网游戏中角色的移动方法
CN104954349A (zh) * 2014-03-31 2015-09-30 北京畅游天下网络技术有限公司 一种2d游戏中客户端的同步方法、装置和***
CN106302679A (zh) * 2016-08-08 2017-01-04 腾讯科技(深圳)有限公司 一种虚拟对象移动同步方法、客户端及服务器

Also Published As

Publication number Publication date
WO2018201935A1 (zh) 2018-11-08
CN107124416A (zh) 2017-09-01

Similar Documents

Publication Publication Date Title
CN107124416B (zh) 多化身位置同步***、方法、装置及电子设备和存储介质
CN111167116B (zh) 一种平滑显示的方法、终端和计算机存储介质
US11235234B2 (en) Method for movement synchronization of virtual object, client, server, and storage medium
CN111659120B (zh) 虚拟角色位置同步方法、装置、介质及电子设备
CN107837530B (zh) 游戏同步方法、装置及设备
CN107145355B (zh) 页面布局的调整方法及装置、存储介质、处理器和终端
WO2021143324A1 (zh) 一种目标对象的位置纠正方法、装置、设备及介质
CN106817508B (zh) 一种同步对象确定方法、装置和***
CN111494953B (zh) 游戏角色移动同步方法、装置、设备及存储介质
CN113469930B (zh) 图像处理方法、装置、及计算机设备
CN114339444A (zh) 视频帧的播放时长调整方法、装置、设备及存储介质
CN113546416A (zh) 游戏场景处理方法、装置、计算机设备及存储介质
CN116208623B (zh) 信息同步方法、装置、引擎服务器及存储介质
US9089771B2 (en) Method and apparatus for synchronizing assets across distributed systems
CN109660559B (zh) 一种基于时间戳的客户端与服务器端场景同步方法
CN109529332B (zh) 一种游戏场景运动状态切换方法、装置、服务器及终端
CN115569381A (zh) 游戏控制方法、装置、设备及存储介质
CN114307145A (zh) 画面显示方法、装置、终端、存储介质及程序产品
JPH11288393A (ja) ネットワークゲームシステム
CN106780676B (zh) 一种用于显示动画的方法和装置
WO2019213879A1 (zh) 输出内容处理方法、输出方法、电子设备及存储介质
CN114522416A (zh) 一种虚拟角色的移动控制方法和装置
WO2024055811A1 (zh) 消息显示方法、装置、设备、介质及程序产品
CN116614676B (zh) 在消息同步中虚拟人物动画重播的方法、***及存储介质
Athrij et al. Dynamic Load Distribution in web-based AR

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200811

Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: Alibaba (China) Co.,Ltd.

Address before: 510665 Guangdong city of Guangzhou province Whampoa Tianhe District Road No. 163 Xiping Yun Lu Yun Ping radio square B tower 13 floor 02 unit self

Applicant before: Guangzhou Aijiuyou Information Technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230410

Address after: 201210 3rd floor, building 1, No.400, Fangchun Road, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai

Patentee after: Shanghai Lingxi Interactive Entertainment Co.,Ltd.

Address before: 310052 room 508, 5th floor, building 4, No. 699 Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Patentee before: Alibaba (China) Co.,Ltd.