欢迎光临散文网 会员登陆 & 注册

UE5管理内容-毛发创建XGen指南

2023-03-08 10:56 作者:梦起梦落梦若风  | 我要投稿

本指南演示如何设置从Maya的XGen毛发创建系统导入Groom发束到虚幻引擎中。其中我们会用到一组属性,它们在Alembic以及Grooms规格这篇文档中有所介绍。

本指南使用Maya 2018.6创建资产。 


转换旧有XGen说明

将导线转换为NURBS曲线

请参考下列步骤将Groom的导线转化为曲线,以便保存一组曲线并匹配你要转换的导线。

  1. 将Maya菜单集设为 建模(Modeling),以便查看可用的正确菜单选项。

2.从主菜单中,点击 生成(Generate) 下拉列表并选择 XGen编辑器(XGen Editor)。 

3.在 XGen 窗口中,使用 工具(Utilities) 选项卡选择 曲线的导线(Guides to Curves)。 


4.点击 创建曲线(Create Curves)

完成后,groom的输出将类似下图: 


将Groom转换为XGen交互式Groom

若使用旧版XGen说明,需将groom转换为 XGen交互式Groom(XGen Interactive Groom)。步骤如下:

  1. 选择XGen Description节点。 

2.在 建模(Modeling) 菜单集中使用主菜单点击 生成(Generate) 下拉列表,然后选择 转换为交互式Groom(Convert to Interactive Groom)。 


将样条说明导出到NURBS曲线

请遵循以下步骤,将你选中的样条说明导出成Alembic文件,该文件可以与插入的头发一起导入为NURBS曲线。

  1. 选中你的XGen Spline Description节点。在 建模(Modeling) 菜单集中使用主菜单点击 生成(Generate) 下拉列表。然后在列表中选择 缓存(Cache)> 导出缓存(Export Cache)。 

2.在 导出缓存(Export Cache) 窗口中进行以下设置: 

    • 缓存时间帧(Cache Time Frame): 设置成 当前帧(Current Frame)

    • 多个变换(Multiple Transforms): 禁用

    • 写入最终宽度(Write Final Width): 启用


3.为文件输入名称,文件类型选择 Alembic。 


4.点击 导出(Export)

5.在 文件(File) 菜单中选择 导入(Import)。这会打开 导入(Import) 窗口,然后将Alembic('.abc')文件放入场景。


导入完成后,XGen样条说明就应该已经被导出为Alembic文件,并且将内插毛发作为NURBS曲线导入。 


创建属性

创建组ID属性

可在一个或多个组中导出内插毛发。虚幻引擎中可识别此类组,用于唯一材质指定。 

创建组ID属性时使用以下脚本:


创建导线属性

当你为groom创建导线属性时,只有标记为 导线(guide) 的曲线才会被用于虚幻引擎中的模拟。若未在Alembic文件中指定导线,在导入Unreal Engine的过程中,一定比例的内插毛发将被内部标记为导线。 

导入无导线的groom时,使用Groom导入选项可设置标记为导线的内插毛发比例。默认仅10%的毛发用作导线。

创建导线属性时使用以下脚本:


Groom_Width属性

在Maya中,宽度值有一个特殊的行为,与其他DCC应用不同的是,它可以遵循Alembic以及Grooms规格中的内容,来获取它们并使用它们来构建groom。

Maya可以直接在曲线上导出宽度值,因此不需要导出自定义的 groom_width 属性;导入器会自动将这些值转换为该属性。如果 groom_wdith 属性在导入虚幻引擎时与groom一起存在,则它不会被覆盖。如果 groom_wdith 没有被指定,或者不能从宽度值转换,那么生成器将退回使用1厘米。


从Maya导出到Alembic

  1. 在Maya中,选择要导出的导线和Group_ID曲线。

    每个节点应拥有唯一名称。 

  2. 在 建模(Modeling) 菜单集中,使用主菜单点击 缓存(Cache) 下拉列表,然后选择 Alembic缓存(Alembic Cache)> 将选中项导出到Alembic(Export Selection to Alembic)

3.在 导出选中项(Export Selection) 窗口中的 通用选项(General Options) 类别下,将 缓存时间范围(Cache time range) 设为 当前帧(Current Frame)


4.在 属性(Attributes) 类别下,输入要罗列出的 属性(Attribute) 命名,然后点击 添加(Add) 按钮。添加以下模式属性: 


    • groom_group_id

    • groom_guide


    5.在 文件名(File name) 文本框中为文件命名,并将 文件类型(Files of type) 设为 Alembic

  1. 6.点击 
  2. 导出选中项(Export Selection)
  3.  按钮。

将纹理应用于毛发UV

以下步骤和包含脚本可以帮助你设置自己的XGen毛发,该毛发可以导出到虚幻引擎,并且各个发束上呈现已应用的纹理。 

  1. 在Maya的建模菜单中,选择 生成(Generate) > 创建交互式Groom样条(Create Interactive Groom Splines)。 

2.你可以根据自己的偏好为项目创建导线并涂刷毛发。准备就绪后,选择 生成(Generate)> 缓存(Cache)> 创建新缓存(Create New Cache) 将曲线导出为 Alembic缓存(Alembic Cache)


3.通过隐藏或删除XGen头发以将其移除。然后,在Maya场景中,使用源网格体重新导入之前导出的毛发曲线。


4.根据你的场景,顶部曲线下将有数千条样条曲线,本例中为 SplineGrp0。编辑以下Python脚本,并将以下值替换为项目中的值:

    • export_directory

    • hair_file

    • curve_top_group

    • uv_mesh


5.在Maya中,使用更改后的数值运行脚本。这 将 生成一个新的Alembic('.abc')文件,该文件可以导入到虚幻引擎中。 

6.在虚幻引擎中,使用 毛发 着色模型创建新材质。在材质图表中,添加 毛发属性(Hair Attributes) 表达式,然后将 根UV(Root UV) 插入纹理样本的 UV 输入中。 


groom_root_uv 属性为每个毛发指定了它所连接的底层网格UV。这个属性是可选项,如果没有指定,引擎会使用球面贴图自动生成一个根UV。

7.将导入的毛发Alembic文件从内容浏览器拖到关卡中,然后向其指定毛发材质。你应该以如下形式结束: 

确保关卡中的毛发Alembic文件的宽度大于0。 



UE5管理内容-毛发创建XGen指南的评论 (共 条)

分享到微博请遵守国家法律