Language:
Page Info
Engine Version:
Share

随机生成的植被

Foliage.png

植被 蓝图显示了如何使用蓝图来创建随机生成的植被(或其他结构),它们被自动放置,以贴合表面。 用户可以控制特效的范围以及系统尝试生成的网格体数量。 随着蓝图的移动,网格体会更新以重新适应新环境。

大致看一下可以了解到,系统采用了固定的半径,然后选择该半径内随机生成的点以作为潜在的生成点来使用。 随后它会执行向下的轨迹检查以查看每个点下方的表面位置,并将其作为可能的位置来使用。 系统还检查每个网格体的单独半径以防止网格体过度重叠的问题,并将在当前无网格体的空间的任意位置处选择新的随机位置。

蓝图设置

此蓝图的组件列表 ,构建脚本,以及事件图表执行以下任务:

蓝图内容

目的

Components List (组件列表)

添加BillboardComponent以代表中心,添加BoxComponent以辅助对构建半径的可视化。

Construction Script (构建脚本)

构建脚本 执行以下任务:

  • 缩放盒体组件以辅助可视化效果。

  • 使用循环从而在半径内的随机位置处创建植被网格体,生成指定数量的网格体。

  • 比较一系列情况来查看是否以及如何生成网格体。

Event Graph (事件图表)

此蓝图没有事件图表, 这意味着当属性设置完成后,它在整个游戏过程中都保持不变。

可编辑变量

您可能已经想到了,此蓝图的大多数工作在 Construction Script (构建脚本)中完成,这是非常全面的。 以下是显示的关键属性以及其对应作用。

MyBlueprintNoVar.jpg Properties_Foliage.png

属性

目的

Number of Meshes (网格数量)

这个整数值代表了蓝图将要生成的网格体数量。 在构建脚本中,此值决定了 ForLoop 节点触发的次数。 每个来自于 ForLoop 节点的执行都会经过负责创建静态网格体的脚本部分。

Radius (半径)

控制特效半径,植被将被随机散布于其中。

Collision Trace Range (碰撞追溯范围)

查找在有效表面生成植被的的垂直距离(系统在垂直方向将要查看的距离)。

Meshes To Spawn (待生成的网格体)

这是数组变量,可添加来自于内容浏览器的网格体到此数组。 在构建脚本生成网格体组件后,它被变更为来自于此数组的随机网格体。

Vertical Offset (垂直偏移量)

控制生成的网格体的表面深度。 这可以让网格体看起来更贴近于地面。

Align To Surface (对齐到表面)

这个布尔值变量会让由蓝图生成的网格体自适应,这样它们可以与其所处的表面角度相匹配。 从内部来说,这个变量影响确定植被网格体放置方式的构建脚本中的分支。 启用后,脚本会在尝试生成每个网格体前描画线形轨迹。 当此轨迹撞击表面时,获取冲击点的角度和高度并以此来确定生成的网格体的角度和高度。

Scale Max (最大缩放)

对生成的网格体所允许的最大缩放。 这个百分比值在0.0-1.0之间,1.0代表100%。

Scale Max (最小缩放)

对生成的网格体所允许的最小缩放。 这个百分比值在0.0-1.0之间,1.0代表100%。

Cluster Around Center (中心周围的群集)

此布尔变量确定网格体的随机位置是否主要位于半径中心的周围。 当启用这个选项时,对可由中心点生成的距离网格体降低随机的数量,这会造成更少的远离系统(从半径处观察)的网格体的生成。

Scale Falloff (缩放衰减)

这个布尔变量确定了当网格体远离中心点时,是否生成的网格体会越来越小。 这个布尔值确定了网格体的缩放是否会与网格体和中心位置的距离值相乘。 当我们使用蓝图来生成植被网格体时,当花草的大小在组的外部边缘周围逐渐变小时,网格体群集看起来更为自然。

Random Seed (随机种子)

控制应用的种子以创建随机数量。 变更这个值以使得您的运算结果不同。