概要

Alpine Forest 把 SpeedTree 的针叶树以 Nanite Assemblies 直接导入 Unreal Engine 5,并用三层 PCG 系统与雾效做出写实高山针叶林。

背景

自从上次接受 80 Level 采访以来,我继续以自由职业生物群系艺术家(Biome Artist)的身份参与各种项目,在实时环境制作里探索不同的艺术方向与技术挑战。

过去两年,我工作中最重要的变化之一,是在 Unreal Engine 里越来越多地用 Nanite 来制作植被。摆脱传统基于 LOD 的流程后,我在制作复杂植被时有了更多灵活性,也被推着去探索资产制作与整合的新方法。

另一个重要变化是工具开发在日常工作中的比重越来越大。我一直对改进工作流有兴趣,但最近开始投入更多时间,在现成方案无法完全满足需求时自己写工具。这让我能简化重复任务、提升一致性,并把更多时间放在制作中偏艺术的部分。

这些变化也影响了我职业活动的方向。我最近成立了 FoliageLab,一家专注实时植被、生物群系制作与专用工具开发的工作室。

如今我的工作把植被制作、环境生产与技术开发结合得比以往更紧密。我特别感兴趣的是:在保持现代实时环境所需的视觉质量与艺术控制力的同时,让复杂的植被流程更高效。

雾气弥漫的针叶林中,一条散落薄雪与泥土的小径蜿蜒向前,两侧是蕨类、苔草与灌木
林中一棵粗壮树干与旁边的巨石,背景是雾中的针叶林轮廓与低矮灌木
近景是密集的蕨类、松针枝条、苔草与少量紫色小花,地表有残雪
地面大部分被薄雪覆盖,露出褐色的枯枝落叶与几簇蕨类,右侧有一株紫色植物

Alpine Forest 项目

Alpine Forest 起初主要是一个技术实验。我最初的目标是建立一套流程,让我能把 SpeedTree 里的植被直接作为 Nanite Assemblies 导入 Unreal Engine,而不依赖中间的 DCC 软件。

从一开始我就想专注针叶树,因为它们对 Nanite 来说是植被里最大的挑战之一。复杂的结构与密集的叶片,让它们成为推动这项技术、探索新流程可能性的理想对象。

我没有按预设的生产计划推进,而是让项目在实验、失败与成功的迭代中生长。每个技术难题都带来新想法,有时还逼我重新考虑做法。随着流程推进,这些实验逐渐长成了一个完整的高山环境。

在艺术上,我想做出写实的山地景观:密集的针叶植被、多岩石的地形,以及斑驳的积雪。我特别在意自然的构图——从不同机位看都要有足够的差异与细节,同时整个环境保持统一的气氛。

我也希望这个环境能当作电影化场景使用:构图、灯光与氛围和植被本身同样重要。整个制作过程中,技术上的发现不断影响艺术方向,有时打开了起初没想到的可能。最终,Alpine Forest 远不止最初那个技术实验——它让我开发并验证了一套新的植被制作方法,同时做出了一个既体现我艺术兴趣、也体现我在 FoliageLab 追求的技术方向的环境。

高大的针叶树干在雾中向前延伸,地面散落积雪与低矮植被,远处几乎融进灰白雾气

Nanite Assemblies 与 SpeedTree Bridge

转向 Nanite Assemblies 主要改变的是我构建植被的思路,而不只是优化方式。

传统植被流程多年下来已被证明有效,按项目与技术需求不同依然完全适用。但 Nanite Assemblies 提供了另一种思考植被的方式,尤其在保留资产结构与复杂度方面。

Epic Games 通过 Nanite Assemblies 带来的一个有趣可能是:用实例化几何构建复杂资产,同时更多保留其原始结构。对植被而言,这意味着可以围绕细节丰富的几何元素来工作,而不必那么依赖简化表示来还原体积。

这对针叶树尤其有意思——枝条与叶片的复杂度,在定义剪影与整体外观上起着关键作用。

黑底上显示一棵完整针叶树,枝干与针叶被染成紫、绿、蓝等彩色,用于观察结构分层

当然,这套做法也带来自己的技术难题。Nanite Assemblies 不是万能解,效果取决于植被结构、材质、动画与场景复杂度等因素。目标不是替换所有既有技术,而是探索「专门围绕这项技术设计植被」时能实现什么。

这也促使我开发 SpeedTree Bridge。SpeedTree 仍然是我制作植被的核心,但我需要一种更直接、更灵活的方式把资产带进 Unreal Engine,同时保留这种构建方式的优势。

与其让艺术决策迁就破碎流程的限制,我想要一个能让我在植被制作与实时整合之间更自然地来回切换的方案,不依赖中间的 DCC 软件。

结果是这套流程让我有更大自由去试验植被结构、提升资产之间的一致性,并更高效地迭代。

对 Alpine Forest 来说,因为针叶植被的密度与复杂度,这套做法尤其有价值:它让我能试验更细的植被结构,并在制作过程中不断打磨流程。

更广泛地说,它为 FoliageLab 后续的项目打下基础——我可以继续专门为 Nanite Assemblies 开发植被,同时保留所需的艺术灵活性。

植被的真实感

在 Alpine Forest 里,较大的树大多以 ScansLibrary 的扫描树干为起点,再用 SpeedTree 自带工具把扫描转成可平铺贴图,从而在不同树种之间保持一致的细节水平与材质质量。

另一个重要决定是多棵树种复用同一批叶片实例,共享几何、贴图与材质。但每棵树对树干上的扫描部分与可平铺部分使用各自的材质实例,而全部基于贯穿植被的同一个主材质。这样能保持材质外观、分枝结构、比例与整体剪影的统一。

做树时我特别在意结构与比例,也在意它们与周围环境的关系。这意味着不只要考虑单棵树的形状,还要考虑它与周边植被的关系。

除树以外,灌木、蕨类与地被植被在让环境成型上也同样重要。这些小元素帮助建立不同区域之间的过渡、打破重复图案,并让林地地表与更大体量的植被之间形成更自然的关系。

俯视近景,雪与苔草之间散布蕨类、阔叶小苗与一丛紫色小花

变化主要来自结构、尺寸、剪影与分布的差异,而不是依赖过多的材质变化。这让我既能做出多样的环境,又保持相对统一的视觉面貌。

最终目标是保留每个物种的辨识度,同时让所有植被都像属于同一个环境。

镜头向上,细密的针叶枝条在雾中舒展,背景是灰绿色的水汽与岩石

PCG 与生物群系构建

PCG 在我环境制作流程中已经重要了相当一段时间,而 Alpine Forest 给了我重新思考「不同程序化系统如何相互作用」的机会。

以前我的 PCG 系统大多是各自独立处理某一类植被。这种做法效果不差,但我想在它们之间建立更强的联系,提升环境的整体一致性。

在 Alpine Forest 里,我重做了三个主要 PCG 系统:Trees、Bushes 与 GroundFoliage。每个系统负责一个不同的植被层,其中 GroundFoliage 还用于散布更小的环境细节。

最大的改进是在这些系统之间建立层级关系:树影响灌木的分布,灌木又影响地被的摆放。当灌木不存在时,地被分布直接受树影响。

这让不同植被层之间的关系更一致。各类别不再是各自独立散布,而是能根据周围植被的有无做出调整,带来更自然的过渡与更好的整体构图。

另一个重要方面是艺术控制。程序化生成对填充大环境极其有用,但我不想让它决定最终构图。我用 PCG 建立一致的基础,同时保留按场景需要调整植被密度、分布与局部变化的灵活性。

最终目标是让不同植被层协同工作,而不只是把资产铺到地形上。在 Alpine Forest 里,我改善了几套 PCG 系统之间的关系,让环境更容易管理,也让构图阶段有更多自由。

开阔的高山雪景,湖面平静,积雪覆盖的坡地上散布巨石与草甸,远处山体被雾笼罩

灯光与电影化呈现

Alpine Forest 的灯光相当简单,且完全动态:一盏 Directional Light 做阳光,加上 SkyAtmosphere,以及使用中性白 HDRI 的 SkyLight。

我想让灯光保持自然,避免引入不必要的复杂度。目标是做出寒冷、阴天的氛围,同时保留足够对比度,让植被的形状、材质与密度能被看清。

大部分氛围来自雾,而不是灯光本身。为此我用了 Screen Space Fog Scattering 插件,得到想要的大气纵深与光线散射。

雾在最终构图里起关键作用:它分离不同植被层、柔化远景,并在整片森林中建立更强的尺度感。配合相对克制的灯光,它给环境带来了那种寒冷而略带神秘的气质。

针叶林中,树干与地表的残雪交错,远处被雾气柔化

后期处理也保持得相当克制。我用自定义 LUT 确立最终色调,并在不同镜头间维持一致的气氛,另外加了一点胶片颗粒。目标是强化寒冷、阴天的情绪,同时不要剧烈改变植被与环境本身的外观。

极低视角,前景是一株蕨类与树根,后方是雾中通直的树干

最终渲染上,我专注于用短片式镜头从不同视角展示环境。机位、构图与大气纵深尤其重要,因为我希望每个镜头都像是同一片森林的一部分,而不是一组互不相关的视角。

说到底,Alpine Forest 的氛围来自三者的组合:直接的动态灯光设置、精心控制的雾,以及克制的后期。当每个元素都有明确用途时,相对简单的设置往往就够了。

FoliageLab 与后续计划

FoliageLab 是多年植被制作经验,加上「开发更贴合自己需求的工具」这份兴趣的结果。

久而久之,我发现自己越来越多时间花在重复任务上,或者绕开一些用专用工具就能解决的限制。与其不断把工作流迁就现成方案,我开始自己开发——最初是自用,后来成为更完整生产管线的一部分。

人工智能在让这件事成为可能上起了重要作用。我的专长在植被与环境制作而不是编程,AI 让我能把技术想法变成可用工具:我定义需求、预期行为与约束,再让 AI 协助实现。测试、打磨与验证仍然是流程中必不可少的部分。

这打开了许多可能,让我能开发越来越专门的工具,并尝试以前很难探索的做法。

FoliageLab 是这条演化线的自然延续:把植被制作、生物群系生产与工具开发收拢到一个专门的工作室身份下。我的目标是为实时项目提供专门的植被与环境制作服务,同时持续改进支撑这些工作的工具与流程。我特别感兴趣的是做出让艺术家更灵活、更有控制力,又不给制作引入额外复杂度的方案。

往后看,我想在植被、地形与灯光之间建立更强的联系。这三者在自然界本来就紧密相关,我相信让它们在 Unreal Engine 内更直接地相互作用有很大潜力。

例如,坡度、海拔、湿度这类地形属性可以影响植被分布,而光照条件与季节变化可以影响环境的外观与演变。与其各自独立管理这些元素,我更想探索一种更互联的生物群系制作方式。这些是我在后续项目中打算研究的方向,建立在 Alpine Forest 期间开发的工具与流程之上。

最终,我希望 FoliageLab 继续专注于探索实时植被与环境的新可能,把艺术经验与技术开发结合,做出更好的生产流程。

实际上,我已经开始做下一个环境了,它会让我进一步探索其中一些想法,尤其是灯光与生物群系构图。现在还不方便透露太多,只能说灵感来自一款不久前刚推出重制版的游戏——它拥有我认为电子游戏史上最好的资料片之一。有些人大概已经猜到是什么了!

雾气森林的画面上叠加白色「Foliagelab」字样,下方小字为 Real-Time Vegetation &Amp; Biome Production
平静的湖面倒映着雾气,岸边是积雪的岩石、低矮灌木与挺拔的针叶树

更多实时环境制作内容可查看案例教程分类,也可参考Unreal Engine 苔藓岩石场景:从雕刻到散布的完整拆解与图文教程。

常见问题

这个项目的核心技术目标是什么?

建立一套流程,把 SpeedTree 的植被直接作为 Nanite Assemblies 导入 Unreal Engine,不依赖中间的 DCC 软件。

为什么选针叶树?

针叶树的结构复杂、叶片密集,是 Nanite 在植被上最大的挑战之一,因此最适合用来验证这套流程。

SpeedTree Bridge 是什么?

作者自研的工具,用来把 SpeedTree 资产更直接、更灵活地带进 Unreal Engine,避免在中间软件里来回折腾。

三层 PCG 是怎么组织的?

分为 Trees、Bushes 与 GroundFoliage 三层,并建立层级关系:树影响灌木分布,灌木影响地被;没有灌木时地被直接受树影响。

灯光怎么搭的?

一盏 Directional Light 做阳光,配 SkyAtmosphere 与使用中性白 HDRI 的 SkyLight,全部动态;氛围主要靠 Screen Space Fog Scattering 插件的雾。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。