CN117244243B - 一种虚拟对象处理方法、装置、设备及存储介质 - Google Patents
一种虚拟对象处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117244243B CN117244243B CN202311542481.4A CN202311542481A CN117244243B CN 117244243 B CN117244243 B CN 117244243B CN 202311542481 A CN202311542481 A CN 202311542481A CN 117244243 B CN117244243 B CN 117244243B
- Authority
- CN
- China
- Prior art keywords
- instance
- request
- processed
- virtual
- scaling
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 33
- 238000012545 processing Methods 0.000 claims abstract description 162
- 230000004044 response Effects 0.000 claims abstract description 52
- 230000015654 memory Effects 0.000 claims description 35
- 238000000034 method Methods 0.000 claims description 34
- 238000004590 computer program Methods 0.000 claims description 16
- 238000012217 deletion Methods 0.000 claims description 11
- 230000037430 deletion Effects 0.000 claims description 11
- 238000005516 engineering process Methods 0.000 abstract description 4
- 238000013473 artificial intelligence Methods 0.000 abstract description 3
- 230000000875 corresponding effect Effects 0.000 description 124
- 230000008569 process Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 6
- 238000004088 simulation Methods 0.000 description 6
- 238000007667 floating Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000002596 correlated effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000002775 capsule Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011946 reduction process Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
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/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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请提供了一种虚拟对象处理方法、装置、设备及存储介质,应用于云技术、人工智能、智慧交通、车载、地图和游戏等各种处理携带碰撞数据的虚拟对象的场景;该虚拟对象处理方法包括:响应于针对待处理对象类别的实例处理请求,确定待处理对象实例,获得请求缩放参数,待处理对象实例为待处理对象类别的实例;基于待处理对象类别的目标数据对应关系,确定与请求缩放参数对应的目标碰撞数据,目标数据对应关系表示待处理对象类别的缩放参数与碰撞数据之间的对应关系;结合待处理对象实例与目标碰撞数据,在虚拟场景中呈现与请求缩放参数适配的第一虚拟对象,第一虚拟对象为待处理对象类别的虚拟对象。通过本申请,能够提升资源利用率。
Description
技术领域
本申请涉及计算机应用领域中的数据处理技术,尤其涉及一种虚拟对象处理方法、装置、设备及存储介质。
背景技术
虚拟对象,是指虚拟场景存在的虚拟实体,比如,虚拟桌子,虚拟椅子,虚拟石头,虚拟建筑,虚拟树木,虚拟动物,虚拟角色等。一般来说,虚拟对象携带着碰撞数据,以能够在虚拟场景中进行碰撞检测和物理模拟等处理。
为了在虚拟场景中处理携带碰撞数据数据的虚拟对象,通常先为每个虚拟对象生成一个碰撞数据,再在虚拟场景中处理携带碰撞数据的虚拟对象;如此,随着虚拟场景中虚拟对象的数量增多,碰撞数据的数量也增多,碰撞数据的资源消耗也增多,影响了资源利用率。
发明内容
本申请实施例提供一种虚拟对象处理方法、装置、设备、存储介质及程序产品,能够提升资源利用率。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种虚拟对象处理方法,所述虚拟对象处理方法包括:
响应于针对待处理对象类别的实例处理请求,确定待处理对象实例,并获得请求缩放参数,其中,所述待处理对象实例为所述待处理对象类别的实例;
基于所述待处理对象类别的目标数据对应关系,确定与所述请求缩放参数对应的目标碰撞数据,其中,所述目标数据对应关系表示所述待处理对象类别的缩放参数与碰撞数据之间的对应关系;
结合所述待处理对象实例与所述目标碰撞数据,在虚拟场景中呈现与所述请求缩放参数适配的第一虚拟对象,其中,所述第一虚拟对象为所述待处理对象类别的虚拟对象。
本申请实施例提供一种虚拟对象处理装置,所述虚拟对象处理装置包括:
请求响应模块,用于响应于针对待处理对象类别的实例处理请求,确定待处理对象实例,并获得请求缩放参数,其中,所述待处理对象实例为所述待处理对象类别的实例;
数据确定模块,用于基于所述待处理对象类别的目标数据对应关系,确定与所述请求缩放参数对应的目标碰撞数据,其中,所述目标数据对应关系表示所述待处理对象类别的缩放参数与碰撞数据之间的对应关系;
对象呈现模块,用于结合所述待处理对象实例与所述目标碰撞数据,在虚拟场景中呈现与所述请求缩放参数适配的第一虚拟对象,其中,所述第一虚拟对象为所述待处理对象类别的虚拟对象。
在本申请实施例中,所述实例处理请求为以下中的至少一种:实例放置请求、实例缩放请求和实例镜像请求,其中,实例放置请求用于请求在所述虚拟场景中放置所述待处理对象类别的所述虚拟对象,所述实例缩放请求用于请求缩放所述虚拟场景中所述待处理对象类别的所述虚拟对象,所述实例镜像请求用于请求对所述虚拟场景中所述待处理对象类别的所述虚拟对象进行镜像处理。
在本申请实施例中,当所述实例处理请求为实例放置请求时,所述请求响应模块,还用于响应于针对所述待处理对象类别的所述实例放置请求,生成所述待处理对象实例。
在本申请实施例中,所述请求响应模块,还用于响应于针对所述待处理对象类别的所述实例放置请求,获得待呈现位置;针对所述待呈现位置生成所述待处理对象实例。
在本申请实施例中,所述对象呈现模块,还用于结合所述待处理对象实例与所述目标碰撞数据,在所述虚拟场景的所述待呈现位置中,呈现与所述请求缩放参数适配的所述第一虚拟对象。
在本申请实施例中,当所述实例处理请求为实例缩放请求或实例镜像请求时,所述请求响应模块,还用于响应于针对所述待处理对象类别的所述实例缩放请求或所述实例镜像请求,确定待处理实例标识;基于所述待处理实例标识,查找出待解除对象实例;将所述待解除对象实例与原始碰撞数据解除关联,得到所述待处理对象实例。
在本申请实施例中,所述虚拟对象处理装置还包括关系确定模块,用于响应于应用启动请求,获得各种对象类别分别对应的基准碰撞数据和基准缩放参数;基于所述基准缩放参数和所述基准碰撞数据之间的对应关系,确定数据对应关系,得到与各种所述对象类别对应的各个所述数据对应关系。
在本申请实施例中,所述关系确定模块,还用于从各个所述数据对应关系中,确定与所述待处理对象类别对应的所述目标数据对应关系。
在本申请实施例中,所述数据确定模块,还用于当所述目标数据对应关系中的至少一个所述缩放参数均与所述请求缩放参数不同时,生成与所述请求缩放参数对应的所述目标碰撞数据。
在本申请实施例中,所述数据确定模块,还用于针对所述待处理对象类别,在所述目标数据对应关系中对应存储所述请求缩放参数和所述目标碰撞数据,得到最新数据对应关系;响应于针对所述待处理对象类别的新实例处理请求,生成新对象实例;基于所述最新数据对应关系,确定与所述新实例处理请求的所述请求缩放参数对应的所述目标碰撞数据;结合所述新对象实例与所述目标碰撞数据,在所述虚拟场景中呈现与所述请求缩放参数适配的第二虚拟对象,其中,所述第二虚拟对象为所述待处理对象类别的所述虚拟对象。
在本申请实施例中,在本申请实施例中,所述数据确定模块,还用于当所述目标数据对应关系中的至少一个所述缩放参数均与所述请求缩放参数不同时,从所述目标数据对应关系中,确定与所述待处理对象类别的基准缩放参数对应的基准碰撞数据;基于所述基准碰撞数据,生成所述请求缩放参数的待调整碰撞数据;将所述待调整碰撞数据的所述缩放参数修改为所述请求缩放参数,得到所述目标碰撞数据。
在本申请实施例中,当所述请求缩放参数与基准缩放参数不同时,所述虚拟对象处理装置还包括数量处理模块,用于基于指定步长增加所述目标碰撞数据的实例关联数量,得到最新实例关联数量;响应于针对所述待处理对象类别的实例删除请求,删除所述待处理对象实例;响应于所述待处理对象实例的删除,基于所述指定步长减少所述最新实例关联数量,得到当前实例关联数量;在所述当前实例关联数量为指定关联数量时,删除所述目标碰撞数据。
本申请实施例提供一种用于虚拟对象处理的电子设备,所述电子设备包括:
存储器,用于存储计算机可执行指令或者计算机程序;
处理器,用于执行所述存储器中存储的计算机可执行指令或者计算机程序时,实现本申请实施例提供的虚拟对象处理方法。
本申请实施例提供一种计算机可读存储介质,存储有计算机可执行指令或者计算机程序,所述计算机可执行指令或者计算机程序用于被处理器执行时,实现本申请实施例提供的虚拟对象处理方法。
本申请实施例提供一种计算机程序产品,包括计算机可执行指令或者计算机程序,所述计算机可执行指令或者计算机程序被处理器执行时,实现本申请实施例提供的虚拟对象处理方法。
本申请实施例至少具有以下有益效果:在虚拟场景中处理携带碰撞数据的待处理对象类别的实例时,能够复用已有的与请求缩放参数对应的目标碰撞数据;也就是说,碰撞数据的数量与待处理对象类别和缩放参数关联,因此,能够降低碰撞数据的数量,从而在处理携带碰撞数据的虚拟对象时,能够提升资源利用率。
附图说明
图1是一种示例性的放置物件的示意图;
图2是本申请实施例提供的虚拟对象处理系统的架构示意图;
图3是本申请实施例提供的一种图2中的服务器的结构示意图;
图4是本申请实施例提供的虚拟对象处理方法的流程示意图一;
图5是本申请实施例提供的虚拟对象处理方法的流程示意图二;
图6是本申请实施例提供的虚拟对象处理方法的流程示意图三;
图7是本申请实施例提供的虚拟对象处理方法的流程示意图四;
图8是本申请实施例提供的一种示例性的架构示意图;
图9是本申请实施例提供的一种示例性的物理引擎功能接口示意图;
图10是本申请实施例提供的一种示例性的初始化结果示意图;
图11是本申请实施例提供的一种示例性的放置新物件的示意图;
图12是本申请实施例提供的一种示例性的链表示意图;
图13是本申请实施例提供的一种示例性的游戏场景示意图;
图14是本申请实施例提供的一种示例性的游戏场景的碰撞视图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二”用于区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本申请实施例所使用的所有的技术和科学术语与所属技术领域的技术人员通常理解的含义相同。本申请实施例中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)虚拟场景,是指虚拟对象所处的环境,或者所呈现的视野场景;可以是对真实世界的仿真环境,也可以是半仿真半虚构的虚拟环境,还可以是纯虚构的虚拟环境,又可以是上述的结合。虚拟场景可以是二维虚拟场景、2.5维虚拟场景或者三维虚拟场景中的任意一种,本申请实施例对虚拟场景的维度不加以限定。例如,虚拟场景可以包括天空、陆地和海洋等,而陆地可以包括沙漠和城市等环境元素,用户或智能控制逻辑可以控制虚拟对象在该虚拟场景中进行移动、增减、缩放和镜像等处理。在本申请实施例中,游戏场景为虚拟场景的一种示例。
2)虚拟对象,是指虚拟场景中存在的虚拟实体,比如,可以进行交互的各种虚拟人物和虚拟物体的形象,或在虚拟场景中的其他可移动对象,又或者虚拟场景中的不可移动对象,等等。虚拟场景中可以包括多个虚拟对象,每个虚拟对象在虚拟场景中具有自身的形状和体积,占据虚拟场景中的一部分空间。在本申请实施例中,虚拟对象可以称为物件(Entity)。
3)客户端,是指设备中运行的用于提供各种服务的应用程序,例如游戏客户端,仿真客户端,视频客户端,等等。在本申请实施例中,实例处理请求等可以是虚拟对象处理设备接收到的客户端发送的操作请求。
4)响应于,用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
5)物理引擎(PhysX引擎),又称为碰撞管理引擎,用于实现碰撞管理,碰撞检测,物理模拟等。由于该物理引擎的碰撞数据描述类型是多边形网格,相比于采用体素或立体网格作为碰撞数据描述类型的引擎,内存消耗较小,碰撞精细度较高。另外,在物理引擎中,由多边形网格描述物件的碰撞数据,比如,碰撞数据可以为多个三维浮点数集合组成的三维点阵,而三维点阵中的每一个三维浮点数集合表示多边形网格上的一个顶点的相对位置。在本申请实施例中,物理引擎可以运行在客户端中,也可以运行在服务端中,还可以运行在客户端和服务端中。另外,当本申请实施例采用物理引擎进行碰撞管理时,由物理引擎处理待处理对象类别的实例与碰撞数据。
6)缩放,是指对物件进行缩小或放大的处理;这里,缩放可以是三维的,也可以是二维的,本申请实施例对此不作限定;其中,当缩放为三维缩放时,缩放过程为将物件的轮廓点的三维点阵到物件的中心点的距离乘以缩放尺度(又称为缩放系数,或者缩放参数);当缩放为二维缩放时,缩放过程为将物件的轮廓点的二维点阵到物件的中心点的距离乘以缩放尺度。
7)镜像处理,一种缩放尺度为指定参数(比如,-1)的特殊的缩放。
参见图1,图1是一种示例性的放置物件的示意图;如图1所示,该示例性的放置物件的过程包括步骤001至步骤004,下面对各步骤分别进行说明。
步骤001、针对指定位置生成物件的对象实例。
步骤002、复制物件的对象原型所对应的几何形状对象原型。
步骤003、设置复制的几何形状对象的缩放系数。
步骤004、将设置后的几何形状对象关联到对象实例。
需要说明的是,当响应于针对物件的放置操作,在游戏场景中放置携带碰撞数据的物件实例时,通常通过创建一组新的角色对象和几何形状对象,并为携带碰撞数据的几何形状对象分配内存。如此,随着放置的物件数量的增多,内存的占用量也增多,影响了资源利用率。也就是说,为了在虚拟场景中处理携带碰撞数据数据的虚拟对象,通常先为每个虚拟对象生成一个碰撞数据,再在虚拟场景中处理携带碰撞数据数据的虚拟对象;如此,随着虚拟场景中虚拟对象的数量增多,碰撞数据的数量也增多,碰撞数据的资源消耗也增多,影响了资源利用率。
比如,在游戏场景中,可以放置1000种物件(虚拟积木、虚拟地板、虚拟砖块、虚拟椅子等),每个游戏账号最多可以放置100万个物件;当平均每个物件的碰撞数据为1000个浮点数时,一个游戏账号对应的全量物件的碰撞数据所占的总内存量为4吉(G)字节(Byte)(万,其中,1000是平均每个物件的三维点阵中的浮点数数量,4是1个浮点数占用的字节数,100万是虚拟场景中最高可以放置的物件数量)。因此,上述放置物件的过程中,内存资源消耗随着物件数量的增多持续增多,影响了资源利用率。
基于此,本申请实施例提供一种虚拟对象处理方法、装置、设备、计算机可读存储介质及计算机程序产品,能够提升资源利用率。下面说明本申请实施例提供的虚拟对象处理设备的示例性应用,本申请实施例提供的虚拟对象处理设备可以实施为智能手机、智能手表、笔记本电脑、平板电脑、台式计算机、智能家电、机顶盒、智能车载设备、便携式音乐播放器、个人数字助理、专用消息设备、智能语音交互设备、便携式游戏设备和智能音箱等各种类型的终端,也可以实施为服务器,还可以实施为上述两者的结合。下面,将说明虚拟对象处理设备实施为服务器时的示例性应用。
参见图2,图2是本申请实施例提供的虚拟对象处理系统的架构示意图;如图2所示,为支撑一个虚拟对象处理应用,在虚拟对象处理系统100中,终端200(示例性示出了终端200-1和终端200-2)通过网络300连接服务器400,网络300可以是广域网或者局域网,又或者是二者的组合。另外,该虚拟对象处理系统100中还包括数据库500,用于向服务器400提供数据支持;并且,图2中示出的为数据库500独立于服务器400的一种情况,此外,数据库500还可以集成在服务器400中,本申请实施例对此不作限定。
终端200,用于响应于界面操作(示例性示出了图形界面210-1),通过网络300向服务器400发送实例处理请求;通过网络300接收服务器400发送的待显示数据,基于待显示数据显示第一虚拟对象(示例性示出了图形界面210-2)。
服务器400,用于通过网络300接收终端200发送的针对待处理对象类别的实例处理请求,响应于实例处理请求,确定待处理对象实例,并获得请求缩放参数,其中,待处理对象实例为待处理对象类别的实例;基于待处理对象类别的目标数据对应关系,确定与请求缩放参数对应的目标碰撞数据,其中,目标数据对应关系表示待处理对象类别的缩放参数与碰撞数据之间的对应关系;结合待处理对象实例与目标碰撞数据,通过网络300向终端200发送待显示数据。
在一些实施例中,服务器400可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content DeliveryNetwork,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不作限制。
参见图3,图3是本申请实施例提供的一种图2中的服务器的结构示意图;如图3所示,服务器400包括:至少一个处理器410、存储器450和至少一个网络接口420。服务器400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(Digital Signal Processor,DSP),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(Read Only Memory,ROM),易失性存储器可以是随机存取存储器(Random Access Memory,RAM)。本申请实施例描述的存储器450旨在包括任意适合类型的存储器。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他电子设备,示例性的网络接口420包括:蓝牙、无线相容性认证(Wi-Fi)、和通用串行总线(Universal Serial Bus,USB)等。
在一些实施例中,本申请实施例提供的虚拟对象处理装置可以采用软件方式实现,图3示出了存储在存储器450中的虚拟对象处理装置455,其可以是程序和插件等形式的软件,包括以下软件模块:请求响应模块4551、数据确定模块4552、对象呈现模块4553、关系确定模块4554和数量处理模块4555,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在一些实施例中,本申请实施例提供的虚拟对象处理装置可以采用硬件方式实现,作为示例,本申请实施例提供的虚拟对象处理装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的虚拟对象处理方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(Application Specific IntegratedCircuit,ASIC)、DSP、可编程逻辑器件(Programmable Logic Device,PLD)、复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)、现场可编程门阵列(Field-ProgrammableGate Array,FPGA)或其他电子元件。
下面,将结合本申请实施例提供的虚拟对象处理设备的示例性应用和实施,说明本申请实施例提供的虚拟对象处理方法。另外,本申请实施例提供的虚拟对象处理方法应用于云技术、人工智能、智慧交通、车载、地图和游戏等各种处理携带碰撞数据的虚拟对象的场景。
参见图4,图4是本申请实施例提供的虚拟对象处理方法的流程示意图一,其中,图4中各步骤的执行主体是虚拟对象处理设备;下面将结合图4示出的步骤进行说明。
步骤101、响应于针对待处理对象类别的实例处理请求,确定待处理对象实例,并获得请求缩放参数。
在本申请实施例的虚拟场景中,虚拟对象处理设备用于对携带碰撞数据的各种对象类别的虚拟对象实例进行处理;当对待处理对象类别的虚拟对象实例进行处理时,虚拟对象处理设备也就接收到了针对待处理对象类别的实例处理请求;此时,虚拟对象处理设备响应于实例处理请求,开始对待处理对象类别的虚拟对象实例进行处理。这里,由于实例处理请求用于请求对待处理对象类别的虚拟对象实例进行处理,从而能够从实例处理请求中获得所请求处理的虚拟对象实例对应的缩放参数,并将所请求处理的虚拟对象实例所对应的缩放参数称为请求缩放参数。另外,实例处理请求所请求处理的虚拟对象实例即为所请求处理的待处理对象类别的实例,这里称为待处理对象实例。其中,虚拟对象实例用于在虚拟场景中呈现虚拟对象。
需要说明的是,虚拟场景中能够承载各种对象类别的虚拟对象,以及虚拟对象在虚拟场景中以与缩放参数对应的尺寸呈现;比如,虚拟对象在虚拟场景中的呈现尺寸可以与缩放参数正相关;另外,每种对象类别对应指定数量(比如,20)个缩放参数,即为每种对象类别最多对应指定数量种不同尺寸的虚拟对象。其中,对象类别是指虚拟对象的类别,比如,虚拟房子,虚拟椅子,虚拟桥梁,虚拟道具等;以及,对象种类的实例用于在虚拟场景中呈现对应的虚拟对象。此外,碰撞数据用于表示缩放参数的待处理对象实例在虚拟场景中的碰撞信息,是指用于进行碰撞检测和物理模拟的数据。
在本申请实施例中,实例处理请求为以下中的至少一种:实例放置请求、实例缩放请求和实例镜像请求。
需要说明的是,实例放置请求用于请求在虚拟场景中放置待处理对象类别的虚拟对象,比如,在游戏场景中放置缩放参数为2的虚拟建筑的请求;实例缩放请求用于请求缩放虚拟场景中待处理对象类别的虚拟对象,比如,在仿真场景中将虚拟栅栏的缩放参数更改为0.5的请求;实例镜像请求用于请求对虚拟场景中待处理对象类别的虚拟对象进行镜像处理;比如,在图像编辑场景中将待编辑实体的缩放参数更改为-1的请求。
在本申请实施例中,当实例处理请求为实例放置请求时,步骤101中虚拟对象处理设备响应于针对待处理对象类别的实例处理请求,确定待处理对象实例,包括:虚拟对象处理设备响应于针对待处理对象类别的实例放置请求,生成待处理对象实例。其中,虚拟对象处理设备响应于针对待处理对象类别的实例放置请求,生成待处理对象实例,包括:虚拟对象处理设备响应于针对待处理对象类别的实例放置请求,先获得待呈现位置;再针对待呈现位置生成待处理对象实例。其中,待呈现位置是指实例处理请求所请求放置虚拟对象的位置。
在本申请实施例中,当实例处理请求为实例缩放请求或实例镜像请求时,步骤101中虚拟对象处理设备响应于针对待处理对象类别的实例处理请求,确定待处理对象实例,包括:虚拟对象处理设备响应于针对待处理对象类别的实例缩放请求或实例镜像请求,确定待处理实例标识;并基于待处理实例标识,查找出待解除对象实例;将待解除对象实例与原始碰撞数据解除关联,得到待处理对象实例。其中,待处理实例标识为实例处理请求所请求处理的实例标识,原始碰撞数据为待解除对象实例所关联的碰撞数据,或者说为待解除对象实例的原始缩放参数所对应的碰撞数据。
需要说明的是,虚拟对象处理设备确定待处理对象实例可以是新生成待处理对象实例,还可以是查找出待处理对象实例,在实际实施时与实例处理请求的类型有关。这里,当实例处理请求为实例放置请求时,虚拟对象处理设备确定待处理对象实例是指新生成待处理对象实例;当实例处理请求为实例缩放请求时,虚拟对象处理设备确定待处理对象实例是指查找出待处理对象实例;当实例处理请求为实例镜像请求时,虚拟对象处理设备确定待处理对象实例是指查找出待处理对象实例。另外,虚拟对象处理设备查找出待处理对象实例,是指从实例库中查找与实例处理请求所请求的实例标识所对应的实例的过程。
步骤102A、基于待处理对象类别的目标数据对应关系,确定与请求缩放参数对应的目标碰撞数据。
在本申请实施例中,每种对象类别对应一个数据对应关系,该数据对应关系表示缩放参数与碰撞数据之间的对应关系;从而,虚拟对象处理设备能够获得与各种对象类别对应的各个数据对应关系,并能够基于各种对象类别对应的各个数据对应关系,确定与待处理对象类别对应的数据对应关系,并将确定的与待处理对象类别对应的数据对应关系确定为目标数据对应关系;也就是说,目标数据对应关系表示待处理对象类别的缩放参数与碰撞数据之间的对应关系。这里,虚拟对象处理设备将请求缩放参数与目标数据对应关系中的至少一个缩放参数进行匹配,并将获得的与请求缩放参数匹配的缩放参数所对应的碰撞数据,确定为目标碰撞数据。
步骤103、结合待处理对象实例与目标碰撞数据,在虚拟场景中呈现与请求缩放参数适配的第一虚拟对象。
在本申请实施例中,虚拟对象处理设备将目标碰撞数据关联至待处理对象实例上,并基于待处理对象实例与目标碰撞数据的关联结果进行对应虚拟对象的呈现,以在虚拟场景中呈现与请求缩放参数适配、且属于待处理对象类别的虚拟对象,即为呈现第一虚拟对象。
需要说明的是,第一虚拟对象为待处理对象类别的虚拟对象,且第一虚拟对象的尺寸与请求缩放参数适配,以及第一虚拟对象携带目标碰撞数据。
在本申请实施例中,当实例处理请求为实例放置请求时,相应地,步骤103中虚拟对象处理设备结合待处理对象实例与目标碰撞数据,在虚拟场景中呈现与请求缩放参数适配的第一虚拟对象,包括:虚拟对象处理设备结合待处理对象实例与目标碰撞数据,在虚拟场景的待呈现位置中,呈现与请求缩放参数适配的第一虚拟对象。
可以理解的是,当在虚拟场景中处理携带碰撞数据的待处理对象类别的实例时,能够复用已有的与请求缩放参数对应的目标碰撞数据;也就是说,碰撞数据的数量与待处理对象类别和缩放参数关联,因此,能够降低碰撞数据的数量,从而在处理携带碰撞数据的虚拟对象时,能够提升资源利用率。
参见图5,图5是本申请实施例提供的虚拟对象处理方法的流程示意图二,其中,图5中各步骤的执行主体是虚拟对象处理设备;如图5所示,在本申请实施例的步骤101之前还包括步骤104和步骤105;也就是说,虚拟对象处理设备响应于针对待处理对象类别的实例处理请求之前,该虚拟对象处理方法还包括步骤104和步骤105,下面对各步骤分别进行说明。
步骤104、响应于应用启动请求,获得各种对象类别分别对应的基准碰撞数据和基准缩放参数。
在本申请实施例中,当用于在虚拟场景中处理携带碰撞数据的虚拟对象的应用启动时,虚拟对象处理设备也就接收到了应用启动请求;此时,虚拟对象处理设备响应于该应用启动请求,开始执行应用的程序初始化;在执行应用的程序初始化时,获取各个对象类别中每个对象类别的基准碰撞数据和基准对象实例。
需要说明的是,基准碰撞数据是指基准缩放参数所对应的碰撞数据,而基准缩放参数是指默认缩放参数,除基准缩放参数之外的缩放参数是相对于基准缩放参数确定的,是基准缩放参数的相对值;比如,可以是基准缩放参数的倍数(0.1倍,5倍等)。基准对象实例是指缩放参数为基准缩放参数的实例,每个对象类别对应一个基准对象实例,而每个基准对象实例对应一个数据对应关系。从而,虚拟对象处理设备在确定待处理对象类别的目标数据对应关系时,可以确定待处理对象类别对应的基准对象实例,进而将确定的基准对象实例所对应的数据对应关系确定为目标数据对应关系。
步骤105、基于基准缩放参数和基准碰撞数据之间的对应关系,确定数据对应关系,得到与各种对象类别对应的各个数据对应关系。
在本申请实施例中,基准对象实例对应的缩放参数为基准缩放参数;虚拟对象处理设备可以将基准缩放参数和基准碰撞数据之间的对应关系直接确定为数据对应关系,还可以在对应存储基准缩放参数和基准碰撞数据之后,结合新存储的缩放参数和碰撞数据共同确定为数据对应关系,本申请实施例对此不作限定;也就是说,数据对应关系至少包括基准缩放参数和基准碰撞数据的对应关系。这里,当虚拟对象处理设备针对每种对象类别均获得了对应的数据对应关系时,则针对各种对象类别,能够获得与各种对象类别一一对应的各个数据对应关系。
继续参见图5,在本申请实施例的步骤102A之前还包括步骤106;也就是说,虚拟对象处理设备基于待处理对象类别的目标数据对应关系,确定与请求缩放参数对应的目标碰撞数据之前,该虚拟对象处理方法还包括步骤106,下面对该步骤进行说明。
步骤106、从各个数据对应关系中,确定与待处理对象类别对应的目标数据对应关系。
在本申请实施例中,虚拟对象处理设备先确定与待处理对象类别对应的基准对象实例,再从各个数据对应关系中,确定与确定出的基准对象实例对应的数据对应关系,最后将确定出的数据对应关系确定为目标数据对应关系。
可以理解的是,通过预先存储与每种对象类别对应的数据对应关系,为复用已有缩放参数的碰撞数据提供了数据支持。
参见图6,图6是本申请实施例提供的虚拟对象处理方法的流程示意图三,其中,图6中各步骤的执行主体是虚拟对象处理设备;如图6所示,在本申请实施例的步骤106之后和步骤103之前还包括步骤102B;也就是说,虚拟对象处理设备从各个数据对应关系中,确定与待处理对象类别对应的目标数据对应关系之后,以及结合待处理对象实例与目标碰撞数据,在虚拟场景中呈现与请求缩放参数适配的第一虚拟对象之前,该虚拟对象处理方法还包括步骤102B,下面对该步骤进行说明。
步骤102B、当目标数据对应关系中的至少一个缩放参数均与请求缩放参数不同时,生成与请求缩放参数对应的目标碰撞数据。
在本申请实施例中,虚拟对象处理设备将请求缩放参数与目标数据对应关系中的至少一个缩放参数进行比较,当比较结果表示至少一个缩放参数均与请求缩放参数不同时,确定目标数据对应关系的至少一个碰撞数据中不包括与请求缩放参数适配的碰撞数据;从而此时,虚拟对象处理设备生成与请求缩放参数对应的目标碰撞数据。
参见图7,图7是本申请实施例提供的虚拟对象处理方法的流程示意图四,其中,图7中各步骤的执行主体是虚拟对象处理设备;如图7所示,在本申请实施例中,步骤102B可通过步骤102B1至步骤102B3实现;也就是说,当目标数据对应关系中的至少一个缩放参数均与请求缩放参数不同时,虚拟对象处理设备生成与请求缩放参数对应的目标碰撞数据,包括步骤102B1至步骤102B3,下面对各步骤分别进行说明。
步骤102B1、当目标数据对应关系中的至少一个缩放参数均与请求缩放参数不同时,从目标数据对应关系中,确定与待处理对象类别的基准缩放参数对应的基准碰撞数据。
需要说明的是,数据对应关系中至少包括基准缩放参数和基准碰撞数据,而目标数据对应关系为待处理对象类别的数据对应关系;从而,虚拟对象处理设备能够从目标数据对应关系中获取到待处理对象类别的基准缩放参数和基准碰撞数据。
步骤102B2、基于基准碰撞数据,生成请求缩放参数的待调整碰撞数据。
在本申请实施例中,虚拟对象处理设备通过复制基准碰撞数据来生成待调整碰撞数据。其中,待调整碰撞数据是指与请求缩放参数对应的待调整缩放参数的碰撞数据,或者说是指待将缩放参数调整为请求缩放参数的碰撞数据。
步骤102B3、将待调整碰撞数据的缩放参数修改为请求缩放参数,得到目标碰撞数据。
在本申请实施例中,虚拟对象处理设备对待调整碰撞数据的缩放参数进行调整,由于所生成的待调整碰撞数据是针对请求缩放参数生成的,从而,虚拟对象处理设备将待调整碰撞数据的缩放参数修改为请求缩放参数;此时,完成修改的待调整碰撞数据即为目标碰撞数据,易知,完成修改的待调整碰撞数据的缩放参数为请求缩放参数。
可以理解的是,在目标数据对应关系中不包括与所请求的请求缩放参数对应的碰撞数据时,能够通过生成与请求缩放参数对应的碰撞数据来获得目标碰撞数据,提升了虚拟对象处理的灵活性和稳定性。
在本申请实施例的步骤102B中,虚拟对象处理设备生成与请求缩放参数对应的目标碰撞数据之后,该虚拟对象处理方法还包括:虚拟对象处理设备针对待处理对象类别,在目标数据对应关系中对应存储请求缩放参数和目标碰撞数据,得到最新数据对应关系;响应于针对待处理对象类别的新实例处理请求,生成新对象实例;基于最新数据对应关系,确定与新实例处理请求的请求缩放参数对应的目标碰撞数据;结合新对象实例与目标碰撞数据,在虚拟场景中呈现与请求缩放参数适配的第二虚拟对象,其中,第二虚拟对象为待处理对象类别的虚拟对象。
需要说明的是,当目标碰撞数据为响应于实例处理请求新生成的碰撞数据时,虚拟对象处理设备还用于将请求缩放参数和目标碰撞数据对应存储至目标数据对应关系中;最新数据对应关系是指存储了请求缩放参数和目标碰撞数据的对应关系的目标数据对应关系。如此,虚拟对象处理设备在接收到新实例处理请求时,如果确定新实例处理请求所请求处理的对象类别为待处理对象类别、且所请求的缩放参数仍为请求缩放参数,那么从最新数据对应关系中进行碰撞数据的获取,并且能够获得与请求缩放参数对应的目标碰撞数据,实现目标碰撞数据的复用。这里,虚拟对象处理设备结合新对象实例与目标碰撞数据在虚拟场景中呈现与请求缩放参数适配的第二虚拟对象的过程,与结合待处理对象实例与目标碰撞数据在虚拟场景中呈现与请求缩放参数适配的第一虚拟对象的过程类似,本申请实施例在此不再重复描述;以及,第一虚拟对象和第二虚拟对象为虚拟场景中尺度和对象类别均相同的两个虚拟对象。
可以理解的是,通过将生成的目标碰撞数据与请求缩放参数对应存储至目标数据对应关系中来获得最新数据对象关系,使得在响应于针对待处理对象类别的同一请求缩放参数的新实例处理请求时,能够复用该目标碰撞数据,减少碰撞数据的数据量;进而能够提升资源利用率。
在本申请实施例中,当请求缩放参数与基准缩放参数不同时,在虚拟场景中呈现与请求缩放参数适配的第一虚拟对象之后,该虚拟对象处理方法还包括:虚拟对象处理设备先基于指定步长增加目标碰撞数据的实例关联数量,得到最新实例关联数量;响应于针对待处理对象类别的实例删除请求,删除待处理对象实例;响应于待处理对象实例的删除,基于指定步长减少最新实例关联数量,得到当前实例关联数量;在当前实例关联数量为指定关联数量时,删除目标碰撞数据。
需要说明的是,在数据对应关系中,除基准缩放参数之外的其他缩放参数所对应的碰撞数据,均对应着关联该碰撞数据的实例的数量。从而,当请求缩放参数与基准缩放参数不同时,虚拟对象处理设备还用于基于指定步长(比如1,2等)增加目标碰撞数据的实例关联数量;其中,实例关联数量为将目标碰撞数据与待处理对象实例关联前目标碰撞数据所关联的实例的数量,最新实例关联数量为针对待处理对象实例完成实例数量增加后目标碰撞数据所关联的实例的数量。当获得了最新实例关联数量之后,若接收到请求删除待处理对象实例的实例删除请求,响应于该实例删除请求删除待处理对象实例,并基于指定步长减少最新实例关联数量,以实时更新关联目标碰撞数据的实例的数量。另外,当前实例关联数量为针对待处理对象实例完成实例数量减少后目标碰撞数据所关联的实例的数量;虚拟对象处理设备在执行实例数量减少处理之后,还用于判断当前实例关联数量与指定关联数量的大小,并在当前实例关联数量大于指定关联数量时,结束处理,而在当前实例关联数量为指定关联数量时,确定目标碰撞数据无关联实例,从而可以删除该目标碰撞数据;以及,数据对应关系中也删除目标碰撞数据与请求缩放参数的对应关系;其中,指定关联数量是指无关联实例的数量阈值,比如,0,1等。
在本申请实施例中,当虚拟对象处理设备将待解除对象实例与原始碰撞数据解除关联之后,若原始碰撞数据不为基准碰撞数据,则对原始碰撞数据所关联的实例数量进行减少处理,以及当完成减少处理后所关联的实例数量为指定关联数量时,删除原始碰撞数据。
可以理解的是,通过对非基准碰撞数据所关联的实例数量进行记录并实时更新,能够及时删除无关联实例的碰撞数据,进而能够降低资源占用量,提升资源利用率。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。该示例性应用描述了响应于针对物件的处理操作,在游戏场景中处理(比如,放置,缩放,镜像处理等)携带碰撞数据的物件(称为虚拟对象)的过程。易知,本申请实施例提供的数据处理方法适用于任一在虚拟场景中处理携带碰撞数据的物件实例的应用,这里,以在游戏场景中的应用为例进行说明。
下面先说明基于物理引擎管理物件的碰撞数据的过程。
参加图8,图8是本申请实施例提供的一种示例性的架构示意图;如图8所示,游戏服务端基于物理引擎8-1管理逻辑层8-2中物件8-21的碰撞数据,其中,碰撞数据来源于美术数据8-3。在逻辑层,一个物件8-21对应一个角色对象列表(PxActor_list),而一个角色对象列表包括至少一个角色对象(PxActor)8-11(称为待处理对象实例)。在物理引擎8-1中,一个角色对象8-11关联一个几何形状对象(PxShape)8-12;并且,角色对象8-11可以是静态角色对象(PxRigidActor)8-13,还可以是动态角色对象(PxDynamicActor)8-14;以及,几何形状对象8-12对应的几何数据(PxGeometry)8-15可以是地表几何数据(PxHeightFieldGeometry)8-151、凸面体几何数据(PxConvexMeshGeometry)8-152、平面几何数据(PxPlaneGeometry)8-153、盒子几何数据(PxBoxGeometry)8-154、球几何数据(PxSphereGeometry)8-155、胶囊体几何数据(PxCapsuleGeometry)8-156(比如,虚拟角色的碰撞数据)和三角面几何数据(PxTriangleMeshGeometry)8-157(比如,水面的碰撞数据)。此外,几何数据8-15即为碰撞数据,可以是制作模型的美术数据8-3,比如,三维点阵数据(Vertex Floats Array)8-31。
需要说明的是,在物理引擎中,几何形状对象包括碰撞数据,角色对象对应场景中的物件,将携带碰撞数据的几何形状对象关联到物件的角色对象上,该物件的角色对象即为携带碰撞数据的角色对象。以及,在物理引擎中,还包括各种用于处理携带碰撞数据的接口。
参见图9,图9是本申请实施例提供的一种示例性的物理引擎功能接口示意图;如图9所示,物理接口9-1包括静态角色对象创建接口9-11()、动态角色对象创建接口9-12(/>)和复制碰撞数据接口9-13(/>)等;其中,静态角色对象创建接口9-11用于创建静态的角色对象,动态角色对象创建接口9-12用于创建动态的角色对象,复制碰撞数据接口9-13用于复制碰撞数据。角色对象接口9-2包括位置设置接口9-21(void setGlobalPose (constPxTransform&pose))、碰撞数据关联接口9-22(bool attachShape(PxShape&shape))、碰撞数据关联解除接口9-23(void detachShape(PxShape&shape))和几何形状对象获取接口9-24(/>)等;其中,位置设置接口9-21用于设置角色对象的放置位置,碰撞数据关联接口9-22用于关联角色对象和几何形状对象,碰撞数据关联解除接口9-23用于解除角色对象和几何形状对象的关联,几何形状对象获取接口9-24用于获取角色对象的几何形状对象。几何形状对象接口9-3包括缩放参数设置接口9-31(PxGeometryHolder getGeometry())等;其中,缩放参数设置接口9-31用于设置几何形状对象的缩放参数。
需要说明的是,场景中的一个物件包括一个或多个角色对象,每个角色对象的碰撞数据存储在几何形状对象中;将几何形状对象关联到物件对应的角色对象上,该物件也就携带了碰撞数据,如此,也就可以利用物理引擎功能接口对携带碰撞数据的物件进行处理了。
下面说明放置携带碰撞数据的物件的处理过程。
首先,建立物件的角色对象原型(称为基准对象实例)对应的几何形状对象链表(称为数据对应关系中的至少一个碰撞数据)。
需要说明的是,在游戏程序初始化时,利用物理引擎将美术制作的物件的碰撞数据转为物理引擎的数据结构,也就获得了角色对象原型的几何形状对象原型。当完成游戏程序初始化之后,几何形状对象链表中包括角色对象原型所关联的几何形状对象原型(称为基准碰撞数据)。
参见图10,图10是本申请实施例提供的一种示例性的初始化结果示意图;如图10所示,在几何形状对象链表10-1中,包括角色对象原型10-2所关联的几何形状对象原型10-11。
然后,基于几何形状对象链表放置携带碰撞数据的物件。
参见图11,图11是本申请实施例提供的一种示例性的放置新物件的示意图;如图11所示,该示例性的放置新物件的步骤包括步骤201至步骤205,下面对各步骤分别进行说明。
步骤201、针对放置位置(称为待呈现位置)生成待放置物件的角色对象(称为待处理对象实例)。
需要说明的是,当向游戏场景中放置新的物件时,首先生成一个角色对象,并设置所创建的角色对象在场景中的位置。这里,可通过调用图9中的位置设置接口9-21来设置位置。
步骤202、确定待放置物件的角色对象原型,从角色对象原型对应的几何形状对象链表中查找指定缩放系数(称为请求缩放参数)的几何形状对象(称为目标碰撞数据)。
步骤203、判断是否查找成功。若否则执行步骤204,若是则执行步骤205。
步骤204、生成指定缩放系数的几何形状对象,并将指定缩放系数的几何形状对象存储至几何形状对象链表中。
需要说明的是,游戏服务端先复制角色对象原型对应的几何形状对象原型,然后将复制的几何形状对象原型的缩放系数设置为指定缩放系数,此时也就生成了指定缩放系数的几何形状对象。这里,可通过调用图9中的复制碰撞数据接口9-13实现复制,并通过调用图9中的缩放参数设置接口9-31实现缩放系数设置,以及通过调用图9中的几何形状对象获取接口9-24获取关联的几何形状对象。
步骤205、将指定缩放系数的几何形状对象关联到生成的角色对象上。
需要说明的是,如果几何形状对象链表中存在指定缩放系数的几何形状对象,则将指定缩放系数的几何形状对象关联到生成的角色对象上;如果几何形状对象链表中不存在指定缩放系数的几何形状对象,则将新生成的几何形状对象关联到生成的角色对象上;其中,关联的过程可通过调用图9中的碰撞数据关联接口9-22实现。
参见图12,图12是本申请实施例提供的一种示例性的链表示意图;如图12所示,物件的角色对象原型12-11对应于几何形状对象链表12-12,其中,几何形状对象链表12-12包括几何形状对象原型12-120、缩放系数为缩放系数12-21的几何形状对象12-121、缩放系数为缩放系数12-22的几何形状对象12-122、……、缩放系数为缩放系数12-2n的几何形状对象12-12n。当待放置的物件的缩放系数为缩放系数12-22时,生成角色对象12-13,并确定物件的角色对象原型12-11,进而将角色对象原型12-11的几何形状对象链表12-12中的几何形状对象12-122关联到角色对象12-13上。
需要说明的是,本申请实施例对携带碰撞数据的物件的处理包括放置、缩放和镜像,其中,缩放和镜像中确定物件的碰撞数据的处理过程,与放置中确定物件的碰撞数据处理过程类似,本申请实施例在此不再重复描述。
需要说明的是,本申请实施例对携带碰撞数据的物件的处理实施在游戏场景中。
参见图13,图13是本申请实施例提供的一种示例性的游戏场景示意图;如图13所示,在游戏场景13-1中,虚拟树木13-11和虚拟树木13-12均是通过放置携带碰撞数据的虚拟树木实现的。
参见图14,图14是本申请实施例提供的一种示例性的游戏场景的碰撞视图;如图14所示,界面14-1显示的为游戏场景中各物件的碰撞数据的视图。
可以理解的是,对于同一类别的物件(比如,游戏场景中的一种虚拟椅子),场景中所存在的物件的碰撞数据所占用的内存,与该物件所包括的缩放参数的种类正相关;如此,针对游戏场景中尺寸和类别相同的物件,内存中存在一份对应碰撞数据,实现了碰撞数据的复用,进而能够降低内存占用量,提升资源利用率。由于一种物件的缩放种类(即为缩放参数的种类)是有上限的,比如,最多有20个(缩小10个,放大10个)。而物件放置数量通常大于物件缩放种类数量,所以,本申请实施例通过将碰撞数据与物件缩放种类关联,能够降低内存,降低游戏场景的资源消耗。示例性地,一个物件的碰撞数据为4000字节,包括20个缩放种类,那么场景中该物件的碰撞数据占用的内存为8万字节();而当一个物件对应一个碰撞数据时,若游戏场景中包括10000个物件,则占用内存40兆字节();从而,采用本申请实施例提供的虚拟对象处理方法,能够将内存占用下降99.8%((40兆字节-8万字节)/40兆字节)。
下面继续说明本申请实施例提供的虚拟对象处理装置455的实施为软件模块的示例性结构,在一些实施例中,如图3所示,存储在存储器450的虚拟对象处理装置455中的软件模块可以包括:
请求响应模块4551,用于响应于针对待处理对象类别的实例处理请求,确定待处理对象实例,并获得请求缩放参数,其中,所述待处理对象实例为所述待处理对象类别的实例;
数据确定模块4552,用于基于所述待处理对象类别的目标数据对应关系,确定与所述请求缩放参数对应的目标碰撞数据,其中,所述目标数据对应关系表示所述待处理对象类别的缩放参数与碰撞数据之间的对应关系;
对象呈现模块4553,用于结合所述待处理对象实例与所述目标碰撞数据,在虚拟场景中呈现与所述请求缩放参数适配的第一虚拟对象,其中,所述第一虚拟对象为所述待处理对象类别的虚拟对象。
在本申请实施例中,所述实例处理请求为以下中的至少一种:实例放置请求、实例缩放请求和实例镜像请求,其中,实例放置请求用于请求在所述虚拟场景中放置所述待处理对象类别的所述虚拟对象,所述实例缩放请求用于请求缩放所述虚拟场景中所述待处理对象类别的所述虚拟对象,所述实例镜像请求用于请求对所述虚拟场景中所述待处理对象类别的所述虚拟对象进行镜像处理。
在本申请实施例中,当所述实例处理请求为实例放置请求时,所述请求响应模块4551,还用于响应于针对所述待处理对象类别的所述实例放置请求,生成所述待处理对象实例。
在本申请实施例中,所述请求响应模块4551,还用于响应于针对所述待处理对象类别的所述实例放置请求,获得待呈现位置;针对所述待呈现位置生成所述待处理对象实例。
在本申请实施例中,所述对象呈现模块4553,还用于结合所述待处理对象实例与所述目标碰撞数据,在所述虚拟场景的所述待呈现位置中,呈现与所述请求缩放参数适配的所述第一虚拟对象。
在本申请实施例中,当所述实例处理请求为实例缩放请求或实例镜像请求时,所述请求响应模块4551,还用于响应于针对所述待处理对象类别的所述实例缩放请求或所述实例镜像请求,确定待处理实例标识;基于所述待处理实例标识,查找出待解除对象实例;将所述待解除对象实例与原始碰撞数据解除关联,得到所述待处理对象实例。
在本申请实施例中,所述虚拟对象处理装置455还包括关系确定模块4554,用于响应于应用启动请求,获得各种对象类别分别对应的基准碰撞数据和基准缩放参数;基于所述基准缩放参数和所述基准碰撞数据之间的对应关系,确定数据对应关系,得到与各种所述对象类别对应的各个所述数据对应关系。
在本申请实施例中,所述关系确定模块4554,还用于从各个所述数据对应关系中,确定与所述待处理对象类别对应的所述目标数据对应关系。
在本申请实施例中,所述数据确定模块4552,还用于当所述目标数据对应关系中的至少一个所述缩放参数均与所述请求缩放参数不同时,生成与所述请求缩放参数对应的所述目标碰撞数据。
在本申请实施例中,所述数据确定模块4552,还用于针对所述待处理对象类别,在所述目标数据对应关系中对应存储所述请求缩放参数和所述目标碰撞数据,得到最新数据对应关系;响应于针对所述待处理对象类别的新实例处理请求,生成新对象实例;基于所述最新数据对应关系,确定与所述新实例处理请求的所述请求缩放参数对应的所述目标碰撞数据;结合所述新对象实例与所述目标碰撞数据,在所述虚拟场景中呈现与所述请求缩放参数适配的第二虚拟对象,其中,所述第二虚拟对象为所述待处理对象类别的所述虚拟对象。
在本申请实施例中,在本申请实施例中,所述数据确定模块4552,还用于当所述目标数据对应关系中的至少一个所述缩放参数均与所述请求缩放参数不同时,从所述目标数据对应关系中,确定与所述待处理对象类别的基准缩放参数对应的基准碰撞数据;基于所述基准碰撞数据,生成所述请求缩放参数的待调整碰撞数据;将所述待调整碰撞数据的所述缩放参数修改为所述请求缩放参数,得到所述目标碰撞数据。
在本申请实施例中,当所述请求缩放参数与基准缩放参数不同时,所述虚拟对象处理装置455还包括数量处理模块4555,用于基于指定步长增加所述目标碰撞数据的实例关联数量,得到最新实例关联数量;响应于针对所述待处理对象类别的实例删除请求,删除所述待处理对象实例;响应于所述待处理对象实例的删除,基于所述指定步长减少所述最新实例关联数量,得到当前实例关联数量;在所述当前实例关联数量为指定关联数量时,删除所述目标碰撞数据。
本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机可执行指令或者计算机程序,该计算机可执行指令或者计算机程序存储在计算机可读存储介质中。虚拟对象处理设备的处理器从计算机可读存储介质读取该计算机可执行指令或者计算机程序,处理器执行该计算机可执行指令或者计算机程序,使得该虚拟对象处理设备执行本申请实施例上述的虚拟对象处理方法。
本申请实施例提供一种计算机可读存储介质,其中存储有计算机可执行指令或者计算机程序,当计算机可执行指令或者计算机程序被处理器执行时,将引起处理器执行本申请实施例提供的虚拟对象处理方法,例如,如图4示出的虚拟对象处理方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,计算机可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,计算机可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(Hyper TextMarkup Language,HTML)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,计算机可执行指令可被部署为在一个电子设备上执行(此时,这一个电子设备即为虚拟对象处理设备),或者在位于一个地点的多个电子设备上执行(此时,位于一个地点的多个电子设备即为虚拟对象处理设备),又或者,在分布在多个地点且通过通信网络互连的多个电子设备上执行(此时,分布在多个地点且通过通信网络互连的多个电子设备即为虚拟对象处理设备)。
可以理解的是,在本申请实施例中,涉及到操作数据等相关的数据,当本申请实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
综上所述,本申请实施例通过在虚拟场景中处理携带碰撞数据的待处理对象类别的实例时,能够复用已有的与请求缩放参数对应的目标碰撞数据;也就是说,碰撞数据的数量与待处理对象类别和缩放参数关联,因此,能够降低碰撞数据的数量,从而在处理携带碰撞数据的虚拟对象时,能够提升资源利用率。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (11)
1.一种虚拟对象处理方法,其特征在于,所述方法包括:
响应于应用启动请求,获得各种对象类别分别对应的基准碰撞数据和基准缩放参数;
基于所述基准缩放参数和所述基准碰撞数据之间的对应关系,确定数据对应关系,得到与各种所述对象类别对应的各个所述数据对应关系;
响应于针对待处理对象类别的实例处理请求,确定待处理对象实例,并获得请求缩放参数,其中,所述实例处理请求为以下中的至少一种:实例放置请求、实例缩放请求和实例镜像请求,所述待处理对象实例为所述待处理对象类别的实例;
从各个所述数据对应关系中,确定与所述待处理对象类别对应的目标数据对应关系;
将所述请求缩放参数与所述目标数据对应关系中的至少一个缩放参数进行匹配;
当所述目标数据对应关系中存在与所述请求缩放参数匹配的缩放参数时,将所述匹配的缩放参数所对应的碰撞数据,确定为目标碰撞数据;
当所述目标数据对应关系中的至少一个所述缩放参数均与所述请求缩放参数不同时,生成与所述请求缩放参数对应的目标碰撞数据;
结合所述待处理对象实例与所述目标碰撞数据,在虚拟场景中呈现与所述请求缩放参数适配的第一虚拟对象,其中,所述第一虚拟对象为所述待处理对象类别的虚拟对象。
2.根据权利要求1所述的方法,其特征在于,所述实例放置请求用于请求在所述虚拟场景中放置所述待处理对象类别的所述虚拟对象,所述实例缩放请求用于请求缩放所述虚拟场景中所述待处理对象类别的所述虚拟对象,所述实例镜像请求用于请求对所述虚拟场景中所述待处理对象类别的所述虚拟对象进行镜像处理。
3.根据权利要求1或2所述的方法,其特征在于,当所述实例处理请求为实例放置请求时,所述响应于针对待处理对象类别的实例处理请求,确定待处理对象实例,包括:
响应于针对所述待处理对象类别的所述实例放置请求,生成所述待处理对象实例。
4.根据权利要求3所述的方法,其特征在于,所述响应于针对所述待处理对象类别的所述实例放置请求,生成所述待处理对象实例,包括:
响应于针对所述待处理对象类别的所述实例放置请求,获得待呈现位置;
针对所述待呈现位置生成所述待处理对象实例;
所述结合所述待处理对象实例与所述目标碰撞数据,在虚拟场景中呈现与所述请求缩放参数适配的第一虚拟对象,包括:
结合所述待处理对象实例与所述目标碰撞数据,在所述虚拟场景的所述待呈现位置中,呈现与所述请求缩放参数适配的所述第一虚拟对象。
5.根据权利要求1或2所述的方法,其特征在于,当所述实例处理请求为实例缩放请求或实例镜像请求时,所述响应于针对待处理对象类别的实例处理请求,确定待处理对象实例,包括:
响应于针对所述待处理对象类别的所述实例缩放请求或所述实例镜像请求,确定待处理实例标识;
基于所述待处理实例标识,查找出待解除对象实例;
将所述待解除对象实例与原始碰撞数据解除关联,得到所述待处理对象实例。
6.根据权利要求1所述的方法,其特征在于,所述生成与所述请求缩放参数对应的目标碰撞数据之后,所述方法还包括:
针对所述待处理对象类别,在所述目标数据对应关系中对应存储所述请求缩放参数和所述目标碰撞数据,得到最新数据对应关系;
响应于针对所述待处理对象类别的新实例处理请求,生成新对象实例;
基于所述最新数据对应关系,确定与所述新实例处理请求的所述请求缩放参数对应的所述目标碰撞数据;
结合所述新对象实例与所述目标碰撞数据,在所述虚拟场景中呈现与所述请求缩放参数适配的第二虚拟对象,其中,所述第二虚拟对象为所述待处理对象类别的所述虚拟对象。
7.根据权利要求1所述的方法,其特征在于,所述当所述目标数据对应关系中的至少一个所述缩放参数均与所述请求缩放参数不同时,生成与所述请求缩放参数对应的目标碰撞数据,包括:
当所述目标数据对应关系中的至少一个所述缩放参数均与所述请求缩放参数不同时,从所述目标数据对应关系中,确定与所述待处理对象类别的基准缩放参数对应的基准碰撞数据;
基于所述基准碰撞数据,生成所述请求缩放参数的待调整碰撞数据;
将所述待调整碰撞数据的所述缩放参数修改为所述请求缩放参数,得到所述目标碰撞数据。
8.根据权利要求1或2所述的方法,其特征在于,当所述请求缩放参数与基准缩放参数不同时,所述在虚拟场景中呈现与所述请求缩放参数适配的第一虚拟对象之后,所述方法还包括:
基于指定步长增加所述目标碰撞数据的实例关联数量,得到最新实例关联数量;
响应于针对所述待处理对象类别的实例删除请求,删除所述待处理对象实例;
响应于所述待处理对象实例的删除,基于所述指定步长减少所述最新实例关联数量,得到当前实例关联数量;
在所述当前实例关联数量为指定关联数量时,删除所述目标碰撞数据。
9.一种虚拟对象处理装置,其特征在于,所述虚拟对象处理装置包括:
关系确定模块,用于响应于应用启动请求,获得各种对象类别分别对应的基准碰撞数据和基准缩放参数;基于所述基准缩放参数和所述基准碰撞数据之间的对应关系,确定数据对应关系,得到与各种所述对象类别对应的各个所述数据对应关系;
请求响应模块,用于响应于针对待处理对象类别的实例处理请求,确定待处理对象实例,并获得请求缩放参数,其中,所述实例处理请求为以下中的至少一种:实例放置请求、实例缩放请求和实例镜像请求,所述待处理对象实例为所述待处理对象类别的实例;
所述关系确定模块,还用于从各个所述数据对应关系中,确定与所述待处理对象类别对应的目标数据对应关系;
数据确定模块,用于将所述请求缩放参数与所述目标数据对应关系中的至少一个缩放参数进行匹配;当所述目标数据对应关系中存在与所述请求缩放参数匹配的缩放参数时,将所述匹配的缩放参数所对应的碰撞数据,确定为目标碰撞数据;
所述数据确定模块,还用于当所述目标数据对应关系中的至少一个所述缩放参数均与所述请求缩放参数不同时,生成与所述请求缩放参数对应的目标碰撞数据;
对象呈现模块,用于结合所述待处理对象实例与所述目标碰撞数据,在虚拟场景中呈现与所述请求缩放参数适配的第一虚拟对象,其中,所述第一虚拟对象为所述待处理对象类别的虚拟对象。
10.一种用于虚拟对象处理的电子设备,其特征在于,所述电子设备包括:
存储器,用于存储计算机可执行指令或者计算机程序;
处理器,用于执行所述存储器中存储的计算机可执行指令或者计算机程序时,实现权利要求1至8任一项所述的虚拟对象处理方法。
11.一种计算机可读存储介质,存储有计算机可执行指令或者计算机程序,其特征在于,所述计算机可执行指令或者计算机程序被处理器执行时,实现权利要求1至8任一项所述的虚拟对象处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311542481.4A CN117244243B (zh) | 2023-11-20 | 2023-11-20 | 一种虚拟对象处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311542481.4A CN117244243B (zh) | 2023-11-20 | 2023-11-20 | 一种虚拟对象处理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117244243A CN117244243A (zh) | 2023-12-19 |
CN117244243B true CN117244243B (zh) | 2024-02-02 |
Family
ID=89135504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311542481.4A Active CN117244243B (zh) | 2023-11-20 | 2023-11-20 | 一种虚拟对象处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117244243B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002073385A1 (fr) * | 2001-03-08 | 2002-09-19 | National Institute Of Advanced Industrial Science And Technology | Procede et unite servant a presenter une force interieure au moyen d'un gyroscope |
CN106914019A (zh) * | 2017-03-17 | 2017-07-04 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置及服务器 |
CN111437606A (zh) * | 2020-03-30 | 2020-07-24 | 腾讯科技(深圳)有限公司 | 碰撞检测的方法和装置、存储介质及电子装置 |
CN114130031A (zh) * | 2021-11-12 | 2022-03-04 | 腾讯科技(深圳)有限公司 | 虚拟道具的使用方法、装置、设备、介质及程序产品 |
CN116036604A (zh) * | 2023-01-28 | 2023-05-02 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机及可读存储介质 |
-
2023
- 2023-11-20 CN CN202311542481.4A patent/CN117244243B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002073385A1 (fr) * | 2001-03-08 | 2002-09-19 | National Institute Of Advanced Industrial Science And Technology | Procede et unite servant a presenter une force interieure au moyen d'un gyroscope |
CN106914019A (zh) * | 2017-03-17 | 2017-07-04 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置及服务器 |
CN111437606A (zh) * | 2020-03-30 | 2020-07-24 | 腾讯科技(深圳)有限公司 | 碰撞检测的方法和装置、存储介质及电子装置 |
CN114130031A (zh) * | 2021-11-12 | 2022-03-04 | 腾讯科技(深圳)有限公司 | 虚拟道具的使用方法、装置、设备、介质及程序产品 |
CN116036604A (zh) * | 2023-01-28 | 2023-05-02 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机及可读存储介质 |
Non-Patent Citations (1)
Title |
---|
高玉琴.中国优秀硕士学位论文全文数据库.2009,(第2009年第5期期),摘要及第25页. * |
Also Published As
Publication number | Publication date |
---|---|
CN117244243A (zh) | 2023-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110018742B (zh) | 一种网络虚拟旅游系统的构建方法 | |
JP6279325B2 (ja) | マップ作成 | |
CN111402390A (zh) | 模型渲染方法、装置、设备及存储介质 | |
CN113112603B (zh) | 三维模型优化的方法和装置 | |
US20230071213A1 (en) | Virtual scenario generation method, apparatus and device and storage medium | |
US20230410433A1 (en) | Navigation mesh update | |
WO2021227864A1 (zh) | 虚拟场景的显示方法和装置、存储介质及电子设备 | |
EP3989175A1 (en) | Illumination probe generation method, apparatus, storage medium, and computer device | |
CN111369430B (zh) | 基于移动深度学习引擎的移动端人像智能背景替换方法 | |
CN101809625A (zh) | 用于在连续加性分辨率层中选择性地检索并显示地理空间纹理数据的地理空间数据系统及相关方法 | |
CN113010476B (zh) | 元数据查找方法、装置、设备及计算机可读存储介质 | |
CN111899323B (zh) | 三维地球的绘制方法及装置 | |
CN111583378B (zh) | 一种虚拟资产处理的方法及装置、电子设备、存储介质 | |
US8896601B1 (en) | Projecting geographic data from a spherical surface to two-dimensional cartesian space | |
JP2017535009A (ja) | データの検索方法、装置及び端末 | |
CN117244243B (zh) | 一种虚拟对象处理方法、装置、设备及存储介质 | |
US20230401806A1 (en) | Scene element processing method and apparatus, device, and medium | |
DE202021102320U1 (de) | System zum Implementieren einer Unterdatenbankreplikation | |
US20170213395A1 (en) | Methods and Systems for Processing 3D Graphic Objects at a Content Processor | |
CN110647377A (zh) | 人机交互界面的图片处理系统、设备及介质 | |
KR101265121B1 (ko) | 음성엔진과 인터렉티브 3차원 어플리케이션을 실시간으로 연동시키는 3차원 가상현실 컨트롤 미들웨어를 이용하는 3차원 가상현실 컨텐츠의 실시간 제어방법. | |
KR101265123B1 (ko) | 음성엔진과 인터렉티브 3차원 어플리케이션을 실시간으로 연동시키는 3차원 가상현실 컨트롤 미들웨어 시스템. | |
CN114565729A (zh) | 虚拟空间融合方法及相关装置、电子设备和存储介质 | |
CN111382200A (zh) | 信息加载方法、装置、服务器及存储介质 | |
CN117539491B (zh) | 页面布局方法、装置、电子设备、存储介质及程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |