Version:

本文内容

动态植被概念

动态植被系统围绕以下理念运行:

  • 什么 - 要指定出现的植被类型,您必须有预制的植被资产,如.cgf.fbx文件。如果您没有自己的植被资产,可以使用 O3DE 的植被资产,这些资产位于 “Starter Game”项目中。

  • 哪里 - 您可以创 您可以创建小片的花朵,也可以在大面积区域内填充各种植物和物体。为此,可分别使用前景图层中的局部区域集群或背景图层中的覆盖区域。建小片的花朵,也可以在大面积区域内填充各种植物和物体。为此,可分别使用前景图层中的局部区域集群或背景图层中的覆盖区域。

    使用植被过滤器,您可以设置规则,指定植被生长的表面角度、高度、与物体的距离和表面类型。

    植被遮挡器可以遮挡植被区域。例如,要在房屋周围形成无植被的边界,可使用比房屋底座稍大的植被遮挡物。

  • 如何 - 将植被修改器与适当的梯度搭配,可使植被在位置、比例、旋转和与斜坡的对齐上显得随意。当您在一个区域使用多个植被资产时,梯度还可以自定义每个植被资产出现的频率。

  • 如果 - 您可以使用表面标签发射器来标记特定类型的表面,如道路、河流、海洋和网格。动态植被系统会读取标签来识别这些表面,并根据您以包含和排除列表的形式创建的一系列规则采取行动。例如,要让睡莲出现在所有水面上,可在包含列表中添加水量表面标签。要确保睡莲永远不会出现在道路上,可将路面标签添加到排除列表中。

示例 下图显示的是河面和路面不包括草地,路面只包括卵石群。

Grass is excluded from the river and road surfaces, and pebble clusters appear only on road surfaces.

您可以通过以下方式定制植被:

  • 为植被区域指定优先级。优先级决定植被系统填充区域的顺序。
  • 使用可定制的梯度(如Perlin Noise Gradient)来模仿自然界中常见的植被分组类型。
  • 将自定义的植被区域保存为切片,以便在其他关卡中重复使用或与合作者共享。使用切片重载功能,对切片的单个实例进行或大或小的更改。

动态植被组件

创建新植被区域的常见工作流程首先是创建一个实体,并为其添加一个Vegetation Layer Spawner组件。然后在该实体中添加两个必备组件,这两个组件定义了区域的形状和要显示的资产。在此基础上,您可以添加可选组件,如植被过滤器和修改器。

任何进一步修改植被区域的其他组件,如渐变、遮挡和混合器,都必须包含在单独的实体中。这些独立实体可以是具有Vegetation Layer Spawner组件的实体的同级实体或子实体。

下表概括了动态植被组件的功能以及通常与之交互的组件。最常用的组件位于表格顶部。出现在一个类别中的组件,如植被过滤器,将作为该类别而不是单独命名。可选和不兼容列并不包括每个类别的所有组件,只包括与动态植被相关的组件。


附加到实体的组件说明所需的组件可选的组件不兼容的组件
Vegetation Layer Spawner创建植被区域的主要组件。确定图层优先级和过滤阶段。
Gradients category (每个实体只能有一个)创建一个梯度,供Vegetation Distribution FilterVegetation Asset Weight Selector等其他组件参考。提供一个梯度,供引用组件用来分布植被或其他环境装饰物。梯度类型包括佩林噪声、白噪声、图像等。该类别中的某些组件需要另一个组件。例如:您可以在添加Gradient 组件的同时添加某些Gradient Modifier组件。某些Gradient Modifier修改器组件不兼容。为了获得更好的工作流程,请将Gradient Modifier组件添加到单独的实体中,然后引用渐变实体 ID。
Gradient Modifiers category (每个实体只能有一个)修改渐变效果。在Gradient Modifiers组件的属性中引用渐变实体 ID。该类别中的某些组件需要另一个组件。例如:None