Lea Kronenberger 带领我们了解在环境艺术中平衡模块化和独特性
我是 Lea,是来自德国的 3D 环境艺术家。自去年年底以来,我在 Frictional Games 担任 3D 艺术主管,与一群才华横溢的人才一起为我喜爱的游戏做出贡献。
过去,我一直在为当地游戏公司的各种小型游戏项目做出贡献,并在游戏、教育和活动行业的项目中担任自由艺术家。

我的 3D 世界之旅开始于大约 5 年前,在我作为建筑绘图员的学徒期即将结束时。我的日常工作主要是创建 2D CAD 施工计划,但我也有机会深入研究 3D 地形建模,并在午休时间在 AutoCAD 中尝试了一些简单的 3D 形状。然后我在空闲时间拿起了搅拌机并学习了几个 YouTube 教程,这真的感觉非常神奇和令人兴奋——此时我意识到 3D 艺术是我非常热衷的东西,我想尝试并制作它不仅仅是一种爱好。
我偶然发现了在游戏中工作的可能性,虽然游戏、绘画、数字绘图和手工艺品一直让我很感兴趣,但我不知道这是你真正可以追求的职业。
不久之后,我减少了当时工作的工作时间,所以我可以在 SAE 学院学习游戏艺术。

我一直非常自我驱动,对我的职业充满热情。基本上,从那以后,我把所有的精力都放在了变得更好和建立一个可以让我转换行业的投资组合上。在我学习期间,我仍然是一名建筑绘图员,直到我开始以 3D 艺术家的身份从事小型自由职业,然后在当地一家游戏公司获得了一份兼职 3D 艺术家的工作机会。

我进入这个行业的最大步骤绝对是两件事的结合。首先是社交,尽可能多地参加大大小小的活动,随便与人聊天,留下来喝杯啤酒,结交朋友。然后是在线社区,遗憾的是,我在学习时才发现它,但人们提供的知识、帮助和反馈绝对令人惊叹。我不能推荐成为其中的一部分!它帮助我对自己的技能更有信心,给予和接受反馈,当然,当有人支持你而不是独自一人时,解决问题要容易得多。
很高兴看到这些天,有这么多不同的艺术社区、播客、文章、挑战和大量在线学习内容,所有这些都让艺术家更容易成长。
模块化
模块化一直让我很感兴趣。我认为无论你有多少经验,它们都是创造挑战的东西之一,因为每个项目都是不同的,有很多东西要尝试。
我仍然每天都在学习,对我作为 3D 艺术家的下一步工作感到非常兴奋。通过这篇文章,我希望与您分享我的一些知识。

模块化的缺点
让我们首先指出模块化套装的一些负面影响:它们当然需要更多的技术/实践意义上的规划和经验。模块化套装需要您提前思考,确定需要如何使用哪些部件,需要以何种方式构建它们以使使用它们最舒适,当然还需要哪些部件。
在我看来,最困难的部分是尝试将一套计划分解成很少的部分,并以一种可以以多种方式组合的方式来制作它们。
例如,制作楼梯连接建筑物的 2 层相对容易,但随后您意识到这种精确的楼梯组合不能用于您需要它们的所有其他区域,因此您需要想办法把它分解成可以在所有领域重复使用的小块。
例如,你可以把它分成一个开始、中间和结束部分,无缝连接在一起,这样你就可以用它们建造不同长度的楼梯。对于更复杂的楼梯类型(例如弯曲楼梯)也可以这样做。这显然比建造单独的楼梯需要更多的时间,但它最终会得到回报。

模块化的好处
有了这个,我想讨论使用模块化集的好处。
虽然将事物模块化而不是唯一需要更多的时间和精力(至少直到一定的级别大小),但它也允许许多不同的组合,所以基本上是一个沙盒系统来构建你想要的一切,而不仅仅是一个特定的东西。对于生产而言,从长远来看,这也意味着节省大量时间,因此您在开始时投入的额外时间总能得到回报。
模块化集不仅仅意味着架构,您还可以为几乎所有其他东西构建一个。一个很好的例子是家具,它可以是从模块化沙发到桌子或架子的所有东西——只要看看宜家的规划工具就可以创建自己的桌子、电视银行或类似的东西。因此,如果您打算创建一个办公场景,为什么不创建一个模块化办公桌组合而不是像 2 个不同的办公桌,这样您就可以构建许多稍微不同的变体。

在整个场景中使用相同的布景还可以实现快速迭代和调整,因为您只需要更改单个布景。


当您创建并使用了您的第一个模块化集时,您可能会注意到重复可能非常明显。有时观众很容易看到某物并立即看到场景的每个部分,这使得场景看起来更简单、更通用。除非这是您想要做的事情,否则在大多数情况下我们不希望这样做。相反,我们希望我们的场景看起来复杂、独特,但仍然尽可能地使用模块化集的力量。在最好的情况下,你会看到最后的场景,几乎看不出重复使用的部分。这是我想在本文中介绍的大部分内容。
规划阶段、最佳实践和重要性
在规划阶段,您应该考虑项目的具体需求。模块化集可以有很大的不同,并且高度依赖于特定的用例、要求和技术限制。这里重要问题的一些例子是:
这套装置的使用频率如何?可能只是游戏世界中散布的几条走廊,可能只是需要在特定位置放置的几条扶手,还是整个游戏都会使用的走廊,整个城市的建筑布景等等?使用的东西越多,就越容易看到重复,你可能需要的定位球就越多。
究竟需要用这个来构建什么?这似乎是一个显而易见的问题,但在生产中很容易发生您构建零件以完成一套,但它们从未用于实际关卡。例如,如果您正在制作一条小巷的投资组合场景,您甚至可能不需要拐角建筑部分,因此只关注不同的直线建筑部分可能更有意义。
最大的碎片有多大?这对进一步计划您将使用哪种材料有很大帮助。如果部件明显分成更小的块,您可能可以只使用修剪表/纹理图集,但如果您有非常大的部件(例如需要无缝放置的墙壁),则可平铺材料对这些部件更有意义。
我需要什么基础材料和图集?这是我个人最挣扎的部分。在几乎所有的环境中,我最终都会在装饰板上创建更多的材料或零件,而我在场景中实际上并不需要(可能是我只是非常喜欢制作材料^^)。这是非常棘手的,特别是在规划图集或装饰表时,用您需要的零件填充空间,在不浪费空间的情况下分别在纹理中拥有更大的模型零件。它可以帮助很早就开始使用纹理(在封锁阶段!),只是在建模和纹理之间来回跳跃,尝试最大、最重要的部分,直到它们感觉良好,然后才开始添加额外的部分。
大多数情况下,您在开始模块化套装时会有特定的概念艺术或参考板。第一步是尝试将图像分解成更简单的块,尝试查看相似的形状,并思考更复杂的形状如何也可能是其他地方使用的一些较小形状的重复。
最好的做法是将一个概念带入您的绘图应用程序,然后开始在具有不同颜色的相似形状/图案上绘图。特别是对于乍一看非常复杂的环境,这可能非常有用。尝试区分建筑和道具,尝试查看形状的模式。还要记住,你不需要分解整个场景成模块化的部分。在某些环境中,例如科幻场景,很容易看到用于地板、墙壁、天花板和家具的大块类似面板,但在其他环境中,这并不那么容易,也许地板感觉更像是平滑的风景或每一扇窗户似乎都以不同的方式破碎,就像那样。
在某些情况下,如果可以通过景观、贴花或独特的作品更简单地解决问题,那么将事物模块化是没有意义的。
其他时候,它可以帮助进一步分解作品。在破碎窗户的示例中,您可能决定通过拥有该窗户的 3 个不同变体来增加重复次数,但您也可以将其分解为一个镂空墙部分 + 可能是 2 个不同的框架,然后说6 个不同的碎玻璃部件,因此您可以将它们组合成许多略有不同的窗户变体,而不仅仅是 3 个。



最重要的建议:尽早测试!对模块化组件进行适当的封锁是该过程的重要组成部分。以我的经验,总有一些你忘记或至少需要改进的东西,在简单的遮挡网格上修复这些东西比在后期阶段更容易/更快。确保所有需要拼接在一起的东西都可以,并且所有部件都易于排列。测试零件可能需要厚度以便于放置的位置,您可能需要额外零件来封闭孔的位置等等。


当在引擎中测试一个真实的关卡而不是仅仅测试一些单独的部分时,这对我的经验中的新想法和动力也有很大帮助。它还有助于尽早测试纹理,即使它们只是简单的占位符纹理。
构建模块化集是一个迭代过程!我认为一开始总是让人不知所措,但是一旦你开始创建和迭代零件,它就会变得更容易。
尝试先创建主要部分。有了坚实的基础,接下来的步骤就会顺利得多。
始终记住,您可能希望在之后扩展您的模块化集合,因此请考虑在不破坏集合的情况下可以进一步拆分哪些部分,或者可以在现有集合中轻松添加扩展的地方,而无需开始遍。



当您使用较小的设置部件时,例如构建整个建筑物的单墙部件,将它们组合成更大的建筑部件以减少单个网格的数量是有意义的。因此,即合并整个建筑物、单层、屋顶变体等,并以不同的方式组装它们以在最终场景中创建变化。有时最好在 3D 软件中预先组合一些变体,否则您也可以将它们合并到虚幻引擎中。
这样做的原因主要是关卡中没有太多的单个网格,这也可能在某些时候导致性能问题。如何最好地处理这实际上取决于项目。有时我喜欢在 3D 软件中组合很多已经存在的东西,比如对于模块化的房屋套装,我会有一些可以完全合并的预先组合的建筑物,例如背景建筑物。其他时候,我喜欢将所有内容放在关卡中,然后稍后将其合并为块,如有必要,使用引擎内的合并工具,例如“将演员转换为静态网格”。对于放置本身,使用蓝图非常好,因此您可以轻松复制已组装的组。
将这些与可平铺纹理结合使用
如上面的一些示例所示,更大的表面通常更适合平铺纹理而不是独特的、修剪或图集纹理。最明显的例子是地板部分,但有时墙壁或具有更大尺寸的类似资产的部分对使用图素纹理有意义,因为很难将它们放入具有适当纹理分辨率的装饰板中,并且还需要腾出很多空间。
模块化模型还可以通过简单地为零件分配不同的材料 ID 来使用不同纹理工作流程的组合。该模型仍然只有一个网格,但您只需在 3D 软件中的各个部分上分配不同的材料。


可平铺材质的使用还允许快速迭代,在引擎中快速尝试不同的纹理,并使通过顶点绘制混合材质的过程更容易。
虽然出于性能原因我们应该尽量减少道具上不同材料的数量,但这在建筑部件上并不那么重要,因为它们通常会占用更多的屏幕空间,而且如果你只使用一种材料,它们就不够通用每个部分的材料 - 有例外情况。
在上面的示例中,您还可以将 2 个可平铺材质 ID 合并为 1,并通过顶点绘制简单地为它们分配另一个纹理,这样您最终会将网格分成 2 个部分,但也受到顶点混合细节的更多限制在上面。没有对错,真的要看项目和技术限制!

可平铺纹理可以分配给 UV 展开相应的面或引擎中的三平面/世界空间投影。
对于后者,您需要一个自定义着色器,但它的好处是它基本上忽略了您的 UV 纹理,因此所有可平铺材料在所有部分上总是完美无缝的,无论缩放或旋转。我个人非常喜欢这个工作流程,特别是因为它让我可以非常有创意地缩放和重用部件(遗憾的是我们仍然需要做光照贴图 UV)。
另一种选择是为可平铺部分创建自定义 UV,这需要完全匹配其平铺轴的 UV 边界以使它们无缝平铺。UV 仍然可以放大以使纹理以更小的图案重复,但它们必须按一个完整的因子进行缩放。例如,将它们缩放到 UV 0-1 范围之外的 2 倍仍然可以,但是将它们缩放 1.4 倍会导致可见的接缝。它仍然是一种有效的方法,因为它不需要有关着色器设置的知识,因此是入门的好方法!
trim sheets 的力量
修剪表是沿一个轴平铺的纹理图集,或者通常是平铺部分和在整个场景中共享的一些独特部分的组合,因此基本上是您在一个紧凑纹理集中需要的所有东西的集合。
现在有很多关于如何创建和使用它们的很棒的教程。我很晚才发现这种技术,但它对我来说是一个真正的游戏规则改变者!
诀窍主要是将您的网格划分为可以通过校正/拉直映射展开的部分。例如,您可以将圆形部分分解为具有不同图案的条纹。
使用装饰板的网格通常需要更多的部分才能正确展开它们,但不要担心!这就像一个相反的工作流程 - 不是创建模型、UV 和纹理,而是创建 UV 作为最后一步。
为此,您可以简单地将修剪纹理加载到 3D 建模软件中,将其分配给应该使用修剪的部分,然后开始展开面。可以有一点拉伸或不总是完美的纹素密度。如果您只是在展开时在模型上预览模型,您会注意到什么时候似乎有问题,并且可以将网格进一步分割成更小的部分。


打破模块化的感觉
这里有一些关于如何打破场景中的模块化/明显重复的想法。我不会详细介绍这些内容,因为每个人都可能独自填写整篇文章,但希望它们能帮助您获得进一步研究的想法。
使用贴花
这些可以是贴花投影仪或纹理图集中的贴花或两者兼而有之,您可以选择。
着色器的力量!
以下是我喜欢使用的一些想法:
自动颜色变化,即根据全局放置的位置为所有内容着色略有不同。
使用带有参数控制的材质实例,即具有不同颜色、粗糙度值或其他材质的一些变体
添加世界空间细节,可能与世界空间蒙版结合使用。因此,您可以在投影到世界空间中的顶部添加一个简单的污垢纹理,这意味着并排放置的 2 个墙壁部分现在看起来会有所不同。在某些时候,这种纹理也会明显重复,因此通过将这种污垢纹理与世界空间蒙版混合,您可以获得更多变化。尝试以这种方式在顶部混合多个纹理,即使您只使用非常微妙的纹理,您的场景也会自动看起来更加复杂。
这也有助于使整个环境更加接地气。
将纹理/材质与顶点绘画混合
边缘磨损细节
将修剪表 UV 与自定义烘焙贴图相结合
您可以为使用修剪表或可平铺纹理的每个对象设置第二个 UV 集,并为它们烘焙法线 + AO 贴图,然后将两个 UV 集与其各自的纹理组合回着色器中的一个。这样,您将获得修剪纹理的所有好处,同时仍然能够拥有独特的法线和 AO 细节
大小套装零件的平衡
尽可能偏离网格
利用创意缩放和旋转

在大件和小件之间找到适当的平衡
一般来说,最好先从最大的设置部分开始,然后再逐步处理到最小的部分。
仅由大部件组成的场景乍一看更容易分解,因此最终场景看起来不那么复杂。当也使用较小的设置部分时,场景看起来会更有趣,但你需要注意不要有太多的混乱,否则会导致太多的混乱。
虽然这也可以通过在最终关卡中放置一堆道具来实现,但我认为直接使用模块化集合处理其中的一部分是很好的。
例如,您可以将小型墙壁延伸件添加到集合中,这些延伸件可以自由放置在较大的墙壁部件(如壁架、面板等)的顶部。将这些分开而不是创建带有壁架的新墙变体的好处是,这个较小的部分可以以更有创意的方式放置,以允许更多的变化。这意味着我们可以使用较小的网格尺寸来放置东西,或者有时完全忽略网格对齐。
较小尺寸的套装零件的其他示例也可以是单块积木。因此,如果您有一个可以使用瓷砖的砖纹理的大墙,您可以对这些砖的单个部分进行建模,并在最终场景中沿着大部分放置一些,以打破重复或从那些较小的部分构建适合的独特对象件。
我喜欢把它想象成一个乐高积木。用预先存在的较大部分快速建造一座城堡非常棒,这样我就不需要仔细放置每个块,但是当它完成后,我确实想通过在我喜欢的地方放置一些块来定制它。

网格的重要性,以及何时打破它
使用基于网格的设置部件非常棒且易于使用,但如果您仅将所有内容放置在网格中,那么一见钟情就很容易打破场景的模块化。当然,这不一定是坏事(在某些情况下这样做也很有意义,例如预制结构),但在许多情况下,您可能希望使您的环境看起来更复杂并避免明显的重复. 即使主要部分应该是明显的模块化部分,在较小的层次上分解看起来总是更有趣。
首先,模块化部件的尺寸应该遵循网格规则,否则使用起来会很痛苦。它们需要以一种可以轻松将它们卡在一起的方式构建,这也适用于不同的尺寸。因此,例如,如果您的主要部分是 4m 长,您仍然可以有 2m 和 1m 部分,它们适合相同的网格并轻松将它们拼接在一起,以及扩大到 8m 部分,即一个好的规则是坚持权力这里有 2 个单位。如果您的主要部分是 5m 长,即,它仍然很容易将其扩展到 10m 部分,但如果您想将其拆分为 2.5m 部分,则可能会导致最终级别的捕捉问题,除非您更改捕捉选项。
值得注意的是,您还可以更改网格捕捉选项以使您的设置部分具有更多种类,并且仍然沿网格放置它们。我个人喜欢在基本尺寸下使用 100 个单位,这意味着我将在 1,2 或 4m 中创建主要布景,并在 Unreal 中使用 100 的网格捕捉来轻松放置它们而无需更改设置。对于最小的部分,我喜欢减少到 50 个虚幻引擎单元,这样我就可以简单地降低网格捕捉一步,仍然可以完美捕捉所有内容。
这还包括枢轴点的位置,它们需要以一种您可以轻松将零件卡合在一起的方式放置。我个人喜欢在大多数零件的左下角设置枢轴,但这并不重要,只要零件可以轻松放置,所以尝试你最喜欢的。

这是具有厚度的墙集的不同枢轴点位置的示例。如果你把它放在墙的中间部分,你可以使用一个角部分作为内角和外角,而不用担心偏移(见下图中的正确示例)。

网格和尺寸的规则对于拐角/弯曲设置的零件是最重要的。为了创建这些,它有助于将直线部分放置在弯曲部分应该连接的网格上,然后使用弯曲修改器使其弯曲,同时检查它是否在两侧连接。在大多数情况下,需要稍微调整弯曲修改器轮廓以使其适合正确的尺寸。
并非所有部件都必须遵循这些规则。事实上,我认为几乎完全忽略较小部分的这条规则是件好事。如果可能的话,主要部分应该在所有方向上都遵循网格,较小的部分可以更自由。例如,如果你有一个壁架延伸部分,你可以让它只在一个轴上跟随网格,有一个 1m 长的中间部分和末端部分可以轻松地将它们卡在一起,而其他两个尺寸可以是任何尺寸。它们也可以有自己的网格间距,因为它们不需要与其他部分匹配,只要它仍然是一个可以与引擎网格对齐的值,例如它们可以是 3m 长,而其他所有部分都平铺在一个4m 网格。
当我们谈论网格的重要性时,我们主要指的是对象的位置,但旋转和缩放在这里起着同样重要的作用。通常,我们不会触及对象的缩放以避免纹理拉伸和其他不需要的东西,但实际上有一些技巧可以用来利用对象缩放。我喜欢对某些部分使用三平面映射/世界空间 UV,这样我就可以在关卡构建过程中随意使用它们。
我的工作流程是像往常一样在封锁阶段沿网格创建零件并开始将它们放置在一个关卡中,但每当我想到“哦,在这里也有一个弧形模型也不错,但它需要更大或更高等。” 我看看我是否已经有一个类似的零件,并尝试以不同的缩放和旋转来放置它,而不是立即制作一个新的设置零件。通常,您可以摆脱小瑕疵并节省大量时间。

对于这个特殊的大弧形部分,我可能最终会创建一个独特的场景,因为在添加斜角后它可能会明显拉伸,但重点是你应该尝试“跳出框框”思考,不要感觉太受网格规则限制。
至于设置部分的旋转,你真的可以在这里发挥创意。过去我常常用特定角度的拐角部分创建直的建筑物,但现实生活中的建筑物不仅仅是 90° 或 45°。当你考虑到这一点时,场景看起来更自然。这些部件仍然可以在本地网格中对齐,如果遇到关闭空间的问题,我建议先尝试用其他设置的部件填充它,即使用具有相同材料的柱子或填充块。


在模块化布景上使用旋转和缩放的另一个示例。为此,我只使用了一个直楼梯和一个转角楼梯。上面的图片展示了沿着网格放置的楼梯,而下面的图片展示了相同的空间,只是稍微随机旋转和缩放,使整个楼梯看起来更自然。有时最好使几何图形更厚一些,以便在放置时更自由,同时避免孔洞。
所以不要总是坚持网格!尝试以自由和创造性的方式使用资产,尤其是较小的资产来分解更多内容。
收尾工作
这是整个环境创建部分中我最喜欢的部分。
我认为用你拥有的所有设置部件和道具完成一个项目感觉很好,直到你对结果感到满意,躺下片刻,然后用新的眼睛回顾它,从更大的画面中思考场景。不过,这并不特定于模块化集。

带有所有模块化设置部件和道具的模块化走廊(上)和同一场景在几天后进行了调整(下)。我创建了一些更多的道具,比如潮湿的地板标志和打散瓷砖的贴花,还添加了来自 Unreal Marketplace 的道具和来自 Mark2580 的 Sketchfab 的猫模型。
我的意思是尝试进一步推动这些最后的步骤,使其看起来更有趣。这些事情可能与讲故事有关,也可能只是为场景增添趣味的小细节。
也许用小的额外贴花(如划痕)来增加兴趣点,或者在地板裂缝上添加小树叶网格以提高细节水平,或者添加一些新的道具/贴花来讲述住在这个地方的人的故事等等。
您还可以在此阶段为您的场景添加全局触摸,即使用着色器功能或基于着色器的曲率细节在所有物体上添加灰尘。这并不特定于模块化部件,但其中大部分可能已经在具有独特纹理的对象上得到处理,而模块化部件在这个阶段可能看起来更简单。
例如,对于我的 Merlin's Cave 环境,我在很晚的阶段添加了灰尘层,以更好地将所有内容融合在一起,使其在此设置中看起来更可信。


总有需要改进的地方,但这种方法让我对我完成的最后几个环境感到满意。好消息是您将从每个项目中学习,甚至可以在未来的项目中重用这些收尾工作。随着时间的推移,我已经建立了自己的小型通用贴花、装饰网格和着色器功能库,因此在我之前付出了很多努力之后,这最后一个阶段让我感觉非常有创意和放松。

