CN117237487A - 创建与编辑BlendShape节点的方法、装置、存储介质及电子设备 - Google Patents
创建与编辑BlendShape节点的方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN117237487A CN117237487A CN202311515276.9A CN202311515276A CN117237487A CN 117237487 A CN117237487 A CN 117237487A CN 202311515276 A CN202311515276 A CN 202311515276A CN 117237487 A CN117237487 A CN 117237487A
- Authority
- CN
- China
- Prior art keywords
- target
- expression
- blendshape
- preset
- data
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 230000014509 gene expression Effects 0.000 claims abstract description 304
- 238000004590 computer program Methods 0.000 claims description 18
- 210000000988 bone and bone Anatomy 0.000 claims description 9
- 230000000694 effects Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 6
- 230000008921 facial expression Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 230000035515 penetration Effects 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000001815 facial effect Effects 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 210000003128 head Anatomy 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 210000000887 face Anatomy 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本申请涉及一种创建与编辑BlendShape节点的方法、装置、存储介质及电子设备,其中方法包括:创建预设基础网格对应的初始BlendShape节点,所述预设基础网格为已有蒙皮绑定的基础网格;读取导入的目标模型的目标网格数据,根据所述目标网格数据确定所述目标模型的表情形状对应的目标表情,所述目标表情为预设的表情库中的一种;通过所述初始BlendShape节点创建所述目标表情对应的目标形状,并将所述预设基础网格当前的形状转换为所述目标形状;重复执行所述读取导入的目标模型的目标网格数据的步骤,直到所述表情库中的所有表情遍历完成。本申请具有提升基础网格在不同形状下创建和编辑BlendShape节点的效率的效果。
Description
技术领域
本申请涉及三维动画技术领域,具体涉及一种创建与编辑BlendShape节点的方法、装置、存储介质及电子设备。
背景技术
BlendShape节点是三维计算机动画软件Maya中的融合形变变形器,能够使“基础网格”通过顶点插值运算的方式变形为“目标形状”,通常用于制作表情动画、辅助骨骼制作动画,在Maya中以节点形式存在。
目前,现有的创建并编辑BlendShape节点的方法通常为:人工将模型的OBJ格式的文件手动导入Maya软件中,并通过Maya软件集成的现有功能实现批量的BlendShape节点创建与编辑工作,此方式中批量进行BlendShape节点创建与编辑时,BlendShape节点依附的基础网格只能处于同一种形状,而要在基础网格在不同形状下创建和编辑BlendShape节点只能手动逐个进行操作,导致效率较低。
发明内容
为了提升基础网格在不同形状下创建和编辑BlendShape节点的效率,本申请提供一种创建与编辑BlendShape节点的方法、装置、存储介质及电子设备。
在本申请的第一方面提供了一种创建与编辑BlendShape节点的方法,具体包括:
创建预设基础网格对应的初始BlendShape节点,所述预设基础网格为已有蒙皮绑定的基础网格;
读取导入的目标模型的目标网格数据,根据所述目标网格数据确定所述目标模型的表情形状对应的目标表情,所述目标表情为预设的表情库中的一种;
通过所述初始BlendShape节点创建所述目标表情对应的目标形状,并将所述预设基础网格当前的形状转换为所述目标形状;
重复执行所述读取导入的目标模型的目标网格数据的步骤,直到所述表情库中的所有表情遍历完成。
通过采用上述技术方案,为预设基础网格创建对应的初始BlendShape节点,从而方便后续通过初始BlendShape节点,使预设基础网格摆出不同的形状。接着根据外部导入的目标模型的目标网格数据,确定此目标模型面部的表情形状,进而确定目标表情,即,确定目标模型面部的具体表情类型,然后将此目标表情的表情形状添加到初始BlendShape节点中,从而使得初始BlendShape节点创建出最终的目标形状,以使初始BlendShape节点将预设基础网格变形为目标形状,最后重复操作,再一次导入目标模型,使得预设基础网格变形为其它目标形状,从而实现基础网格在不同形状下,自动进行创建和编辑BlendShape节点,无需人工针对基础网格不同形状进行手动创建和编辑,较好地提升效率。
可选的,所述读取导入的目标模型的目标网格数据,根据所述目标网格数据确定所述目标模型的表情形状对应的目标表情,具体包括:
通过预设的typing库读取并解析导入的目标模型的obj文件,得到目标模型的顶点数据,所述顶点数据包括顶点ID和顶点位置数据;
将所述顶点数据以array形式进行解析,得到目标网格数据;
基于所述目标网格数据,通过预设的OpenMaya库确定所述目标模型的表情形状,并根据所述表情形状确定对应的目标表情。
通过采用上述技术方案,解析得到目标模型的顶点数据后,以array形式对顶点数据进行解析,从而使得后续能较为方便地对目标模型的顶点数据进行处理和操作。另外,采用OpenMaya库可以较为准确快速地读取目标网格数据,从而便于确定目标模型的表情形状所对应的目标表情。
可选的,所述初始BlendShape节点中存储有所述表情库中所有表情对应的预设形状,所有预设形状的权重均为0,所述通过所述初始BlendShape节点创建所述目标表情对应的目标形状,具体包括:
将所述初始BlendShape节点中所述目标表情对应的目标预设形状的权重调整为1,并基于所述预设基础网格对应的预设模型当前的表情骨骼形变,确定所述目标表情的BlendShape数据;
将所述BlendShape数据添加至所述初始BlendShape节点中所述目标预设形状的属性中,并创建所述目标表情对应的目标形状。
通过采用上述技术方案,目标模型的目标表情确定后,将初始BlendShape节点中与其类型相同的表情的预设形状确定为目标预设形状,将目标预设形状的权重从0调整为1,从而使得此目标预设形状可以影响预设模型。接着在预设模型当前的表情骨骼形变的基础上,计算目标表情对应的表情形状的BlendShape数据,从而通过初始BlendShape节点创建目标形状,从而方便后续将目标形状应用到预设模型上,消除预设模型本身的骨骼形变对面部的表情造成影响。
可选的,基于所述预设基础网格对应的预设模型当前的表情骨骼形变,确定所述目标表情的BlendShape数据,具体包括:
在所述目标表情为基础表情时,读取预设模型当前的表情骨骼形变后的第一模型顶点数据,所述预设模型为所述预设基础网格对应的模型,所述基础表情为单一表情;
将所述目标模型的顶点数据与所述第一模型顶点数据作差,得到BlendShape数据。
通过采用上述技术方案,如果目标表情为基础表情,说明目标表情对应的为单一表情,那么将目标模型的顶点数据与包含当前表情骨骼形变的预设模型的第一模型顶点数据作差,从而使得确定的BlendShape数据更加准确,避免后续目标表情应用到预设模型上时出现穿模等问题。
可选的,所述基于所述预设基础网格对应的预设模型当前的表情骨骼形变,确定所述目标表情的BlendShape数据,具体包括:
在所述目标表情为修型表情时,确定预设模型中对应的基础表情形变后和表情骨骼形变后的第二模型顶点数据,所述预设模型为所述预设基础网格对应的模型,所述修型表情为多个基础表情的组合;
将所述目标模型的顶点数据与所述第二模型顶点数据作差,得到BlendShape数据。
通过采用上述技术方案,如果目标表情为修型表情,说明目标表情对应为多个基础表情的组合表情,那么将目标模型的顶点数据、包含目标表情所包含的基础表情的形变以及本身的表情骨骼形变的第二模型顶点数据,两者进行作差,从而使得目标表情应用到预设模型上,呈现较为生动逼真。
可选的,所述将所述BlendShape数据添加至所述初始BlendShape节点中所述目标预设形状的属性中,并创建所述目标表情对应的目标形状,具体包括:
将所述BlendShape数据中的顶点ID的BlendShape数据解析得到MfnPointArrayData格式数据,并将所述BlendShape数据中的顶点位置的BlendShape数据解析得到MFnComponentListData格式数据;
将所述MfnPointArrayData格式数据和所述MFnComponentListData格式数据写入到所述目标预设形状的属性中,得到所述目标表情对应的目标形状。
通过采用上述技术方案,将BlendShape数据解析成MfnPointArrayData格式数据和MFnComponentListData格式数据两部分,方便将目标表情对应的BlendShape数据完整地写入到目标预设形状的属性中,进而使得初始BlendShape节点能准确地创建出目标表情对应的目标形状。
可选的,所述将所述预设基础网格当前的形状转换为所述目标形状,具体包括:
通过所述预设基础网格对应的预设模型的表情骨骼控制所述预设基础网格当前的形状与所述目标形状保持一致。
通过采用上述技术方案,由于BlendShape数据是基于表情骨骼形变而确定,因此需要通过表情骨骼控制预设基础网格形成目标形状,即,控制预设模型做出目标表情,从而消除预设模型本身的表情骨骼形变对面部造成影响。
在本申请的第二方面提供了一种创建与编辑BlendShape节点的装置,具体包括:
节点创建模块,用于创建预设基础网格对应的初始BlendShape节点,所述预设基础网格为已有蒙皮绑定的基础网格;
表情确定模块,用于读取导入的目标模型的目标网格数据,根据所述目标网格数据确定所述目标模型的表情形状对应的目标表情,所述目标表情为预设的表情库中的一种;
网格控制模块,用于通过所述初始BlendShape节点创建所述目标表情对应的目标形状,并将所述预设基础网格当前的形状转换为所述目标形状;
形状切换模块,用于重复执行所述读取导入的目标模型的目标网格数据的步骤,直到所述表情库中的所有表情遍历完成。
通过采用上述技术方案,节点创建模块为预设基础网格创建对应的初始BlendShape节点后,由表情确定模块读取导入的目标模型的目标网格数据,并确定目标模型的目标表情,接着网格控制模块通过初始BlendShape节点创建目标表情对应的目标形状,并将预设基础网格当前的形状转换为此目标形状,最后由形状切换模块重复执行读取导入的目标模型的目标网格数据的步骤,直到所述表情库中的所有表情遍历完成,从而提升基础网格在不同形状下创建和编辑BlendShape节点的效率。
综上所述,本申请包括以下至少一种有益技术效果:
为预设基础网格创建对应的初始BlendShape节点,从而方便后续通过初始BlendShape节点,使预设基础网格摆出不同的形状。接着根据外部导入的目标模型的目标网格数据,确定此目标模型面部的表情形状,进而确定目标表情,即,确定目标模型面部的具体表情类型,然后将此目标表情的表情形状添加到初始BlendShape节点中,从而使得初始BlendShape节点创建出最终的目标形状,以使初始BlendShape节点将预设基础网格变形为目标形状,最后重复操作,再一次导入目标模型,使得预设基础网格变形为其它目标形状,从而实现基础网格在不同形状下,自动进行创建和编辑BlendShape节点,无需人工针对基础网格不同形状进行手动创建和编辑,较好地提升效率。
附图说明
图1是本申请实施例提供的一种创建与编辑BlendShape节点的系统的架构示意图;
图2是本申请实施例提供的一种创建与编辑BlendShape节点的方法的流程示意图;
图3是本申请实施例提供的另一种创建与编辑BlendShape节点的方法的流程示意图;
图4是本申请实施例提供的一种创建与编辑BlendShape节点的装置的结构示意图。
附图标记说明:11、节点创建模块;12、表情确定模块;13、网格控制模块;14、形状切换模块。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。
在本申请实施例的描述中,“示性的”、“例如”或者“举例来说”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示性的”、“例如”或者“举例来说”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示性的”、“例如”或者“举例来说”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,单独存在B,同时存在A和B这三种情况。另外,除非另有说明,术语“多个”的含义是指两个或两个以上。例如,多个系统是指两个或两个以上的系统,多个屏幕终端是指两个或两个以上的屏幕终端。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
参见图1,本申请实施例公开了一种创建与编辑BlendShape节点的系统的架构示意图,具体包括终端和服务器,终端中安装有Maya软件,终端为个人计算机(PersonalComputer,PC)等电子设备,服务器可以为Maya软件的后台服务器,服务器具体可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群。
人员通过终端中的Maya软件导入目标模型,服务器通过读取目标模型的目标网格数据,确定模型对应的面部表情的形状,并将此形状添加到预设模型的基础网格的BlendShape节点中,最终使得基础网格摆出对应的形状。接着重复此过程,再次导入带有其它面部表情的目标模型,直到预设的表情库中的所有表情均导入。从而实现基础网格在不同形状下,自动进行BlendShape节点编辑,提升BlendShape节点编辑的效率。需要说明的是,本申请公开的一种创建与编辑BlendShape节点的方法的执行主体为服务器。
参见图2,本申请实施例公开了一种创建与编辑BlendShape节点的方法的流程示意图,可依赖于计算机程序实现,也可运行于基于冯诺依曼体系的创建与编辑BlendShape节点的装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行,具体包括:
S101:创建预设基础网格对应的初始BlendShape节点。
具体的,基础网格为Maya软件中三维模型的最基本的组成部分,通常由顶点、边和面组成,此外,基础网格还可以通过网格编辑来创建任意的几何图形,以此来创建3D场景或物体。在本申请实施例中,预设基础网格指的是Maya软件中预设模型对应的基础网格。其中,预设模型可以为人物模型的头部模型,也可以为整个人物模型。另外,预设基础网格为已有蒙皮绑定的基础网格,即,预设模型和皮肤进行绑定,使得模型能够跟踪皮肤的变化,从而使得预设模型面部能形成各种不同表情。
在本申请实施例中,一种可行的创建初始BlendShape节点为:基于Maya软件中的形变编辑器工具,具体基于形变编辑器工具中的“创建融合变形”功能,创建预设基础网格对应的初始BlendShape节点。需要说明的是,预设模型的骨骼可能骨骼位移形变的情况。并且初始BlendShape节点可以控制预设模型面部特征的形变变化,例如嘴唇、眼睛、鼻子等的形状,通过初始BlendShape节点创建不同的表情的目标形状,使得预设模型可以在不同的表情之间进行切换和混合。
另外,初始BlendShape节点中存储有基础表情、修型表情对应的预设形状,这些表情的预设形状的权重初始时均为0,权重决定每个表情的预设形状对面部表情的影响程度。其中,面部表情默认包含734种表情,其中,基础表情有258个,修型表情有476个,基础表情为张嘴、闭眼等单一表情,修型表情为叠加张嘴、闭眼单一表情等的基础上的用于修正表情混合导致的部分区域穿模、形体错误等问题而出现的表情。本申请实施例中,为了减少内存和性能消耗,初始BlendShape节点中存储的预设形状为681个。在其他实施例中,也可以为低于681的数量。
S102:读取导入的目标模型的目标网格数据,根据目标网格数据确定目标模型的表情形状对应的目标表情,目标表情为预设的表情库中的一种。
在一个可实现的实施方式中,通过预设的typing库读取并解析导入的目标模型的OBJ文件,得到目标模型的顶点数据;
将顶点数据以array形式进行解析,得到目标网格数据;
基于目标网格数据,通过预设的OpenMaya库确定目标模型的表情形状,并根据表情形状确定对应的目标表情。
具体的,通过终端中的Maya软件导入服务器的目标模型为带有表情形状的头部模型,并且是以OBJ文件的格式导入,服务器获取到目标模型的OBJ文件后,通过python中的typing库读取并解析OBJ文件,从而最终得到目标模型的顶点数据,其中,顶点数据包括目标模型的顶点ID和顶点位置数据,顶点ID为用来标识目标模型中每个顶点的唯一标识符。顶点位置数据为三维空间中每个顶点X、Y、Z坐标。
接着将顶点数据以array形式进行解析,即,将顶点数据转换为数组(array)格式,最终得到目标模型对应的目标网格数据,其中,array通常指的是一种数据结构,它可以存储一系列有序的元素。以array形式进行解析,可以较为方便地对顶点数据进行处理和操作。
最后,调用Maya工具中的OpenMaya库,根据目标网格数据,由OpenMaya库中的MFnMesh类函数,生成对应的网格体,由于网格体能描述目标模型的表面特征和几何形状,因此可以达到快速读取目标模型的目的。OpenMaya库提供了许多用于处理网格数据的API函数和工具,可以使用这些函数和工具对网格数据进行处理、修改和分析。其中,生成网格体就是OpenMaya库中一项很常用的功能。进一步地,再通过OpenMaya库根据网格体确定目标模型面部的表情形状,进而确定目标模型的目标表情。另外,目标表情为预设的表情库中的一种,表情库所存储的表情与初始BlendShape节点中存储的表情一致。
S103:通过初始BlendShape节点创建目标表情对应的目标形状,并将预设基础网格当前的形状转换为目标形状。
具体的,由于初始BlendShape节点中存储有基础表情、修型表情对应的预设形状,即,表情库中所有表情对应的预设形状,并且针对这些预设形状存在权重分配,从而达到对预设模型进行多样化的表情控制。在本申请实施例中,在初始BlendShape节点,所有预设形状的权重均为0,对应的表情均不会对预设模型产生影响,并且所有预设形状的其它属性值也均为默认值。因此,当导入目标模型并确定其面部的目标表情后,从初始BlendShape节点中存储的众多表情的预设形状中,选取此目标表情对应的目标预设形状,并将此目标预设形状的权重从0调整为1,即,此目标表情会对预设模型产生影响。
接着将此目标模型的表情形状添加到预设模型的初始BlendShape节点中目标预设形状的属性中,最终通过初始BlendShape节点创建出此目标表情对应的目标形状。示例性地,目标表情为“张嘴”,那么初始BlendShape节点中“张嘴”对应的目标预设形状的权重调整为1,接着“张嘴”的目标模型的顶点数据写入到“张嘴”对应的目标预设形状的属性中,最终通过初始BlendShape节点创建出目标表情对应的目标形状。
最后由初始BlendShape节点通过顶点差值运算的方式,将预设基础网格当前的形状转换为目标形状,此为现有技术,在此不再赘述。
S104:重复执行所述读取导入的目标模型的目标网格数据的步骤,直到表情库中的所有表情遍历完成。
具体的,将预设基础网格当前的形状转换为目标形状后,重复执行所述读取导入的目标模型的目标网格数据,继续根据当前的目标网格数据,确定当前的目标模型的表情形状,进而根据表情形状确定对应的目标表情,再由初始BlendShape节点创建此目标表情对应的目标形状,进而使预设基础网格当前的形状转换为目标形状,直到表情库中的所有表情遍历完成。需要说明的是,预设基础网格摆出目标形状后,下一次导入目标模型之前,需要将初始BlendShape节点中的所有预设形状的权重初始为0,并且将所有预设形状的属性值恢复至默认值,便于进行新的目标形状的创建。
参见图3,本申请实施例公开了另一种创建与编辑BlendShape节点的方法的流程示意图,可依赖于计算机程序实现,也可运行于基于冯诺依曼体系的创建与编辑BlendShape节点的装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行,具体包括:
S201:创建预设基础网格对应的初始BlendShape节点。
S202:读取导入的目标模型的目标网格数据,根据目标网格数据确定目标模型的表情形状对应的目标表情,目标表情为预设的表情库中的一种。
具体的,可参见步骤S101-S102,在此不再赘述。
S203:将初始BlendShape节点中目标表情对应的目标预设形状的权重调整为1,并基于预设基础网格对应的预设模型当前的表情骨骼形变,确定目标表情的BlendShape数据。
具体的,确定目标模型的目标表情后,将初始BlendShape节点中目标表情对应的目标预设形状的权重调为1,此部分可参见步骤S103,在此不再赘述。进一步地,基于目标表情和预设模型当前的表情骨骼形变,确定目标表情的BlendShape数据,一种可行的确定方式为:
在目标表情为基础表情时,读取预设模型当前的表情骨骼形变后的第一模型顶点数据;
将目标模型的顶点数据与第一模型顶点数据作差,得到BlendShape数据。
具体的,如果目标模型的目标表情为张嘴或闭眼等单一表情,确定目标表情为基础表情,具体可通过识别目标模型的面部特征,确定目标表情是否为单一表情。那么通过预设的typing库读取预设模型当前的表情骨骼形变后的第一模型顶点数据,在其它实施例中,也可以通过Assimp库。接着将目标表情对应的目标模型的顶点数据、与第一模型顶点数据进行作差运算,得到目标表情的BlendShape数据,以消除预设模型本身的表情骨骼形变对面部造成的影响,使得目标表情对应的BlendShape数据更加准确客观。其中,表情骨骼指的是三维人物模型中控制表情的骨骼,在本申请实施例为预设模型中控制表情的骨骼。另外,针对预设模型当前的表情,面部的表情骨骼必然存在位移和形变。
需要说明的是,在本申请实施例中,目标表情的BlendShape数据是基于表情骨骼形变而确定,从而使得BlendShape数据写入初始BlendShape节点后,进而使得目标表情在预设模型上的穿模问题,细节不足问题、形体错误问题等进行修正。
在其它实施例中,基于预设模型当前的表情骨骼形变,确定目标表情的BlendShape数据,另一种可行的确定方式为:
在目标表情为修型表情时,确定预设模型中对应的基础表情形变后和表情骨骼形变后的第二模型顶点数据,预设模型为预设基础网格对应的模型;
将目标模型的顶点数据与第二模型顶点数据作差,得到BlendShape数据。
具体的,如果目标表情为修型表情,即,目标表情为张嘴或闭眼等基础表情的组合表情,那么通过typing库读取预设模型中对应的基础表情形变后和表情骨骼形变后的第二模型顶点数据,即,第二模型顶点数据不仅包含表情骨骼形变对预设模型的形状的影响,还包含预设模型当前的基础表情的形变对预设模型的影响。接着将目标表情对应的目标模型的顶点数据与第二模型顶点数据进行作差运算,最终得到目标表情的BlendShape数据。
需要说明的是,预设模型中对应的基础表情形变后,指的是目标表情所组合的基础表情的形变后。例如,目标模型的目标表情为“张嘴+闭眼”,那么将包含预设模型中“张嘴”基础表情形变、“闭眼”基础表情形变以及表情骨骼形变后的顶点数据作为第二模型顶点数据。从而使得预设模型后续能准确摆出目标表情。
S204:将BlendShape数据添加至初始BlendShape节点中目标预设形状的属性中,并创建目标表情对应的目标形状。
在一种可实现的实施方式中,将BlendShape数据中的顶点ID的BlendShape数据解析得到MfnPointArrayData格式数据,并将BlendShape数据中的顶点位置的BlendShape数据解析得到MFnComponentListData格式数据;
将MfnPointArrayData格式数据和MFnComponentListData格式数据写入到目标预设形状的属性中,得到所述目标表情对应的目标形状。
具体的,由于确定的BlendShape数据中的顶点数据是包含顶点ID和顶点位置数据,因此通过Maya软件,将BlendShape数据中的顶点ID对应的BlendShape数据解析成MfnPointArrayData格式数据,将BlendShape数据中的顶点位置对应的BlendShape数据解析成MFnComponentListData格式数据。最后将MfnPointArrayData格式数据和MFnComponentListData格式数据均写入到初始BlendShape节点中的目标预设形状的属性中,进而由初始BlendShape节点创建出目标表情对应的目标形状。
S205:通过预设基础网格对应的预设模型的表情骨骼控制预设基础网格当前的形状与目标形状保持一致。
具体的,目标形状创建后,需要通过预设模型面部的表情骨骼来控制预设基础网格当前的形状与目标形状保持一致。由于BlendShape数据是基于表情骨骼形变而确定,因此需要通过表情骨骼控制预设基础网格形成目标形状,即,控制预设模型做出目标表情,从而消除预设模型本身的表情骨骼形变对面部造成影响。表情骨骼控制预设基础网格的过程具体如下:通过Maya工具将此时的初始BlendShape节点连接到表情骨骼上,以使表情骨骼可以控制预设基础网格。
S206:重复执行所述读取导入的目标模型的目标网格数据的步骤,直到表情库中的所有表情遍历完成。
具体的,可参见步骤S104,在此不再赘述。
本申请实施例创建与编辑BlendShape节点的方法的实施原理为:为预设基础网格创建对应的初始BlendShape节点,从而方便后续通过初始BlendShape节点,使预设基础网格摆出不同的形状。接着根据外部导入的目标模型的目标网格数据,确定此目标模型面部的表情形状,进而确定目标表情,即,确定目标模型面部的具体表情类型,然后将此目标表情的表情形状添加到初始BlendShape节点中,从而使得初始BlendShape节点创建出最终的目标形状,以使初始BlendShape节点将预设基础网格变形为目标形状,最后重复操作,再一次导入目标模型,使得预设基础网格变形为其它目标形状,从而实现基础网格在不同形状下,自动进行创建和编辑BlendShape节点,无需人工针对基础网格不同形状进行手动创建和编辑,较好地提升效率。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参见图4,为本申请实施例提供的创建与编辑BlendShape节点的装置的结构示意图。该应用于创建与编辑BlendShape节点的装置可以通过软件、硬件或者两者的结合实现成为装置的全部或一部分。该装置1包括节点创建模块11、表情确定模块12、网格控制模块13以及形状切换模块14。
节点创建模块11,用于创建预设基础网格对应的初始BlendShape节点,预设基础网格为已有蒙皮绑定的基础网格;
表情确定模块12,用于读取导入的目标模型的目标网格数据,根据目标网格数据确定目标模型的表情形状对应的目标表情,目标表情为预设的表情库中的一种;
网格控制模块13,用于通过初始BlendShape节点创建目标表情对应的目标形状,并将预设基础网格当前的形状转换为目标形状;
形状切换模块14,用于重复执行读取导入的目标模型的目标网格数据的步骤,直到表情库中的所有表情遍历完成。
可选的,表情确定模块12,具体用于:
通过预设的typing库读取并解析导入的目标模型的obj文件,得到目标模型的顶点数据,顶点数据包括顶点ID和顶点位置数据;
将顶点数据以array形式进行解析,得到目标网格数据;
基于目标网格数据,通过预设的OpenMaya库确定目标模型的表情形状,并根据表情形状确定对应的目标表情。
可选的,网格控制模块13,具体用于:
将初始BlendShape节点中目标表情对应的目标预设形状的权重调整为1,并基于预设基础网格对应的预设模型当前的表情骨骼形变,确定目标表情的BlendShape数据;
将BlendShape数据添加至初始BlendShape节点中目标预设形状的属性中,并创建目标表情对应的目标形状。
可选的,网格控制模块13,具体还用于:
在目标表情为基础表情时,读取预设模型当前的表情骨骼形变后的第一模型顶点数据,预设模型为预设基础网格对应的模型,基础表情为单一表情;
将目标模型的顶点数据与第一模型顶点数据作差,得到BlendShape数据。
可选的,网格控制模块13,具体还用于:
在目标表情为修型表情时,确定预设模型中对应的基础表情形变后和表情骨骼形变后的第二模型顶点数据,预设模型为预设基础网格对应的模型,修型表情为多个基础表情的组合;
将目标模型的顶点数据与第二模型顶点数据作差,得到BlendShape数据。
可选的,网格控制模块13,具体还用于:
将BlendShape数据中的顶点ID的BlendShape数据解析得到MfnPointArrayData格式数据,并将BlendShape数据中的顶点位置的BlendShape数据解析得到MFnComponentListData格式数据;
将MfnPointArrayData格式数据和MFnComponentListData格式数据写入到目标预设形状的属性中,得到目标表情对应的目标形状。
可选的,网格控制模块13,具体还用于:
通过预设基础网格对应的预设模型的表情骨骼控制预设基础网格当前的形状与目标形状保持一致。
需要说明的是,上述实施例提供的一种创建与编辑BlendShape节点的装置在执行创建与编辑BlendShape节点的方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的一种创建与编辑BlendShape节点的装置与一种创建与编辑BlendShape节点的方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
本申请实施例还公开一种计算机可读存储介质,并且,计算机可读存储介质存储有计算机程序,其中,计算机程序被处理器执行时,采用了上述实施例的一种创建与编辑BlendShape节点的方法。
其中,计算机程序可以存储于计算机可读介质中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间件形式等,计算机可读介质包括能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM)、随机存取存储器(RAM)、电载波信号、电信信号以及软件分发介质等,需要说明的是,计算机可读介质包括但不限于上述元器件。
其中,通过本计算机可读存储介质,将上述实施例的一种创建与编辑BlendShape节点的方法存储于计算机可读存储介质中,并且,被加载并执行于处理器上,以方便上述方法的存储及应用。
本申请实施例还公开一种电子设备,计算机可读存储介质中存储有计算机程序,计算机程序被处理器加载并执行时,采用了上述一种创建与编辑BlendShape节点的方法。
其中,电子设备可以采用台式电脑、笔记本电脑或者云端服务器等电子设备,并且,电子设备包括但不限于处理器以及存储器,例如,电子设备还可以包括输入输出设备、网络接入设备以及总线等。
其中,处理器可以采用中央处理单元(CPU),当然,根据实际的使用情况,也可以采用其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,通用处理器可以采用微处理器或者任何常规的处理器等,本申请对此不做限制。
其中,存储器可以为电子设备的内部存储单元,例如,电子设备的硬盘或者内存,也可以为电子设备的外部存储设备,例如,电子设备上配备的插接式硬盘、智能存储卡(SMC)、安全数字卡(SD)或者闪存卡(FC)等,并且,存储器还可以为电子设备的内部存储单元与外部存储设备的组合,存储器用于存储计算机程序以及电子设备所需的其他程序和数据,存储器还可以用于暂时地存储已经输出或者将要输出的数据,本申请对此不做限制。
其中,通过本电子设备,将上述实施例的一种创建与编辑BlendShape节点的方法存储于电子设备的存储器中,并且,被加载并执行于电子设备的处理器上,方便使用。
以上所述者,仅为本公开的示例性实施例,不能以此限定本公开的范围。即但凡依本公开教导所作的等效变化与修饰,皆仍属本公开涵盖的范围内。本领域技术人员在考虑说明书及实践这里的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未记载的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的范围和精神由权利要求限定。
Claims (10)
1.一种创建与编辑BlendShape节点的方法,其特征在于,所述方法包括:
创建预设基础网格对应的初始BlendShape节点,所述预设基础网格为已有蒙皮绑定的基础网格;
读取导入的目标模型的目标网格数据,根据所述目标网格数据确定所述目标模型的表情形状对应的目标表情,所述目标表情为预设的表情库中的一种;
通过所述初始BlendShape节点创建所述目标表情对应的目标形状,并将所述预设基础网格当前的形状转换为所述目标形状;
重复执行所述读取导入的目标模型的目标网格数据的步骤,直到所述表情库中的所有表情遍历完成。
2.根据权利要求1所述的创建与编辑BlendShape节点的方法,其特征在于,所述读取导入的目标模型的目标网格数据,根据所述目标网格数据确定所述目标模型的表情形状对应的目标表情,具体包括:
通过预设的typing库读取并解析导入的目标模型的obj文件,得到目标模型的顶点数据,所述顶点数据包括顶点ID和顶点位置数据;
将所述顶点数据以array形式进行解析,得到目标网格数据;
基于所述目标网格数据,通过预设的OpenMaya库确定所述目标模型的表情形状,并根据所述表情形状确定对应的目标表情。
3.根据权利要求1所述的创建与编辑BlendShape节点的方法,其特征在于,所述初始BlendShape节点中存储有所述表情库中所有表情对应的预设形状,所有预设形状的权重均为0,所述通过所述初始BlendShape节点创建所述目标表情对应的目标形状,具体包括:
将所述初始BlendShape节点中所述目标表情对应的目标预设形状的权重调整为1,并基于所述预设基础网格对应的预设模型当前的表情骨骼形变,确定所述目标表情的BlendShape数据;
将所述BlendShape数据添加至所述初始BlendShape节点中所述目标预设形状的属性中,并创建所述目标表情对应的目标形状。
4.根据权利要求3所述的创建与编辑BlendShape节点的方法,其特征在于,所述基于所述预设基础网格对应的预设模型当前的表情骨骼形变,确定所述目标表情的BlendShape数据,具体包括:
在所述目标表情为基础表情时,读取预设模型当前的表情骨骼形变后的第一模型顶点数据,所述预设模型为所述预设基础网格对应的模型,所述基础表情为单一表情;
将所述目标模型的顶点数据与所述第一模型顶点数据作差,得到BlendShape数据。
5.根据权利要求3所述的创建与编辑BlendShape节点的方法,其特征在于,所述基于所述预设基础网格对应的预设模型当前的表情骨骼形变,确定所述目标表情的BlendShape数据,具体包括:
在所述目标表情为修型表情时,确定预设模型中对应的基础表情形变后和表情骨骼形变后的第二模型顶点数据,所述预设模型为所述预设基础网格对应的模型,所述修型表情为多个基础表情的组合;
将所述目标模型的顶点数据与所述第二模型顶点数据作差,得到BlendShape数据。
6.根据权利要求3所述的创建与编辑BlendShape节点的方法,其特征在于,所述将所述BlendShape数据添加至所述初始BlendShape节点中所述目标预设形状的属性中,并创建所述目标表情对应的目标形状,具体包括:
将所述BlendShape数据中的顶点ID的BlendShape数据解析得到MfnPointArrayData格式数据,并将所述BlendShape数据中的顶点位置的BlendShape数据解析得到MFnComponentListData格式数据;
将所述MfnPointArrayData格式数据和所述MFnComponentListData格式数据写入到所述目标预设形状的属性中,得到所述目标表情对应的目标形状。
7.根据权利要求1所述的创建与编辑BlendShape节点的方法,其特征在于,所述将所述预设基础网格当前的形状转换为所述目标形状,具体包括:
通过所述预设基础网格对应的预设模型的表情骨骼控制所述预设基础网格当前的形状与所述目标形状保持一致。
8.一种创建与编辑BlendShape节点的装置,其特征在于,包括:
节点创建模块(11),用于创建预设基础网格对应的初始BlendShape节点,所述预设基础网格为已有蒙皮绑定的基础网格;
表情确定模块(12),用于读取导入的目标模型的目标网格数据,根据所述目标网格数据确定所述目标模型的表情形状对应的目标表情,所述目标表情为预设的表情库中的一种;
网格控制模块(13),用于通过所述初始BlendShape节点创建所述目标表情对应的目标形状,并将所述预设基础网格当前的形状转换为所述目标形状;
形状切换模块(14),用于重复执行所述读取导入的目标模型的目标网格数据的步骤,直到所述表情库中的所有表情遍历完成。
9.一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其特征在于,所述计算机程序被处理器加载并执行时,采用了权利要求1-7中任一项所述的方法。
10.一种电子设备,包括存储器、处理器及存储在存储器中并能够在处理器上运行的计算机程序,其特征在于,所述处理器加载并执行计算机程序时,采用了权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311515276.9A CN117237487A (zh) | 2023-11-15 | 2023-11-15 | 创建与编辑BlendShape节点的方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311515276.9A CN117237487A (zh) | 2023-11-15 | 2023-11-15 | 创建与编辑BlendShape节点的方法、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117237487A true CN117237487A (zh) | 2023-12-15 |
Family
ID=89086511
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311515276.9A Pending CN117237487A (zh) | 2023-11-15 | 2023-11-15 | 创建与编辑BlendShape节点的方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117237487A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112150594A (zh) * | 2020-09-23 | 2020-12-29 | 网易(杭州)网络有限公司 | 表情制作的方法、装置和电子设备 |
US20210327116A1 (en) * | 2018-12-29 | 2021-10-21 | Huawei Technologies Co., Ltd. | Method for generating animated expression and electronic device |
CN113674385A (zh) * | 2021-08-05 | 2021-11-19 | 北京奇艺世纪科技有限公司 | 一种虚拟表情生成方法、装置、电子设备及存储介质 |
-
2023
- 2023-11-15 CN CN202311515276.9A patent/CN117237487A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210327116A1 (en) * | 2018-12-29 | 2021-10-21 | Huawei Technologies Co., Ltd. | Method for generating animated expression and electronic device |
CN112150594A (zh) * | 2020-09-23 | 2020-12-29 | 网易(杭州)网络有限公司 | 表情制作的方法、装置和电子设备 |
CN113674385A (zh) * | 2021-08-05 | 2021-11-19 | 北京奇艺世纪科技有限公司 | 一种虚拟表情生成方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20150127301A1 (en) | Updating A CAD Model To Reflect Global Or Local Shape Changes | |
CN109844818A (zh) | 用于建立元素的可变形3d模型的方法和相关联系统 | |
CN112172149B (zh) | 自动提升打印效果的方法、装置、设备及存储介质 | |
CN111199062A (zh) | 基于工业开发软件的仿真方法及系统、电子设备 | |
CN111179391A (zh) | 一种三维动画制作方法、系统及存储介质 | |
US10467359B2 (en) | Special-purpose programmed computer for numerical simulation of a metal forming process having a predefined load path with corresponding mesh adjustment scheme | |
CN116954585A (zh) | 一种工业数字孪生三维可视化场景编辑方法、设备及介质 | |
CN115795629A (zh) | 数据转换方法、数据转换系统以及电子设备 | |
CN103679817A (zh) | 用于计算机图形标注的数据处理方法和装置 | |
CN117237487A (zh) | 创建与编辑BlendShape节点的方法、装置、存储介质及电子设备 | |
CN116595839A (zh) | 一种生成结构分析模型的系统 | |
CN115935909A (zh) | 一种文件生成方法、装置及电子设备 | |
CN112884899B (zh) | 三维构件的生成方法、装置、计算机设备及存储介质 | |
CN111046472B (zh) | 模型构件信息的显示方法、装置、计算机设备和存储介质 | |
CN110837707B (zh) | 一种有限元分析系统、方法、计算机设备及存储介质 | |
CN114022105A (zh) | 数据处理方法、装置、电子设备和可读存储介质 | |
WO2023179091A1 (zh) | 三维模型渲染方法、装置、设备、存储介质及程序产品 | |
CN111027196A (zh) | 一种电力设备的仿真分析任务处理方法、装置及存储介质 | |
CN112585573A (zh) | 编译控制方法、编译控制装置和存储介质 | |
JP2012128609A (ja) | 図面作成支援方法及び装置 | |
CN115114689B (zh) | 几何图形边界标记方法、装置、电子设备和可读存储介质 | |
CN110955380A (zh) | 访存数据生成方法、存储介质、计算机设备和装置 | |
CN112329102B (zh) | 建筑设计软件中结构楼板模型的生成方法和装置 | |
US10977861B1 (en) | Inferring quality in point cloud-based three-dimensional objects using topographical data analysis | |
CN117635756B (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 |