您需要 登录 才可以下载或查看,没有账号?注册
x
本期笔记内容我们将学习如何通过程序和手动快速模拟森林或模拟较小的植物,最后我们将学习如何根据我们的方法手动调整程序放置的树叶
所以首先我们需要在我们的设置中打开程序化植物所以我们将去编辑-->首选项-->搜索程序化植被
现在如果您转到内容浏览器您右键单击,现在打开树叶如果你看到这个程序树叶生成器,这意味着它已经打开。点击即可新建
如果我们把它放在我们的景观中你会看到它现在是一个立方体,foliage 只会在这个立方体中产生,所以让我们把这个立方体变大,调整一个适合自己尺寸即可
让我们现在打开它这个生成器,它需要叶子类型的对象所以如果你向它添加更多元素
我们如何在相同的树叶下获取它,我们有静态网格树叶然后打开它
像以前一样添加我们静态植被
然后我们将把它添加到到我们的生成器中,然后在细节面板中就在这里我们将点击重新模拟,如果你有这个灰色,这意味着该区域内的一些资产没有加载所以你将点击(Load Unloaded Areas)加载卸载区域它会处理它
点击重新模拟我们就出现一整个森林
接下里我们需要解决一些问题
第一个是它太茂密了我们不需要那片茂密的森林
第二个所生成的位置(自定义地表层生成,位置偏移)
第三个树木朝向(是否沿法线,角度微调等)
在静态网格植物的设置中解决所有这些问题,我们现在来看看静态网格
*所以首先让我们降低密度,注意此处修改场景中模拟不会自动更新我们还需要点击下重新模拟。
展开集群(Clustering)部分,将阶数(Num Steps)设为 0,这样我们生成的树木会拥有同样的尺寸和年龄,然后按下 重新模拟(Resimulate) 按钮。模拟完成后,你应该获得与下图类似的效果
集群(Clustering)"部分有多个属性(如密度、年龄及邻近度),帮助确定特定植被类型对象的网格体实例在程序化植被生成器中应该被如何放置、分组和散布
虽然现在树木间有了一些空隙,但总体密度仍然有些偏高。要解决此问题,请将 初始种子密度(Initial Seed Density) 设置为 0.25,然后单击 "重新模拟" 按钮
如图所见,将 "初始种子密度(Initial Seed Density)" 设置为 0.25 能极大降低森林密度,因为树木的生长和散布时间只有一年。为了解决该问题,将 "阶数(Num Steps)" 重新设为 3,此时树木会在3年期内生长并传播,然后单击 "重新模拟(Resimulate)" 按钮
密度问题
现在回到我们的设置所以在聚类下第一个是步数所以我们的叶子生成器以步数模拟它
Num Steps:模拟次数
seeds per step:数量
只有1的模拟
移动树的位置:偏移值 Max Initial seed offset
碰撞
模拟第一个碰撞半径,所以碰撞半径如果你假设树干就像树干有多宽,100厘米的距离意味着没有其他种子会在距那棵树100厘米的距离内生成就像另一棵树不能距那棵树一百厘米的距离内生成就像另一棵树不能在同一个树干上生长
Radius :它就像树冠,所以如果你想象一个太阳直接在树顶上,阴影会产生多远,所以当我们想要生成一些生长在树荫下的物种时,它会很有用
在静态网格体植被的程序化(Procedural) 分段下展开碰撞(Collision) 部分,并将着色半径(Shade Radius) 设置为 50
当两种植被类型对象竞争同一片生成位置或相对空间时,会由"碰撞(Collision)"部分决定哪种植被类型对象被保留。当一种虚拟种子的碰撞半径,与另一种植被类型对象的种子现存的碰撞半径或着色半径重叠时,将会根据植被类型对象的优先级,确定哪种植被的种子会被取代或移除。
Can Spawn in Shade:这些树中的任何一棵,它可以在阴凉出生成也可以不在
Spawn in Shade(Both ticked):下面还有另一个选项在阴凉处生成如果你重新模拟它,它只会在阴影中产生
让我们点击模拟演示有岩石和树木既竞争对于相同的空间,如果碰撞半径内有两颗种子并且其中一颗被摧毁,那么碰撞如何影响植物,我们之前讨论过这个
现在我们可以在这里改变重叠品种,这样优先级高的种子将获胜,种子会降低优先级将在这里被破坏测试是我们的树所以我们现在将重叠优先级更改为一个如果你重新模拟我们应该看到比这块岩石更多的树
展开生长(Growth)部分,按照下列设置调整以下参数
- 最大年龄(Max Age):20.0
- 最大程序范围(Procedural Scale Max):10.0
"生长(Growth)"部分允许你对调整植被类型对象的网格体实例如何随时间生长和长大
在 剔除距离(Cull Distance) 选项下的 实例设置(Instance Settings) 中,将 最大(Max) 值设为 20,000,然后单击 重新模拟(Resimulate) 按钮。模拟完成后,你应该获得与下图类似的效果
如果我们将它设置为1000 到 3000,那么在 3000 之后将没有树了,这将帮助您优化它
偏移
第一个是 z 偏移所以 z 偏移意味着你想移动多少,有些时候我们植被会在地面之上这时候我们就需要偏移Z轴
当你看这棵树时,树会尝试在景观法线方向上旋转自己,旋转以使其与法线对齐,如果你关闭它并重新 -现在模拟它
所有的树都是直的,这是你通常想要的
开启对其法线---自定义旋转角度
几种随机方向的旋转
在指定的地表材质上生成Minimum exclusion Layer Weight:意味着只有当景观层权重高于这个数量时包含在排除中才会起作用,这对于控制两层混合区域的树叶很有用
在那个静态网格下面的景观上没有任何东西现在如果你想在那个静态网格下面的景观上没有任何东西现在如果你想使用多种植被类型对象在我们的虚拟森林中加入另一品种的树木,可以极大地提高真实感及总体观感和感受。幸运的是,程序化植被生成器 允许你生成多种 植被类型对象,因此,你可以用一个 程序化植被生成器 生成包含多个品种树木的森林。接下来这部分,我们将学习如何设置程序化植被生成器,从而生成多种植被类型。我们将继续在上一步使用的 PFT_00 关卡中进行操作
1.在 内容浏览器 内选中 Tree_00静态网格体植被类型,按住键盘上的 Ctrl + W 进行复制,并将其命名为 Tree_01。
2.打开新创建的 Tree_01 静态网格体植被类型,在 "网格体(Mesh)" 分段下,
将网格体改为 ScotsPineTall_01 静态网格体
3.从 内容浏览器 打开 程序化植被生成器,展开 植被类型(Foliage Types) 部分
4.单击 加号 图标,添加选项输入另一种植被类型对象。
5.从内容浏览器中,选中 Tree_01静态网格体植被,将它拖入植被类型对象,或者点击箭头图标,将选中的静态网格体植被添加至程序化植被生成器中
6.选择被置于关卡中的程序化植被生成器,然后单击重新模拟(Resimulate)按钮。完成后,你应该会看到以下图像。
7.为了增加森林外观的趣味性,打开Tree_01静态网格体植被,按照下列值调整以下参数。之所以选择下方所列出的数值和选项,是因为它们会结合已经使用的静态网格体植被实例,生成的森林具有有趣的集群和生长互动性。不过,你可以随意尝试使用这些数值和设置,直到获得你满意的效果为止。
- 阶数(Num Steps):4
- 初始种子密度(Initial Seed Density):0.125
- 平均散布距离(Average Spread Distance):100
- 能在阴影中生长(Can Grow in Shade):启用
- 在阴影中生成(Spawns in Shade):启用
- 最大年龄(Max Age):15
- 重叠优先级(Overlap Priority):1
- 程序范围(Procedural Scale):最大值 5.0
8.当设置调整完成后,单击程序化植被生成器上的 重新模拟(Resimulate)按钮,你得到的模拟效果应该与下图类似
设置程序化植被阻挡体积1.程序化植被阻挡体积 是一个体积Actor,可将其置于关卡中并根据需要设置范围大小,让程序化植被生成器避免在程序化植被阻挡体积之内生成任何植被对象类型。在接下来的内容中,我们将学习如何将 程序化植被阻挡体积 添加至关卡中,并用其避免植被网格体的生成。你将继续在上一步使用的 PFT_00 关卡中进行操作
1.首先,在 放置Actor(Place Actors) 面板,将 Proc 作为搜索词进行搜索,找到 程序化植被阻挡体积(Procedural Foliage Blocking Volume)
2.选择程序化植被阻挡体积,并将其从"放置Actor"面板拖入关卡
3.为了避免植被网格体在程序化植被生成器的后部生成,用以下位置和缩放值移动并缩放程序化植被阻挡体积
- X轴位置:5430.0 cm
- Y轴位置:-3900.0 cm
- Z轴位置:200.0 cm
- 缩放X轴:41.75
- 缩放Y轴:65.5
- 缩放X轴:41.75
4.选择关卡中的程序化植被生成器,单击 **细节(Details)面板中的"重新模拟(Resimulate)"按钮。重新模拟完成后,你树林的后面部分应该都消失了,这就是插入了程序化植被阻挡体积的地方
视频版:
官方文档
https://docs.unrealengine.com/5.1/en-US/procedural-foliage-tool-in-unreal-engine/
好!本期笔记分享就到这里,我们下期见!
|