引言
我是 Alex Luna Garvin,一名 3D 与材质艺术家,职业生涯却是从程序员起步的。我一直想进游戏行业,整个少年时代都在学编程、几乎每天都用 Unity,直到我终于去读了计算机科学的大学学位——只读了大约三个月。
就在那时,我决定把人生翻个个儿,第一次开始学美术:退学,报了一门动画与 3D 环境的课程,在那里学到了 3ds Max、Unreal 和 Substance 3D PAInter 的基础!
我做过自由职业 3D 艺术家、为 VR/AR 体验写 C# 的 Unity 开发,最近则担任 Kitbash3D 的材质艺术家,参与过不少项目,比如 Brutalism 2055、Military Vehicles、赛博朋克风格的室内与载具、飞船等等。

座舱项目
在 Kitbash3D 做 Military Vehicles 的时候,我收集了一堆很酷的座舱参考。当时我就想做一套基于它们的材质,但那阵子在忙别的个人项目,所以一直没真正动工。
几个月前,我做了一个叫 Extended Shapes 的 Substance 3D Designer 工具,它用 SDF 数学表达式,把原本需要大量节点、变换与混合才能做出的形状,压缩成一个简单快速的节点。我正想找个有意思的点子来测试它,于是决定开始做这套座舱材质。
大部分形状都是用我自制的 Extended Shapes 工具生成的;工具搞不定的时候,我就用简单节点的经典组合来达成结果。
Extended Shapes 示例:

传统形状搭建方式:

一开始我就知道,这套材质很快会变得极其复杂,所以有条理、有清晰的策略,是把它做完的关键。
那我们就来看看最终的节点图吧。原图太大了,大到没法上传到任何网页(78165×22297 像素)。要理解这套材质的主体,只需要关注每个框的颜色就够了。

每个面板我都有两个必备的框:蓝色代表高度图,红色代表图形。带屏幕的面板,我还会用黄色框来做屏幕,把一切都分门别类。

内容很多,我先简要拆解一下第一个面板的制作。首先用 Extended Shapes 工具做出面板的基础形状。我不用默认的形状节点,是因为它可以做成圆角盒子,省下几个节点。记住,这么大的材质,每省一个节点都有意义。
把它接到 panelsBevel 之后——这大概是本文最重要的一条经验。我经常用这招让每个面板保持一致,也方便日后做大改动。如果打开 panelsBevel 这个节点看内部,它其实只是一个 Bevel 加一个 Blur;但这么早就建立简单的抽象,正是「一团乱麻的材质」和「做得完的材质」之间的差别。

这里另一个重要的抽象是 panelsHeight,它只是一个简单的 level,用来让每个面板保持一致,方便之后一次性更新全部面板。

之后面板的创建就非常简单了。我只用形状、镜像、level 和 transform 的基本组合,就能做出所有面板元素。但你可以看到,整个过程我一直让面板保持在中心。最后一步,就是每个面板的 Transformation Panel 节点。
面板高度做完后,我用一个 Transformation 节点来设定它的位置,然后把这个节点也做成抽象,后面会很有用。这个面板比较特殊,它有 3 份数组复制,其实就是三次变换的混合。

你可能会想,这里为什么不直接用个简单的 transform?但你看,这个面板现在还没有任何图形或屏幕,所以我可以再次复用这个 Transformation_1 到其他元素上,让一切保持一致、条理清楚。

这招不止这一种用法。对我来说,让每个元素都独一无二非常重要,所以我们可以把 Transformation_1 用在面板的各元素上,抽出遮罩,供之后做基础色、金属度和粗糙度贴图时使用。

用这个技巧,更新面板的位置或缩放都很容易。有了这些,我们就能抽出遮罩并混合成一张 ID 图。最终材质里我并没有用这张颜色 ID 图,但它在整理遮罩、检查进度上非常好用。

Substance 3D
我在 Substance 3D Designer 里的工作流非常直接。每个项目开始时,我都会先在 PureRef 里做一份参考文件。这份文件因项目而异:有时用情绪板,有时按颜色分区,有时是光照参考,等等。
但我看到很多人会放太多参考。对你想要做出来的东西有清晰的路径很重要,参考太多反而可能毁掉整个项目。这套座舱材质,我的 PureRef 文件就小得可怜,你可以看到。

开始做 Substance 3D Designer 之后,我的流程总是一样的:专注高度图,从大到中再到小细节。大多数人会先把高度图做完再去做基础色、粗糙度和金属度,而我会尽早把那个底搭起来,通常中期形状做完就开始。
这套座舱材质不太一样:我先把高度图做完,才动其他贴图,因为我需要先有遮罩。在我看来,任何材质想做出写实感,诀窍都是「一点点加」。用 10 层稍有不同的颜色、混合值 0.05,比用 5 层 0.1 要好。
当然,我们也得克制,不能混过头,但这靠反复实践与经验。最终你会知道什么时候该停手。除此之外,重视渲染和重视材质本身一样重要,甚至更重要。糟糕的渲染场景能毁掉一套好材质,而好的灯光与相机设置,能把平庸的材质抬成惊艳的作品!
这篇文章已经够长了,而且这个主题的教程到处都是。我所有的渲染都用 Marmoset Toolbag 5,不过 Unreal Engine 或别的渲染引擎也能胜任。
这套材质很特别,有各种按键、拨杆和屏幕。如你所见,我的工作流把一切都做成了非破坏性的,所以你几乎可以改这里的任何东西!从哪个按钮被按下,到元素旋转的角度,等等。
我没有花时间去建参数、让一个并不存在的用户通过界面来改动,因为这套材质本来就是做给我自己用的;不过如果将来需要,做起来也很容易。
结语
这套材质从头到尾花了我大约一周,再加一整天做渲染。不过实际上,我开始做它的时候正在搬家,所以每天只能做一点点,中间还完全停了一个多月。项目九月开始,到十一月底结束。
座舱材质最大的挑战,是把这套非破坏性、可迭代的面板创建工作流想出来;但意外的是,一切从一开始就顺利推进,这很不寻常!
对于想做出好看材质的读者,我最后的建议是:逼自己一把!我看到很多人害怕走出舒适区,不愿意碰自己一时不会做的东西。
我每个项目开始时都抱着学点新东西的冲动,结束时都会分析自己做到了什么、还能改进什么。比如这套材质,我对结果非常满意,但我仍在提升渲染技巧,也在琢磨怎么在作品集里展现自己的流程。
很多人来问过我这套材质的问题,所以随时可以通过我的 ARTStation 联系我,我很乐意帮忙。也谢谢你读到这里!
更多材质工作流的拆解可以查看本站 案例教程 分类;
需要现成的金属表面资产,可以看 Metal Materials Vol 2——虚幻引擎逼真金属表面的 PBR 材质集合,想了解 Extended Shapes 所在的软件版本,则可以参考 Substance 3D Designer 16.0 发布:3D 散布 + SDF 建模 + OpenPBR。


评论(0)