UE5 中的发丝速查表 - Metahumans 头发创建快捷参考指南

首先,访问官方资料(Epic的文档):

头发制作:

你可以使用 Maya(xGen 或交互式 Groom 样条线)或 Blender 粒子系统来创建 UE5 中虚幻Metahuman(Metahumans)的基于发丝的头发。
建议研究 Metahuman Creator 中的 Groom 资产,学习制作虚幻元人头发的“最佳实践”。

设计时考虑性能优化:

  • 检查 CV 的数量(曲线数量乘以每条曲线的 CV 数量)——这非常重要,数量越多,渲染开销越大。
  • 根据不同会被动画化的部分,将发型分组——关闭部分 Groom 的模拟是极佳的性能优化手段。最好在 Maya 中将各组设为独立的描述(或将几个描述合并为一组)。
  • 有时我会降低“隐藏”或不太显眼的头发部分的密度,这仅适用于不进行动画的头发区域。
  • 为保持制作流程整洁,在不知道客户如何动画头发的情况下,建议第一个聚集(Clumping)修改器基于指南(Guides)创建,因为这些 Guides 可用于 UE 中引导动画。

导出到虚幻引擎:

  • 请查看 UE 官方文档中的导出步骤: 虚幻引擎XGen毛发创建指南 | 虚幻引擎 5.6 文档 | Epic Developer Community
  • 从 Maya xGen 导出 Alembic 头发:
    我写了一个脚本自动化文档中的操作步骤,你可以购买此脚本: xGen2UE Script - Export Alembic Hair from Maya xGen to UnrealEngine5(我将不再维护此脚本,但如果你懂操作,它能节省大量时间)。
  • 查看 Charlie 的视频和博客(含 Epic 脚本链接),Epic 在基于发丝头发功能刚发布时公开了他们用于导出 Maya xGen 的脚本,支持高密度 Groom,效果不错,但目前不再支持且无法导出组信息。 Unreal Engine 4.25 Groom Q&A
  • 导出流程的核心是将头发导出为 ALEMBIC 文件,并带有 UE 用于高光(如 rootUVs)、组(group_id)以及动画曲线数据的特定属性(使用基于 Guides 的聚集时,Guides 会作为曲线属性写入,但我认为如果你使用组,这些曲线动画属性可能不起作用)。

UE 项目设置:

请确保安装以下插件:

  • Groom
  • Alembic Groom Importer

头发渲染:

如果头发在 UE5 中效果不好,可以尝试调整以下变量:

  • r.HairStrands.RasterizationScale = 0.1(默认值为“1”)

其他相关 cVar:

  • r.HairStrands.RasterizationScale:发丝渲染像素映射缩放等级
  • r.HairStrands.StableRasterizationScale:用于“稳定”头发选项的像素映射缩放(不可低于1)
  • r.HairStrands.VelocityRasterizationScale:高速度时的像素映射缩放
  • r.HairStrands.ShadowRasterizationScale:阴影视角下的像素映射缩放

其他建议:

  • 为提升性能,考虑关闭头发模拟。
  • 头发资产密度越低,光影计算越轻松。
  • 主光源开启“Cast Deep Shadow”选项(性能开销较大)。

将头发添加到 MetaHuman:

  • 导入 Hair.abc 到 UE5 项目
  • 右键 Groom,选择“Create Binding”将其绑定到 MetaHuman 面部网格
  • 选择 [MHname]_FaceMesh 骨骼网格
  • 可以创建毛囊贴图(右键 “Create Follicle Map”),生成毛囊蒙版,后续可用于面部材质,以实现发根的优质渲染效果。
  • 在 GroomAsset 窗口(双击头发资产)进行调整:
    “Strands”标签:调整头发宽度、发根/发梢缩放、阴影密度等。
    若需开启头发模拟,转至 Groom Asset 窗口的“Physics”标签,启用 Solver Settings > Enable Simulation。

更多资料阅读: