使用Terrain Editor
Tutorial
·
Beginner
·
+0XP
·
60 mins
·
(120)
Unity Technologies

利用Unity Terrain Editor可创建详细逼真的地形。借助系统提供的Terrin工具集,您可以轻松高效地设计优化景观。在本教程中,您将学习如何使用特定工具和技术来创建并自定义地形,包括景观塑造、添加树木以及使用画笔增强地形细节等。完成本教程学习后,您对于Terrain Editor的强大功能和灵活性,以及如何轻松地为项目创建自定义地形,将会有较深入的了解。
Languages available:
1. 项目设置准备
首先,请在新建的Universal Render Pipeline (URP)项目中创建空白场景。您可以使用Terrain Editor,但需要采用3D、HDRP或URP项目模板。请注意,Terrain Editor不适用于2D项目模板。建议您使用自己保存的项目进行练习,也可以从Unity Hub中创建新的URP项目并按本教程操作。但首先应创建新的Terrain GameObject。
2. 创建地形
要在Unity中使用Terrain Editor,您首先需要创建Terrain GameObject。
1.从顶部下拉菜单中选择:“GameObject”>“3D Object”>“Terrain”。这会将新的Terrain GameObject添加到场景中。

The newly added Terrain in the Scene view.
创建地形也会将相应的Terrain Asset添加到“Project”窗口。

The New Terrain Asset in the Project window
您的地形是一大块平面。在“Hierarchy”窗口中选中Terrain GameObject后,“Inspector”中将出现Terrain工具。

The Terrain settings and tools in the Inspector window
Inspector中“Terrain”组件的五个图标工具栏提供了不同的选项,允许您创建相邻地形,雕刻景观特征并在地形上绘制纹理贴图。您可以添加树木和草、花及岩石等其他细节。您还可更改选定地形的常规设置。
3. 创建相邻地形
默认的地形是一块方形网格,长宽均为1000米。 如果您想使用平铺网格系统扩展地形,则可以使用“Create Neighbor Terrains”按钮进行扩展。
1.首先选择“Create Neighbor Terrains”按钮,即“Inspector”窗口中“Terrain”工具栏中的第一个按钮。接下来,将鼠标悬停在“Scene”窗口中,此时会出现一个新网格,显示4个象限,代表地形的东南西北四个方向。

The Create Neighbor Terrains button showing the outlined quadrants for the single Terrain.
2.在“Scene”窗口中,选择任何相邻象限轮廓以添加相邻地形。每新建一个地形,Hierarchy中都会随之增加相应的GameObject。

Adding additional neighbor Terrains.
利用这项技术,您可以创建大量地形贴图,根据项目需求覆盖或宽或窄的区域。在本教程中,相邻地形设置为2 x 2(或4000 x 4000米)的均匀网格。

Four neighboring tiles set to a grid of 2x2.
4. 雕刻地形特征
Paint Terrain工具提供大量功能,从雕刻到平滑处理,再到应用其他效果。接下来详细了解Paint Terrain工具。
1.选择Paint Terrain工具,即“Terrain”工具栏中的第二个按钮。从下拉菜单中选择:“Raise or Lower Terrain”可看到可用选项列表。可通过此下拉菜单使用各种绘画和雕刻工具。我们首先看看“Raise or Lower Terrain”工具选项。

Accessing the Paint Terrain tool menu options.
在“Scene”窗口中,您将看到一个圆柱体悬停在鼠标光标所在位置。这是可启用地形雕刻功能的默认画笔。

The default cylindrical brush cursor which will raise or lower the Terrain.
2.在“Scene”窗口中启用圆柱形画笔后,单击鼠标左键选中画笔,然后拖动以抬高地形。您立刻就会注意到,画笔非常敏感,因此地形高度迅速上升。您可以在后续步骤中微调画笔,但现在请在单击鼠标左键时按住Shift键,即可使地形重新降到地面高度。

The cylindrical brush raises and lowers the Terrain with extreme sensitivity.
3.现在微调画笔设置,调低画笔力度。在“Inspector”中,将“Opacity”降低为15。这会影响画笔力度,减慢利用鼠标雕刻时抬升地形的速度。此外,请将“Brush Size”增加到50。现在,“Scene”窗口中的画笔光标外观改变,呈现一个更加宽扁的圆形。用鼠标点击“Paint Terrain”工具并沿地形拖动,继续雕刻地形。现在可以有效地雕刻和抬高地形,并进行更精确的控制。

Reducing the Opacity of the brush, and increasing the Brush Size.
4.接下来,我们试着改变画笔形状。从Inspector的内置画笔调色盘中选择另一种画笔,尝试使用其他画笔形状进行雕刻。一定也要尝试一下调整“Opacity”和“Brush Sizes”设置

Sculpting the terrain with a unique built-in brush shape.
5.尝试组合不同的画笔形状,利用不同的“Brush Size”和“Opacity”雕刻出造型独特的山脉。技巧提示:在雕刻时使用键盘上的括号键( [ ] )可加大或缩小画笔大小。

Sculpting the Terrain with various combinations of brush shapes and sizes.
6.要将地形雕刻为指定高度,请选择“Terrain Brush”下拉菜单,然后选择“Set Height”。接下来,将“Height”值设为55(或近似高度值)。选择画笔形状、大小和透明度,并将光标放在场景中。接下来,点击并在地形上拖动以雕刻地形特征。该地形的地势平缓,海拔限制在特定的“Set Height”值。这在创建峡谷、河床或岩层时特别有用。

Sculpting the Terrain to a specific height using the Set Height option.
7.要修整地形的粗糙边缘,或使地形线条柔和,请选择“Terrain Brush”下拉菜单,然后选择“Smooth Height”。无论使用哪种画笔雕刻,地形的崎岖边缘都会变得平滑。增加“Opacity”以提高雕刻平滑度。

Sculpting the Terrain to a specific height using the Set Height option.
8.要使用Stamp Terrain工具调整地形,请选择“Terrain Brush”下拉菜单,然后选择“Stamp Terrain”。使用Stamp Terrain工具时,无论使用哪种画笔雕刻,地形都可达到“Stamp Height”属性中指定的设置高度,但会保留现有地形的高海拔特征,从而将这两种高度充分融合。加大“Stamp Height”值,将光标放在场景中,然后单击鼠标应用图章。

Sculpting the Terrain to a specific height with the Stamp Terrain tool which combines topography features.
5. 地形纹理概述
您可以使用Paint Texture工具在地形上绘制细致逼真的纹理。借助Paint Texture工具,使用材质层即可直接在地形表面绘制纹理。还可以组合构建多个材质层,获得更加精细的纹理。因为地形可能很大,所以通常将材质纹理制成无缝边缘贴图,这样可以在景观范围内重复绘制这种纹理图案,而无需使用大型图像材质。为了给地形设置一些样本纹理材质,您需要自行准备图像纹理,或下载样本材质并放入项目的Assets文件夹中。接下来我们将使用一些可从Asset Store下载的材质。
6. 样本纹理准备
可通过多种方法将材质纹理资产放入项目中。在本教程中,我们已经从Asset Store下载了样本纹理,使用的是大家熟悉的“Standard Assets”。尽管一些Standard Assets文件夹可能非常适合我们的项目,但还有一些其他项与我们的需求无关。因此,您只需导入与地形相关的选定文件夹即可。
1.从顶部下拉菜单中选择,打开“Asset Store”窗口:“Window”>“Asset Store”。
2.搜索并选择“Standard Assets”,然后选择“Import”。

Importing the Standard Assets from the Asset Store window.
3.此时将出现“Import Unity Package”弹出窗口。折叠所有三角形,然后选择“None”以取消选中所有复选框。接下来,仅选中“Environment”文件夹的 “SpeedTree”和“TerrainAssets”文件夹,然后选择“Import”。

Importing only the selected Environment Folder.
现在您已准备就绪,可以使用样本“Environment Assets”,包括地形纹理。
7. 绘制地形纹理
现在开始使用地形图层在地形上绘制纹理。
1.在“Hierarchy”窗口中选中“Terrain”,在“Inspector”中选择“Paint Terrain”画笔工具,然后将下拉菜单选项设置为“Paint Texture”。选择“Edit Terrain Layers”按钮,然后选择“Create Layer”。

Creating a Terrain Layer.
2.此时会出现“Select Texture2D”弹出窗口,其中包含项目中保存的完整2D Asset集合。在搜索字段中输入“albedo”并搜索,就会看到一组地形2D样本表面纹理。选择标记为“GrassRockyAlbedo”的纹理。

Selecting the GrassRockyAlbedo surface texture in the Select Texture2D window.
3.现在“GrassRockyAlbedo”纹理已作为Terrain Layer均匀添加到选定地形中。

The Terrain Layer applied uniformly across the selected Terrain tile.
4.为了向其他相邻地形象限应用相同的Terrain Layer,首先在“Hierarchy”窗口中选择地形贴图“GameObject”,在Inspector中选择“Edit Terrain Layers”按钮,然后选择“Add Layer”。

Adding a Terrain layer to a neighboring Terrain tile.
5.此时将显示“Select TerrainLayer”弹出窗口。在各层中进行选择,确定哪一层具有相关的表面纹理,然后选择相应层。请注意,这里仅为层分配了一个表面纹理,您可通过本教程中的后续步骤为层添加其他纹理。

Selecting the Terrain Layer with our surface texture.
6.继续为其余的地形添加Terrain Layer。

Applying the Terrain Layer to each of the remaining Terrain tiles.
7.放大地形,从而更清楚地查看纹理细节。请注意,您现在应能看出纹理中的重复平铺图案。

The GrassRockyAlbedo surface texture applied to the Terrain, repeating in a tiled pattern.
8.现在应用其他表面纹理,然后用这些纹理向地形添加更多细节。重复之前的步骤,首先选择“Edit Terrain Layers”按钮,然后选择“Add Layer”菜单,最后添加其他表面纹理,包括“GrassHillAlbedo”、“CliffAlbedo”和“SandAlbedo”纹理。

Adding multiple Terrain Layers, containing additional surface textures.
9.选择其他Terrain Layer,尝试向地形绘制表面纹理组合。确保调整“Brush Siz”和“Opacity”,实现更加细致独特的融合效果。

Painting a blend of multiple surface textures.
8. 使用树和细节画笔
Tree工具能够识别SpeedTree(IDV Inc.推出的第三方产品),该产品可提供预构建树资产和建模软件。您可利用这些画笔在地形上直接绘制树、树叶、草和岩石,不需要单独放置各个对象模型。SpeedTree Asset在Standard Assets中,之前已导入您的项目。或者,也可去Asset Store查找,包括其他已上线销售的树木和植被资源包。
9. SpeedTree设置准备
要在项目中免费试运行SpeedTree模型,您可以从Asset Store下载并安装免费的SpeedTrees包,然后使用Package Manager将这些资产直接导入项目中。
1.打开Web浏览器,在Unity Asset Store中搜索“Free SpeedTrees Package”,然后选择“Add to My Assets”按钮。

Selecting the Add to My Assets button from the Asset Store in your web browser.
2.在Package Manage中,首先选择“Download”按钮,完成下载后再选择“Import”按钮。最后,在“Import Unity Packages”弹出窗口中再次选择“Import”按钮,将SpeedTrees Package保存到项目中。

Importing the Free SpeedTrees Package from the Package Manager window.
在地形上绘制SpeedTrees之前,您首先需要重新生成SpeedTree材质,这样才能用于Universal Render Pipeline (URP)项目。只需快速调整即可轻松完成。
3. 在“Project”窗口中导航至“Assets”文件夹内的“Free_SpeedTrees”文件夹。接下来,选择第一个名为“Broadleaf_desktop.spm”的树资产。 在Inspector中选择“Apply & Generate Materials”按钮。

Selecting the Apply & Generate Materials Button in the Inspector.
4. 重复上述步骤,为其余的以下名称的树重新生成材质:Broadleaf_Mobile、Conifer_Desktop和Palm_Desktop。现在可以开始在地形中应用这些树。
10. 使用Paint Trees工具
Paint Trees画笔工具的使用方式与Paint Terrain类似,但是您必须首先定义树网格才能使用画笔。
1. 在“Hierarchy”窗口中选中“Terrain”,选择“Paint Trees”工具,即“Terrain”工具栏中的第三个按钮。选择“Edit Trees”按钮,然后从下拉菜单中选择“Add Tree”。

Adding a tree mesh to the Paint Trees tool.
2. 此时将显示“Add Tree”弹出窗口。选择“Tree Prefab”字段右侧的“Object Loader”圆圈按钮,选择树模型。

Selecting the Object Loader circle button in the Add Tree window.
3.此时将显示“Select GameObject”弹出窗口。选择标记为“Broadleaf_Desktop”的树网格,然后在“Add Tree”窗口中选择“Add”按钮,将树模型加载到“Paint Trees”画笔工具中。

Adding the Broadleaf_Desktop tree mesh to the Paint Trees tool.
4.您现在可以在地形上绘制树了。调整“Brush Size”和“Tree Density”设置,确定树木放置的密度或稀疏程度。此外,勾选复选框以启用“Random Tree Height”,然后调整滑块范围以扩大或缩小随机性范围。始终勾选“Random Tree Rotation”,确保每棵树都按随机旋转角度放置,最后,调整滑块以提高或降低树的Color Variation。将光标放在“Scene”窗口的地形上,点击并拖动鼠标,从而有选择地将树纹理绘制到地形上。绘制时按住Shift键可删除树木。

Using the Paint Trees tool to place trees on your Terrain.
5.通过调整“Brush Size”和“Tree Density”值,练习绘制小树林或大片森林。

Applying trees combining different densities and sizes
11. 绘制细节
Paint Details画笔工具的使用方式与Paint Trees和Terrain画笔工具类似,但是您同样必须首先定义详细的网格才能使用画笔。在此例中,您将刻画草的细节。
1. 在“Hierarchy”窗口中选中“Terrain”,选择“Paint Details”工具,即“Terrain”工具栏中的第四个按钮。选择“Edit Details”按钮,然后从下拉菜单中选择“Add Grass Texture”。

Adding a grass texture to the Paint Details tool.
2. 此时将显示“Add Grass Texture”弹出窗口。选择“Detail Texture”字段右侧的“Object Loader”圆圈按钮,选择草纹理。

Selecting the Object Loader circle button in the Add Grass Texture window.
3. 此时将显示“Select Texture2D”弹出窗口。在搜索字段中输入“grass”,然后选择标记为“GrassFrond01AlbedoAlpha”的草网格。接下来,在“Add Grass Texture”窗口中选择“Add”按钮,从而将草纹理加载到“Paint Details”画笔工具中。

Adding the GrassFrond01 texture to the Paint Details tool.
4. 现在就可以在地形上绘制草纹理了。调整“Brush Size”和“Target Strength”设置,设置草纹理的大小和密度。将光标放在“Scene”窗口的地形上,点击并拖动鼠标,从而有选择地将草纹理绘制到地形上。绘制时按住Shift键可删除细节。

Using the Paint Details tool to paint grass texture on your Terrain.
12. 地形设置工具
利用“Terrain Settings”工具,可以检查地形特征并进行调整。
1. 在“Hierarchy”窗口中选中“Terrain”,选择“Terrain Settings”工具,即“Terrain”工具栏中的第五个,也是最后一个按钮。

Inspecting the Terrain using the Terrain Settings tool.
虽然本教程不会详细介绍该部分内容,但您会看到还有一些其他设置也可用于调整和修改地形,包括“Basic Terrain”、“Tree & Detail Objects”、“Wind Settings”、“Mesh Resolution”、“Holes Settings”、“Texture Resolutions”和“Lighting”等类别。
13. 后续步骤
Terrain Editor是一项功能强大的工具,方便您迅速创建广阔、细致、复杂且可配置的地形景观。通过实践,您可以轻松地雕刻丘陵、山脉、高原、山谷等,实现富有创意的地形设计。可尝试自我挑战,通过雕刻创建独特多样的地形地貌,并绘制添加更多纹理细节。无需繁复的工作,即可轻松打造出栩栩如生且极具创意的景观。