CN110689604B - 个性化脸部模型显示方法、装置、设备及存储介质 - Google Patents
个性化脸部模型显示方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN110689604B CN110689604B CN201910389912.5A CN201910389912A CN110689604B CN 110689604 B CN110689604 B CN 110689604B CN 201910389912 A CN201910389912 A CN 201910389912A CN 110689604 B CN110689604 B CN 110689604B
- Authority
- CN
- China
- Prior art keywords
- personalized
- face model
- dimensional character
- bone
- model
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10004—Still image; Photographic image
- G06T2207/10012—Stereo images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30196—Human being; Person
- G06T2207/30201—Face
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请公开了一种个性化脸部模型显示方法,属于虚拟建模领域。该方法包括:接收服务器发送的三维角色的个性化脸部模型的骨骼偏移数据,确定三维角色对应的中间脸部模型,第一脸部模型和中间脸部模型具有相同的第一骨骼和第一网格,第一骨骼为第一数量;根据骨骼偏移数据对中间脸部模型进行骨骼偏移,得到个性化中间模型;根据个性化中间模型中的第一网格生成个性化静态网格;根据三维角色对应的基础脸部模型和个性化静态网格,显示三维角色对应的个性化脸部模型,基础脸部模型中的第二骨骼为第二数量,第二数量小于第一数量。本申请可以解决客户端运行三维角色时因计算量较大造成卡顿的问题。
Description
技术领域
本申请涉及虚拟建模领域,特别涉及一种个性化脸部模型显示方法、装置、设备及存储介质。
背景技术
在三维网络游戏中,提供有游戏用户对虚拟人物的三维角色脸部进行个性化定制的功能。该个性化定制功能允许游戏用户对基础的脸部模型进行微调,来得到个性化的三维角色脸部。
相关技术中的三维角色脸部采用具有表情动画的脸部模型来实现,该脸部模型包括:骨骼(Bone)和网格(mesh)。要实现精细的脸部个性化,一个脸部模型内可能需要设置几十个骨骼,比如60-90根骨骼。以实现眉毛的变粗、局部弯曲、局部放大偏移为例,需要在眉毛附近布置4根左右骨骼才可以实现。当用户在第一客户端上对基础的脸部模型进行骨骼调整后,第一客户端记录骨骼偏移数据,向服务器上报相关的骨骼偏移数据。服务器向需要显示该游戏角色的各个第二客户端下发骨骼偏移数据,这些第二客户端根据骨骼偏移数据以及基础的脸部模型,显示出三维角色的个性化脸部模型。
由于同一个虚拟环境中可能会存在几十个或上百个游戏角色,而每个游戏角色的脸部模型都需要较多的骨骼来构建,因此第二客户端在同一个虚拟环境中显示有几十个游戏角色时,需要耗费较大的计算量,容易出现卡顿问题。
发明内容
本申请实施例提供了一种个性化脸部模型显示方法、装置、设备及存储介质,能够解决客户端在同一个虚拟环境中显示有几十个游戏角色时,需要耗费较大的计算量,容易出现卡顿问题。所述技术方案如下:
根据本申请的一个方面,提供了一种三维角色的个性化脸部模型显示方法,所述方法包括:接收服务器发送的三维角色的个性化脸部模型的骨骼偏移数据,所述骨骼偏移数据是对第一脸部模型中调节生成的;确定所述三维角色对应的中间脸部模型,所述第一脸部模型和所述中间脸部模型具有相同的第一骨骼和第一网格,所述第一骨骼为第一数量;根据所述骨骼偏移数据对所述中间脸部模型进行骨骼偏移,得到个性化中间模型;根据所述个性化中间模型中的所述第一网格生成个性化静态网格;根据所述三维角色对应的基础脸部模型和所述个性化静态网格,显示所述三维角色对应的所述个性化脸部模型,所述基础脸部模型中的第二骨骼为第二数量,所述第二数量小于所述第一数量。
根据本申请的另一个方面,提供了一种三维角色的个性化脸部模型显示装置,所述装置包括:接收模块,用于接收服务器发送的三维角色的个性化脸部模型的骨骼偏移数据,所述骨骼偏移数据是对第一脸部模型中调节生成的;确定模块,用于确定所述三维角色对应的中间脸部模型,所述第一脸部模型和所述中间脸部模型具有相同的第一骨骼和第一网格,所述第一骨骼为第一数量;偏移模块,用于根据所述骨骼偏移数据对所述中间脸部模型进行骨骼偏移,得到个性化中间模型;生成模块,用于根据所述个性化中间模型中的所述第一网格生成个性化静态网格;显示模块,用于根据所述三维角色对应的基础脸部模型和所述个性化静态网格,显示所述三维角色对应的所述个性化脸部模型,所述基础脸部模型中的第二骨骼为第二数量,所述第二数量小于所述第一数量。
根据本申请的另一方面,提供了一种三维角色的个性化脸部模型显示装置,所述装置包括:显示模块,用于显示三维角色的个性化脸部模型的设置界面,所述设置界面包括所述个性化脸部模型的预览画面和n个设置选项,所述个性化脸部模型对应的第一脸部模型中的第一骨骼具有第一数量,每个所述设置选项对应所述第一脸部模型中的至少一根骨骼,n为正整数;接收模块,用于接收在所述n个设置选项中的目标设置选项上触发的设置操作;生成模块,用于根据所述设置操作生成所述目标设置选项对应的骨骼偏移数据;上报模块,用于向服务器上报所述三维角色的所述个性化脸部模型的骨骼偏移数据。
根据本申请的另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述指令、所述程序、所述代码集或所述指令集由所述处理器加载并执行以实现如上述实施例所述的三维角色的个性化脸部模型显示方法。
根据本申请的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述指令、所述程序、所述代码集或所述指令集由处理器加载并执行以实现如实施例所述的三维角色的个性化脸部模型显示方法。
根据本申请的另一方面,提供了一种计算机程序产品,所述计算机程序产品中存储有至少一条指令、至少一段程序、代码集或指令集,所述指令、所述程序、所述代码集或所述指令集由处理器加载并执行以实现如实施例所述的三维角色的个性化脸部模型显示方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
通过在具有较多骨骼的中间脸部模型上进行骨骼偏移,得到一个性化中间模型,根据该个性化中间模型生成个性化静态网格,将个性化静态网格应用至具有较少骨骼的基础脸部模型中,得到最终用于显示的个性化中间模型,个性化静态网格,将个性化静态网格和基础脸部模型结合形成最终的个性化脸部模型。由于个性化脸部模型在显示过程中所需要的骨骼数量少于在个性化定制阶段时所需要的骨骼数量,因此在虚拟环境中同时存在多个三维角色时,每一个三维角色的个性化脸部模型的骨骼数量较少,在显示过程中产生骨骼蒙皮动画时需要计算的骨骼数量减少,从而有效降低了计算量,缓解客户端上的画面卡顿的问题。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是相关技术中三维角色的个性化脸部模型显示系统的流程图;
图2是相关技术中骨骼的数量对耗时影响的关系图;
图3是本申请一个示例性实施例提供的三维角色的个性化脸部模型显示方法实施环境图;
图4是本申请一个示例性实施例提供的三维角色的个性化脸部模型显示方法中模型组成结构示意图;
图5是本申请另一个示例性实施例提供的三维角色的个性化脸部模型显示方法的流程图;
图6是本申请另一示例性实施例提供的三维角色的个性化脸部模型显示方法的流程图;
图7是本申请一个示例性实施例提供的三维角色的个性化脸部模型显示方法中第一脸部模型的初始界面图;
图8是本申请一个示例性实施例提供的三维角色的个性化脸部模型显示方法中第一脸部模型修改后的界面图;
图9是本申请另一示例性实施例提供的三维角色的个性化脸部模型显示方法的流程图;
图10是本申请另一示例性实施例提供的三维角色的个性化脸部模型显示方法的流程图;
图11是本申请一个示例性实施例提供的三维角色的个性化脸部模型显示方法中不同视野圈的组成图;
图12是本申请一个示例性实施例提供的三维角色的个性化脸部模型显示方法中耗时对比图;
图13是本申请另一示例性实施例提供的三维角色的个性化脸部模型显示方法的流程图;
图14是本申请一个实施例提供的三维角色的个性化脸部模型显示装置的框图;
图15是本申请一个实施例提供的一种服务器的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先对本申请实施例涉及的若干个名词进行简介:
虚拟环境:是应用程序在终端上运行时显示(或提供)的虚拟环境。该虚拟环境可以是对真实世界的仿真环境,也可以是半仿真半虚构的三维环境,还可以是纯虚构的三维环境。虚拟环境可以是二维虚拟环境、2.5维虚拟环境和三维虚拟环境中的任意一种,下述实施例以虚拟环境是三维虚拟环境来举例说明,但对此不加以限定。可选地,该虚拟环境还用于至少两个三维角色之间的虚拟环境对战。
三维角色:是指在虚拟环境中的可活动对象。该可活动对象可以是虚拟人物、虚拟动物、动漫人物中的至少一种。可选地,当虚拟环境为三维虚拟环境时,三维角色是基于动画骨骼技术创建的三维立体模型。每个三维角色在三维虚拟环境中具有自身的形状和体积,占据三维虚拟环境中的一部分空间。
脸部模型(或头部模型):是三维角色上位于脸部(或头部)的模型。脸部模型包括:骨骼(Bone)和网格(mesh)。其中,骨骼是用于搭建支撑三维角色形象、带动三维角色运动的骨架;网格(也称蒙皮或蒙皮网格)是绑定在各骨骼之间的多边形网格,多边形网格上有多个顶点。针对脸部模型,骨骼用于在三维角色的脸部表情或五官运动过程中控制每个顶点的位置。也即,骨骼中的若干个骨骼的位置变化会带动网格上的每个顶点发生位移。
当脸部模型中的骨骼发生位置变化时,网格上的各个顶点需要发生的位移大小可能是不同的,即每个顶点具有各自的蒙皮权重(weight),该蒙皮权重用于表示各个骨骼上的控制点变换对顶点变换的贡献程度。可选地,每个顶点的蒙皮权重可以通过有界双调和权重(Bounded Biharmonic Weight)方法或移动最小二乘法(Moving Least Square)计算得到。
骨骼蒙皮动画:脸部模型中的骨骼可分为多层父子骨骼,在动画关键帧数据的驱动下,计算出各个父子骨骼的位置。基于骨骼控制网格上的各个顶点位置来渲染出每一帧画面,通过多帧连续的画面来体现出连续变化效果。
在基于三维虚拟环境的应用程序中,提供有对三维角色的脸部进行个性化定制的功能(简称捏脸功能)。以多个虚拟角色在同一个三维虚拟环境中对战的应用程序为例,相关技术中提供的个性化脸部模型功能包括如下流程,如图1所示:
角色注册阶段:第一客户端对第一三维角色的脸部进行自定义;
第一手游客户端220用于对三维虚拟环境中的第一三维角色进行控制。在用户使用第一帐号登录第一手游客户端220以后,可以在三维虚拟环境中注册三维角色。
在注册三维角色时,第一手游客户端220提供第一脸部模型供用户进行设置。第一脸部模型具有第一骨骼和第一网格,第一骨骼为数量较多的第一数量。比如第一骨骼为63块骨骼。在第一脸部模型中设置数量较多的骨骼能够实现更精准的骨骼调整,比如角色眉毛部分,为了实现眉毛变粗、局部弯曲、局部放大偏移等,需要在眉毛附近布置4根左右骨骼才可以实现。
而用户在第一脸部模型上进行设置时,本质上是对第一脸部模型中的骨骼位置进行了调整,第一手游客户端220会记录用户对全部或部分骨骼的位置变化,得到个性化脸部模型的骨骼偏移数据。第一手游客户端220将个性化脸部模型的骨骼偏移数据上传至服务器140。该骨骼偏移数据可以是采用空间坐标形式表示的数据。
角色同步阶段:服务器将第一三维角色的个性化脸部模型的骨骼偏移数据同步至第一手游客户端和/或第二手游客户端。
服务器140在接收到第一手游客户端220上传的第一三维角色的骨骼偏移数据后,将第一三维角色的骨骼偏移数据下发给需要显示第一三维角色的各个客户端。
第一手游客户端220作为第一三维角色的主控客户端,需要显示第一三维角色。另外,如果第一三维角色进入第二三维角色的视野范围内时,用来控制第二三维角色的第二手游客户端260也需要显示第一三维角色。
角色显示阶段:第一客户端和/或第二客户端根据骨骼偏移数据显示三维角色的个性化脸部模型。
以第二手游客户端260为例,第二手游客户端260中存储有另一脸部模型,该脸部模型与第一脸部模型具有相同数量的第二骨骼和第二网格,也即第二骨骼也可以为63根骨骼。第二手游客户端260根据骨骼偏移数据对第二骨骼进行骨骼偏移,从而得到个性化中间模型。第二手游客户端260采用个性化中间模型显示出第一三维角色的个性化脸部模型。
对于第二手游客户端260来讲,位于第二三维角色的视野范围内的三维角色可能会有几十个、几百个或几千个。若对位于视野范围内的每个三维角色都进行个性化脸部模型的显示,则需要对每个三维角色的脸部模型都需要按照63根骨骼进行骨骼蒙皮动画的计算,计算量非常巨大,因此过多的骨骼会带来性能问题。结合图2,图2是三维虚拟环境中三维角色的个性化中间模型的骨骼数量对中央处理器(Central Processing Unit,CPU)的影响示意图,当三维角色的个性化中间模型的骨骼数量为20根时,CPU完成一次计算耗时约为5ms;当三维角色的个性化中间模型的骨骼数量为50根时,CPU完成一次计算耗时约为10ms;当三维角色的个性化中间模型的骨骼数量为80根时,CPU完成一次计算耗时约为14ms;由此可知,当个性化中间模型中的骨骼数量过多时,会严重增加CPU的运算负担。
因为个性化中间模型在显示骨骼蒙皮动画时每一帧都会有更新的,为了达到脸部变形和表情动画融合的效果,需要每一个动画帧对每一个个性化中间模型中的每一根骨骼数据进行融合计算,非常耗时。特别是在大型多人在线角色扮演游戏的场景里,很容易出现画面卡顿的问题。但发明人发现,在使用个性化中间模型中的骨骼驱动网格进行动画时,并不需要太多的骨骼,仅需要很少的骨骼也能完成骨骼蒙皮动画的正常显示。特别是应用程序是手机端游戏程序时,因为三维角色的脸部在手机屏幕中的显示面积较小,仅需要控制少量的骨骼就能够实现较好的骨骼蒙皮动画的显示。
图3示出了本申请一个示例性实施例提供的计算机系统100的结构框图。该计算机系统100提供有一个共享的三维虚拟环境,该三维虚拟环境包括多个三维角色。该计算机系统100包括:第一终端120、服务器140和第二终端160。
第一终端120通过无线网络或有线网络与服务器140相连。第一终端120可以是智能手机、游戏主机、台式计算机、平板电脑、电子书阅读器和膝上型便携计算机中的至少一种。第一终端120安装和运行有第一客户端,该第一客户端中提供有三维虚拟环境,该三维虚拟环境包括多个三维角色。作为本实施例的一个示例,该第一客户端可以是3D游戏应用程序、图像处理程序、头像生成程序、表情管理程序、游戏类程序中的任意一种。示意性的,第一客户端是第一用户使用的客户端,第一客户端中登录有第一用户帐号。该第一帐号具有第一三维角色的控制权限,该第一三维角色的脸部模型支持个性化定制,如图4所示,第一三维角色的脸部模型包括:骨骼和网格。
第一终端120通过无线网络或有线网络与服务器140相连。
服务器140包括一台服务器、多台服务器、云计算平台和虚拟化中心中的至少一种。服务器140用于为第一终端120和第二终端160提供后台服务。可选地,服务器140承担主要计算工作,第一终端120和第二终端160承担次要计算工作;或者,服务器140承担次要计算工作,第一终端120和第二终端160承担主要计算工作;或者,服务器140、第一终端120和第二终端160三者之间采用分布式计算架构进行协同计算。
可选地,服务器140包括:接入服务器141和存储服务器142。接入服务器用于提供第一终端120和第二终端140的接入服务。存储服务器142用于接收第一终端120发送的第一三维角色的骨骼偏移数据。
第二终端160安装和运行有第二客户端。该应用程序可以是3D游戏应用程序。第二终端160是第二用户使用的客户端。该第二客户端中提供有三维虚拟环境,该三维虚拟环境包括多个三维角色。作为本实施例的一个示例,该第二客户端可以是3D游戏应用程序。示意性的,第二客户端是第二用户使用的客户端,第二客户端中登录有第二用户帐号。该第二帐号具有第二三维角色的控制权限,该第二三维角色的脸部模型支持个性化定制。
第一终端120可以泛指多个终端中的一个,第二终端160可以泛指多个终端中的一个,本实施例仅以第一终端120和第二终端160来举例说明。第一终端120和第二终端160的终端类型相同或不同,该客户端类型包括:智能手机、游戏主机、台式计算机、平板电脑、电子书阅读器、MP3播放器、MP4播放器和膝上型便携计算机中的至少一种。以下实施例以第一终端120和/或第二终端140是智能手机、第一帐号和第二帐号在同一三维虚拟环境中举例说明。
本领域技术人员可以知晓,上述终端(或客户端)的数量不做限定。比如上述终端可以仅为一个,或者上述终端为几十个或几百个,或者更多数量,此时上述计算机系统还包括其它终端。本申请实施例对其它终端的数量和设备类型不加以限定。
本申请提供了一种三维角色的个性化脸部模型显示方案。图5示出了一个示例性实施例提供的三维角色的个性化脸部模型显示方法的流程图。该流程主要包括三个阶段:
第一阶段:第一客户端中的第一脸部模型的调节过程
该过程在第一客户端中进行,用户在第一客户端上对第一脸部模型511进行骨骼偏移操作。该第一脸部模型511的骨骼数量为第一数量,示意性的,第一数量为63。
骨骼偏移操作包括对第一脸部模型511的不同区域进行局部调整,该局部调整包括第一脸部模型511中的骨骼的位置调节、骨骼的旋转调节、骨骼的缩放调节中的至少一种。该局部调整的部位可以包括第一脸部模型的脸型、眼睛、眉毛、嘴巴中的至少一处。用户在对第一脸部模型511进行局部调整的过程中客户端生成骨骼偏移数据,第一脸部模型511根据骨骼偏移数据生成调整后的第一脸部模型512,该调整后的第一脸部模型512的骨骼数量为第一数量,为63。
第一客户端向服务器140上传骨骼偏移数据。
第二阶段:服务器中的第一脸部模型的调节过程
服务器140接收并存储第一客户端发送的骨骼偏移数据。
服务器140下发骨骼偏移数据。其中,服务器140的下发对象可以是第一三维角色自身所对应的客户端,也可以是第二三维角色所对应的客户端。
第三阶段:第二客户端中的三维角色个性化脸部模型的显示过程
第二客户端接收到服务器140下发的骨骼偏移数据后,找到该第一脸部模型所对应的中间脸部模型531,该中间脸部模型531是存储在每个客户端本地的脸部模型,该中间脸部模型531与第一脸部模型是相匹配的。其中“匹配”包括:类型相同和/或骨骼数量相同。
第二客户端根据骨骼偏移数据对中间脸部模型531进行骨骼偏移操作,得到个性化中间模型532,该个性化中间模型532和调整后的第一脸部模型512具有相同的第一骨骼(63根)和第一网格。
第二客户端根据个性化中间模型532中的第一网格生成个性化静态网格533,该个性化静态网格533不具有骨骼和顶点权重信息。
第二客户端根据第一三维角色对应的基础脸部模型534和个性化静态网格533,显示第一三维角色对应的个性化脸部模型535。
三维虚拟环境包括:用于对第一三维角色的第一脸部模型511进行骨骼偏移操作的第一三维虚拟环境和用于显示第一三维角色的第二三维虚拟环境。其中基础脸部模型532是第一三维角色在第二虚拟环境中使用的未经过个性化定制的头部模型(或脸部模型)。个性化脸部模型535是第一三维角色在第二虚拟环境中显示时使用的经过个性化定制的头部模型(或脸部模型)。
个性化脸部模型535的骨骼为基础脸部模型534中的第二骨骼,个性化脸部模型535的顶点权重信息为基础脸部模型534中的顶点权重信息。第二骨骼为第二数量,其中第二数量少于第一数量。示意性的,第二数量为15。
综上所述,本实施例提供的方法,通过第二客户端接收到骨骼偏移数据后确定与第一脸部模型对应的中间脸部模型,并根据骨骼偏移数据在对应的中间脸部模型上进行骨骼偏移操作得到个性化中间模型,个性化中间模型生成个性化定制的个性化静态网格,该个性化静态网格与三维虚拟环境中的基础脸部模型中的第二骨骼和顶点权重信息共同生成个性化脸部模型。
由于个性化静态网格是采用骨骼数量较多的第一脸部模型个性化定制生成的,因此个性化静态网格保留了多骨骼局部调整后的精致特点;同时,将个性化静态网格与骨骼数量较少的基础脸部模型的第二骨骼和顶点权重信息进行融合,形成骨骼数量较少,具有精致脸部画面的个性化脸部模型。由于个性化脸部模型的骨骼数量较少,因此第一三维角色在三维虚拟环境中显示时能有效减少终端的计算负担,减少卡顿的概率。
图6示出了一个示例性实施例提供的三维角色的个性化脸部模型显示方法的流程图。该方法包括以下步骤:
步骤201,第一客户端显示三维角色的个性化脸部的设置界面。
设置界面包括:第一脸部模型的预览画面和n个设置选项,个性化脸部模型对应的第一脸部模型中的第一骨骼具有第一数量,每个设置选项对应第一脸部模型中的至少一根骨骼,n为正整数。
示意性的,结合图7,图7是本实施例中一个示意性的第一客户端显示的三维角色X脸部的设置界面图。在该设置界面上呈现有三维角色X的个性化定制画面和设置选项,其中,设置选项包括眼睛设置选项101、眉毛设置选项102、嘴巴设置选103项、鼻子设置选项104、脸型设置选项105中的至少一种,每种设置选项中包括多个用于对该设置选项进行设定的目标设置选项。例如,在眼睛设置选项中,包括用于对眼睛位置、眼睛倾斜、眼睛间距、眼睛缩放以及瞳孔大小等参数进行设置的滑条。
其中,个性化脸部模型是通过修改至少一个设置选项中对应的骨骼的偏移参数得到的。
可选地,骨骼偏移数据是采用数值范围表示的数据,数值范围是骨骼的偏移范围,每条骨骼偏移数据占用半个字节。示意性的,每个目标设置选项中的数值范围是-7到7,由于-7到7共计15个数字,使用半个字节即可存储。数值范围可以采用滑条的形式进行表示,如图10中所示,在初始状态时每个目标设置选项中的滑条的数值为0。
需要说的是,数值范围不局限于-7到7,技术人员也可使用其他数值范围,本实施例对此不作限定。
第一客户端向服务器发送骨骼偏移数据时发送的是采用数值范围表示的骨骼偏移数据,结合表一,表一示出了第一客户端向服务器发送的骨骼偏移数据的部分数据结构(未全部列出)。
表一
其中,“Public byte bBone X”代表第x根骨骼的数值范围。当不为0时,存在骨骼偏移;当为0时,不存在骨骼偏移。
本实施例通过将骨骼偏移数据以数值范围的形式发送至服务器,能够有效减少发送的数据量,避免因数据过大造成的延迟问题,有效提升用户体验。
步骤202,第一客户端接收在n个设置选项中的目标设置选项上触发的设置操作。
第一客户端实时记录目标设置选项对应的各个骨骼的偏移参数,并根据该参数实时调整三维角色X在设置界面上呈现的效果。
结合图8,图8是本实施例中示意性的第一客户端在接收到设置操作后呈现的界面图。用户将眼睛设置选项101中的眼睛位置1011设置为1、眼睛倾斜1012设置为7、眼睛间距1013设置为-3、眼睛缩放1014设置为7、瞳孔大小1015设置为7。对比三维角色X在初始状态时图10中呈现的形象状态,经个性化定制设置后的三维角色X的眼睛区域有明显变化。其中,“变化”包括眼睛位置下移、距离减小、眼角斜度降低、眼睛增大以及瞳孔增大。
示意性的,第一客户端接收到的设置操作可以对眼睛设置选项101、眉毛设置选项102、嘴巴设置选103项、鼻子设置选项104、脸型设置选项105中的至少一种,其中每个设置选项中包括至少一个偏移参数(图7和图8中滑条表示的数值范围)进行操作。
步骤203,第一客户端根据设置操作生成目标设置选项对应的骨骼偏移数据。
用户在完成个性化脸部的设置后触发确定选项,第一客户端接收到触发确定选项的操作后,根据当前三维角色X的面部数据生成骨骼偏移数据。
可选地,骨骼偏移数据包括两种表现形式:
第一种表现形式为:采用数值范围的方式代表三维角色的个性化脸部的骨骼偏移参数,客户端接收到该数值范围后将该数值范围换算成坐标参数对三维角色进行调整。
可选地,表现数值范围的形式可以采用滑条的形式,也可以采用转盘的形式,本实施例对此不作限定。
第二种表现形式为:因为骨骼本质上是三维坐标系中的坐标来表示的数据,因此第一客户端根据数值范围生成三维角色的个性化脸部的每个骨骼的坐标参数,客户端接收到该坐标参数后直接修改对应骨骼的坐标参数,实现对三维角色进行调整。
步骤204,第一客户端向服务器发送骨骼偏移数据。
骨骼偏移数据是三维角色脸部模型变化的依据,用于实现个性化设定三维角色脸型的目的。例如,通过改变三维角色的鼻子的宽度、眉毛的弯曲程度等改变三维角色所呈现出的外貌状态。
步骤205,服务器接收并存储骨骼偏移数据。
服务器接收到第一客户端上传的第一脸部模型的骨骼偏移数据后将该骨骼偏移数据存储在服务器的内部。
表二
第一客户端 | 第一三维角色的骨骼偏移数据 |
第二客户端 | 第二三维角色的骨骼偏移数据 |
第三客户端 | 第三三维角色的骨骼偏移数据 |
参阅表二,服务器中存储有至少一个客户端中三维角色X对应的偏移数据,且服务器可以向任意一个客户端发送任意一个三维角色的骨骼偏移数据。可选地,当三维角色X进入三维角色Y的视野范围内时,服务器向三维角色Y对应的客户端发送三维角色X的骨骼偏移数据。
步骤206,服务器向第一客户端和/或第二客户端发送三维角色的个性化脸部模型的骨骼偏移数据。
示意性的,当三维角色X进入第二客户端的视野范围内时,服务器向第二服务器发送三维角色X的骨骼偏移数据。可选地,第二客户端的数量可以是一个或多个。
当三维角色X对应的第一客户端需要显示三维角色X时,服务器向第一客户端发送三维角色X的骨骼偏移数据。例如,当三维角色X在第一客户端的视野范围内,或用户在第一客户端上点击包含三维角色X形象的设置界面时,服务器向第一客户端发送三维角色X的骨骼偏移数据。
下文主要以第二客户端显示三维角色的个性化脸部模型来举例说明。对于第一客户端显示三维角色的个性化脸部模型的过程,与第二客户端采用相同或相似的原理,不再赘述。
步骤207,第二客户端确定三维角色对应的中间脸部模型。
三维虚拟环境中的所有三维角色可以分为多个类型,每个类型对应一个中间脸部模型。第二客户端根据接收到的骨骼偏移数据后找到该三维角色的类型对应的中间脸部模型。
示意性的,结合表三,在三维虚拟环境中,第一三维角色和第二三维角色均为类型J中的三维角色,因此第一三维角色和第二三维角色对应同一个中间脸部模型,即类型J的中间脸部模型。
第三三维角色、第四三维角色和第五三维角色均为类型K中的三维角色,因此第三三维角色、第四三维角色和第五三维角色对应同一个中间脸部模型,即类型K的中间脸部模型。
表三
可选地,三维角色根据类型的不同可以分为壮汉、萝莉、帅气男中的至少一种。同一个中间脸部模型至少对应一个三维角色。例如,多个三维角色在三维虚拟环境中的表现形式均为帅气男的形象,因此上述多个三维角色可能对应同一中间脸部模型。需要说明的是,上述中的划分方式只是示意性的划分,技术人员也可以采用其他的划分方式,本实施例对此不作限定。
可选地,第一脸部模型和中间脸部模型具有相同的第一骨骼和第一网格,其中第一骨骼为第一数量。
可选地,结合表四,中间脸部模型与第一脸部模型相比,均允许骨骼偏移;第一脸部模型包括骨骼蒙皮动画,目的是使第一脸部模型在第一终端的设置界面上能够以动态的三维形象来显示。由于中间脸部模型只用于后台处理而不呈现在前台界面上,因此可以不使用骨骼蒙皮动画;为了使中间脸部模型根据骨骼偏移数据生成与调整后的第一脸部模型相同的角色形象,中间脸部模型与第一脸部模型的骨骼数量相同,均为63根。
可选地,在该过程中的三维角色中间脸部模型是允许骨骼偏移的。示意性的,当应用程序是基于Unity引擎开发的应用程序时,是不开启游戏角色优化(optimize gameobjects)的,不开启这个优化代表了允许对脸部模型中的骨骼进行偏移设置。允许骨骼偏移的目的是便于第一客户端根据骨骼偏移数据直接修改骨骼信息。
允许骨骼偏移在不同三维虚拟引擎中使用不同的参数来设置,例如,当应用程序是采用Unity引擎开发的,则允许骨骼偏移属性是采用optimize game objects参数来设置的,当该参数设置为optimize时,代表允许骨骼偏移;当该参数设置为Notoptimize时,代表不允许骨骼偏移
可选地,骨骼偏移数据包括两种表现形式,一种是采用数值范围的表现形式,另一种是采用坐标形式的表现形式。
表四
允许骨骼偏移 | 骨骼蒙皮动画 | 骨骼数量 | |
第一脸部模型 | 允许 | 有 | 63 |
中间脸部模型 | 允许 | 无 | 63 |
个性化中间模型 | 允许 | 无 | 63 |
个性化静态网格 | ---- | 无 | 0 |
基础脸部模型 | 不允许 | 有 | 15 |
步骤208,第二客户端根据骨骼偏移数据对中间脸部模型进行骨骼偏移,得到个性化中间模型。
第二客户端接收到数值范围后,将其转换成骨骼坐标参数和网格坐标参数后进行骨骼偏移操作。
个性化中间模型是中间脸部模型根据骨骼偏移数据形成的脸部模型(或头部模型),该个性化中间模型与第一脸部模型的骨骼数量完全相同。
步骤209,第二客户端根据个性化中间模型中的第一网格生成个性化静态网格。
个性化中间模型包括第一骨骼和第一网格两部分,个性化静态网格是个性化中间模型的第一网格部分复制得到的,个性化静态网格不包括骨骼和骨骼蒙皮动画。
可选地,根据第一网格生成个性化静态网格的方式可以包括:调用目标网格函数对个性化中间模型中的第一网格进行处理,生成个性化静态网格。
例如,当应用程序是采用Unity引擎开发的,第二客户端采用bakemesh函数生成与个性化脸部模型的第一网格相同的个性化静态网格。
步骤210,第二客户端根据三维角色对应的基础脸部模型和个性化静态网格,显示三维角色对应的个性化脸部模型。
三维虚拟环境包括:用于对三维角色X的第一脸部模型进行骨骼偏移操作的第一三维虚拟环境和用于显示三维角色X的第二三维虚拟环境。其中基础脸部模型是三维角色X在第二虚拟环境中使用的未经过个性化定制的脸部模型(或头部模型)。个性化脸部模型是三维角色X在第二虚拟环境中显示时使用的经过个性化定制的脸部模型(或头部模型)。
个性化静态网格是个性化中间模型的第一网格复制得到的,因此个性化静态网格与调整后的第一脸部模型的第一网格是完全相同的。
个性化脸部模型的骨骼为基础脸部模型中的第二骨骼,个性化脸部模型的顶点权重信息为基础脸部模型中的顶点权重信息。第二骨骼的数量为第二数量,第二数量小于第一脸部模型的第一数量。基础脸部模型中的顶点权重信息和第二骨骼通过骨骼蒙皮级联矩阵进行绑定,该骨骼蒙皮级联矩阵用于使基础脸部模型在第二骨骼的控制下显示骨骼蒙皮动画。
通过将第二网格的顶点权重信息赋值至静态化脸部模型,避免了对个性化静态网格每个顶点的顶点权重信息能够重新编辑,有效简化了个性化脸部模型生成时的运算量。
步骤211,第二客户端通过第二骨骼基于骨骼蒙皮级联矩阵,控制个性化静态网格显示骨骼蒙皮动画。
由于个性化脸部模型是采用基础脸部模型中的顶点权重信息和第二骨骼生成的骨骼蒙皮级联矩阵,将基础脸部模型的第二骨骼与个性化静态网格结合,形成的个性化脸部模型具有和基础脸部模型相同的骨骼蒙皮动画。
通过将基础脸部模型的第二骨骼与个性化静态网格结合,能够有效简化个性化脸部模型的生成方式。
可选地,该个性化脸部模型在显示的过程中可以具有动态的表情动画(骨骼蒙皮动画)。
综上所述,本实施例提供的方法,通过服务器向第二客户端下发第一客户端对第一脸部模型调节时生成的骨骼偏移数据,第二客户端根据骨骼偏移数据在对应的中间脸部模型上进行骨骼偏移操作得到调整后的个性化中间模型,根据个性化中间脸部模型生成个性化静态网格,该个性化静态网格与三维虚拟环境中的基础脸部模型中的骨骼和骨骼蒙皮级联矩阵共同生成个性化脸部模型。由于个性化脸部模型的骨骼数量少于第一脸部模型,因此在三维虚拟环境中的三维角色产生动画时能有效减少第二客户端的计算量,降低第二客户端的卡顿概率。
在基于上述实施例的可选实施例中,步骤210可以替代实现成为如下步骤,如图9所示:
基础脸部模型包括:第二骨骼和第二网格以及骨骼蒙皮级联矩阵。
步骤2101,第二客户端将第二网格的顶点权重信息赋值至个性化静态网格中对应的顶点,第二网格和个性化静态网格中的顶点数量相同。
第二网格和个性化静态网格具有相同的顶点数量,个性化静态网格的顶点是不具有权重信息的静态网格(Mesh)。
基础脸部模型的骨骼蒙皮级联矩阵是三维角色在三维虚拟环境中实现骨骼蒙皮动画的数据支撑。
第二客户端将第二网格的各个顶点权重信息赋值至个性化静态网格中的对应顶点后,个性化静态网格具有实现与基础脸部模型相同的骨骼蒙皮动画的数据支撑。
步骤2102,第二客户端根据第二骨骼和个性化静态网格,显示三维角色对应的个性化脸部模型。
第二客户端用具有第二网格的顶点权重信息的个性化静态网格替换基础脸部模型的第二网格后,个性化脸部模型在第二骨骼的带动下通过骨骼蒙皮级联矩阵使个性化静态网格显示骨骼蒙皮动画。
可选地,个性化脸部模型的生成方法包括:
步骤2102a,使用个性化静态网格替换基础脸部模型的第二网格;
步骤2102b,使用骨骼蒙皮级联矩阵对第二骨骼和个性化静态网格进行绑定,显示三维角色对应的个性化脸部模型。
可选地,第二客户端通过第二骨骼基于骨骼蒙皮级联矩阵,控制个性化静态网格显示骨骼蒙皮动画。
骨骼蒙皮级联矩阵用于绑定第二骨骼和个性化静态网格,第二骨骼运动时通过骨骼蒙皮级联矩阵带动个性化静态网格上的顶点显示骨骼蒙皮动画。该骨骼蒙皮动画可以是微笑、皱眉、张嘴等。
综上所述,第二网格和个性化静态网格具有相同的顶点数量,将三维虚拟环境中的基础脸部模型的顶点权重信息赋值给个性化静态网格中对应的顶点,使个性化静态网格能够在第二骨骼和骨骼蒙皮级联矩阵的作用下执行和基础脸部模型相同的骨骼蒙皮动画,简化了个性化脸部模型的骨骼蒙皮动画的生成方法。
作为本实施例的一个示例,个性化静态网格的生成方式是通过调用目标网格函数对个性化中间模型中的第一网格进行处理生成的。例如,当应用程序是采用Unity引擎开发的应用程序时,目标网格函数是bakemesh函数。
通过采用目标网格函数,能够保证得到与个性化脸部模型的网格相同的个性化静态网格。
作为本实施例的一个示例,在第二客户端中运行的应用程序中包括至少两个候选脸部模型,每个候选脸部模型对应至少一个三维虚拟环境中的三维角色,在候选脸部模型中,确定出与三维角色的类型对应的中间脸部模型。中间脸部模型和三维角色具有相同的骨骼数量,以便于中间脸部模型根据骨骼偏移数据进行变换。
综上所述,通过设置多个中间脸部模型作为不同角色类型的候选脸部模型,将三维角色轮廓相近的三维角色归为同一类型,多个三维角色并对应一个中间脸部模型,无需为每一个三维角色都配置一个中间脸部模型,有效控制了第二客户端的计算量。
在三维游戏场景中,一个客户端在大厅或城战时会在同一显示界面中出现多个三维角色,若同时计算每一个三维角色的表情动画,则会增加终端的计算量,容易产生卡顿的情况,为了优化三维角色对应的个性化脸部模型的显示方法,该方法还包括以下步骤,如图10所示:
步骤211,当三维角色与主控角色之间的距离小于阈值时,第二客户端执行上述步骤207至步骤211的操作。其中,三维角色是服务器或其它帐号控制的角色。
三维角色是第一客户端在三维虚拟环境中对应的虚拟角色;主控角色是第二客户在三维虚拟环境中对应的与三维角色共同显示的虚拟角色。
为减少第二客户端的计算量,当三维角色与主控角色之间的距离大于阈值时第二客户端不执行步骤207至步骤211的操作。
例如当三维角色未在主控角色的可视范围内时,主控角色对应的第二客户端不执行步骤207至步骤211的操作,只有当三维角色出现在可视范围内时才执行步骤207至步骤211的操作。
作为本实施例的一个示例,在三维虚拟环境中还包括一模型对象池,当三维角色处于主控角色的视野范围内时,将个性化脸部模型缓存至模型对象池;当三维角色移出主控角色的视野范围内时,将个性化脸部模型在模型对象池中进行回收。通过引入缓存个性化脸部模型的模型对象池,能够避免三维角色每次出现在主控角色的视野范围内时第二客户端都需要重新生成个性化脸部模型,当三维角色出现在主控角色的视野范围内时,第二客户端只需从模型对象池中调用三维角色的个性化脸部模型即可,能有效缓解终端的计算负担。
结合图11,图11示出了本申请一个示例性实施例提供的服务器在逻辑层的不同视野层次中执行的相关操作。服务器在逻辑层1100中的不同视野层次中下发不同的角色资源,资源角色是组成三维虚拟环境的元素,例如,可以是建筑、装饰、三维角色等。其中,不同的视野层次可以理解为三维角色与主控角色之间在不同距离时所对应的视野范围。例如,三维角色与主控角色之间的距离按照由远到近的顺序可以分为:资源预载圈、实例化圈、可见圈以及细节圈四个视野层次。
示意性的,服务器在逻辑层1100中创建逻辑层场景角色对象,也即提供三维虚拟环境,用于展示景物和三维角色等;当其他三维角色与主控角色之间的相对距离对应在资源预载圈901中时,主控角色对应的客户端异步加载角色资源;当其他三维角色与主控角色之间的相对距离对应在实例化圈902中时,第一客户端创建三维角色,也即,在主控角色对应的客户端的视野范围内,主控角色对应的客户端加载各个三维角色的身份;当其他三维角色与主控角色之间的相对距离对应在可见圈903中时,主控角色对应的客户端启动操作对象和表现层组件,其他三维角色能够显示相应的动作;当其他三维角色与主控角色之间的相对距离对应在细节圈904中时,主控角色对应的客户端根据骨骼偏移数据确定其他三维角色对应的中间脸部模型以及个性化脸部模型的生成过程。
可选地,在生成个性化脸部模型后,还包括在个性化脸部模型上显示骨骼蒙皮动画。
需要说明的是,中逻辑层1100中的视野层次划分不局限于上述提供的四种,技术开发人员可以根据不同的距离范围选择不同的视野层次划分方式,在每个视野层次中加载的内容也可灵活选择,本方案对此不做限定。
综上所述,本实施例通过设置阈值,三维角色与主控角色之间按照距离划分为多个视野层次,当三维角色与主控角色之间的距离对应不同的视野层次时,主控角色对应的客户端根据视野层次的不同加载相应的角色资源,当三维角色在主控角色的可视范围外时不执行生成个性化脸部模型的操作,在不影响用户操作体验的情况下有效减低第二客户端的计算量,有效减少卡顿的发生概率。
在一个示意性实施例中,第一脸部模型在骨骼偏移操作时是允许骨骼偏移的,因为第一客户端和第二客户端需要根据骨骼偏移数据对骨骼信息进行修改;在三维虚拟环境中最终显示的三维角色的个性化脸部模型是不允许骨骼偏移的,即将骨骼信息进行隐藏,能有效降低第二客户端运算负担,提升整体的流畅度。图12示出了一示例性实施例提供的三维角色在允许骨骼偏移和不允许骨骼偏移CPU耗时的对比图。以开发环境是Unity为例,在骨骼数量相同的情况下,当三维角色开启游戏角色优化时,CPU的耗时为5ms,当三维角色不游戏角色优化时,CPU的耗时为15ms。
综上所述,本实施例通过在第一脸部模型上进行骨骼偏移操作时不开启,方便把用户拖动滑条导致的骨骼变化信息加上表情骨骼动画之后,直接去修改骨骼信息,在场景中开启游戏角色优化,有效提升客户端的性能,提升了用户的游戏体验。
结合图13对本方案进行阐述。定制三维角色的个性化脸部模型包括以下步骤:
步骤501,用户根据喜好在第一客户端所呈现的界面上对第一三维角色进行骨骼偏移操作。
用户在第一客户端中进行骨骼偏移操作,第一客户端内运行有支持三维角色个性化设置的应用程序,该应用程序包括个性化设置三维角色的界面。
可选地,在该过程中三维角色的骨骼是允许骨骼偏移的。允许骨骼偏移的目的是便于直接修改骨骼信息。
步骤502,第一客户端记录骨骼偏移操作产生的骨骼偏移数据。
示意性的,骨骼偏移数据是采用数值范围表示的数据,数值范围是骨骼的偏移范围,每条骨骼偏移数据占用半个字节。示意性的,每个目标设置选项中的数值范围是-7到7,由于-7到7共计15个数字,使用半个字节即可存储。数值范围可以采用滑条的形式进行表示,如图10中所示,在初始状态时每个目标设置选项中的滑条的数值为0。
步骤503,第一客户端记录骨骼偏移数据,将骨骼偏移数据上传到服务器。
第一客户端是采用通过记录数值范围记录骨骼偏移数据的,第一客户端上传的骨骼偏移数据也是数值范围,例如记录眼睛的位置为7、大小为6,则第一客户端向服务器发送的骨骼偏移数据为在表征眼睛位置处绑定7,在表征眼睛大小处绑定6。可选地,表现数值范围的形式可以采用滑条的形式,也可以采用转盘的形式,本实施例对此不作限定。
步骤504,第一客户端对应的三维角色进入三维虚拟环境后,或者,第二终端对应的三维角色进入第一终端对应的三维角色的视野范围时,服务器向三维虚拟环境中的所有三维角色对应的客户端下发骨骼偏移数据。
步骤505,客户端接收到服务器下发的偏移数据后,判断骨骼偏移数据是否为0;
若骨骼偏移数据为0,则表示第一客户端没有进行骨骼偏移操作,或骨骼偏移操作后的第一脸部模型与修改之前的第一脸部模型相比没有数据变化,结束脸部模型的个性化定制流程;
若骨骼偏移数据不为0,则表示第一客户端对第一脸部模型进行了骨骼偏移操作,执行步骤506;
步骤506,第二客户端根据骨骼偏移数据找到对应的中间脸部模型,根据服务器下发的骨骼偏移数据对三维角色进行个性化设定操作。
示例性的,第二客户端接收到服务器下发的骨骼偏移数据后,找到一永久存储在三维虚拟环境中的中间脸部模型,该中间脸部模型与第一脸部模型是相对应的,该中间脸部模型具有和第一脸部模型相同的骨骼数量。该中间脸部模型允许骨骼偏移。第二客户端根据服务器下发的骨骼偏移数据对中间脸部模型进行骨骼偏移操作。
步骤507,第二客户端生成个性化静态网格。
个性化静态网格是与个性化中间模型相同的第一网格相同的网格,但个性化静态网格不具有顶点权重信息。
步骤508,第二客户端将第二网格的顶点权重信息赋值至个性化静态网格中的对应顶点。
可选地,第二客户端采用C++将第二网格的顶点权重信息赋值至个性化静态网格中的对应顶点,具有高效并且无需进行垃圾回收(Garbage Collect,GC)的优势。
步骤509,根据第二骨骼和个性化静态网格,显示三维角色对应的个性化脸部模型。
基础脸部模型包括第二网格和第二骨骼,通过将第二网格的顶点权重信息赋值给个性化静态网格后,使得具有顶点权重信息的个性化静态网格与第二骨骼组成个性化脸部模型,该个性化脸部模型具有和骨骼偏移操作后的第一脸部模型相同的外观,与基础脸部模型相同的骨骼蒙皮动画。
本申请各个实施例提供的三维角色的个性化脸部模型显示方法,可以应用于安装有支持三维虚拟环境显示的应用程序中,该应用程序安装在终端中,该应用程序是支持三维虚拟环境显示的应用程序,该终端可以是智能手机、平板电脑、个人计算机或便携式计算机等等。比如,该目标应用程序是游戏程序,本申请实施例对此不做限定。
下面结合几个示意性的应用场景,对本申请实施例提供三维角色的个性化脸部模型显示方法进行说明。
一、手游场景
本申请实施例提供的三维角色的个性化脸部模型显示方法可以实现成为应用程序中的显示模块。应用程序根据用户对三维角色的个性化定制操作,在显示模块上显示出经用户个性化定制后的三维角色,该三维角色具有个性化定制后的个性化脸部模型。可选地,该个性化定制后的三维角色能够显示表情动画。
二、三维网游场景
在三维网游场景下,本申请实施例提供的三维角色的个性化脸部模型显示方法可以实现成为游戏程序中的一个个性化定制模块。网游程序根据用户对三维角色的骨骼偏移操作生成个性化定制后的个性化脸部模型。可选地,网游程序。该个性化定制后的三维角色能够显示表情动画。
当然,上述仅以几种可能的应用场景为例进行示意性说明,本申请实施例提供的方法还可以应用于其他需要三维角色的个性化脸部模型显示的应用场景,例如模拟人生、养成游戏、端游等,本申请实施例并不对具体应用场景进行限定。
图14是本申请一个实施例提供的三维角色的个性化脸部模型的显示装置的框图。该装置包括:
接收模块601,用于接收服务器发送的三维角色的个性化脸部模型的骨骼偏移数据,骨骼偏移数据是(第一客户端)对第一脸部模型中调节生成的;
确定模块602,用于确定三维角色对应的中间脸部模型,第一脸部模型和中间脸部模型具有相同的第一骨骼和第一网格,第一骨骼为第一数量;
偏移模块603,用于根据骨骼偏移数据对中间脸部模型进行骨骼偏移,得到个性化中间模型;
生成模块604,用于根据个性化中间模型中的第一网格生成个性化静态网格;
显示模块605,用于根据三维角色对应的基础脸部模型和个性化静态网格,显示三维角色对应的个性化脸部模型,基础脸部模型中的第二骨骼为第二数量,第二数量小于第一数量。
基础脸部模型包括:第二骨骼和第二网格以及骨骼蒙皮级联矩阵;赋值模块606,用于将第二网格的顶点权重信息赋值至个性化静态网格中的对应顶点,第二网格和个性化静态网格中的顶点数量相同;显示模块605,用于根据第二骨骼和个性化静态网格,显示三维角色对应的个性化脸部模型。
替换模块607,用于使用个性化静态网格替换第二网格;显示模块605,用于使用骨骼蒙皮级联矩阵对第二骨骼和个性化静态网格进行绑定,显示三维角色对应的个性化脸部模型。
控制模块608,用于通过第二骨骼基于骨骼蒙皮级联矩阵,控制个性化静态网格显示骨骼蒙皮动画。
生成模块604,用于调用目标网格函数对个性化中间模型中的第一网格进行处理,生成个性化静态网格。
确定模块602,用于在至少两个候选脸部模型中,确定出与三维角色的角色类型对应的中间脸部模型,每个候选脸部模型对应各自的角色类型。
确定模块602,用于当三维角色与主控角色之间的距离小于阈值时,执行确定三维角色对应的中间脸部模型的步骤。
缓存模块609,用于当三维角色处于主控角色的视野范围内时,将个性化脸部模型缓存至模型对象池;缓存模块,用于当三维角色移出主控角色的视野范围内时,将个性化脸部模型在模型对象池中进行回收。
骨骼偏移数据是采用数值范围表示的数据,数值范围是骨骼的偏移范围,每条骨骼偏移数据占用半个字节。由于第一客户端是采用数值范围的形式发送骨骼偏移数据的,每个数值范围只占用半个字节,能够有效减小服务器向多个第二客户端广播骨骼偏移数据是数据量,因而可以有效减少发送所需要的时间,减少延时时间。
图15示出了本申请一个实施例提供的服务器的结构示意图。该服务器用于实施上述实施例中提供的三维角色的个性化脸部模型显示方法。具体来讲:
服务器800包括中央处理单元(CPU)801、包括随机存取存储器(RAM)802和只读存储器(ROM)803的系统存储器804,以及连接系统存储器804和中央处理单元801的系统总线805。服务器800还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)806,和用于存储操作系统813、应用程序814和其他程序模块815的大容量存储设备807。
基本输入/输出系统806包括有用于显示信息的显示器808和用于用户输入信息的诸如鼠标、键盘之类的输入设备809。其中显示器808和输入设备809都通过连接到系统总线805的输入输出控制器810连接到中央处理单元801。基本输入/输出系统806还可以包括输入输出控制器810以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器810还提供输出到显示屏、打印机或其他类型的输出设备。
大容量存储设备807通过连接到系统总线805的大容量存储控制器(未示出)连接到中央处理单元801。大容量存储设备807及其相关联的计算机可读介质为服务器800提供非易失性存储。也就是说,大容量存储设备807可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器804和大容量存储设备807可以统称为存储器。
根据本申请的各种实施例,服务器800还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器800可以通过连接在系统总线805上的网络接口单元811连接到网络812,或者说,也可以使用网络接口单元811来连接到其他类型的网络或远程计算机系统(未示出)。
本申请实施例还提供了一种计算机存储介质,该计算机可读存储介质存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上所述的三维角色的个性化脸部模型显示方法。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上所述的三维角色的个性化脸部模型显示方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (15)
1.一种三维角色的个性化脸部模型显示方法,其特征在于,所述方法包括:
接收服务器发送的三维角色的个性化脸部模型的骨骼偏移数据,所述骨骼偏移数据是对第一脸部模型进行调节生成的;
确定所述三维角色对应的中间脸部模型,所述第一脸部模型和所述中间脸部模型具有相同的第一骨骼和第一网格,所述第一骨骼为第一数量;所述中间脸部模型是存储在每个客户端本地的脸部模型,且与所述第一脸部模型是相匹配的;
根据所述骨骼偏移数据对所述中间脸部模型进行骨骼偏移,得到个性化中间模型;所述个性化中间模型与所述第一脸部模型的骨骼数量相同;所述个性化中间模型包括所述第一骨骼和所述第一网格;
根据所述个性化中间模型中的所述第一网格生成个性化静态网格;所述个性化静态网格是由所述个性化中间模型的所述第一网格部分复制得到的;
根据所述三维角色对应的基础脸部模型和所述个性化静态网格,显示所述三维角色对应的所述个性化脸部模型,所述基础脸部模型中的第二骨骼为第二数量,所述第二数量小于所述第一数量;所述基础脸部模型是所述三维角色未经过个性化定制的头部模型。
2.根据权利要求1所述的方法,其特征在于,所述基础脸部模型包括:所述第二骨骼和第二网格以及骨骼蒙皮级联矩阵;
所述根据所述三维角色对应的基础脸部模型和所述个性化静态网格,显示所述三维角色对应的个性化脸部模型,包括:
将所述第二网格的顶点权重信息赋值至所述个性化静态网格中的对应顶点,所述第二网格和所述个性化静态网格中的顶点数量相同;
根据所述第二骨骼和所述个性化静态网格,显示所述三维角色对应的个性化脸部模型。
3.根据权利要求2所述的方法,其特征在于,所述基础脸部模型还包括:所述第二骨骼和所述第二网格之间的骨骼蒙皮级联矩阵;
所述根据所述第二骨骼和所述个性化静态网格,显示所述三维角色对应的个性化脸部模型,包括:
使用所述个性化静态网格替换所述第二网格;
使用所述骨骼蒙皮级联矩阵对所述第二骨骼和所述个性化静态网格进行绑定,显示所述三维角色对应的个性化脸部模型。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
通过所述第二骨骼基于所述骨骼蒙皮级联矩阵,控制所述个性化静态网格显示骨骼蒙皮动画。
5.根据权利要求1至4任一所述的方法,其特征在于,所述根据所述个性化中间模型中的所述第一网格生成个性化静态网格,包括:
调用目标网格函数对所述个性化中间模型中的所述第一网格进行处理,生成所述个性化静态网格。
6.根据权利要求1至4任一所述的方法,其特征在于,所述确定所述三维角色对应的中间脸部模型,包括:
在至少两个候选脸部模型中,确定出与所述三维角色的角色类型对应的中间脸部模型,每个所述候选脸部模型对应各自的角色类型。
7.根据权利要求1至4任一所述的方法,其特征在于,所述三维角色是所述服务器或其它帐号控制的角色,所述方法还包括:
当所述三维角色与主控角色之间的距离小于阈值时,执行所述确定所述三维角色对应的中间脸部模型的步骤。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
当所述三维角色处于所述主控角色的视野范围内时,将所述个性化脸部模型缓存至模型对象池;
当所述三维角色移出所述主控角色的视野范围内时,将所述个性化脸部模型在所述模型对象池中进行回收。
9.根据权利要求1至4任一所述的方法,其特征在于,所述骨骼偏移数据是采用数值范围表示的数据,所述数值范围是所述骨骼的偏移范围,每条所述骨骼偏移数据占用半个字节。
10.一种三维角色的个性化脸部模型显示装置,其特征在于,所述装置包括:
接收模块,用于接收服务器发送的三维角色的个性化脸部模型的骨骼偏移数据,所述骨骼偏移数据是对第一脸部模型进行调节生成的;
确定模块,用于确定所述三维角色对应的中间脸部模型,所述第一脸部模型和所述中间脸部模型具有相同的第一骨骼和第一网格,所述第一骨骼为第一数量;所述中间脸部模型是存储在每个客户端本地的脸部模型,且与所述第一脸部模型是相匹配的;
偏移模块,用于根据所述骨骼偏移数据对所述中间脸部模型进行骨骼偏移,得到个性化中间模型;所述个性化中间模型与所述第一脸部模型的骨骼数量相同;所述个性化中间模型包括所述第一骨骼和所述第一网格;
生成模块,用于根据所述个性化中间模型中的所述第一网格生成个性化静态网格;所述个性化静态网格是由所述个性化中间模型的所述第一网格部分复制得到的;
显示模块,用于根据所述三维角色对应的基础脸部模型和所述个性化静态网格,显示所述三维角色对应的所述个性化脸部模型,所述基础脸部模型中的第二骨骼为第二数量,所述第二数量小于所述第一数量;所述基础脸部模型是所述三维角色未经过个性化定制的头部模型。
11.根据权利要求10所述的装置,其特征在于,所述基础脸部模型包括:所述第二骨骼和第二网格以及骨骼蒙皮级联矩阵;
赋值模块,用于将所述第二网格的顶点权重信息赋值至所述个性化静态网格中的对应顶点,所述第二网格和所述个性化静态网格中的顶点数量相同;
所述显示模块,用于根据所述第二骨骼和所述个性化静态网格,显示所述三维角色对应的个性化脸部模型。
12.根据权利要求11所述的装置,其特征在于,所述基础脸部模型还包括:所述第二骨骼和所述第二网格之间的骨骼蒙皮级联矩阵;
替换模块,用于使用所述个性化静态网格替换所述第二网格;
所述显示模块,用于使用所述骨骼蒙皮级联矩阵对所述第二骨骼和所述个性化静态网格进行绑定,显示所述三维角色对应的个性化脸部模型。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括:
控制模块,用于通过所述第二骨骼基于所述骨骼蒙皮级联矩阵,控制所述个性化静态网格显示骨骼蒙皮动画。
14.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一段程序,所述程序由所述处理器加载并执行以实现如权利要求1至9任一所述的三维角色的个性化脸部模型显示方法。
15.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一段程序,所述程序由处理器加载并执行以实现如权利要求1至9任一所述的三维角色的个性化脸部模型显示方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910389912.5A CN110689604B (zh) | 2019-05-10 | 2019-05-10 | 个性化脸部模型显示方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910389912.5A CN110689604B (zh) | 2019-05-10 | 2019-05-10 | 个性化脸部模型显示方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110689604A CN110689604A (zh) | 2020-01-14 |
CN110689604B true CN110689604B (zh) | 2023-03-10 |
Family
ID=69108095
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910389912.5A Active CN110689604B (zh) | 2019-05-10 | 2019-05-10 | 个性化脸部模型显示方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110689604B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111260764B (zh) | 2020-02-04 | 2021-06-25 | 腾讯科技(深圳)有限公司 | 一种制作动画的方法、装置及存储介质 |
CN111383309B (zh) * | 2020-03-06 | 2023-03-17 | 腾讯科技(深圳)有限公司 | 一种骨骼动画驱动方法、装置及存储介质 |
CN111598987B (zh) * | 2020-05-18 | 2024-02-06 | 网易(杭州)网络有限公司 | 虚拟对象的骨骼处理方法、装置、设备和存储介质 |
CN111714885A (zh) * | 2020-06-22 | 2020-09-29 | 网易(杭州)网络有限公司 | 游戏角色模型生成、角色调整方法、装置、设备及介质 |
CN111798550A (zh) * | 2020-07-17 | 2020-10-20 | 网易(杭州)网络有限公司 | 模型表情处理的方法及装置 |
CN112017295B (zh) * | 2020-08-28 | 2024-02-09 | 重庆灵翎互娱科技有限公司 | 一种可调节动态头模型生成方法、终端和计算机存储介质 |
CN112090082A (zh) * | 2020-09-27 | 2020-12-18 | 完美世界(北京)软件科技发展有限公司 | 一种面部骨骼处理方法、装置、电子设备及存储介质 |
CN112657191B (zh) * | 2020-12-23 | 2023-04-28 | 上海米哈游天命科技有限公司 | 一种角色标识显示方法、装置、设备及存储介质 |
CN112619143B (zh) * | 2020-12-23 | 2023-03-21 | 上海米哈游天命科技有限公司 | 一种角色标识显示方法、装置、设备及存储介质 |
CN113350801A (zh) * | 2021-07-20 | 2021-09-07 | 网易(杭州)网络有限公司 | 模型处理方法、装置、存储介质及计算机设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1383102A (zh) * | 2001-04-25 | 2002-12-04 | 中国科学技术大学 | 一种三维人脸动画的制作方法 |
JP2007048151A (ja) * | 2005-08-11 | 2007-02-22 | Tokyo Institute Of Technology | 3次元曲面への物体メッシュモデルの写像方法 |
CN101968892A (zh) * | 2009-07-28 | 2011-02-09 | 上海冰动信息技术有限公司 | 根据一张人脸照片自动调整三维人脸模型的方法 |
CN101968891A (zh) * | 2009-07-28 | 2011-02-09 | 上海冰动信息技术有限公司 | 用于游戏的照片自动生成三维图形系统 |
CN105373658A (zh) * | 2015-11-05 | 2016-03-02 | 中国人民解放军第三军医大学第二附属医院 | 一种基于人颅颌面骨的三维有限元模型的建模方法 |
CN109191570A (zh) * | 2018-09-29 | 2019-01-11 | 网易(杭州)网络有限公司 | 游戏角色脸部模型的调整方法、装置、处理器及终端 |
CN109345932A (zh) * | 2018-08-29 | 2019-02-15 | 中国科学院自动化研究所 | 基于3d打印的医疗模型及其制作方法 |
CN109395390A (zh) * | 2018-10-26 | 2019-03-01 | 网易(杭州)网络有限公司 | 游戏角色脸部模型的处理方法、装置、处理器及终端 |
-
2019
- 2019-05-10 CN CN201910389912.5A patent/CN110689604B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1383102A (zh) * | 2001-04-25 | 2002-12-04 | 中国科学技术大学 | 一种三维人脸动画的制作方法 |
JP2007048151A (ja) * | 2005-08-11 | 2007-02-22 | Tokyo Institute Of Technology | 3次元曲面への物体メッシュモデルの写像方法 |
CN101968892A (zh) * | 2009-07-28 | 2011-02-09 | 上海冰动信息技术有限公司 | 根据一张人脸照片自动调整三维人脸模型的方法 |
CN101968891A (zh) * | 2009-07-28 | 2011-02-09 | 上海冰动信息技术有限公司 | 用于游戏的照片自动生成三维图形系统 |
CN105373658A (zh) * | 2015-11-05 | 2016-03-02 | 中国人民解放军第三军医大学第二附属医院 | 一种基于人颅颌面骨的三维有限元模型的建模方法 |
CN109345932A (zh) * | 2018-08-29 | 2019-02-15 | 中国科学院自动化研究所 | 基于3d打印的医疗模型及其制作方法 |
CN109191570A (zh) * | 2018-09-29 | 2019-01-11 | 网易(杭州)网络有限公司 | 游戏角色脸部模型的调整方法、装置、处理器及终端 |
CN109395390A (zh) * | 2018-10-26 | 2019-03-01 | 网易(杭州)网络有限公司 | 游戏角色脸部模型的处理方法、装置、处理器及终端 |
Non-Patent Citations (1)
Title |
---|
语音驱动的人脸建模与动画技术研究;李皓;《中国博士学位论文全文数据库 信息科技辑》;20120715(第7期);I138-83 * |
Also Published As
Publication number | Publication date |
---|---|
CN110689604A (zh) | 2020-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110689604B (zh) | 个性化脸部模型显示方法、装置、设备及存储介质 | |
CN111701238B (zh) | 虚拟画卷的显示方法、装置、设备及存储介质 | |
US20180276870A1 (en) | System and method for mass-animating characters in animated sequences | |
US20240037839A1 (en) | Image rendering | |
JP2023029984A (ja) | 仮想イメージを生成するための方法、装置、電子機器及び可読記憶媒体 | |
CN114067042A (zh) | 一种图像渲染方法、装置、设备、存储介质及程序产品 | |
CN108305208A (zh) | 一种模型动态分析优化及三维交互处理方法 | |
KR101977893B1 (ko) | 영상컨텐츠 적용 디지털액터의 운용방법 | |
US11645805B2 (en) | Animated faces using texture manipulation | |
CN115512014A (zh) | 训练表情驱动生成模型的方法、表情驱动方法及装置 | |
CN114053696B (zh) | 图像渲染处理方法、装置及电子设备 | |
KR20110045719A (ko) | 애니메이션 제작방법과 이 제작방법을 실행하기 위한 프로그램이 저장된 컴퓨터로 판독할 수 있는 기록매체 및 이를 이용한 온라인상에서의 애니메이션 제작 시스템 | |
CN112889079A (zh) | 用于内容的协同生成的平台与方法 | |
CN113209625B (zh) | 数据处理方法及装置 | |
US8633932B1 (en) | Animation with adjustable detail level | |
US11983819B2 (en) | Methods and systems for deforming a 3D body model based on a 2D image of an adorned subject | |
US11957976B2 (en) | Predicting the appearance of deformable objects in video games | |
CN115719392A (zh) | 虚拟角色生成方法以及装置 | |
CN117710576A (zh) | 虚拟营业厅的处理方法、装置及设备 | |
KR101717777B1 (ko) | 캐릭터 단순화 기법을 적용하는 삼차원 애니메이션 제작방법 | |
CN118015160A (zh) | 生成表情动画的方法、装置、存储介质及电子装置 | |
CN116309966A (zh) | 虚拟对象的变形处理方法、装置、存储介质与电子设备 | |
CN117649471A (zh) | 游戏中的模型动画生成方法及装置、存储介质、电子设备 | |
CN117097919A (zh) | 虚拟角色渲染方法、装置、设备、存储介质和程序产品 | |
CN117853623A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40020891 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |