Version: Unity 6.0 (6000.0)
语言 : 中文
向树添加碰撞
使用风区为树制作动画

向地形添加树

使用绘制树 (Paint Trees) 工具可在地形上放置树并自定义其绘制。可以用笔刷绘制树,或在整个地形瓦片上大批量放置树。

例如,使用免费的 Unity 地形 - HDRP 演示场景,其中包含六个 SpeedTree 模型。还可以使用树编辑器 (Tree Editor) 创建树(适用于内置渲染管线)。

绘制树工具

要访问树绘制,请执行以下操作:

  1. 层级视图 (Hierarchy) 窗口中,选择地形。
  2. 在地形的检视面板 (Inspector) 窗口中,从地形 (Terrain) 工具栏中选择绘制树 (Paint Trees)

选择树

要将树添加到地形,请将树原型添加到绘制树工具:

  1. 选择编辑树 (Edit Trees) > 添加树 (Add Tree)
  2. 选择树。

添加树 (Add Tree) 窗口根据要添加的树提供不同的选项:

  • Bend Factor:调整树对场景中的风的响应。SpeedTree Modeler 中的树没有弯曲因子 (Bend Factor);只有树编辑器中的树有弯曲因子。请参阅使用风区为树制作动画以了解更多信息。

  • NavMesh__ LOD__见__细节级别__。
    See in Glossary
    Index
    :SpeedTree 使用细节级别 (LOD) 组。Unity 编辑器负责管理组之间的过渡,但如果放置的树永远不会靠近摄像机,或者需要在不编辑模型的情况下限制树的显示质量,则可以选择特定的 LOD 组。选项包括:
    • First:最高的 LOD,适用于靠近玩家的树。
    • Last:最低的 LOD,适用于远离玩家的树。
    • Custom:选择不同的级别。

    请参阅树细节级别 (LOD) 以了解更多信息。

  • Cast Shadows:用于树编辑器中的树。该选项不可编辑;它会列出在树的网格渲染器 (Mesh Renderer) > 光照 (Lighting) > 投射阴影 (Cast Shadows) 设置中选择的选项。

自定义树以进行绘制

自定义树的位置和特征。除了笔刷大小 (Brush Size)树密度 (Tree Density) 之外,这些设置既适用于大批量放置的树,也适用于笔刷绘制的树。

属性 功能
Brush Size 笔刷每次笔划下用树覆盖的区域的大小。
Tree Density 树之间必须保持的距离。这会限制笔刷单次笔划添加的树的数量。请注意,此限制是按笔刷笔划而不是按面积确定,因此在同一区域中重复笔刷笔划会产生更大的密度。另请注意,即使密度为 100,笔刷越大,树之间的距离也越远。
Tree Height 树高度随机化的范围。使用宽范围表示不同的外观,使用窄范围表示统一的外观。要指定值而不是范围,请禁用随机 (Random)。可能的值是树原始高度的 0.012 倍。
Lock Width to Height 默认情况下,树宽度相对于其高度锁定,因此始终会均匀缩放树。要指定宽度,请禁用相对高度锁定宽度 (Lock Width to Height)
Tree Width 树宽度随机化的范围。使用宽范围表示不同的外观,使用窄范围表示统一的外观。要指定值而不是范围,请禁用随机 (Random)。可能的值是树原始宽度的 0.012 倍。
Random Tree Rotation 如果您的树具有细节级别 (LOD) 组(例如,从 SpeedTree 导入的树),请使用随机树旋转 (Random Tree Rotation) 设置来帮助创建随机、自然的森林效果。如果要以固定旋转来放置树,请禁用此选项。
Color Variation 应用于树的随机着色量。仅当着色器读取 _TreeInstanceColor 属性时才有效。使用树编辑器创建的所有树都会读取 _TreeInstanceColor 属性,因为它们都使用内置着色器。SpeedTree 中的某些树可能无法读取该属性。
Tree Contribute Global Illumination 不可编辑;指示是否启用了树资源的光照 (Lighting) > 贡献全局光照 (Contribute Global Illumination) 选项。

大批量放置树

可以通过单个操作在整个地形瓦片上放置树。请参阅“自定义树以进行绘制”(见上文),了解有关在绘制之前自定义树的信息。

要将树放置在整个地形瓦片上,请执行以下操作:

  1. 按上述方式选择树资源。请注意,大批量放置会使用树 (Trees) 列表中的所有树,而不仅仅是突出显示的树。
  2. 选择大批量放置树 (Mass Place Trees)。此时将打开放置树 (Place Trees) 窗口。
  3. 输入要放置的树的数量。
  4. 要保留已有的树,请勾选保留现有的树 (Keep Existing Trees) 复选框。如果不勾选此复选框,Unity 会删除所有现有的树并将其替换为新树。

可以使用笔刷工具添加或删除大批量放置的树。

用笔刷绘制树

可以用笔刷在地形上绘制树。

要绘制树,请执行以下操作:

  1. 按上述方式选择树。
  2. 请参阅“自定义树以进行绘制”(见上文),了解有关笔刷设置和自定义树以进行绘制的信息。
  3. 使用笔刷在地形上绘制树。
  4. 如需删除,请执行以下操作:
    • 删除一个区域中的所有树:在绘制时按住 Shift
    • 仅删除在树 (Trees) 列表中选择的树:在绘制时按住 Ctrl

编辑树

可以在放置树之前或在绘制笔划之间编辑树的属性。例如,对于 SpeedTree 中的树,可以更改绘制地形不同部分时使用的 LOD 组。

要编辑树,请执行以下操作:

  1. 树 (Trees) 列表中,选择要编辑的树。
  2. 选择编辑树 (Edit Trees) > 编辑树 (Edit Tree)。此时将打开编辑树 (Edit Tree) 窗口。它的选项与添加树 (Add Tree) 窗口相同。

更新导入的树

如果在单独的 3D 建模应用程序中更改导入的树,则需要在绘制工具中刷新树以更新其在地形上的外观。

要更新树,请在地形瓦片的检视面板 (Inspector) 窗口中转到绘制树 (Paint Trees) > 树 (Trees) > 刷新 (Refresh)

注意:SpeedTree 中的树使用自己的着色器来制作风中移动的动画。Unity 编辑器仅将此着色器添加到 SpeedTree 导出的文件类型为 spmst8 的树中。如果使用不同的 3D 建模软件编辑树并将它们导出为 fbxobj 文件,Unity 编辑器会为它们分配内置着色器,因此风效果会丢失。要保留风动画,请始终使用 SpeedTree 编辑和重新导出 SpeedTree 树。

其他资源

向树添加碰撞
使用风区为树制作动画