CN112686978B - 表情资源的加载方法、装置和电子设备 - Google Patents
表情资源的加载方法、装置和电子设备 Download PDFInfo
- Publication number
- CN112686978B CN112686978B CN202110028475.1A CN202110028475A CN112686978B CN 112686978 B CN112686978 B CN 112686978B CN 202110028475 A CN202110028475 A CN 202110028475A CN 112686978 B CN112686978 B CN 112686978B
- Authority
- CN
- China
- Prior art keywords
- expression
- triangular prism
- mixed shape
- shape
- animation
- 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
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明提供了一种表情资源的加载方法、装置和电子设备;其中,该方法包括:获取目标动画中虚拟角色的表情资源;虚拟角色的面部表情由至少一个表情混合形状组合而成;根据虚拟角色的面部表情中的表情混合形状对目标动画的画面影响程度,从表情资源中确定需要加载的表情混合形状;加载从表情资源中确定出的表情混合形状。该方式中,根据表情混合形状对目标动画的画面影响程度,有选择地加载表情混合形状,可以仅加载对目标动画的画面质量影响较大的表情混合形状,无需加载对目标动画的画面影响较小的表情混合形状,在保证了动画画面播放效果的同时,降低了对设备的内存资源和计算资源的消耗,有利于实现高质量面部表情的实时渲染。
Description
技术领域
本发明涉及资源处理技术领域,尤其是涉及一种表情资源的加载方法、装置和电子设备。
背景技术
在影视动画或游戏动画中,虚拟角色的面部表情的渲染效果,对虚拟角色的刻画具有重要作用。相关技术中,通常采用FACS(Facial Action Coding System,面部动作编码系统)提供的混合形状,以及基于该混合形状扩展出的辅助用的混合形状进行线性组合,得到虚拟角色的面部表情。通常,需要将很多种混合形状进行组合,才能得到一个虚拟角色的一种面部表情;当动画画面中的虚拟角色数量较多,或者需要展现高质量或高复杂度的面部表情时,可能需要同时加载数百个混合形状的模型至内存或渲染管线中,消耗的内存资源和计算资源均较高,不利于面部表情的实时渲染。
发明内容
有鉴于此,本发明的目的在于提供一种表情资源的加载方法、装置和电子设备,在保证动画画面播放效果的同时,降低对设备的内存资源和计算资源的消耗。
第一方面,本发明实施例提供了一种表情资源的加载方法,方法应用于终端设备;方法包括:获取目标动画中虚拟角色的表情资源;表情资源包括多个表情混合形状;虚拟角色的面部表情由至少一个表情混合形状组合而成;当播放目标动画时,根据虚拟角色的面部表情中的表情混合形状对目标动画的画面影响程度,从表情资源中确定需要加载的表情混合形状;加载从表情资源中确定出的表情混合形状。
上述根据虚拟角色的面部表情中的表情混合形状对目标动画的画面影响程度,从表情资源中确定需要加载的表情混合形状的步骤,包括:确定虚拟角色的面部表情中的表情混合形状涉及的面部区域;根据表情混合形状涉及的面部区域在目标动画中的可见程度,确定是否从表情资源中加载表情混合形状。
上述根据每种表情混合形状对目标动画的画面影响程度,从表情资源中确定需要加载的表情混合形状的步骤,包括:根据表情混合形状的差异三棱柱对应的面部区域在目标动画中的可见程度,确定是否从表情资源中加载表情混合形状;其中,差异三棱柱用于:指示表情混合形状的三维模型与虚拟角色的静态模型之间的差异;在静态模型下,虚拟角色处于初始表情状态。
上述初始表情状态包括:虚拟角色不具有表情,或者虚拟角色具有预设的标准表情。
上述根据表情混合形状的差异三棱柱对应的面部区域在目标动画中的可见程度,确定是否从表情资源中加载表情混合形状的步骤,包括:确定表情混合形状对应的面部区域在目标动画中是否可见;如果可见,根据表情混合形状的差异三棱柱对应的面部区域在目标动画中的可见程度,确定是否需要加载表情混合形状。
上述确定表情混合形状对应的面部区域在目标动画中是否可见的步骤,包括:如果表情混合形状中存在至少一个差异三棱柱对应的面部区域,在目标动画中的至少一帧图像中可见,且差异三棱柱的体积不为零,确定表情混合形状可见。
上述表情混合形状的差异三棱柱对应的面部区域在目标动画中的可见程度,包括:差异三棱柱对应的面部区域在目标动画的图像中占据的像素数量;上述根据表情混合形状的差异三棱柱对应的面部区域在目标动画中的可见程度,确定是否从表情资源中加载表情混合形状的步骤,包括:确定表情混合形状所属的虚拟角色与虚拟摄像机的距离;根据差异三棱柱对应的面部区域在目标动画的图像中占据的像素数量,确定距离阈值;如果距离小于或等于距离阈值,从表情资源中加载表情混合形状。
上述根据差异三棱柱对应的面部区域在目标动画的图像中占据的像素数量,确定距离阈值的步骤,包括:当表情混合形状中的差异三棱柱对应的面部区域,在目标动画的图像中占据的最大像素数量等于预设的数量阈值时,虚拟角色与虚拟摄像机的距离确定为距离阈值。
上述获取目标动画中虚拟角色的表情资源的步骤之前,方法还包括:根据终端设备的内存资源,确定目标动画的长度;根据长度,从预设动画文件中确定目标动画。
上述获取目标动画中虚拟角色的表情资源的步骤之前,方法还包括:从服务器中获取预设动画文件中虚拟角色的表情资源,以及表情资源对应的资源管理数据;其中,资源管理数据包括:表情混合形状对应的面部区域在动画文件中是否可见、表情混合形状所包含的差异三棱柱对应的面部区域在动画文件中是否可见、以及差异三棱柱对应的面部区域在动画文件的图像中占据的像素数量。
第二方面,本发明实施例提供了一种表情资源的加载方法,方法应用于服务器;方法包括:生成预设动画文件中虚拟角色的表情资源,以及表情资源对应的资源管理数据;其中,表情资源包括多个表情混合形状;虚拟角色的面部表情由至少一个表情混合形状组合而成;资源管理数据包括:表情混合形状对应的面部区域在动画文件中是否可见、表情混合形状所包含的差异三棱柱对应的面部区域在动画文件中是否可见、以及差异三棱柱对应的面部区域在动画文件的图像中占据的像素数量。
上述资源管理数据还包括:差异三棱柱的包围盒以及差异三棱柱的体积;上述生成表情资源对应的资源管理数据的步骤,包括:生成表情混合形状的差异三棱柱,并计算差异三棱柱的体积;生成差异三棱柱的包围盒,将差异三棱柱的包围盒以及差异三棱柱的体积保存为资源管理数据。
上述表情混合形状的三维模型和虚拟角色的静态模型具有相同数量的三角面片,且三维模型和静态模型的三角面片的分布结构相同;上述生成表情混合形状的差异三棱柱的步骤,包括:将表情混合形状的三维模型和静态模型进行坐标对齐处理;逐一将三维模型中的每个三角面片作为第一三角面片,生成第一三角面片对应的差异三棱柱;其中,差异三棱柱由第一三角面片,以及静态模型中与第一三角面片对应的第二三角面片组成。
上述生成表情资源对应的资源管理数据的步骤,包括:针对动画文件中的每一帧图像,确定图像中包含的表情混合形状的差异三棱柱对应的面部区域是否可见,以及差异三棱柱对应的面部区域在图像中占据的像素数量;根据表情混合形状的差异三棱柱对应的面部区域是否可见,确定表情混合形状对应的面部区域是否可见;将差异三棱柱对应的面部区域是否可见、表情混合形状对应的面部区域是否可见、以及差异三棱柱对应的面部区域在图像中占据的像素数量保存为资源管理数据。
上述根据表情混合形状的差异三棱柱对应的面部区域是否可见,确定表情混合形状对应的面部区域是否可见的步骤,包括:如果表情混合形状中存在至少一个差异三棱柱对应的面部区域,在目标动画中的至少一帧图像中可见,且差异三棱柱的体积不为零,确定表情混合形状对应的面部区域可见。
上述资源管理数据还包括:虚拟角色与虚拟摄像机的距离;上述生成表情资源对应的资源管理数据的步骤,包括:针对动画文件中的每一帧图像,计算图像中虚拟角色与虚拟摄像机的距离;将虚拟角色与虚拟摄像机的距离保存为资源管理数据。
第三方面,本发明实施例提供了一种表情资源的加载装置,装置设置于终端设备;装置包括:获取模块,用于获取目标动画中虚拟角色的表情资源;表情资源包括多个表情混合形状;虚拟角色的面部表情由至少一个表情混合形状组合而成;确定模块,用于当播放目标动画时,根据虚拟角色的面部表情中的表情混合形状对目标动画的画面影响程度,从表情资源中确定需要加载的表情混合形状;加载模块,用于加载从表情资源中确定出的表情混合形状。
第四方面,本发明实施例提供了一种表情资源的加载装置,装置应用于服务器;装置包括:生成模块,用于生成预设动画文件中虚拟角色的表情资源,以及表情资源对应的资源管理数据;其中,表情资源包括多个表情混合形状;虚拟角色的面部表情由至少一个表情混合形状组合而成;资源管理数据包括:表情混合形状对应的面部区域在动画文件中是否可见、表情混合形状所包含的差异三棱柱对应的面部区域在动画文件中是否可见、以及差异三棱柱对应的面部区域在动画文件的图像中占据的像素数量。
第五方面,本发明实施例提供了一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述表情资源的加载方法。
第六方面,本发明实施例提供了一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述表情资源的加载方法。
本发明实施例带来了以下有益效果:
上述表情资源的加载方法、装置和电子设备,获取到目标动画中虚拟角色的表情资源后,当播放目标动画时,根据每种表情混合形状对目标动画的画面影响程度,从表情资源中确定需要加载的表情混合形状;然后加载从表情资源中确定出的表情混合形状。该方式中,根据表情混合形状对目标动画的画面影响程度,有选择地加载表情混合形状,可以仅加载对目标动画的画面质量影响较大的表情混合形状,无需加载对目标动画的画面影响较小的表情混合形状,在保证了动画画面播放效果的同时,降低了对设备的内存资源和计算资源的消耗,有利于实现高质量面部表情的实时渲染。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种表情资源的加载方法的流程图;
图2为本发明实施例提供的一种差异三棱柱的示意图;
图3为本发明实施例提供的另一种差异三棱柱的示意图;
图4为本发明实施例提供的在虚拟摄像机的视野范围内,各个对象之间的遮挡关系示意图;
图5为本发明实施例提供的一种虚拟角色面部表情的遮挡关系示意图;
图6为本发明实施例提供的一种表情资源的加载装置的结构示意图;
图7为本发明实施例提供的一种电子设备的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
FACS系统是一种基于面部表情对人类面部运动进行分类的系统。FACS系统确定了每个面部肌肉(单独或与其他肌肉结合)的收缩如何改变面部外观。FACS系统的度量单位是运动单元(Action Unit,简称AU),而不是肌肉。首先,对于一些外观,将不止一个肌肉合并为一个运动单元,因为无法区分它们产生的外观变化。其次,由一条肌肉产生的外观变化有时会分成两个或多个AU,以代表肌肉不同部位的相对独立的动作。在FACS系统中,人脸的解剖学特点,将人脸其划分成若干既相互独立又相互联系的运动单元(Action Unit,简称AU),分析了这些运动单元的运动特征及其所控制的主要区域以及与之相关的表情,并给出了大量的照片说明。FACS系统将许多现实生活中人类的表情进行了分类,它是如今面部表情的肌肉运动的权威参照标准。
目前基于FACS提供的BS(Blend Shapes,混合形状),同时也使用骨骼(Bone)和TBS(Target Blend Shapes,目标混合形状),可以线性组合出不同的表情,该方式已经成为高质量影视和计算机动画的人类表情的最广泛的方法。其中,FACS一般使用66个混合形状,TBS中的混合形状的数量弹性较大,目前高质量的表情动画中,单个角色可能会使用到总共800~1000个混合形状。TBS中的混合形状通常是一些用于线性组合生成绝对目标表情的辅助用表情。在一个混合形状中,将网格的变形版本存储为一系列顶点位置。然后,在动画的每个关键帧中,将这些存储的顶点位置之间插入顶点。使用此这种方法时,大多数情况下都是用目标混合形状创建的,比如用颚骨张开嘴。目标混合形状不是绝对姿势,而是混合在一起的姿势,以创建最终形状和姿势。例如,没有微笑的目标混合形状,而是嘴角朝上,嘴角朝外,脸颊向上,脸颊向外,左右斜视等等目标混合形状。通常,每个目标混合形状由一个控件驱动,在嘴角的情况下,几个目标混合形状由一个控制对象控制。
常见的影视动画是通过上述方式经离线渲染得到的。离线渲染就是在计算出画面时并不显示画面,计算机根据预先定义好的光线、轨迹渲染图片,渲染完成后再将图片连续播放,实现动画效果。其主要优点是渲染时可以不考虑时间对渲染效果的影响,缺点是渲染画面播放时用户不能实时控制物体和场景。而实时渲染是指计算机边计算画面边将其输出显示。实时渲染的优点是可以实时操控(如实现三维游戏、军事仿真、灾难模拟等),缺点是要受系统的负荷能力的限制,必要时要牺牲画面效果(模型的精细、光影的应用、贴图的精细程度)来满足实时系统的要求。
在影视等离线渲染制作过程中,因为通常使用渲染集群,算力、内存和存储都有丰富的硬件资源,而且没有实时性方面的要求,美术资源量较高并没有太大的问题。但是在游戏等实时渲染场景下,由于PC(Personal Computer,个人计算机)或手机的处理能力有限,内存容量有限,高质量的面部表情动画序列中,每个角色都需要将数百个模型加载到内存和渲染管线中,这样在高质量的表情动画实时渲染时,加载数百乃至更多BS会带来严重的资源加载和处理的问题。相关技术中,可以比较BS和标准脸模型,只加载二者有差异的部分,但该方式不能从根本上解决问题,在加载表情资源的过程中,消耗的存储资源和计算资源依然较高,不利于面部表情的实时渲染。
基于上述问题,本发明实施例提供的一种表情资源的加载方法、装置和电子设备,可以应用于动画场景中对虚拟角色的表情渲染,尤其是可以应用于个人电脑、手机、平板设备等硬件资源有限的设备上的表情渲染。
参见图1所示的一种表情资源的加载方法的流程图,该方法应用于终端设备;该方法包括:
步骤S102,获取目标动画中虚拟角色的表情资源;该表情资源包括多个表情混合形状;虚拟角色的面部表情由至少一个表情混合形状组合而成;
该目标动画通常包括一帧或多帧连续的动画图像;该目标动画可以是一个完整的动画文件,即,基于一个完整的动画文件执行步骤S102-S106,把动画文件所需的表情混合形状全部加载至内存;该目标动画也可以是一个动画文件中的一个片段,该片段的长度可以预先设置,如2秒,针对该目标动画,加载该目标动画所需的表情混合形状全部加载至内存;具体可以根据终端设备的内存资源设置目标动画的长度。
目标动画中的虚拟角色通常包括虚拟的人脸或动物脸;表情资源中包括的表情混合形状可以包括上述FACS系统提供的混合形状,也可以包括TBS提供的混合形状。目标动画中通常可能出现一个或多个虚拟角色,其中的一个虚拟角色可能会出现一种或多种面部表情;一个虚拟角色的一种面部表情,通常由至少一个表情混合形状组合而成;如果该面部表情由多个表情混合形状组合而成,则需要预先设置每个表情混合形状的权重,然后基于该权重对多个表情混合形状进行线性组合,得到一种面部表情。该面部表情也可以称为绝对目标表情,该绝对目标表情包括虚拟角色在某一个时刻的整个面部姿势。
步骤S104,当播放目标动画时,根据虚拟角色的面部表情中的表情混合形状对目标动画的画面影响程度,从表情资源中确定需要加载的表情混合形状;
终端设备需要从服务器中获取动画文件,以及动画文件的表情资源等数据,然后将这些数据存储至硬盘、存储卡等存储装置中;然后,在播放目标动画时,需要从存储装置中加载响应的数据至内存,再通过内存对数据进行处理后,播放目标动画。
表情混合形状对目标动画的画面影响程度,可以理解为表情混合形状对应的面部区域在目标动画中是否可见,或者表情混合形状对应的面部区域在目标动画中的显示区域的大小。其中,如果表情混合形状对应的面部区域在目标动画中不可见,则该表情混合形状对目标动画的画面影响程度几乎为零,即对画面没有影响;如果表情混合形状对应的面部区域在目标动画中的显示区域很小,则该表情混合形状对目标动画的画面影响程度也较小,如果表情混合形状对应的面部区域在目标动画中的显示区域较大,则该表情混合形状对目标动画的画面影响程度也较大。一种具体的实现方式中,如果虚拟角色的面部表情中包括多个表情混合形状,可以针对每个表情混合形状,根据该表情混合形状对目标动画的画面影响程度,确定是否需要从表情资源中加载该表情混合形状。
在实际实现时,如果目标动画包括多帧图像,可以针对每帧图像,确定该图像中每个虚拟角色的面部表情所涉及的表情混合形状对应的面部区域的画面影响程度。作为示例,如果一个虚拟角色的面部无遮挡的出现的图像中,且该虚拟角色的面部在图像中占据的显示区域较大,即该虚拟角色距离虚拟摄像头较近,则该虚拟角色的面部表情所涉及的表情混合形状的画面影响程度就较高;但是,如果该虚拟角色距离虚拟摄像头较远,远到虚拟角色的整个面部占据的显示区域可能就几个像素,此时,该虚拟角色的面部表情所涉及的表情混合形状的画面影响程度就比较低;另外,如果该虚拟角色的面部被遮挡或部分遮挡,若某个表情混合形状所涉及的面部区域完全被遮挡,则该表情混合形状的画面影响程度就比较低,甚至对画面没有影响。
当某个表情混合形状的画面影响程度比较低时,加载该表情混合形状并播放目标动画时,该表情混合形状对目标动画的画面效果影响非常小,甚至没有影响,但依然需要占用一定的内存加载该表情混合形状并做渲染处理;基于此,本实施例中根据表情混合形状对目标动画的画面影响程度,确定是否加载该表情混合形状至内存。具体而言,如果某个表情混合形状在目标动画中所有帧的图像中的画面影响程度均较低,则不加载该表情混合形状;如果某个表情混合形状在目标动画中至少一部分帧的图像中的画面影响程度较高,则将该表情混合形状确定为需要加载的表情混合形状,进而加载该表情混合形状。
步骤S106,加载从表情资源中确定出的表情混合形状。
通过上述步骤后,目标动画所涉及的表情资源中,剔除了对目标动画的画面效果没有影响或影响很小的表情混合形状,仅需要加载一部分表情混合形状。
上述方式中,获取到目标动画中虚拟角色的表情资源后,当播放目标动画时,根据表情混合形状对目标动画的画面影响程度,从表情资源中确定需要加载的表情混合形状;然后加载从表情资源中确定出的表情混合形状。该方式中,根据表情混合形状对目标动画的画面影响程度,有选择地加载表情混合形状,可以仅加载对目标动画的画面质量影响较大的表情混合形状,无需加载对目标动画的画面影响较小的表情混合形状,在保证了动画画面播放效果的同时,降低了对设备的内存资源和计算资源的消耗,有利于实现高质量面部表情的实时渲染。
一种具体的实现方式中,可以先确定所述虚拟角色的面部表情中的表情混合形状涉及的面部区域;然后再根据所述表情混合形状涉及的面部区域在所述目标动画中的可见程度,确定是否从所述表情资源中加载所述表情混合形状。在实际实现时,可以针对虚拟角色的面部表情中的每个表情混合形状,根据该表情混合形状涉及的面部区域在目标动画中的可见程度,确定是否从表情资源中加载所述表情混合形状。其中,一个表情混合形状通常涉及虚拟角色的面部的至少一部分区域,或者也可能设置虚拟角色的面部的全部区域。例如,“斜视”对应的表情混合形状,所涉及的面部区域包括眼部,具体而言,该面部区域包括眼珠、眼皮、眼睑等;再如,“微笑”对应的表情混合形状,所涉及的面部区域可能包括嘴部、下巴、脸颊等部位;再如,对于“大笑”“愤怒”等比较夸张的表情,所涉及的面部区域就可能包括虚拟角色的全部面部区域。
表情混合形状涉及的面部区域在目标动画中的可见程度,可以包括面部区域在目标动画中不可见、部分可见和全部可见。例如,如果某个表情混合形状涉及的面部区域完全被遮挡,则该面部区域在目标动画中不可见,此时,可以不加载该表情混合形状;如果某个表情混合形状涉及的面部区域部分可见,此时可以加载该表情混合形状。另外,可能还需要考虑面部区域的可见部分的面积或所占像素等因素,以便具体确定是否加载该表情混合形状。该方式中,表情混合形状的面部区域的可见程度,可以较为直观地代表表情混合形状对目标动画的画面影响程度,可以较为准确地筛选对目标动画的画面质量影响较大的表情混合形状,无需加载对目标动画的画面影响较小的表情混合形状,进一步降低对设备的内存资源和计算资源的消耗,有利于实现高质量面部表情的实时渲染。
不论是FACS系统还是TBS中的表情混合形状,都是基于变形原理实现的动画表情。每个表情混合形状的三维模型,与虚拟角色的静态模型相比,均存在一定的形变,该形变可以用差异三棱柱来表征。表情混合形状的三维模型是基于静态模型发生形变得到的,因而表情混合形状的三维模型和角色的静态模型具有相同的顶点数量,边数量,三角面片数量,拓扑结构,两个模型的点、边和三角面片具有一一对应的关系。基于此,表情混合形状的三维模型中的任一三角面片,与静态模型中与该三角面片对应的三角面片即可组成一个三棱柱,该三棱柱即上述差异三棱柱。上述的静态模型,也可以称为虚拟角色的标准脸模型,在该静态模型下,该虚拟角色处于初始表情状态;该初始表情状态可以有两种形式,一种形式为虚拟角色不具有表情,也可以称为面无表情的表情、标准脸或扑克脸;另一种形式为虚拟角色具有预设的标准表情,该标准表情可以具有较小幅度的表型,如小幅度的微笑等;该标准表情也可以不具有表情。
差异三棱柱可以用于指示表情混合形状的三维模型与虚拟角色的静态模型之间的差异;因而,表情混合形状对目标动画的画面影响程度,可以通过表情混合形状的差异三棱柱对应的面部区域,在目标动画中的可见程度确定;差异三棱柱对应的面部区域的可见程度越高,则该表情混合形状对静态模型的形变效果对画面的影响程度就越大,因而该表情混合形状对动画画面效果的影响就越大。基于上述,可以针对每种表情混合形状,根据该表情混合形状的差异三棱柱对应的面部区域在目标动画中的可见程度,确定是否从表情资源中加载该表情混合形状。
这里需要说明的是,差异三棱柱本身不是真实显示在动画画面上的,显示的是差异三棱柱对应的面部区域,也可以理解为差异三棱柱中的三角面片对应的面部区域。差异三棱柱对应的面部区域在所述目标动画中的可见程度,可以理解为差异三棱柱对应的三角面片是否被遮挡,或者差异三棱柱对应的三角面片在画面上占据的显示区域的大小。表情混合形状的差异三棱柱对应的面部区域在目标动画中的可见程度越大,则说明该表情混合形状对目标动画的画面影响程度越大。
通常,一个表情混合形状具有多个差异三棱柱,通过差异三棱柱确定表情混合形状对目标动画的画面影响程度,具有较强的灵活性,同时有利于更加精确地判断表情混合形状的画面影响程度,在降低表情混合形状的加载数据量时,使得画面显示依然具有较高的质量。
在一个具体的实现方式中,基于差异三棱柱确定是否加载表情混合形式时,可以通过下述步骤20和步骤21实现:
步骤20,确定表情混合形状对应的面部区域在目标动画中是否可见;
对于终端设备而言,在从服务器获取表情资源的同时,还可以获取到基于该表情资源的资源管理数据,该资源管理数据中可以保存有相关数据,用于指示每帧图像中的各个表情混合形状对应的面部区域是否可见;通常,如果某个表情混合形状对应的面前区域在一帧图像中可见,则可以认为该表情混合形状对应的面部区域在目标动画中是否可见。因而终端设备可以直接基于这些资源管理数据确定表情混合形状对应的面部区域在所述目标动画中是否可见。
另外一种方式中,可以基于差异三棱柱确定表情混合形状在目标动画中是否可见。如果表情混合形状中存在至少一个差异三棱柱对应的面部区域,在目标动画中的至少一帧图像中可见,且该差异三棱柱的体积不为零,确定表情混合形状可见。表情资源的资源管理数据还可以保存有针对每帧图像,图像中各个表情混合形状的差异三棱柱对应的面部区域是否可见;如果某一表情混合形状仅有一个差异三棱柱对应的面部区域在一帧图像中可见,且该仅有的一个差异三棱柱的体积不为零,也可以认为该表情混合形状可见。只有在目标动画的所有帧图像中,表情混合图像的所有差异三棱柱都不可见,才可以认为该表情混合形状不可见。
步骤21,如果可见,根据表情混合形状的差异三棱柱对应的面部区域在目标动画中的可见程度,确定是否需要加载表情混合形状。
当表情混合形状对应的面部区域在目标动画中可见时,可以认为表情混合形状没有被完全遮挡,在该表情混合形状没有被完全遮挡的情况下,再根据表情混合形状的差异三棱柱对应的面部区域在目标动画中的可见程度,确定是否加载表情混合形状。
上述步骤20和21仅作为一种具体的实现方式,其中的步骤20,可以理解为一个前提条件,该前提条件可以执行也可以不执行;即在确定是否从表情资源中加载某个表情混合形状时,可以依次执行步骤20和步骤21,也可以不执行步骤20,直接执行步骤21中根据表情混合形状的差异三棱柱对应的面部区域在目标动画中的可见程度,确定是否需要加载表情混合形状的步骤。
具体地,表情混合形状的差异三棱柱对应的面部区域在目标动画中的可见程度,包括:差异三棱柱对应的面部区域在目标动画的图像中占据的像素数量;可以理解,像素数量越多,差异三棱柱对应的面部区域也就越大,差异三棱柱对应的面部区域在目标动画中的可见程度就越高。
对于某一虚拟角色而言,该虚拟角色距离虚拟摄像机越近,该虚拟角色的面部区域通常就越大,虚拟角色距离虚拟摄像机越远,该虚拟角色的面部区域通常就越小,面部区域小到一定程度时,该虚拟角色的面部表情对画面影响也就很微小了,该虚拟角色的面部表情所涉及的表情混合形状也就没有必要加载了,基于此,可以通过下述步骤30-34,确定是否加载表情混合形状:
步骤30,确定表情混合形状所属的虚拟角色与虚拟摄像机的距离;可以针对目标动画中的每帧图像,计算该图像中出现的虚拟角色与该图像下的虚拟摄像机的实时位置的距离。终端设备可以实时计算,也可以从上述资源管理数据中获取。
步骤32,根据差异三棱柱对应的面部区域在目标动画的图像中占据的像素数量,确定距离阈值;
当虚拟角色不动时,虚拟摄像机在逐渐远离该虚拟角色时,该虚拟角色在画面中占据的像素数量不断变少,少到一定程度时,该虚拟角色的表情对画面不再产生影响。同理,本实施例以差异三棱柱为基准,当表情混合形状中的差异三棱柱对应的面部区域,在目标动画的图像中占据的最大像素数量等于预设的数量阈值时,虚拟角色与虚拟摄像机的距离确定为距离阈值。
作为示例,当某一虚拟角色的面部不动时,虚拟摄像机在逐渐远离该虚拟角色时,该虚拟角色的面部表情所涉及的表情混合形状中的差异三棱柱对应的面部区域,其区域面积在不断变小;在一个表情混合形状中,距离虚拟摄像机最近的差异三棱柱往往占据最大的像素数量,该最大像素数量也小到一定程度时,则可以认为该表情混合形状对目标动画的影响程度可以忽略不计了,此时无需加载该表情混合形状。上述数量阈值可以预先设置,例如设置9个像素数,或其他像素数。
步骤34,如果虚拟角色与虚拟摄像机的距离小于或等于距离阈值,从表情资源中加载表情混合形状。
如果虚拟角色与虚拟摄像机的距离小于或等于距离阈值,则说明虚拟摄像机距离虚拟角色的距离较近,该虚拟角色中的表情混合形状中的差异三棱柱对应的面部区域的区域面积较大,区域面积的像素数量通常大于上述数量阈值,此时,则需要加载该表情混合形状。
上述方式中,基于差异三棱柱对应的面部区域占据的像素数量,确定摄像机距离阈值,当表情混合形状所属的虚拟角色与摄像机的距离大于该距离阈值时,则不再加载该表情混合形状,该方式可以在不损失最终画质或较少损失的情况下,可以减少计算量和内存用量,实现使用受限的硬件资源,比如一般或较差的PC或手机上,实现高质量的面部表情动画实时渲染。
另外,终端设备在实时处理动画文件的过程中,可以根据动画文件的长度、终端设备当前的内存资源等参数,采用多种策略处理该动画文件。在上述实施例中的目标动画,可以理解为一个完整的动画文件中的一部分。在加载表情资源之前,可以根据终端设备的内存资源,确定目标动画的长度;根据该长度,再从预设动画文件中确定目标动画。
通常,动画文件是一帧一帧地播放的,当终端设备的内存资源较为紧张时,可以将一帧划分为一个目标动画,基于该目标动画,执行上述实施例中的相关步骤,从而将该目标动画所需要加载的表情混合形状加载至内存。在播放当前帧的同时,再通关上述实施例中的步骤加载下一帧用到的表情资源,以此类推。
另一种方式中,上述目标动画的长度可以设置的较长一些,例如,2秒,在开始播放动画文件时,终端设备首先加载前2秒的目标动画用到的表情资源,然后播放前2秒的目标动画。在播放前2秒的目标动画时,再加载第3和第4秒的目标动画用到的表情资源,依次类推。该方式适用于内存资源较为充裕的情况。
还有一种方式,当内存资源非常充足时,可以将完整的动画文件作为一个目标动画,此时,将该动画文件做需要加载的所有的表情资源一起加载至内存中。
上述三种加载方式,可以根据终端设备的内存资源灵活选择,提高了资源加载的灵活性。
在游戏场景中,上述动画文件也可以称为场景动画或过场动画,在游戏中通常用于场景切换、交待剧情,包含了整个场景,以及场景中所含有的所有对象(包括角色)的整体动画形式。通常游戏中使用美术人员预先编辑好的场景位置,摄像机轨迹,对象走位,表情等,但是主角个性化的外观一般可以在场景动画中得到完整表现。
上述实施例中有所提及,终端设备在确定需要加载的表情混合形状时,用到的一部分数据可以从资源管理数据中获得,该资源管理数据由服务器提供。该资源管理数据与表情资源、动画文件一起保存在服务器中。因此,终端设备可以从服务器中获取预设动画文件中虚拟角色的表情资源,以及表情资源对应的资源管理数据;该资源管理数据包括:表情混合形状对应的面部区域在动画文件中是否可见、表情混合形状所包含的差异三棱柱对应的面部区域在动画文件中是否可见、以及差异三棱柱对应的面部区域在动画文件的图像中占据的像素数量。具体的实现方式中,上述资源管理数据可以包括:每个表情混合形状对应的面部区域在动画文件中是否可见、每个表情混合形状所包含的差异三棱柱对应的面部区域在动画文件中是否可见、以及每个差异三棱柱对应的面部区域在动画文件的图像中占据的像素数量。
在实际实现时,可以针对动画文件中的每帧图像,计算上述资源管理数据,基于此,上述每个表情混合形状对应的面部区域在动画文件中是否可见,具体可以包括每个表情混合形状对应的面部区域在每帧图像中是否可见;上述每个表情混合形状所包含的差异三棱柱对应的面部区域在动画文件中是否可见,具体可以包括每个表情混合形状所包含的差异三棱柱对应的面部区域在每帧图像中是否可见;上述每个差异三棱柱对应的面部区域在动画文件的图像中占据的像素数量,具体可以包括每个差异三棱柱对应的面部区域在每帧图像中占据的像素数量。
通过从服务器获取上述资源管理数据,终端设备可以直接使用,无需实时计算,即可实现对表情混合形状的选择性加载,降低了内存压力和计算压力,有利于动画文件的高质量、流畅播放。
总体而言,本实施例的关键是表情混合形状Blendshape的选择和调度,根据Blendshape的特点,选取合适的评估算法,计算每一个Blendshape对最终画面的影响,从而决定将哪些BlendShape调入内存,哪些不进行处理,达到减少内存使用量以及计算量的效果,在有限的硬件条件下,实时渲染出高质量的面部表情动画。具体而言,本实施例中,基于运行时虚拟角色的位置、摄像机位置、角色表情、场景遮挡等信息,计算Blendshape对最终画面的影响,不处理不影响画面或对画面影响较小的Bendshape,从而达到节省资源,降低运行硬件的需求的目的。
以游戏场景中的动画为例,对事先编辑好的,包含场景、角色、动作等描述一段实时渲染动画,如游戏内常用的过场动画,QTE(Quick Time Events,快速点击反应事件)动画等,预先计算出每一帧如下数据:
每个角色使用到的Blendshape;
通过一般的渲染遮挡剔除算法计算每个Blendshape在画面上是否可见;
通过一般的渲染遮挡剔除算法计算每个Blendshape与静态模型的差异三棱柱在画面上是否可见;
每个Blendshape的所有差异三棱柱在当前画面上的像素数。
把上述这些数据存在一个单独的文件里,做为该段动画的资源管理附加数据。在游戏加载动画时,不需要加载角色的所有表情数据,只需要根据这些数据,预先加载将来一段时间用到的,可见的,差异可见的,差异部分大于一定像素的Blendshape,并且可以做到在不损失画面质量的情况下,在动画渲染过程中逐步的按需要提前一段时间加载必要的资源。根据运行时的硬件配置情况,该方法可以进行参数化配置,满足不同条件硬件下动画流畅渲染的需求。一般情况下,可以节省加载资源为不使用该方法的十分之一甚至更多,在更低配置的机器上流畅渲染高质量表情动画。
下述实施例从服务器的角度描述上述表情资源的加载方法。该表情资源的加载方法应用于服务器;该方法包括如下步骤40:
步骤40,生成预设动画文件中虚拟角色的表情资源,以及表情资源对应的资源管理数据;其中,表情资源包括多个表情混合形状;虚拟角色的面部表情由至少一个表情混合形状组合而成;上述资源管理数据包括:表情混合形状对应的面部区域在动画文件中是否可见、表情混合形状所包含的差异三棱柱对应的面部区域在动画文件中是否可见、以及差异三棱柱对应的面部区域在动画文件的图像中占据的像素数量。
动画文件在制作完成后,通过服务器即可生成动画文件中各个虚拟角色用到的表情资源,以及该表情资源对应的资源管理数据;该资源管理数据与表情资源、动画文件一起保存在服务器中,终端设备可以一同获得,并保存在终端设备的存储装置中。表情资源以及资源管理数据的相关描述可以参考前述实施例。
通过服务器提供上述资源管理数据,终端设备可以直接使用,无需实时计算,即可根据表情混合形状对目标动画的画面影响程度,有选择地加载表情混合形状,可以仅加载对目标动画的画面质量影响较大的表情混合形状,无需加载对目标动画的画面影响较小的表情混合形状,在保证了动画画面播放效果的同时,降低了对设备的内存资源和计算资源的消耗,有利于实现高质量面部表情的实时渲染,有利于动画文件的高质量、流畅播放。
服务器在生成上述资源管理数据的过程中,通常需要首先计算每个表情混合形状的差异三棱柱,基于此,上述资源管理数据还包括:差异三棱柱的包围盒以及差异三棱柱的体积;首先,生成表情混合形状的差异三棱柱,并计算所述差异三棱柱的体积;然后生成差异三棱柱的包围盒,将差异三棱柱的包围盒以及所述差异三棱柱的体积保存为所述资源管理数据。一种具体的实现方式中,可以针对动画文件中包含的每个表情混合形状,生成表情混合形状的差异三棱柱,并计算差异三棱柱的体积;然后生成每个差异三棱柱的包围盒,将每个差异三棱柱的包围盒以及差异三棱柱的体积保存为资源管理数据。
由前述实施例可知,表情混合形状的三维模型和虚拟角色的静态模型具有相同数量的三角面片,且三维模型和静态模型的三角面片的分布结构相同;即,表情混合形状的三维模型和虚拟角色的静态模型具有相同的顶点数量,边数量,三角面片数量,拓扑结构,两个模型的点、边和三角面片具有一一对应的关系。为了保证差异三棱柱的准确性,在生成表情混合形状的差异三棱柱时,首先需要将表情混合形状的三维模型和静态模型进行坐标对齐处理。这里表情混合形状的三维模型和静态模型通常指的是头部模型,头部模型作为子模型需要连接到身体模型,因此,所有的头部模型都是需要严格对齐的,否则在身体模型的脖子部位会出现缝隙。因此,同一个角色的所有表情混合形状的三维模型,以及静态模型都在局部坐标系里严格对齐。
表情混合形状的三维模型和静态模型进行坐标对齐处理后,逐一将三维模型中的每个三角面片作为第一三角面片,生成第一三角面片对应的差异三棱柱;其中,差异三棱柱由第一三角面片,以及静态模型中与第一三角面片对应的第二三角面片组成。这样,表情混合形状的三维模型中的每个三角面片,都对应一个差异三棱柱,如果该三角面片相对于静态模型而言没有发生位移或形变,则该三角面片对应的差异三棱柱的体积就是零;如果发生了位移或形变,则该三角面片对应的差异三棱柱的体积就大于零,该差异三棱柱指示了表情混合形状在该位置发生了形变。
图2作为一个差异三棱柱的示例,第一三角面片和第二三角面片相应顶点进行连续,如图2中的虚线,即可得到差异三棱柱。另外,第一三角面片和第二三角面片之间可能有穿插,此时,则需要交换对应的顶点构建差异三棱柱。图3作为一个示例,第一三角面片为ABC1,第二三角面片为A1B1C,第一三角面片和第二三角面片发生了穿插,为了构建差异三棱柱,需要将点C和点C1的位置进行交换,即可得到ABC和A1B1C1两个相互不存在穿插的三角面片,再连接相应的定点即可构建差异三棱柱。
差异三棱柱的体积可以通过下述方式计算,差异三棱柱可以视为五面体,将该五面体划分为三个四面体,分别计算每个四面体的体积,再求和即可得到五面体的体积。针对某一四面体,假设该四面体过一个定点的三个向量分别为根据混合积的定义,该四面体体积公式为:该公式展开后可以得到行列式形式的体积公式:
其中,(x1,y1,z1)、(x2,y2,z2)、(x3,y3,z3)、(x4,y4,z4)分别为四面体的四个顶点的顶点坐标。
生成表情混合形状的差异三棱柱之后,为了提高计算效率,可以针对每个差异三棱柱,生成该差异三棱柱的包围盒,该包围盒也可以称为AABB包围盒。由于不同的差异三棱柱的面的朝向都不相同,后续在差异三棱柱参与计算时,计算就较为复杂;而包围盒是把差异三棱柱包围在里面的最小长方体,长方体的六个面与坐标轴对齐,包围盒参与计算较为简单,从而可以提高计算效率。
进一步地,在生成表情资源对应的资源管理数据时,还需要通过下述步骤50-步骤54计算相关数据:
步骤50,针对动画文件中的每一帧图像,确定图像中包含的表情混合形状的差异三棱柱对应的面部区域是否可见,以及差异三棱柱对应的面部区域在图像中占据的像素数量;具体的,可以针对图像中包含的每个表情混合形状,确定该表情混合形状的差异三棱柱对应的面部区域是否可见,以及差异三棱柱对应的面部区域在图像中占据的像素数量。
其中,表情混合形状的差异三棱柱对应的面部区域可见,可以理解为图像中显示有表情混合形状的差异三棱柱对应的面部区域的全部区域或一部分区域;此时,异三棱柱对应的面部区域在图像中占据的像素数量大于零。表情混合形状的差异三棱柱对应的面部区域不可见,可以理解为表情混合形状的差异三棱柱对应的面部区域在图像中不显示;此时,异三棱柱对应的面部区域在图像中占据的像素数量等于零。
确定差异三棱柱对应的面部区域是否可见时,可以基于虚拟摄像机的位置,计算动画图像的视野范围,以及在该视野范围内对象之间的遮挡关系,图4示出了在虚拟摄像机的视野范围内,各个对象之间的遮挡关系示意图。具体可以通过相关技术中的遮挡剔除方案实现。需要说明的是,在本实施例中,以差异三棱柱为基准确定遮挡关系,相对于使用虚拟角色模型或头部模型确定遮挡关系,可以得到更加精确优化的结果。
图5示出了一种虚拟角色面部表情的遮挡关系示意图;该动画图像中包括多个虚拟角色,第二排左数第三个的虚拟角色,如白色方框所示,该虚拟角色的面部被完全遮挡,该虚拟角色的差异三棱柱均不可见,因而在加载表情混合形状时,无需加载该虚拟角色使用的表情混合形状。
步骤52,根据表情混合形状的差异三棱柱对应的面部区域是否可见,确定表情混合形状对应的面部区域是否可见;
表情混合形状通常包括多个差异三棱柱,只要有其中一个差异三棱柱对应的面部区域可见,且该可见的差异三棱柱的体积不为零,即可认为该表情混合形状可见。因而步骤52具体可以通过下述步骤实现:如果表情混合形状中存在至少一个差异三棱柱对应的面部区域,在目标动画中的至少一帧图像中可见,且差异三棱柱的体积不为零,确定表情混合形状对应的面部区域可见。
步骤54,将差异三棱柱对应的面部区域是否可见、表情混合形状对应的面部区域是否可见、以及差异三棱柱对应的面部区域在图像中占据的像素数量保存为资源管理数据。
该资源管理数据中,可以针对每帧图像,存储有该图像中差异三棱柱对应的面部区域是否可见、表情混合形状对应的面部区域是否可见、以及差异三棱柱对应的面部区域在图像中占据的像素数量这些数据。用于终端设备基于这些数据对表情混合形状进行选择性的加载,降低终端设备的内存压力和运算压力。
另外,上述资源管理数据还包括:虚拟角色与虚拟摄像机的距离;具体的,针对动画文件中的每一帧动画图像,计算动画图像中虚拟角色与虚拟摄像机的距离;将虚拟角色与虚拟摄像机的距离保存为资源管理数据。
除了资源管理数据以外,服务器还需要生成虚拟角色的表情资源。该表情资源可以包括下述三类数据:
第一类,动画文件中使用到的,权重不为零的表情混合形状的集合;不论表情混合形状在动画文件中是否可见,只要某个虚拟角色的面部表情使用到了该表情混合形状,则该表情混合形状保存在上述集合中。其中,权重不为零的表情混合形状,就可以理解为动画文件中使用到的表情混合形状;对于某一面部表情而言,由多种表情混合形状加权线性组合而成,权重大于零的表情混合形状对于面部表情就有一定的贡献。
第二类,从动画文件的第一帧开始,指定时间长度的目标动画使用到的,权重不为零的表情混合形状的子集合。该指定时间长度可以为2秒,或其他时间段。该子集合可以用于终端设备分段加载表情资源的情况。
第三类,从动画文件的第一帧开始,指定时间长度的目标动画;该目标动画同样用于终端设备分段加载的情况,在分段加载的过程中,在播放当前目标动画的过程中,加载下一个目标动画,以及下一个目标动画对应的表情混合形状。
通过上述方式,本实施例可以在不损失最终画面质量的情况将内存使用量减少为原来的二分之一甚至更少;如果损失些许画面,可以将内存使用量减少为原来的五分之一甚至更少。实现在电脑或手机上使用有限的硬件资源,实时渲染高质量表情动画的效果。
对应于上述方法实施例,参见图6所示的一种表情资源的加载装置的结构示意图,该装置设置于终端设备;该装置包括:
获取模块60,用于获取目标动画中虚拟角色的表情资源;表情资源包括多个表情混合形状;虚拟角色的面部表情由至少一个表情混合形状组合而成;
确定模块62,用于当播放目标动画时,根据虚拟角色的面部表情中的表情混合形状对目标动画的画面影响程度,从表情资源中确定需要加载的表情混合形状;
加载模块64,用于加载从表情资源中确定出的表情混合形状。
上述方式中,获取到目标动画中虚拟角色的表情资源后,当播放目标动画时,根据每种表情混合形状对目标动画的画面影响程度,从表情资源中确定需要加载的表情混合形状;然后加载从表情资源中确定出的表情混合形状。该方式中,根据表情混合形状对目标动画的画面影响程度,有选择地加载表情混合形状,可以仅加载对目标动画的画面质量影响较大的表情混合形状,无需加载对目标动画的画面影响较小的表情混合形状,在保证了动画画面播放效果的同时,降低了对设备的内存资源和计算资源的消耗,有利于实现高质量面部表情的实时渲染。
上述确定模块,还用于:确定虚拟角色的面部表情中的表情混合形状涉及的面部区域;根据表情混合形状涉及的面部区域在目标动画中的可见程度,确定是否从表情资源中加载表情混合形状。
上述确定模块,还用于:根据表情混合形状的差异三棱柱对应的面部区域在目标动画中的可见程度,确定是否从表情资源中加载表情混合形状;其中,差异三棱柱用于:指示表情混合形状的三维模型与虚拟角色的静态模型之间的差异;在静态模型下,虚拟角色处于初始表情状态。
上述初始表情状态包括:虚拟角色不具有表情,或者虚拟角色具有预设的标准表情。
上述确定模块,还用于:确定表情混合形状对应的面部区域在目标动画中是否可见;如果可见,根据表情混合形状的差异三棱柱对应的面部区域在目标动画中的可见程度,确定是否需要加载表情混合形状。
上述确定模块,还用于:如果表情混合形状中存在至少一个差异三棱柱对应的面部区域,在目标动画中的至少一帧图像中可见,且差异三棱柱的体积不为零,确定表情混合形状可见。
上述表情混合形状的差异三棱柱对应的面部区域在目标动画中的可见程度,包括:差异三棱柱对应的面部区域在目标动画的图像中占据的像素数量;上述确定模块,还用于:确定表情混合形状所属的虚拟角色与虚拟摄像机的距离;根据差异三棱柱对应的面部区域在目标动画的图像中占据的像素数量,确定距离阈值;如果距离小于或等于距离阈值,从表情资源中加载表情混合形状。
上述确定模块,还用于:当表情混合形状中的差异三棱柱对应的面部区域,在目标动画的图像中占据的最大像素数量等于预设的数量阈值时,虚拟角色与虚拟摄像机的距离确定为距离阈值。
上述装置还包括目标动画确定模块,用于:根据终端设备的内存资源,确定目标动画的长度;根据长度,从预设动画文件中确定目标动画。
上述装置还包括:数据获取模块,用于:从服务器中获取预设动画文件中虚拟角色的表情资源,以及表情资源对应的资源管理数据;其中,资源管理数据包括:表情混合形状对应的面部区域在动画文件中是否可见、表情混合形状所包含的差异三棱柱对应的面部区域在动画文件中是否可见、以及差异三棱柱对应的面部区域在动画文件的图像中占据的像素数量。
本实施例还提供一种表情资源的加载装置,该装置应用于服务器;该装置包括:
生成模块,用于生成预设动画文件中虚拟角色的表情资源,以及表情资源对应的资源管理数据;其中,表情资源包括多个表情混合形状;虚拟角色的面部表情由至少一个表情混合形状组合而成;
资源管理数据包括:表情混合形状对应的面部区域在动画文件中是否可见、表情混合形状所包含的差异三棱柱对应的面部区域在动画文件中是否可见、以及差异三棱柱对应的面部区域在动画文件的图像中占据的像素数量。
上述资源管理数据还包括:每个差异三棱柱的包围盒以及差异三棱柱的体积;上述生成模块,还用于:生成表情混合形状的差异三棱柱,并计算差异三棱柱的体积;生成差异三棱柱的包围盒,将差异三棱柱的包围盒以及差异三棱柱的体积保存为资源管理数据。
上述表情混合形状的三维模型和虚拟角色的静态模型具有相同数量的三角面片,且三维模型和静态模型的三角面片的分布结构相同;上述生成模块,还用于:将表情混合形状的三维模型和静态模型进行坐标对齐处理;逐一将三维模型中的每个三角面片作为第一三角面片,生成第一三角面片对应的差异三棱柱;其中,差异三棱柱由第一三角面片,以及静态模型中与第一三角面片对应的第二三角面片组成。
上述生成模块,还用于:针对动画文件中的每一帧图像,确定图像中包含的表情混合形状的差异三棱柱对应的面部区域是否可见,以及差异三棱柱对应的面部区域在图像中占据的像素数量;根据表情混合形状的差异三棱柱对应的面部区域是否可见,确定表情混合形状对应的面部区域是否可见;将差异三棱柱对应的面部区域是否可见、表情混合形状对应的面部区域是否可见、以及差异三棱柱对应的面部区域在图像中占据的像素数量保存为资源管理数据。
上述生成模块,还用于:如果表情混合形状中存在至少一个差异三棱柱对应的面部区域,在目标动画中的至少一帧图像中可见,且差异三棱柱的体积不为零,确定表情混合形状对应的面部区域可见。
上述资源管理数据还包括:虚拟角色与虚拟摄像机的距离;上述生成模块,还用于:针对动画文件中的每一帧图像,计算图像中虚拟角色与虚拟摄像机的距离;将虚拟角色与虚拟摄像机的距离保存为资源管理数据。
本实施例还提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述表情资源的加载方法。该电子设备可以是服务器,也可以是终端设备。
参见图7所示,该电子设备包括处理器100和存储器101,该存储器101存储有能够被处理器100执行的机器可执行指令,该处理器100执行机器可执行指令以实现上述表情资源的加载方法。
进一步地,图7所示的电子设备还包括总线102和通信接口103,处理器100、通信接口103和存储器101通过总线102连接。
其中,存储器101可能包含高速随机存取存储器(RAM,RandomAccessMemory),也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线102可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器100可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器100中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器100可以是通用处理器,包括中央处理器(CentralProcessingUnit,简称CPU)、网络处理器(NetworkProcessor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器101,处理器100读取存储器101中的信息,结合其硬件完成前述实施例的方法的步骤。
本实施例还提供一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述表情资源的加载方法。
本发明实施例所提供的表情资源的加载方法、装置和电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (16)
1.一种表情资源的加载方法,其特征在于,所述方法应用于终端设备;所述方法包括:
获取目标动画中虚拟角色的表情资源;所述表情资源包括多个表情混合形状;所述虚拟角色的面部表情由至少一个表情混合形状组合而成;
当播放所述目标动画时,确定所述虚拟角色的面部表情中的表情混合形状涉及的面部区域;
根据所述表情混合形状的差异三棱柱对应的面部区域在所述目标动画中的可见程度,确定是否从所述表情资源中加载所述表情混合形状;
其中,所述差异三棱柱用于:指示所述表情混合形状的三维模型与所述虚拟角色的静态模型之间的差异;在所述静态模型下,所述虚拟角色处于初始表情状态;
加载从所述表情资源中确定出的表情混合形状。
2.根据权利要求1所述的方法,其特征在于,所述初始表情状态包括:所述虚拟角色不具有表情,或者所述虚拟角色具有预设的标准表情。
3.根据权利要求1所述的方法,其特征在于,根据所述表情混合形状的差异三棱柱对应的面部区域在所述目标动画中的可见程度,确定是否从所述表情资源中加载所述表情混合形状的步骤,包括:
确定所述表情混合形状对应的面部区域在所述目标动画中是否可见;
如果可见,根据所述表情混合形状的差异三棱柱对应的面部区域在所述目标动画中的可见程度,确定是否需要加载所述表情混合形状。
4.根据权利要求3所述的方法,其特征在于,确定所述表情混合形状对应的面部区域在所述目标动画中是否可见的步骤,包括:
如果所述表情混合形状中存在至少一个差异三棱柱对应的面部区域,在所述目标动画中的至少一帧图像中可见,且所述差异三棱柱的体积不为零,确定所述表情混合形状可见。
5.根据权利要求1或3所述的方法,其特征在于,所述表情混合形状的差异三棱柱对应的面部区域在所述目标动画中的可见程度,包括:所述差异三棱柱对应的面部区域在所述目标动画的图像中占据的像素数量;
所述根据所述表情混合形状的差异三棱柱对应的面部区域在所述目标动画中的可见程度,确定是否从所述表情资源中加载所述表情混合形状的步骤,包括:
确定所述表情混合形状所属的虚拟角色与虚拟摄像机的距离;
根据所述差异三棱柱对应的面部区域在所述目标动画的图像中占据的像素数量,确定距离阈值;
如果所述距离小于或等于所述距离阈值,从所述表情资源中加载所述表情混合形状。
6.根据权利要求5所述的方法,其特征在于,根据所述差异三棱柱对应的面部区域在所述目标动画的图像中占据的像素数量,确定距离阈值的步骤,包括:
当所述表情混合形状中的差异三棱柱对应的面部区域,在所述目标动画的图像中占据的最大像素数量等于预设的数量阈值时,所述虚拟角色与虚拟摄像机的距离确定为所述距离阈值。
7.根据权利要求1所述的方法,其特征在于,获取目标动画中虚拟角色的表情资源的步骤之前,所述方法还包括:
根据所述终端设备的内存资源,确定目标动画的长度;根据所述长度,从预设动画文件中确定所述目标动画。
8.根据权利要求1所述的方法,其特征在于,获取目标动画中虚拟角色的表情资源的步骤之前,所述方法还包括:
从服务器中获取预设动画文件中虚拟角色的表情资源,以及所述表情资源对应的资源管理数据;
其中,所述资源管理数据包括:所述表情混合形状对应的面部区域在所述动画文件中是否可见、所述表情混合形状所包含的差异三棱柱对应的面部区域在所述动画文件中是否可见、以及所述差异三棱柱对应的面部区域在所述动画文件的图像中占据的像素数量。
9.一种表情资源的加载方法,其特征在于,所述方法应用于服务器;所述方法包括:
生成预设动画文件中虚拟角色的表情资源;针对所述动画文件中的每一帧图像,确定所述图像中包含的表情混合形状的差异三棱柱对应的面部区域是否可见,以及所述差异三棱柱对应的面部区域在所述图像中占据的像素数量;
如果所述表情混合形状中存在至少一个差异三棱柱对应的面部区域,在所述动画文件中的至少一帧图像中可见,且所述差异三棱柱的体积不为零,确定所述表情混合形状对应的面部区域可见;
将所述差异三棱柱对应的面部区域是否可见、所述表情混合形状对应的面部区域是否可见、以及所述差异三棱柱对应的面部区域在所述图像中占据的像素数量保存为资源管理数据;其中,所述表情资源包括多个表情混合形状;所述虚拟角色的面部表情由至少一个表情混合形状组合而成;
所述资源管理数据包括:所述表情混合形状对应的面部区域在所述动画文件中是否可见、所述表情混合形状所包含的差异三棱柱对应的面部区域在所述动画文件中是否可见、以及所述差异三棱柱对应的面部区域在所述动画文件的图像中占据的像素数量。
10.根据权利要求9所述的方法,其特征在于,所述资源管理数据还包括:所述差异三棱柱的包围盒以及所述差异三棱柱的体积;
所述生成所述表情资源对应的资源管理数据的步骤,包括:
生成所述表情混合形状的差异三棱柱,并计算所述差异三棱柱的体积;
生成所述差异三棱柱的包围盒,将所述差异三棱柱的包围盒以及所述差异三棱柱的体积保存为所述资源管理数据。
11.根据权利要求10所述的方法,其特征在于,所述表情混合形状的三维模型和所述虚拟角色的静态模型具有相同数量的三角面片,且所述三维模型和所述静态模型的三角面片的分布结构相同;
所述生成所述表情混合形状的差异三棱柱的步骤,包括:
将所述表情混合形状的三维模型和所述静态模型进行坐标对齐处理;
逐一将所述三维模型中的每个三角面片作为第一三角面片,生成所述第一三角面片对应的差异三棱柱;其中,所述差异三棱柱由所述第一三角面片,以及所述静态模型中与所述第一三角面片对应的第二三角面片组成。
12.根据权利要求9所述的方法,其特征在于,所述资源管理数据还包括:所述虚拟角色与虚拟摄像机的距离;
所述生成所述表情资源对应的资源管理数据的步骤,包括:
针对所述动画文件中的每一帧图像,计算所述图像中虚拟角色与虚拟摄像机的距离;将所述虚拟角色与虚拟摄像机的距离保存为所述资源管理数据。
13.一种表情资源的加载装置,其特征在于,所述装置设置于终端设备;所述装置包括:
获取模块,用于获取目标动画中虚拟角色的表情资源;所述表情资源包括多个表情混合形状;所述虚拟角色的面部表情由至少一个表情混合形状组合而成;
确定模块,用于当播放所述目标动画时,当播放所述目标动画时,确定所述虚拟角色的面部表情中的表情混合形状涉及的面部区域;根据所述表情混合形状的差异三棱柱对应的面部区域在所述目标动画中的可见程度,确定是否从所述表情资源中加载所述表情混合形状;其中,所述差异三棱柱用于:指示所述表情混合形状的三维模型与所述虚拟角色的静态模型之间的差异;在所述静态模型下,所述虚拟角色处于初始表情状态;
加载模块,用于加载从所述表情资源中确定出的所述表情混合形状。
14.一种表情资源的加载装置,其特征在于,所述装置应用于服务器;所述装置包括:
生成模块,用于生成预设动画文件中虚拟角色的表情资源,针对所述动画文件中的每一帧图像,确定所述图像中包含的表情混合形状的差异三棱柱对应的面部区域是否可见,以及所述差异三棱柱对应的面部区域在所述图像中占据的像素数量;如果所述表情混合形状中存在至少一个差异三棱柱对应的面部区域,在目标动画中的至少一帧图像中可见,且所述差异三棱柱的体积不为零,确定所述表情混合形状对应的面部区域可见;将所述差异三棱柱对应的面部区域是否可见、所述表情混合形状对应的面部区域是否可见、以及所述差异三棱柱对应的面部区域在所述图像中占据的像素数量保存为资源管理数据;其中,所述表情资源包括多个表情混合形状;所述虚拟角色的面部表情由至少一个表情混合形状组合而成;
所述资源管理数据包括:表情混合形状对应的面部区域在所述动画文件中是否可见、所述表情混合形状所包含的差异三棱柱对应的面部区域在所述动画文件中是否可见、以及所述差异三棱柱对应的面部区域在所述动画文件的图像中占据的像素数量。
15.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求1-8任一项所述的表情资源的加载方法,或者权利要求9-12任一项所述的表情资源的加载方法。
16.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现权利要求1-12任一项所述的表情资源的加载方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110028475.1A CN112686978B (zh) | 2021-01-07 | 2021-01-07 | 表情资源的加载方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110028475.1A CN112686978B (zh) | 2021-01-07 | 2021-01-07 | 表情资源的加载方法、装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112686978A CN112686978A (zh) | 2021-04-20 |
CN112686978B true CN112686978B (zh) | 2021-09-03 |
Family
ID=75457024
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110028475.1A Active CN112686978B (zh) | 2021-01-07 | 2021-01-07 | 表情资源的加载方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112686978B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113643413A (zh) * | 2021-08-30 | 2021-11-12 | 北京沃东天骏信息技术有限公司 | 动画处理方法、装置、介质及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103984919A (zh) * | 2014-04-24 | 2014-08-13 | 上海优思通信科技有限公司 | 基于粗糙集与混合特征的人脸表情识别方法 |
CN106778708A (zh) * | 2017-02-14 | 2017-05-31 | 深圳市唯特视科技有限公司 | 一种基于张量的主动外观模型的表情变化识别方法 |
CN110766776A (zh) * | 2019-10-29 | 2020-02-07 | 网易(杭州)网络有限公司 | 生成表情动画的方法及装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170062089A (ko) * | 2015-11-27 | 2017-06-07 | 주식회사 매니아마인드 | 3d아바타의 표정 구현 방법 및 프로그램 |
US10984222B2 (en) * | 2016-07-12 | 2021-04-20 | Microsoft Technology Licensing, Llc | Method, apparatus and system for 3D face tracking |
CN110476186B (zh) * | 2017-06-07 | 2020-12-29 | 谷歌有限责任公司 | 高速高保真面部跟踪 |
CN107704483B (zh) * | 2017-07-05 | 2019-02-12 | 国网山东省电力公司 | 一种三维模型的加载方法 |
CN110135215B (zh) * | 2018-02-02 | 2021-11-05 | 上海大学 | 一种基于Avatar表情移植的虚拟社交方法 |
CN108765788A (zh) * | 2018-05-22 | 2018-11-06 | 中国工商银行股份有限公司 | 数据处理的方法、自助服务终端以及自助服务系统 |
CN110363833B (zh) * | 2019-06-11 | 2021-03-30 | 华南理工大学 | 一种基于局部稀疏表示的完全人体运动参数化表示方法 |
CN110660076A (zh) * | 2019-09-26 | 2020-01-07 | 北京紫睛科技有限公司 | 一种人脸交换方法 |
CN110992455B (zh) * | 2019-12-08 | 2021-03-05 | 北京中科深智科技有限公司 | 一种实时表情捕捉系统 |
CN111986335B (zh) * | 2020-09-01 | 2021-10-22 | 贝壳找房(北京)科技有限公司 | 纹理贴图方法和装置、计算机可读存储介质、电子设备 |
CN112149599B (zh) * | 2020-09-29 | 2024-03-08 | 网易(杭州)网络有限公司 | 表情追踪方法、装置、存储介质和电子设备 |
-
2021
- 2021-01-07 CN CN202110028475.1A patent/CN112686978B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103984919A (zh) * | 2014-04-24 | 2014-08-13 | 上海优思通信科技有限公司 | 基于粗糙集与混合特征的人脸表情识别方法 |
CN106778708A (zh) * | 2017-02-14 | 2017-05-31 | 深圳市唯特视科技有限公司 | 一种基于张量的主动外观模型的表情变化识别方法 |
CN110766776A (zh) * | 2019-10-29 | 2020-02-07 | 网易(杭州)网络有限公司 | 生成表情动画的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112686978A (zh) | 2021-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11423556B2 (en) | Methods and systems to modify two dimensional facial images in a video to generate, in real-time, facial images that appear three dimensional | |
CN107993216B (zh) | 一种图像融合方法及其设备、存储介质、终端 | |
US11839820B2 (en) | Method and apparatus for generating game character model, processor, and terminal | |
US20220284679A1 (en) | Method and apparatus for constructing three-dimensional face mesh, device, and storage medium | |
CN109325990B (zh) | 图像处理方法及图像处理装置、存储介质 | |
CN112669447A (zh) | 一种模型头像创建方法、装置、电子设备和存储介质 | |
CN107578467B (zh) | 一种医疗器械三维建模方法及装置 | |
CN110570500B (zh) | 角色绘制方法、装置、设备及计算机可读存储介质 | |
KR20210113948A (ko) | 가상 아바타 생성 방법 및 장치 | |
WO2023207452A1 (zh) | 基于虚拟现实的视频生成方法、装置、设备及介质 | |
WO2024098685A1 (zh) | 虚拟人物面部驱动方法、装置、终端设备和可读存储介质 | |
CN113689538A (zh) | 一种视频生成方法、装置、电子设备及存储介质 | |
CN112686978B (zh) | 表情资源的加载方法、装置和电子设备 | |
Takai et al. | Harmonised texture mapping | |
CN116112761B (zh) | 生成虚拟形象视频的方法及装置、电子设备和存储介质 | |
CN110533777B (zh) | 三维人脸图像修正方法、装置、电子设备和存储介质 | |
CN111915479A (zh) | 图像处理方法及装置、电子设备和计算机可读存储介质 | |
CN116958344A (zh) | 虚拟形象的动画生成方法、装置、计算机设备及存储介质 | |
CN114299225A (zh) | 动作图像生成方法、模型构建方法、设备及存储介质 | |
CN103258341B (zh) | 一种三维投影挂点渲染方法及装置 | |
US20220014726A1 (en) | Object display | |
US11727639B2 (en) | Shape refinement of three-dimensional (3D) mesh reconstructed from images | |
CN117541688A (zh) | 虚拟形象生成方法及装置 | |
CN115830210A (zh) | 虚拟对象的渲染方法、装置、电子设备及存储介质 | |
CN115970281A (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 |