材质编辑器 - 如何创建和使用材质实例。

本页面的内容:

在 UE4 中,必须创建、设置和调整标准材质,这是非常耗时的过程。 为了帮助加快并简化此过程,虚幻引擎 4 提供了一种特殊材质类型,即 材质实例。 在以下操作指南中,您将学习如何在项目中设置和使用材质实例。

材质实例化

材质实例化是这样的一种方法:创建单个材质(称为“父材质”),然后将其作为基础来创建外观不同的各种材质。 为了实现这种灵活性,“材质实例化”使用“继承”概念。 继承无非意味着将父代的属性提供给子代。 以下是作用中的材质继承的示例。

Material_Instancing_Explanation.png

编号 说明
1: 这是父材质,右侧两个材质实例的属性继承自这个材质。并且,请注意,在这个材质中使用了四种纹理。
2: 这是材质实例中,设置应该用作父材质的材质的位置。对此处使用的材质进行更改,可能会彻底改变材质实例的工作方式。
3: 通过更改此处使用的纹理,您可以更改材质实例的整体外观。请注意这里的四个纹理输入,使用这四个输入是因为材质实例从左侧的父材质继承该功能。

材质参数

为了能够更改材质实例的各种参数,您必须在材质图中使用称为 参数节点 的另一类节点。 参数节点 的外观和工作方式类似于普通材质表达式节点,但其关键区别在于,参数节点用于控制材质实例的工作方式。 使用材质参数是使材质与材质实例互动的唯一方法。

添加参数节点/将节点转换为参数节点

您可以通过两种完全不同的方法,将 参数节点 添加到材质图。

请注意,并非对每个材质节点都可执行此操作。如果您 右键单击 某个节点时看不到 转换为参数(Convert To Parameter)选项,那么表示该节点无法转换为参数节点。

创建材质实例

在下一节中,我们将使用上述方法创建我们自己的材质实例。

  1. 我们要做的第一件事情是,创建要使用的新材质。为此,请在 内容浏览器右键单击,并从 创建基本资产(Create Basic Assets)列表中选择 材质(Material)以创建新材质。

    Materails_Instances_Creat_New_Material.png

  2. 现在您已创建材质,让我们对它进行命名。在本示例中,我们已将此材质命名为 Material_Master

    Materails_Instances_Named_Material.png

  3. 命名材质之后,请在 内容浏览器 中找到它,然后通过 鼠标左键双击 将其打开。打开之后,请在选用板中搜索下列材质表达式节点,并将它们添加到材质图中。

    • “常量 3 矢量”(Constant 3 Vector)x 1

    • “常量节点”(Constant Node)x 1

    • 标量参数(Scalar Parameter)x 1

  4. 既然材质节点已放入材质图,现在是时候将它们连接到主材质节点上对应的槽。在本示例中,我们将使用下列槽。

    • 底色(Base Color)

    • 金属色(Metallic)

    • 粗糙度(Roughness)

  5. 所有内容连接完成之后,需要将部分材质节点转换为 参数节点,以便在 材质实例 中使用它们。为此,请 右键单击 要转换的材质节点,然后从 快捷 菜单中选择 转换为参数(Convert to Parameter)

  6. 既然我们已将节点转换为参数节点,现在是时候对它们进行标注了,这样一来,在材质实例中使用它们时,我们可以辨认每个节点的作用。要对参数节点指定名称,请使用 鼠标左键 在材质图中选中该参数节点,然后在 参数名称(Parameter Name)部分中,输入要用作 参数名称 的名称。在本示例中,我们将使用下列名称。

    • Base Color

    • Metallic

    • Roughness

    请确保您为节点挑选的名称能很好地表达该节点的实际作用。这样,您就不必在材质与材质实例之间来回切换以查看节点的实际作用。

  7. 建立节点之后,请务必按 应用(Apply)按钮以编译材质。如果正确通过编译,那么 应用(Apply)按钮将变成灰色,如下所示。

    Materails_Instances_Complied.png

  8. 材质现已编译完成,您可以使用它来建立材质实例了。为此,请在 内容浏览器右键单击 该材质,然后选择 创建材质实例(Create Material Instance)选项。

    材质实例的名称将根据您用来创建该实例的材质派生而得。您可以在创建期间重新命名材质实例,或者通过选中材质并按键盘上的 F2 键,然后输入您所要的名称来进行重新命名。

  9. 要打开新创建的材质实例,请在 内容浏览器双击 该实例以将其打开。打开后,您应该会看到类似下图的内容。

    images/Materails_Instances_Instance_Editor.png

  10. 材质实例编辑器 打开后,您可以开始根据需要调整参数。要调整参数,首先需要单击参数名称左侧的框以启用该参数。参数启用后,其名称将不再显示为灰色,并且其名称左侧的框中将显示勾选标记。

  11. 现在,参数已启用完毕,您可以对它们进行调整并即时查看结果,而不必重新编译材质。

您在材质中对参数设置的名称就是您在材质实例中所看到的名称。这就是挑选与参数实际作用相对应的名称非常重要的原因。 Materails_Instances_Names_Relation.png

使用中的材质实例

当您需要大量外观不同但仍有相似控件的材质时,或者需要在游戏期间以特定方式控制材质时,材质实例系统的强大功能就可以体现出来。 在以下示例中,我们将根据上述步骤中创建的父材质,建立三个不同的实例化材质。 然后,我们将更改父材质,以演示更改父材质对子材质的影响。

  1. 首先,我们需要使用上文中作为父材质而创建的材质 Material_Master 来建立一些材质实例。 为此,在 内容浏览器 中,请 右键单击 Material_Master,然后选择 新建材质实例(Create New Material Instance)选项。 再重复执行此操作两次,直到您一共有三个材质实例为止。

    Materails_Instances_Create_3_New_MI.png

  2. 现在,您已创建三个附加的材质实例,接着可以将其打开并调整其 参数。 要打开某个材质实例,请在 内容浏览器 中使用 鼠标左键 双击该材质实例。 打开后,您可以根据需要设置“颜色”(Color)、“粗糙度”(Roughness)和“金属色”(Metallic)的值。 在本示例中,我们将红色、绿色和蓝色作为具有各种数值的颜色来用于其他输入。 在下图中,您可以看到本示例中使用的所有数值。

  3. 创建材质实例并填写部分数据之后,我们现在可以将它们应用于场景中的对象。 在本示例中,我们要将材质实例应用于 起步内容Shapes 文件夹中的某些基本网格。

  4. 现在,请打开 Master_Material,以了解材质实例系统的强大功能。 在 Master_Material 打开后,请选择其中一个 “标量参数”(Scalar Parameter)节点,并按键盘上的 CRTL+W 进行复制。 复制该节点后,请将其重新命名为 Specular,并将默认值设置为 0.5。 将“标量参数”(Scalar Parameter)节点的输出连接到 Specular 输入,然后编译材质。

  5. 编译材质完成后,您可关闭 主材质,然后打开 红色材质实例。 打开后,您将注意到现在有一个新输入 Specular。 现在,请检查 蓝色绿色 材质实例,您将注意到它们都有新输入 Specular。 这就是材质实例实际功能的体现,即,您对父材质所做的更改总会传播到它们的子材质。

更改材质实例的父材质

您可以通过在材质实例编辑器中设置新的父材质,来快速更改用作材质实例父代的材质。 要做到这一点,您只需打开材质实例,然后在 常规(General)部分下方的 细节(Details)面板中,将 父代(Parent)部分中的材质更改为您选择的新材质。 完成此操作后,根据新材质的选项不同,材质实例编辑器将有所变化,以反映新父材质的选项。 以下是使用上述材质作为父材质而创建的材质实例。

Material_Instancing_Change_Parent.png

以下是同一材质实例在更改父材质之后的结果。 您会注意到,此处添加了几个纹理输入和一些新的数值输入。

Material_Instancing_Change_Parent_Results.png

结论

“材质实例化”是一个强大的工具,可以用于项目的所有方面。 这包括帮助对武器和道具添加一些变化,以及帮助美工更好地利用材质。 材质实例切实有助于简化并统一在项目中创建及使用材质的方式。