手绘PBR打造《Bilgewater》俯视角港口场景:围绕玩法设计的环境美术流程

AI3D 发表于 3 周前 浏览 1 分类 创作分享

简介

大家好,我是 Kostia Perry,网上也称作 Tarmunds。我是一名来自法国的 3D 技术与环境艺术家。在艺术生涯初期,我非常想成为一名概念艺术家。为此我进行了大量学习,并爱上了数字绘画,这种影响延续至今。

我加入 Artside School 时目标还是成为概念艺术家,也正是在那时,我发现原来可以在 3D 中作画。这彻底震撼了我。后来,当我接触到 Unreal,并发现只需按一个按钮就能与自己的世界互动时,我确定这就是我一生想做的事。于是我深入环境艺术,尤其专注于风格化、手绘以及 Unreal Engine 专属工作流。

随着不断深入,我想在 Unreal 中进一步推高视觉品质与交互性,这也让我走上了技术路线。从那时起,我开始探索 shader、工具和管线搭建。就这样一路掉进了技术的兔子洞!

Creating Hand-Painted 3D Harbor Scene Designed Around Gameplay
Creating Hand-Painted 3D Harbor Scene Designed Around Gameplay
Creating Hand-Painted 3D Harbor Scene Designed Around Gameplay
Creating Hand-Painted 3D Harbor Scene Designed Around Gameplay
Creating Hand-Painted 3D Harbor Scene Designed Around Gameplay

比尔吉沃特项目

我最初爱上了 Grace Liu 的超棒概念图,作为一名海盗宇宙的忠实粉丝,这真的让我产生共鸣。我的主要目标是把我对比尔吉沃特的那种感受转译到 3D 中。不是基于设定或其他图片,而完全来自我脑海中的构想。

Creating Hand-Painted 3D Harbor Scene Designed Around Gameplay

为了实现这一点,我选择了手绘 PBR 工作流。这样既能保留绘画感,又能加入动态光照以及有意思的金属度和粗糙度数值。我之前有一些类似 Wayfinder 工作流的经验,但我不想要同样锐利且“脆”的观感。我的目标是更柔和、更平滑的着色,以强化绘画美学。

我也深受 Airship Syndicate 在 Ruined King 中作品的启发,尤其是他们的概念设计。就参考而言,我的 PureRef 参考板并不算广。里面有一些绘画参考、Grace Liu 的相关作品,以及 Virgilia Critchfield 和 Baldi Konijn 为 Ruined King 制作的概念设计。

Creating Hand-Painted 3D Harbor Scene Designed Around Gameplay

开始制作

白模做得很快,但我花了足够多时间解决所有比例、层次和透视问题。我不断在 Blender 和 Unreal 之间来回切换,用粗略灯光和合适的摄像机设置来测试一切。构图方面,我保留了原始构图,但进行了裁切,以更好地突出视觉焦点。这也帮助我强化了场景中的方向线和动态流。 

Creating Hand-Painted 3D Harbor Scene Designed Around Gameplay

木板确实是个不小的挑战。我重做了很多次,才找到合适的观感。由于这是我最早的一批俯视场景之一,我还不太习惯所需的细节程度。你其实可以看出地板木板随时间演变的过程:它们变得更简单,以避免噪点,让构图而不是资产本身来承载细节。

Creating Hand-Painted 3D Harbor Scene Designed Around Gameplay

柱子方面,只有柱头是雕刻的。圆柱部分使用第二 UV 通道来做平铺贴图,并通过顶点色与烘焙好的柱头混合。UV 参数通过 Custom Primitive Data 暴露,所以我能按实例调整缩放和重复,并自由调整柱子高度。为了填充港口,我创建了一个样条网格工具来阵列绳索,并暴露参数,可直接在 Blueprint 中控制摆动动画、朝向、偏移和轴心点。

布料方面,我使用烘焙顶点色通过 WPO 驱动噪声图案。旗帜的设置更有意思:我用正弦波让它们绕轴心旋转,并用同样的图案扰动法线,以增强飘动感。

大多数小型资产都是通过套件拼装(kitbash)制作的。为了高效处理,我创建了一个着色器,让我可以通过顶点颜色的 alpha 通道在不同套件之间切换。例如,alpha = 0 对应烘焙贴图,0.25 对应金属套件,0.5 对应木制套件,等等。这些应用直接是在 DCC 软件端完成的。这样可以减少每个材质槽的绘制调用,因为套件拼装资产只有一个材质。

举个例子,支撑灯笼的杆子除了使用木制套件的部件外,还使用了金属套件的饰条贴图(trim sheets),全部都在一个着色器内,以尽量减少绘制调用。灯笼本身只使用金属套件。

这些技巧,结合扎实的模块化套件,帮助我保持高效并加快工作流程。

重拓扑

大多数资产都是低多边形,然后在 Blender 中清理。这让我节省了重拓扑的时间,同时更专注于 UV 和烘焙,以确保一切在引擎中看起来都不错。由于这是一个俯视视角项目,有限的摄像机旋转角度让我能够从减面(decimation)中受益,而不会有太多诸如过度绘制或深度问题之类的缺点。

对于之后要弯曲和变形以进行套件拼装的模块化套件部件,我更喜欢手动重拓扑,以确保更干净的变形。

Creating Hand-Painted 3D Harbor Scene Designed Around Gameplay

我所有的网格都有干净的 UV,以尽量减少烘焙瑕疵和引擎内错误,即使它们是基于减面模型制作的。为此,我混合使用了自己制作的自定义工具,以及 Blender 中的 Mio3 UV 插件。为了进一步加快流程,我制作了一个插件,让我可以从 Blender“一键烘焙”到 Marmoset。这让烘焙和迭代变得流畅而快速。我已在这里免费分享它。

纹理制作

创建手绘纹理没有什么诀窍;我都是手动绘制的。烘焙完贴图后,我直接进入 Photoshop,使用烘焙贴图构建基础颜色。在此基础上,我进行叠绘,为材质添加色彩变化、细节和生命力。我也习惯手动编辑法线贴图,使其与我的绘制相匹配。例如,如果我在反照率上绘制了新的裂纹,我会直接调整我的法线贴图。

在 Unreal 中,我设置了一个自定义着色器,在保留动态光照的同时增强反照率。我还重新映射了阴影值,使其看起来更亮,帮助减少暗部,并在整个场景中恢复手绘质感。

Creating Hand-Painted 3D Harbor Scene Designed Around Gameplay
Creating Hand-Painted 3D Harbor Scene Designed Around Gameplay

光照与渲染

在布置场景和散布细节时,我尽量让整个过程中都带有叙事性。例如,有一根杆子,我想象有一盏灯笼掉到了地上,导致了油洒出来。像这样的小瞬间帮助我为环境注入生命力,并让我保持讲故事者的心态。

光照是这个项目的关键元素,对于让最终场景中的一切感觉协调统一至关重要。我做了大量实验,以实现我所追求的那种诡异、粗粝和阴郁的氛围。其中很大一部分来自调整全局曝光,并使用米氏散射来模拟阴天的情绪。起初,我过于偏向绿色调,但最终转向了更偏蓝的绿色调色板,感觉更接近海洋。为了形成对比,我使用了更温暖的、带橙色色调的光源,营造出令人愉悦的互补色平衡。

Creating Hand-Painted 3D Harbor Scene Designed Around Gameplay
Creating Hand-Painted 3D Harbor Scene Designed Around Gameplay

为了增强绘画感,我另外加入的一个小细节是在灯笼上使用了翻页动画公告板(flipbook billboard)。它们为每个光源都增添了发光的光晕,并帮助将手绘美学与动态光照统一起来。

工具

在这个项目中,我实现了各种技术方案来加快工作流程并提升性能。以下是其中几个的详细说明:

绳索工具

为了轻松填充港口环境,我创建了一个样条线网格工具来阵列绳索。虽然它不是最先进的工具,但我添加了通过材质传递蓝图数据的功能,让我能够控制微妙的摆动动画。在这些暴露的参数中,我可以调整摆动方向、偏移、枢轴点和遮罩。最终,这让我对绳索在整个场景中的散布和动画方式有了很大的控制权。 

招牌动画

与绳索系统的思路相同,我还添加了直接通过主着色器切换简单动画的能力,由着色器参数驱动。例如,招牌有一个更复杂的摆动动画。使用顶点颜色来确保链条弯曲,同时招牌本身保持刚性。枢轴位置和角度等参数可调节。我还确保法线随网格一起旋转,以便在动画期间保持正确的着色。

VAT(顶点动画纹理)

鉴于场景中有大量海鸥,我想测试 VAT 来优化动画。我首先在钓鱼竿上尝试用它让钓鱼竿活起来。然后我烘焙了我为海鸥制作的两个动画,一个休息,一个飞行。这些动画通过单个浮点值切换,让我可以通过蓝图驱动鸟的行为。这有助于降低运行时开销,同时保持场景的动态感。

木柱

对于木柱,我使用了一种简单但有效的技巧:只对柱头进行雕刻。柱子的“圆柱”部分使用第二套 UV 通道来平铺纹理(第一套 UV 用于烘焙细节)。烘焙雕刻与平铺纹理之间的过渡通过顶点色混合来处理,如有需要,我可以按实例进行调整。我还通过 Custom Primitive Data 暴露了平铺纹理的 UV 参数,使我能够为每根柱子改变缩放和重复次数。这一技巧让我可以轻松调整柱子的高度,并把艺术细节集中在最重要的地方,也就是柱头和平铺部分。

水体着色器与系统

对于海洋,我将水模拟烘焙成包含位移、法线和自定义遮罩(例如用于泡沫)的翻页书(flipbook)。我在引擎中使用了单层水体设置,并集成了 SDF 检测来处理与水面相交的物体。

我添加了简单的泡沫生成,根据水面高度触发。每个资产会以轻微延迟采样该高度,以模拟泡沫在接触点出现的效果。所有与水相关的元素(平面、参数等)都通过一个蓝图管理,该蓝图将大部分数值存储在材质参数集合(MPC)中。

总体而言,我对水体系统很满意,但如果时间更多,我会重新制作泡沫系统,通过烘焙累积遮罩让泡沫行为更准确。我还会在水面高度烘焙世界 SDF,以获得更精确的水-物体交互(对游戏用途来说性能不佳,但这里是艺术导向)。

我还实现了许多 connex 技术,尤其是与其“玩法”相关的内容。

结语

这件作品花了我四个月才完成,不包括角色(角色是我后来做的)。我是在 Artside 学习并兼顾自由职业工作的同时完成它的,所以时间很紧。我学会了如何为自己制作工具来提高效率。

如果我能给初学者几条建议:首先,不要限制自己。不要让技术限制扼杀你的创造力。如果你想做某件事但不知道怎么做,就去学。这比待在舒适区更艰难,但值得。

如果你想进入手绘风格,那就去画。手绘艺术的美就在于它的不完美。试图通过滤镜或程序化手段来伪造它,永远不如手动完成那样有冲击力。

最后,特别是对学生环境艺术家来说,要学习不同的工作流程。学习如何搭建环境,如何使用可平铺纹理(tileables)、trimsheets、贴花(decals)等(甚至技术)。不要停留在烘焙道具的制作流程里。你的工具箱里的工具越多,你获得的创作自由就越大。

我想感谢所有抽时间对这个项目给我反馈的人:Sacha Veyrier、Nicolas Ceriani、Anthony Lemetayer、Romain Durand、Camille Delmeule、Florian Potier、Lionel Cregut、Matthieu Laude 和 Arnaud Claudet。还有我的朋友 Elisa Binz 和 Thomas Grosjean。你们的意见带来了真正的改变。

Kostia Perry,3D 环境与技术美术师

采访者: Amber Rutherford

相关链接

原文链接:https://80.lv/articles/creating-hand-painted-3d-harbor-scene-designed-around-gameplay

喜欢这篇内容吗?