CN111228797B - 数据处理方法、装置、计算机以及可读存储介质 - Google Patents
数据处理方法、装置、计算机以及可读存储介质 Download PDFInfo
- Publication number
- CN111228797B CN111228797B CN202010033046.9A CN202010033046A CN111228797B CN 111228797 B CN111228797 B CN 111228797B CN 202010033046 A CN202010033046 A CN 202010033046A CN 111228797 B CN111228797 B CN 111228797B
- Authority
- CN
- China
- Prior art keywords
- virtual object
- variable
- type
- data
- variables
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 63
- 238000003860 storage Methods 0.000 title claims description 18
- 238000003672 processing method Methods 0.000 title abstract description 14
- 230000008859 change Effects 0.000 claims abstract description 101
- 238000000034 method Methods 0.000 claims abstract description 77
- 230000000007 visual effect Effects 0.000 claims description 29
- 230000006835 compression Effects 0.000 claims description 18
- 238000007906 compression Methods 0.000 claims description 18
- 230000033001 locomotion Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 12
- 238000012800 visualization Methods 0.000 claims description 11
- 238000005538 encapsulation Methods 0.000 claims description 7
- 238000004806 packaging method and process Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 description 29
- 238000010586 diagram Methods 0.000 description 24
- 239000008280 blood Substances 0.000 description 19
- 210000004369 blood Anatomy 0.000 description 19
- 230000010076 replication Effects 0.000 description 7
- 230000001133 acceleration Effects 0.000 description 5
- 238000006073 displacement reaction Methods 0.000 description 5
- 238000009877 rendering Methods 0.000 description 5
- 238000011038 discontinuous diafiltration by volume reduction Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 210000005155 neural progenitor cell Anatomy 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005422 blasting Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/358—Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating 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
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/352—Details of game servers involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/56—Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/57—Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/80—Special adaptations for executing a specific game genre or game mode
- A63F13/837—Shooting of targets
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features 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/80—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
- A63F2300/8076—Shooting
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Processing Or Creating Images (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例公开了一种数据处理方法,包括:获取与主虚拟对象相关联的关联虚拟对象,获取所述关联虚拟对象的角色变量中属于第一更新频率类型的变量,作为第一类型变量;对所述第一类型变量进行压缩处理,得到压缩数据,将所述压缩数据进行封装得到所述主虚拟对象的第一变更数据;将所述主虚拟对象的第一变更数据发送给所述主虚拟对象所在的目标客户端,以使所述目标客户端基于所述第一变更数据进行帧图像更新显示。采用本申请,可以提高数据处理的效率。
Description
技术领域
本申请涉及计算技术领域,尤其涉及一种数据处理方法、装置、计算机以及可读存储介质。
背景技术
在网络游戏中,尤其是联机第一人称射击(First person shooter,FPS)游戏中,游戏主题逻辑会运行于服务端,包括每个非玩家角色(Non-Player-Character,NPC)的移动位置、每个玩家的位置和状态等。这些数据会经过选择和过滤,通过“网络复制”的方法发送到每个游戏客户端,游戏客户端会收到相应的数据,并通过对收到的数据进行渲染,在客户端屏幕上进行显示。
而由于服务器需要处理的相关数据量比较大,数据处理需要耗费一定的时间,网络带宽也有限,再加上客户端玩家视距有限,所以一般服务器会使用九宫格分割的方法,将玩家周围的相关数据的变化情况发送给该玩家的客户端,如在大多FPS游戏中为距玩家大约为200米左右的范围内的相关数据。
但是,对于地图中有大量的NPC和玩家的游戏来说,如果通过上述的数据同步方法对客户端进行数据处理,需要对比每个游戏对象(包括NPC和玩家)当前的数据与上次更新时的数据,得到每个游戏对象的变更记录,加上需要更新的游戏对象较多且每个游戏对象包括大量的数据,使得服务器的性能会无法承受,游戏对象的数据比对及变更记录的整理也会耗费大量的时间,造成每帧更新时用于游戏对象网络复制的开销就会达到40毫秒甚至更多,从而造成服务器对于数据的更新效率低下。
发明内容
本申请实施例提供了一种数据处理方法和装置,可以提高数据处理的效率。
本申请实施例一方面提供了一种数据处理方法,包括:
获取与主虚拟对象相关联的关联虚拟对象,获取上述关联虚拟对象的角色变量中属于第一更新频率类型的变量,作为第一类型变量;
对上述第一类型变量进行压缩处理,得到压缩数据,将上述压缩数据进行封装得到上述主虚拟对象的第一变更数据;
将上述主虚拟对象的第一变更数据发送给上述主虚拟对象所在的目标客户端,以使上述目标客户端基于上述第一变更数据进行帧图像更新显示。
本申请实施例一方面提供了一种数据处理装置,所述装置包括:
第一获取模块,用于获取与主虚拟对象相关联的关联虚拟对象,获取上述关联虚拟对象的角色变量中属于第一更新频率类型的变量,作为第一类型变量;
压缩模块,用于对上述第一类型变量进行压缩处理,得到压缩数据;
第一封装模块,用于将上述压缩数据进行封装得到上述主虚拟对象的第一变更数据;
第一发送模块,用于将上述主虚拟对象的第一变更数据发送给上述主虚拟对象所在的目标客户端,以使上述目标客户端基于上述第一变更数据进行帧图像更新显示。
其中,上述装置还包括:
第二获取模块,用于若接收到针对上述关联虚拟对象的第二类型变量的触发信息,则获取上述第二类型变量;上述第二类型变量为上述角色变量中属于第二更新频率类型的变量;
第二封装模块,用于将上述第二类型变量封装成上述主虚拟对象的第二变更数据;
第二发送模块,用于将上述第二变更数据发送给上述主虚拟对象所在的目标客户端,以使上述目标客户端基于上述第二变更数据进行帧图像更新显示。
其中,上述装置还包括:
第三获取模块,用于获取上述关联虚拟对象的第二类型变量的历史更新时间及第一系统网络时间;上述第二类型变量为上述角色变量中属于第二更新频率类型的变量;
第三封装模块,用于若上述第一系统网络时间与上述历史更新时间的差值大于或等于第二类型变量更新时间阈值,则将上述第二类型变量封装成上述主虚拟对象的第三变更数据;
第三发送模块,用于将上述第三变更数据发送给上述主虚拟对象所在的目标客户端,以使上述目标客户端基于上述第三变更数据进行帧图像更新显示。
其中,上述第一类型变量包括位置信息;
上述压缩模块,包括:
第一获取单元,用于获取上述关联虚拟对象的上述位置信息及位置精度;
确定单元,用于基于上述位置精度将上述位置信息转换为整型位置数据,将上述整型位置数据确定为上述压缩数据。
其中,上述压缩模块,包括:
第二获取单元,用于在待更新帧中,获取上述第一类型变量,在上述主虚拟对象所在的历史帧中,获取上述第一类型变量对应的历史缓存变量;上述历史帧为上述待更新帧的上一帧;
第三获取单元,用于获取上述历史缓存变量与上述第一类型变量间的第一差异变量;
第一生成单元,用于对上述第一差异变量进行编码,得到上述压缩数据。
其中,上述第一类型变量包括上述关联虚拟对象的对象标识;
上述压缩模块,包括:
第四获取单元,用于获取上述关联虚拟对象的前继关联虚拟对象的对象标识,获取上述关联虚拟对象的对象标识与上述前继关联虚拟对象的对象标识间的第二差异变量;上述前继关联虚拟对象与上述关联虚拟对象为依次处理关系;
第二生成单元,用于对上述第二差异变量进行编码,得到上述压缩数据。
其中,上述第一类型变量包括历史路径信息;
上述第一获取模块,包括:
路径获取单元,用于获取上述关联虚拟对象在目标时间范围内的运动轨迹,基于上述运动轨迹确定上述关联虚拟对象的运动位置点,将上述运动位置点确定为上述关联虚拟对象的路径信息,将上述第一类型变量中的上述历史路径信息更新为上述路径信息;上述目标时间范围是指更新上述第一类型变量中的上述路径信息的间隔时长。
其中,上述装置还包括:
第四获取模块,用于获取上述关联虚拟对象的上述第一类型变量的历史全量更新时间及第二系统网络时间;
第四封装模块,用于若上述历史全量更新时间与上述第二系统网络时间的差值大于或等于全量更新时间阈值,则将上述第一类型变量的参数封装成全量变更数据,将上述全量变更数据发送给上述目标客户端,以使上述目标客户端基于上述全量变更数据进行帧图像更新显示;
上述第四封装模块,还用于若上述历史全量更新时间与上述第二系统网络时间的差值小于上述全量更新时间阈值,则通过上述压缩模块执行上述对上述第一类型变量进行压缩处理,得到压缩数据的步骤。
其中,上述装置还包括:
距离获取模块,用于从距离关系列表中获取上述主虚拟对象分别与至少两个原始虚拟对象间的距离信息;
视距确定模块,用于从上述至少两个原始虚拟对象中获取上述距离信息大于第一距离阈值且小于或等于第二距离阈值的待选虚拟对象,确定上述待选虚拟对象与上述主虚拟对象的视野方向信息间的视距夹角信息;
关联确定模块,用于将上述距离信息小于或等于上述第一距离阈值的原始虚拟对象,或者上述视距夹角信息小于可视化角度阈值的待选虚拟对象,确定为与上述主虚拟对象相关联的上述关联虚拟对象。
其中,上述装置还包括:
属性分类模块,用于获取应用场景中的至少两个原始虚拟对象的属性类别,将上述属性类别为用户角色属性的原始虚拟对象确定为用户虚拟对象,将上述属性类别为系统角色属性的原始虚拟对象确定为系统虚拟对象;
用户关联模块,用于获取上述用户虚拟对象的群组标签,将上述群组标签与上述主虚拟对象的群组标签相同的用户虚拟对象,确定为关联用户虚拟对象;
上述关联确定模块,还用于将上述关联用户虚拟对象及上述系统虚拟对象,确定为与上述主虚拟对象相关联的上述关联虚拟对象。
其中,上述装置还包括:
第五获取模块,用于获取每个原始虚拟对象与上述主虚拟对象间的距离信息所属的距离范围,获取上述每个原始虚拟对象的更新缓存时间;
目标确定模块,用于获取上述距离范围对应的列表更新时间阈值,将上述至少两个原始虚拟对象中更新缓存时间与第三系统网络时间的差值大于或等于上述列表更新时间阈值的原始虚拟对象,确定为目标虚拟对象;
更新模块,用于更新上述距离关系列表中上述目标虚拟对象与上述主虚拟对象间的距离信息。
其中,上述第一获取模块,包括:
类获取单元,用于获取上述主虚拟对象对应的类对象集合;上述类对象集合包括至少两个对象变量子集;
子集获取单元,用于从上述类对象集合的上述至少两个对象变量子集中获取上述关联虚拟对象对应的对象变量子集;上述对象变量子集包括上述关联虚拟对象的角色变量中属于上述第一更新频率类型的变量;
变量获取单元,用于从上述对象变量子集中获取上述关联虚拟对象的上述第一类型变量。
本申请实施例一方面提供了一种计算机设备,包括处理器、存储器、输入输出接口;
上述处理器分别与上述存储器和上述输入输出接口相连,其中,上述输入输出接口用于输入数据和输出数据,上述存储器用于存储程序代码,上述处理器用于调用上述程序代码,以执行如本申请实施例一方面中实现的数据处理方法。
本申请实施例一方面提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序包括程序指令,上述程序指令当被处理器执行时,执行如本申请实施例一方面中实现的数据处理方法。
实施本申请实施例,将具有如下有益效果:
本申请实施例通过获取与主虚拟对象相关联的关联虚拟对象,获取关联虚拟对象的角色变量中属于第一更新频率类型的变量,作为第一类型变量,对第一类型变量进行压缩处理,得到压缩数据,将压缩数据进行封装得到主虚拟对象的第一变更数据,将第一变更数据发送给主虚拟对象所在的目标客户端,以使目标客户端基于第一变更数据进行帧图像更新显示。通过上述过程,对关联虚拟对象的角色变量进行分类处理,并对属于第一更新频率类型的第一类型变量进行压缩处理,大大减少了需要进行处理的数据量及需要发送的数据量,提高了数据处理效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种数据处理架构图;
图2是本申请实施例提供的一种数据处理方法流程图;
图3是本申请实施例提供的一种第一类型变量的数据处理过程示意图;
图4是本申请实施例提供的一种多虚拟对象的数据处理过程;
图5是本申请实施例提供的一种数据处理具体流程示意图;
图6是本申请实施例提供的一种关联虚拟对象的显示场景示意图;
图7是本申请实施例提供的一种第一类型变量确定场景示意图;
图8是本申请实施例提供的一种基于历史帧进行更新的数据处理示意图;
图9是本申请实施例提供的一种第二类型变量触发场景示意图;
图10是本申请实施例提供的一种变量划分场景示意图;
图11是本申请实施例提供的一种数据处理装置示意图;
图12是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
具体的,请参见图1,图1是本申请实施例提供的一种数据处理架构图,如图1所示,该数据处理系统包括计算机设备101及多个电子设备,如电子设备102a、电子设备102b、…及电子设备102c,计算机设备101与各个电子设备间可以进行通信连接。具体的,计算机设备101获取连接的各个电子设备,生成每个电子设备对应的变更数据,将生成的变更数据发送给对应的电子设备,以使该电子设备可以基于对应的变更设备进行帧图像更新显示。其中,以电子设备102a为例,计算机设备101监测到该电子设备102a在线,获取与该电子设备102a中登陆的主虚拟对象相关联的关联虚拟对象,包括与该主虚拟对象相关联的玩家或NPC,该关联虚拟对象可以认为是在主虚拟对象所在的电子设备102a中进行显示的对象。获取每个关联虚拟对象的第一类型变量,如对应关联虚拟对象的位置信息、视野方向信息、速度信息、加速度信息、路径信息及布娃娃(Ragdoll)信息等,其中,Ragdoll信息用于构建关联虚拟对象的角色模型,其中,该第一类型变量为关联虚拟对象中属于第一更新频率类型的变量,第一更新频率类型可以认为是每一帧都会发生变化的频率,由于第一类型变量的变化较为频繁,使得在对每一帧进行更新时都需要对第一类型变量进行更新,因此,计算机设备在进行数据处理时,均需获取关联虚拟对象的第一类型变量,以保持目标客户端的显示页面中的数据与计算机设备中的数据一致,实现对第一类型变量的网络复制。其中,在对第一类型变量进行网络复制时,可以对上述各个第一类型变量分别进行压缩处理,得到压缩数据,包括位置信息的压缩数据、视野方向信息的压缩数据以及路径信息的压缩数据等,将生成的压缩数据封装成主虚拟对象的第一变更数据,将第一变更数据发送给电子设备102a,电子设备102a为该主虚拟对象所在的目标客户端。通过对第一类型变量进行压缩处理,减少计算机设备与客户端间传输的数据量,提高更新效率,而对于除第一类型变量之外的变量,如第二类型变量,由于该第二类型变量属于第二更新频率类型的变量,第二更新频率类型表示更新频率较低,不会每一帧都发生变化,因此第二类型变量不需要每一帧都进行处理,从而进一步减少计算机设备处理的数据量及与客户端间传输的数据量,提高更新效率。
电子设备102a在接收到第一变更数据后,对第一变更数据进行还原,得到对应关联虚拟对象的位置信息、视野方向信息、速度信息、加速度信息、路径信息及布娃娃(Ragdoll)信息等第一类型变量,基于这些第一类型变量,渲染出当前帧图像,可以认为,当前帧图像中显示的虚拟对象的状态是由各个第一类型变量所确定的。其中,计算机设备101向电子设备102b、…或电子设备102c发送变更数据的过程,与上述计算机设备101向电子设备102a发送变更数据的过程相同。其中,计算机设备101可以是服务器或客户端,也可以是服务器和客户端组成的系统,该客户端可以是一种电子设备,该客户端及上述各个电子设备(电子设备102a、电子设备102b、…及电子设备102c),包括但不限于手机、平板电脑、台式电脑、笔记本电脑、掌上电脑、移动互联网设备(mobile internet device,MID)、可穿戴设备(例如智能手表、智能手环等)等。
可以理解的是,本申请实施例提供的方法可以由计算机设备执行,计算机设备包括但不限于终端或服务器。本申请实施例中进行数据处理的执行主体可以为计算机设备。其中,当本申请实施例应用于游戏场景时,该计算机设备包括但不限于独立专用服务器(Dedicated Server,DS),其中,DS为运行游戏逻辑的服务器,不运行图像渲染和声音等相关的任务,并会将数据处理的结果发送给客户端,用于处理游戏数据。
其中,在游戏场景中,通过基于更新频率变量对关联虚拟对象的角色变量进行分类,在每一帧更新时都对属于高频(第一更新频率类型)的第一类型变量进行更新,且会对第一类型变量进行压缩处理,而对于属于低频(第二更新频率类型)的第二类型变量,则不需要每一帧都进行更新,从而减少计算机设备用于网络复制的开销,提高帧更新的效率,减短了该游戏场景中一帧的更新时间,进而可以提升游戏场景的帧图像更新性能,使得游戏场景中帧与帧之间的切换更为流畅,提高用户体验。由于通过本申请实施例,可以减轻计算机设备(如DS)的数据处理压力,因此,在相同性能的计算机设备中,技术人员通过本申请实施例可以实现更为丰富的游戏场景。举例来说,假定该DS在对100个玩家的游戏场景进行网络复制时,每秒可以复制2帧,使得该游戏场景中帧与帧之间的切换极为缓慢,使得游戏的体验极差,通过本申请实施例,可以提升网络复制性能,每秒可以复制几十帧,如40帧,在每秒切换几十帧的情况下,对于人眼来说,属于可接受的切换频率,玩家就可以观察到连续不卡顿的帧图像切换,从而可以提升游戏的体验。
进一步地,请参见图2,图2是本申请实施例提供的一种数据处理方法流程图。如图2所示,以上述计算机设备为执行主体进行描述,该数据处理过程包括如下步骤:
步骤S201,获取与主虚拟对象相关联的关联虚拟对象,获取该关联虚拟对象的角色变量中的第一类型变量。
具体的,获取与主虚拟对象相关联的关联虚拟对象,获取该关联虚拟对象的角色变量中属于第一更新频率类型的变量,作为第一类型变量。具体的,对于一个应用场景来说,可能包括至少一个主虚拟对象,每个主虚拟对象可能会关联至少一个关联虚拟对象,当计算机设备对该应用场景进行帧图像更新时,获取该应用场景所关联的主虚拟对象,该主虚拟对象为在该应用场景中属性类别为用户角色属性的虚拟对象,计算机设备获取到该主虚拟对象后,获取与该主虚拟对象相关联的关联虚拟对象,与该主虚拟对象相关联的关联虚拟对象可能不唯一,每个关联虚拟对象包括角色变量,该角色变量组成对应关联虚拟对象在上述应用场景中的显示状态,用于将关联虚拟对象显示在上述应用场景中。以一个关联虚拟对象为例,获取该关联虚拟对象的角色变量中属于第一更新频率类型的变量,作为该关联虚拟对象的第一类型变量。其中,该第一更新频率类型可以指示每一帧都进行变化的更新频率类型,也可以指示更新频率大于或等于第一更新频率阈值的更新频率类型等。
具体的,参见图3,图3是本申请实施例提供的一种第一类型变量的数据处理过程示意图。在应用场景中,计算机设备获取该应用场景中的主虚拟对象,并获取与该主虚拟对象相关联的关联虚拟对象,获取关联虚拟对象的角色变量中的第一类型变量。如图3所示,假定该应用场景为游戏场景,在该应用场景301中,包括多个虚拟对象,每个虚拟对象的属性类别为用户角色属性或系统角色属性,可选的,一种情况下可以认为,属性类别为用户角色属性的虚拟对象为玩家角色,属性类别为系统角色属性的虚拟对象为非玩家角色(Non-Player-Character,NPC)。获取该应用场景301中获取属性类别为用户角色属性的虚拟对象,将属性类别为用户角色属性的虚拟对象确定为主虚拟对象,以该应用场景301中的主虚拟对象302为例,对本申请实施例中的数据处理过程进行描述。该主虚拟对象302既可以表示在应用场景301中显示出来的虚拟对象,也可以表示操控该虚拟对象的虚拟账号,该主虚拟对象302对应一个客户端,该客户端用于显示应用场景301中以对应主虚拟对象302为主视觉的帧图像。换句话说,对于同一个应用场景,以不同主虚拟对象为主视觉进行帧图像显示时,所显示出来的帧图像可能不完全相同,这是由于不同的主虚拟对象的视觉范围有所不同。
具体的,在图3中,获取与主虚拟对象302相关联的关联虚拟对象集合303,该关联虚拟对象集合303包括至少一个关联虚拟对象,如关联虚拟对象3031、关联虚拟对象3032、关联虚拟对象3033、关联虚拟对象3034、...及关联虚拟对象303m(m为正整数,m为与主虚拟对象相关联的关联虚拟对象的数量)。其中,该关联虚拟对象集合303中所包括的各个关联虚拟对象属于该应用场景中除主虚拟对象302之外的虚拟对象。以关联虚拟对象3031为例,获取该关联虚拟对象3031的角色变量304中属于第一更新频率类型的变量,作为第一类型变量305,该第一类型变量305为关联虚拟对象3031的角色变量304中的一部分。假定该关联虚拟对象3031的第一类型变量305包括至少一个变量,如变量3051、变量3052、变量3053、变量3054、...及变量305n(n为正整数,n为第一类型变量305中所包含的变量的数量)。
步骤S202,对第一类型变量进行压缩处理,得到压缩数据,将压缩数据封装成主虚拟对象的第一变更数据。
具体的,对第一类型变量进行压缩处理,得到压缩数据,将压缩数据封装成主虚拟对象的第一变更数据。具体的,对第一类型变量进行压缩处理,包括但不限于对第一类型变量进行编码或减少第一类型变量的数值类型等,以减少第一类型变量所占的存储空间,降低需要传输给客户端的数据量。
具体的,可以参见图3,对第一类型变量305进行压缩处理,具体对第一类型变量305所包含的各个变量进行压缩处理,得到压缩数据3081,其中,对于不同的变量的压缩处理方法可以相同,也可以不相同,在此不做限制。具体的,对第一类型变量305中的变量3051进行压缩处理,得到变量3051对应的压缩数据3061;对变量3052进行压缩处理,得到变量3052对应的压缩数据3062;...;对变量305n进行压缩处理,得到变量305n对应的压缩数据306n。其中,压缩数据3061、压缩数据3062、...及压缩数据306n组成了第一类型变量305对应的压缩数据3081。同理,对关联虚拟对象3032的第一类型变量进行压缩处理,得到压缩数据3082;对关联虚拟对象3033的第一类型变量进行压缩处理,得到压缩数据3083;...;对关联虚拟对象303m的第一类型变量进行压缩处理,得到压缩数据308m。将关联虚拟对象3031对应的压缩数据3081、关联虚拟对象3032对应的压缩数据3082、...及关联虚拟对象303m对应的压缩数据308m进行封装,得到第一变更数据。
步骤S203,将主虚拟对象的第一变更数据发送给主虚拟对象所在的目标客户端。
具体的,将主虚拟对象的第一变更数据发送给主虚拟对象所在的目标客户端,以使目标客户端基于第一变更数据进行帧图像更新显示。具体的,第一变更数据为目标客户端在这一帧进行显示时,用于渲染出关联虚拟对象的数据。具体可以参见图3,计算机设备在生成第一变更数据后,将第一变更数据发送给关联虚拟对象所在的目标客户端307,以使目标客户端307可以基于该第一变更数据进行帧图像显示。
其中,若该应用场景中包括多个主虚拟对象时,则以主虚拟对象302的数据处理过程为例,得到该应用场景中其他主虚拟对象的第一变更数据,将得到的第一变更数据发送给对应的主虚拟对象所在的目标客户端,从而使得该应用场景所关联的所有客户端都可以基于接收到的第一变更数据进行帧图像更新显示。具体的,参见图4,图4是本申请实施例提供的一种多虚拟对象的数据处理过程。如图4所示,在上述应用场景中包括多个主虚拟对象,每个主虚拟对象关联不止一个关联虚拟对象。假定计算机设备401从应用场景中获取到主虚拟对象4021、主虚拟对象4022及主虚拟对象4023,获取与主虚拟对象4021关联的关联虚拟对象4031及关联虚拟对象4032,获取关联虚拟对象4031的第一类型变量4041,对第一类型变量4041进行压缩,得到压缩数据4051,同理获取关联虚拟对象4032的第一类型变量4042,对第一类型变量4042进行压缩,得到压缩数据4052,将压缩数据4051及压缩数据4052封装成第一变更数据4061,将第一变更数据4061发送给主虚拟对象4021所在的目标客户端4071。同理,获取与主虚拟对象4022相关联的关联虚拟对象4033,获取该关联虚拟对象4033的第一类型变量4043,对第一类型变量4043进行压缩得到压缩数据4053,将压缩数据4053封装成第一变更数据4062,将第一变更数据4062发送给主虚拟对象4022所在的目标客户端4072;获取与主虚拟对象4023相关联的关联虚拟对象4034,获取该关联虚拟对象4034的第一类型变量4044,对第一类型变量4044进行压缩得到压缩数据4054,将压缩数据4054封装成第一变更数据4063,将第一变更数据4063发送给主虚拟对象4023所在的目标客户端4073。其中,计算机设备无论在应用场景中获取到的主虚拟对象的数量及每个主虚拟对象关联的关联虚拟对象的数量是多少(一个或至少两个等),都可以通过图4中所实现的多虚拟对象的数据处理过程,得到每个主虚拟对象对应的第一变更数据,并将第一变更数据发送给对应主虚拟对象所在的目标客户端。
本申请实施例通过上述数据处理过程,实现了计算机设备获取与主虚拟对象相关联的关联虚拟对象,并获取关联虚拟对象的第一类型变量,对第一类型变量进行压缩,得到压缩数据,将压缩数据封装成第一变更数据,将第一变更数据发送给主虚拟对象所在的目标客户端,从而减少在计算机设备与各个目标客户端间进行数据传输时的数据传输量。通过上述数据处理过程,将每个关联虚拟对象的角色变量进行分类,对属于第一更新频率类型的变量(即第一类型变量)进行压缩处理,一方面通过对角色变量的分类,减少了计算机设备需要处理的数据量,一方面,对第一类型变量进行压缩处理,减少了计算机设备发送给客户端的数据量,以降低计算机设备的网络数据处理压力,减少数据处理的耗时,从而提高了数据处理的效率。可选的,当本申请实施例应用于游戏场景时,可以降低计算机设备的网络复制压力,其中,该计算机设备包括但不限于DS,网络复制(Data Replication)指的是计算机设备将游戏数据发送给客户端,以使客户端与计算机设备的游戏数据保持一致的过程。
进一步地,参见图5,图5是本申请实施例提供的一种数据处理具体流程示意图。如图5所示,包括如下步骤:
步骤S501,获取与主虚拟对象相关联的关联虚拟对象。
具体的,可以通过主虚拟对象的视觉范围确定与该主虚拟对象相关联的关联虚拟对象,也可以通过主虚拟对象的属性类别确定与该主虚拟对象相关联的关联虚拟对象,或者,结合主虚拟对象的视觉范围及属性类别确定与该主虚拟对象相关联的关联虚拟对象。
一种通过主虚拟对象的视觉范围确定关联虚拟对象的情况下,从距离关系列表中获取主虚拟对象分别与至少两个原始虚拟对象间的距离信息;从至少两个原始虚拟对象中获取距离信息大于第一距离阈值且小于或等于第二距离阈值的待选虚拟对象,确定待选虚拟对象与主虚拟对象的视野方向信息间的视距夹角信息;将距离信息小于或等于第一距离阈值的原始虚拟对象,或者视距夹角信息小于可视化角度阈值的待选虚拟对象,确定为与主虚拟对象相关联的关联虚拟对象,或者,可以将距离信息小于或等于第一距离阈值的原始虚拟对象,及视距夹角信息小于可视化角度阈值的待选虚拟对象,确定为与主虚拟对象相关联的关联虚拟对象。换句话说,应用场景中的各个虚拟对象与主虚拟对象间的关联性是基于距离信息及特殊逻辑确定的,例如,该特殊逻辑可以是“主虚拟对象正前方极小角度内(视觉范围)的虚拟对象”。其中,与主虚拟对象间的距离信息小于或等于第一距离阈值的原始虚拟对象,为在主虚拟对象所在的目标客户端的显示页面进行显示的虚拟对象;视距夹角信息小于可视化角度阈值的待选虚拟对象,为当主虚拟对象使用远视距道具时,在主虚拟对象所在的目标客户端的显示页面进行显示的虚拟对象,可选的,该待选虚拟对象也可以是与主虚拟对象间的距离信息小于或等于第二距离阈值的原始虚拟对象。通过对玩家在不使用远视距道具和使用远视距道具的情况下的视觉范围,确定与该玩家相关联的关联虚拟对象。
其中,上述视距夹角信息是根据待选虚拟对象在应用场景中的位置信息及主虚拟对象的视野方向信息所确定的。其中,该主虚拟对象的视野方向信息可以是单位向量,也可以是单位经纬度等,具体的,该主虚拟对象的视野方向信息的表示方式是根据该应用场景的实现方式所确定的,在此不做限制。例如,当应用场景是以基准点(0,0,0)进行创建的,则该主虚拟对象的朝向信息可以为(x1,y1,z1),x、y及z均为0到1间的数值,表示该主虚拟对象的朝向,即主虚拟对象的视野方向;获取待选虚拟对象在应用场景中的位置信息(x2,y2,z2),以及主虚拟对象在应用场景中的位置信息(x3,y3,z3),通过待选虚拟对象的位置信息(x2,y2,z2)与主虚拟对象的位置信息(x3,y3,z3)得到待选虚拟对象与主虚拟对象间的方向向量,根据该方向向量与主虚拟对象的视野方向信息确定该待选虚拟对象与主虚拟对象间的视距夹角信息。以上为一种可能的视距夹角信息的确定方式,其他可以得到待选虚拟对象与主虚拟对象的视野方向信息间的视距夹角信息的方式,在此不做限制。
举例来说,在游戏场景中,对于玩家(主虚拟对象)的可视化范围内的所有虚拟对象可以认为是与该玩家相关联的关联虚拟对象,即与玩家间的距离信息小于或等于第一距离阈值的原始虚拟对象;当玩家使用狙击镜望远镜等远视距道具进行观察时,会增加该玩家的视觉范围,在玩家使用远视距道具后的视觉范围内的虚拟对象也可以认为是与该玩家相关联的关联虚拟对象,其中,第二距离阈值为玩家使用远视距道具时所能观察到的最远距离,可视化角度阈值为玩家使用远视距道具时所能观察到的最大视野角度等。
进一步地,可以参见图6,图6是本申请实施例中提供的一种关联虚拟对象的显示场景示意图。如图6所示,假定主虚拟对象602在未使用远视距道具时在目标客户端的显示页面601中显示帧图像。获取与主虚拟对象602间的距离信息小于或等于第一距离阈值603的原始虚拟对象,确定为关联虚拟对象,将关联虚拟对象的相关信息发送给目标客户端后,目标客户端在显示页面601中显示接收到的关联虚拟对象,其中,关联虚拟对象为显示页面601中所显示的除主虚拟对象602之外的虚拟对象。其中,目标客户端在显示页面601中显示关联虚拟对象时,可以根据各个关联虚拟对象与主虚拟对象602间的距离信息,调整各个关联虚拟对象在显示页面601中所显示的尺寸。当主虚拟对象602使用远视距道具604时,从至少两个原始虚拟对象中获取距离信息大于第一距离阈值603且小于或等于第二距离阈值605的待选虚拟对象,确定待选虚拟对象与主虚拟对象的视野方向信息间的视距夹角信息,将视距夹角信息小于可视化角度阈值606的待选虚拟对象,确定为与主虚拟对象602相关联的关联虚拟对象,此时,在目标客户端的显示页面601中显示了距离信息小于或等于第一距离阈值603的关联虚拟对象,也显示了视距夹角信息小于可视化角度阈值606的关联虚拟对象。其中,上述第一距离阈值603和第二距离阈值605指的是在应用场景中的实际距离值,而不是在显示页面601中进行显示的页面显示距离,即可以认为第一距离阈值603和第二距离阈值605为应用场景中的位置信息间的距离。
一种通过主虚拟对象的属性类别确定关联虚拟对象的情况下,获取应用场景中的至少两个原始虚拟对象的属性类别,将属性类别为用户角色属性的原始虚拟对象确定为用户虚拟对象,将属性类别为系统角色属性的原始虚拟对象确定为系统虚拟对象;获取用户虚拟对象的群组标签,将群组标签与主虚拟对象的群组标签相同的用户虚拟对象,确定为关联用户虚拟对象;将关联用户虚拟对象及系统虚拟对象,确定为与主虚拟对象相关联的关联虚拟对象。举例来说,在游戏场景中,对于玩家(主虚拟对象)来说,可能需要了解与自己属于同一群组的虚拟对象的位置信息等,因此,可以获取玩家的群组标签,从原始虚拟对象中获取属性类别为用户角色属性的用户虚拟对象,从用户虚拟对象中获取与主虚拟对象的群组标签相同的关联用户虚拟对象,该用户虚拟对象为该游戏场景中除上述玩家之外的非NPC对象。其中,当多个用户虚拟对象组队进行该游戏场景或进入该游戏场景后进行组队,则为组队的多个用户虚拟对象添加相同的群组标签,以表示上述多个用户虚拟对象属于同一个群组。通过主虚拟对象的属性类别确定关联虚拟对象,可以在目标客户端的显示页面中,为主虚拟对象显示与主虚拟对象属于同一群组的虚拟对象,以使得主虚拟对象可以实时查看与自己同一群组的虚拟对象的位置信息等,即可以实时获取到自己的队友的情况,提高了同一群组中的虚拟对象间的交互性。
可选的,可以结合主虚拟对象的视觉范围及属性类别确定与主虚拟对象相关联的关联虚拟对象,将距离信息小于或等于第一距离阈值的原始虚拟对象,视距夹角信息小于可视化角度阈值的待选虚拟对象,以及关联用户虚拟对象,确定为与主虚拟对象相关联的关联虚拟对象,其中,该关联用户虚拟对象是基于群组标签所确定的,具体是获取属性类别为用户角色属性的原始虚拟对象,确定为用户虚拟对象,将群组标签与主虚拟对象的群组标签相同的用户虚拟对象确定为关联用户虚拟对象。
其中,在上述通过主虚拟对象的视觉范围确定关联虚拟对象的情况中,上述距离关系列表包括各个系统虚拟对象分别与各个用户虚拟对象间的距离信息。可选的,获取每个原始虚拟对象与主虚拟对象间的距离信息所属的距离范围,获取每个原始虚拟对象的更新缓存时间;获取距离范围对应的列表更新时间阈值,将至少两个原始虚拟对象中更新缓存时间与第三系统网络时间的差值大于或等于列表更新时间阈值的原始虚拟对象,确定为目标虚拟对象;更新距离关系列表中目标虚拟对象与主虚拟对象间的距离信息。通过对每个原始虚拟对象与主虚拟对象间的距离信息进行划分,得到多个距离范围,对每个距离范围设置一个列表更新时间阈值,使得不同的距离范围内对应的距离信息经过不同的列表更新时间阈值进行更新,以使距离信息较小时,更新频率较大,距离信息较大时,更新频率较小,从而在不影响主虚拟对象的帧图像显示的情况下,减少对距离关系列表的更新频率,减少距离关系列表的更新数据量。
步骤S502,获取该关联虚拟对象的角色变量中的第一类型变量。
具体的,获取关联虚拟对象的角色变量中属于第一更新频率类型的变量,作为第一类型变量。其中,该第一更新频率类型的变量可以认为是在应用场景中每一帧都会发生变化的变量。具体的,获取主虚拟对象对应的类对象集合,该类对象集合包括至少两个对象变量子集;从类对象集合的至少两个对象变量子集中获取关联虚拟对象对应的对象变量子集,其中,该对象变量子集包括关联虚拟对象的角色变量中属于第一更新频率类型的变量;从对象变量子集中获取关联虚拟对象的第一类型变量。其中,该第一类型变量可以包括位置信息、视野方向信息、速度信息、加速度信息、路径信息及布娃娃(Ragdoll)信息等,由于加速度信息及视野方向信息等可以由客户端根据接收到的变更数据计算得到,因此,可以认为计算机设备不需要对该加速度信息及视野方向信息等进行处理。其中,Ragdoll信息为关联虚拟对象的骨骼信息,用于渲染出对应的关联虚拟对象的角色形态,即可以用于渲染出在显示页面中显示出来的关联虚拟对象。其中,该第一类型变量的获取过程还可以参见图2中的步骤S201的具体描述,在此不做赘述。
其中,第一类型变量包括历史路径信息时,获取关联虚拟对象在目标时间范围内的运动轨迹,基于运动轨迹确定上述关联虚拟对象的运动位置点,将运动位置点确定为关联虚拟对象的路径信息,将第一类型变量中的历史路径信息更新为路径信息;该目标时间范围是指更新第一类型变量中的路径信息的间隔时长。换句话说,可以对关联虚拟对象在目标时间范围内的运动轨迹进行预测,基于该运动轨迹确定该关联虚拟对象的运动位置点,将历史路径信息更新为基于运动位置点确定的路径信息,记录该路径信息的路径更新时间,在该路径更新时间基础上,经过目标时间范围后,再次对该关联虚拟对象的路径信息进行预测。举例来说,假定目标时间范围为2s,记录的路径更新时间为6时35分05秒,则在该路径更新时间的基础上,下次对路径信息进行更新的时间为6时35分07秒,进一步地,该路径更新时间可以精确到毫秒等,且每一次对路径信息进行更新,都对路径更新时间进行同步更新。
进一步地,可以参见图7,图7是本申请实施例提供的一种第一类型变量确定场景示意图。如图7所示,获取主虚拟对象对应的类对象集合701,该类对象集合701包括至少两个对象变量子集,包括对象变量子集7011、对象变量子集7012、...及对象变量子集7013等,每个对象变量子集中包括对应关联虚拟对象的角色变量中属于第一更新频率类型的变量,即对应关联虚拟对象的第一类型变量。如图7中所示,对象变量子集7011中包括关联虚拟对象1的第一类型变量,对象变量子集7012中包括关联虚拟对象2的第一类型变量,...,对象变量子集7013中包括关联虚拟对象3的第一类型变量。从各个对象变量子集中可以获取到对应关联虚拟对象的第一类型变量。其中,以关联虚拟对象1更新702为例,该关联虚拟对象1的角色变量703中包括第一类型变量7031、第二类型变量7032、其他数据7033及全量更新时间7034,当确定该关联虚拟对象1为与主虚拟对象相关联的虚拟对象,则将该关联虚拟对象1的第一类型变量7031作为对象变量子集7011添加至类对象集合701中。其中,对于其他的虚拟对象也包括第一类型变量、第二类型变量、其他数据及全量更新时间等,该更新过程可以参见关联虚拟对象1的更新过程。因此,可选的,可以在确定与主虚拟对象相关联的关联虚拟对象后,获取该关联虚拟对象的角色变量,从该角色变量中获取第一类型变量,以图7为例,获取到与主虚拟对象关联的关联虚拟对象1后,获取该关联虚拟对象1的角色变量703,获取该角色变量703中的第一类型变量7031。可选的,该类对象集合可以认为是Holder类对象集合,该Holder是通过原始值的复制传递变量的类,为不可变的对象引用提供一个可变的包装。
可选的,可以认为该应用场景中包括多少个主虚拟对象,就包括多少个类对象集合,每个类对象集合对应一个主虚拟对象,用于处理对应主虚拟对象的第一类型变量。换句话说,当计算机设备获取到该应用场景中的主虚拟对象后,为每一个主虚拟对象创建一个类对象集合,并获取与每个主虚拟对象关联的关联虚拟对象,将关联虚拟对象的第一类型变量添加至对应主虚拟对象的类对象集合中。
步骤S503,对第一类型变量进行压缩处理,得到压缩数据,将压缩数据封装成主虚拟对象的第一变更数据。
具体的,对第一类型变量进行压缩处理,得到压缩数据,将压缩数据进行封装得到主虚拟对象的第一变更数据。
具体的,一种压缩情况下,第一类型变量包括位置信息;获取关联虚拟对象的位置信息及位置精度,基于位置精度将位置信息转换为整型位置数据,将整型位置数据确定为压缩数据,该整型位置数据为有损数据。其中,第一类型变量中数据类型为浮点型数据的变量,也可以通过上述位置信息的压缩方式进行压缩,由于浮点型数据所占的内存大小比整型数据所占的内存大小,所以通过这种方式可以减少第一类型变量所占的内存大小。例如,位置信息为以(X,Y,Z)进行表示的数据,位置精度为0.2厘米,使用22比特存储位置信息的X和Y,使用20比特存储位置信息的Z等,该位置信息的X、Y及Z的内存大小可以根据应用场景的具体实现所确定,位置精度也可以是其他的数值。例如,一个关联虚拟对象的位置信息中的X为1001.252,基于位置精度对X进行压缩,得到压缩后的X为1001.2,将1001.2更新为整型位置数据中的X,为5006。
可选的,一种压缩情况下,在待更新帧中,获取第一类型变量,在主虚拟对象所在的历史帧中,获取第一类型变量对应的历史缓存变量,其中,该历史帧为待更新帧的上一帧;获取历史缓存变量与第一类型变量间的第一差异变量;对第一差异变量进行编码,得到压缩数据。其中,该编码可以是哈夫曼编码等可以对数据进行压缩或简化的编码方式。其中,对于第一类型变量中相邻帧间的数据为递变关系的变量,均可以通过该方式进行压缩,如在第二帧的数据是基于在第一帧的数据进行变化,在第三帧的数据是基于在第二帧的数据进行变化等的变量。举例来说,对于主虚拟对象的位置信息,在相邻帧之间是依次变化的,可以获取该位置信息的历史缓存变量,获取历史缓存变量与位置信息间的第一差异变量,对第一差异变量进行编码,得到压缩数据,假定该位置信息的历史缓存变量为(100,201,5),该位置信息为(101,201.2,5),则获取历史缓存变量与位置信息间的第一差异变量为(1,0.2,0),再对第一差异变量(1,0.2,0)进行编码,得到压缩数据。
具体的,可以参见图8,图8是本申请实施例提供的一种基于历史帧进行更新的数据处理示意图。如图8所示,在主虚拟对象802所在的目标客户端的显示页面801中显示了关联虚拟对象803a及关联虚拟对象804a,即可以认为在显示页面801中显示的是历史帧,获取该关联虚拟对象803a的位置信息(即历史缓存变量)为(201,100,5),以及该关联虚拟对象804a的位置信息(即历史缓存变量)为(10,21,5)。在待更新帧中,获取关联虚拟对象803b的位置信息(204,97,5),以及关联虚拟对象804b的位置信息(12,25,5)。其中,可以认为历史帧为待更新帧的上一帧,关联虚拟对象803a的位置信息为关联虚拟对象803b的位置信息的历史缓存变量,得到关联虚拟对象803b的第一差异变量为(3,-3,0);关联虚拟对象804a的位置信息为关联虚拟对象804b的位置信息的历史缓存变量,得到关联虚拟对象804b的第一差异变量为(2,4,0),对第一差异变量(3,-3,0)及第一差异变量为(2,4,0)进行编码,将编码结果发送给目标客户端。目标客户端在接收到编码结果后,还原得到第一差异变量(3,-3,0)及第一差异变量为(2,4,0),基于第一差异变量(3,-3,0)在显示页面801中显示关联虚拟对象803b,基于第一差异变量为(2,4,0)在显示页面801中显示关联虚拟对象804b。换句话说,目标客户端对显示页面801中的关联虚拟对象803a及关联虚拟对象804a进行更新,得到关联虚拟对象803b及关联虚拟对象804b,此时,在显示页面801中不存在关联虚拟对象803a及关联虚拟对象804a,即将显示页面801中显示的历史帧变更为待更新帧。
可选的,一种压缩情况下,第一类型变量包括关联虚拟对象的对象标识;获取关联虚拟对象的前继关联虚拟对象的对象标识,获取关联虚拟对象的对象标识与前继关联虚拟对象的对象标识间的第二差异变量,其中,前继关联虚拟对象与关联虚拟对象为依次处理关系;对第二差异变量进行编码,得到压缩数据。举例来说,对于关联虚拟对象的对象标识来说,不同的对象标识间的差异性较小,可以通过该种方式进行压缩。例如,与主虚拟对象关联的关联虚拟对象有3个,第一个关联虚拟对象的对象标识为101,第二个关联虚拟对象的对象标识为103,第三个关联虚拟对象的对象标识为107,则可以认为第一个关联虚拟对象为第二个关联虚拟对象的前继关联虚拟对象,第二个关联虚拟对象为第三个关联虚拟对象的前继关联虚拟对象,根据该压缩方法,可以得到第二个关联虚拟对象的第二差异变量为(103-101-1=1),得到第三个关联虚拟对象的第二差异变量为(107-103-1=3),其中,“-1”是由于两个关联虚拟对象的对象标识不可能相同,可选的,获取第二差异变量时也可以不进行“-1”。
其中,上述各个压缩方法可以组合执行,例如,对于位置信息来说,可以将该位置信息的第二差异变量转换为整型位置数据,对整型位置数据进行编码,得到压缩数据,或者,将位置信息转换为整型位置数据,根据整型位置数据得到该位置信息的第二差异变量,对第二差异变量进行编码,得到压缩数据。
可选的,若第一类型变量包括Ragdoll信息时,可以直接将该Ragdoll信息作为压缩数据。其中,该Ragdoll信息与位置信息相关,因此,可以将Ragdoll信息视为属于第一更新频率类型的变量。其中,当关联虚拟对象包括多个第一类型变量时,得到每个第一类型变量的压缩数据后,将所有压缩数据进行封装得到第一变更数据。
步骤S504,将主虚拟对象的第一变更数据发送给主虚拟对象所在的目标客户端。
具体的,将主虚拟对象的第一变更数据发送给主虚拟对象所在的目标客户端,以使目标客户端基于第一变更数据进行帧图像更新显示。其中,当目标客户端接收到第一变更数据后,对第一变更数据进行还原,得到第一类型变量,根据该第一类型变量在显示页面中进行帧图像更新显示。
步骤S505,确定第二类型变量发生变化。
具体的,若接收到针对关联虚拟对象的第二类型变量的触发信息,则确定第二类型变量发生变化,执行步骤S506。或者,获取关联虚拟对象的第二类型变量的历史更新时间及第一系统网络时间,其中,第二类型变量为角色变量中属于第二更新频率类型的变量;若第一系统网络时间与历史更新时间的差值大于或等于第二类型变量更新时间阈值,则确定第二类型变量发生变化,执行步骤S506。其中,该触发信息可以认为是会造成对应第二类型变量发生数据更新的操作信息,例如,当关联虚拟对象被击中,该关联虚拟对象的血量信息及位移动画参数等会发生变化,该“被击中”可以认为是针对关联虚拟对象的血量信息及位移动画参数等的触发信息。可选的,可以在未接收到针对关联虚拟对象的第二类型变量的触发信息时,但第一系统网络时间与历史更新时间的差值大于或等于第二类型变量更新时间阈值时,确定需要处理第二类型变量,执行步骤S506;或者,可以在接收到针对关联虚拟对象的第二类型变量的触发信息时,但第一系统网络时间与历史更新时间的差值小于第二类型变量更新时间阈值时,确定需要处理第二类型变量,执行步骤S506;或者,可以在接收到针对关联虚拟对象的第二类型变量的触发信息时,且第一系统网络时间与历史更新时间的差值大于或等于第二类型变量更新时间阈值时,确定需要处理第二类型变量,执行步骤S506。
可选的,接收到针对关联虚拟对象的第二类型变量的触发信息,或者第一系统网络时间与历史更新时间的差值大于或等于第二类型变量更新时间阈值,两者任意一个条件满足时,就无需判断另一个条件是否满足,可以直接确定需要处理第二类型变量,执行步骤S506。其中,当第一个判断的条件不满足时,判断另一个条件是否满足。其中,两个条件的判断过程的执行顺序不做限定。
步骤S506,获取该关联虚拟对象的角色变量中的第二类型变量,将第二类型变量封装成第二变更数据。
具体的,获取上述第二类型变量,该第二类型变量为所述角色变量中属于第二更新频率类型的变量,将第二类型变量封装成主虚拟对象的第二变更数据。其中,当第一系统网络时间与历史更新时间的差值大于或等于第二类型变量更新时间阈值时,可以认为将第二类型变量封装成主虚拟对象的第三变更数据。换句话说,可以认为第二类型变量为一些触发式的变量,例如虚拟对象中受击信息变更、攻击行为及位移动画参数等,可选的,当第二类型变量发生变更时,可以针对该第二类型变量对应的关联虚拟对象执行参与者复制(Actor Replication)方法,以对第二类型变量进行全量复制。
步骤S507,将主虚拟对象的第二变更数据发送给主虚拟对象所在的目标客户端。
具体的,将第二变更数据发送给主虚拟对象所在的目标客户端,以使目标客户端基于第二变更数据进行帧图像更新显示。其中,若得到的是第三变更数据,则将第三变更数据发送给主虚拟对象所在的目标客户端,以使目标客户端基于第三变更数据进行帧图像更新显示。
具体的,可以参见图7,当关联虚拟对象1的第二类型变量7041更新时,将该第二类型变量7041加入全量更新列表704中,该全量更新列表704中包括本次数据处理过程中需要进行更新的关联虚拟对象的第二类型变量。例如,在本次数据处理过程中,关联虚拟对象1的第二类型变量7041、关联虚拟对象2的第二类型变量7042以及关联虚拟对象3的第二类型变量7043发生更新,则将关联虚拟对象1的第二类型变量7041、关联虚拟对象2的第二类型变量7042以及关联虚拟对象3的第二类型变量7043添加至全量更新列表704中。
针对上述步骤S505至步骤S507,举例来说,参见图9,图9是本申请实施例提供的一种第二类型变量触发场景示意图。如图9所示,假定主虚拟对象902的关联虚拟对象903a的第二类型变量包括血量信息904a及受击信息等,以血量信息904a为例,当该主虚拟对象902所在的目标客户端的显示页面901中显示有关联虚拟对象903a,及该关联虚拟对象903a的血量信息904a时,主虚拟对象902使用远距离射击工具905向关联虚拟对象903a进行射击,其中,该血量信息904a为100%,该远距离射击工具905可以是弓弩、枪械及爆破类工具等。假定远距离射击工具905为枪械,当枪械中射击出的子弹906射中关联虚拟对象903a时,计算机设备接收到关联虚拟对象903a被射击操作,即接收到针对该关联虚拟对象903a的第二类型变量的触发信息,获取该关联虚拟对象903b的第二类型变量,其中,关联虚拟对象903a与关联虚拟对象903b可以认为是在相邻帧中显示的同一个虚拟对象,此处通过不同标号表示该虚拟对象的角色变量发生了变化。当计算机设备获取到关联虚拟对象903b的血量信息904b为80%时,将血量信息904b进行封装得到第二变更数据,将第二变更数据发送给目标客户端。目标客户端基于接收到的第二变更数据还原得到血量信息904b,在显示页面901中显示关联虚拟对象903b及该关联虚拟对象903b的血量信息904b。可选的,当关联虚拟对象903a被子弹906射中时,该关联虚拟对象903a由于与子弹906间的受力作用,关联虚拟对象903a的位移动画参数也可能发生变化,此时,上述触发信息还针对关联虚拟对象903a的位移动画参数。其中,对于关联虚拟对象来说,同一个触发信息可能是针对至少一个第二类型变量的,在此不做限制。
可选的,计算机设备在接收到关联虚拟对象903a被射击操作后,可以基于射中关联虚拟对象903a的子弹906的伤害值、关联虚拟对象903a被射中的部位、及该关联虚拟对象903a的血量信息904a等,获取到关联虚拟对象903b的血量信息904b。或者,计算机设备在获取到子弹906的伤害值、关联虚拟对象903a被射中的部位,确定该关联虚拟对象903a的血量减少数值,将血量减少数值封装至第二变更数据中,目标客户端还原得到血量减少数值后,基于上一帧的血量信息904a及该血量减少数值,得到血量信息904b,在显示页面901中显示该血量信息904b。
其中,上述对第一类型变量的处理过程(步骤S502至步骤S504)与对第二类型变量的处理过程(步骤S505至步骤S507)可以为同步执行,也可以为异步执行,且两者的执行顺序不做限定。可选的,在通过执行步骤S502至步骤S503后得到压缩数据,且通过执行步骤S505至步骤S506后得到第二类型变量,将压缩数据和第二类型变量进行封装,得到目标变更数据,将目标变更数据发送给主虚拟对象所在的目标客户端,以使目标客户端基于目标变更数据进行帧图像更新显示。具体参见图7,在得到与主虚拟对象关联的各个关联虚拟对象的第一类型变量后,将各个关联虚拟对象的第一类型变量分别作为一个对象变量子集,添加至类对象集合701中;获取本次数据处理过程中数据发生更新的第二类型变量,将数据发生更新的第二类型变量添加至全量更新列表704中。对类对象集合701中所包含的各个对象变量子集的数据进行压缩,得到每个对象变量子集对应的压缩数据。计算机设备对类对象集合701中处理之后得到的压缩数据,以及全量更新列表704中包括的各个第二类型数据进行封装,得到目标变更数据,将目标变更数据发送给主虚拟对象所在的目标客户端,以使目标客户端基于目标变更数据进行帧图像更新显示。
可选的,在执行上述步骤S502后,获取关联虚拟对象的第一类型变量的历史全量更新时间及第二系统网络时间;若历史全量更新时间与第二系统网络时间的差值大于或等于全量更新时间阈值,则将第一类型变量封装成全量变更数据,将全量变更数据发送给目标客户端,以使目标客户端基于全量变更数据进行帧图像更新显示,并基于第二系统网络时间更新历史全量更新时间;若历史全量更新时间与第二系统网络时间的差值小于全量更新时间阈值,则执行步骤S503,对第一类型变量进行压缩处理,得到压缩数据。可选的,该历史全量更新时间可以包含于对应关联虚拟对象的角色变量中,如图7中所示,该历史全量更新时间为关联虚拟对象1的角色变量703中的全量更新时间7034。可选的,该历史全量更新时间也可以通过其他方式进行存储,在此不做限制。其中,在对角色变量进行处理时,可以通过对象标识与对应的关联虚拟对象进行关联,以表示该角色变量所属的关联虚拟对象。
进一步地,还可以将虚拟对象的角色变量划分为至少两个类别,如上述属于第一更新频率类型的第一类型变量,以及属于第二更新频率类型的第二类型变量。除这种划分方式外,还可以基于不同的更新频率类型将角色变量划分为更多类型的变量,如划分为三种类型变量,或者四种类型变量,或者五种类型变量等等,在不同的划分情况下,每种类型变量所属的更新频率类型不同,其中,在同一种划分情况下,可以通过树状结构管理不同的更新频率类型,对于不同的更新频率类型对应的变量的数据处理方法不相同。举例来说,参见图10是本申请实施例提供的一种变量划分场景示意图。如图10所示,第一种划分情况下,基于第一更新频率类型及第二更新频率类型对角色变量进行划分,将角色变量中属于第一更新频率类型的变量,作为第一类型变量;将角色变量中属于第二更新频率类型的变量,作为第二类型变量;其中,第一类型变量及第二类型变量的数据处理方法不相同,其中,可以通过第一类型变量与第二类型变量渲染出一个完整的关联虚拟对象。第二种划分情况下,基于第三更新频率类型、第四更新频率类型及第五更新频率类型对角色变量进行划分,将角色变量中属于第三更新频率类型的变量,作为第三类型变量;将角色变量中属于第四更新频率类型的变量,作为第四类型变量;将角色变量中属于第五更新频率类型的变量,作为第五类型变量;其中,第三类型变量、第四类型变量及第五类型变量的数据处理方法不相同,其中,可以通过第三类型变量、第四类型变量及第五类型变量渲染出一个完整的关联虚拟对象。同理,也可以将角色变量通过其他划分方式进行分类。
本申请实施例通过获取与主虚拟对象相关联的关联虚拟对象,获取关联虚拟对象的角色变量中属于第一更新频率类型的变量,作为第一类型变量,对第一类型变量进行压缩处理,得到压缩数据,将压缩数据进行封装得到主虚拟对象的第一变更数据,将第一变更数据发送给主虚拟对象所在的目标客户端,以使目标客户端基于第一变更数据进行帧图像更新显示。并在第二类型变量发生变化时对第二类型变量进行更新,或者对第二类型变量进行周期性更新,且对第一类型变量继续周期性全量更新,从而解决在全量更新之前可能出现的丢包问题。通过上述过程,对关联虚拟对象的角色变量进行分类处理,并对属于第一更新频率类型的第一类型变量进行压缩处理,大大减少了需要进行处理的数据量及需要发送的数据量,提高了数据处理效率。
参见图11,图11是本申请实施例提供的一种数据处理装置示意图。上述数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该数据处理装置为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的相应步骤。如图11所示,该数据处理装置110可以用于上述图2所对应实施例中的计算机设备,具体的,该数据处理装置110可以包括:第一获取模块11、压缩模块12、第一封装模块13及第一发送模块14。
第一获取模块11,用于获取与主虚拟对象相关联的关联虚拟对象,获取上述关联虚拟对象的角色变量中属于第一更新频率类型的变量,作为第一类型变量;
压缩模块12,用于对上述第一类型变量进行压缩处理,得到压缩数据;
第一封装模块13,用于将上述压缩数据进行封装得到上述主虚拟对象的第一变更数据;
第一发送模块14,用于将上述主虚拟对象的第一变更数据发送给上述主虚拟对象所在的目标客户端,以使上述目标客户端基于上述第一变更数据进行帧图像更新显示。
其中,上述装置110还包括:
第二获取模块15,用于若接收到针对上述关联虚拟对象的第二类型变量的触发信息,则获取上述第二类型变量;上述第二类型变量为上述角色变量中属于第二更新频率类型的变量;
第二封装模块16,用于将上述第二类型变量封装成上述主虚拟对象的第二变更数据;
第二发送模块17,用于将上述第二变更数据发送给上述主虚拟对象所在的目标客户端,以使上述目标客户端基于上述第二变更数据进行帧图像更新显示。
其中,上述装置110还包括:
第三获取模块18,用于获取上述关联虚拟对象的第二类型变量的历史更新时间及第一系统网络时间;上述第二类型变量为上述角色变量中属于第二更新频率类型的变量;
第三封装模块19,用于若上述第一系统网络时间与上述历史更新时间的差值大于或等于第二类型变量更新时间阈值,则将上述第二类型变量封装成上述主虚拟对象的第三变更数据;
第三发送模块20,用于将上述第三变更数据发送给上述主虚拟对象所在的目标客户端,以使上述目标客户端基于上述第三变更数据进行帧图像更新显示。
其中,上述第一类型变量包括位置信息;
上述压缩模块12,包括:
第一获取单元121,用于获取上述关联虚拟对象的上述位置信息及位置精度;
确定单元122,用于基于上述位置精度将上述位置信息转换为整型位置数据,将上述整型位置数据确定为上述压缩数据。
其中,上述压缩模块12,包括:
第二获取单元123,用于在待更新帧中,获取上述第一类型变量,在上述主虚拟对象所在的历史帧中,获取上述第一类型变量对应的历史缓存变量;上述历史帧为上述待更新帧的上一帧;
第三获取单元124,用于获取上述历史缓存变量与上述第一类型变量间的第一差异变量;
第一生成单元125,用于对上述第一差异变量进行编码,得到上述压缩数据。
其中,上述第一类型变量包括上述关联虚拟对象的对象标识;
上述压缩模块12,包括:
第四获取单元126,用于获取上述关联虚拟对象的前继关联虚拟对象的对象标识,获取上述关联虚拟对象的对象标识与上述前继关联虚拟对象的对象标识间的第二差异变量;上述前继关联虚拟对象与上述关联虚拟对象为依次处理关系;
第二生成单元127,用于对上述第二差异变量进行编码,得到上述压缩数据。
其中,上述第一类型变量包括历史路径信息;
上述第一获取模块11,包括:
路径获取单元111,用于获取上述关联虚拟对象在目标时间范围内的运动轨迹,基于上述运动轨迹确定上述关联虚拟对象的运动位置点,将上述运动位置点确定为上述关联虚拟对象的路径信息,将上述第一类型变量中的上述历史路径信息更新为上述路径信息;上述目标时间范围是指更新上述第一类型变量中的上述路径信息的间隔时长。
其中,上述装置110还包括:
第四获取模块21,用于获取上述关联虚拟对象的上述第一类型变量的历史全量更新时间及第二系统网络时间;
第四封装模块22,用于若上述历史全量更新时间与上述第二系统网络时间的差值大于或等于全量更新时间阈值,则将上述第一类型变量的参数封装成全量变更数据,将上述全量变更数据发送给上述目标客户端,以使上述目标客户端基于上述全量变更数据进行帧图像更新显示;
上述第四封装模块22,还用于若上述历史全量更新时间与上述第二系统网络时间的差值小于上述全量更新时间阈值,则通过上述压缩模块12执行上述对上述第一类型变量进行压缩处理,得到压缩数据的步骤。
其中,上述装置110还包括:
距离获取模块23,用于从距离关系列表中获取上述主虚拟对象分别与至少两个原始虚拟对象间的距离信息;
视距确定模块24,用于从上述至少两个原始虚拟对象中获取上述距离信息大于第一距离阈值且小于或等于第二距离阈值的待选虚拟对象,确定上述待选虚拟对象与上述主虚拟对象的视野方向信息间的视距夹角信息;
关联确定模块25,用于将上述距离信息小于或等于上述第一距离阈值的原始虚拟对象,或者上述视距夹角信息小于可视化角度阈值的待选虚拟对象,确定为与上述主虚拟对象相关联的上述关联虚拟对象。
其中,上述装置110还包括:
属性分类模块26,用于获取应用场景中的至少两个原始虚拟对象的属性类别,将上述属性类别为用户角色属性的原始虚拟对象确定为用户虚拟对象,将上述属性类别为系统角色属性的原始虚拟对象确定为系统虚拟对象;
用户关联模块27,用于获取上述用户虚拟对象的群组标签,将上述群组标签与上述主虚拟对象的群组标签相同的用户虚拟对象,确定为关联用户虚拟对象;
上述关联确定模块25,还用于将上述关联用户虚拟对象及上述系统虚拟对象,确定为与上述主虚拟对象相关联的上述关联虚拟对象。
其中,上述装置110还包括:
第五获取模块28,用于获取每个原始虚拟对象与上述主虚拟对象间的距离信息所属的距离范围,获取上述每个原始虚拟对象的更新缓存时间;
目标确定模块29,用于获取上述距离范围对应的列表更新时间阈值,将上述至少两个原始虚拟对象中更新缓存时间与第三系统网络时间的差值大于或等于上述列表更新时间阈值的原始虚拟对象,确定为目标虚拟对象;
更新模块30,用于更新上述距离关系列表中上述目标虚拟对象与上述主虚拟对象间的距离信息。
其中,上述第一获取模块11,包括:
类获取单元112,用于获取上述主虚拟对象对应的类对象集合;上述类对象集合包括至少两个对象变量子集;
子集获取单元113,用于从上述类对象集合的上述至少两个对象变量子集中获取上述关联虚拟对象对应的对象变量子集;上述对象变量子集包括上述关联虚拟对象的角色变量中属于上述第一更新频率类型的变量;
变量获取单元114,用于从上述对象变量子集中获取上述关联虚拟对象的上述第一类型变量。
本申请实施例描述了数据处理装置,上述装置通过获取与主虚拟对象相关联的关联虚拟对象,获取关联虚拟对象的角色变量中属于第一更新频率类型的变量,作为第一类型变量,对第一类型变量进行压缩处理,得到压缩数据,将压缩数据进行封装得到主虚拟对象的第一变更数据,将第一变更数据发送给主虚拟对象所在的目标客户端,以使目标客户端基于第一变更数据进行帧图像更新显示。通过上述过程,对关联虚拟对象的角色变量进行分类处理,并对属于第一更新频率类型的第一类型变量进行压缩处理,大大减少了需要进行处理的数据量及需要发送的数据量,提高了数据处理效率。
参见图12,图12是本申请实施例提供的一种计算机设备的结构示意图。如图12所示,本申请实施例中的计算机设备1200可以包括:一个或多个处理器1201、存储器1202和输入输出接口1203。上述处理器1201、存储器1202和输入输出接口1203通过总线1204连接。存储器1202用于存储计算机程序,该计算机程序包括程序指令,输入输出接口1203用于输入数据和输出数据,包括各个通讯客户端与事件服务器间的数据交互,以及用户与各个通讯客户端间的数据交互;处理器1201用于执行存储器1202存储的程序指令,执行如下操作:
获取与主虚拟对象相关联的关联虚拟对象,获取关联虚拟对象的角色变量中属于第一更新频率类型的变量,作为第一类型变量;
对上述第一类型变量进行压缩处理,得到压缩数据,将上述压缩数据进行封装得到上述主虚拟对象的第一变更数据;
将上述主虚拟对象的第一变更数据发送给上述主虚拟对象所在的目标客户端,以使上述目标客户端基于上述第一变更数据进行帧图像更新显示。
在一些可行的实施方式中,上述处理器1201可以是中央处理单元(centralprocessing unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器1202可以包括只读存储器和随机存取存储器,并向处理器1201和输入输出接口1203提供指令和数据。存储器1202的一部分还可以包括非易失性随机存取存储器。例如,存储器1202还可以存储设备类型的信息。
具体实现中,上述计算机可通过其内置的各个功能模块执行如上述图2或图5中各个步骤所提供的实现方式,具体可参见上述图2或图5中各个步骤所提供的实现方式,在此不再赘述。
本申请实施例通过提供一种计算机,包括:处理器、输入输出接口、存储器,通过处理器获取存储器中的计算机指令,执行上述图2或图5中所示方法的各个步骤,进行数据处理操作。通过存储器中的计算机指令,处理器执行以下步骤:获取与主虚拟对象相关联的关联虚拟对象,获取关联虚拟对象的角色变量中属于第一更新频率类型的变量,作为第一类型变量,对第一类型变量进行压缩处理,得到压缩数据,将压缩数据进行封装得到主虚拟对象的第一变更数据,将第一变更数据发送给主虚拟对象所在的目标客户端,以使目标客户端基于第一变更数据进行帧图像更新显示。并在第二类型变量发生变化时对第二类型变量进行更新,或者对第二类型变量进行周期性更新,且对第一类型变量继续周期性全量更新,从而解决在全量更新之前可能出现的丢包问题。通过上述过程,对关联虚拟对象的角色变量进行分类处理,并对属于第一更新频率类型的第一类型变量进行压缩处理,大大减少了需要进行处理的数据量及需要发送的数据量,提高了数据处理效率。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时实现图2或图5中各个步骤所提供的数据处理方法,具体可参见上述图2或图5各个步骤所提供的实现方式,在此不再赘述。
上述计算机可读存储介质可以是前述任一实施例提供的数据处理装置或者上述计算机的内部存储单元,例如计算机的硬盘或内存。该计算机可读存储介质也可以是该计算机的外部存储设备,例如该计算机上配备的插接式硬盘,智能存储卡(smart mediacard,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例提供的方法及相关装置是参照本申请实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (15)
1.一种数据处理方法,其特征在于,所述方法包括:
当进行帧图像更新时,获取与主虚拟对象相关联的关联虚拟对象,获取所述关联虚拟对象的角色变量中属于第一更新频率类型的变量,作为第一类型变量;所述第一更新频率类型是指每一帧都进行变化的更新频率类型,或更新频率大于或等于第一更新频率阈值的更新频率类型;
对所述第一类型变量进行压缩处理,得到压缩数据,将所述压缩数据进行封装得到所述主虚拟对象的第一变更数据;
将所述主虚拟对象的第一变更数据发送给所述主虚拟对象所在的目标客户端,以使所述目标客户端基于所述第一变更数据进行帧图像更新显示。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
若接收到针对所述关联虚拟对象的第二类型变量的触发信息,则获取所述第二类型变量;所述第二类型变量为所述角色变量中属于第二更新频率类型的变量;
将所述第二类型变量封装成所述主虚拟对象的第二变更数据,将所述第二变更数据发送给所述主虚拟对象所在的目标客户端,以使所述目标客户端基于所述第二变更数据进行帧图像更新显示。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述关联虚拟对象的第二类型变量的历史更新时间及第一系统网络时间;所述第二类型变量为所述角色变量中属于第二更新频率类型的变量;
若所述第一系统网络时间与所述历史更新时间的差值大于或等于第二类型变量更新时间阈值,则将所述第二类型变量封装成所述主虚拟对象的第三变更数据,将所述第三变更数据发送给所述主虚拟对象所在的目标客户端,以使所述目标客户端基于所述第三变更数据进行帧图像更新显示。
4.如权利要求1所述的方法,其特征在于,所述第一类型变量包括位置信息;
所述对所述第一类型变量进行压缩处理,得到压缩数据,包括:
获取所述关联虚拟对象的所述位置信息及位置精度,基于所述位置精度将所述位置信息转换为整型位置数据,将所述整型位置数据确定为所述压缩数据。
5.如权利要求1所述的方法,其特征在于,所述对所述第一类型变量进行压缩处理,得到压缩数据,包括:
在待更新帧中,获取所述第一类型变量,在所述主虚拟对象所在的历史帧中,获取所述第一类型变量对应的历史缓存变量;所述历史帧为所述待更新帧的上一帧;
获取所述历史缓存变量与所述第一类型变量间的第一差异变量;
对所述第一差异变量进行编码,得到所述压缩数据。
6.如权利要求1所述的方法,其特征在于,所述第一类型变量包括所述关联虚拟对象的对象标识;
所述对所述第一类型变量进行压缩处理,得到压缩数据,包括:
获取所述关联虚拟对象的前继关联虚拟对象的对象标识,获取所述关联虚拟对象的对象标识与所述前继关联虚拟对象的对象标识间的第二差异变量;所述前继关联虚拟对象与所述关联虚拟对象为依次处理关系;
对所述第二差异变量进行编码,得到所述压缩数据。
7.如权利要求1所述的方法,其特征在于,所述第一类型变量包括历史路径信息;
所述获取所述关联虚拟对象的角色变量中属于第一更新频率类型的变量,作为第一类型变量,包括:
获取所述关联虚拟对象在目标时间范围内的运动轨迹,基于所述运动轨迹确定所述关联虚拟对象的运动位置点,将所述运动位置点确定为所述关联虚拟对象的路径信息,将所述第一类型变量中的所述历史路径信息更新为所述路径信息;所述目标时间范围是指更新所述第一类型变量中的所述路径信息的间隔时长。
8.如权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述关联虚拟对象的所述第一类型变量的历史全量更新时间及第二系统网络时间;
若所述历史全量更新时间与所述第二系统网络时间的差值大于或等于全量更新时间阈值,则将所述第一类型变量封装成全量变更数据,将所述全量变更数据发送给所述目标客户端,以使所述目标客户端基于所述全量变更数据进行帧图像更新显示;
若所述历史全量更新时间与所述第二系统网络时间的差值小于所述全量更新时间阈值,则执行所述对所述第一类型变量进行压缩处理,得到压缩数据的步骤。
9.如权利要求1所述的方法,其特征在于,所述方法还包括:
从距离关系列表中获取所述主虚拟对象分别与至少两个原始虚拟对象间的距离信息;
从所述至少两个原始虚拟对象中获取所述距离信息大于第一距离阈值且小于或等于第二距离阈值的待选虚拟对象,确定所述待选虚拟对象与所述主虚拟对象的视野方向信息间的视距夹角信息;
将所述距离信息小于或等于所述第一距离阈值的原始虚拟对象,或者所述视距夹角信息小于可视化角度阈值的待选虚拟对象,确定为与所述主虚拟对象相关联的所述关联虚拟对象。
10.如权利要求1所述的方法,其特征在于,所述方法还包括:
获取应用场景中的至少两个原始虚拟对象的属性类别,将所述属性类别为用户角色属性的原始虚拟对象确定为用户虚拟对象,将所述属性类别为系统角色属性的原始虚拟对象确定为系统虚拟对象;
获取所述用户虚拟对象的群组标签,将所述群组标签与所述主虚拟对象的群组标签相同的用户虚拟对象,确定为关联用户虚拟对象;
将所述关联用户虚拟对象及所述系统虚拟对象,确定为与所述主虚拟对象相关联的所述关联虚拟对象。
11.如权利要求9所述的方法,其特征在于,所述方法还包括:
获取每个原始虚拟对象与所述主虚拟对象间的距离信息所属的距离范围,获取所述每个原始虚拟对象的更新缓存时间;
获取所述距离范围对应的列表更新时间阈值,将所述至少两个原始虚拟对象中更新缓存时间与第三系统网络时间的差值大于或等于所述列表更新时间阈值的原始虚拟对象,确定为目标虚拟对象;
更新所述距离关系列表中所述目标虚拟对象与所述主虚拟对象间的距离信息。
12.如权利要求1所述的方法,其特征在于,所述获取所述关联虚拟对象的角色变量中属于第一更新频率类型的变量,作为第一类型变量,包括:
获取所述主虚拟对象对应的类对象集合;所述类对象集合包括至少两个对象变量子集;
从所述类对象集合的所述至少两个对象变量子集中获取所述关联虚拟对象对应的对象变量子集;所述对象变量子集包括所述关联虚拟对象的角色变量中属于所述第一更新频率类型的变量;
从所述对象变量子集中获取所述关联虚拟对象的所述第一类型变量。
13.一种数据处理装置,其特征在于,所述装置包括:
第一获取模块,用于当进行帧图像更新时,获取与主虚拟对象相关联的关联虚拟对象,获取所述关联虚拟对象的角色变量中属于第一更新频率类型的变量,作为第一类型变量;所述第一更新频率类型是指每一帧都进行变化的更新频率类型,或更新频率大于或等于第一更新频率阈值的更新频率类型;
压缩模块,用于对所述第一类型变量进行压缩处理,得到压缩数据;
第一封装模块,用于将所述压缩数据进行封装得到所述主虚拟对象的第一变更数据;
第一发送模块,用于将所述主虚拟对象的第一变更数据发送给所述主虚拟对象所在的目标客户端,以使所述目标客户端基于所述第一变更数据进行帧图像更新显示。
14.一种计算机设备,其特征在于,包括处理器、存储器、输入输出接口;
所述处理器分别与所述存储器和所述输入输出接口相连,其中,所述输入输出接口用于输入数据和输出数据,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行如权利要求1-12任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行如权利要求1-12任一项所述的方法。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010033046.9A CN111228797B (zh) | 2020-01-13 | 2020-01-13 | 数据处理方法、装置、计算机以及可读存储介质 |
EP20914236.3A EP3991817A4 (en) | 2020-01-13 | 2020-10-26 | DATA PROCESSING METHOD AND DEVICE, COMPUTER DEVICE AND READABLE STORAGE MEDIA |
JP2022519177A JP7465959B2 (ja) | 2020-01-13 | 2020-10-26 | データ処理方法、装置、コンピュータデバイスおよびコンピュータプログラム |
PCT/CN2020/123627 WO2021143255A1 (zh) | 2020-01-13 | 2020-10-26 | 数据处理方法、装置、计算机设备以及可读存储介质 |
KR1020227007045A KR102719179B1 (ko) | 2020-01-13 | 2020-10-26 | 데이터 처리 방법 및 장치, 컴퓨터 기기 그리고 판독 가능한 저장 매체 |
US17/671,968 US12017146B2 (en) | 2020-01-13 | 2022-02-15 | Updating virtual object frame images corresponding to variables |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010033046.9A CN111228797B (zh) | 2020-01-13 | 2020-01-13 | 数据处理方法、装置、计算机以及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111228797A CN111228797A (zh) | 2020-06-05 |
CN111228797B true CN111228797B (zh) | 2021-05-28 |
Family
ID=70871014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010033046.9A Active CN111228797B (zh) | 2020-01-13 | 2020-01-13 | 数据处理方法、装置、计算机以及可读存储介质 |
Country Status (5)
Country | Link |
---|---|
US (1) | US12017146B2 (zh) |
EP (1) | EP3991817A4 (zh) |
JP (1) | JP7465959B2 (zh) |
CN (1) | CN111228797B (zh) |
WO (1) | WO2021143255A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111228797B (zh) | 2020-01-13 | 2021-05-28 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机以及可读存储介质 |
CN112927332B (zh) * | 2021-04-02 | 2023-06-09 | 腾讯科技(深圳)有限公司 | 骨骼动画更新方法、装置、设备及存储介质 |
CN113797546B (zh) * | 2021-09-18 | 2024-02-23 | 珠海金山数字网络科技有限公司 | 资源处理方法、装置、计算设备及计算机可读存储介质 |
CN114344892B (zh) * | 2022-01-04 | 2023-07-18 | 腾讯科技(深圳)有限公司 | 一种数据处理方法和相关装置 |
CN114630182B (zh) * | 2022-02-28 | 2024-07-23 | 海信视像科技股份有限公司 | 一种虚拟现实视频的播放方法及设备 |
CN115423919B (zh) * | 2022-09-14 | 2023-08-25 | 阿波罗智联(北京)科技有限公司 | 图像的渲染方法、装置、设备以及存储介质 |
CN117793279A (zh) * | 2022-09-20 | 2024-03-29 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN115619867B (zh) * | 2022-11-18 | 2023-04-11 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备、存储介质 |
CN116208623B (zh) * | 2023-05-04 | 2023-07-14 | 腾讯科技(深圳)有限公司 | 信息同步方法、装置、引擎服务器及存储介质 |
CN117315375B (zh) * | 2023-11-20 | 2024-03-01 | 腾讯科技(深圳)有限公司 | 虚拟部件分类方法、装置、电子设备及可读存储介质 |
CN117899473B (zh) * | 2024-03-12 | 2024-06-04 | 腾讯科技(深圳)有限公司 | 图像帧显示方法、装置、计算机设备及存储介质 |
CN117899474B (zh) * | 2024-03-20 | 2024-06-07 | 深圳市迷你玩科技有限公司 | 画面渲染方法、装置、电子设备及可读介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107911374A (zh) * | 2017-11-27 | 2018-04-13 | 腾讯科技(上海)有限公司 | 数据同步方法和装置、存储介质及电子装置 |
CN110404262A (zh) * | 2019-09-03 | 2019-11-05 | 网易(杭州)网络有限公司 | 游戏中的显示控制方法、装置、电子设备以及存储介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4555000B2 (ja) * | 2003-06-20 | 2010-09-29 | 株式会社エヌ・ティ・ティ・ドコモ | アプリケーションの適応的レプリケーションをサーバサイドコードユニットを用いて実行する方法および装置 |
US8527657B2 (en) * | 2009-03-20 | 2013-09-03 | Sony Computer Entertainment America Llc | Methods and systems for dynamically adjusting update rates in multi-player network gaming |
JP5587800B2 (ja) | 2011-01-12 | 2014-09-10 | 株式会社スクウェア・エニックス | ネットワークゲームシステム、ゲーム装置、サーバ装置、及びプログラム |
DE102012224321B4 (de) | 2012-12-21 | 2022-12-15 | Applejack 199 L.P. | Messvorrichtung zum Erfassen einer Schlagbewegung eines Schlägers, Trainingsvorrichtung und Verfahren zum Training einer Schlagbewegung |
JP2015196091A (ja) | 2014-04-02 | 2015-11-09 | アップルジャック 199 エル.ピー. | アバターが仮想環境内でプレイヤーを表すためのセンサベースのゲームシステム |
CN106512402A (zh) * | 2016-11-29 | 2017-03-22 | 北京像素软件科技股份有限公司 | 一种游戏角色的渲染方法及装置 |
CN106991713A (zh) * | 2017-04-13 | 2017-07-28 | 网易(杭州)网络有限公司 | 更新游戏中的场景的方法和装置、介质、处理器以及终端 |
CN107682356B (zh) * | 2017-10-26 | 2020-08-04 | 广州市雷军游乐设备有限公司 | 数据的更新方法及装置、设备以及存储介质 |
CN111228797B (zh) * | 2020-01-13 | 2021-05-28 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机以及可读存储介质 |
-
2020
- 2020-01-13 CN CN202010033046.9A patent/CN111228797B/zh active Active
- 2020-10-26 JP JP2022519177A patent/JP7465959B2/ja active Active
- 2020-10-26 EP EP20914236.3A patent/EP3991817A4/en active Pending
- 2020-10-26 WO PCT/CN2020/123627 patent/WO2021143255A1/zh unknown
-
2022
- 2022-02-15 US US17/671,968 patent/US12017146B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107911374A (zh) * | 2017-11-27 | 2018-04-13 | 腾讯科技(上海)有限公司 | 数据同步方法和装置、存储介质及电子装置 |
CN110404262A (zh) * | 2019-09-03 | 2019-11-05 | 网易(杭州)网络有限公司 | 游戏中的显示控制方法、装置、电子设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3991817A1 (en) | 2022-05-04 |
US12017146B2 (en) | 2024-06-25 |
CN111228797A (zh) | 2020-06-05 |
KR20220041906A (ko) | 2022-04-01 |
EP3991817A4 (en) | 2022-09-21 |
WO2021143255A1 (zh) | 2021-07-22 |
JP2022554069A (ja) | 2022-12-28 |
JP7465959B2 (ja) | 2024-04-11 |
US20220168649A1 (en) | 2022-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111228797B (zh) | 数据处理方法、装置、计算机以及可读存储介质 | |
CN109939438B (zh) | 轨迹显示方法和装置、存储介质及电子装置 | |
CN108057249B (zh) | 一种业务数据处理方法和装置 | |
CN109413480A (zh) | 画面处理方法、装置、终端及存储介质 | |
CN107302707A (zh) | 场景动画的播放方法、装置及系统 | |
JP6379107B2 (ja) | 情報処理装置並びにその制御方法、及びプログラム | |
CN113852838B (zh) | 视频数据生成方法、装置、电子设备及可读存储介质 | |
US20220072420A1 (en) | Frame display method and apparatus in game application, terminal, and storage medium | |
CN110149553A (zh) | 图像的处理方法和装置、存储介质及电子装置 | |
CN114095744A (zh) | 视频直播方法、装置、电子设备及可读存储介质 | |
CN114615513A (zh) | 视频数据生成方法、装置、电子设备及存储介质 | |
CN111298446A (zh) | 游戏外挂检测方法、装置、计算机以及可读存储介质 | |
CN111650953B (zh) | 飞行器避障处理方法、装置、电子设备及存储介质 | |
KR102719179B1 (ko) | 데이터 처리 방법 및 장치, 컴퓨터 기기 그리고 판독 가능한 저장 매체 | |
CN110868581A (zh) | 一种图像的显示方法、装置及系统 | |
CN116208623B (zh) | 信息同步方法、装置、引擎服务器及存储介质 | |
CN110769904B (zh) | 输出内容处理方法、输出方法、电子设备及存储介质 | |
US20230025389A1 (en) | Route generation system within a virtual environment of a game application | |
CN111145077B (zh) | 运行方法、服务器及电子设备 | |
EP3528911B1 (en) | A computer server, a method and computer readable storage device | |
CN111760273A (zh) | 游戏碎块处理方法、装置及设备 | |
CN108234656B (zh) | 数据交互方法及系统 | |
CN111713118A (zh) | 音频数据的处理方法、设备、系统及存储介质 | |
US20240282034A1 (en) | Apparatus, systems and methods for animation data | |
US20240001243A1 (en) | Method and apparatus for providing a computer implemented game |
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: 40024157 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |