程序化植被编辑器(PVE)是一款集成在虚幻引擎中的功能强大的图表化工具。 它允许用户直接在引擎环境中创建高质量且适配Nanite的植被资产。 PVE不同于传统方法,它利用现实世界的植物学原理,通过激素分布和适应性响应来模拟植物的生成过程。 这种创新方法能够生成多样化且逼真的植被。
若要使用程序化植被编辑器,你必须在菜单栏中导航至Edit > Plugins > Procedural Vegetation Editor (experimental)以启用该插件。 此外,你还需确保已安装PCG和动态风插件。
利用PVE,你可以使用以下功能在项目中构建适配Nanite的植被:
生成适配Nanite的植被:创建高度优化的植被资产,利用虚幻引擎的Nanite虚拟化几何体系统,在保持高性能的同时实现细节极其丰富的场景。
应用现实世界的植物学原理:生成的植被能够模拟自然生长模式,从而获得更真实、可信的效果。
定制及创建变体:修改现有植被预设,或使用节点图表设计全新的物种,以满足特定的项目需求和艺术构想。
简化植被创建流程:减少创建复杂植被通常所需的手动工作量,从而实现更快的迭代与生产。
PVE预设
程序化植被编辑器依赖于名为Megaplants的预设资产,其中包含了构建特定植被物种所需的数据。 这些预设资产包含骨骼网格体、材质和纹理,并支持多种Nanite植被变体,有助于在项目中创建逼真的植被。 你可以利用PVE图表组合多个预设资产,从而在项目中构建出复杂且妙趣横生的植被。 此外,你还可以使用PVE图表编辑器修改这些预设资产,以满足你的项目目标。
你可以在Fab上浏览Megaplant预设资产库。
关键支持的工作流
目前PVE支持以下关键工作流:
直接使用预设中提供的预构建变体——它们即拿即用。
定制预设中的预构建变体,或通过复用现有组件来创建新的变体。
使用自定义植被和材质来改变外观与风格,同时保留物种的基础特征。
使用PVE输出并通过手动放置或PCG来填充场景。
PVE的初始版本致力于为程序化植被创建奠定坚实基础,让用户始终能以预设为起点。 虽然未来功能将扩展到允许用户从零开始培育植被,但目前的核心功能主要围绕以下方面:
加载程序化植被预设:
描述:此功能允许用户加载特定植物物种的预构建数据。 这些预设包含定义特定植被物种的基础信息及生长参数。
作用:它提供了一个包含多样化植被物种实例的库,为用户提供了快速上手的起点,并支持进一步定制以创建变体。 这省去了从零开始构建每一株植物的繁琐工作。
使用节点图表定制/创建变体:
描述:PVE采用基于节点的界面,与虚幻引擎中的其他可视化脚本工具类似。 该图表允许用户利用预构建节点,操作并定义控制植被生长、形态及外观的参数。
作用:通过连接各种节点,用户能够:
调整与激素模拟及适应性生长相关的参数。
引入随机性或特定条件,以影响分支、叶片分布及整体植物结构。
控制材质属性、纹理应用以及植被的其他视觉效果。
生成已加载预设的独特变体,或构建全新的植物形态,从而根据具体需求精确地定制植被。
PVE节点
在构建图表以生成项目植被时,你可以参考本文档以下章节关于PVE节点的说明。 每个章节都将提供各节点的概述与用例,并详细解析每个节点的属性及其相关选项。
程序化植被预设加载器
预设加载器(Preset Loader)是你在PVE中的起点。 它能加载现成的植物预设,让你无需完全从零开始构建树木或灌木。 可以将其视作选择基础食谱——加载后,你可以对其进行微调、定制,并将其培育为独特的植被。
功能说明
加载预设植物物种(例如橡树、松树或灌木)。
每个预设包含:
植物的主要结构(树干与枝条)。
生长规则 (定义其如何扩展或对光照/重力做出反应)。
分支数据(细枝附着的位置)。
植被网格体(叶片或针叶的外观)。
材质(树皮、叶片等的纹理)。
使用场景
快速入门:立即加载完整的植物模型以便开始实验。
定制:以预设为基础,随后添加节点来改变其形状、大小或植被。
新手专家提示
从预设入手,进行微小的调整(如缩放或更改植被),以便快速查看效果。
| 类别 | 说明 |
|---|---|
变量组 | 预设 |
变量 | 预设 |
功能说明 | 加载现成的植物预设 |
详细指南 | 每个预设都包含了物种的全部信息(树干、树枝、叶片、材质及生长规则)。 这是你进行定制前的起点。 |
修剪
修剪(Carve)节点就好比对植物使用修枝剪或锯子。 它允许你根据设定规则修剪结构,从而控制植被的最终形状与大小。
功能说明
你可以依据不同的测量标准“修剪”(移除)树枝或树干的部分:
距根部长度(Length From Root):根据距离树干基部的远近来修剪树枝。
示例:移除植物顶部的树枝。 值为0时不移除任何树枝,而值为1时将移除所有树枝,仅保留树干。
从底部(From Bottom):根据距离植物最底部的高度进行修剪。
示例:与“距根部长度”类似,“从底部”也是修剪树枝,但方向相反,是从植物基部开始。 “从底部”会先缩短树干,随即移除最低处的树枝。
Z位置:根据世界高度(虚幻引擎的Z轴)进行修剪。
示例:在关卡的特定高度对植物进行切片。
半径(Radius):根据树枝的粗细来移除树枝。
示例:仅保留最粗的枝干,或修剪掉细小的枝条。
使用场景
形状控制:将树木修剪出更整洁的轮廓。
玩法需求:清理树底空间,以确保视野通透或方便玩家移动。
风格化:通过切除部分结构,创造风格化或奇幻的植物形态。
优化:移除背景植被的细微细节(如细枝、低矮树枝)。
新手专家提示
若想快速清理下部树干,请使用从底部。
尝试使用半径(Radius)来简化植物,在保留主要结构的同时去除细小的杂枝。
切勿过度修剪——适度的修整往往比大幅度的切割看起来更加自然。
| 类别 | 说明 |
|---|---|
变量组 | 修剪 |
变量 | CarveBasis |
有效值 | LengthFromRoot, From Bottom, ZPosition, Radius |
功能说明 | 设置修剪规则。 |
详细指南 | LengthFromRoot:根据距离树干基部的远近修剪树枝。 从底部:根据距离植物底部的高度进行修剪。 ZPosition:在特定的世界高度进行修剪。 半径(Radius):根据树枝粗细进行修剪。 使用此功能清理下部树枝或细枝,以提升性能。 |
| 类别 | 说明 |
|---|---|
变量组 | 修剪 |
变量 | 修剪 |
有效值 | 0.0–1.0 |
功能说明 | 控制修剪的程度。 |
详细指南 | 详细指南 0 =极少修剪,1 =大幅修剪。 从低数值开始尝试,以获得自然的效果。 |
重力
重力节点能让植物对自然界中的力产生反应——例如真实树枝因自重而弯曲,或向着阳光生长。 这能为植被增添自然的曲线和走向,使其看起来生机勃勃、真实可信。
功能说明
重力模式
重力:树枝因自重而向下弯曲。
强度控制
决定树枝弯曲的幅度。
低强度=平缓曲线。
高强度=剧烈弯曲。
方向向量
修改此项可使植物沿自定义方向弯曲。
示例:通常设置为世界向下,但你也可以设置自定义方向(适用于倾斜植物或风格化生长)。
角度校正和偏移
微调树枝在保持原始角度时的平衡方式。
使用场景
真实感:让树木因自重或外力作用而自然下垂。
风格化:通过夸大曲线,赋予植物奇幻或异星风格的外观。
环境叙事:
重力强:古老厚重的树木,枝条下垂。
新手专家提示
从低强度开始尝试以获得微妙的真实感——过度弯曲会显得不自然。
在同一场景中混合使用两种模式,可增加变化并呈现自然的多样性。
| 类别 | 说明 |
|---|---|
变量组 | 重力 |
变量 | 模式 |
有效值 | 重力 |
功能说明 | 选择弯曲风格。 |
详细指南 | 重力:树枝因自重而向下弯曲。 重力=沉重的老树。 |
| 类别 | 说明 |
|---|---|
变量组 | 重力 |
变量 | 重力 |
有效值 | 0.0–1.0 |
功能说明 | 弯曲强度。 |
详细指南 | 低=平缓曲线,高=剧烈弯曲。 保持低值可获真实感,高值则用于制造奇幻效果。 |
| 类别 | 说明 |
|---|---|
变量组 | 重力 |
变量 | 方向 |
有效值 | Vector3(例如,世界向下,自定义向量)。 |
功能说明 | 设置弯曲方向。 |
详细指南 | 通常为世界向下,但自定义向量允许侧向生长或实现风格化效果。 |
| 类别 | 说明 |
|---|---|
变量组 | 重力 |
变量 | AngleCorrection |
有效值 | 0.0–1.0 |
功能说明 | 保留原始树枝角度。 |
详细指南 | 通过混合自然角度与新曲线,防止过度弯曲。 |
缩放
缩放(Scale) 节点用于控制植物各部分的大小。 将其视为植被的缩放工具——它能让树干变粗、树枝变长,或是调整叶片的大小。
功能说明
缩放整个植物网格体。
使用场景
快速调整:调整预设树木的高度、宽度或大小,使其更完美地融入场景。
变体:通过差异化缩放创建多种植物变体(避免每棵树看起来千篇一律)。
新手专家提示
通过微小的调整(如10–20%的缩放差异),快速为同一植物生成可信的变体。
对于森林场景,混合使用同一树木的放大和缩小版本,可有效避免重复感。
| 类别 | 说明 |
|---|---|
变量组 | 缩放 |
变量 | 缩放 |
功能说明 | 更改植物的大小。 |
详细指南 | 对树干、树枝或叶片进行放大或缩小。 操作类似于尺寸调整工具。 利用微调(10–20%)来增加自然的变化。 |
移除分支
移除分支节点让你能够掌控保留哪些树枝,以及修剪掉哪些树枝。 它就像一把数字修枝剪,既能塑造植物的整体外观,又能为了性能而简化模型。
功能说明
你可以根据以下不同规则来移除树枝:
长度:切除过短或过长的树枝。
半径(Radius):根据需求移除过细或过粗的树枝。
光照:移除光照不足的树枝(有助于模拟自然生长)。
年龄:修剪掉老化的树枝。
代:决定保留多少“层”分支(例如:仅保留树干,或树干+ 2层分支)。
使用场景
艺术控制:塑造植物轮廓(使其更茂密、稀疏或具有风格化)。
性能:为背景树木减少不必要的细枝。
真实感:模拟树木自然脱落低处或背阴处树枝的过程。
新手专家提示
从简单入手:首先尝试调整长度或代——这些变化在视觉上最直观。
若想制作更逼真的树木(如森林中下部枝条较少的树),请使用基于光照的移除方式。
对于大型环境,利用移除功能可减轻远处植被的负担,提升渲染速度。
| 类别 | 说明 |
|---|---|
变量组 | 移除分支 |
变量 | BranchRemoveBasis |
功能说明 | 设置修剪规则。 |
详细指南 | 树枝可依据长度、粗细、年龄、代数或光照情况进行移除。 这既能模拟自然修剪,也可用于简化植物模型。 对逼真的森林树木使用基于光照的移除(减少阴影处的树枝)。 |
网格体构建器
网格体构建器节点能将你的植物设计转化为真正的3D模型,以便你在虚幻引擎中查看、使用及导出。 你在先前节点中设置的所有内容将在此汇聚,生成实际的网格体。
功能说明
生成3D网格体:根据图表定义的结构为你的植物生成网格体。
应用材质:为网格体应用材质(纹理、颜色、表面细节)。
使用位移添加细节:若需要额外的表面变化(如树皮凸起或叶脉),可添加位移细节。
默认情况下,它使用所加载预设中的材质;若你想要不同的外观,也可替换为自定义材质。
设置组
材质 – 选择或更改植物所用的纹理及表面。
示例:将树皮材质替换为苔藓材质。
网格体 – 调整网格体的生成方式(整体形状、分辨率、质量)。
示例:主角植物使用高质量,背景植物使用低质量。
位移(Displacement)– 通过推/拉网格体表面来添加精细的表面细节。
示例:在无需超高多边形模型的情况下增加树皮的粗糙质感。
使用场景
网格体构建器是你在3D环境中查看植物的必要步骤。
若希望植物别具一格(如不同的树皮、叶色或季节性外观),请定制材质。
对细节清晰可见的特写植物使用位移。
新手专家提示
可以将网格体构建器视为最终烘焙:它获取植物结构(食谱),并将其转化为成品(模型)。
起初设置应保持简单:仅使用预设材质。
熟悉之后,便可开始尝试自定义材质和位移,以获得更多的艺术掌控力。
| 类别 | 说明 |
|---|---|
变量组 | 网格体构建器 |
变量 | 材质:选取或替换纹理/材质(例如树皮、叶片表面)。 网格体:定义植物结构如何转化为3D网格体。 位移:添加表面细节,例如树皮凸起或叶脉。 |
功能说明 | 将植物转化为真正的3D模型。 |
详细指南 | 获取由节点构建的结构,并生成已应用材质的网格体。 位移能增加真实感,且不会增加多边形数量。 起初使用默认材质;稍后可添加自定义材质以展现独特性。 |
植被控制板
植被面板节点好比你的叶子和树枝库。 它会显示植物当前使用的植被类型(叶片、针叶、花朵等),若你需要不同的外观,可在此进行替换。
功能说明
可视化植被网格体:你可以查看附着在植物上的不同叶片或小型网格体。
替换植被网格体:将默认叶片替换为你自己的网格体(例如,将橡树叶换成枫叶)。
移除植被网格体:若需要光秃或简化的植物,可移除特定类型的叶片。
叶片的放置(即它们出现的位置)由预设决定,在此处无法更改——你只能修改叶片的外观。
使用场景
定制:快速更改植物外观,无需重建整个结构。
多样性:在同一预设上使用不同的叶片网格体,以制作同一树种的独特变体。
优化:移除高多边形植被网格体并替换为更简单的网格体,以提升性能。
新手专家提示
从交换叶片网格体开始创建变体——这是增加森林多样性的最快方法。
你可以利用相同的结构搭配不同的植被网格体来创建数棵树木,从而使环境显得自然且不单调。
| 类别 | 说明 |
|---|---|
变量组 | 植被控制板 |
功能说明 | 允许查看及更改植被网格体。 |
详细指南 | 你可以用自己的网格体替换叶片或针叶,或将其完全移除。 放置位置由预设控制,此处无法更改。 通过交换叶片类型(如从橡树到枫树)快速创建变体。 |
植被分布器
植被分布器节点控制着叶片和细枝在整株植物上的分布方式。 它提供了一种简单的方法,可根据你的需求让植物看起来枝繁叶茂或稀疏整洁。
功能说明
调整保留在植物上的芽、叶及细枝的数量。
利用乙烯(一种随植物老化导致叶片脱落的植物生长激素)的概念。
通过设置乙烯阈值,你可以决定植物对此过程的敏感度。
关键设置
乙烯阈值:将其视为一个调节植物“饱满”程度的滑块:
较高阈值意味着保留更多的叶片和枝条,使植物看起来枝繁叶茂。
较低阈值意味着更多的叶片和枝条脱落,使植物看起来稀疏整洁。
使用场景
茂密外观:适用于丛林、郁郁葱葱的森林或需要大量绿植的健康植物。
稀疏外观:适用于秋季场景、干燥气候,或叶片需求较少的风格化/优化植物。
新手专家提示
如果你不确定从何入手:
设置较高阈值以获得生机勃勃、鲜嫩的植物。
逐渐降低阈值以创造自然变化(例如森林中某些树木看起来更苍老或干枯)。
在同一场景中混合使用两者,能使环境显得更加自然且真实可信。
| 类别 | 说明 |
|---|---|
变量组 | 植被分布器 |
变量 | EthyleneThreshold |
有效值 | 可调滑块(0.0–1.0) |
功能说明 | 控制植物外观的疏密程度。 |
详细指南 | 基于乙烯,一种导致叶片脱落的植物激素。 高阈值:枝繁叶茂。 低阈值:稀疏整洁。 |
骨骼削减
骨骼削减节点有助于简化植物骨骼。 在PVE中,当你将植物导出为骨骼网格体时,系统会创建骨骼,以便树枝和叶片能够移动(例如随风摇摆)。
有时,这些骨架可能包含过多骨骼,从而拖慢游戏或大型场景的性能。 骨骼削减节点允许你减少骨骼数量,从而提升运行速度。
功能说明
保持高性能:通过降低骨骼数量来实现。
简化动画:防止植物占用过多的处理能力。
权衡:骨骼越少,风力摆动的真实感越低。
使用场景
使用骨骼削减:如果你正在创建:
包含成百上千株植物的大型森林或场景(追求速度)。
精细风力细节无关紧要的背景植被。
避免过度削减骨骼:如果:
植物靠近玩家或摄像机。
它是主角资产(过场动画或游戏过程中的重要树木/植物)。
新手专家提示
从默认骨骼开始,若场景运行变慢,再尝试使用骨骼削减。 可以将其视为通过降低动态“细节”来换取性能。
| 类别 | 说明 |
|---|---|
变量组 | 骨骼削减 |
变量 | 骨骼削减 |
功能说明 | 简化植物的骨骼。 |
详细指南 | 减少骨骼网格体中的骨骼数量。 骨骼越少性能越好,但风力动画的准确度会下降。 对背景植物使用以提升速度;对特写植物则保留细节。 |
输出
输出节点用于将你在程序化植被图表中构建的所有内容,转化为虚幻引擎中的可用资产。 将其视为植物的导出按钮。
功能说明
输出节点允许你根据项目中的使用需求,以不同格式保存植物:
静态网格体:不含Nanite或骨骼数据的标准虚幻网格体。 适用于简单植物或无需高细节的情况。
带Nanite植被的静态网格体:同上,但已通过虚幻引擎的虚拟化几何体系统Nanite进行优化。 非常适合性能要求高且细节极其丰富的植被。
骨骼网格体:包含骨骼(骨头)的网格体,能够移动或对风力/物理产生反应。 非常适合你希望随风摇摆或弯曲的树木或植物。
带Nanite植被的骨骼网格体:集两者之长:既有高度细节,又具备风力和运动动画。
如果植被尚无骨骼,选中骨骼网格体选项后,输出节点将为你自动生成骨骼数据。
各选项的使用场景
静态网格体:适用于无需动画的小型植物、灌木或背景细节。
Nanite静态网格体:适用于注重细节的森林、丛林或特写植物。
骨骼网格体:适用于需要移动的植被。
Nanite骨骼网格体:适用于需要兼顾真实感与动态效果的茂密森林,特别是在需要细节和风力动画的电影级镜头中。
新手专家提示
如果你刚起步:
使用带Nanite的静态网格体:适用于大多数情况——简单易用且效果出色。
一旦你上手并希望添加风力交互等动态效果,可切换至骨骼网格体选项。
| 类别 | 说明 |
|---|---|
变量组 | 输出 |
有效导出选项 |
|
功能说明 | 将植物导出为可用网格体。 |
详细指南 |
大多数情况下使用Nanite静态网格体;若需风力动画则切换至骨骼网格体。 |
导入时的虚幻引擎内容
预设在虚幻引擎中加载后,你将获得以下内容:
根文件夹(物种名称,例如:Tree_European_QuakingAspen_01)
实例(子文件夹)
材质(子文件夹)
纹理(子文件夹)
风力设置(子文件夹)
PVE风力模拟数据资产
每个变体的带Nanite植被的骨骼网格体
每个变体的骨骼
PVE图表编辑器资产
PVE预设数据资产
端到端用户流程示例
通过以下任一方式下载Quixel Megaplants预设包(不适用于5.7预览版,仅适用于5.7正式版及后续版本):
启动器中的Fab
Fab 虚幻引擎插件
Fab.com
打开资产展示厅示例场景,查看随下载提供的预构建植被变体。
直接使用预构建的骨骼网格体变体,通过手动放置、实例化、复制或在PCG体积中进行散布。
双击PVE图表编辑器资产,查看每个变体的节点图表。
利用节点的各种参数编辑变体,或复制节点图表以创建全新的变体。
使用你希望导出的变体的节点图表中的输出节点进行导出,并选择一种所需的输出网格体类型。
开始通过手动放置、实例化、复制或在PCG体积中进行散布。
所需插件
PVE
PCG
动态风
Nanite
项目设置
应启用Nanite
应启用Nanite植被
配合PCG使用以支持风力动画
关键植物学概念
在项目中使用PVE生成植被时,你应熟悉以下几个关键术语:
向光性:植被生长方向对光照的响应。 在PVE中,这对实现更逼真的树枝生长效果起着重要作用。
激素:
乙烯:
乙烯作为一种植物激素,在种子萌发、根茎伸长、开花结果以及枝叶衰老等多种生长发育过程中发挥着关键作用。 根据浓度和物种的不同,它可以促进或抑制生长。
在PVE中,它主要用于控制植物的生长,以及新叶片/植被出现的位置和数量。
分支代:
此功能指定了植物结构内分支的层级深度。 它决定了分支与树干的距离,并用于控制不同结构层级的生长、外观及行为。
第0代:树干或主茎。
第1代:直接从树干长出的枝条。
第2代:从第1代长出的子枝条,依此类推。
某些设置(如材质)可针对不同代数进行差异化配置。
腋生角:
通常称为插入角,是指侧生器官(如叶片、花梗或侧枝)与其父轴(即长出它的茎/枝)之间的夹角。
0° ≈ 平行于父轴(顺着生长方向)。
90° ≈ 垂直(直接伸出)。
>90° ≈ 相对于直立父级向地面下垂。
该角度会影响光照捕获、雨雪滑落以及植物的整体架构。 它随物种、器官类型、树龄及环境的不同而变化。