《落日花园》场景制作解析:UE5与Substance 3D的全流程实践
引言
你好。我叫Karl Aldskogius,22岁,来自瑞典。我是一名自学成才的美术师,对大多数艺术形式都感兴趣,但尤其热爱环境艺术。在有自我意识的大部分时间里,我一直对艺术充满兴趣。我做过珠宝、木雕、绘画等。
我接触游戏美术和环境艺术有点偶然,可能是YouTube的推荐之类的。不过,我之前做过一些3D工作,比如为Minecraft YouTuber制作横幅,这让我在第一次了解到与游戏相关的艺术时,多留意了一下。
我不太确定是什么让我坚持环境艺术,但我开始每天看教程和读文章。在完成一个手绘剑的练习项目后,我决定尝试这个更有雄心的项目。



由于这是我第一个真正想做的大项目,我决定以稍微不同的方式来处理。通常情况下,你会跟踪每个部分的时间,并优化效率,以便在最短时间内创造出最好的艺术。这当然是你应该考虑的方式,因为在行业里就是这样的。你必须在严苛的限制下创造最佳作品,比如性能限制、玩家端的完全可探索性以及时间限制。
但这是我的第一个真正的项目,所以我决定完全抛开时间限制,在流程的每个阶段尽可能多地实验。这实际上意味着很多被废弃的内容,很多细节集中在观众甚至看不到的地方,当然还有非常长的开发时间。就项目本身而言,这可能有点浪费时间,但就我作为艺术家的整体发展而言,我认为这是正确的道路。
每个人都是不同的,我认为认识到并接受自己作为个体的工作方式对于最优化地成长至关重要。我意识到自己很容易拖延,所以我开发了在拖延的同时推进工作的方法。对我有帮助的一件事是创建了一个个人Discord,我可以在里面放散步时拍的照片、突发的想法、找到的教程、看到的特定Discord消息链接,以及我认为以后会用到的随机东西。
基本上,我尝试在没精力工作时做一些能帮助我在有精力时真正做好工作的事。一个不太为人知的宝库是Bilibili。它就像中国的YouTube,有普通YouTube上所有的内容,但算法更好。此外,还有一些只有那里才有的中文内容,那些是我见过的最好的内容之一。
石材套件与可平铺纹理
对于石头和石墙的可平铺纹理,我首先在ZBrush、Maya和Substance 3D Painter中使用标准的高模到低模工作流制作了一个简单的石材套件。在贴图方面,我尽量保持石头视觉上简单,因为它将作为套件使用,同时也是可平铺纹理的一部分,这意味着要避免每块石头过于独特,因为一旦重复,就会非常突出。
在这个阶段,你已经有一个完整的套件可以在引擎中使用了:低模、高模和贴图。有了这些,你就可以进入下一步,将石材套件“转换”成可平铺的版本。



在烘焙石头时,你会设置两个组,类似于图像的上部。你需要回来重新排列它们,使得每块石头都在自己的组中,同时包含低模和高模。之后,我们进入ZBrush,将石头排列成可平铺的(有很多教程,可以查一下)。
之后,我们将所有东西导出回Maya,在这里我们必须将石头重新分离回原始的两个组(低模和高模),而不是每个石头一个组同时包含低模和高模。我们这样做的目的只是为了确保它们始终完美重叠,而不必过多担心。

现在我们把所有东西带回ZBrush(来回很多次),在这个阶段你真正需要做的只是导入你在Substance 3D Painter中贴图独特石材套件时得到的Base Color和Roughness。
记得在选中贴图时点击Flip V按钮,以便在ZBrush中正确显示。然后,选中低模可平铺对象,进入Texture Map菜单应用贴图。你应该会看到贴图正确显示。
关于ZBrush可平铺纹理的教程会解释画布大小、缩小、焦点平面等所有内容,但此时你只需关注焦点平面,对齐相机,进入Texture菜单,使用Grab Unshaded Doc或Grab Shaded Doc保存贴图(如果你用了平直着色材质,这有助于在工作时更轻松地检查贴图)。

现在我们有了Color和Roughness,接下来只需要获取Height,由于我们的设置,这非常简单。你只需隐藏低模组,显示高模组,然后进入Alpha,点击GrabDoc,基本上就完成了。

恭喜,现在我们基本上有了一个设置:只需使用独特的UV导入贴图,它就会生成一个完全相同的可平铺版本,因为它使用的是与独特网格相同的所有组件。现在是时候将Base Color、Roughness和Height导入Substance 3D Designer,在那里我们将生成Ambient Occlusion和法线贴图。
这就像放下两个节点一样简单,但我想对Base Color和Roughness做一些额外处理。正如我之前提到的,我选择让石材套件的贴图保持非常简单,没有任何会突出的对比点,因为它们在重复时会变得非常明显。
现在是时候添加一些变化了,我所做的是在石头下方添加一些阴影,在顶部添加一些高光,每块石头添加一些颜色变化,最后添加一些表面损伤。这仍然比较温和,但后面还会有更多细节,比如RGB遮罩和世界对齐的细节贴图。

贴图流程链如下:
- 独特石材套件——小部件,重复使用率高,纹理需低对比度、低细节。
- 基础可平铺纹理——在整个场景中属于中等组件,纹理中可包含更多独特元素,因为重复率不高。
- RGB 遮罩——零重复。尽量增加独特性,这不仅增加视觉趣味,还能更好地融合底层的重复元素,帮助隐藏重复感。
整个可平铺转换器的设置有点麻烦,但一旦就位,使用起来非常快捷,因此我决定创建另一个版本,在石头之间加入勾缝。为此,我只需在流程链中找到可平铺已就位但石头按单个分组的环节,然后均匀缩放每个石头,保持平铺完整性。之后,重新导出纹理,并复用 Substance 3D Designer 设置,唯一区别是添加了勾缝。

RGB 遮罩
我的 RGB 遮罩方法并不革命性,但其重要性不言而喻,从前后对比中即可看出。

第一步是规划场景中哪些部分共享同一纹理。对我而言,这有些随意,但你需要确定目标纹素密度,然后将不同资产合理分组,自动展开 UV,直到大致达到所需纹素密度。
在我的示例中,可以看到我引入了相当大的模块,这大大减少了最终所需的纹理数量。规划完成后,为模块创建第二套 UV 通道,我个人建议直接自动展开。Substance 3D Painter 处理多 UV 通道时有点麻烦,所以我交换了两套 UV,将自动展开的第二套 UV 设为第一套。贴图完成后,再交换回来。
当然,也可以保持交换状态,但长期来看,每次在引擎中处理都会更麻烦。而且第二套 UV 的法线处理方式不同,更添麻烦,可能还会增加指令数(我不确定性能影响,但至少更烦人)。
在 Substance 3D Painter 中,务必烘焙使用所有生成器所需的地图。勾选“使用低模作为高模”复选框(位于通常添加高模的方框上方)。至于贴图,当然完全取决于你要制作的内容。但我知道自己需要某种通用的脏旧方向性细节,与干净的可平铺纹理搭配。由于突出细节的尺度差异,这有助于隐藏平铺纹理的重复并更好地统一整体。
我还需要一些从上到下的渐变,帮助不同元素接地,并创造更好的视觉分离。如示例所示,我没有对整个模块只用一个渐变,而是叠加了两个渐变,它们起始和结束于不同点,以产生所需的分离效果。
第三种效果是基于 AO 的效果,经过多次模糊、直方图调整和扭曲,得到平滑的熔岩灯式过渡。这个效果我也做了两层,使过渡不那么生硬,但不是简单模糊,而是采用这种方法。

在着色器中,还可以根据灰度值分离不同部分。如果你在制作纹理时让灰度值有明显跳跃(如此处),这就会变得非常简单且结果可预测。
你可以将其视为不同的遮罩,用这种方法在着色器中驱动酷炫效果。我实际上在屋顶边缘(有些破损的地方)这样做了,以营造一种“手绘 AO”的效果。

在制作 RGB 遮罩时,务必考虑要在着色器中驱动哪种效果。因为除了视觉效果,在 Substance 3D Painter 图层堆栈和引擎着色器中还有其他要点需要注意。
对我而言,我仅用 RGB 遮罩对底层表面进行着色,因此每个图层都应设置为“线性减淡”,因为无论是否重叠,每个图层都应存在。如果忘记更改而使用默认混合模式,那就失去了 RGB 遮罩的意义。
如果通道间完全没有重叠,完全可以将其放入单个灰度通道,用不同值进行分离。不同通道的优势在于它们可以彼此重叠,但这仅在它们实际相加时有效。
当然,并非总是如此,我不打算深入每个“视情况而定”的案例,但关键是要提前思考,确保探索每一个可能的酷炫想法,而不是盲目操作,否则会错过好点子——我们可不想这样。
建模
我的场景大部分由木板、石头和碎石头套件组装成不同道具,或结合简单建模,利用可平铺纹理制作。




一些通用建议是,不要用单独的碎片来组装所有东西,而是制作一些较大的模块,然后从那里开始合并和编辑。我场景中的一个例子是楼梯,我制作了一些不同的石块部分,它们能很好地拼合在一起,然后复制这些部分来创建更长的条带。我把这些条带组装起来以获得大致形状,对于弯曲的部分,我测量了它所占用的距离。
然后我取其中一个条带,使其达到该长度,并使用 Bend 修改器将其弯曲到位。在这个阶段,我有一个不错的基底,然后我开始删除一些别扭的石块,更换一些以避免重复,并完全重做了一些边缘部分。
另一件需要注意的是,我在一些不需要它们来影响轮廓的表面上使用了均匀的四边形,但这只是为了不让顶点绘制看起来糟糕,因为顶点绘制是通过在顶点之间插值来工作的,不均匀的拓扑结构会使它看起来很奇怪。所以基本上,要相应地规划并建模。

我的大部分植被是使用 Unreal Engine 的 Foliage Tool 放置的,但对于常春藤,我注意到参考图中它的形状非常独特,有漂亮的弯曲和令人愉悦的轮廓。因此,我在 Maya 中组装它,以便可以使用 Soft Select 将其弯曲成形状,从而完全控制一切。

简单提一下我如何制作石块。我只是拿了我现有的干净石块套件,挑选了一些部件。然后我引入了一个 Megascans 网格,用它进行布尔运算,直到得到一个好看形状。之后,我在布尔区域上进行雕刻以统一艺术风格。我不需要讲太多细节,因为这段视频解释得很好:
纹理贴图和我原始套件一样,但我在石块的断裂部分稍微调整了一下。
着色器
现在我将进一步介绍我在 Unreal Engine 内所做的一些事情。
墙壁着色器
这个着色器在过度设计和怪异方面相当疯狂。我在这里花了很多时间进行各种实验,所以我不建议把它当作制作最好最高效着色器的指南。不过,其中有一些很酷的逻辑可以提取出来用于其他用途,所以我想尝试展示其中的一些。
如果完全无法理解发生了什么,敬请见谅,但我会尝试剖析它的一些元素,并像使用 Material Function 那样将其隔离出来,以便在不同材质中重用(只是我没有这样做,现在只有一团巨大的意大利面条式代码)。


以下是我实现可顶点绘制的苔藓的方法。我尝试突出显示实际在使用中的线条,因为有很多其他效果与苔藓交互等,但并不用于实际的苔藓本身,另外还有一些用于其他效果的连接与苔藓部分重叠,这在尝试快速阅读图形时会造成混淆。
阅读方式是,基本上从左上角开始,那里使用苔藓高度和另一个随机高度图(这里是我泥土地面高度)进行 Height Blend。然后,使用 alpha 结果,进行一些 alpha 偏移处理。之后,它向下到左下角,在那里作为 Lerp 的 alpha,在苔藓 BC 和 -0.05 值之间插值。
关于所有 alpha 偏移处理,要记住的是它确实以一种相当奇怪的方式工作。在 BC 和 -0.05 之间插值听起来不会使 BC 变暗,但实际效果确实如此。如果你在 BC 和 BC 的暗化版本之间插值,根本不起作用。你也不能在 Lerp 中饱和 alpha 使其行为正常,但就让它这样吧。只需复制我的值,或者像我一样自己玩一下,看看会发生什么。
无论如何,这向上进入 Height Lerp,我在那里标注了步骤2完成。然后继续向右,那里的 Height Lerp 完全相同;我只是把它分成两幅图像。这里所有东西基本上只是更多的 alpha 偏移处理,但在最后的 Lerp 之后,表面完成,之后的所有东西只是覆盖层和其他我希望应用在材质中所有内容之上的效果。
顺便提一下,我添加了一个警告,但那个 Vector3 看起来像是普通的深绿色,尽管它的值是 -0.05、0.01 和 -0.05。这是结果。你得到的效果是标准的可顶点绘制的苔藓,但它还有变暗的边缘和外部渐变衰减,以伪造一些深度并使其通过绿色调色与基底稍微融合。
我可以给出的另一个技巧是,从步骤1的 Saturate 到步骤2的 Lerp 的渐变,可以在之后用于 Lerp 中,在常规法线和平坦法线之间混合。由于它基本上是围绕顶点绘制边缘并向外倾斜的渐变,在这里修改法线会产生高度效果,有点像扰动法线设置,但这看起来更平滑。

对于石头表面,在我开始添加覆盖层和 RGB 蒙版之前,并没有什么特别之处;基本上只用了标准的基础颜色和粗糙度控制等。我另外添加的唯一东西是一个细节法线贴图,用于表现小凹陷,我将其平铺得相当密集,这样只有当你非常接近表面时它才会显现。我会附上一张节点图的图片,但想从中解读出什么几乎是不可能的。

不过实际上它并不复杂。添加一个细节法线贴图,并为其设置独立的平铺控制,这样你可以让它的平铺速率与石头不同,然后直接放入一个 BlendAngleCorrectedNormals 节点。为两个输入分别设置带有参数的 Flatten Normal 控制,以便独立控制法线强度。
我做的一个小技巧是添加一个 Split Components 节点,从细节法线中提取单个通道。然后我对该通道进行一些数学运算来细化蒙版,并用这个蒙版在石头基础颜色和较暗版本之间进行 Lerp。这样做可以带来一些不错的颜色变化,而不是为每个凹陷应用纯色蒙版,而且你也不必使用额外的纹理。

这里是着色器的 RGB 蒙版部分。看起来可能有点杂乱,但实际上设置非常简单。只需为蒙版提供一些通用控制,然后将其连接到一个 Lerp 节点,该节点在不受影响的表面和具有颜色倍增与加法控制的同一表面之间混合。第一个通道完成后,对第二个通道执行相同操作,但这次你需要将第一个通道的结果与干净的表面一起用于 Lerp,然后重复此过程。
粗糙度使用相同的 Lerp 设置,只是将标准粗糙度替换为修改后的粗糙度值。奇怪的 alpha 偏移设置可以忽略,那只是我为蓝色通道屋顶所做的一个奇怪设置。


在着色器的这一部分,我只是叠加了这些在 Photoshop 中制作的绘画风格纹理。没什么太多可说的,只是我通过同一个 Vector4 参数控制颜色和粗糙度。对于所有这些效果,我还设置了一个静态开关参数,以便可以开启或关闭它们,这很方便,因为我将此作为主材质使用。
由于所有特定效果等,这个主材质相当有限,但我仍然需要根据材质实例开启或关闭某些功能,所以它们必须存在。这里展示了所有内容。
我在我的地形材质中再次使用了 alpha 偏移元。它非常直接,通过使路径边缘变暗并使其看起来更融入场景,得到了一个很酷的效果。



小花
我的最小的花基本上只是没有任何纹理的点。我通过混合一些世界对齐的噪声并在不同颜色之间进行 Lerp 来赋予它们颜色。然后我使用 RVT 采样赋予茎秆地面的颜色,而花瓣的颜色则来自世界对齐的设置。
深度渐变门着色器
这是另一个简单但有效的着色器,它利用菲涅尔效果伪造屋内的暗淡灯光。由于菲涅尔的工作原理,它看起来像是光来自屋子深处,而不是悬浮在门相同的深度。深度渐变处理了将平面塞入门中时通常会出现的生硬过渡,使其看起来像是位于屋子更深处。顶部的正弦节点只是为了让灯光缓慢脉动,增加一些趣味。


窗口着色器
我从网上下载了一个免费的室内立方体贴图,并在Photoshop中编辑,使其更接近参考图。主要就是大量模糊和调整颜色。


树木
我首先要说明,着色等基本与这篇教程相同,因此请参考该教程以获得大致效果:
并不完全相同,因为我还做了一些其他修改,并看了其他教程,但这些最终并没有带来显著差异。不过,我要重点介绍的是我尝试的一些不同方法,试图为我的树木获得新颖独特的外观。
我的思路基本上是:尽可能多地尝试奇怪的流程和想法,最后无论如何都能学到新东西。
树干
这个没什么好说的,基本看不到,只是在SpeedTree里快速拼凑出来的,带有一个可平铺的纹理,以及可顶点绘制的苔藓。
树冠法线
你可能知道,通常我们会将球体或收缩包裹球体的法线传递到树冠上,以获得更平滑的着色,从而避免可能出现的生硬阴影。这篇教程很好地展示了这一点:
我发现,不传递法线通常看起来很奇怪,而从球体传递法线看起来又太平。因此,我想出的方法是:先将一个球体收缩包裹到我的树冠上,然后重新网格化以获得干净的四边形,再稍微平滑一下,最后在上面雕刻一些块状形状。
这些形状在法线中很好地呈现出来,为本应是完全平坦的表面提供了大量形状,同时仍然保持了柔和细腻的着色。这可能是树木整体外观的最重要因素。
随机叶片Alpha
如果你看过类似上面的树木教程,你会知道卡片设置使得每张卡片占据完整的0-1空间。我想尝试利用纹理图集,以固定增量随机偏移UV,这样我就能拥有多种不同的叶片形状,同时保持整体设置。
需要说明的是,有更高效的方法来做这件事,我的解决方案更多是为了尝试不同的东西,而不是以最好的方式来实现。不管怎样,我首先在Houdini中创建了一个设置,为每张卡片的顶点颜色Alpha通道随机分配0到1之间的值。这个值以0.1为增量分配,因此组1为0.1,组2为0.2,以此类推。
我还设置了一个滑块,随机删除卡片,这样我可以进入Unreal Engine检查效果,然后降低卡片数量直到视觉开始出现破绽。设置完成后,我进入FlipBook函数并制作了一个修改版本。唯一的区别是我断开了Time节点,将顶点Alpha连接到之前Time节点连接的输入上。因此,它根据顶点Alpha在图集中翻页,而不是随时间翻页。
结果是树冠中的每张卡片都获得了不同的叶片Alpha。我用红色通道进行插值的是从图集中手动选择的叶片Alpha,其轮廓非常柔和,用于房子左侧的主角树。我手动在不那么需要细节的地方绘制该叶片,从而使得细节保留的区域更加突出。



紫藤
紫藤显然是场景中不可或缺的一部分,正因如此,我迟迟没有动手制作,担心我的尝试达不到想象中的效果。经过反复思考、尝试和实验,我终于得到了一个相当满意的结果。其核心无非是反复试错,但这里有一些小技巧和要点,或许能帮助你获得满意的效果。





首先,为初级根和次级根生成一个不错的配方,这样你就有一些好的扭曲效果等可以用于工作。然后,我将场景中切出的部分放入SpeedTree,作为紫藤生长的碰撞体。
之后,就是手动编辑和大量力场的运用,以引导根以视觉上令人愉悦的方式生长。我识别出一些重要的轮廓,必须确保捕捉到,比如从凉亭第一条腿延伸并弯曲到顶部的根。
这些部分我进行了非常严格的艺术指导,但一旦它们就位,我就可以完全程序化地处理三级分支,并用力场引导它们填充我想要的空间。
基本上:
- 初级根=最关注,手动艺术指导以获得强烈的视觉语言。
- 次级根=作为整个植物大致形状的骨架。
- 三级分支=作为植物的体积。
之后,再在四处添加一些花朵,就大功告成了。我学到的一个绝妙技巧,把我从深深的挫败和绝望中拯救了出来,就是使用 Season Light force 来移除垂得太低的花朵。我希望枝条和叶子能够垂下来,以获得那种饱满、丰盈的效果,但花朵长得那么低看起来很奇怪,而且以我紫藤的设置方式,很难轻松移除它们。
在 Unreal Engine 中的着色器与我其他植被的基本相同,但 SpeedTree 的一个好处是可以免费获得不错的风动效果,所以我直接用在紫藤上。除此之外,我添加了一些顶点绘制控制,通过将基础顶点颜色设置为0.5,可以让我向任一方向偏移紫藤的色相。值越高或越低,色相就朝相应方向偏移。对于提亮和变暗,我也做了同样的处理。
这样一来,你就能从两个通道获得四个控制参数,然后我可以在剩余的第三个通道中导入 SpeedTree 的环境光遮蔽(AO),并将其用于各种效果,如基本 AO,以及影响次表面散射(SSS)。另外要记住的是,SpeedTree 有一些很酷的选项来操控资产的法线。我在 SpeedTree 和 Unreal Engine 之间交叉检查,并调整设置,直到达到最佳效果。
根贴花(Root Decals)
在查看《守望先锋》的一些参考时,我注意到他们在所有常春藤后面都放置了根贴花。我将其与我的紫藤和常春藤进行比较,意识到正是这些根让整个设置看起来更有趣,而不是一个没有细节可读性的绿色团块。
参照《守望先锋》的例子,我在 Photoshop 中绘制了一些形状,确保它们有那种有趣的曲线,末端尖锐,然后再次流回曲线,如果这么说能理解的话。在 Unreal Engine 中,我将它们放置在常春藤周围有趣的位置,然后关闭植被的“接收贴花”选项,这样贴花就会落在常春藤后面。


植被
对于我的植被着色器,我主要想确保它能有优美的摇摆风动效果,而不是仅仅依赖 Unreal Engine 标准的 SimpleGrassWind 函数。幸运的是,PrismaticaDev 有一个很好的教程,我按照它实现了这个效果:
后来我也加入了一些 SimpleGrassWind,但强度非常低,并与摇摆风动混合,以获得进一步的变化。有些植物对某些效果的需求比其他植物更多,因此我并没有给每种植物都使用相同的主材质。例如,一些植物使用了基于 BoundingBoxBased_0-1-UVW 函数的从上到下的渐变,而一些较大的、呈“灌木”形状的植物则使用了烘焙的 AO。
植物的一些视觉效果来自于一个后处理材质,所以我先解释这个,然后再介绍我所有后处理效果是如何设置和运作的。


后处理材质
效果本身只是蓝色圆圈部分。简单理解其作用的方法是,想象你在查看漫反射缓冲,然后使用变亮混合模式将其叠加到你的正常视口上。绿色部分是如何遮罩效果,使其仅影响花朵,这个概念将在我的大多数后处理材质中再次出现。
该设置依赖于自定义深度模板(Custom Depth Stencils)。这是一个可以按网格体启用的功能,它会将其放入模板缓冲。然后你可以在后处理材质中从该缓冲读取数据,并用于遮罩效果。在本例中,我选择了值9,这意味着 If 节点在自定义深度模板值为9时返回9,否则返回0。然后将该结果限制为0或1,用作 Lerp 中的 Alpha。


以下是我的 Kuwahara 滤波器后期处理材质。Kuwahara 滤波器基于这个视频,我所做的基本上就是按照之前的示例,为其添加自定义深度模板遮罩。
这里的区别在于我叠加了许多不同的模板值,这是因为许多效果都可以使用 Kuwahara 滤波器,但由于其他效果的原因,它们仍然需要不同的值。我的水体使用了 Kuwahara 滤波器,背景树木也是如此。不过它们使用的强度不同,因此需要不同的值来区分。
在图表底部,有一个令人困惑的小部分,它根据模板值为 Kuwahara 滤波器返回不同的 RADIUS 值。它默认使用 RADIUS 参数,该参数设置为 2,除了模板值 3 和 5 之外。模板值 3 返回半径 3,模板值 5 返回半径 1。
这可以看作是对上一个示例的升级,因为现在不仅可以根据网格开启或关闭效果,还可以在完全遮罩之外控制 Kuwahara 滤波器的强度。

我的最后一个后期处理材质是轮廓材质。我在网上花了不少时间寻找好的轮廓材质,但奇怪的是,感觉所有找到的都使用纯色轮廓。当我将这些轮廓应用到场景中时,到处都有黑色轮廓,看起来非常奇怪。幸运的是,修改起来很容易,而且我认为结果看起来相当不错。


不同颜色的轮廓为整个场景赋予了更独特的艺术风格和感觉,也有助于在视觉上分离堆叠的元素。



独立展示的轮廓和植被后期处理效果。

关于后期处理材质和自定义深度模板遮罩要讨论的最后一点是上面突出显示的这种情况。在树木上,我们可以完全移除轮廓或使其在所有地方启用,但如果想要在树木上有轮廓,而在与草地相交的地方没有轮廓呢?
轮廓实际上来自草地,但我们不能移除草地上的轮廓,因为它们与后面的墙壁形成了很好的分离。我们只是不希望在树木上有轮廓,因为在我看来,这种较柔和的过渡在这种情况下效果更好。为了解决这个问题,我创建了一种后期处理材质移除体。
这只是一个空的半透明材质,启用了“允许自定义深度写入”。然后,在应用此材质的网格上,只需取消勾选“在主通道中渲染”。最后一步是为其自定义深度模板选择一个值。这个值可以是任何值,但对我而言,我将其设置为移除所有后期处理材质效果。
VFX
为什么做3D环境而不是画作?对我来说,一个重要的因素是画面的动态及其给作品带来的生命力。这是我感觉必须拿捏好的部分,但令人惊讶的是,它并没有带来太多麻烦,因为场景大部分被植被覆盖,一个良好的风力摇摆设置就足以让约90%的场景活起来。
不过,我确实添加了很多其他内容来增加场景的生动性,我将快速过一下我实现的内容。我添加了一些沿着样条线飞行的鸟,通过顶点颜色和正弦波进行动画。我还为小船使用了一个简单的WPO正弦波设置,使其轻微上下浮动。
为了配合移动的小船,我也为水面添加了一些WPO。我遇到的一个小问题是,由于连接到水面的入口结构,我需要波浪非常轻微。它延伸到非常靠近水面,如果使用较强的波浪,它们会穿透结构看起来很奇怪。
我本可以只保持波浪微弱,但那样就不会被注意到。我转而使用了两种不同的波浪强度,通过顶点颜色进行插值。默认的是较弱的波浪,然后我在右侧水中的柱子周围绘制了较强的波浪。
这根柱子非常高,所以你可以让波浪尽可能强,通过与柱子形成对比,让观众真正注意到波浪。巧合的是,吸引观众视线的完美位置恰好也是小船所在的地方,所以我免费获得了这种视觉关系。除此之外,唯一值得详细说明的就是光束。
光束只是放置了一些带有着色器动画的面片,我将其分布在场景中,使光照感觉不那么均匀。唯一经过深思熟虑的放置位置是在小船周围。我通过拱门并在小船后面放置了一束光,以在小船与背景元素之间形成良好的分离,同时将额外注意力吸引到该区域。
除此之外,我还添加了一些浮动的花粉、风的声音、使用Light Function的云阴影、蝴蝶群和烟囱烟雾。在展示视频中,我还添加了一些轻微的摄像机抖动,以打破CG的感觉。
光照
场景的光照对我来说是一个真正的挑战,并且贯穿了整个项目。每当我拖延去做一些更独立的工作,比如一个石材套件、一个Designer材质或类似的东西时,我就会跳进Unreal,要么摆弄着色器,要么尝试改进光照。
我的光照工作流程基本上是调出所有影响整体图像的东西,像个疯子一样调高每个设置,直到找到能改善感觉的东西,哪怕只有一点点。我经常卡住并感到沮丧,然后关闭所有东西,转而摆弄着色器,这就是为什么我的光照过程非常迭代和零散。
和其他所有事情一样,寻求大量反馈至关重要,但对于光照来说,这被提升到了一个全新的水平,至少对我来说是这样。回顾我早期的一些光照设置,我现在注意到它们看起来非常奇怪。但我记得当时完全对此视而不见,其他人的反馈是我唯一的救命稻草。


结论
我觉得我把整篇文章写得太长了,但作为一个文章阅读战士,我记得曾经翻阅无数文章,寻找那个特定的着色器设置、小工作流技巧或任何可能的东西。因此,我决定尽可能多地将我所做的事情倾注到这个解析中,以便也许有人能在其中找到对自己有用的东西。
我写这篇解析的目的是希望有人能找到一种酷炫的技术应用到自己的工作中,或者帮助初学者艺术家利用那些帮助我起步的技巧开启他们的艺术之旅。最后,我想大多数人已经知道这一点,但我还是要说:一定要向有经验的专业人士寻求建议。人们愿意提供帮助的程度远超你的想象。
特别鸣谢:
- Experience Points Discord
- Dinusty Discord
- Stylized Station
- SBECord
- Waramaug
- 3nz1o
……还有很多。
感谢阅读!
喜欢这篇内容吗?