这段视频教程讲解了如何在 Maya 中创建游戏角色的头发,并将其导出到 Unreal Engine 5 中,重点是如何处理头发的物理模拟和材质。
作者 Andrew Giovannini 首先展示了一个已完成的带物理模拟的头发模型,并介绍了他自己的游戏行业背景。然后,他详细解释了如何在 Maya 的 XGen 中创建头发,包括使用不同的描述(Description)来制作头发主体、刘海、填充和细节,并演示了如何使用曲线工具、晶格修改器和噪波来控制头发的形状和细节。他还特别讲解了如何创建一个填充层(Fill Layer)来避免头发过于稀疏,以及如何使用晶格来调整头发的整体形状。
接下来,他讲解了如何将 XGen 头发导出到 Unreal Engine 5。为了提高导出效率,他推荐使用自己编写的 Python 脚本工具 Spline Groom Manager 来管理和重命名曲线组,并提供了 Discord 链接供观众下载。他还解释了如何设置必要的属性,例如 groom guide、groom group ID 和 groom root UV,以便 Unreal Engine 5 正确识别和模拟头发。他还提到了如何修复脚本中的一些 Python 版本兼容性问题。
在 Unreal Engine 5 中,他演示了如何导入导出的头发模型,并使用 Groom Binding 功能将头发与不同的头部模型匹配。他还推荐使用 MetaHuman 自带的头发材质,并讲解了如何调整材质参数,例如黑色素、红色度、高光和染发等,来实现不同的头发颜色和效果。最后,他讲解了如何在 Unreal Engine 5 中设置头发的物理模拟,包括预加载、子步数、迭代次数、重力、空气速度、碰撞半径和弯曲约束等参数,并演示了如何调整这些参数来实现逼真的头发动态效果。他还简要提到了后续视频将讲解的内容,例如发片(Hair Cards)、LOD 和优化等。
User
arrow_upwardarrow_downwardedit
more_vert
总结时增加时间戳
Model
51.5s
arrow_upwardarrow_downwardedit
more_vert
这段视频教程讲解了如何在 Maya 中创建游戏角色的头发,并将其导出到 Unreal Engine 5 中,重点是如何处理头发的物理模拟和材质。
-
[00:00-00:02] 作者 Andrew Giovannini 首先展示了一个已完成的带物理模拟的头发模型(alembic版本),并提到之后会制作发片版本。
-
[00:00-00:02] 他也介绍了他自己的游戏行业背景,曾参与赛博朋克2077、星际公民42中队等项目。
-
[00:00-00:02] 展示了模型以及一些基础的物理模拟效果和参数。
-
[00:02-00:07] 解释了 XGen 中头发的创建过程,包括头发主体、刘海、填充和细节分层等。并讲解了如何使用曲线工具创建填充层(Fill Layer)。
-
[00:07-00:08] 演示了如何使用晶格修改器调整头发的整体形状。
-
[00:08-00:12] 讲解了 XGen 中的噪波和 clumping modifier 的使用方法和参数设置。
-
[00:12-00:19] 展示了如何开启和导出头发曲线作为引导线(guides)。
-
[00:19-00:24] 强调了将引导线放置在名为 "XG groom" 的组下的重要性,方便后续脚本处理。
-
[00:24-00:31] 指出了 Maya UI 操作速度慢的问题,并引出了自己开发的 Spline Groom Manager 工具。
-
[00:31-00:38] 演示了如何使用 Spline Groom Manager 工具快速管理和重命名曲线组,以提高导出效率。
-
[00:38-00:40] 讲解了导出头发缓存的步骤和设置,包括 current frame 和 write final width。
-
[00:40-00:41] 在 Unreal Engine 5 中演示了导入 Alembic 缓存,并设置导入参数进行坐标转换。
-
[00:41-00:46] 讲解了 Groom Binding 的使用方法,以及如何将头发与不同的头部模型匹配。
-
[00:46-00:53] 推荐使用 MetaHuman 的头发材质,并讲解了材质参数的调整方法。
-
[00:53-00:56] 讲解了 Unreal Engine 5 中头发物理模拟的参数设置,包括预加载、子步数、迭代次数、重力、空气速度、碰撞半径和弯曲约束等。
-
[00:56-00:56] 简单提到了后续视频内容,包括发片、LOD 和优化。
User
arrow_upwardarrow_downwardedit
more_vert
为什么要:[00:12-00:19] 展示了如何开启和导出头发曲线作为引导线(guides)。
[00:19-00:24] 强调了将引导线放置在名为 "XG groom" 的组下的重要性,方便后续脚本处理。
Model
3.3s
arrow_upwardarrow_downwardedit
more_vert
errorAn internal error has occurred.
User
arrow_upwardarrow_downwardedit
more_vert
[00:12-00:19] 展示了如何开启和导出头发曲线作为引导线(guides)。
[00:19-00:24] 强调了将引导线放置在名为 "XG groom" 的组下的重要性,方便后续脚本处理。
Model
13.0s
arrow_upwardarrow_downwardedit
more_vert
你说的对,这两个时间段的功能描述重复了。这是我的失误。
导出引导线并将其放置在 "XG groom" 组下的原因是为了在 Unreal Engine 5 中实现更可控的头发模拟。UE5 的 hair groom 系统可以使用这些引导线作为模拟的基础,而不是随机生成引导线。这样做的好处是:
-
模拟结果更可预测和稳定: 使用从 Maya 中导出的引导线,可以确保在 Unreal 中的模拟结果与 Maya 中的造型更加一致,避免出现意外的形状和运动。
-
方便美术调整: 如果模拟结果不理想,美术可以直接在 Maya 中修改引导线的形状和位置,然后重新导出到 Unreal,而不需要在 Unreal 中手动调整大量的引导线。
-
提高模拟效率: 在某些情况下,使用预设的引导线可以减少 Unreal 中计算所需引导线的时间,从而提高模拟效率。
总而言之,导出引导线并正确分组是为了在 Unreal Engine 5 中获得更好的头发模拟效果和工作流程。正确的时间戳应该是 [00:12-00:24] ,涵盖了引导线的导出和分组这两个步骤。
User
arrow_upwardarrow_downwardedit
more_vert
直接用“导出头发缓存” 不行吗
Model
10.2s
arrow_upwardarrow_downwardedit
more_vert
直接导出头发缓存(例如 Alembic)是可以将头发的几何体导入到 Unreal Engine 5 中,但这仅仅是静态的几何体,不包含头发的模拟信息(例如引导线、组ID、根UV等)。
所以,虽然头发的形状会被导入,但在 Unreal Engine 5 中进行物理模拟时,引擎会随机生成引导线,这会导致以下问题:
-
模拟结果与 Maya 中的造型不一致: 由于引导线是随机生成的,Unreal Engine 5 中的模拟结果很可能与 Maya 中精心设计的头发造型相差很大,需要在 Unreal 中进行大量的调整才能达到预期的效果。
-
模拟不稳定: 随机生成的引导线可能分布不均匀或者方向混乱,导致模拟结果不稳定,出现头发抖动、穿插等问题。
-
难以控制和调整: 如果需要修改头发的模拟效果,只能在 Unreal Engine 5 中手动调整随机生成的引导线,这非常繁琐且效率低下。
因此,为了在 Unreal Engine 5 中获得理想的头发模拟效果,除了导出头发缓存外,还需要导出引导线、组ID、根UV等信息,并将引导线放置在名为 "XG groom" 的组下,以便 Unreal Engine 5 的 hair groom 系统能够正确识别和使用这些信息。