头发卡片生成器
Hair Card Generator 插件是一款实验性工具,可使用虚幻引擎内的Groom 资源自动从发束生成头发卡片。要了解有关头发卡片、发束和 Groom 资源的更多信息,请参阅Groom 资源编辑器用户指南。
https://dev.epicgames.com/documentation/en-us/unreal-engine/groom-asset-editor-user-guide-in-unreal-engine
本教程旨在介绍使用发卡生成器创建发片的基本过程。有关该工具的完整参考,请参阅Groom 资产编辑器参考。
https://dev.epicgames.com/documentation/en-us/unreal-engine/groom-asset-editor-user-guide-in-unreal-engine#cards
导入Groom资产
如果您有 Alembic 格式的 Groom,您可以通过启用 Alembic Groom Importer 插件并将其拖到内容浏览器中将其导入虚幻引擎。
在本教程中,我们将使用 MetaHuman 预设中的Groom资产。如果您想使用相同的资产来学习本教程,您可以下载 MetaHuman 预设Danielle并将其导入到项目中。
使用 Bridge 导入 Danielle
添加 MetaHuman 后,其所有资产均可在项目中使用。在本教程中,我们将使用头部Groom,名为Hair_M_BobCurly。您可以在内容浏览器搜索栏中输入其名称来查找它,然后双击它以打开Groom编辑器。
基本用法
发型卡片生成器位于Card选项下。如果您使用的是新发型,则该选项卡将为空,您可以通过单击添加卡片资产来创建新发型。如果您使用的是上面建议的 MetaHuman 发型,您将找到已创建的卡片资产。在本教程中,我们已删除这些资产并创建了一个新的资产。
Hair_M_BobCurly 格罗姆资产
要启动头发卡片生成器,请单击网格下的生成头发卡片按钮。有关所有选项的完整描述,请参阅Groom 资源参考。
https://dev.epicgames.com/documentation/en-us/unreal-engine/groom-asset-editor-user-guide-in-unreal-engine#cards
基础文件名 是定义生成的卡片资源(网格和纹理)的名称。重新生成卡片将覆盖之前创建的具有相同基础文件名的资源。
如果资产尚未生成或设置已更改,需要重新生成,则Generate下的标签将显示Yes 。如果资产已生成且选项未更改,则将显示No;如果资产已生成,但新选项需要部分重新生成(例如,重新栅格化纹理并保留先前的几何图形),则将显示Partial 。
卡片生成的某些方面(例如将发束聚集成卡片)具有随机成分。可以使用“随机种子”设置来更改这些步骤的随机种子,这会产生略有不同的最终结果。建议使用几个不同的随机种子来生成卡片资产,并保留产生最佳结果的种子。
控制卡片生成的主要参数有四个:
卡片数量:控制将生成的卡片数量(最终数量可能会略有不同)。
纹理数量:控制纹理图集中将存在的独特纹理的数量。如果纹理数量小于卡片的数量,则一些卡片将共享纹理。
三角形数量:控制最终网格的目标三角形数量。对于给定数量的卡片,增加三角形数量会增加卡片的细分量。由于卡片细分由自适应细分算法控制,该算法会在弯曲区域创建更多细分,因此最终的几何图形数量将根据目标设置略有不同。
最大飞散卡片数:飞散卡片是包含单根发束的卡片,通常不遵循主发束的形状。此参数定义将生成的此类卡片的最大数量。飞散卡片可以非常显著地提高最终头发的真实感,但会使用大量几何图形,因此它们通常在最低 LOD 中使用。
Hair Card Generator UI
输入所需参数后,点击“生成”按钮将启动卡片生成过程,该过程可能需要几分钟,具体取决于硬件配置、Groom的所选参数。如果成功,新的网格和纹理将导入卡片资产。这些网格和纹理也可以在生成对话框中指定的目标路径的内容浏览器中找到。如果需要,还可以导出资产以供外部编辑。
内容浏览器中生成的资产
LODs
在某些情况下,需要多个卡片资源,以便创建不同的 LOD。使用头发卡片生成器有三种不同的方法来实现这一点:
独立资产。 如果允许每个 LOD 拥有自己的资产(网格和纹理图集),则可以在Groom编辑器的卡片选项卡中创建新的卡片资产,为其设置所需的 LOD 索引,然后使用此 LOD 所需的选项运行头发卡片生成器。
从上一个 LOD 中减少卡片。如果已经生成了卡片资产,则可以在新的 LOD 中重新使用现有的纹理图集。为此,请激活 从上一个 LOD 中减少卡片选项。执行此操作后,唯一可用的选项将是三角形的数量和飞离的卡片。这将创建一个新资产,其卡片数量与之前的 LOD 相同,但每张卡片可以有更少的细分,并且可以丢弃飞离的卡片。
在以下示例中,LOD 1 是使用与 LOD 0(之前创建)相同的卡片创建的,但目标是总三角形数为 20k 而不是 35k,并消除了飞散部分。纹理看起来非常相似,因为每张卡都使用相同的纹理。
从上一个 LOD 示例减少卡片
保留纹理空间。如果目标是在不同的 LOD 之间共享纹理图集,但不共享纹理本身,那么也可以将纹理图集的不同区域专用于不同的 LOD。为此,首先需要创建更精细的 LOD,将“ 保留纹理空间”LOD选项设置为将为后续 LOD 保留的纹理图集的百分比。然后,必须使用选项“使用上一个 LOD 的保留空间” 创建下一个 LOD 。
在以下示例中,LOD 1 是通过减少此方法允许的卡片数量和三角形总数创建的。在这种情况下,LOD 0 和 LOD 1 看起来不像前一种情况那么相似,因为使用了不同的卡片和纹理。作为权衡,LOD 1 可以得到更好的优化。
高级功能-卡片组
通过将Groom资产拆分为卡片组,Groom卡片组可以在头发卡片生成过程中实现更精细的控制。卡片组可以应用不同的设置,在某些情况下可以提供更逼真的输出。
例如,用户可能会创建一个“发际线”卡片组,其设置与Groom的主要发束有很大不同。
为了使用此功能,必须导出带有每缕头发属性的发型(Alembic 格式)groom_groups_card_id,该属性必须是字符串类型。如果导入时存在此属性,则卡片组名称将在头发卡片生成对话框底部的设置中列出。默认情况下,所有卡片组都合并到单个设置部分中,其工作方式与没有为Groom定义卡片组时完全相同。
以下示例显示了将卡片组拆分为不同的设置部分以便单独处理的步骤:
将卡片组拆分为单独的设置部分后,每个设置部分都可以单独编辑。下面我们减少了左侧组的几何图形和纹理数量(相对于右侧组)。这样做可能是因为左侧的发束较少,或者Groom的左侧样式不太复杂。
有关高级设置和设置部分中各个设置的更多文档,请参阅Groom资产编辑器参考。
https://dev.epicgames.com/documentation/en-us/unreal-engine/groom-asset-editor-user-guide-in-unreal-engine#cards
特别是以下部分:为Groom设置卡片。
https://dev.epicgames.com/documentation/en-us/unreal-engine/setting-up-cards-and-meshes-for-grooms-in-unreal-engine
近期焦点