“ 感知技术 · 感触CG · 感受艺术 · 感悟心灵 ”

中国很有影响力影视特效CG动画领域自媒体

你是否已经厌倦了每次导入新的Alembic都要再重新分配材质?在本次教程中,我会讲解如何在导入到虚幻引擎时自动为Alembic网格体分配相应的材质。

观看视频:

从Maya导入虚幻引擎时自动创建材质和/或将材质应用到Alembic网格体

https://youtu.be/pvOhK6_ld-o?si=1RVswOT1Zj8bOrOU

打开网易新闻 查看精彩图片

反反复复为资产重新分配材质确实费时费力,尤其是材质本身还可能带有大量的插槽。到底如何正确地从Maya导出几何体?如何导入Alembic缓存并让它们在Maya就建好材质连接?如何让虚幻引擎中的现有材质可以在导入时自动分配到正确的材质插槽?你可能一直苦恼于这些问题。这次我们就全搞清楚!

面集

首先要注意一点,从Maya导出的Alembic缓存上必须存在面集(Face set)。这些面集会触发虚幻引擎在Alembic资产上创建相应的材质插槽。如果没有面集,虚幻引擎只会为每个对象创建一个材质插槽,不会根据Maya导出的资产而实际分配材质。这样的功能并不是Epic的问题,而是因为Alembic API本身就是使用面集来分配材质,所以我们在导入时必须检索面集。

这里 有关于面集的说明,这块很容易被忽略,但还请注意。

https://docs.unrealengine.com/5.0/zh-CN/alembic-file-importer-in-unreal-engine/

打开网易新闻 查看精彩图片

这里提到导出时要“写入面集(Write Face Sets)”。这步是非常必要的,不过通常不会让人犯难。

这里的难点在于如何在Maya中创建正确的面集。如果你和我一样已经上了年纪了,那么我接下来要讲的内容在如今绝对是大忌:你需要在Maya中为多边形(不是对象)分配材质。我好像已经听到灯光老师脑袋爆炸的声音了,对不起,老伙计。这是因为在Maya中给DAG层级的对象分配材质并不会创建面集,你需要的是在组件层级分配材质。这样当你从Maya导出资产时,你的Alembic上才会有面集,并且可以随时导入虚幻引擎。

打开网易新闻 查看精彩图片

导入和创建材质

导入虚幻引擎时,记得要在导入的对话框中启用“创建材质(Create Materials)”,这样你才可以看到在虚幻引擎中创建的所有材质,并自动分配到资产相应的材质插槽中。

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

这里有几点要注意。

虚幻引擎中的材质名称应该和Maya里着色组(Shading Group)的名称相同,而不是你的着色器(Shader)。

打开网易新闻 查看精彩图片

虚幻引擎并不会导入你的整个着色网络。由于不支持这些节点,它只会为你创建基础材质。

在导入时找到并分配已有的材质

假设你已经在虚幻引擎中制作了精美绝伦的材质,那要如何才能不用将材质手动分配到相应的材质插槽中呢?这里你需要将Maya中的着色组命名为与虚幻引擎中的材质相同的名称,然后再导出Alembic。接着在导入GUI的选项中,你需要启用“查找材质(Find Materials)”而不是“创建材质(Create Material)”。在我写这篇教程的时候(虽然已经被JIRA记录在案),导入虚幻引擎时系统还没有更好的逻辑来优先查找材质,只有在没有找到任何材质时才会创建材质。因此你不能同时启用这两个选项,然后指望引擎能一下解决所有问题。你需要明确使用其中一个选项。

虚幻引擎中的材质不必和Alembic导入到同一个文件夹。虚幻引擎是很智能的,它可以在项目中找到同名的任何材质。在本示例中,我把它们放在同一个文件夹只是为了方便展示。

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

难点

这里有一个难点。有些同学照着我说的一步一步去做,但结果都不理想:系统没有创建面集数据,导入引擎时也没有创建或分配材质。问题的根源其实在Maya,不过这部分很难用文字解释清楚,所以你可能需要参考一下顶部的视频。

如果你之前是在Maya的对象层级上分配了材质,我们已经说明过这样并不会创建面集。如果你是选择了相应的面并且分配了相同的材质,那Maya也不会创建面集。关于这一点我也不清楚原因,反正当你在DAG层级和组件层级分配了相同的材质时,Maya就不会创建面集分配,确实有点让人摸不着头脑。因此,你需要做的就是将DAG/对象分配给其他材质,然后选择相应的面并分配所需的材质。我也花了很长时间才弄清楚了这个问题。

全文完

如何制作异形怪物?吃饭慎点!

牛A的绑定,牛B的动画

UE6=UE5+Verse+元宇宙经济?