在本教程中,我们将学习如何在 Substance Painter 中创建 Material Preset。具体来说,就是通过为 Base Color、Normal 以及其他信息通道设置贴图,定义我们自己的 Fill Layer,然后将其保存到 Shelf 的 Materials 分类中,以便在其他 Substance 会话中重复使用。


本教程不提供中文配音。您可以在下方观看英语配音的视频,并选择中文、英文或其他语言的字幕。视频下方提供了翻译成中文的文字稿。


视频文字稿

大家好!在本教程中,我们将学习如何在 Substance Painter 中创建 Material Preset。具体来说,就是通过为 Base Color、Normal 以及其他信息通道设置贴图,定义我们自己的 Fill Layer,然后将其保存到 Shelf 的 Materials 分类中,以便在其他 Substance 会话中重复使用。

我们之所以要创建 Material Preset,是为了获得一个仅包含单个图层的 Material 元素,而不是像 Smart Material 那样由多个元素组成的集合,其中可能包含滤镜、图层或基于纹理的生成器。我们的目标是创建这样一个元素,然后将其拖入项目的 Layer Stack 中,并通过 Layer Mask 将其全部或部分应用到对象上……

……不过在继续之前,我们先来思考一下为什么要这样做。毕竟我们可以创建 Smart Material,而它们乍看之下似乎灵活得多。实际上,Smart Material 可以包含多个 Layer 和 Material,在某些情况下甚至包含基于 Bake 生成贴图或其他工具生成贴图的滤镜、图层或生成器。

创建简单 Material Preset 的第一个原因,是需要利用外部纹理图像来构建材质。例如 Base Color、Normal 和 Roughness 贴图,这些贴图可能来自照片、扫描数据,或者由你自己或其他人手工制作。它们也可能是无缝纹理,可以在表面上重复平铺而不会产生明显接缝。

在这种以及类似情况下,并不需要使用 Smart Material。只需:

通过 File → Import Resources 将贴图导入当前 Substance 会话,将资源类型指定为“Texture”,并导入到“Current Session”。因为我们没有必要把这些文件本身保存到 Shelf 中,我们真正要保存的是 Material;

创建一个空的 Fill Layer,然后在 Tool Shelf 的 “Properties - Fill” 面板中,仅启用所需的通道。我使用的是 PBR Metallic 工作流程,因此我启用了 Color、Metal、Roughness、Normal、Height 和 Opacity。其中 Opacity 仅用于告诉 Substance,在本示例中该材质是不透明的;

将导入的贴图拖入 Fill Layer,并放置到对应的槽位中;或者设置会均匀应用到整个表面的数值。例如在我的案例中,我将 Opacity 参数设置为 1;

……最后,在 Properties - Fill 面板中的空白区域单击鼠标右键,在弹出的菜单中选择“Create Material Preset”:完成!

通过这种方式创建的 Material 会立即出现在 Shelf 的 Materials 分类中,并且可以像其他 Substance Base Material 一样在当前项目以及未来项目中使用。

Material 也可以由 Smart Material 创建,从而生成其“扁平化”版本。这类似于在图像编辑软件中将图层堆栈合并为单个图层。例如,当处理非常复杂的场景时,这种做法有助于节省计算资源,甚至减少项目文件占用的磁盘空间。这也引出了本教程要讨论的第二个应用场景。接下来我会使用一个稍微复杂一些的示例进行说明。

假设我们拥有一组独立的 3D 对象,每个对象都有自己的 Substance 项目,并包含一个或多个 Material 和 Smart Material。现在我们希望将所有内容合并为一个对象,并使用单一 Texture Set。实际上,我曾多次这样做,把多个 Asset 合并为单个元素,或者至少让它们共享一个 Texture Set,从而降低实时应用中的资源消耗。

在这种情况下,我首先会在 3D 图形软件中进行处理。以 Blender 为例,我会执行以下操作:

将所有 3D 模型放入同一个 Blender 场景中,删除所有原有材质,然后为这些对象分配一个新的共享材质,使它们全部使用同一个 Material;

接下来,缩放并移动这些对象的 UV Island,使它们都能够放入同一个 UV 空间中且彼此不重叠。在这个阶段,最好根据场景中对象的实际尺寸按比例调整各个 UV。例如,一支笔所占用的 UV 面积应该远小于一张桌子;

在导出之前,我会决定是将所有对象合并为单个对象,还是保持它们彼此独立,同时继续共享相同的 UV 空间和同一个 Material。具体选择取决于这组对象未来的使用方式。例如,如果整个场景元素始终位于最终应用的背景中,并且不需要单独移动、旋转或删除其中任何对象,那么我会将其全部合并为一个 Object。否则,我会保留对象的独立状态;

最后,将所有内容以 FBX 格式导出到磁盘。

回到 Substance Painter 后,我们需要分多个阶段完成工作。首先,必须像本教程第一个示例中那样,为每个独立对象创建 Material。然后再将这些 Material 放入新的项目中,并调整它们以适应新的 UV Layout。

第一个阶段可能会有些繁琐,因为我需要打开每一个独立的 Substance 项目,并将其 PBR Metallic Texture Set 导出为图像文件,保存到一个临时文件夹中。这一步必须对每个项目都执行。不过有一个好消息:一旦我利用这些贴图创建出 Material Preset,它就会永久保存在我的资源库中,以供未来使用。实际上,对于资源库中的每个 Asset,这项操作只需要执行一次。

当所有需要的导出都完成后,我们终于可以创建新的 Substance 项目,并导入需要贴图的 Asset。在这个项目中,我们将通过把各个 Material 分别放置到新的项目里,并对其进行缩放、移动,同时在 Properties - Fill 面板中关闭 UV Wrap,然后将其对应到 UV Layout 的特定区域,从而构建出一个单一的 Material。

虽然原先各个独立对象材质中的图层和效果已经无法再单独编辑,但我们仍然可以为这些 Fill Layer 添加滤镜和其他效果。最终,我们可以导出整个 Texture Set,从而获得一个只使用单一材质的模型及其对应的贴图文件。

好了,本教程就到这里!我们下次再见!

搜索教程

输入短语,或输入多个用逗号分隔的关键词进行搜索。

本站提供 Francesco Milanese 制作的 3D 模型、教程及计算机图形相关资源。3D 模型的使用许可可通过各模型页面上的链接前往第三方商店购买,并须遵守适用的许可条款。 Francesco Milanese — 意大利增值税号:06321250877。 联系方式:info@francescomilanese.com


高级隐私策略信息和cookie文件的使用