T.TAO
Back to Blog
/6 min read/Game Engine

UE4#3 Material Editor

#game-engine
UE4#3 Material Editor

#UE4#GameEngine#TechnicalArtist

本文记录 Unreal Engine 4 中材质编辑器的基础用法。这里我使用作品集游戏 Endoguardian 的模型。特别地,我也会介绍如何从 Substance Painter 导出。

Basics(基础)

Actors(Actor)是 UE4 的基本游戏对象。你可以从 Place Actor Panel(放置 Actor 面板)放置这些 Actor。

在早期版本中,此面板称为 Mode Panel。

拖拽一个到视口,你可以在关卡中看到几何体(游戏对象、Actor)。其基本信息在右侧。

你可以通过拖拽或直接在输入框中输入来修改这些值。

注意,若要使 Actor 可移动,请在 mobility 字段中选择 Movable。否则你无法以任何方式移动几何体。

现在让我们创建一个材质。在 Content Browser 中右键。你应该会看到类似这样的列表:

点击 Material 创建一个,你应该会在 Content Browser 中看到一个材质球文件。

你可以随意命名。

双击此材质球文件,即可进入材质编辑器。

让我们使用 VectorParameter 节点创建一个颜色。

搜索 "VectorParameter",列表中应该只有一个节点。将其命名为 blue。

双击该节点黑色部分,可以选择颜色。(左侧显示颜色选择器面板)。别忘了将 A 值设为 1.0;否则可能看不到节点中显示的任何颜色。现在它有了颜色。

现在我们可以将此颜色传入材质节点,你会看到材质球发生变化。

Ctrl+S 保存此材质。现在将材质从 Content Browser 拖到刚创建的 Actor 上。

你会看到你的 Actor 呈现出与材质球相同的材质。

Import Models(导入模型)

现在让我们尝试为已在其他基于 PBR 的软件(如 Substance Painter)中应用过材质的模型创建材质。

首先,看看模型在 Substance Painter 中的样子。不用管模型是什么。渲染视图能更清晰地展示材质层面的理解。

在此模型中,我们可以看到有些部分是透明的,有些不是。因此,为此模型创建 2 个材质是明智的:一个用于透明部分,一个用于不透明部分。好的,我们去 Maya 操作。

在 Maya 中选择透明部分,Shift + 鼠标右键,拖到列表中的 "Assign a new material..."。

然后,在此界面中选择 Arnold aiStandardSurface。

然后,在右侧的 Attribute Editor 中,点击右侧带三角形的第二个白色矩形进行重命名。

对不透明部分做同样操作。

现在,导出为 (.obj) 文件。

回到 UE4。用你喜欢的方式(拖入浏览器,或使用工具栏上的导入命令...)将此 obj 文件导入到 Content Browser。

现在你应该会看到自动创建两个材质球。一个命名为 opaque,另一个为 transparent。

为方便查看,将 obj 拖入关卡。此时几乎完全是黑色的。

现在该回到 Substance Painter 了。那是我们获取纹理的地方。

按 Ctrl+Shift+E 调出 Export Texture 窗口。

然后,进入 output templates。在 presets 面板中选择 Unreal Engine 4 (Packed)。你应该会看到 4 个输出贴图。

点击顶部 4 个贴图旁 "create:" 旁的 Gray 按钮,添加一个灰色输出贴图。

将右侧(input maps)的 opacity 拖到带 "Gr" 的方框中,选择 "the Gray Channel"。将此贴图重命名为与 Emissive 类似的名称。你可以复制粘贴名称,只需将 emissive 替换为 opacity。

回到导出窗口,点击 export。

现在你应该在指定目录中有纹理文件了。

将它们导入 UE4。现在是编辑此模型材质的时候了!

从不透明材质开始。

现在,简单地将其中一个纹理拖入材质编辑器。例如,名为 "xxxxxxxx_BaseColor" 的那个。

你应该会看到如上所示自动创建的节点。将 RGB 引脚连接到材质节点上的 Base Color 引脚。同样,对其他纹理做相同操作。

保存查看效果。看起来已经不错了,但透明部分仍然是黑色的。

现在对透明材质做同样操作。特别地,首先在左侧 "Detail" 面板中将材质的 blend mode 从 Opaque 改为 Translucent。否则材质节点上不会有 opacity 引脚。

现在回去看效果。

好的,看起来不错!剩下的工作就是做一些微调。例如,你可能觉得这个蓝色管子有点「太透明」。通过简单地将 opacity 乘以一个系数来降低其不透明度。左下角的节点是 "Constant" 节点。(搜索 constant,第一个就是)。

输入大于 1 的值会按需降低材质的透明度。

以上就是 UE4 材质编辑器的基础内容。