《Forgotten Sanctuary》UE 实时环境制作流程拆解
介绍
大家好!我叫 Zyad Younes(又名 mortris),是一名来自埃及的自学成才的 3D 环境和道具美术师。我对艺术的热爱始于早期的绘画和上色,这自然而然引导我学习建筑学——一个我热爱的领域,因为它完美结合了艺术与工程。我目前是一名建筑学学生,我的学业持续为我提供坚实的结构基础。
我的 3D 之旅始于三年前,当时一位大学教授向我们介绍了摄影测量及其在建筑和电子游戏中的用途,那正是让我着迷的火花。我真正的动力来自我从五岁起就开始玩电子游戏。
如今,在建筑学学业之外,我正在积极学习 3D 环境艺术,我的最终目标是有一天成为那个创作过程的一部分,构建出能让人们感受到与我成长过程中体验到的完全相同的感觉和惊奇感的世界。
项目目标
对于《被遗忘的圣所》,我的目标是构建一个小型、封闭的环境,作为试验场。我想应用我所积累的知识,同时推动自己使用行业标准工作流程、深入技术管线,并练习我以前从未接触过的新技术。



概念与参考
《Forgotten Sanctuary》的核心愿景是打造一个充满魔法感、宁静而温暖的空间。我特意寻找了能捕捉到这种确切氛围、并融合了蔓生自然的参考,以营造一个被柔和金色光芒笼罩的僻静、被遗忘之地。

管理范围
范围界定是流程中非常重要的一部分。在项目过程中,我意识到必须取消一些会大幅增加我工作范围的想法。例如,我原本对地形的计划是让它从俯视角度看像一只巨大的眼睛,中间有一个下沉的雕像头部代表虹膜。
我甚至计划为这个角度制作特别的电影级渲染,并将眼睛形状直接整合到项目 logo 的中间,但我决定放弃这个想法,以便让项目保持可控,并完全专注于质量而非数量。

资产与道具工作流程:船只
对于这个主角道具,我先从简单的粗模(blockout)开始,以确定核心想法和比例。感觉合适之后,我进入更详细的粗模阶段,以定义船只的各个部件。基础形体稳固后,我把它们导入 ZBrush 来雕刻最终的高模细节。
接着,我对网格进行减面(decimate)以创建低模版本,并将其导入 Blender 展开 UV,设置为两个 UDIM 以维持良好的纹素密度。最后,我使用 Marmoset Toolbag 烘焙高模到低模的贴图,并在 Substance 3D Painter 中完成贴图制作。



资产与道具工作流程:雕像
这座奇幻雄鹿雕像实际上是我第一次雕刻生物。为了做好准备,我开始在 YouTube 上观看许多艺术家的视频,研究他们的生物雕刻工作流程和拆解,以进一步了解这一过程。当我感觉自己准备好后,我相信自己的基本功,并采用了我处理任何其他道具时所用的相同工作流程。
我一开始只是简单地搭建网格的粗模,以捕捉主要形状和体积。当这个基础足够扎实、轮廓清晰可读后,我才继续雕刻最终细节。

资产与道具工作流程:陶罐
对于圣殿中的陶罐,我使用了双 UV 集工作流程来最大化效率:
- UV 集 1:完全用于可平铺纹理。
- UV 集 2:用于 trim sheet 的 AO、法线贴图和遮罩。
对于可平铺 UV,我使用了镜像与堆叠的技巧,彻底隐藏接缝,让材质能够毫无问题地平铺。我之所以这样设置 UV,是专门为了配合我制作的 shader 中的一项功能,该功能可以通过增大物体缩放来自动提高纹理平铺次数。

为了制作罐子的 trim sheet,我先使用 ZBrush 雕刻了一个细节丰富的高模版本。雕刻完成后,我使用 Marmoset Toolbag 将这些高模细节直接烘焙到一个简单的圆柱体上,以生成最终纹理。


资产与道具工作流:重拓扑
在制作道具时,我决定使用 TopoGun 和 Blender 对部分资产进行手动重拓扑。在这个静态环境中,并非每一件物品都严格需要这样做,但我纯粹是为了练习而做。
由于我在这个项目中的目标是提升自己的技术能力,我希望确保自己养成良好习惯,并练习从高模到低模的标准行业流程。不过,有些资产只是做了减面处理。


资产与道具工作流程:主大门
对于主大门,我让最初的区块搭建(blockout)过程保持高度的非破坏性。我在 Blender 中仅从四个基础形体开始,利用阵列和曲线修改器快速排布它们,从而构成完整的结构。

让这套设置保持程序化对迭代帮助极大。我实际上先做出了大门的第一版,觉得外观不满意,于是能够快速调整修改器,生成一个全新的设计。最终比例确定后,我把网格导入 ZBrush,开始雕刻细节。

为了给最终资产制作贴图,我直接在引擎内构建了一个自定义主着色器,其中包含了我驱动 RGB 遮罩工作流所需的全部功能。


资产与道具工作流:地板
我确保地板网格具有干净、均匀的四边面拓扑,特别是为了让顶点绘制更容易;在引擎内部,我使用红色(R)和绿色(G)通道来绘制不同的材质层,并打破地板上的平铺重复感。

添加细节:POM 贴花
为了在整个场景中增强细节,我使用了视差遮蔽映射(POM)贴花。这项技术对树木贴花尤其有用。通过使用 POM,我可以轻松地将深邃、具有 3D 观感的细节直接印到平坦表面上,从而获得那些丰富的雕刻效果。它为环境增加了大量视觉深度,同时保持整体几何体轻量且经过优化。

这些是在 Substance 3D Designer 中制作的,让我只需更改种子就能快速获得新的变体。

添加细节:网格贴花(Mesh Decals)
为了让环境更加逼真,我使用了网格贴花,并特意将它们放置在特定位置,以打破地板上的锐利边缘,使它们看起来像是真实受损的石头,而不是完美无缺的坚硬棱角。

添加细节:湿润效果
我为与水面相交的物体添加了湿润效果,比如地板和较低的台阶。这有助于让网格体自然地融入水中。

添加细节:WPO
为了点缀水面,我使用了 Megascans 中的睡莲叶片,但为了避免它们看起来呆板静止,我在材质中创建了一套自定义的垂直世界位置偏移(WPO)设置。这会带来轻微的上下浮动。

水体着色器
对于水体,我构建了一个自定义着色器,它让我能够以极快的速度迭代。我把它设计成包含各种各样的控制项,加入了焦散、深度计算、颜色混合以及其他若干调整等功能,以获得我想要的确切效果。为了配合这些功能把整体效果统一起来,我复用了 Epic Games 的 Rural Australia 资源包中的一些贴图。

灯光阶段
为了实现那种温暖、神奇的感觉,我分阶段构建了灯光。
- 天光:我从这里开始,以建立环境基础光和阴影的整体色调。
- 补光:在添加主太阳光之前,我使用补光手动绘制场景。这让我能够提亮暗部区域、在周围反弹暖意,并精确地突出我想要的特定位置,而不必与太阳光的强度相抗衡。
- 定向光:接下来,我引入了定向光,以获得那种强烈的黄金时刻冲击力。为了让环境感觉生动,定向光具有由材质函数构建的移动阴影,该函数从某些区域减去光照。
- 雾:最后,我添加了雾。这将所有东西联系在一起,赋予场景深度感。


工作流程技巧
目视读取法线贴图:我有时会搞不清楚一张法线贴图是 OpenGL 格式还是 DirectX 格式,但我找到了一种只靠观察就能判断的可靠方法。我用一个基于光影落向的简单视觉技巧。
如果你想象光线来自左上方,阴影会沿对角线落下,其中绿色充当高光,红色充当阴影。这样就能很容易地区分哪些部分是凸起的,哪些是凹陷的。

对于 DirectX,你只需要设想光线改为从左下方照来即可。这是一种快速的心智检查,用来确保地图的解读是正确的。

想更好地理解,可以看看 Mark Kirillov 的这篇技术文章。
最终漫游展示
作为收尾,我录制了一段该环境的漫游视频。实际上,这段视频完全是在我的 RTX 3050 上运行并录制的。
结语
非常感谢你读完整篇解析!构建这个环境是一项极具回报感的挑战。如果我想留给你最后一个想法,那就是相信过程的重要性。在任何项目中,都不可避免地会有一些时刻,事情看起来粗糙,或者似乎无法顺利组合在一起。
在“丑陋阶段”很容易感到气馁。只要继续坚持、不断打磨,并相信你学到的技术。所有那些小细节和迭代步骤都会水到渠成。再次感谢 80 Level 提供分享这个项目和工作流程的机会!
Zyad Younes,3D 艺术家
相关链接
原文链接:https://80.lv/articles/making-of-the-forgotten-sanctuary-real-time-environment-in-unreal-engine
喜欢这篇内容吗?