MetaHuman示例

深入了解MetaHuman角色的构成,以及如何在自己的项目中加以运用

Windows
MacOS
Linux

This page covers a legacy MetaHumans workflow. This workflow is only supported in Unreal Engine 4, for projects that contain MetaHumans created with the original MetaHuman Creator. For an equivalent workflow that uses current MetaHumans and Unreal Engine 5, refer to the 虚幻引擎5指南 section.

本示例适用于 虚幻引擎4.26.1虚幻引擎4.27。项目包含高画质复杂场景,需要高端系统及显卡支持,并且需要使用虚幻引擎最新的光线追踪和毛发系统才能达到所示效果。

MetaHuman示例中展示了两个全动态的高保真数字人类角色,承载了Epic Game最先进的角色技术。本示例项目将带你一窥**MetaHumans**的奥秘,了解线上应用**MetaHuman Creator**如何打造出这样的数字角色,让你也可以创建自己的高品质角色。

探索和修改本示例将帮助你了解:

  • 如何在自己的项目中创建MetaHuman

  • 如何通过Live Link使用实时动作捕捉(简称动捕)数据来驱动动画

  • 如何管理多种资产的细节等级,从而支持高端及低端硬件和平台

开始之前

MetaHuman示例需要高端系统及显卡支持才能为你提供最佳体验,这可以确保你拥有稳定的帧率并且可以使用虚幻引擎最新的光线追踪、毛发和动作捕捉功能。

推荐系统配置:

  • Windows 10的1902或更新版本,支持DirectX 12

  • 支持光线追踪的英伟达显卡

  • 虚幻引擎4.26.1或更新版本

只需打开Epic Games启动器,在**学习**标签即可找到并下载MetaHumans示例项目。

虽然没有上述的推荐硬件配置也可以打开和运行此项目,但项目中的光照和功能均为推荐配置设计,未达到推荐配置的情况下项目可能无法呈现预期效果,但你仍然可以探索相关内容是如何设置的。

什么是MetaHuman?

MetaHuman是虚幻引擎线上应用MetaHuman Creator打造出来的高保真数字角色。你可以通过Quixel Bridge下载我们已经创建的MetaHuman,和其他Quixel资源一样,只需简单的操作即可将其直接导入虚幻引擎。

MetaHumans不仅是可以导入虚幻引擎的一系列组件,它们经过深思熟虑的设计简化了创作流程,让创作者可以在引擎内快速开始生成内容。请查看构成MetaHuman角色的核心组件,了解如何运用它们创建自己的项目。

MetaHumans项目文件结构

MetaHumans保存在名为MetaHumans的文件夹中,存放方式和之前引擎的模板项目(例如第三人称游戏模板)中的UE4 Mannequin文件类似。无论你是要查看此示例项目,还是使用MetaHuman Creator创建了自己的角色并将其导入虚幻引擎,它们都会被存放在相应的文件夹中,方便你参考和使用。

在此项目中,MetaHuman角色位于 SampleMetaHumans 文件夹:

MetaHumanFileStructure.png

此文件夹包含了所有MetaHuman(男性或女性)通用的核心内容。你可以在 SampleMetaHuman/Common 文件夹找到MetaHuman男性或女性角色都需要使用的文件,而每个MetaHuman自己特有的资产则放在相应的 metahuman_[数字] 文件夹中。例如项目中的女性角色文件保存在metahuman_001,男性角色保存在metahuman_004。

请注意,MetaHumans文件夹的组织方式和结构包括:

  • 所有MetaHuman都使用同样的骨骼资产(metahuman_base_skel)。这样可以简化为MetaHuman角色添加动画和设置的流程。资产路径为:Content/SampleMetaHumans/Common/Female/Medium/NormalWeight/Body

  • 部分衣物可能不适用于所有MetaHuman,因此没有存放在Common文件夹,而是放在 Sample 文件夹。

  • metahuman_[数字] 文件夹中有MetaHuman的蓝图,例如 BP_metahuman_001 就是MetaHuman女性角色的蓝图。

MetaHumans蓝图及其组件

默认的UE4 Mannequin角色由一副骨骼和几何网格体(蓝图中设置了游戏要使用的具体组件)构成,而MetaHumans与此不同,MetaHuman由多种不同的组件组成,这些组件构成了角色的身体、面部、毛发和衣物。

现在我们就来查看一下这些组件,并了解它们的重要性:

BP_MetaHumanComponents.png

组件图标

组件类型

描述

SkeletalMesh_64x.png

骨骼网格体

身体组件的子组件,驱动其他身体部分组件的所有动画和运动。Torso(躯干)、Legs(腿部)和Feet(脚部)组成了覆盖骨骼网格体的组件,而Face(面部)驱动头部的动画,形成面部运动。Groom资产会成为头部的父项,从而精准匹配运动。面部还包括一个可选的TeethShell,帮助改善牙齿上的阴影。

S_Groom_64.png

Groom

一系列定义MetaHuman头部的Groom组件,并且是面部骨骼网格体组件的父项。其中包括Hair(头发)、Eyebrows(眉毛)、Fuzz(毫毛)、Eyelashes(睫毛)、Mustache(胡髭)、Beard(胡须)。

ActorComponent_64x.png

LOD同步

此组件负责管理MetaHuman所有组件的细节等级(LOD),从而确保它们都可以同步更改。它通过查询组件和确定整体LOD来实现这一点。这是一个重要的组件,可以确保MetaHuman在更改LOD时能够有一致的外观,因为有些组件的LOD可能比其它的少。例如面部骨骼网格体组件会使用8个LOD,而身体只有4个。

MetaHuman LODSync组件

无论你是要探索此示例还是在MetaHuman Creator中创建自己的MetaHuman,LOD同步组件会管理MetaHuman蓝图的所有组件,确保外观的一致性。MetaHuman包含了许多不同的组件,用于组成毛发、面部和身体。每个组件都可能包含不同数量的LOD。例如,面部有8个LOD,而身体只有4个。LOD同步组件可以确保它们保持同步。

你可以使用 添加组件(Add Component) 的下拉选择来将LOD同步组件添加到蓝图组件层级中。

LODSyncComponent.png

选中LOD同步组件之后,细节 面板会显示所有组件中查询到的最大LOD数量,然后显示LOD同步组件可以管理的所有组件的列表。

LODSyncComponentProperties.png

属性

描述

LOD数量(Num LODs)

指定MetaHuman所有子组件可使用的LOD最大数量。如果设置为-1,所有子组件都会被算入并确定可用的LOD最大数量

强制LOD(Forced LOD)

指定一个特定的LOD并在所有子组件中使用。如果设置为-1,LOD会自动根据自己的屏幕尺寸自动切换,并根据其他组件的LOD同步配置确定何时自动切换。

组件同步(Components to Sync)

这是构成Metahuman蓝图的所有子组件的数组。每个数组元素都包括在组件列表中引用的组件名称以及指定的同步选项。同步选项会在考虑LOD切换的情况下,指定这个组件的LOD是否应为贡献、跟随、非贡献或禁用。

自定义LOD映射(Custom LOD Mapping)

对从蓝图组件列表中添加的指定组件启用LOD控制。如果组件包含的LOD数量低于LOD数量最多的组件,则需要将映射设置为无缝同步。

MetaHumans动画

重定向MetaHumans动画

MetaHumans示例项目提供了动作资产,并且男性和女性角色有自己特定的动作,可以使用UE4 Mannequin在MetaHuman重定向已有动画。

这篇将UE4 Mannequin动画重定向至MetaHumans指南详细说明了将已有的UE4 Mannequin动画重定向到MetaHuman的要求、设置和流程。

使用MetaHumans动作捕捉

MetaHumans已经设置完毕,你可以使用DDC应用(例如Motionbuilder或Maya)的Live Link插件将全身和面部的动捕数据实时流送到虚幻引擎,并用它来驱动MetaHumans,同时还可以使用Live Link Face捕捉数据。MetaHuman的动画蓝图可以接收所有必要的数据并将导向指定的骨骼,然后已有的MetaHuman角色蓝图(例如BP_metahuman_001)就可以接收并使用来自动画蓝图的数据,并通过Live Link的动作捕捉数据实现驱动。

要在你的MetaHuman上实现这一点,请选择名为 Body 的骨骼网格体组件,然后使用 细节 面板将 动画模式(Animation Mode) 更改为 使用动画蓝图(Use Animation Blueprint)

MH_MotionCaptureAnimBP.png

如果你想要动画可以实时连续更新且不需要在编辑器中启用**模拟**模式,你可以在组件列表中添加一个**LiveLink骨骼动画**组件。它可以让分段和布局根据实时对象调整,而无需等待模拟接收动画数据。

MetaHumans和Control Rig

MetaHumans中的示例由MetaHuman Creator创建,并且已经拥有完整的骨骼绑定,其中包括全身和面部绑定,并可以在虚幻引擎中使用。每个MetaHuman绑定都由至多五个单独的[Control Rig]组成(AnimatingObjects/SkeletalMeshAnimation/ControlRig),并通过分层的方式一同运作。这种方法能够让我们的MetaHuman和动画有更好的灵活性及更精细的控制。

现在我们就来看一下它们是怎么设置以及如何相互配合的。

MetaHumanControlRigsDiagram.png

MetaHumans的控制绑定由三个分层组成:木偶绑定(Puppet Rigs)、变形绑定(Deformation Rigs)以及布料和物理。

MetaHumans绑定分层一:木偶绑定

木偶绑定是MetaHuman的第一层。这里就是身体和面部动作开始的地方,这些绑定也是动画师可以看到并使用的控制。

ControlRig_Face.png

ControlRig_Body.png

MetaHuman面部"木偶"控制绑定

MetaHuman身体控制绑定

你可以找到以下路径,自行探索我们的身体和面部控制绑定:

  • MetaHumans/Common/Common/ and open MetaHuman_ControlRig.

  • MetaHumans/Common/Face/ and open Face_ControlBoard_CtrlRig.

在此示例项目中,所有动画都在动画控制上。当你为自己的目标平台或硬件创建动画时,请将身体绑定烘焙至FK关节,在动画序列中将面部绑定烘焙到RigLogic表达式曲线。在游戏中进行此操作会影响到性能,因为你要实时运行Sequencer和控制绑定。

MetaHumans绑定分层二:变形绑定

变形绑定 组成了MetaHuman的第二层。这里控制绑定会用于驱动所有的旋转和结构关节。它在动画蓝图中有十二个动作驱动器节点,它会驱动超过100个修正的身体动作,可以帮助保持体积并完善MetaHuman的整体变形。

面部使用了RigLogic插件并且在一个后期体积中运行,可以让所有的级联更改都使用来自不同动画接口的RigLogic表达式曲线,或者通过Live Link Face,完成最后的面部动画变形。

MetaHumans绑定分层三:衣物和物理

最后一层是 衣物和物理。这层主要依靠MetaHuman使用的衣物,它也可能有自己的控制绑定。

你可以在MetaHuman女性角色身上看到这种示例,她的衣物就使用了控制绑定,而MetaHuman男性角色连帽衫的帽线和脖子后方的帽子褶皱则使用了物理效果。

PhysicsRig.gif

MetaHumans及其毛发Groom

虚幻引擎的毛发渲染与模拟功能可以驱动MetaHuman使用的基于发束的毛发模拟。Groom资产编辑器等功能可以让MetaHuman在同一个地方管理毛发发束并处理低细节等级的替代性几何体呈现。

每个MetaHuman都由至多六个Groom资产组成:毛发、胡髭、胡须、眉毛、睫毛和毫毛。每个都会在MetaHuman蓝图中使用Groom组件来描述毛发几何体(发束、发片或几何体)以及属性。

Groom_HairComponents.png

每个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依靠毛发物理解算器来根据角色的动作让毛发变形,这样毛发就可以和头部的碰撞器产生碰撞。

MetaHumans性能、平台与项目设置

MetaHumans的开发和设计目标为支持广泛的硬件和平台,提供从高端影片到高端移动设备的可调整品质。这样可以确保同样的MetaHuman可以在多个平台上使用,并且在符合相应性能要求的同时保持高保真度。

MetaHumans细节等级指南

构成MetaHuman的组件在创建时使用了以下配置作为单个LOD的参考。根据角色本身、衣物、使用的毛发,MetaHuman可以大致分为以下品质。

LOD

0

1

2

3

4

5

6

7

头部

顶点

24000

12000

6000

2500

1300

560

270

130

混合变形

669

关节

713

529

397

283

84

70

41

26

蒙皮影响

12

12

12

8

8

8

4

4

动画贴图

身体

身体顶点

30500

7600

3350

1507

修正

蒙皮影响

8

8

8

4

毛发

毛发风格发束

50000

25000

毛发风格发片顶点

30000

15000

10000

3000

1500

毛发风格网格体顶点

500

250

100

面部毛发发束

10000

5000

面部毛发发片顶点

15000

7000

3000

1000

500

物理

支持MetaHuman角色的平台

MetaHumans可以在许多平台上运行,包括高端PC到移动设备。

点击查看大图

请参考下表,了解不同平台对MetaHumans的支持:

平台

支持光线追踪

毛发

最高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需要额外的配置。

移动端:

你需要在项目的Config文件夹中找到DefaultEngine.ini配置文件,然后在[/Script/Engine.RendererSettings]一栏下方添加**Compat.Max_GPUSKIN_BONES=75**。

主机:

你必须获得使用Xbox和PlayStation源代码的授权,随后你就可以通过我们的Perforce (P4)服务器使用各个主机项目的配置文件。

不同平台的场景光照

MetaHumans支持各种品质设置。部分高品质设置会使用光照设定(例如光线追踪),并不是所有平台均支持此设定。

你在探索关卡时会发现我们使用了独立的子关卡来根据平台加载不同的光照设定。此光照设定由关卡蓝图决定。

平台

光照设定

移动端和第四代主机

2个阴影点光源

第五代主机

4个阴影点光源

PC

至多4个光线追踪的点光源,运行品质为史诗

MetaHuman项目设置与插件

MetaHumans需要设定一些项目设置、控制台变量和插件才能在虚幻引擎中使用。以下是虚幻引擎非默认设置的综合列表:

需要开启项目设置:

  • 支持16位骨骼索引

    • 需要开启是因为组件有许多骨骼,例如面部骨骼。

  • 使用无限骨骼影响

    • 需要用于面部骨骼网格体,它的每个顶点会使用12个骨骼影响。

  • 光线追踪

  • 支持计算蒙皮缓存

    • 需要用于光线追踪功能从而支持重新计算切线。

需要开启的插件:

  • Alembic for Groom

  • Groom

  • Control Rig

  • Live Link

  • Live Link Control Rig

  • Live Link Curve Debug UI

其它属性与设置:

MetaHumans未来的改善

MetaHumans由MetaHuman Creator创建,也是虚幻引擎项目创建角色的未来。以下是计划对虚幻引擎以及MetaHumans进行完善的部分列表。

  • MetaHumans目前还不支持Vulkan。

  • MetaHumans在iOS、Android和Switch平台的品质仍需改善,包括蒙皮材质功能(例如动画贴图)、几何体细节和毛发附着。

  • 身体组件的动作驱动器配置开销较大。虚幻引擎4.26.2和4.27在线修正会优化该系统。

  • 由于缺少根据LOD进行调整的绑定和模拟,Groom组件的开销较大。

  • Mac无法使用毛发模拟。这是平台特定的问题,需要进一步调查。

  • 虚幻引擎4.26.2在线修正将解决XSX上的毛发阴影抖动的问题。

  • 任天堂Switch上的毛发着色会呈现黑色,这个特定问题将在虚幻引擎4.27解决。

  • 重新计算切线(Recompute Tangent)功能可能会在UV接缝上创建不匹配的法线,或者Compat.MAX_GPUSKIN_BONES设置会在区块的接缝中创建不匹配的法线。

Select Skin
Light
Dark
欢迎帮助改进虚幻引擎文档!请告诉我们该如何更好地为您服务。