在本教程中,我将使用 2019 版本的 Substance Painter 进行演示,不过本教程同样适用于其他版本,无论是更早还是更新的版本。我们将学习如何获取模型中的 ID Color,并在这些信息可用的情况下,利用它们快速创建图层遮罩。
本教程不提供中文配音。您可以在下方观看英语配音的视频,并选择中文、英文或其他语言的字幕。视频下方提供了翻译成中文的文字稿。
视频文字稿
大家好!在本教程中,我将使用 2019 版本的 Substance Painter 进行演示,不过本教程同样适用于其他版本,无论是更早还是更新的版本。我们将学习如何获取模型中的 ID Color,并在这些信息可用的情况下,利用它们快速创建图层遮罩。
顾名思义,ID Color 是与 3D 模型顶点或面相关联的颜色。它们并不是渲染时显示的颜色,而是存储在对象“Vertex Colors”数据通道中的附加信息。由于颜色的 RGB 值本质上是数值数据,因此可以作为滤镜和其他工具的参数使用。

Substance Painter 以及其他一些软件和工具都能够读取这些信息,并将其用于各种用途。例如,在 Substance Painter 中,我们可以通过一次操作选中所有共享同一 Vertex Color 的几何体,并据此创建图层遮罩。
当我们为项目中的某个 Material 添加图层遮罩时,可用的遮罩效果之一是“Color Selection”。不过,在添加该效果后,你可能会看到“ID not found”的提示信息,同时“Pick Color”工具也无法从模型上检测到任何颜色。

实际上,我在教程开头特意强调了“在可用的情况下”,因为这些颜色是在导出模型时写入对象的“Vertex Colors”信息通道中的,而这一步并不一定总会执行,因此有时这些信息可能并不存在。下面我们切换到 Blender 3D,本例使用的是 2.92 版本,看看如何在导出到 Substance Painter 之前,为对象的不同部分分配 Vertex Colors。

在我使用的这个示例中,我们希望至少区分四个区域:电缆、两个高光塑料外壳、金属连接器部分,以及哑光塑料隔离件。
先来看一下对象的 UV 布局。可以看到,各个部分确实已经通过接缝进行了分离,因此位于不同的 UV Island 上。不过,这些 UV Island 并不容易辨认。而且当前模型中的岛屿数量还比较少,你以后肯定会遇到更加复杂的 UV 布局。因此,我们决定使用 Vertex Colors 来进行标识。

在 3D View 中切换到 Vertex Paint 模式,并且最重要的是,在 3D View 顶部启用 Face Selection 模式。然后按 ALT+A,或者在顶部菜单中选择 Select → None,取消所有选择,这样我们就可以开始选择不同部分并为其分配颜色了。


可以使用 Blender 提供的各种选择工具进行选取。在本例中,由于不同部分已经被拆分并放置在独立的 UV Island 上,因此我只需将鼠标悬停在其中一个部分上,然后按下 L 键(“Linked”)即可轻松选中它们。

我先选择高光塑料连接器部分。随着选择的进行,这些部分会改变颜色,并且不再显示线框边缘。
要为这些部分分配 Vertex Color,首先在 Vertex Paint Properties 面板中选择一种颜色。该面板可以通过快捷键 N 打开或关闭。然后按 SHIFT+K,或者在 3D View 顶部菜单中选择 Paint → “Set Vertex Color”。

接下来处理下一组对象时,先按 ALT+A 取消所有选择,然后重复同样的流程:选择需要的 UV Island,设置颜色,执行“Set Vertex Color”。其余组别也采用同样的方法。本例中总共需要处理四组。

在选择颜色时,我建议尽量使用彼此差异非常大的颜色。这样不仅可以在 Blender 中一眼看出是否有遗漏或错误分配的部分,在 Substance Painter 中进行选择时,也能避免因为颜色过于接近而产生混淆。
完成这些操作后,只需将 3D 模型导出为支持 Vertex Color 信息的格式,例如 FBX,然后返回 Substance Painter。

重新将模型导入 Substance Painter 后,在“Texture Set Settings”选项卡中点击“Bake Mesh Maps”。

在烘焙窗口中,关闭你不需要的项目,只保留“ID”选项启用。不过在点击 Bake 按钮之前,请先打开该通道的设置,并确认“Color Source”选项已经设置为“Vertex Color”。这个选项用于定义生成贴图时颜色信息的来源。这样 Substance Painter 就会读取模型中的这部分附加信息来生成 ID Map。

点击 Bake,然后等待贴图生成。生成完成后,你不仅可以在“Texture Set Settings”的 ID 部分找到它,也可以在项目遮罩中各个“Color Selection”效果对应的“Properties - Color Selection”面板中看到它。

此时,点击“Pick Color”后,你就可以从项目中选择一个 ID Color,遮罩会立即生成,并将对应的 Material 分配到所有具有该 Vertex Color 的模型区域上。

如果需要的话,还可以对其他 Material 重复这一操作。在某些情况下,这个工具会非常有帮助。不过根据具体需求,使用 Brush、Polygon、UV Chunk 或其他选择工具有时可能更加方便。ID Mask 只是你工具库中的另一种选择,并不意味着要放弃其他方法。

总结一下:如果模型包含 Vertex Colors,那么可以通过烘焙 ID Map 的方式在 Substance Painter 中读取这些信息,并确保将“Vertex Color”指定为需要从模型中获取的数据来源。之后,你可以在 Material 的遮罩中添加“Color Selection”组件,并利用“Pick Color”工具生成只包含指定 Vertex Color 几何体的遮罩。

本期视频教程到这里就结束了!我们下次再见!