针对虚拟角色的处理方法和装置与流程
未命名
10-08
阅读:100
评论:0
1.本技术实施例涉及图像处理技术领域,尤其涉及一种针对虚拟角色的处理方法、装置、计算机设备、计算机可读存储介质。
背景技术:
2.随着计算机技术的发展,直播等业务已成为当下一种热门的网络业务。为了进一步为提升直播的趣味性,以及兼顾内容生产者表现自我和保护自我这一矛盾需求的两面,视频平台提供了一个能快速生成自己的人格化身并融入到内容创作中的虚拟形象。以虚拟直播为例,主播可以为自身配置一个代替真实自己的虚拟角色。无论在虚拟直播还是在游戏等各类场景中,虚拟角色越来越多地被制作和使用。
3.在三维虚拟角色的制作中,通常会涉及到角色模型,以及骨骼、blendshap e(形变混合)等技术。其中,骨骼可以用于控制虚拟角色的全身性动作。ble ndshape可以用于控制虚拟角色的面部表情等,通常用于需要较为细致的表现的位置。然而,在一些情形下,骨骼驱动和blendshape驱动可能产生冲突,降低虚拟角色的呈现效果。
4.需要说明的是,上述内容并不必然是现有技术,也不用于限制本技术的专利保护范围。
技术实现要素:
5.本技术实施例提供一种针对虚拟角色的处理方法、装置、计算机设备、计算机可读存储介质,以解决或缓解上面提出的一项或更多项技术问题。
6.本技术实施例的一个方面提供了一种针对虚拟角色的处理方法,所述方法包括:
7.获取虚拟角色的多个blendshape网格;
8.确定虚拟角色的目标骨骼,所述目标骨骼包括在关键点与blendshape网格产生冲突的骨骼;
9.获取与所述目标骨骼关联的校正网格,所述校正网格包括所述目标骨骼在目标位置处对应的blendshape网格;
10.根据所述多个blendshape网格和所述校正网格,确定所述虚拟角色的目标形状。
11.可选地,所述目标骨骼为多个骨骼之一;所述方法还包括:
12.确定每个骨骼在运动过程中对关键点轮廓的影响幅度;
13.将对所述关键点轮廓的影响幅度大于预设阈值的骨骼,确定为所述目标骨骼。
14.可选地,所述目标骨骼包括眼角骨骼,所述眼角骨骼具有上方极限位置,所述上方极限位置对应所述校正网格中的第一校正网格;
15.根据所述多个blendshape网格和所述校正网格,确定所述虚拟角色的目标形状,包括:
16.在眼角骨骼向上移动的情况下,根据所述多个blendshape网格和所述第一校正网格,确定虚拟角色眼部的目标形状。
17.可选地,所述目标骨骼包括眼角骨骼,所述眼角骨骼具有下方极限位置,所述下方极限位置对应所述校正网格中的第二校正网格;
18.根据所述多个blendshape网格和所述校正网格,确定所述虚拟角色的目标形状,包括:
19.在眼角骨骼向下移动的情况下,根据所述多个blendshape网格和所述第二校正网格,确定虚拟角色眼部的目标形状。
20.可选地,所述目标骨骼为多个骨骼之一;所述方法还包括:
21.确定所述虚拟角色的多个捏脸参数;
22.确定所述多个捏脸参数和所述多个骨骼之间的影响关系;
23.根据所述影响关系,确定所述多个捏脸参数中同时影响到同一个骨骼的多个目标捏脸参数;
24.为所述多个目标捏脸参数中的每个目标捏脸参数分别配置一组独立的目标blendshape网格。
25.本技术实施例的另一个方面提供了一种针对虚拟角色的处理装置,所述装置包括:
26.第一获取模块,用于获取虚拟角色的多个blendshape网格;
27.第一确定模块,用于确定虚拟角色的目标骨骼,所述目标骨骼包括在关键点与blendshape网格产生冲突的骨骼;
28.第二获取模块,用于获取与所述目标骨骼关联的校正网格,所述校正网格包括所述目标骨骼在目标位置处对应的blendshape网格;
29.第二确定模块,用于根据所述多个blendshape网格和所述校正网格,确定所述虚拟角色的目标形状。
30.本技术实施例的另一个方面提供了一种针对虚拟角色的处理方法,所述方法包括:
31.确定虚拟角色的多个blendshape网格,不同的blendshape网格对应不同的权重;
32.确定虚拟角色的目标骨骼,所述目标骨骼与相应的blendshape网格在关键点相互影响;
33.根据所述相应的blendshape网格的权重,以预定速度将所述目标骨骼拉回到初始位置。
34.可选地,所述目标骨骼为多个骨骼之一;所述方法包括:
35.确定每个骨骼在运动过程中对关键点轮廓的影响幅度;
36.将对所述关键点轮廓的影响幅度大于预设阈值的骨骼,确定为所述目标骨骼。
37.本技术实施例的另一个方面提供了一种计算机设备,包括:
38.至少一个处理器;及
39.与所述至少一个处理器通信连接的存储器;
40.其中:所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方法。
41.本技术实施例的另一个方面提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机指令,所述计算机指令被处理器执行时实现如上所述的方法。
42.本技术实施例采用上述技术方案可以包括如下优势:先确定在形变上会与blendshape网格产生冲突的骨骼,然后制作额外的blendshape网格(校正网格)对应到骨骼移动的目标位置。通过混合不同比例的校正网格,可以矫正骨骼移动造成的轮廓形变,并在冲突位置进行正常表情驱动,从而实现虚拟角色在目标骨骼移动情形下的正常显示。
附图说明
43.附图示例性地示出了实施例并且构成说明书的一部分,与说明书的文字描述一起用于讲解实施例的示例性实施方式。所示出的实施例仅出于例示的目的,并不限制权利要求的范围。在所有附图中,相同的附图标记指代类似但不一定相同的要素。
44.图1示意性示出了眼角骨骼位置变动前、后的闭眼效果;
45.图2示意性示出了根据本技术实施例一的针对虚拟角色的处理方法的运行环境图;
46.图3示意性示出了根据本技术实施例一的针对虚拟角色的处理方法的流程图;
47.图4a~4c示意性示出了眼睛打开、眼睛半开和眼睛闭合的效果图;
48.图5示意性示出了捏脸参数和blendshape网格的关系;
49.图6示意性示出了根据本技术实施例二的针对虚拟角色的处理方法的流程图;
50.图7示意性示出了根据本技术实施例三的针对虚拟角色的处理装置的框图;
51.图8示意性示出了根据本技术实施例四的针对虚拟角色的处理装置的框图;
52.图9示意性示出了根据本技术实施例五中的计算机设备的硬件架构示意图。
具体实施方式
53.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
54.需要说明的是,在本技术实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本技术要求的保护范围之内。
55.在本技术的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本技术及区别每一步骤,因此不能理解为对本技术的限制。
56.首先,提供本技术涉及的术语解释:
57.形变混合(blendshape):属于数字动画技术,用于创建3d(三维)角色动画,它允许用户对角色的面部表情进行精确的控制,以创造逼真的面部动画。具体的,在三维(3d)模型中,角色的面部是由大量顶点(vertex)组成的。通过制作网格数据格式、数量一致但形状不一致的网格数据,形成一个简单的线性变换模型。如,每个面部表情可以由相同数量的顶点组成,且这些顶点在不同的面部表情之间的位置是相同的。这使得在不同的面部表情之间
进行插值和变形变得更加容易和精确。
58.骨骼(skeleton):是指一种虚拟的三维骨架结构,用于控制3d角色的动作。骨骼可以由多个关节和骨头构成,每个骨头都有一个位置和旋转信息。在制作过程中,用户可以通过移动、旋转、缩放骨骼来控制3d模型的姿势和动作。例如,通过驱动骨骼,可以用于控制角色的全身动作,例如走路、跑步、跳跃等。骨骼技术还可以与其他技术(如蒙皮技术)结合使用,以实现复杂的角色动画效果。在3d模型的动画中,通过驱动骨骼实现角色的动作,而每一个骨头控制着附近区域的顶点,这样只需移动骨骼的位置就能实现局部顶点的空间变换。
59.绑定(rigging):是指将模型表面的点(如顶点等)与骨骼等绑定起来的过程。绑定可以将角色模型的表面和其骨骼或其他控制器相连接,实现骨骼控制角色动作的目的。在绑定过程中,每个点可以被分配给最接近的骨骼或控制器,通过移动骨骼或控制器来控制角色的动作,并且角色表面的点也会跟随移动。绑定是在骨骼动画或其他控制器动画制作完成之后进行的,可以使用各种绑定工具或手动完成。绑定完成后,角色模型可以进行动画制作,通过移动骨骼或控制器实现角色的各种动作。绑定可以视为是制作骨骼和蒙皮的整个操作过程。
60.蒙皮(skinning):是将角色模型的表面(如皮肤)与骨骼连接起来的过程。蒙皮可以使角色动作更加自然流畅,以及角色在运动中表面的皮肤和肌肉变形更加真实。在蒙皮过程中,每个点都被分配给最接近的骨骼,然后通过插值等技术计算出角色在动作过程中的表面变形,实现角色动作的自然流畅。蒙皮可以与其他技术结合使用,以实现复杂和高质量的角色动画效果。蒙皮作为将骨骼和模型结合起来的过程。每一个顶点可以指定受哪几根骨骼的空间位移影响,并且包含受每一个骨骼影响的权重。一个顶点受所有骨骼影响的权重加在一起应当等于1。同一个骨架和同一个模型,权重的配置不同,最终生成的动画效果也会有很大差异。
61.捏人(character sculpting):是一种3d建模技术,用于角色设计和人物创作。通过在计算机中对虚拟模型进行修改和塑造,来创建一个具有特定外貌和特征的角色模型。在捏人技术中,可以先创建一个基础模型,然后通过添加细节、改变轮廓、调整面部表情等方式,塑造出一个具有符合预期外观的角色模型。
62.其次,为方便本领域技术人员理解本技术实施例提供的技术方案,下面对相关技术进行说明:
63.在三维虚拟角色的制作中,通常会涉及到角色模型,以及骨骼、blendshap e等技术。其中,骨骼可以用于控制虚拟角色的全身性动作,适用于精度要求不高,整体性较强的地方,这种方式在调整上更直观,制作也更为方便,但不方便制作细节表现。blendshape可以用于控制虚拟角色的面部表情等,通常用于需要较为细致的表现的位置。
64.对骨骼、blendshape设置一定的调节区间,可以实现角色模型产生一定范围内的形变。
65.在上述基础上,本发明人意在提供一套既支持捏人,也支持面部捕捉驱动的方案,实现数字人的各种表情的实时呈现。但是在实现过程中发现,本身捏人所产生的形变会与最终表情驱动时必要的形变产生一些冲突项,由于blends hape在骨骼变换之前先应用,所以不涉及到轮廓改变的,如拉长眼睛或嘴巴,也许不会影响到最终眼睛或嘴巴的闭合,但是
当眼睛更改了轮廓之后,闭眼时会产生闭合不完全或者闭合过度的情况。如图1所示,左侧图像为左眼角的骨骼未移动情形下的闭眼效果,右侧图像为在左眼角的骨骼已经移动的情形下的闭眼效果,可以看出左侧图像的眼角闭合过度。因此,有必要通过一些技术手段去处理这种冲突。
66.为此,本技术实施例提供了一种针对虚拟角色的处理技术方案。在该技术方案中,通过制作多个额外的blendshape对应到骨骼移动的极限位置,通过混合不同比例的blendshape,用于矫正在保留骨骼造成的轮廓形变后,也能在冲突位置进行正常表情驱动,实现完美的开关闭合状态。例如,在遇到骨骼产生轮廓上的形变后,依旧能够使眼睛、嘴巴等涉及到开关闭合效果敏感的部位实现完美的闭合。
67.也可以在调节冲突项blendshape造成的形变时,将影响的骨骼根据blends hape的权重缓慢拉回到模型原始状态,即未应用任何blendshape的情况下可以完美闭眼的水平。
68.最后,为了方便理解,下面提供一个示例性运行环境。
69.图2示意性示出了根据本技术实施例所述方法的环境应用示意图。
70.计算机设备10000包括各种类型的电子设备,例如便携式手持设备、通用计算机(如个人计算机和膝上型计算机)、工作站计算机等。这些计算机设备可以运行各种类型和版本的软件应用程序和操作系统,例如microsoft win dows、apple ios、类unix操作系统、linux或类linux操作系统(例如g oogle chrome os);或包括各种移动操作系统,例如microsoft windo ws、mobile os、ios、windows phone、android。便携式手持设备可以包括蜂窝电话、智能电话、平板电脑、个人数字助理等。计算机设备10000能够执行各种不同的应用程序,例如各种与internet相关的应用程序、通信应用程序(例如电子邮件应用程序)、短消息服务(sms)应用程序,并且可以使用各种通信协议。
71.计算机设备10000可以包括输入/输出接口。输入接口可以包括触摸板、触摸屏、鼠标、键盘等。输入接口可以被配置为接收用户指令,所述用户指令可以使计算机设备10000执行各类操作,例如制作和操作虚拟角色等。输出接口用于向用户输出信息,如显示信息。
72.计算机设备10000还可以安装有一个或多个应用程序,如虚拟角色生成和编辑程序。
73.下面以计算机设备10000为执行主体,通过多个实施例介绍本技术的技术方案。须知,这些实施例可以由多种不同的形式来实施,并且不应当被解释为只限于这里所阐述的实施例。
74.实施例一
75.图3示意性示出了根据本技术实施例一的针对虚拟角色的处理方法的流程图。
76.如图3所示,该针对虚拟角色的处理方法可以包括步骤s300~s306,其中:
77.步骤s300,获取虚拟角色的多个blendshape网格。
78.步骤s302,确定虚拟角色的目标骨骼,所述目标骨骼包括在关键点与ble ndshape网格产生冲突的骨骼。
79.步骤s304,获取与所述目标骨骼关联的校正网格,所述校正网格包括所述目标骨骼在目标位置处对应的blendshape网格。
80.步骤s306,根据所述多个blendshape网格和所述校正网格,确定所述虚拟角色的
目标形状。
81.本实施例提供的针对虚拟角色的处理方法,先确定在形变上会与blendsha pe网格产生冲突的骨骼,然后制作额外的blendshape网格(校正网格)对应到骨骼移动的目标位置。通过混合不同比例的校正网格,可以矫正骨骼移动造成的轮廓形变,并在冲突位置进行正常表情驱动,从而实现虚拟角色在目标骨骼移动情形下的正常显示。
82.以下结合图3,对步骤s300~s306中各个步骤以及可选的其他步骤进行详细阐述。
83.步骤s300,获取虚拟角色的多个blendshape网格。
84.虚拟角色的多个blendshape网格可以包括:从而虚拟角色模型中提取出多个具有不同形状和表情的网格数据,该网格数据可用于控制虚拟角色的形态变化,如面部表情。
85.举例来说:(1)导入虚拟角色的三维模型文件,该模型文件包括虚拟角色的基础网格数据;(2)通过对虚拟角色的面部表情、形态等进行修改,创建多个不同的形状变化,如不同的面部表情、表情变化、形态变化等;每个修改后的形状都可以作为一个单独的blendshape网格;(3)保存blendshape网格,即将每个修改后的形状保存为独立的blendshape网格文件,以便对虚拟角色的形变进行控制。
86.多个blendshape网格可以包括基础网格和其他网格。通过在虚拟角色的基础网格上设置不同的blendshape网格,可以实现控制角色的面部表情,例如笑、哭、皱眉等。
87.在一些实施例中,还可以通过设置特定的blendshape网格控制角色的形态变化,例如身体的伸缩、变形等。在一些实施例中,还可以通过设置特定的blendshape网格实现控制角色在动画中的表现,例如实现角色的口型同步、面部动态变化等。
88.需要说明的是,本实施例中的虚拟角色包括但不限于:人类角色、动物角色等。
89.步骤s302,确定虚拟角色的目标骨骼,所述目标骨骼包括在关键点与blendshape网格产生冲突的骨骼。
90.目标骨骼与blendshape在关键点(关键顶点)生效在形变上会产生一定的冲突,导致效果不自然。
91.在可选的实施例中,所述目标骨骼为多个骨骼之一。为有效筛选出目标骨骼,所述方法还包括:
92.确定每个骨骼在运动过程中对关键点轮廓的影响幅度;
93.将对所述关键点轮廓的影响幅度大于预设阈值的骨骼,确定为所述目标骨骼。
94.在一些实施方式中,可以通过对虚拟角色的骨骼和blendshape网格进行关键点(关键节点)的冲突检测,确定目标骨骼。关键点可以是虚拟角色模型中的动画控制点。blendshape网格是用于实现形态变化的网格数据。若目标骨骼与blendshape在关键点生效在形变上产生一定的冲突,则说明需要进行修正以保持动画的真实性和精确性。举例而言:在虚拟角色的三维模型文件导入到3d制作软件之后,可以不断地调整各个骨骼的位置和姿态,并从虚拟角色的模型文件中提取对应的blendshape网格;然后,在不同位置和姿态的骨骼和不同blendshape网格组合下,确定虚拟角色的形变是否产生扭曲等。若某个关键点产生了扭曲,则说明该骨骼(目标骨骼)移动到某个位置会影响到基于blendshape网格的形变效果。
95.在一些实施例中,关键点可以是眼睛、嘴巴等。在进行面部表情动画时,这些关键点的形变会同时受到blendshape网格和骨骼的影响,且两者的共同影响会导致形变过度,
从而需要一定的校正或修正,进而提高虚拟角色的面部动画质量。
96.步骤s304,获取与所述目标骨骼关联的校正网格,所述校正网格包括所述目标骨骼在目标位置处对应的blendshape网格。
97.为尽量消除目标骨骼的移动对基于blendshape网格形变的消极影响,可以制作额外的校正网格。通过混合不同比例的校正网格,矫正骨骼移动造成的轮廓形变。
98.所述目标位置是指:当目标骨骼移动到这个位置时,会和blendshape网格的形变产生冲突。所述目标位置一般是极限位置,例如,眼角骨骼往上或往下的极限位置。
99.在一些实施例中,可以通过对blendshape网格进行形态插值或形态变形操作,生成校正网格。
100.步骤s306,根据所述多个blendshape网格和所述校正网格,确定所述虚拟角色的目标形状。
101.通过混合不同比例的校正网格,可以矫正骨骼移动造成的轮廓形变,并在冲突位置进行正常表情驱动,从而实现虚拟角色在目标骨骼移动情形下的形态变化符合预期。
102.在示例性应用中,通过对多个blendshape网格和校正网格进行不同比例的混合,确定虚拟角色的目标形状。具体的,目标骨骼相对其初始位置的偏移幅度越大,则相应的校正网格的权重也越大,尽量保障虚拟角色的形态始终符合最佳预期效果。
103.如上文所述,关键点可以各个部位,如眼部、嘴巴等。下面将以眼部为例,提供几个可选的实施例。
104.所述目标骨骼包括眼角骨骼,所述眼角骨骼具有上方极限位置,所述上方极限位置对应所述校正网格中的第一校正网格。
105.在可选的实施例中,步骤s306“根据所述多个blendshape网格和所述校正网格,确定所述虚拟角色的目标形状”可以包括:在眼角骨骼向上移动的情况下,根据所述多个blendshape网格和所述第一校正网格,确定虚拟角色眼部的目标形状。
106.所述目标骨骼包括眼角骨骼,所述眼角骨骼具有下方极限位置,所述下方极限位置对应所述校正网格中的第二校正网格。
107.在可选的实施例中,步骤s306“根据所述多个blendshape网格和所述校正网格,确定所述虚拟角色的目标形状”可以包括:在眼角骨骼向下移动的情况下,根据所述多个blendshape网格和所述第二校正网格,确定虚拟角色眼部的目标形状。
108.在模型变换中,或者说差值计算公式,一个模型会有一个默认的形状,定义为b0,bk代表了其他的blendshape网格,k=1
…
n,b
k-b0代表了每一个其他的blendshape与默认模型的差值,由于差值是线性变换,最终的变换结果f就等于如下公式所示:
[0109][0110]
其中,wk表示权重。
[0111]
一个bk被限定为一个小的区间内,如左眼闭合,所有的参数》0的参与到混合运算中,最大值为1,在中间的数值则提供过度效果,最终提供基于本地模型坐标的空间变换控制。
[0112]
如图4a~4c所示,其提供了bk=0、bk=0.5、bk=1时的虚拟人物的显示效果。
[0113]
在bk=1的情况下,如果左眼角骨骼产生移动,其眼角会出现闭合过度的情况。
[0114]
为了使眨眼正常,需要至少矫正上述闭合过度的情形,制作额外的两个对应眨眼的校正网格,定义为b
k1
和b
k2
,分别对应该处眼角骨骼向上和向下时,以加入混合计算。
[0115]
如果眼角骨骼向上移动,则混合bk与b
k1
,当b
k1
=1时,骨骼处在可调节范围最上面的时候刚好完整闭合。假设骨骼上下移动的范围分布为y,范围是0-1,0.5的时候是正常状态,由于bk,b
k1
和b
k2
都提供了闭眼时的偏移量,对应的混合计算公式如下:
[0116]
如果y《=0.5,即眼角骨骼向下移动;
[0117]bk
*=1-abs(y-0.5)*2;
[0118]bk1
=0;
[0119]bk2
*=abs(y-0.5)*2;
[0120]
如果y>0.5,即眼角骨骼向上移动;
[0121]bk
*=1-abs(y-0.5)*2;
[0122]bk1
*=abs(y-0.5)*2;
[0123]bk2
=0;
[0124]
其中,“abs(y-0.5)”表示:y-0.5绝对值,*表示乘法。
[0125]
通过以上混合bk与b
k1
或b
k2
实现最终效果上的吻合,由于是线性差值,所以眨眼的过程中也能全程保留眼睛的整体轮廓结构。也就是说,在遇到骨骼产生轮廓上的形变后,依旧能够使眼睛,嘴巴等涉及到开关闭合效果敏感的部位实现完美的闭合。
[0126]
上面介绍了通过设置额外的校正网格来修正虚拟角色的形状,以改善因骨骼移动引起的扭曲。
[0127]
实际产品化过程中,若出现多个捏脸参数影响到同一个骨骼的情况,则需要将每一个参数,针对该骨骼做独立的blendshape网格才能达到既定效果。然而,上述方式会导致过多的blendshape网格,还涉及复杂的骨骼关系。为解决上述问题,提供了以下实施例。
[0128]
在可选的实施例中,所述目标骨骼为多个骨骼之一;所述方法还包括:
[0129]
确定所述虚拟角色的多个捏脸参数;
[0130]
确定所述多个捏脸参数和所述多个骨骼之间的影响关系;
[0131]
根据所述影响关系,确定所述多个捏脸参数中同时影响到同一个骨骼的多个目标捏脸参数;
[0132]
为所述多个目标捏脸参数中的每个目标捏脸参数分别配置一组独立的目标blendshape网格。
[0133]
在本实施例中,捏脸参数可以称之为面部定制参数。捏脸参数是一组可以在虚拟人物模型上调整的参数,用于实现对人脸外貌的定制和调整。这些捏脸参数可以嵌入到3d人物模型中,并且允许用户通过调整这些参数来自定义虚拟人物的外貌。
[0134]
捏脸参数可以包括以下类型的参数:形状参数、外貌参数、表情参数等。
[0135]
形状参数,用于控制人脸的基本形状,如脸型、眼睛形状、鼻子形状、嘴巴形状等。形状参数通常是数值型参数,用户可以通过调整参数的数值来改变虚拟人物的脸部形状。
[0136]
外貌参数,用于控制人脸的外观特征,如肤色、肤质、面部细节等。外貌参数通常是颜色、纹理或材质等类型的参数,用户可以通过调整这些参数的数值来改变虚拟人物的外观特征。
[0137]
表情参数,用于控制人脸的表情,如眼睛闭合程度、嘴巴张合程度、眉毛高低等。表情参数通常是数值型参数,用户可以通过调整参数的数值来改变虚拟人物的表情状态。
[0138]
需要说明的是,不同的3d制作软件具有不同的捏脸参数,具体的参数名称、类型和功能可能不同。
[0139]
在上述实施例中,对捏脸参数直接应用blendshape修复。如图5所示,直接制作针对该捏脸参数的blendshape网格,不需要针对单个骨骼去做形变修正,而是对捏脸参数所影响的所有骨骼,制作对应的区间blendshape网格,从而避开了复杂的骨骼关系。
[0140]
实施例二
[0141]
图6示意性示出了根据本技术实施例二的针对虚拟角色的处理方法的流程图。
[0142]
如图6所示,该针对虚拟角色的处理方法可以包括步骤s600~s604,其中:
[0143]
步骤s600,确定虚拟角色的多个blendshape网格,不同的blendshape网格对应不同的权重;
[0144]
步骤s602,确定虚拟角色的目标骨骼,所述目标骨骼与相应的blendshape网格在关键点相互影响;
[0145]
步骤s602,根据所述相应的blendshape网格的权重,以预定速度将所述目标骨骼拉回到初始位置。
[0146]
blendshape网格的获取以及目标骨骼的确定等操作,可以参阅实施例一,在此不赘述。
[0147]
在本实施例中,将影响的目标骨骼根据blendshape网格的权重缓慢拉回到虚拟角色模型的原始状态,即未应用额外blendshape网格的情况下可以达到预期效果,如完美的闭眼。
[0148]
以眨眼为例,“相应的blendshape网格的权重”可以对应为眨眼程度。当bk=0.5时,则为半眨眼。因此,将眼角骨骼从半眨眼时对应的移动位置拉回到初始位置。
[0149]
在可选的实施例中,所述目标骨骼为多个骨骼之一。为有效筛选出目标骨骼,所述方法还包括:
[0150]
确定每个骨骼在运动过程中对关键点轮廓的影响幅度;
[0151]
将对所述关键点轮廓的影响幅度大于预设阈值的骨骼,确定为所述目标骨骼。
[0152]
可知,实施例一和实施例二分别提供了在骨骼与blendshape同时在关键点生效在形变上产生冲突的情形下,如何实现关键点(如眼睛、嘴巴)等开关闭合效果达到预期效果。两个实施例的区别在于,实施例二是原先眼睛的轮廓形变会缓慢变回到初始的未捏脸状态。实施例一不仅能校正形变,也能在冲突位置进行正常表情驱动。
[0153]
实施例三
[0154]
图7示意性示出了根据本技术实施例三的针对虚拟角色的处理装置的框图,该针对虚拟角色的处理装置可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本技术实施例。本技术实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例中各程序模块的功能。如图7所示,该装置可以包括:第一获取模块710、第一确定模块720、第二获取模块730、第二确定模块740,其中:
[0155]
第一获取模块710,用于获取虚拟角色的多个blendshape网格;
[0156]
第一确定模块720,用于确定虚拟角色的目标骨骼,所述目标骨骼包括在关键点与blendshape网格产生冲突的骨骼;
[0157]
第二获取模块730,用于获取与所述目标骨骼关联的校正网格,所述校正网格包括所述目标骨骼在目标位置处对应的blendshape网格;
[0158]
第二确定模块740,用于根据所述多个blendshape网格和所述校正网格,确定所述虚拟角色的目标形状。
[0159]
在可选的实施例中,所述目标骨骼为多个骨骼之一;所述装置还可以包括第三确定模块,用于:
[0160]
确定每个骨骼在运动过程中对关键点轮廓的影响幅度;
[0161]
将对所述关键点轮廓的影响幅度大于预设阈值的骨骼,确定为所述目标骨骼。
[0162]
在可选的实施例中,所述目标骨骼包括眼角骨骼,所述眼角骨骼具有上方极限位置,所述上方极限位置对应所述校正网格中的第一校正网格;
[0163]
第二确定模块740,还用于:
[0164]
在眼角骨骼向上移动的情况下,根据所述多个blendshape网格和所述第一校正网格,确定虚拟角色眼部的目标形状。
[0165]
在可选的实施例中,所述目标骨骼包括眼角骨骼,所述眼角骨骼具有下方极限位置,所述下方极限位置对应所述校正网格中的第二校正网格;
[0166]
第二确定模块740,还用于:
[0167]
在眼角骨骼向下移动的情况下,根据所述多个blendshape网格和所述第二校正网格,确定虚拟角色眼部的目标形状。
[0168]
在可选的实施例中,所述目标骨骼为多个骨骼之一;所述装置可以包括配置模块,用于:
[0169]
确定所述虚拟角色的多个捏脸参数;
[0170]
确定所述多个捏脸参数和所述多个骨骼之间的影响关系;
[0171]
根据所述影响关系,确定所述多个捏脸参数中同时影响到同一个骨骼的多个目标捏脸参数;
[0172]
为所述多个目标捏脸参数中的每个目标捏脸参数分别配置一组独立的目标blendshape网格。
[0173]
实施例四
[0174]
图8示意性示出了根据本技术实施例四的针对虚拟角色的处理装置的框图,该针对虚拟角色的处理装置可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本技术实施例。本技术实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例中各程序模块的功能。如图8所示,该装置可以包括:第一确定模块810、第二确定模块820、拉回模块830,其中:
[0175]
第一确定模块810,用于确定虚拟角色的多个blendshape网格,不同的bl endshape网格对应不同的权重;
[0176]
第二确定模块820,用于确定虚拟角色的目标骨骼,所述目标骨骼与相应的blendshape网格在关键点相互影响;
[0177]
拉回模块830,用于根据所述相应的blendshape网格的权重,以预定速度将所述目标骨骼拉回到初始位置。
[0178]
在可选的实施例中,所述目标骨骼为多个骨骼之一;所述装置还包括包括第三确定模块,用于:
[0179]
确定每个骨骼在运动过程中对关键点轮廓的影响幅度;
[0180]
将对所述关键点轮廓的影响幅度大于预设阈值的骨骼,确定为所述目标骨骼。
[0181]
实施例四
[0182]
图9示意性示出了根据本技术实施例四的适于实现针对虚拟角色的处理方法的计算机设备10000的硬件架构示意图。在一些实施例中,计算机设备10000可以是智能手机、可穿戴设备、平板电脑、个人电脑、车载终端、游戏机、虚拟设备、工作台、数字助理、机顶盒、机器人等终端设备。在另一些实施例中,计算机设备10000可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或多个服务器所组成的服务器集群)等。如图9所示,所述计算机设备10000包括但不限于:可通过系统总线相互通信链接存储器10010、处理器10020、网络接口10030。其中:
[0183]
存储器10010至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(如,sd或dx存储器)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器10010可以是计算机设备10000的内部存储模块,例如该计算机设备10000的硬盘或内存。在另一些实施例中,存储器10010也可以是计算机设备10000的外部存储设备,例如该计算机设备10000上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。当然,存储器10010还可以既包括计算机设备10000的内部存储模块也包括其外部存储设备。本实施例中,存储器10010通常用于存储安装于计算机设备10000的操作系统和各类应用软件,例如针对虚拟角色的处理方法的程序代码等。此外,存储器10010还可以用于暂时地存储已经输出或者将要输出的各类数据。
[0184]
处理器10020在一些实施例中可以是中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器、或其他芯片。该处理器10020通常用于控制计算机设备10000的总体操作,例如执行与计算机设备10000进行数据交互或者通信相关的控制和处理等。本实施例中,处理器10020用于运行存储器10010中存储的程序代码或者处理数据。
[0185]
网络接口10030可包括无线网络接口或有线网络接口,该网络接口10030通常用于在计算机设备10000与其他计算机设备之间建立通信链接。例如,网络接口10030用于通过网络将计算机设备10000与外部终端相连,在计算机设备10000与外部终端之间建立数据传输通道和通信链接等。网络可以是企业内部网(intranet)、互联网(internet)、全球移动通讯系统(global system of mobile communication,简称为gsm)、宽带码分多址(wideband code divi sion multiple access,简称为wcdma)、4g网络、5g网络、蓝牙(bluetoo th)、wi-fi等无线或有线网络。
[0186]
需要指出的是,图9仅示出了具有部件10010-10030的计算机设备,但是应该理解的是,并不要求实施所有示出的部件,可以替代地实施更多或者更少的部件。
[0187]
在本实施例中,存储于存储器10010中的针对虚拟角色的处理方法还可以被分割
为一个或者多个程序模块,并由一个或多个处理器(如处理器10020)所执行,以完成本技术实施例。
[0188]
实施例五
[0189]
本技术实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,其中,计算机程序被处理器执行时实现实施例中的针对虚拟角色的处理方法的步骤。
[0190]
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eep rom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中针对虚拟角色的处理方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
[0191]
显然,本领域的技术人员应该明白,上述的本技术实施例的各模块或各步骤可以用通用的计算机设备来实现,它们可以集中在单个的计算机设备上,或者分布在多个计算机设备所组成的网络上,可选地,它们可以用计算机设备可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算机设备来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本技术实施例不限制于任何特定的硬件和软件结合。
[0192]
需要说明的是,以上仅为本技术的优选实施例,并非因此限制本技术的专利保护范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
技术特征:
1.一种针对虚拟角色的处理方法,其特征在于,所述方法包括:获取虚拟角色的多个blendshape网格;确定虚拟角色的目标骨骼,所述目标骨骼包括在关键点与blendshape网格产生冲突的骨骼;获取与所述目标骨骼关联的校正网格,所述校正网格包括所述目标骨骼在目标位置处对应的blendshape网格;根据所述多个blendshape网格和所述校正网格,确定所述虚拟角色的目标形状。2.根据权利要求1所述的方法,其特征在于,所述目标骨骼为多个骨骼之一;所述方法还包括:确定每个骨骼在运动过程中对关键点轮廓的影响幅度;将对所述关键点轮廓的影响幅度大于预设阈值的骨骼,确定为所述目标骨骼。3.根据权利要求1或2所述的方法,其特征在于,所述目标骨骼包括眼角骨骼,所述眼角骨骼具有上方极限位置,所述上方极限位置对应所述校正网格中的第一校正网格;根据所述多个blendshape网格和所述校正网格,确定所述虚拟角色的目标形状,包括:在眼角骨骼向上移动的情况下,根据所述多个blendshape网格和所述第一校正网格,确定虚拟角色眼部的目标形状。4.根据权利要求1或2所述的方法,其特征在于,所述目标骨骼包括眼角骨骼,所述眼角骨骼具有下方极限位置,所述下方极限位置对应所述校正网格中的第二校正网格;根据所述多个blendshape网格和所述校正网格,确定所述虚拟角色的目标形状,包括:在眼角骨骼向下移动的情况下,根据所述多个blendshape网格和所述第二校正网格,确定虚拟角色眼部的目标形状。5.根据权利要求1所述的方法,其特征在于,所述目标骨骼为多个骨骼之一;所述方法还包括:确定所述虚拟角色的多个捏脸参数;确定所述多个捏脸参数和所述多个骨骼之间的影响关系;根据所述影响关系,确定所述多个捏脸参数中同时影响到同一个骨骼的多个目标捏脸参数;为所述多个目标捏脸参数中的每个目标捏脸参数分别配置一组独立的目标blendshape网格。6.一种针对虚拟角色的处理装置,其特征在于,所述装置包括:第一获取模块,用于获取虚拟角色的多个blendshape网格;第一确定模块,用于确定虚拟角色的目标骨骼,所述目标骨骼包括在关键点与blendshape网格产生冲突的骨骼;第二获取模块,用于获取与所述目标骨骼关联的校正网格,所述校正网格包括所述目标骨骼在目标位置处对应的blendshape网格;第二确定模块,用于根据所述多个blendshape网格和所述校正网格,确定所述虚拟角色的目标形状。7.一种针对虚拟角色的处理方法,其特征在于,所述方法包括:确定虚拟角色的多个blendshape网格,不同的blendshape网格对应不同的权重;
确定虚拟角色的目标骨骼,所述目标骨骼与相应的blendshape网格在关键点相互影响;根据所述相应的blendshape网格的权重,以预定速度将所述目标骨骼拉回到初始位置。8.根据权利要求7所述的方法,其特征在于,所述目标骨骼为多个骨骼之一;所述方法包括:确定每个骨骼在运动过程中对关键点轮廓的影响幅度;将对所述关键点轮廓的影响幅度大于预设阈值的骨骼,确定为所述目标骨骼。9.一种计算机设备,其特征在于,包括:至少一个处理器;及与所述至少一个处理器通信连接的存储器;其中:所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至5或7至8中任一项所述的方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机指令,所述计算机指令被处理器执行时实现如权利要求1至5或7至8中任一项所述的方法。
技术总结
本申请实施例了提供一种针对虚拟角色的处理方法,该针对虚拟角色的处理方法包括:获取虚拟角色的多个Blendshape网格;确定虚拟角色的目标骨骼,所述目标骨骼包括在关键点与Blendshape网格产生冲突的骨骼;获取与所述目标骨骼关联的校正网格,所述校正网格包括所述目标骨骼在目标位置处对应的Blendshape网格;根据所述多个Blendshape网格和所述校正网格,确定所述虚拟角色的目标形状。本申请实施例的技术方案可以先确定在形变上会与Blends hape网格产生冲突的骨骼,然后制作额外的Blendshape网格(校正网格)对应到骨骼移动的目标位置。通过混合不同比例的校正网格,可以矫正骨骼移动造成的轮廓形变,并在冲突位置进行正常表情驱动,从而实现虚拟角色在目标骨骼移动情形下的正常显示。移动情形下的正常显示。移动情形下的正常显示。
技术研发人员:刘宏伟 冯健珑 刘杰
受保护的技术使用者:上海哔哩哔哩科技有限公司
技术研发日:2023.07.18
技术公布日:2023/10/6
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
