虚拟对象显示方法、装置、电子装置及存储介质与流程

文档序号:16393746发布日期:2018-12-25 19:35阅读:189来源:国知局
虚拟对象显示方法、装置、电子装置及存储介质与流程

本发明涉及计算机技术领域,特别涉及一种虚拟对象显示方法、装置、电子装置及存储介质。

背景技术

随着计算机技术的发展以及终端功能的多样化,在终端上能够进行的游戏种类越来越多。其中,射击类游戏是一种比较盛行的游戏,终端可以在界面中显示虚拟场景,并在虚拟场景中显示虚拟对象,具体地,可以在虚拟场景中显示虚拟对象的显示模型。其中,该虚拟对象可以包括第一虚拟对象和第二虚拟对象,第一虚拟对象为该终端控制的虚拟对象,第二虚拟对象为该终端以外的其它终端控制的虚拟对象。

目前,虚拟对象显示方法通常是制作有虚拟对象的全身模型,该全身模型身上并未穿戴有任何服饰,当检测到对第一虚拟对象的形象更改操作时,可以将待穿戴的服饰显示于所述第一虚拟对象的全身模型的外围,从而显示出该虚拟对象穿戴了服饰的效果。

在实现本发明的过程中,发明人发现相关技术至少存在以下问题:

上述方法中在模型外套其他模型,可能会存在某些模型之间不能任意组合,或组合后出现模型穿插的问题,且终端需要渲染多个模型,计算量和渲染量较大,因此,上述虚拟对象显示方法的显示效率低,显示效果差。



技术实现要素:

本发明实施例提供了一种虚拟对象显示方法、装置、电子装置及存储介质,可以解决相关技术中显示效率低,显示效果差的问题。所述技术方案如下:

一方面,提供了一种虚拟对象显示方法,所述方法包括:

在虚拟场景中显示第一虚拟对象的显示模型,所述显示模型包括所述第一虚拟对象的各个部位的显示模型,所述第一虚拟对象为当前终端控制的虚拟对象;

当检测到对所述第一虚拟对象的形象更改操作时,确定待穿戴的服饰对应的第一部位,所述形象更改操作是指将所述待穿戴的服饰穿戴在所述第一虚拟对象身上的操作;

在所述虚拟场景中,将所述第一部位的显示模型替换为所述待穿戴的服饰的模型进行显示,所述服饰的模型中包括所述第一虚拟对象的所述第一部位。

一方面,提供了一种虚拟对象显示装置,所述装置包括:

显示模块,用于在虚拟场景中显示第一虚拟对象的显示模型,所述显示模型包括所述第一虚拟对象的各个部位的显示模型,所述第一虚拟对象为当前终端控制的虚拟对象;

确定模块,用于当检测到对所述第一虚拟对象的形象更改操作时,确定待穿戴的服饰对应的第一部位,所述形象更改操作是指将所述待穿戴的服饰穿戴在所述第一虚拟对象身上的操作;

所述显示模块,还用于在所述虚拟场景中,将所述第一部位的显示模型替换为所述待穿戴的服饰的模型进行显示,所述服饰的模型中包括所述第一虚拟对象的所述第一部位。

一方面,提供了一种电子装置,所述电子装置包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现所述虚拟对象显示方法中任一项所执行的操作。

一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现所述虚拟对象显示方法中任一项所执行的操作。

本发明实施例提供的技术方案带来的有益效果至少包括:

本发明实施例通过根据待穿戴的服饰的模型对应的第一部位,用待穿戴的服饰的模型替换虚拟对象的第一部位的模型,而不是在模型外套另一个模型,可以避免出现模型穿插的情况,同时不需要显示多个模型,以及计算各个模型的显示位置,有效减少了终端的计算量和渲染量,因此,该虚拟对象显示方法的显示效率高,显示效果好。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种终端界面示意图;

图2是本发明实施例提供的一种虚拟对象显示方法流程图;

图3是本发明实施例提供的一种服饰的脚本的示意图;

图4是本发明实施例提供的一种虚拟对象的示意图;

图5是本发明实施例提供的一种虚拟对象的示意图;

图6是本发明实施例提供的一种虚拟对象的示意图;

图7是本发明实施例提供的一种虚拟对象显示方法流程图;

图8是本发明实施例提供的一种服饰的脚本的示意图;

图9是本发明实施例提供的一种虚拟对象的示意图;

图10是本发明实施例提供的一种虚拟对象的示意图;

图11是本发明实施例提供的一种服饰的脚本的示意图;

图12是本发明实施例提供的一种虚拟对象的示意图;

图13是本发明实施例提供的一种虚拟对象显示方法流程图;

图14是本发明实施例提供的一种虚拟对象显示方法流程图;

图15是本发明实施例提供的一种虚拟对象显示方法流程图;

图16是本发明实施例提供的一种虚拟对象的示意图;

图17是本发明实施例提供的一种虚拟对象显示方法流程图;

图18是本发明实施例提供的一种虚拟对象显示方法流程图;

图19是本发明实施例提供的一种虚拟对象显示装置的结构示意图;

图20是本发明实施例提供的一种电子装置的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

本发明实施例主要涉及电子游戏或者模拟训练场景,以电子游戏场景为例,用户可以提前在该终端上进行操作,该终端检测到用户的操作后,可以下载电子游戏的游戏配置文件,该游戏配置文件可以包括该电子游戏的应用程序、界面显示数据或虚拟场景数据等,以使得该用户在该终端上登录电子游戏时可以调用该游戏配置文件,对电子游戏界面进行渲染显示。用户可以在终端上进行触控操作,该终端检测到触控操作后,可以确定该触控操作所对应的游戏数据,并对该游戏数据进行渲染显示,该游戏数据可以包括虚拟场景数据、该虚拟场景中虚拟对象的行为数据等。

本发明涉及到的虚拟场景可以用于模拟一个三维虚拟空间,也可以用于模拟一个二维虚拟空间,该三维虚拟空间或二维虚拟空间可以是一个开放空间。该虚拟场景可以用于模拟现实中的真实环境,例如,该虚拟场景中可以包括天空、陆地、海洋等,该陆地可以包括沙漠、城市等环境元素,用户可以控制虚拟对象在该虚拟场景中进行移动,该虚拟对象可以是该虚拟场景中的一个虚拟的用于代表用户的虚拟形象,该虚拟形象可以是任一种形态,例如,人、动物等,本发明对此不限定。该虚拟场景中可以包括多个虚拟对象,每个虚拟对象在虚拟场景中具有自身的形状和体积,占据虚拟场景中的一部分空间。

以射击类游戏为例,用户可以控制虚拟对象在该虚拟场景的天空中自由下落、滑翔或者打开降落伞进行下落等,在陆地上中跑动、跳动、爬行、弯腰前行等,也可以控制虚拟对象在海洋中游泳、漂浮或者下潜等,当然,用户也可以控制虚拟对象乘坐载具在该虚拟场景中进行移动,在此仅以上述场景进行举例说明,本发明实施例对此不作具体限定。用户也可以控制虚拟对象通过兵器与其他虚拟对象进行战斗,该兵器可以是冷兵器,也可以是热兵器,本发明对此不作具体限定。

以该终端为某一用户的终端为例,例如,如图1所示,可以将该用户的终端控制的虚拟对象称为第一虚拟对象,将该终端以外其它终端控制的虚拟对象称为第二虚拟对象。

图2是本发明实施例提供的一种虚拟对象显示方法流程图,参见图2,该方法可以包括:

201、终端在虚拟场景中显示第一虚拟对象的显示模型,该显示模型包括该第一虚拟对象的各个部位的显示模型。

在本发明实施例中,在该终端中可以预先存储有虚拟对象的各个部位的显示模型,例如,该终端中可以存储有头部、头发、上身、下身、双脚等部位的显示模型。终端在虚拟场景中显示第一虚拟对象的显示模型时,可以显示该第一虚拟对象的各个部位的显示模型,该第一虚拟对象为当前终端控制的虚拟对象。该各个部位的显示模型用于表示该第一虚拟对象的各个部位的形态。

在一种可能实现方式中,该虚拟对象的各个部位中的至少一个部位的显示模型中可以包括该虚拟对象的身体和该部位穿戴的服饰。例如,该虚拟对象的上身部位的显示模型可以包括该虚拟对象的上身的身体部分和一件上衣。需要说明的是,对于该虚拟对象的各个部位的显示模型还可以包括该部位的初始模型,该初始模型中可以仅包括该虚拟对象的身体,也可以包括该虚拟对象的身体和初始服饰,本发明实施例对此不作限定。

当然,如果用户之前在终端上进行了形象更改操作,为该第一虚拟对象的某个部位或某些部位穿戴了相应的服饰,则该步骤201中,终端显示该第一虚拟对象的显示模型时,其相应部位的显示模型可以是上述穿戴的服饰的显示模型,具体参见后续步骤,在此不多做赘述。

202、当检测到对该第一虚拟对象的形象更改操作时,终端确定待穿戴的服饰对应的第一部位。

其中,该形象更改操作是指将该待穿戴的服饰穿戴在该第一虚拟对象身上的操作。例如,该形象更改操作可以是用户对服饰库中的某个服饰的点击操作,也可以是用户对虚拟场景中的某个服饰的点击操作,该点击操作用于表示用户选择该服饰,想要将该服饰穿戴于第一虚拟对象身上。

在该终端中可以预先存储有服饰与虚拟对象的部位的对应关系,其中,在该终端中可以预先存储有服饰的模型,在该终端需要对该待穿戴的服饰进行显示时,可以在虚拟场景中显示该服饰的模型。具体地,终端可以预先存储有服饰的标识信息与虚拟对象的部位的对应关系。在该步骤202中,终端检测到用户的形象更改操作时,可以获取待穿戴的服饰的标识信息,并根据该标识信息,确定该标识信息对应的虚拟对象的第一部位。

例如,该待穿戴的服饰可以是一件上衣,例如该服饰的标识信息可以是jacket_10,该jacket_10对应的虚拟对象的第一部位可以是上身,当用户对在服饰库中对该上衣进行了点击操作时,终端可以获取到该上衣的标识信息jacket_10,终端还可以根据该上衣的蓝图中的内容,确定虚拟对象的第一部位为上身。

在一种可能实现方式中,上述服饰的标识信息和虚拟对象的部位的对应关系可以存储于该服饰的脚本中,在该脚本中可以包括该服饰的标识信息、该标识信息对应的虚拟对象的部位,当然,该脚本中还可以包括该服饰的显示模型的存储地址,或包括该服饰的其它信息,本发明实施例对此不作限定。

例如,在该步骤202中,上述信息可以存储于该待穿戴的服饰的蓝图中,蓝图即是指一种用于存储上述信息以及其他函数或变量的可视化脚本。该蓝图中可以包括该待穿戴的服饰对应的虚拟对象的第一部位以及该服饰的模型的路径(资源引用),以便于可以根据该路径获取到该服饰的模型。需要说明的是,该服饰的模型中包括该第一虚拟对象的第一部位,也即是该服饰的模型中可以包括该第一虚拟对象的第一部位和该服饰,例如,如图3所示,上衣的模型中除了上衣之外,还可以包括虚拟对象的上身。当然,该上衣的蓝图中还可以包括多个用于覆盖(override)的材质球,其中,该材质球是指多个材质,该材质一般为球状显示。该材质球中一般包括有预设好的材质信息,在不同的场景中,终端可以直接获取对应的材质球,实现材质设置。其中,该材质信息是指在虚拟场景中该模型真实的物理性质,例如,颜色、反光、透明等。本发明实施例在此不多做赘述。

203、终端根据该第一虚拟对象的属性信息,从该待穿戴的服饰的多个候选模型中,获取该属性信息对应的模型。

在一种可能实现方式中,在该终端中可以预先存储有每个服饰的多个候选模型。该多个候选模型用于体现虚拟对象的不同性别和不同的精细程度。当该第一虚拟对象的属性信息不同时,终端在显示该第一虚拟对象时,可以获取并显示不同的模型,该模型即为该多个候选模型中的任一个候选模型。其中,该属性信息可以包括性别和模型的精细程度。

在一种可能实现方式中,该模型的精细程度可以通过多细节层次(levelsofdetail,lod)技术实现,该lod技术是指根据模型的节点在显示环境中所处的位置和重要度,决定模型渲染的资源分配的技术,其中,资源分配不同时,模型的面数和细节度不同,则该模型的精细程度则不同。在一种可能实现方式中,该模型的面数越多,细节度越高,则该模型的精细程度越高。具体地,该模型的精细程度还可以被划分为不同的级别,例如,lod级别,lod级别不同,该模型的面数和细节度则不同。例如,该lod级别可以包括0、1、2、3级,该lod级别越高,模型的精细程度越低。当然,该lod级别划分以及lod级别与模型的精细程度的对应关系仅为一种示例性说明,该lod级别还可以划分为其他级别,级别的数量也可以是其他数值,该lod级别越高,模型的精细程度可以越高,本发明实施例对此不作限定。

对于任一个服饰,在该终端中可以预先存储有该服饰的多个候选模型,该多个候选模型可以包括不同的面数和细节度,例如,该多个候选模型的面数、顶点数等可以不同。针对虚拟对象的性别,该多个候选模型中面数和细节度均相同的模型的数量还可以为两个,该两个候选模型对应的虚拟对象的性别分别为男和女。例如,如图3所示,对于一件上衣,该终端中可以有多个候选模型,对于上述不同的lod级别的模型的数量可以是两个,性别分别是男和女。

相应地,终端可以根据第一虚拟对象的属性信息,从该待穿戴的服饰的多个候选模型中,获取该属性信息对应的模型,以将该模型作为该待穿戴的服饰的待显示的模型。例如,该第一虚拟对象的属性信息可以为:性别为女,lod级别为0级,则终端可以获取该属性信息对应的候选模型。

204、终端获取该第一虚拟对象的皮肤信息。

在本发明实施例中,每个服饰的模型还包括对应的材质信息,其中,该材质信息是指在虚拟场景中该模型真实的物理性质,例如,颜色、反光、透明等。其中,该皮肤信息即是一种材质信息,它用于表示模型的皮肤的颜色。则该第一虚拟对象的皮肤信息即是指第一虚拟对象的显示模型中皮肤的颜色,该服饰的模型的皮肤信息即是指该模型中虚拟对象的皮肤的颜色。

在一种可能实现方式中,为了节省模型所占的存储空间,对于一个服饰的模型,在该终端中存储的多个候选模型的皮肤信息可以相同,当该终端需要对该某个候选模型进行显示时,可以根据第一虚拟对象的皮肤信息,对该候选模型的皮肤信息进行更改,以使得该第一虚拟对象的全身的肤色一致。

相应地,在上述步骤203中终端获取到该待穿戴的服饰的待显示的模型后,可以获取该第一虚拟对象的皮肤信息,以便于根据该第一虚拟对象的皮肤信息,对待显示的模型的皮肤信息进行调整。

在一种可能实现方式中,由于待穿戴的服饰中包括的虚拟对象的部位可能是上身、下身、双脚,而虚拟对象的头部的显示模型一般不会被替换,终端可以获取该第一虚拟对象的头部的皮肤信息,以该头部的皮肤信息为准,执行下述步骤205,对待显示的待穿戴的服饰的模型的皮肤信息进行调整。例如,终端可以读取该第一虚拟对象的头部的显示模型的皮肤信息,以实现获取到第一虚拟对象的皮肤信息。

205、终端根据该皮肤信息,调整该待穿戴的服饰的模型的皮肤信息。

在一种可能实现方式中,该终端获取到第一虚拟对象的皮肤信息后,可以将该待穿戴的服饰的模型的皮肤信息更新为该皮肤信息。相应地,终端在显示该待穿戴的服饰的模型时,该模型中第一虚拟对象的部位中裸露在服饰外的皮肤的颜色与第一虚拟对象的其他部位的皮肤的颜色相同,从而该第一虚拟对象的全身肤色一致,显示效果更真实。

当然,在一种可能实现方式中,对于任一个服饰,在该终端也可以存储有不同皮肤信息对应的候选模型,相应地,终端可以先执行步骤204,再执行步骤203,终端根据该第一虚拟对象的属性信息,从该待穿戴的服饰的多个候选模型中,获取该属性信息对应的模型时,该属性信息还可以包括该第一虚拟对象的皮肤信息。则相应地,该终端也无需再执行该步骤205。

需要说明的是,上述步骤203至步骤205为获取待穿戴的服饰的模型的过程,步骤202为确定该待穿戴的服饰的模型的显示位置的过程,终端可以先执行步骤202,再执行步骤203至步骤205,也可以先执行步骤203至步骤205,再执行步骤202,当然,该步骤202与步骤203至步骤205也可以同时执行,本发明实施例对此不作限定。

206、终端在该虚拟场景中,将该第一部位的显示模型替换为该待穿戴的服饰的模型进行显示,该服饰的模型中包括该第一虚拟对象的该第一部位。

在该步骤206中,终端可以将步骤201中显示的显示模型中相应部位的显示模型替换为该待穿戴的服饰的模型,则该第一虚拟对象的形象发生了变化,第一虚拟对象身上穿戴有上述待穿戴的服饰。该替换过程无需进行模型叠加,不会出现模型穿插的情况,也提高了渲染性能,减少了终端的计算量和渲染量,提高了虚拟对象的显示效率和显示效果。

例如,如图4和图5所示,图4中,该第一虚拟对象穿戴有兜帽服,当用户在服饰库中选择了一件黄色上衣时,终端检测到用户的操作,可以执行上述步骤,将该第一虚拟对象穿戴有兜帽服的上身的模型替换为穿戴有黄色上衣的上身的模型,如图5所示。终端还根据第一虚拟对象的肤色,调整该兜帽服的模型中第一虚拟对象裸露在外的皮肤的颜色,这样该第一虚拟对象全身的肤色均一致。如图6所示,如果图4中该第一虚拟对象为黑种人肤色,则终端还可以执行上述步骤,得到图6所示的显示效果。

在一种可能实现方式中,在步骤201中,终端显示该第一虚拟对象的显示模型时,该第一部位的显示模型可能是第一显示模型,也可能是第二显示模型。其中,该第一显示模型是指该第一虚拟对象的该第一部位的初始模型,该第二显示模型是指该第一虚拟对象的该第一部位当前穿戴有服饰时的模型。则相应地,该步骤206也可以包括两种情况:

第一种情况、当该第一部位的显示模型为第一显示模型时,终端可以在该虚拟场景中,将该第一显示模型替换为该待穿戴的服饰的模型进行显示。

在第一种情况中,用户没有为该第一虚拟对象更改过形象,该第一虚拟对象还保持着初始形象,也即是该第一虚拟对象未穿戴服饰或穿戴有初始服饰。则用户对第一虚拟对象进行形象更改操作时,终端检测到该形象更改操作后,可以执行上述步骤202至步骤205,从而在虚拟场景中,显示该第一虚拟对象穿戴了用户选择的服饰的效果。

当然,在一种可能实现方式中,当终端检测到用户的形象更改操作,且该形象更改操作是指将该第一虚拟对象身上的服饰脱下的操作时,终端还可以确定该待脱下的服饰的第一部位,从而在虚拟场景中,将该待脱下的服饰的模型替换为该第一部位的初始模型进行显示。

第二种情况、当该第一部位的显示模型为第二显示模型时,在该虚拟场景中,将该第二显示模型替换为该待穿戴的服饰的模型进行显示,并在该第一虚拟对象的周围显示该第二显示模型对应的服饰的未穿戴模型,该服饰的未穿戴模型中不包括该第一虚拟对象的该第一部位。

在第二种情况中,用户之前为该第一虚拟对象更改过形象,该第一虚拟对象已经穿戴有相应的服饰,用户再选择其他服饰时,终端可以执行上述步骤,将其已经穿戴的服饰的模型替换为本次选择的服饰的模型,从而实现换装过程。在这种情况中,如果该形象更改操作为用户对虚拟场景中的服饰进行的点击操作,终端还会在该第一虚拟对象的周围显示用户替换下去的那个服饰的未穿戴模型,也即是,在虚拟场景中,该第一虚拟对象的周围显示换下去的那个服饰。未穿戴模型是指只包括服饰,而不包括虚拟对象的身体部位的模型。

相应地,如图7所示,针对上述步骤201至步骤206的具体流程提供了一种示例性说明,在用户选择某个服装时,终端可以获取到服务器下发的物品身份标识(identification,id),也即是服饰的标识信息,终端可以根据该标识信息,在本地存储文件中获取到该服装的蓝图,从而终端可以检测当前服装是否有对应部位,也即是指检测当前第一虚拟对象的相应部位是否穿戴有其它服装(不包括初始服饰),如果是,则将穿戴有服装的那个部位删除,替换为新服装;如果否,则将裸模删除并应用新服装,其中,该裸模即是指该虚拟对象未穿戴服饰的模型,或该虚拟对象穿戴有初始服饰的模型。当然,该终端在对新服装的模型进行显示前,还可以读取头部的皮肤信息,将该皮肤信息应用到对应材质槽中,也即是将该新服装的模型的皮肤信息更新为头部的皮肤信息。

在一种可能实现方式中,为了模拟不同服饰之间还可以有搭配效果,在该终端中还可以存储有不同的服饰的组合模型,也即是该组合模型中可以包括第一服饰和第二服饰,例如,第一服饰为一件上衣,第二服饰为一件裤子,该上衣和裤子可以组合为一个套装,也即是组合模型。具体地,该步骤206可以为:当该待穿戴的服饰为第一服饰,且该第一虚拟对象已穿戴有第二服饰时,终端可以获取该第一服饰和该第二服饰的组合模型,该组合模型中包括该第一服饰、该第二服饰以及该第一虚拟对象的该第一部位,然后终端可以在该虚拟场景中,将该第一部位的显示模型和该第二服饰的模型替换为该组合模型进行显示。

同理地,服饰之间可以有搭配效果,人在穿戴不同的服饰时也可以有不同的形态,为了真实模拟虚拟对象在穿戴不同的服饰时可能有不同的形态,在上述待穿戴的服饰的脚本中还可以包括其他信息,例如,该待穿戴的服饰还可以对应第二部位、第三部位或第四部位。这些部位是指第一虚拟对象的各个部位中除第一部位之外,与待穿戴的服饰的模型重合或部分重合的部位。对于这些部位,该终端还可以进一步对第一虚拟对象的显示模型进行处理,从而使得虚拟对象的显示效果更好。相应地,该步骤206还可以包括以下几种情况:

第一种情况、当该待穿戴的服饰对应有第二部位时,终端可以仅显示该第二部位之外的部位的模型,该第二部位为该第一虚拟对象的各个部位中除该第一部位之外,与该待穿戴的服饰的模型重合的部位。

在该第一种情况中,在该待穿戴的服饰的脚本中可以包括第二部位,例如,如果该待穿戴的服饰为吉利服,该吉利服是指取材于自然,颜色与环境相近的隐蔽性较好的服装。一般地,虚拟对象穿戴吉利服时,可以将该虚拟对象从头到下身全部覆盖起来,从而实现较好的隐蔽性。如图8所示,该吉利服的蓝图中可以对应有第二部位,该第二部位可以是头发、帽子、裤子、防弹衣、头盔、背包,也即是,终端在显示该吉利服的模型时,可以隐藏上述第二部位的模型,仅显示第二部位以外的部位的模型。又例如,如图5和图9所示,如果该待穿戴的服饰为兜帽服,该兜帽服对应的第二部位可以是头发,在图5中,终端可以显示该第一虚拟对象的头发的模型,在图9中,终端显示兜帽服的模型时,可以隐藏第一虚拟对象的头发的模型。

第二种情况、当该待穿戴的服饰对应有第三部位时,终端将该第一部位的显示模型替换为该待穿戴的服饰的模型进行显示,并将该第三部位的显示模型替换为该第三部位的目标模型进行显示,该第三部位为该第一虚拟对象的各个部位中除该第一部位之外,与该待穿戴的服饰的模型部分重合的部位,该目标模型是指在该第三部位的完整模型中去掉与该待穿戴的服饰的模型重合的部分的模型。

在该第二种情况中,在该待穿戴的服饰的脚本中还可以包括第三部位,例如,如图10中左图和右图所示,如果该待穿戴的服饰为牛仔帽或棒球帽,该牛仔帽或棒球帽的蓝图中可以对应有第三部位,该第三部位可以是头发,终端显示牛仔帽的模型时,还可以获取头发的第一目标模型,该第一目标模型中第一虚拟对象的头发仅有牛仔帽下方的边缘区域,该牛仔帽的位置处则没有头发和马尾。终端在显示棒球帽时,还可以获取头发的第二目标模型,该第二目标模型中第一虚拟对象的头发有棒球帽下方的边缘区域以及马尾部分,该棒球帽的位置处则没有头发。

当然,在上述服饰之间的搭配效果中除了服饰组合的情况之外,结合虚拟对象穿戴不同的服饰时的不同形态,则还可能有其它情况,例如,兜帽服为一件带有帽子的上衣,则将该兜帽服穿戴于第一虚拟对象身上时,则可能有不同的形态。例如,第一虚拟对象戴着兜帽服的帽子、或第一虚拟对象不戴着兜帽服的帽子,或第一虚拟对象不戴着兜帽服的帽子且戴着其他的帽子。对于这种情况,该步骤206还可以为:当该待穿戴的服饰为第三服饰时,终端可以根据该第一虚拟对象的服饰穿戴情况或用户的触控操作,从该第三服饰的多个候选模型中,获取该服饰穿戴情况或该触控操作对应的第三服饰的模型,然后终端在该虚拟场景中,将该第一部位的显示模型替换为该第三服饰的模型进行显示。

例如,如图11所示,兜帽服对应的第三部位可以是头发,如图9和图12所示,如果该待穿戴的服饰为兜帽服,该兜帽服还可以包括多个形态的候选模型。在图9中,当第一虚拟对象没有穿戴其他帽子时,或用户选择该第一虚拟对象穿戴兜帽服的帽子的形态时,终端可以获取并显示该兜帽服的第一模型,该第一模型中第一虚拟对象穿戴该兜帽服的兜帽,且终端可以隐藏头发的模型。在图12中,当第一虚拟对象穿戴了其他帽子时,或用户选择该第一虚拟对象不戴兜帽服的帽子的形态时,终端可以获取并显示该兜帽服的第二模型,该第二模型中第一虚拟对象穿戴棒球帽,该终端可以显示该第一虚拟对象的头发的第二目标模型。

在一种可能实现方式中,该第二种情况还可以通过其他方式实现,例如,可以使用遮罩对待穿戴的服饰的模型与第三部位的模型重合的部分进行裁剪,以避免模型穿插现象,虽然会增加终端的计算量,但是可以减少终端的存储负荷,本发明实施例对此不作限定。

第三种情况、当该待穿戴的服饰对应有第四部位时,终端将该第一部位的显示模型替换为该待穿戴的服饰的模型进行显示,并将该第四部位的骨骼的尺寸缩放至零,该第四部位为该第一虚拟对象的各个部位除该第一部位之外,骨骼中与该待穿戴的服饰的模型重合的部位。

在该第三种情况中,在该待穿戴的服饰的脚本中还可以包括第四部位,例如,如图10中左图所示,如果该待穿戴的服饰为牛仔帽,该牛仔帽蓝图中可以对应有第四部位,该第四部位可以是马尾。终端显示牛仔帽的模型时,还可以获取头发的第一目标模型,并在此基础上,将该第四部位(马尾)的骨骼的尺寸缩放至零,则该第一虚拟对象的显示模型中不再包括马尾。

需要说明的是,上述三种情况可以根据该待穿戴的服饰的不同而任意结合,得到最终的显示效果,也通过上述三种情况中的方法步骤,可以有效提高虚拟对象的显示效率,提高了显示效果。当然,上述三种情况具体采用哪种或哪几种也可以由相关技术人员自由设置,本发明实施例对此不作限定。

如图13和图14所示,上述过程中,终端可以遍历待穿戴的服饰的蓝图中的隐藏和替换列表,也即是第二部位和第三部位,并检查列表中的部位是否已经存在,也即是检测当前第一虚拟对象的显示模型中是否已经显示了相应部位,如果是,则可以隐藏或替换该部位的显示模型,并记录作用的对象,也即是在部位结构体中进行标记,以表示当前隐藏或替换了哪个部位。该部位结构体是用于记录该第一虚拟对象的各个部位的模型的状态信息的结构。终端可以基于该部位结构体对各个部位的模型的状态信息进行维护,也可以基于记录的状态信息,检测当前界面显示情况是否与设置相符。如果当前显示模型中没有显示相应部位,则可以在对应部位结构体中标记已经被隐藏和替换,则终端可以基于该记录的状态信息,不再显示该对应部位的模型,或直接显示替换的模型。终端在显示替换的模型时,可以检查是否存在上述标记,也即是记录的状态信息,以实现界面显示与设置的同步。

当然,同理地,终端也可以查询待穿戴的服饰是否对应有第四部位,也即是查询蓝图的缩放骨骼槽位,如果有,则隐藏该骨骼,也即是进行骨骼缩放,将该骨骼的尺寸缩放至零,并在对应部位结构体中记录作用对象,也即是对该骨骼的尺寸的状态信息进行维护。

207、当检测到虚拟场景中包括第二虚拟对象时,终端获取该第二虚拟对象的显示模型。

其中,该第二虚拟对象的显示模型的精细程度与该第一虚拟对象的显示模型的精细程度不同。在一种可能实现方式中,该第二虚拟对象的显示模型的精细程度可以比该第一虚拟对象的显示模型的精细程度低。与步骤203中同理,该第一虚拟对象和第二虚拟对象的显示模型的精细程度可以通过lod技术实现。也即是,当虚拟对象为第一虚拟对象时,终端可以获取精细程度高的模型,当虚拟对象为第二虚拟对象时,终端可以获取精细程度低的模型。通过lod技术使得第一虚拟对象和第二虚拟对象的模型的精细程度不同,可以使得用户更精确地区分自己控制的虚拟对象和其他虚拟对象,也使得对第一虚拟对象的模型的显示效果更好,提升用户体验。

在一种可能实现方式中,终端具体获取哪种精细程度的第二虚拟对象的原始显示模型还可以根据第二虚拟对象在屏幕中所占比例确定。具体地,在该步骤207中,终端可以获取该第二虚拟对象的原始显示模型中的根骨骼的尺寸与屏幕尺寸的比值,终端可以根据该比值与比值区间的对应关系,获取目标精细程度的显示模型。其中,该目标精细程度与该比值所在的比值区间对应。该根骨骼的尺寸是指将当前第二虚拟对象的显示模型中的根骨骼映射到屏幕中时在屏幕中的尺寸。

其中,第二虚拟对象的显示模型中的骨骼可以具有父子关系,其中,父骨骼在运动时,子骨骼可以随父骨骼运动而运动,而子骨骼在运动时,父骨骼不会随子骨骼运动而运动,则该父骨骼即是根骨骼。上述不同的比值区间可以对应于不同的精细程度,例如,不同的比值区间对应于不同的lod级别。例如,50%至90%对应于1级,20%至50%对应于2级,0%至20%对应于3级。当然,这些数值以及对应关系均为一种示例性说明,本发明实施例对此不作限定。这样如果第二虚拟对象的显示模型的根骨骼的尺寸与屏幕尺寸的比值较小,可以认为该第二虚拟对象距离第一虚拟对象很远,该第二虚拟对象在屏幕中的显示比例较小,无需精细地显示其显示模型的细节,反之,如果上述比值较大,则可以精细地显示其显示模型的细节,以保证界面中的虚拟对象的显示效果。

在一种可能实现方式中,为了使得该第二虚拟对象的显示模型的精细程度低于第一虚拟对象,可以将第一虚拟对象的显示模型的精细程度设置为最高,第二虚拟对象的显示模型的最高的精细程度比第一虚拟对象的精细程度低。例如,可以将第一虚拟对象的显示模型的lod级别设置为0级,而第二虚拟对象的显示模型的lod级别可以为1级、2级或3级。

具体地,终端还可以获取该第二虚拟对象的原始显示模型中目标部位的根骨骼的尺寸与屏幕尺寸的比值,从而可以获取目标精细程度的该目标部位和其他部位的显示模型。由于属性信息不同的虚拟对象可能显示模型中根骨骼的尺寸可能不同,为了统一显示模型的精细程度的确定方式,可以根据各显示模型中根骨骼的尺寸一致的目标部位,确定精细程度。

例如,如图15所示,该目标部位可以是头部,以lod级别越高,模型的精细程度越低为例。对于第二虚拟对象,终端可以计算头部的根骨骼在屏幕上所占百分比(屏占比),当百分比低于模型资源中预设的阈值,则切换到下一级lod,终端还可以计算其他部位的lod级别,如果高于头部模型的lod级别,则可以“隐藏该部位”,将其他部位的模型的lod级别更新为头部模型的lod级别,保证第二虚拟对象全身部位的模型的lod级别一致。而如果不高于头部模型的lod级别,则可以直接切换至下一级lod级别。上述是lod级别切换过程,在一种可能实现方式中,对于在精细程度最低的lod级别(例如,3级),在该终端中可以存储有一个粗糙的全身模型,当终端根据头部的根骨骼的屏占比,确定头部模型的lod级别为3级时,终端还可以直接隐藏其他部位的模型,显示粗糙的全身模型。

208、终端在虚拟场景中显示该第二虚拟对象的显示模型。

终端获取到第二虚拟对象的显示模型后,可以在虚拟场景中显示该显示模型。在一种可能实现方式中,由于终端配置不同,在该终端中可以设置有不同的配置级别,对于不同的配置级别还可以对应有不同的纹理映射(mipmap)级别。其中,配置级别可以是指画质级别,例如,流畅、均衡、高清、超高清。其中,mipmap是一种电脑图形图像技术,它用于在三维图像的二维替代物中达到立体感效应,也即是一种纹理映射技术。mipmap技术与材质贴图技术结合,可以以不同的分辨率将单一的材质贴图以多重图像的形式表现出来。不同的mipmap级别对应的平面纹理的清晰程度不同。

在一种可能实现方式中,在上述步骤201、步骤206和步骤208中,终端在虚拟场景中显示第一虚拟对象或第二虚拟对象的显示模型时,可以将第一虚拟对象的显示模型的mipmap级别设置为第一等级,将第二虚拟对象的显示模型的mipmap级别设置为第二等级,其中,该第一等级对应的平面纹理的清晰程度与第二等级对应的平面纹理的清晰程度不同,在一种可能实现方式中,该第一等级对应的平面纹理的清晰程度可以比第二等级对应的平面纹理的清晰程度好,从而在提高显示效果的同时,提高渲染性能。具体地,终端可以采用纹理流(texturestreaming)技术实现该mipmap设置过程。例如,如图16所示,该图中左边的虚拟对象为第一虚拟对象,右边为第二虚拟对象,第一虚拟对象的显示模型的贴图的分辨率为512*512,第二虚拟对象的显示模型的贴图的分别率为256*256,且第一虚拟对象的多边形面数比第二虚拟对象的多边形面数大,也即是第一虚拟对象的显示模型的精细程度比第二虚拟对象的显示模型的精细程度高。当然,终端还可以将第一虚拟对象的显示模型的mipmap级别设置为最高级别,也即是平面纹理的清晰程度最高,而第二虚拟对象的显示模型的mipmap级别可以根据终端当前的配置级别确定。

在一种可能实现方式中,终端在虚拟场景中显示第一虚拟对象或第二虚拟对象的显示模型时,还可以采用第一渲染模式对第一虚拟对象的显示模型进行显示,采用第二渲染模式对第二虚拟对象的显示模型进行显示,该第一渲染模式的显示效果与第二渲染模式显示效果不同。在一种可能实现方式中,该第一渲染模式的显示效果可以比第二渲染模式显示效果好。例如,该第一渲染模式可以是物理渲染(physicallybasedshading,pbr)模式,第二渲染模式可以是lambert模式。具体地,终端对第一虚拟对象进行渲染显示时采用的材质着色器(shader)可以采用pbr光照模型,对第二虚拟对象进行渲染显示时采用的材质shader可以采用lambert光照模型。例如,如图16所示,左边的第一虚拟对象采用pbr光照模型,右边的第二虚拟对象采用lambert光照模型,从而使得第一虚拟对象的渲染显示效果比第二虚拟对象的渲染显示效果好。

例如,在上述两种实现方式中,如图17所示,终端还可以在设置服饰材质时,检测虚拟对象是否为第一虚拟对象,如果否,则根据当前终端的配置级别(也即是画质)的配置信息,设置服饰的材质,也即是确定mipmap级别;如果是,则创建动态材质(dynamicmaterial),将原材质参数拷贝至该动态材质上,并修正该动态材质的mipmap偏移值,也即是将第一虚拟对象的mipmap级别设置为第一等级,进一步地,终端还可以将强制设置该动态材质的渲染模式为pbr渲染模式,从而对第一虚拟对象和第二虚拟对象的渲染显示效果进行了区分,以提高终端界面中虚拟对象的显示效果,也提高了渲染性能。

在一种可能实现方式中,为了降低终端的负载,提高显示效率和显示效果,终端还可以异步获取该第一虚拟对象的各个部位的显示模型,在上述步骤201中,终端还可以在虚拟场景中,异步显示该第一虚拟对象的各个部位的显示模型。例如,如图18所示,在服务器下发待显示的服饰的标识信息(id)时,终端可以根据该标识信息,在本地存储文件中获取到该服饰对应的蓝图路径,并根据该蓝图路径生成异步加载情况并注册回调函数,也即是终端可以根据蓝图路径确定要进行加载,并在加载完成后,可以根据回调函数,通知已经完成加载过程。对于不同的服饰的蓝图,终端可以异步获取得到多个蓝图,并根据待显示的虚拟对象是否为第一虚拟对象,获取相应的模型资源路径,然后生成异步加载请求并注册回调函数,也即是,可以根据该模型资源路径获取相应部位、精细程度的显示模型,该获取模型的过程也是异步加载的过程,模型获取到后,可以在虚拟场景中进行渲染显示,对于不同部位来说,可以认为是对不同模型进行安装,最终得到虚拟对象的显示模型的过程。

当然,该异步获取和显示的设置可以不限于虚拟对象的各个部位的模型和服饰的模型的获取和显示过程,还可应用于不同的虚拟对象的模型的获取和显示过程,或该虚拟场景中的虚拟道具的道具模型的获取和显示过程,本发明实施例对此不作限定。通过该异步获取过程可以提高终端的显示效率和显示效果,有效降低了卡顿的频率,提高了用户体验,在电子游戏场景中也可以避免用户根据卡顿现象判断周边环境中是否有其他虚拟对象。

本发明实施例通过根据待穿戴的服饰的模型对应的第一部位,用待穿戴的服饰的模型替换虚拟对象的第一部位的模型,而不是在模型外套另一个模型,可以避免出现模型穿插的情况,同时不需要显示多个模型,以及计算各个模型的显示位置,有效减少了终端的计算量和渲染量,因此,该虚拟对象显示方法的显示效率高,显示效果好。

上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。

图19是本发明实施例提供的一种虚拟对象显示装置的结构示意图,参见图19,该装置包括:

显示模块1901,用于在虚拟场景中显示第一虚拟对象的显示模型,该显示模型包括该第一虚拟对象的各个部位的显示模型,该第一虚拟对象为当前终端控制的虚拟对象;

确定模块1902,用于当检测到对该第一虚拟对象的形象更改操作时,确定待穿戴的服饰对应的第一部位,该形象更改操作是指将该待穿戴的服饰穿戴在该第一虚拟对象身上的操作;

该显示模块1901,还用于在该虚拟场景中,将该第一部位的显示模型替换为该待穿戴的服饰的模型进行显示,该服饰的模型中包括该第一虚拟对象的该第一部位。

在一种可能实现方式中,该装置还包括:

第一获取模块,用于根据该第一虚拟对象的属性信息,从该待穿戴的服饰的多个候选模型中,获取该属性信息对应的模型,该属性信息包括性别和模型的精细程度。

在一种可能实现方式中,该显示模块1901用于:

当该第一部位的显示模型为第一显示模型时,在该虚拟场景中,将该第一显示模型替换为该待穿戴的服饰的模型进行显示,该第一显示模型是指该第一虚拟对象的该第一部位的初始模型;

当该第一部位的显示模型为第二显示模型时,在该虚拟场景中,将该第二显示模型替换为该待穿戴的服饰的模型进行显示,并在该第一虚拟对象的周围显示该第二显示模型对应的服饰的未穿戴模型,该第二显示模型是指该第一虚拟对象的该第一部位当前穿戴有服饰时的模型,该服饰的未穿戴模型中不包括该第一虚拟对象的该第一部位。

在一种可能实现方式中,该显示模块1901用于:

当该待穿戴的服饰对应有第二部位时,仅显示该第二部位之外的部位的模型,该第二部位为该第一虚拟对象的各个部位中除该第一部位之外,与该待穿戴的服饰的模型重合的部位;或,

当该待穿戴的服饰对应有第三部位时,将该第一部位的显示模型替换为该待穿戴的服饰的模型进行显示,并将该第三部位的显示模型替换为该第三部位的目标模型进行显示,该第三部位为该第一虚拟对象的各个部位中除该第一部位之外,与该待穿戴的服饰的模型部分重合的部位,该目标模型是指在该第三部位的完整模型中去掉与该待穿戴的服饰的模型重合的部分的模型;或,

当该待穿戴的服饰对应有第四部位时,将该第一部位的显示模型替换为该待穿戴的服饰的模型进行显示,并将该第四部位的骨骼的尺寸缩放至零,该第四部位为该第一虚拟对象的各个部位除该第一部位之外,骨骼中与该待穿戴的服饰的模型重合的部位。

在一种可能实现方式中,该显示模块1901用于:

当该待穿戴的服饰为第一服饰,且该第一虚拟对象已穿戴有第二服饰时,获取该第一服饰和该第二服饰的组合模型,该组合模型中包括该第一服饰、该第二服饰以及该第一虚拟对象的该第一部位;

在该虚拟场景中,将该第一部位的显示模型和该第二服饰的模型替换为该组合模型进行显示。

在一种可能实现方式中,该显示模块1901用于:

当该待穿戴的服饰为第三服饰时,根据该第一虚拟对象的服饰穿戴情况或用户的触控操作,从该第三服饰的多个候选模型中,获取该服饰穿戴情况或该触控操作对应的第三服饰的模型;

在该虚拟场景中,将该第一部位的显示模型替换为该第三服饰的模型进行显示。

在一种可能实现方式中,该装置还包括:

第二获取模块,用于获取该第一虚拟对象的皮肤信息;

调整模块,用于根据该皮肤信息,调整该待穿戴的服饰的模型的皮肤信息。

在一种可能实现方式中,该装置还包括:

第三获取模块,用于当检测到虚拟场景中包括第二虚拟对象时,获取该第二虚拟对象的显示模型,该第二虚拟对象的显示模型的精细程度与该第一虚拟对象的显示模型的精细程度不同;

该显示模块1901用于在虚拟场景中显示该第二虚拟对象的显示模型。

在一种可能实现方式中,该第三获取模块还用于:

获取该第二虚拟对象的原始显示模型中的根骨骼的尺寸与屏幕尺寸的比值;

根据该比值与比值区间的对应关系,获取目标精细程度的显示模型,该目标精细程度与该比值所在的比值区间对应。

在一种可能实现方式中,该第三获取模块还用于:

获取该第二虚拟对象的原始显示模型中目标部位的根骨骼的尺寸与屏幕尺寸的比值;

相应地,该获取目标精细程度的显示模型,包括:

获取目标精细程度的该目标部位和其他部位的显示模型。

在一种可能实现方式中,该显示模块1901还用于在虚拟场景中显示第一虚拟对象或第二虚拟对象的显示模型时,将第一虚拟对象的显示模型的纹理映射mipmap级别设置为第一等级,将第二虚拟对象的显示模型的mipmap级别设置为第二等级,其中,该第一等级对应的平面纹理的清晰程度与第二等级对应的平面纹理的清晰程度不同。

在一种可能实现方式中,该显示模块1901还用于在虚拟场景中显示第一虚拟对象或第二虚拟对象的显示模型时,采用第一渲染模式对第一虚拟对象的显示模型进行显示,采用第二渲染模式对第二虚拟对象的显示模型进行显示,该第一渲染模式的显示效果与第二渲染模式的显示效果不同。

在一种可能实现方式中,该装置还包括:

第四获取模块,用于异步获取该第一虚拟对象的各个部位的显示模型;

该显示模块1901还用于在虚拟场景中,异步显示该第一虚拟对象的各个部位的显示模型。

本发明实施例提供的装置通过根据待穿戴的服饰的模型对应的第一部位,用待穿戴的服饰的模型替换虚拟对象的第一部位的模型,而不是在模型外套另一个模型,可以避免出现模型穿插的情况,同时不需要显示多个模型,以及计算各个模型的显示位置,有效减少了终端的计算量和渲染量,因此,该虚拟对象显示方法的显示效率高,显示效果好。

需要说明的是:上述实施例提供的虚拟对象显示装置在显示虚拟对象时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的虚拟对象显示装置与虚拟对象显示方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图20是本发明实施例提供的一种电子装置的结构示意图,该电子装置可以被提供为上述终端,该电子装置2000可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)2001和一个或一个以上的存储器2002,其中,该存储器2002中存储有至少一条指令,该至少一条指令由该处理器2001加载并执行以实现上述各个方法实施例提供的方法。当然,该电子装置还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该电子装置还可以包括其他用于实现设备功能的部件,在此不做赘述。

在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由处理器执行以完成上述实施例中的虚拟对象显示方法。例如,该计算机可读存储介质可以是只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、只读光盘(compactdiscread-onlymemory,cd-rom)、磁带、软盘和光数据存储设备等。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

上述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1