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

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

材质实例化

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

Material_Instancing_Explanation.png

编号

说明

1:

这是父材质,右侧两个材质实例的属性继承自这个材质。并且,请注意,在这个材质中使用了四种纹理。

2:

这是材质实例中,设置应该用作父材质的材质的位置。对此处使用的材质进行更改,可能会彻底改变材质实例的工作方式。

3:

通过更改此处使用的纹理,您可以更改材质实例的整体外观。请注意这里的四个纹理输入,使用这四个输入是因为材质实例从左侧的父材质继承该功能。

材质参数

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

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

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

  • 材质选用板添加 - 在 材质选用板 中使用 Parameter 一词进行搜索可找到所有可用的 参数 节点。然后,您可以将这些节点从选用板拖放到材质图中。

    Materails_Instances_Search_For_Pram_Nodes.png

  • 转换节点 - 在 材质图 中,您可以 右键单击 某个节点,然后选择 转换为参数(Convert To Parameter)选项,如下所示。

请注意,并非对每个材质节点都可执行此操作。如果您 右键单击 某个节点时看不到 转换为参数(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. 要打开新创建的材质实例,请在 内容浏览器双击 该实例以将其打开。打开后,您应该会看到类似下图的内容。

    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

结论

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