构成MetaHuman的各种组件有着不同的 细节级别 (LOD)。LOD控制网格体或者groom的复杂程度,取决于其与摄像机之间的距离。举个例子,如果一个MetaHuman离摄像机较近(比如玩家角色),那么它就会比人群中的Metahuman具备更多细节。
本文将介绍LOD在不同的MetaHuman组件上如何运作。
要更好地了解虚幻引擎中的LOD,请参考虚幻引擎文档的创建并使用 LOD页面。
LODSync组件
MetaHuman的蓝图将所有用于实现其视觉呈现的不同组件汇集到一起。并非所有组件都拥有相同类型的几何体或相同数量的细节级别。
LODSync组件 管理并同步不同MetaHuman组件的LOD,来让它们在同一时间进行切换,而不是想通常的LOD一样基于它们自己的屏幕大小各自切换。这样可用保持构成身体、头部、毛发和衣服的其它MetaHuman组件的视觉质量的一致性,即便是它们不使用同样数量的LOD。
例如,脖子以上的组件(面部以及所有的毛发groom)最多能用到八个单独的LOD。脖子以下的组件(身体、脚部、腿部和躯干)只有四个LOD。有了LODSync组件,脖子以上的组件每发生两个LOD质量更改,只有一个LOD质量更改发生在脖子以下。
LODSync组件位于MetaHuman蓝图的 组件(Components) 面板的底部。
作为提示,MetaHuman蓝图默认命名为 BP_MetaHumanName
。举个例子,如果你的MetaHuman名称为Roux,其蓝图命名为 BP_Roux
。

LODSync组建的位置。
在选中组件时,蓝图的 细节(Details) 面板在 LOD 类别下会显示可配置的设置。

LODSync组件的 细节(Details) 面板的 LOD 部分。
LODSync 组件包含以下可配置的属性:
属性 | 描述 |
---|---|
LOD数量(Num LODs) | 用于设置列表中任何组件的LOD可用数量上限。默认情况下,默认LOD使用数量上限设置为8。如果使用-1,将计算所有组件的LOD来确定要使用的LOD数量上限。 |
强制LOD(Forced LOD) | |
最低LOD(Min LOD) | 同步组件时使用的最低LOD。该值默认设为0。 |
要同步的组件(Components to Sync) | |
自定义LOD映射(Custom LOD Mapping) |
Groom资产LOD
MetaHuman就像现实生活中的人一样,头部和脸部覆盖着不同数量的毛发。这些毛发可能包括头顶的头发、睫毛、眉毛、上嘴唇胡须和下巴胡须,以及毫毛(也被称为"汗毛",人体皮肤上细小的毛)。
所有这些类型的毛发都在虚幻引擎中存储为 Groom资产。每种Groom资产都在 Groom资产编辑器 中分别配置进行管理。由于Groom可以由不同类型几何体构成(从单个发束到卡,再到低多边形网格体),因此很有必要进行配置和设置,并且用最优的LOD显示。举个例子,对于低端硬件,一个包含十几个MetaHuman的场景如果都使用最高LOD,基于发束的groom可能难以运行。如果将这些groom改为发片或者网格体,便会改善性能。
要更好地了解如何在虚幻引擎中使用Groom资产,请参考虚幻引擎文档的Groom资产编辑器用户指南页面。
下面的屏幕截图展示了Groom资产编辑器中Metahuman的头发样式。你可以看到右侧的LOD面板(1)。左侧的信息框 (2) 显示当前LOD和相对于屏幕大小的发束数量。
点击查看大图。
LOD 面板管理此Groom中存在的所有各个LOD。 每个LOD都可以针对抽取数量(统一减少)、应该切换到下一个LOD时的屏幕大小和应该支持的几何体类型来进行配置,以及其它的一些设置。
Groom资产支持三种几何体:
-
发束(Strands)
-
发片(Cards)
-
网格体(Meshes)
每个几何体类型都有自己的面板,在面板中可以配置其个体属性。
下面的示例演示了每种Groom资产几何体类型的最高LOD。

(从左到右)发束、发片和网格体几何类型
如果你的虚幻引擎项目针对特定平台,希望保持在固定的性能预算范围内,你可以在Groom资产编辑器的LOD面板下指定使用 最低LOD(Minimum LOD)。该设置位于 LOD 面板,在个体LOD设置之后。例如,如果不需要使用成束毛发,则可以将最低LOD设置为3,该细节级别是发片毛发几何体的最高质量LOD。
如果你只想要针对一些平台配置LOD覆盖,可以点击 添加 (+) 图标,然后选择你要配置的平台。在该菜单中看到的平台取决于你安装的虚幻引擎的配置。要了解如何添加对于更多平台的支持,请参考虚幻引擎文档的安装虚幻引擎页面。

强制使用发片替代发束
如果你不需要成束的毛发groom,那么可以使用以下控制台命令,它会让通常会使用发束的毛发groom强制使用发片几何体:
r.HairStrands.UseCardsInsteadOfStrands 1
该指令不影响基于网格体的毛发几何体。