构建钥匙生成器

介绍

你好,我叫丹尼尔斯温。我目前是瑞典斯德哥尔摩FutureGames 的3D 图形学二年级学生,我即将投身游戏行业并开始职业生涯。我来这里是想谈谈我几周前在Substance Designer 中制作的“钥匙圈生成器” 。

物质设计师的优势

我已经使用 Substance Designer 两年多了。我于 2017 年 2 月开始参加Polycount的双周物质挑战赛。那是我最初发现 Substance Designer 的深度和软件中的可能性的地方。

当时,Substance Designer 真正让我印象深刻的是我可以非常快速地获得视觉效果。

我习惯了建模/雕刻的“常规”工作流程 -> 重铺 -> UV 映射 -> 烘焙 -> 纹理,在几个不同的软件解决方案之间来回跳跃(所有这些都有自己的小怪癖)——这是很好,但对于某些资产来说有点耗时。

在 Substance Designer 中,我可以在短短几分钟内获得令人满意的结果,比使用“常规”工作流程快得多。这就是让我使用 Substance Designer 和学习软件的原因。

今天,我喜欢 Substance Designer 的地方在于它的工作流程是程序化的、模块化的和非破坏性的(我在其他软件工作流程中确实缺少这一点)。

示例:无需手动雕刻 100 种不同的岩石(同时在它们之间保持统一的形状语言),我可以在 Substance Designer 中设置一些基本的岩石形状,用不同的图案对它们进行变形和扭曲,并混合一些噪音以获得无限变化的岩石。我可以通过更改随机种子来创建变体,而不必从头开始重新制作整个资产。

而且我永远不必承诺任何事情。我可以随时更改任何内容,使迭代工作流程变得非常简单。如果我意识到岩石太大而需要将它们变小,我可以返回图表并更改一些数字/参数,图表的其余部分将相应更新。如果我想减少岩石表面的噪音,我可以同时减少对所有岩石的噪音影响。如果我想在岩石中引入一种新的损坏、磨损或裂缝,我可以随时将其添加到我的图表中——我不必从头到尾遵循严格的计划。

在我之前描述的“常规”工作流程中,在过程中途进行这些更改基本上意味着从头开始并回到“建模/雕刻”阶段。但在 Substance Designer 中,迭代只是工作流程的一部分。

钥匙圈生成器

Substance Designer 的这种程序化、模块化和非破坏性性质让我想到了手头的主题,即“钥匙环生成器”。

游戏中比较常见的情况是“你有一把钥匙!” 屏幕上会出现一个钥匙的特写镜头,或者角落里一个钥匙的缩略图,上面写着“添加到你的库存”,或者类似的东西。除非你的游戏有一个通用的“小钥匙”来打开每把锁,否则你可能想要一些多样性。但是有多少变种?在时间上,为这样一个小而微不足道的物体制作大量变体可能是不可行的。

除非你以模块化和程序化的方式来处理它!

我的目标是制作一个模块化和程序化的密钥生成器,艺术家可以使用它来生成几种不同的密钥变体。

正如我之前提到的,Substance Designer 中的工作流程非常适合迭代。当我开始时,我不知道如何解决这个问题,也不知道最终产品将如何运作,或者它会是什么样子——在我确定一种方法之前,我不得不测试几个不同的变体。

起初,我认为应该在一个节点中生成整个键(键头、键轴和所有 PBR 通道都在一个节点中),但我意识到通过将它们分离到不同的节点,我可以使它们更加模块化并且不那么杂乱。

让我们开始剖析“Key Cutter”节点:

如您所见,处理“Key Head”的节点比处理“Key Shaft”的节点多得多。这只是因为我想制作几种不同的预制头部形状。必须为“Key Head”部分完成大量手动工作(例如,文本的位置需要根据选择的预制头部形状而有所不同),而图形的“Key Shaft”部分相反,它包含更多复杂的过程函数图。

一些预制的头部形状只是非常简单的几何形状,而另一些则需要更复杂的遮蔽技术。

在编译了 19 个不同的预制形状(+ 自定义形状输入)后,我将它们汇集到一个多开关中(它连接到允许艺术家选择他们想要使用的预制头部形状的变量),然后我使用它们共享的所有通用参数处理头部形状,例如控制孔形状和大小、边框厚度和衰减、图案叠加、文本混合等。

“Key Shaft”部分不需要太多的逐案控制,因此更加流畅。

在这里,您可以看到我如何从统一的黑色开始,通过使用混合节点中的“裁剪区域”参数将其变成白色正方形和矩形,然后在其中切割牙齿和铆钉。这里真正的技巧是公开正确的参数,以允许艺术家自定义键轴。示例:“牙齿深度”变量控制图形中第二个方向扭曲的强度,而“牙齿深度随机性”控制图块采样器(具有水平渐变的那个)中的“颜色随机”参数。

当我在 Substance Designer 中工作时,我总是从高度信息(在本例中为“Key Cutter”节点)开始,并使用高度图作为基础来生成所有其他必要的 PBR 通道。“钥匙环生成器”也不例外,唯一的区别实际上是“钥匙颜色”节点只能访问“钥匙切割器”节点的最终高度输出(我不能重用我生成的很多其他信息在我通常做的高度图过程中)。这带来了一些我必须找到解决方案的问题。

“Key Color”节点将“Key Cutter”节点作为输入。根据给定的高度信息,’Key Color’ 节点生成一些通用掩码(0.5 线性为“中间”,低于此值的任何高度值都被屏蔽并视为“雕刻”,高于此值的任何高度值均被屏蔽并处理如“突出”)。我混合并匹配这些不同的蒙版,并将它们与一些噪音混合(本质上,蒙版生成器类似于您在Substance Painter 中可以找到的那些)以获得一些更具体的选择(屏蔽金属和非金属部分等) –这些面具是程序性的,将保持一致。无论我输入什么键形,它们都不需要任何手动调整。

同样,所有这些都是我在项目开始时不知道我必须做的事情,也是我在第一次尝试时没有做对的事情。这些掩码生成器在变得足够普遍之前需要大量的测试、重新审视和细微的调整。

正是通过这些通用蒙版、高度图(用于生成曲率和 AO 信息)和一些程序噪声,我创建了所有必要的 PBR 通道(基色、粗糙度、金属等)。

我使用了我自己的“多方向扭曲”节点(功能与最近 Substance Designer 更新中的节点非常相似)并使用高度和曲率信息将噪声扭曲为键的形状(扭曲是 100% 依赖的)在输入的关键形状上)并使用程序蒙版混合这些不同的模式和噪音。

在自定义材质时,“关键颜色”节点中的大多数参数只是在混合节点中公开的“强度”值。

在这里,您可以了解我如何解决有关调整键头大小的特定问题,以及我如何着手寻找解决方案(我如何在自己的图表中识别问题以及如何解决该问题的示例)。

2 中的1

2 中的1

这可以用来做什么?

这个“钥匙环生成器”只生成纹理,没有实际的多边形几何体(我个人发现它们在平面上渲染时看起来很乏味)。

高度细分和位移的平面并不适合实时运行,因为它需要相当多的性能。但这并不意味着这个“钥匙环生成器”不能用于为游戏或其他视觉实时媒体创建资产和内容。例如,高度图可用于在ZBrush或Maya等软件中生成高多边形模型。透明度/不透明度蒙版也可用作 Quad-Draw 工具的指南,以创建低多边形模型。有时,甚至不需要完整的 3D 模型。

其他类似的程序工具可用于创建程序螺钉、螺母和螺栓或其他贴花(有机和硬表面),用作 ZBrush 中的高度图或 Substance Painter 中的工具。

返回首页 

作者 CG-BOX

发表评论