- 0
- 0
- 0
分享
- MetaHuman修改头部生成DNA导入UE添加动画全流程
-
2023-07-30
引言
MetaHuman毫无疑问是目前做数字人的绝佳方案,不仅真实度可以达到非常高,MetaHuman Creator捏脸,MetaHuman Animator提供高还原度的表情捕捉,用一部iPhone即可实现影视级的效果,可以说拥有非常强大的生态体系。
不过用MetaHuman的同学可能会遇到过一个问题,就是生成的头部模型形状达不到预期。通过MetaHuman Creator直接来捏脸,这个可控性太弱,很难捏出满意的脸。另外一种方式就是拿现有的模型或者扫描模型,通过骨骼网格体转换为MetaHuman,但生成出来的模型与原始模型形状还是有偏差,需要生成后进行修改(或者说校准)。另外如果需要对模型进行一些艺术加工,就必须修改模型。
Anyway,项目上用MetaHuman的话,多少都会涉及到修改MetaHuman 的头部。网上很多方法都是通过增加BS来实现,增加BS方法实现简单,但如果修改了眼皮、嘴唇,几乎头部每个模型组件都要添加BS,MetaHuman的头部模型每个LOD有9个组件,如果都有修改的话,就需要做9个BS了,显得就有些累赘。流程上来说,需要模型师制作BS,再还需要给绑定师或动画师添加BS。
加BS这种方法虽说在PC上耗的那点性能可以忽略不计,但始终是一种间接的方法。另外一种方法就是直接修改MetaHuman的DNA,这种方法不需要增加BS,流程上来说非常简洁。
自定义头部效果
那流程上怎么做呢?不急,我们先来看看效果。下面这个视频是通过修改Creator上捏的MetaHuman模型,为头部添加了包公的月牙,生成DNA,导入UE后的效果。虽然视频里加了后期视频特效,但月牙不是特效。
由于笔者不擅长模型雕刻,所以为了演示,在Maya中简单雕了个月牙,但实际上方法是通用的,模型可以做很多调整,但改的太猛了,动起来可能会有穿模问题。
总体流程
总的来说,分为三步:
修改模型
生成DNA
导入UE
虽说就这三步,但实际操作起来还是有很多细节的,下面来看看每一步。
修改模型
1.从bridge中导入MetaHuman
无论是在MetaHuman Creator上捏的人,还是网格体转换的MetaHuman,都需要从Quxiel Bridge中下载下来,导入Maya,这一步参考UE官方文档 https://dev.epicgames.com/documentation/zh-cn/metahuman/downloading-and-exporting-metahumans-to-unreal-engine-5-and-maya 。
2.修改模型
笔者是在Maya中修改的,但可以从Maya导出到其他软件中修改,比如可以在ZBrush中修改,但需要注意,不要修改模型的拓扑,不要增加或删除顶点,也不要修改点序。点序错乱会导致后续操作出现模型的错乱,可能看起来面会炸开。
生成DNA
通过虚幻官方提供的DNA校准库可以实现对修改后的模型生成DNA,校准库的介绍参考虚幻官方的资料 https://www.unrealengine.com/zh-CN/blog/new-metahuman-release-brings-easier-sharing-and-dna-calibration
虚幻官方已经开放了DNA校准的代码:
https://github.com/EpicGames/MetaHuman-DNA-Calibration
修改模型和生成DNA全流程演示
对于修改模型和生成DNA的每一步操作,我都在了下面的视频里进行了演示,这个视频中笔者仅对LOD 0进行了修改。
视频里的具体操作步骤如下:
———————————————————
从bridge中导入MetaHuman
另存一份场景文件
复制头部LOD0
在复制头部LOD0上添加月牙或进行其他修改,可以在ZBrush中修改再导入MAYA
导出修改后的头部LOD0为FBX
使用导出的头部FBX和原始DNA生成新DNA
加载新生成的DNA到新场景
保存加载新DNA创建的场景
对头部的修改另存一份场景
删除复制的头部LOD0
载入加载新DNA时创建的场景
修复Z轴偏移
创建符合UE要求的头部骨架
为加载DNA生成的模型指定材质
为cartilage创建一个bling材质
导出新的头部模型和骨骼为FBX
下一步导入UE
———————————————————
头部骨架问题
需要注意的,Bridge导入Maya的头是不能直接导入UE的,头的根骨骼是spine04,需要将spine04连接到root骨骼下的spin03上。因此第13步是为了创建符合MetaHuman的骨架,视频中为了不影响原来骨架,复制了一份root骨架进行的操作。
修复材质问题
生成DNA后可能材质会丢,所以第14步需要为每个模型组件指定材质,这样才能在导入UE后能看到对应的材质插槽。而Maya中eyeEdge_lod0_mesh 和 cartilage_lod0_mesh 共用了一个材质,直接导入Maya就少了一个材质插槽,眼部看起来会有些问题,因此为cartilage创建一个bling材质,这样导入UE就不会有问题了。
导入UE
导入UE的过程全部流程如下面视频所演示
具体操作步骤如下:
———————————————————
从Quxiel下载matahuman导入UE工程
导入上个视频调整骨架和材质后的FBX
导入DNA添加资产指南
添加默认动画rig
添加后期处理动画蓝图
进入动画序列编辑器切换预览网格体
从Quxiel导入的模型上复制材质
启用蒙皮缓存设置重新计算切线
新建地图并放入修改后的头
打开metahuman示例工程打开关卡序列
拷贝Ada的面部控制器动画到包公头上
播放拷贝的面部动画检查是否正常
找到Quxiel下载的包公角色蓝图复制一份
替换复制的包公蓝图中头部骨骼网格体
设置强制的LOD为0
将替换头部的包公蓝图加入场景中
调整预览相机视角
将换头后的包公蓝图加入关卡序列
为换头后的包公蓝图拷贝面部动画
预览动画
为包公拷贝Ada的身体动画
为头发创建新的绑定
替换头发绑定
为下巴的胡须创建新绑定
替换下巴胡须的绑定
为鼻子下的胡须创建新绑定
为鼻子下胡须替换绑定
为眉毛制作新绑定
为眉毛替换新绑定
为面部汗毛制作新绑定
为面部汗毛替换绑定
为睫毛创建新绑定
为睫毛替换新绑定
编译蓝图保存
———————————————————
解决闭眼眼皮异常
导入模型后,可能会出现闭眼时眼皮光照异常,比如异常的黑色阴影,或者穿模能看见眼球的白色部分。这需要开启蒙皮缓存,默认导入模型的蒙皮缓存默认是自动,需要改成“已开启”。
另外分段设置中需要修改分段0(包含眼皮的头部)重新计算切线改为All,如果改为All不起作用,可尝试其他选项。
移动端蒙皮缓存不生效问题
在移动端如果使用LOD0,也可能会有眼皮异常的问题。由于在移动端情况下虚幻引擎中限制了开启蒙皮缓存的最大面数,LOD 0的面数高于阈值,即使打开了蒙皮缓存,实际也不会生效,这时通过使用LOD 2可以避开最大面数限制。另一种方法就是修改阈值,UE 5.0中这个最大面数阈值是硬编码的,需要修改源码。LOD 0的面数远比LOD 2多,需要考虑运行的设备能否带的起来。
解决替换角色蓝图的头后毛发问题
替换角色蓝图的头(FaceMesh)后,由于SkeletonMesh变了,毛发绑定信息丢失导致,导致位置发生错乱,在角色蓝图预览窗口中头发、眉毛、睫毛、胡须、脸上汗毛都看不见了,或者位置没错,但在播放动画时毛发不动,如下图所示情况
这时需要对每一个毛发组件重新制作绑定,
再重新指定到角色蓝图对应毛发组件的槽位上即可。
———————————————————
福利
DNA生成服务
如果需要生成DNA,可参考 粉丝免费生成 MetaHuman DNA 服务。
开源改进版MetaHuman DNA查看器
笔者改进了虚幻官方开源的DNA查看器,用起来更加顺手,现已经开源贡献给社区。
github地址:https://github.com/DigitalHumanSpace/MetaHuman_DNA_Tools
改进项:
默认支持Z轴向上,解决加载DNA旋转轴向不对问题。
一键选择全部LOD,解决每次加载DNA后都要点8次问题。
自动设置默认ma和脚本路径,不用每次都手工选择。
~全文完~
-
阅读原文
* 文章为作者独立观点,不代表数艺网立场转载须知
- 本文内容由数艺网收录采集自微信公众号CG世界 ,并经数艺网进行了排版优化。转载此文章请在文章开头和结尾标注“作者”、“来源:数艺网” 并附上本页链接: 如您不希望被数艺网所收录,感觉到侵犯到了您的权益,请及时告知数艺网,我们表示诚挚的歉意,并及时处理或删除。