本文介绍了旧版MetaHuman的工作流程: 此工作流程仅在虚幻引擎4中受支持,适用于包含使用旧版 MetaHuman Creator创建的MetaHuman的项目。 有关使用新版MetaHuman和虚幻引擎5的等效工作流程,请参阅MetaHuman示例(UE5)一节。
此示例可用于虚幻引擎4.26。以及虚幻引擎4.27。 本项目属于图形密集型场景,需要高端系统且配备强大显卡,同时使用虚幻引擎的最新光线追踪和毛发功能,才能看到预期效果。
MetaHuman示例是由两个逼真的数字人类角色组成的完整过场动画,这两个角色承载了Epic Game在角色技术方面的所有最新进展。 此示例项目让你可以一睹由MetaHuman Creator生成的数字角色MetaHuman的风采;MetaHuman Creator是一款可以创建高质量角色的在线应用。
研究和修改此示例将帮助你理解如何实现以下操作:
在自己的项目中设置MetaHuman
使用实时动作捕捉(即MoCap)数据,通过Live Link驱动动画
管理多个资产的细节级别,支持从高端到低端的硬件和平台
开始之前
最好使用搭配强大显卡的高端系统,以体验MetaHuman示例的最佳效果。 这可以确保帧率稳定,还能查看虚幻引擎的最新光线追踪、毛发和动作捕捉功能。
推荐系统要求:
Windows 10 1902或更高版本,支持DirectX 12
支持光线追踪的NVIDIA显卡
虚幻引擎4.26.1或更高版本
打开Epic Games启动器,前往学习(Learn)选项卡,下载MetaHumans示例项目。
该项目的光照效果和各种功能均基于上述规格而设计,不过,即使不用上述推荐的硬件规格,也可以打开并运行此项目。 虽然项目的视效会与预期不符,但你仍可探索内容的设置方式。
什么是MetaHuman?
MetaHuman是在虚幻引擎的在线应用程序MetaHuman Creator中创建的高质量数字角色。 只需点击几下,你就可以通过Quixel Bridge直接将创建的MetaHuman下载到虚幻引擎中,此在线应用程序中还有成千上万个这样的资产。
MetaHuman远不止是引入到虚幻引擎中的一系列部件,而是经过了精心构思和细致设计,旨在简化创作过程,让创作者能够用虚幻引擎快速开始生成内容。 请先了解MetaHuman角色的核心构成组件,以及如何开始在项目中使用。
MetaHuman项目文件结构
MetaHuman文件被存储在MetaHuman文件夹中,类似于引擎的一些模板项目(比如第三人称模板)中的UE4 Mannequin文件的存储方式。 无论你是在查看此示例项目,还是通过MetaHuman Creator创建角色并将其发送到虚幻引擎,这些角色都被存储在各自的文件夹中,以便进行引用和访问。
在本项目中,MetaHuman角色位于SampleMetaHumans文件夹中,如下所示:
此文件夹包含一组核心内容,适用于所有MetaHuman(无论男女)。 SampleMetaHuman/Common文件夹中存放着两个MetaHuman角色均可用的文件,而每个MetaHuman独有的资产则位于对应的metahuman_[Num]文件夹中。 例如,女性角色被存储在metahuman_001中,男性角色被存储在metahuman_004中。
MetaHuman文件夹组织和结构的其他注意事项如下:
所有MetaHuman都使用相同的骨架资产(metahuman_base_skel)。 这简化了MetaHuman角色的动画使用和设置。 其具体位置为Content/SampleMetaHumans/Common/Female/Medium/NormalWeight/Body文件夹。
部分布料并非所有MetaHuman都适用,因此布料被保存在Sample文件夹,而不是Common文件夹中。
metahuman_[Num]文件夹包含了MetaHuman角色的蓝图。 例如,BP_metahuman_001是女性MetaHuman。
MetaHuman蓝图及其组件
虚幻引擎4的默认Mannequin角色由单一的骨架和几何网格体组成,外加针对不同游戏的蓝图组件;MetaHuman则不同,它由许多不同的组件组成。 这些组件构成了身体、面部、毛发和布料。
让我们逐一查看这些组件,并了解它们的重要性:
| 组件图标 | 组件类型 | 说明 |
|---|---|---|
骨骼网格体 | "身体(Body)"组件的子组件,负责驱动其他身体部分组件的所有动画和运动。 躯干(Torso)、腿部(Legs)和脚部(Feet)组件都由着衣的骨骼网格体组件构成,而面部(Face)组件则驱动头部的动画,以实现面部运动。 Groom资产以头部为父项,以精确地匹配头部运动。 面部还包括一个可选的"牙齿外壳"(TeethShell),以优化牙齿的阴影投射。 | |
Groom | 各种Groom组件定义了MetaHuman的头部外观,以面部骨骼网格体组件为父项。 具体包括毛发(Hair)、眉毛(Eyebrows)、绒毛(Fuzz或Vellus)、睫毛(Eyelashes)、上嘴唇胡须(Mustache)和下巴胡须(Beard)。 | |
LODSync | 此组件负责管理其所有MetaHuman组件的细节级别(LOD),以确保组件的变化与彼此同步。 其具体实现方法是查询各组件并确定整体LOD。 这是一个重要组件,可确保MetaHuman在LOD发生变更时能拥有一致的外观,因为某些组件的LOD比其他组件要少。 例如,面部骨骼网格体组件使用8个LOD,而身体组件则仅使用4个LOD。 |
MetaHuman LODSync组件
无论你是在探索本示例,还是通过MetaHuman Creator创建自己的MetaHuman,LODSync组件都能将MetaHuman蓝图的所有组件整合在一起,确保它们的外观保持一致。 MetaHuman包含许多不同的组件,这些组件构成了毛发、面部和身体。 每个组件又可以包含不同数量的LOD。 例如,脸部组件包含8个LOD,而身体组件只有4个。 LODSync组件可确保这些组件保持同步。
你可使用添加组件(Add Component)下拉选项,将LODSync组件添加到蓝图组件堆栈中。
选择LODSync组件后,细节(Details)面板会显示所有组件中查询到的最高LOD数量,并显示受LODSync组件管理的所有组件的列表。
| 属性 | 说明 |
|---|---|
LOD数量(Num LODs) | 指定该MetaHuman的所有子组件可用的最大LOD数。 如果设为-1,则将计算所有子组件,以决定最大的可用LOD数。 |
强制LOD(Forced LOD) | 指定一个特定的LOD,供所有子组件使用。 如果设置为-1,则LOD将根据其屏幕尺寸自动切换,还将根据使用LODSync配置的其他组件在应该切换时自动切换。 |
待同步组件(Components to Sync) | 由构成此MetaHuman蓝图的所有子组件形成的数组。 每个数组元素都包括组件(Components)列表所引用的组件名称及其指定的同步选项(Sync Option)。 同步选项决定了在考虑LOD切换时,该组件的LOD是否应贡献、跟随、不贡献或禁用。 |
自定义LOD映射(Custom LOD Mapping) | 为通过蓝图组件列表添加的指定组件启用LOD控制。 对于LOD数量少于最高组件LOD数量的组件而言,必须使用此功能将其无缝映射以达成同步。 |
使用MetaHuman制作动画
将动画重定向到MetaHuman
本MetaHumans示例还专门针对男性和女性角色提供了姿势资产,这些资产可将使用UE4 Mannequin的现有动画重定向到MetaHuman上。
将动画重定向到MetaHuman指南介绍了将现有的虚幻引擎4 Mannequin动画重定向到MetaHuman的要求、设置和流程。
搭配MetaHuman使用动作捕捉
MetaHumans可以使用全身和面部动作捕捉数据进行驱动,而这些数据可以使用Live Link插件实时流送至虚幻引擎,Live Link插件带有用于DCC应用程序(如Motionbuilder或Maya)的Live Link,以及用于捕捉数据的Live Link Face应用程序。 分配给MetaHuman的动画蓝图负责接收所有必要的数据,并将其导向对应的骨架。 然后,角色的现有MetaHuman蓝图(例如BP_metahuman_001)就可以接收并使用来自动画蓝图的数据,并通过由Live Link传入的动作捕捉数据进行驱动。
要在你的MetaHuman中实现此操作,请选择名为身体(Body)的骨骼网格体组件,并使用细节(Details)面板将动画模式(Animation Mode)更改为使用动画蓝图(Use Animation Blueprint)。
例如,如果你希望动画能持续实时更新,且无需在编辑器中启用模拟(Simulation)模式,那么你可为组件列表添加一个LiveLink骨骼动画(LiveLink Skeletal Animation)组件。 这样就可以使用实时主体调整暂存和布局,而无需等到模拟开始接受动画数据。
MetaHuman及其控制绑定
本示例中的MetaHuman以及通过MetaHuman Creator创建的MetaHuman均已完全绑定,可以在虚幻引擎中立即使用。 这包括全身和面部绑定。 每个MetaHuman绑定最多由五个独立的控制绑定组成,它们以分层的方式协同工作。 这种方式可以灵活且更精细地控制MetaHuman及其动画。
让我们来看看绑定的设置方式以及相互之间的配合情况。
MetaHumans的控制绑定被分为三层群组:傀儡绑定、变形绑定、布料物理。
MetaHuman绑定第1层:傀儡绑定
傀儡绑定(Puppet Rig)是MetaHuman的第一层。 肢体和面部的动作都是从这一层开始的。 这些绑定是动画师能看到和使用的控制点。
导航至下列目录,即可查看身体和面部的控制绑定:
MetaHumans/Common/Common/并打开MetaHuman_ControlRig。
MetaHumans/Common/Face/并打开Face_ControlBoard_CtrlRig。
在本示例项目中,所有动画位于动画控制点之上。 在为目标平台/硬件创建动画时,你需要在动画序列中将身体绑定烘焙至正向运动学(FK)关节,将面部绑定烘焙至RigLogic表达式曲线。 在游戏内进行此操作会影响性能,因为这需要实时运行Sequencer和控制绑定。
MetaHuman绑定第2层:变形绑定
变形绑定(Deformation Rigs)是MetaHuman的第2层,负责使用控制绑定来驱动所有的扭曲和解剖关节。 在变形绑定之后是动画蓝图中的12个Pose Driver节点,这些节点可驱动超过100个矫正身体姿势,有助于保持体积和优化MetaHuman的整体变形。
面部(Face)使用RigLogic插件并在后期处理中运行,能够让所有级联变化通过不同的动画接口的RigLogic表达式曲线或Live Link Face运行,并对最终面部动画进行变形。
MetaHuman Rig第3层:布料和物理
最后一层是布料和物理(Clothing and Physics)层。 这一层主要取决于MetaHuman所使用的布料,而布料可能有专属的控制绑定。
你可以在布料使用了控制绑定的女性MetaHuman角色身上看到这样的例子,而在男性MetaHuman角色上,他的连帽衫部分拉绳和后颈兜帽也使用了物理效果。
MetaHuman及其毛发Groom
虚幻引擎的毛发渲染与模拟功能可驱动MetaHuman所使用的基于发束的毛发仿真。 Groom资产编辑器(Groom Asset Editor)等功能可以让MetaHuman在同一处管理其毛发发束和较低细节级别的几何表示。
一个MetaHuman最多包含6项"Groom资产":毛发、上嘴唇胡须、下巴胡须、眉毛、睫毛和毫毛(又称绒毛)。 上述资产都使用MetaHuman蓝图中的Groom组件来描述其毛发的几何形状(发束、发片或网格体)和属性。
每个Groom都有一组LOD,从电影级质量(LOD 0)到远景角色(LOD 7)不等。
LOD会使用特定的毛发几何表示,包括发束(高质量)、发片、网格体(又称头盔)等。 各个LOD的表示方法如下:
LOD 0-1在高端平台(Xbox Series X、PlayStation 5和PC)上使用基于发束的几何体,同时在其他平台上也支持发片表示。
LOD 2-4使用基于发片的表示。
LOD 5-7使用简化的毛发网格体。
对于眉毛或稀疏胡须等毛发,Groom数据会作为额外的纹理层,通过头部着色器直接应用。 这样既能节约成本,又能保持MetaHuman的外观。 所有Groom都是通过一套自定义的蒙皮机制连接到头部的,如此方可将每份毛发发束和毛发发片固定到头部的精确位置。 这一机制目前要求角色头部在所有平台上都启用专用的皮肤缓存选项(移动端除外,毛发会直接附着在骨骼变形上)。
MetaHuman男性Groom依靠毛发物理解算器,根据角色的移动对毛发进行相应的变形,从而让毛发与头部碰撞物发生碰撞。
MetaHuman的性能、平台和项目设置
为了支持多种类型的硬件和平台,MetaHuman经过了精心的开发和设计,可提供从高端电影级体验到高端移动设备的可伸缩性质量。 这确保了同一个MetaHuman可在多个平台上使用,并在保持高保真度的同时满足这些平台的性能要求。
MetaHuman的细节级别指南
在创建MetaHuman的组件时,你可以使用以下规范作为各级LOD的指南。 根据所用的角色、布料和毛发,MetaHuman的质量范围大致如下。
| 细节级别 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|---|---|---|---|---|---|---|---|---|
| 头部 | ||||||||
顶点(Vertices) | 24000 | 12000 | 6000 | 2500 | 1300 | 560 | 270 | 130 |
混合形状(BlendShapes) | 669 | - | - | - | - | - | - | - |
关节(Joints) | 713 | 529 | 397 | 283 | 84 | 70 | 41 | 26 |
皮肤影响(Skin Influences) | 12 | 12 | 12 | 8 | 8 | 8 | 4 | 4 |
动画贴图(Animated Maps) | 是 | 是 | 否 | 否 | 否 | 否 | 否 | 否 |
| 身体 | ||||||||
身体顶点(Body Vertices) | 30500 | 7600 | 3350 | 1507 | - | - | - | - |
矫正(Correctives) | 是 | 是 | 否 | 否 | - | - | - | - |
皮肤影响(Skin Influences) | 8 | 8 | 8 | 4 | - | - | - | - |
| 毛发 | ||||||||
毛发样式发束(Hair Style Strands) | 50000 | 25000 | - | - | - | - | - | - |
毛发样式发片顶点(Hair Style Card Vertices) | 30000 | 15000 | 10000 | 3000 | 1500 | - | - | - |
毛发样式网格体顶点(Hair Style Mesh Vertices) | - | - | - | - | - | 500 | 250 | 100 |
面部毛发发束(Facial Hair Strands) | 10000 | 5000 | - | - | - | - | - | - |
面部毛发发片顶点(Facial Hair Card Vertices) | 15000 | 7000 | 3000 | 1000 | 500 | - | - | - |
物理(Physics) | 是 | 是 | 是 | 否 | 否 | 否 | 否 | 否 |
MetaHuman角色的平台支持
MetaHuman被设计为可在多种平台上运行,从高端PC到移动设备等皆可。
下表能帮你了解MetaHuman对不同平台的支持情况:
| 平台 | 光线追踪支持 | 毛发 | 最佳LOD | 最大纹理尺寸 |
|---|---|---|---|---|
PC(超高和电影级质量) | 是 | 发束和发片 | 0 | 8192 |
PC(中等和较低质量) | 否 | 发束和发片 | 0 | 8192 |
Mac | 否 | 发片 | 0 | 8192 |
PS5/XSX | 否 | 发束和发片 | 0 | 8192 |
PS4/XB1 | 否 | 发片 | 0 | 2048 |
Switch | 否 | 发片 | 3 | 2048 |
iOS/Android | 否 | 发片 | 3 | 2048 |
在移动端和主机平台上运行
要在主机和移动设备上使用MetaHuman,你需要进行一些额外配置。
移动端:
需要将Compat.Max_GPUSKIN_BONES=75添加到项目的Config文件夹下的DefaultEngine.ini配置文件中。 请将该命令添加到[/Script/Engine.RendererSettings]小节下方。
主机端:
你必须拥有Xbox和PlayStation的源代码授权访问权限。 如果有,那么你可以通过我们的Perforce (P4)服务器访问各款主机的必要项目配置文件。
不同平台的场景光照
MetaHuman支持多种质量设置。 其中部分高端质量设置会使用光线追踪等光照设置,但并非所有平台都支持这些设置。
如果你查看"关卡(Level)"部分,你会发现我们会根据不同的平台使用不同的子关卡,加载不同的光照设置。 具体的光照设置由关卡蓝图决定。
| 平台 | 光照设置 |
|---|---|
移动端和第4代主机 | 2个带阴影的聚光光源 |
第5代主机 | 4个带阴影的聚光光源 |
PC | 最多4个有光追且带阴影的聚光光源,以超高质量运行 |
MetaHuman项目设置和插件
要在虚幻引擎中运行,MetaHuman需要启用一系列的项目设置、控制台变量和插件。 下表全面列举了非默认的虚幻引擎要求:
启用的项目设置:
支持16位骨骼索引(Support 16-bit Bone Index)
必要,因为一些组件使用了大量骨骼,如面部骨架等。
使用无限骨骼影响(Use Unlimited Bone Influences)
对面部骨骼网格体必要,因为该网格体使用每顶点12个骨骼影响。
光线追踪(Ray Tracing)
支持计算皮肤缓存(Support Compute Skin Cache)
对光线追踪功能必要,以支持切线的重新计算。
启用的插件:
Alembic for Groom
Groom
控制绑定
Live Link
Live Link控制绑定
Live Link曲线调试UI
其他属性/设置:
针对主机平台启用动态分辨率。
未来针对MetaHuman的优化
对于使用MetaHuman Creator的虚幻引擎项目而言,要创建角色,MetaHuman是未来的趋势。 以下是对虚幻引擎以及MetaHuman优化方向的非详尽列表。
MetaHuman目前不支持Vulkan。
iOS、Android和Switch平台上的MetaHuman质量将持续提高。 包括皮肤材质功能(如动画贴图)、几何细节和毛发附着物等。
身体(Body)组件的"姿势驱动"设置使用成本较高。 虚幻引擎4.26.2热修复和4.27将对该系统进行多项优化。
由于缺乏针对LOD的绑定和模拟的调整,Groom组件的使用成本较高。
Mac上禁用了毛发模拟。 这是一个特定于平台的问题,需要进一步调查。
在XSX上会出现毛发阴影闪烁的问题,该问题将在虚幻引擎4.26.2热修复中解决。
Nintendo Switch上的毛发着色会显示为黑色。 该问题将在虚幻引擎4.27中得到解决。
重新计算切线功能可能会在UV接缝处,或在通过Compat.MAX_GPUSKIN_BONES设置项所创建的区块之间的接缝处,创建不匹配的法线。