虚拟模型的构件处理方法、装置以及电子设备与流程

文档序号:28500363发布日期:2022-01-15 04:47阅读:93来源:国知局
虚拟模型的构件处理方法、装置以及电子设备与流程

1.本公开涉及游戏技术领域,具体而言,涉及一种虚拟模型的构件处理方法、装置以及电子设备。


背景技术:

2.目前,很多沙盒游戏都允许玩家建造自定义的建筑物。然而,在写实类游戏(以建造类游戏为例)中,如何巧妙地限制建筑物的建造,使其结构更合理、贴近现实,同时保持较高的建造自由度,仍然是一个难题。例如,一些建造类游戏中没有对建造物的结构加以限制,由于设计规则不完备,玩家可以建造出头重脚轻、不符合常理的建筑物,如图1示出的虚拟游戏角色102建造的虚拟建筑物101,是通过一个地基支撑无限多的建材的,该虚拟建筑物101的建筑结构明显脱离现实。
3.另外,现有技术中还存在一些游戏采用较为粗暴的规则限制建造物的结构,例如:限制建造物不能超过地面一定高度;限制建造物的搭建层数;限制建造物不能超出地基的范围等,上述设计规则较为生硬且偏离了现实,难以被玩家接受;还有部分建造游戏为了使最终的建造物看起来合理,只允许玩家进行简单的建造,降低了建造游戏的自由度,并且限制了玩家在游戏中的发挥,导致游戏体验感较差。
4.针对上述的问题,目前尚未提出有效的解决方案。
5.公开内容
6.本公开实施例提供了一种虚拟模型的构件处理方法、装置以及电子设备,以至少解决相关技术中由于建造类游戏中的建造规则不完善导致游戏自由度低或建筑模型偏离现实的技术问题。
7.根据本公开实施例的一个方面,提供了一种虚拟模型的构件处理方法,包括:响应于针对虚拟游戏场景中的虚拟模型中的第一构件的删除触发事件,获取上述虚拟模型中的第二构件的支撑路径,其中,上述第一构件为与多个上述第二构件存在连接关系的支撑构件,上述第二构件为在上述第一构件作为支撑的基础上建立的被支撑构件,上述第二构件的支撑路径是以地面为起点,向上述第二构件起到直接或间接支撑的全部构件所组成的路径;获取上述第二构件的支撑路径中各个构件的稳定度系数;基于上述支撑路径和上述稳定度系数,计算得到上述第二构件的稳定度值,其中,上述稳定度值用于反映上述第二构件在上述虚拟模型中的稳固程度;依据上述稳定度值确定是否在删除上述第一构件时,从上述虚拟模型中删除上述第二构件。
8.可选的,获取上述第二构件的支撑路径中各个构件的稳定度系数,包括:获取上述第二构件的支撑路径中各个构件的构件类型;依据上述构件类型确定上述支撑路径中各个构件的稳定度系数,其中,上述稳定度系数是预先定义得到的,上述稳定度系数包括:单向支撑关系对应的第一稳定度系数、双向支撑关系对应的第二稳定度系数。
9.可选的,采用如下之一计算方式,基于上述支撑路径和上述稳定度系数,计算得到上述第二构件的稳定度值:若上述支撑路径中上述各个构件的稳定度系数为第一稳定度系
数,则基于上述支撑路径和上述第一稳定度系数,计算得到上述支撑路径中上述各个构件的第一稳定度值;若上述支撑路径中上述各个构件的稳定度系数为第二稳定度系数,则基于上述支撑路径和上述第二稳定度系数,计算得到上述支撑路径中上述各个构件的第二稳定度值;若上述支撑路径中上述各个构件的稳定度系数包括第一稳定度系数和上述第二稳定度系数,则基于上述支撑路径、上述第一稳定度系数和上述第二稳定度系数,计算得到上述支撑路径中上述各个构件的第三稳定度值。
10.可选的,当上述第二构件存在多条上述支撑路径时,上述方法包括:在计算上述第二构件的稳定度值时,对上述第二构件在每条上述支撑路径上的子稳定度值进行叠加计算,得到上述第二构件的稳定度值;或者确定上述第二构件在每条上述支撑路径上的子稳定度值对应的权重值,采用上述权重值和上述子稳定度值进行加权计算,得到上述第二构件的稳定度值。
11.可选的,获取上述虚拟模型中第二构件的支撑路径,包括:获取为上述第二构件提供直接支撑的相邻构件;断上述相邻构件是否接地;如果上述相邻构件接地,将上述相邻构件与上述第二构件组成上述第二构件的支撑路径;如果上述相邻构件不接地,获取为上述相邻构件提供直接支撑的间接相邻构件;判断上述间接相邻构件是否接地;如果上述间接相邻构件接地,将上述间接相邻构件、相邻构件与上述第二构件组成上述第二构件的支撑路径;如果上述间接相邻构件不接地,循环执行获取为上述间接相邻构件提供直接支撑的下一级间接相邻构件,直至下一级间接相邻构件接地为止。
12.可选的,依据上述稳定度值确定是否在删除上述第一构件时,从上述虚拟模型中删除上述第二构件,包括:检测到上述稳定度值是否小于或等于预设阈值;若检测到上述稳定度值小于或等于上述预设阈值,则确定在删除上述第一构件时,从上述虚拟模型中删除上述第二构件;若检测到上述稳定度值大于上述预设阈值,则确定在删除上述第一构件时,无需从上述虚拟模型中删除上述第二构件。
13.可选的,上述方法还包括:响应于针对上述第二构件的删除触发事件,更新上述虚拟模型中的第三构件的支撑路径和稳定度值,其中,上述第三构件为在上述第二构件的支撑基础上建立的被支撑构件,上述第三构件的支撑路径是以地面为起点,向上述第三构件起到直接或间接支撑的全部构件所组成的路径。
14.可选的,在上述第三构件为多个的情况下,更新上述虚拟模型中的第三构件的支撑路径和稳定度值,包括:更新上述第三构件中在当前帧画面中显示的全部或部分构件的支撑路径和稳定度值。
15.可选的,上述方法还包括:在上述第二构件未被删除时,响应于针对第四构件的新增触发事件,获取上述虚拟模型中的第四构件的支撑路径和稳定度值,其中,上述第四构件为在上述第二构件的支撑基础上建立的被支撑构件;上述第四构件的支撑路径是以地面为起点,向上述第四构件起到直接或间接支撑的全部构件所组成的路径。
16.根据本公开实施例的另一方面,还提供了一种虚拟模型的构件处理装置,包括:第一获取模块,用于响应于针对虚拟游戏场景中的虚拟模型中的第一构件的删除触发事件,获取上述虚拟模型中的第二构件的支撑路径,其中,上述第一构件为与多个上述第二构件存在连接关系的支撑构件,上述第二构件为在上述第一构件作为支撑的基础上建立的被支撑构件,上述第二构件的支撑路径是以地面为起点,向上述第二构件起到直接或间接支撑
的全部构件所组成的路径;第二获取模块,用于获取上述第二构件的支撑路径中各个构件的稳定度系数;计算模块,用于基于上述支撑路径和上述稳定度系数,计算得到上述第二构件的稳定度值,其中,上述稳定度值用于反映上述第二构件在上述虚拟模型中的稳固程度;删除模块,用于依据上述稳定度值确定是否在删除上述第一构件时,从上述虚拟模型中删除上述第二构件。
17.根据本公开实施例的另一方面,还提供了一种计算机可读存储介质,上述计算机可读存储介质包括存储的程序,其中,在上述程序运行时控制上述计算机可读存储介质所在设备执行任意一项上述的虚拟模型的构件处理方法。
18.根据本公开实施例的另一方面,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为运行上述计算机程序以执行任意一项上述的虚拟模型的构件处理方法。
19.在本公开实施例中,采用虚拟模型构件处理的方式,通过响应于针对虚拟游戏场景中的虚拟模型中的第一构件的删除触发事件,获取上述虚拟模型中的第二构件的支撑路径,其中,上述第一构件为与多个上述第二构件存在连接关系的支撑构件,上述第二构件为在上述第一构件作为支撑的基础上建立的被支撑构件,上述第二构件的支撑路径是以地面为起点,向上述第二构件起到直接或间接支撑的全部构件所组成的路径;获取上述第二构件的支撑路径中各个构件的稳定度系数;基于上述支撑路径和上述稳定度系数,计算得到上述第二构件的稳定度值,其中,上述稳定度值用于反映上述第二构件在上述虚拟模型中的稳固程度;依据上述稳定度值确定是否在删除上述第一构件时,从上述虚拟模型中删除上述第二构件。
20.由上可知,在本公开实施例中,在删除作为支撑控件的第一构件时,根据被第一构件支撑的第二构件的支撑路径和支撑路径中各个构件的稳定度系数,计算得到该第二构件的稳定度值,进而可以依据该稳定度值确定是否在删除上述第一构件时,从上述虚拟模型中删除上述第二构件。达到了基于建造类游戏中的虚拟建筑模型的建造规则处理建筑模型中的构件的目的,从而实现了使提升建造类游戏中玩家运行游戏的自由度,而且使得玩家设计的虚拟建筑模型更贴近现实的技术效果,进而解决了相关技术中由于建造类游戏中的建造规则不完善导致游戏自由度低或建筑模型偏离现实的技术问题。
附图说明
21.此处所说明的附图用来提供对本公开的进一步理解,构成本技术的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:
22.图1是根据现有技术的一种游戏中建筑物模型结构的示意图;
23.图2是根据本公开实施例的一种虚拟模型的构件处理方法的流程图;
24.图3是根据本公开实施例的一种可选的虚拟模型的构件支撑示意图;
25.图4是根据本公开实施例的一种可选的虚拟模型的构件处理方法的流程图;
26.图5是根据本公开实施例的另一种可选的虚拟模型的构件支撑示意图;
27.图6是根据本公开实施例的一种虚拟模型的构件处理装置的结构示意图。
具体实施方式
28.为了使本技术领域的人员更好地理解本公开方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
29.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
30.首先,为方便理解本公开实施例,下面将对本公开中所涉及的部分术语或名词进行解释说明:
31.地基:代表一类与地面直接连接的建材构件。
32.沙盒游戏:是指由一个或多个地图区域构成的游戏,往往包含多种游戏要素,包括角色扮演、动作、射击、驾驶等,创造是该类游戏的核心玩法,利用游戏中提供的物件制造出玩家自己独创的建筑模型或其他模型。
33.根据本公开实施例,提供了一种虚拟模型的构件处理的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
34.该方法实施例的技术方案可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,该移动终端可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobile internet devices,简称为mid)、pad等终端设备。移动终端可以包括一个或多个处理器(处理器可以包括但不限于中央处理器(cpu)、图形处理器(gpu)、数字信号处理(dsp)芯片、微处理器(mcu)、可编程逻辑器件(fpga)、神经网络处理器(npu)、张量处理器(tpu)、人工智能(ai)类型处理器等的处理装置)和用于存储数据的存储器。可选地,上述移动终端还可以包括用于通信功能的传输设备、输入输出设备以及显示设备。本领域普通技术人员可以理解,上述结构描述仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比上述结构描述更多或者更少的组件,或者具有与上述结构描述不同的配置。
35.存储器可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本公开实施例中的虚拟模型的构件处理方法对应的计算机程序,处理器通过运行存储在存储器内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的虚拟模型的构件处理方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包
括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
36.传输设备用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输设备包括一个网络适配器(network interface controller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备可以为射频(radio frequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。该方法实施例的技术方案可以应用于各种通信系统,例如:全球移动通讯(global system of mobile communication,简称为gsm)系统、码分多址(code division multiple access,简称为cdma)系统、宽带码分多址(wideband code division multiple access,简称为wcdma)系统、通用分组无线业务(general packet radio service,简称为gprs)、长期演进(long term evolution,简称为lte)系统、lte频分双工(frequency division duplex,简称为fdd)系统、lte时分双工(time division duplex,简称为tdd)、通用移动通信系统(universal mobile telecommunication system,简称为umts)、全球互联微波接入(worldwide interoperability for microwave access,简称为wimax)通信系统或5g系统等。可选地,多个移动终端之间可以进行设备到设备(device to device,简称为d2d)通信。可选地,5g系统或5g网络又被称为新无线(new radio,简称为nr)系统或nr网络。
37.显示设备可以例如触摸屏式的液晶显示器(lcd)和触摸显示器(也被称为“触摸屏”或“触摸显示屏”)。该液晶显示器可使得玩家能够与移动终端的玩家界面进行交互。在一些实施例中,上述移动终端具有图形玩家界面(gui),玩家可以通过触摸触敏表面上的手指接触和/或手势来与gui进行人机交互,此处的人机交互功能可选的包括如下交互:创建网页、绘图、文字处理、制作电子文档、游戏、视频会议、即时通信、收发电子邮件、通话界面、播放数字视频、播放数字音乐和/或网络浏览等、用于执行上述人机交互功能的可执行指令被配置/存储在一个或多个处理器可执行的计算机程序产品或可读计算机可读存储介质中。
38.在本公开其中一种实施例中的虚拟模型的构件处理方法可以运行于终端设备或者是服务器。其中,终端设备可以为本地终端设备,服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。当虚拟模型的构件处理方法运行于服务器时,该方法则可以基于云交互系统来实现与执行,其中,云交互系统包括服务器和客户端设备。
39.本公开的技术方案中,所涉及的玩家个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
40.在一种可能的实施方式中,本公开实施例提供了一种虚拟模型的构件处理方法,通过终端设备提供图形玩家界面,其中,终端设备可以是前述提到的本地终端设备,也可以是前述提到的云交互系统中的客户端设备。
41.图2是根据本公开实施例的一种虚拟模型的构件处理方法的流程图,如图2所示,该方法包括如下步骤:
42.步骤s102,响应于针对虚拟游戏场景中的虚拟模型中的第一构件的删除触发事件,获取上述虚拟模型中的第二构件的支撑路径;
43.步骤s104,获取上述第二构件的支撑路径中各个构件的稳定度系数;
44.步骤s106,基于上述支撑路径和上述稳定度系数,计算得到上述第二构件的稳定度值,其中,上述稳定度值用于反映上述第二构件在上述虚拟模型中的稳固程度;
45.步骤s108,依据上述稳定度值确定是否在删除上述第一构件时,从上述虚拟模型中删除上述第二构件。
46.可选的,在本公开实施例中,上述第一构件为与多个上述第二构件存在连接关系的支撑构件,上述第二构件为在上述第一构件作为支撑的基础上建立的被支撑构件,上述第二构件的支撑路径是以地面为起点,向上述第二构件起到直接或间接支撑的全部构件所组成的路径。
47.可选的,上述虚拟游戏场景中的虚拟模型可以为虚拟建筑模型,第一构件为虚拟建筑模型中的支撑构件,例如,地基、楼板等底层起到支撑作用的构件;上述虚拟模型中包括至少一个第一构件,以及至少一个第二构件。
48.可选的,由于该上述第一构件为与多个上述第二构件存在连接关系的支撑构件,上述第二构件为在上述第一构件作为支撑的基础上建立的被支撑构件;获取上述虚拟模型中的第二构件的支撑路径,即根据上述第一构件与上述第二构件之间存在的支撑与被支撑的关系,将以地面为起点,从第一构件向上述第二构件起到直接或间接支撑的全部构件所组成的路径作为该第二构件的支撑路径。
49.可选的,上述稳定度系数表示某一构件从提供支撑的构件处获得稳定度的比例,上述稳定度系数值介于0-1之间,最大为1。例如,第二构件的稳定度系数即第二构件从第一构件处获得稳定度值的比例值。其中,该稳定度系数越大则表明该由第二构件建立起的虚拟建筑模型的建筑结构更加的稳定、牢固。
50.由于第一构件的类型是预先确定的,因此,上述稳定度系数主要是基于上述第二构件的支撑路径中各个构件的构件类型预先确定的,作为一种可选的实施例,该第二构件的构件类型可以但不限于包括:楼板(在第一构件为地基的情况下)、墙壁、窗户、门、篱笆、木桩等,上述支撑路径中各个构件的支撑关系可以但不限于包括单向支撑关系、双向支撑关系,因此,上述稳定度系数包括:单向支撑关系对应的第一稳定度系数、双向支撑关系对应的第二稳定度系数。
51.需要说明的是,如果支撑关系包括3层及以上(即存在间接支撑),那么,在计算第二构件的稳定度值时所采用的稳定度系数对应支撑路径中的各个构件(也包括第二构件)。
52.作为一种可选的实施例,在本公开中,上述第二构件的稳定度系数可以但不限于只与第二构件的构件类型有关;还可以存在一种可选的实施例,即该第二构件的稳定度系数既与第一构件的类型有关,又与第二构件的类型有关;还可以存在另一种可选的实施例,即该稳定度系数为一固定值,与第二构件的构件类型无关,所有类型的第二构件的稳定度系数均唯一固定。需要说明的是,在本公开实施例中,上述稳定度系数的获取方式可根据玩家在游戏中的游戏需求变化灵活切换使用。
53.可选的,上述稳定度值用于反映上述第二构件在上述虚拟模型中的稳固程度,稳定度值越大说明上述第二构件在上述虚拟模型中稳固程度越高,反之则说明第二构件在上述虚拟模型中的稳固程度越低,当上述第二构件的稳定度值小于预设阈值时,则确定从在删除上述第一构件时,从上述虚拟模型中删除上述第二构件,可以保证最后保留的最终的虚拟模型看起来合理,更加接近现实。
54.需要说明的是,为了模拟现实中的建筑建造中需要考虑的材料强度、承重等因素,本公开实施例中提出了稳定度值的概念,即对一个被支撑的第二构件,不再是只有存在支撑、不存在支撑的两种状态,而是在确定支撑路径的基础上,通过确定该第二构件的稳定度值来定量衡量支撑第二构件的稳固程度。例如,将第一构件(如地基)的稳定度设为100,由于第二构件(除地基外的被支撑构件)都必须与地基建立连接关系,上述连接关系包括:直接与地基连接,以及通过其他构件间接与地基连接,上述第二构件均受地基的支撑,但上述受支撑的构件只能获得为其提供支撑的构件的一部分稳定度值,即在第二构件的支撑路径上,每个构件都仅能获得上一个构件的部分稳定度,因此离地基越远的第二构件的稳定度值也越低,稳定度值低于预设阈值的第二构件,在在删除上述第一构件时,从虚拟模型中删除。
55.仍需说明的是,为了限制虚拟模型的结构,很多游戏都使用较为粗暴的规则,例如:限制虚拟模型不能超过地面一定高度、限制虚拟模型的搭建层数、限制虚拟模型不能超出地基的范围等;部分建造游戏为了使最终的虚拟模型看起来合理,只允许玩家进行简单的建造。为解决上述问题,本公开实施例中,通过构建一种更为简洁的构造规则,即基于虚拟模型中各构件之间的支撑路径以及各构件的稳定度值更新虚拟模型的结构,在保持玩家游戏高自由度的同时保证虚拟模型更加贴近现实。
56.在本公开实施例中,在删除作为支撑控件的第一构件时,根据被第一构件支撑的第二构件的支撑路径和支撑路径中各个构件的稳定度系数,计算得到该第二构件的稳定度值,进而可以依据该稳定度值确定是否在删除上述第一构件时,从上述虚拟模型中删除上述第二构件。达到了基于建造类游戏中的虚拟建筑模型的建造规则处理建筑模型中的构件的目的,从而实现了使提升建造类游戏中玩家运行游戏的自由度,而且使得玩家设计的虚拟建筑模型更贴近现实的技术效果,进而解决了相关技术中由于建造类游戏中的建造规则不完善导致游戏自由度低或建筑模型偏离现实的技术问题。
57.可选的,获取上述第二构件的支撑路径中各个构件的稳定度系数,包括:
58.步骤s202,获取上述第二构件的支撑路径中各个构件的构件类型;
59.步骤s204,依据上述构件类型确定上述支撑路径中各个构件的稳定度系数,其中,上述稳定度系数是预先定义得到的,上述稳定度系数包括:单向支撑关系对应的第一稳定度系数、双向支撑关系对应的第二稳定度系数。
60.可选的,上述构件类型可以但不限于包括楼板、墙壁、窗户、门、篱笆、木桩等;上述第二构件的支撑路径中各个构件的构件类型,确定支撑路径中各个构件的稳定度系数,即预设该第二构件的稳定度系数与支撑路径中各个构件的构件类型有关,需要说明的是,同一类型的构件在不同支撑关系下得到不同的稳定度系数,每种类型的构件至少包括两个稳定度系数:单向支撑关系对应的第一稳定度系数、双向支撑关系对应的第二稳定度系数,且上述第一稳定度系数小于上述第二稳定度系数。
61.此外,还存在一种可选的实施例,即上述第二构件的稳定度系数既与自身的构件类型有关,也与其支撑构件(即第一构件)的类型有关。
62.可选的,在本公开实施例中,上述单向支撑关系表示两构件中其中一个构件受到另外一个构件的支撑,例如,构件a和构件b之间属于上下位置关系,构件a位于构件b的下方,为构件b提供支撑,但构件a无法受到构件b的支撑,即视为单向支撑关系;上述双向支撑
关系表示两构件之间存在相互支撑关系,例如,构件a和构件b之间属于卯榫结构的连接关系,则构件a和构件b之间可以相互提供支撑,其中,一个构件有支撑就可以被搭建,失去支撑则会被删除或者销毁。
63.作为一种可选的实施例,图3是根据本公开实施例的一种可选的虚拟模型的构件支撑示意图,如图3示出的虚拟模型由四个构件组成,即构件301、构件302、构件303、构件304,上述构件301-304的构件类型均为墙壁,其中,构件301和构件302为地基,构件301与构件303之间为单向支撑关系,即构件301为构件303提供支撑;构件302与构件304之间为单向支撑关系,即构件302为构件304提供支撑;构件303与构件304之间为双向支撑关系,即构件303余构件304之间相互支撑。若只销毁构件301,构件304受到构件302的支撑,构件303受到构件304的支撑,上述虚拟模型不会完全销毁;若此时再销毁构件302,则构件303和构件304均失去支撑,上述虚拟模型会被完全销毁。
64.作为一种可选的实施例,图4是根据本公开实施例的一种可选的虚拟模型的构件处理方法的流程图,如图4所示,在本公开实施例中,可以采用如下之一计算方式,基于上述支撑路径和上述稳定度系数,计算得到上述第二构件的稳定度值:
65.步骤s302,若上述支撑路径中上述各个构件的稳定度系数为第一稳定度系数,则基于上述支撑路径和上述第一稳定度系数,计算得到上述支撑路径中上述各个构件的第一稳定度值;
66.步骤s304,若上述支撑路径中上述各个构件的稳定度系数为第二稳定度系数,则基于上述支撑路径和上述第二稳定度系数,计算得到上述支撑路径中上述各个构件的第二稳定度值;
67.步骤s306,若上述支撑路径中上述各个构件的稳定度系数包括第一稳定度系数和上述第二稳定度系数,则基于上述支撑路径、上述第一稳定度系数和上述第二稳定度系数,计算得到上述支撑路径中上述各个构件的第三稳定度值。
68.可选的,基于上述支撑路径和上述第一稳定度系数、第二稳定度系数,计算得到上述第二构件的第一稳定度值、第二稳定度值,可以但不限于为计算上述支撑路径对应的第一构件的稳定度与上述第一稳定度系数、第二稳定度值的乘积;上述第三稳定度值可以但不限于为上述第一稳定度值和第二稳定度值之和。
69.可选的,若上述第二构件的支撑关系仅为单向支撑关系,则基于上述支撑路径和上述单向支撑关系对应的第一稳定度系数,计算得到上述第二构件的第一稳定度值。例如,如果假设虚拟游戏场景中一个虚拟模型存在三个构件,即构件a、构件b、构件c,其中,构件a支撑构件b,构件b支撑构件c,三者之间均为单向支撑,且构件a为地基,稳定度为100,若构件b的单向稳定度系数为0.7,则构件b能从构件a处获得的稳定度值为70,由于没有收到其他支撑,因此构件b稳定度值为70;若构件c的单向稳定度系数为0.2,则构件c对应的稳定度值为构件b稳定度值与构件c的单向稳定度系数的乘积,即70*0.2=14。
70.作为另一种可选的实施例,若上述第二构件的支撑关系仅为双向支撑关系,则基于上述支撑路径和上述双向支撑关系对应的第一稳定度系数,计算得到上述第二构件的第二稳定度值。例如,一虚拟模型种有三个构件,即构件d、构件e、构件f,其中,构件d支撑构件e,构件e支撑构件f,构件d与构件e之间为单向支撑,构件e与构件f之间为双向支撑,且构件a为地基,稳定度为100,若构件b的单向稳定度系数为0.8,则计算得到构件b稳定度值为70;
若构件c的双向稳定度系数为0.2,则构件c对应的稳定度值为构件b稳定度值与构件c的双向稳定度系数的乘积,即80*0.2=16。
71.作为再一种可选的实施例,若上述第二构件的支撑关系既包括单向支撑关系,同时包括双向支撑关系,则基于上述第二构件的第一稳定度值和第二稳定度值,计算得到上述第二构件的第三稳定度值。
72.例如,图5是根据本公开实施例的另一种可选的虚拟模型的构件支撑示意图,如图5所示,上述虚拟模型包括构件501、构件502、构件503和构件504,其中,构件501为地基,构件502和构件503墙壁,构件504为楼板;构件501支撑了构件502和构件503;构件502和构件503互相支撑;构件502和构件503都为构件504提供支撑。例如,墙壁的单向稳定度系数为0.7,双向稳定度系数为0.1;楼板的单向稳定度系数为0.25。如果构件502包括两条支撑路径,即构件501支撑构件502(记为502《-501),以及构件503与构件502互相支撑,并且构件503受到构件501的支撑(记为502《-503《-501),则构件502的总支撑路径为两条路径之和(记为502《-501+502《-503《-501),基于上述支撑路径和构件502对应的稳定度系数,确定构件502的稳定度值为0.7*100+0.1*0.7*100=77。构件503与构件502的连接结构相同,稳定度值同样为77。同理获取构件504的支撑路径为4《-2《-1+4《-2《-3《-1+4《-3《-1+4《-3《-2《-1,确定构件504的稳定度值为0.25*0.7*100+0.25*0.1*0.7*100+0.25*0.1*0.7*100=38.5。
73.作为一种可选的实施例,当上述第二构件存在多条上述支撑路径时,上述方法包括:在计算上述第二构件的稳定度值时,对上述第二构件在每条上述支撑路径上的子稳定度值进行叠加计算,得到上述第二构件的稳定度值;或者,确定上述第二构件在每条上述支撑路径上的子稳定度值对应的权重值,采用上述权重值和上述子稳定度值进行加权计算,得到上述第二构件的稳定度值。
74.作为一种可选的实施例,获取上述虚拟模型中第二构件的支撑路径,包括:
75.步骤s502,获取为上述第二构件提供直接支撑的相邻构件;
76.步骤s504,判断上述相邻构件是否接地;
77.步骤s506,如果上述相邻构件接地,将上述相邻构件与上述第二构件组成上述第二构件的支撑路径;
78.步骤s508,如果上述相邻构件不接地,获取为上述相邻构件提供直接支撑的间接相邻构件;
79.步骤s510,判断上述间接相邻构件是否接地;
80.步骤s512,如果上述间接相邻构件接地,将上述间接相邻构件、相邻构件与上述第二构件组成上述第二构件的支撑路径;
81.步骤s514,如果上述间接相邻构件不接地,循环执行获取为上述间接相邻构件提供直接支撑的下一级间接相邻构件,直至下一级间接相邻构件接地为止。
82.可选的,上述第一构件和上述第二构件分别作为上述图形数据结构中的节点,不同节点之间的箭头指示方向表示上述节点对应的构件的支撑方向。作为一种可选的实施例,在计算单个构件的稳定度值时,不断往外递归建材的parents并加入到支撑路径中,直到找到地基,才返回累积的稳定度值。例如,将上述虚拟模型抽象为图形数据结构,将与上述第二构件存在支撑关系的构件分为两个集合,即parents集合和children,其中,parents
集合中的存放为上述第二构件提供支撑的构件;children集合中存放被上述第二构件支撑的构件;若某一构件既属于parents集合又属于children集合,则该构件与本构件之间为双向支撑关系。此外,每个构件都对应一个节点,上述parents集合和children集合记录了节点间的连接关系,parents集合内的构件表示指上述第二构件对应节点的单向箭头;children集合内的构件表示指出上述第二构件对应节点的单向箭头;若某一构件既属于parents集合又属于children集合,则会形成双箭头。其中,箭头方向表示支撑方向,双箭头即为双向支撑。
83.作为一种可选的实施例,依据上述稳定度值确定是否在删除上述第一构件时,从上述虚拟模型中删除上述第二构件,包括:
84.步骤s602,检测到上述稳定度值是否小于或等于预设阈值;
85.步骤s604,若检测到上述稳定度值小于或等于上述预设阈值,则确定在删除上述第一构件时,从上述虚拟模型中删除上述第二构件;
86.步骤s606,若检测到上述稳定度值大于上述预设阈值,则确定在删除上述第一构件时,无需从上述虚拟模型中删除上述第二构件。
87.可选的,当上述稳定度值小于或等于上述预设阈值时,则表明上述第二构件的稳定度值过低,即上述第二构件的连接关系不合理,则确定在删除上述第一构件时,从上述虚拟模型中删除上述第二构件。相应的,若检测到上述稳定度值大于上述预设阈值,则确定在删除上述第一构件时,无需从上述虚拟模型中删除上述第二构件。
88.作为另一种可选的实施例,上述方法还包括:
89.响应于针对上述第二构件的删除触发事件,更新上述虚拟模型中的第三构件的支撑路径和稳定度值,其中,上述第三构件为在上述第二构件的支撑基础上建立的被支撑构件,上述第三构件的支撑路径是以地面为起点,向上述第三构件起到直接或间接支撑的全部构件所组成的路径。
90.需要说明的是,为了降低计算开销,在删除或者销毁一个构件时,由于虚拟模型中只有受上述被销毁构件(第二构件)支撑的构件(第三构件)的稳定度会受到影响,即删除第二构件时被第二构件支撑的第三构件的稳定度会受到影响,因此只需更新受上述被删除或者销毁的第二构件支撑的第三构件。
91.可选的,在本公开实施例中,在上述第三构件为多个的情况下,更新上述虚拟模型中的第三构件的支撑路径和稳定度值,包括:更新上述第三构件中在当前帧画面中显示的全部或部分构件的支撑路径和稳定度值。
92.在上述公开实施例中,为了降低计算峰值、避免卡顿,当有大量构件需要同时更新稳定度时,可以进行分帧处理,即一次只更新部分构件,优先更新上述第三构件中在当前帧画面中显示的全部或部分构件的支撑路径和稳定度值。
93.还存在另一种可选的实施例,上述方法还包括:
94.在上述第二构件未被删除时,响应于针对第四构件的新增触发事件,获取上述虚拟模型中的第四构件的支撑路径和稳定度值,其中,上述第四构件为在上述第二构件的支撑基础上建立的被支撑构件;上述第四构件的支撑路径是以地面为起点,向上述第四构件起到直接或间接支撑的全部构件所组成的路径。
95.在上述可选的实施例中,由于虚拟模型中只有支撑构件的稳定度会受到影响,因
此在第二构件未被删除的情况下,如果在第二构件的基础上新增一个第四构件,例如,响应于针对第四构件的新增触发事件,在新增一个或多个第四构件时,只需更新该第四构件的支撑路径和稳定度值,可选的,还可以更新受该第四构件支撑的其他构件的支撑路径和稳定度值。
96.根据本公开实施例,还提供了一种用于实施上述虚拟模型的构件处理方法的装置实施例,图6是根据本公开实施例的一种虚拟模型的构件处理装置的结构示意图,如图6所示,上述虚拟模型的构件处理装置,包括:第一获取模块700、第二获取模块702、计算模块704、删除模块706,其中:
97.第一获取模块700,用于响应于针对虚拟游戏场景中的虚拟模型中的第一构件的删除触发事件,获取上述虚拟模型中的第二构件的支撑路径,其中,上述第一构件为与多个上述第二构件存在连接关系的支撑构件,上述第二构件为在上述第一构件作为支撑的基础上建立的被支撑构件,上述第二构件的支撑路径是以地面为起点,向上述第二构件起到直接或间接支撑的全部构件所组成的路径;第二获取模块702,用于获取上述第二构件的支撑路径中各个构件的稳定度系数;计算模块704,用于基于上述支撑路径和上述稳定度系数,计算得到上述第二构件的稳定度值,其中,上述稳定度值用于反映上述第二构件在上述虚拟模型中的稳固程度;删除模块706,用于依据上述稳定度值确定是否在删除上述第一构件时,从上述虚拟模型中删除上述第二构件。
98.需要说明的是,上述各个模块是可以通过软件或硬件来实现的,例如,对于后者,可以通过以下方式实现:上述各个模块可以位于同一处理器中;或者,上述各个模块以任意组合的方式位于不同的处理器中。
99.此处需要说明的是,上述第一获取模块700、第二获取模块702、计算模块704、删除模块706对应于方法实施例中的步骤s102至步骤s108,上述模块与对应的步骤所实现的实例和应用场景相同,但不限于上述方法实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在计算机终端中。
100.需要说明的是,本实施例的可选或优选实施方式可以参见方法实施例中的相关描述,此处不再赘述。
101.上述的虚拟模型的构件处理装置还可以包括处理器和存储器,上述第一获取模块700、第二获取模块702、计算模块704、删除模块706等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
102.处理器中包含内核,由内核去存储器中调取相应的程序单元,上述内核可以设置一个或以上。存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。
103.根据本技术实施例,还提供了一种计算机可读存储介质实施例。可选地,在本实施例中,上述计算机可读存储介质包括存储的程序,其中,在上述程序运行时控制上述计算机可读存储介质所在设备执行上述任意一种虚拟模型的构件处理方法。
104.可选地,在本实施例中,上述计算机可读存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中,上述计算机可读存储介质包括存储的程序。
105.可选地,在程序运行时控制计算机可读存储介质所在设备执行以下功能:响应于针对虚拟游戏场景中的虚拟模型中的第一构件的删除触发事件,获取上述虚拟模型中的第二构件的支撑路径,其中,上述第一构件为与多个上述第二构件存在连接关系的支撑构件,上述第二构件为在上述第一构件作为支撑的基础上建立的被支撑构件,上述第二构件的支撑路径是以地面为起点,向上述第二构件起到直接或间接支撑的全部构件所组成的路径;获取上述第二构件的支撑路径中各个构件的稳定度系数;基于上述支撑路径和上述稳定度系数,计算得到上述第二构件的稳定度值,其中,上述稳定度值用于反映上述第二构件在上述虚拟模型中的稳固程度;依据上述稳定度值确定是否在删除上述第一构件时,从上述虚拟模型中删除上述第二构件。
106.可选的,获取上述第二构件的支撑路径中各个构件的稳定度系数,包括:获取上述第二构件的支撑路径中各个构件的构件类型;依据上述构件类型确定上述支撑路径中各个构件的稳定度系数,其中,上述稳定度系数是预先定义得到的,上述稳定度系数包括:单向支撑关系对应的第一稳定度系数、双向支撑关系对应的第二稳定度系数。
107.可选地,在程序运行时控制计算机可读存储介质所在设备执行以下功能:若上述支撑路径中上述各个构件的稳定度系数为第一稳定度系数,则基于上述支撑路径和上述第一稳定度系数,计算得到上述支撑路径中上述各个构件的第一稳定度值;若上述支撑路径中上述各个构件的稳定度系数为第二稳定度系数,则基于上述支撑路径和上述第二稳定度系数,计算得到上述支撑路径中上述各个构件的第二稳定度值;若上述支撑路径中上述各个构件的稳定度系数包括第一稳定度系数和上述第二稳定度系数,则基于上述支撑路径、上述第一稳定度系数和上述第二稳定度系数,计算得到上述支撑路径中上述各个构件的第三稳定度值。
108.可选地,在程序运行时控制计算机可读存储介质所在设备执行以下功能:在计算上述第二构件的稳定度值时,对上述第二构件在每条上述支撑路径上的子稳定度值进行叠加计算,得到上述第二构件的稳定度值;或者确定上述第二构件在每条上述支撑路径上的子稳定度值对应的权重值,采用上述权重值和上述子稳定度值进行加权计算,得到上述第二构件的稳定度值。
109.可选地,在程序运行时控制计算机可读存储介质所在设备执行以下功能:获取为上述第二构件提供直接支撑的相邻构件;断上述相邻构件是否接地;如果上述相邻构件接地,将上述相邻构件与上述第二构件组成上述第二构件的支撑路径;如果上述相邻构件不接地,获取为上述相邻构件提供直接支撑的间接相邻构件;判断上述间接相邻构件是否接地;如果上述间接相邻构件接地,将上述间接相邻构件、相邻构件与上述第二构件组成上述第二构件的支撑路径;如果上述间接相邻构件不接地,循环执行获取为上述间接相邻构件提供直接支撑的下一级间接相邻构件,直至下一级间接相邻构件接地为止。
110.可选地,在程序运行时控制计算机可读存储介质所在设备执行以下功能:检测到上述稳定度值是否小于或等于预设阈值;若检测到上述稳定度值小于或等于上述预设阈值,则确定在删除上述第一构件时,从上述虚拟模型中删除上述第二构件;若检测到上述稳定度值大于上述预设阈值,则确定在删除上述第一构件时,无需从上述虚拟模型中删除上述第二构件。
111.可选地,在程序运行时控制计算机可读存储介质所在设备执行以下功能:响应于
针对上述第二构件的删除触发事件,更新上述虚拟模型中的第三构件的支撑路径和稳定度值,其中,上述第三构件为在上述第二构件的支撑基础上建立的被支撑构件,上述第三构件的支撑路径是以地面为起点,向上述第三构件起到直接或间接支撑的全部构件所组成的路径。
112.可选地,在程序运行时控制计算机可读存储介质所在设备执行以下功能:更新上述第三构件中在当前帧画面中显示的全部或部分构件的支撑路径和稳定度值。
113.可选地,在程序运行时控制计算机可读存储介质所在设备执行以下功能:在上述第二构件未被删除时,响应于针对第四构件的新增触发事件,获取上述虚拟模型中的第四构件的支撑路径和稳定度值,其中,上述第四构件为在上述第二构件的支撑基础上建立的被支撑构件;上述第四构件的支撑路径是以地面为起点,向上述第四构件起到直接或间接支撑的全部构件所组成的路径。
114.根据本技术实施例,还提供了一种处理器实施例。可选地,在本实施例中,上述处理器用于运行程序,其中,上述程序运行时执行上述任意一种虚拟模型的构件处理方法。
115.本技术实施例提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为运行上述计算机程序以执行任意一项上述的虚拟模型的构件处理方法。
116.本技术还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:响应于针对虚拟游戏场景中的虚拟模型中的第一构件的删除触发事件,获取上述虚拟模型中的第二构件的支撑路径,其中,上述第一构件为与多个上述第二构件存在连接关系的支撑构件,上述第二构件为在上述第一构件作为支撑的基础上建立的被支撑构件,上述第二构件的支撑路径是以地面为起点,向上述第二构件起到直接或间接支撑的全部构件所组成的路径;获取上述第二构件的支撑路径中各个构件的稳定度系数;基于上述支撑路径和上述稳定度系数,计算得到上述第二构件的稳定度值,其中,上述稳定度值用于反映上述第二构件在上述虚拟模型中的稳固程度;依据上述稳定度值确定是否在删除上述第一构件时,从上述虚拟模型中删除上述第二构件。
117.上述本公开实施例序号仅仅为了描述,不代表实施例的优劣。
118.在本公开的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
119.在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
120.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
121.另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单
元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
122.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取计算机可读存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个计算机可读存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的计算机可读存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
123.以上所述仅是本公开的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本公开原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本公开的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1