随机生成的植被

Foliage.png

概述

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

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

Blueprint蓝图)设置

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

蓝图内容 目的
Components List (组件列表) 添加BillboardComponent以代表中心,添加BoxComponent以辅助对构建半径的可视化。
Construction Script (构建脚本)

构建脚本 执行以下任务:

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

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

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

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

FoliageCS.png

可编辑变量

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

Variables_Foliage.png Properties_Foliage.png

属性 目的
Number of Meshes (网格数量) 这个整数值代表了蓝图将要生成的网格物体数量。 在 Construction Script (构建脚本)中,此值决定了 ForLoop 节点触发的次数。 每个来自于 ForLoop 节点的执行都会经过负责创建静态网格物体的脚本部分。
Radius (半径) 控制特效半径,植被将被随机散布于其中。
Collision Trace Range (碰撞追溯范围) 查找在有效表面生成植被的的垂直距离(系统在垂直方向将要查看的距离)。
Meshes To Spawn (待生成的网格物体) 这是数组变量,可添加来自于 Content Browser (内容浏览器)的网格物体到此数组。 在 Construction Script (构建脚本)生成网格物体组件后,它被变更为来自于此数组的随机网格物体。
Vertical Offset (垂直偏移量) 控制生成的网格物体的表面深度。 这可以让网格物体看起来更贴近于地面。
Align To Surface (对齐到表面) 这个布尔值变量会让由蓝图生成的网格物体自适应,这样它们可以与其所处的表面角度相匹配。 从内部来说,这个变量影响确定植被网格物体放置方式的 Construction Script (构建脚本)中的分支。 启用后,脚本会在尝试生成每个网格物体前描画线形轨迹。 当此轨迹撞击表面时,获取冲击点的角度和高度并以此来确定生成的网格物体的角度和高度。
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 (随机种子) 控制应用的种子以创建随机数量。 变更这个值以使得您的运算结果不同。