1. 地形系统概述:Landscape系统介绍、地形创建流程、地形基本参数设置
各位同学好,我是老张。今天咱们正式进入地形系统的学习。说实话,地形是游戏场景的骨架,你场景做得再花哨,地形一塌糊涂,玩家第一眼就出戏。我在项目里见过太多因为地形参数没调好,导致整个场景重做的案例。所以这一章,咱们把基础打扎实。
1.1 Landscape系统到底是什么?
Unreal的Landscape系统,说白了就是一个专门用来做大范围地形的工具。它不是普通的静态网格体,而是一个高度可编辑的地形网格。你想想看,如果用普通模型做一座山,那得多少面数?Landscape用了一种叫「高度图」的技术,用灰度图来控制地形起伏,效率高得多。
我个人习惯把Landscape理解成一块巨大的画布。你可以在上面「画」山、「画」谷、「画」河流。而且它自带LOD(细节层次)系统,远处自动降低精度,近处保持细节。嗯,这一点在开放世界项目里特别重要。
核心概念:Landscape = 高度图 + 材质层 + 植被系统。三者缺一不可。
1.2 地形创建流程:三步走
创建地形其实不复杂,我总结了三步:
- 新建地形:在模式面板选择「地形模式」,点击「创建」。
- 设置参数:调整尺寸、分辨率、分段数。
- 雕刻地形:用笔刷工具推拉出山体、凹陷。
听起来简单对吧?但坑都在参数里。我曾经有个项目,美术同学一上来就选了最大尺寸,结果地形卡得编辑器都打不开。所以参数设置这块,咱们得细说。
1.3 地形基本参数设置
创建地形时,你会看到一堆参数。别慌,我一个个讲清楚。
| 参数名称 | 作用 | 我的建议 |
|---|---|---|
| 总体尺寸 | 地形的长宽范围(米) | 新手先用 1009x1009,别贪大 |
| 分段数量 | 地形被切成多少块 | 默认 1x1 就行,后期再调 |
| 每个分段的顶点数 | 控制地形精度 | 建议 127x127,平衡性能与细节 |
| 整体分辨率 | 最终顶点总数 | 自动计算,不用手动改 |
这里有个关键点:尺寸必须是 2 的幂次方加 1。比如 127、255、511、1009。为什么?因为Unreal内部用高度图处理,这个格式最省性能。我刚开始学的时候不知道,设了个1000x1000,结果地形边缘全是锯齿,折腾了一下午才找到原因。
小技巧:如果你不确定参数,直接用「新建地形」的默认值。默认的 1009x1009 配合 127x127 分段,足够做一个小型开放场景了。
1.4 地形材质与层
地形建好了,光秃秃的肯定不行。我们需要给它上材质。Landscape的材质系统有点特殊,它用的是「层」的概念。
你可以把地形材质想象成一块千层饼。底层是泥土,上面铺一层草地,再上面盖一层石头。每一层都可以独立控制高度、角度、遮罩。我在做森林场景时,就用了5层材质:泥土、草地、落叶、苔藓、碎石。效果非常自然。
创建地形材质的基本步骤:
- 新建一个材质,材质域设为「Landscape」。
- 添加 LandscapeLayerBlend 节点。
- 为每个层创建对应的纹理采样。
- 在材质中暴露「Layer Blend」参数。
// 材质蓝图示例(简化版)
// 1. 创建 LandscapeLayerBlend 节点
// 2. 添加两个层:Layer_Grass, Layer_Rock
// 3. 每个层连接对应的 TextureSample
// 4. 输出到 Base Color, Normal, Roughness
注意:地形材质不要用太多层。超过4层就会明显影响性能。我曾经为了追求细节,堆了8层,结果帧率直接掉到20。后来用材质函数优化,才救回来。
1.5 避坑指南:我踩过的雷
做地形这些年,我总结了几条血泪教训:
- 分辨率别贪高:127x127 的分段已经能表现很细腻的地形了。再高的话,编辑时卡顿,运行时也卡。
- 尺寸别乱改:地形创建后,尺寸就不能改了。想改只能重建。所以一开始就想好你要做多大的场景。
- 备份高度图:我习惯每雕刻完一个阶段,就导出高度图备份。有一次电脑蓝屏,地形文件损坏,还好有备份,不然一周白干。
- 注意世界坐标:地形默认在原点。如果你场景里有其他物体,记得把地形对齐到合适位置。
1.6 本章小结
好了,这一章的内容就这些。咱们回顾一下:
- Landscape是专门做大范围地形的系统,用高度图控制起伏。
- 创建地形分三步:新建、设参、雕刻。
- 参数设置要记住 2 的幂次方加 1 这个规则。
- 材质用层系统,建议不超过4层。
下一章,我会带大家实际动手,创建一个完整的地形,并给它铺上材质。到时候咱们边做边聊,有什么问题随时问。嗯,今天就到这里,下课。