Godot从入门到精通基础篇 第五章 使用Godot的内置地形生成器创建室外场景

Coding Alan 2年前 (2022-09-07) 1243次浏览 0个评论 扫描二维码

本章中,我们会开始使用Godot的内置包创建一个户外场景,并使用不同类型的车辆在其中穿行。

完成本章学习后,读者可以:

  • 通过模板创建实景
  • 创建地形并修改生成山丘和山谷

执行计划

本章中我们会创建一个岛屿,可在其中行进。所以执行计划很简单,步骤如下:

  • 导入要使用的模板绘制环境的轮廓。
  • 使用模板创建地形。
  • 为模板上色。
  • 创建山丘和山谷。
  • 添加树木及其它类型的植被。
  • 使用箱体添加建筑物。

下图对完成本章学习后的一个预览截图。

TODO

小岛轮廓

本章我们会创建一个小岛。和前一章一样,我们会使用一张在Photoshop创建的图片定义轮廓和主特性。

Godot从入门到精通基础篇  第五章 使用Godot的内置地形生成器创建室外场景

可以看到其轮廓非常粗糙,但表现出了小岛的外形。读者可能会注意到:

  • 环绕小岛的水域。
  • 占岛大部分的沙滩。
  • 棕色表示路径的区域。
  • 标识树木位置的绿点。
  • 表示建筑物位置的黑框。
  • 小岛中间示意湖泊的蓝圈。

这张图片为500×500像素,对应关系大约为1等于Godot中的一米。如果希望创建自己的轮廓,可以使用这些设置轻松完成。地图不必非常详细,因为稍后我们会了解到,我们会进行着色并删除(或擦除)其中的一些元素。当前重要的是需要有一个可在Godot中直接使用的轮廓。

下载所需材料

本系列文章及相关代码文件均会开源至 Github,基础篇的资源文件地址为https://github.com/iTranslateX/godot/tree/main/foundation/resources

导入所需资产

此时我们可以开始制作小岛了。前面提到我们会添加树木及模拟小岛形状的地形。为此需要导入一些包来完成这些任务。这些包中包含有地形资产。

  • 在Godot中,问你那一个场景(Scene | New Scene)。
  • 通过点击顶部菜单中的AssetLib打开AssetLib窗口。
    Godot从入门到精通基础篇  第五章 使用Godot的内置地形生成器创建室外场景
  • 在搜索框中输入terrain,选取(即双击)名为Heightmap terrain的资产。
    Godot从入门到精通基础篇  第五章 使用Godot的内置地形生成器创建室外场景
  • 在接下来的窗口中点击Download按钮。
    Godot从入门到精通基础篇  第五章 使用Godot的内置地形生成器创建室外场景
  • 在库下载完成后再点击Install按钮。
    Godot从入门到精通基础篇  第五章 使用Godot的内置地形生成器创建室外场景
  • 安装结束会在弹窗中提示成功。
    Godot从入门到精通基础篇  第五章 使用Godot的内置地形生成器创建室外场景
  • 安装完成后,就会在文件系统窗口中看到addons文件夹。
    Godot从入门到精通基础篇  第五章 使用Godot的内置地形生成器创建室外场景

下面需要启用这个插件,进入Project | Project Settings | Plugins通过点击Enable选项进行启用,如下图所示。

Godot从入门到精通基础篇  第五章 使用Godot的内置地形生成器创建室外场景

启用好插件后,我们可以就可以开始创建地形了。

  • 通过顶部菜单的3D选中3D视图/工作空间。
    Godot从入门到精通基础篇  第五章 使用Godot的内置地形生成器创建室外场景
  • Scene栏中,点击3D Scene,这会新建一个Spatial节点。
  • 按下快捷键CTRL/CMD+A(新增节点),在搜索框中输入terrain并在列表中选择HTerrain类型的节点。
    Godot从入门到精通基础篇  第五章 使用Godot的内置地形生成器创建室外场景
  • 这便会在场景树中创建一个名为HTerrain的对象。
    Godot从入门到精通基础篇  第五章 使用Godot的内置地形生成器创建室外场景

可以看到HTerrain节点右侧出现了一个警告标识。为存储地形所生成的数据,我们需要新建一个文件夹与新地形进行关联,执行操作如下:

  • 使用文件系统栏,新建文件夹:在res://上右击,在上下文菜单中选择New Folder,为其命名,比如使用terrainData
    Godot从入门到精通基础篇  第五章 使用Godot的内置地形生成器创建室外场景
  • 在场景树中选择HTerrain节点。
  • 使用检查器,找到HTerrain版块中的Data Directory
  • 点击Data Directory属性右侧的文件夹图标。
    Godot从入门到精通基础篇  第五章 使用Godot的内置地形生成器创建室外场景
  • 选择刚刚创建的文件夹(如terrainData),需要使用该文件夹存储地形数据。
    Godot从入门到精通基础篇  第五章 使用Godot的内置地形生成器创建室外场景
  • 点击Select This Folder按钮。

完成以上操作后,就可以为地形添加山丘和山谷了。

如果在场景树中选中了HTerrain对象,就会看到屏幕下方的窗口中有一些可修改地形的工具,如下图所示。

Godot从入门到精通基础篇  第五章 使用Godot的内置地形生成器创建室外场景

该窗口中包含很多功能,可以对地形应用纹理以及减少或提升其中的区域。

此时我们已拥有所有用于创建小岛的资产,只差一个轮廓地图。下面就进行导入:

  • 切换至文件系统(如浏览器或访达)。
  • 找到一开始下载的资源包目录。
  • 选择名为gameMapOutline.png的文件。
  • 将其拖拽到Godot的文件系统栏中。

创建小岛的轮廓

现在已经有了大部分资产。我们来创建地形:

  • 在场景树中选中HTerrain
  • 点击底部窗口中的Edit按钮。
    Godot从入门到精通基础篇  第五章 使用Godot的内置地形生成器创建室外场景

在新窗口中,点击屏幕左侧的+按钮创建新纹理。

Godot从入门到精通基础篇  第五章 使用Godot的内置地形生成器创建室外场景

  • 这会创建名为Texture 0的纹理。
  • 接下来点击位于Albedo区下方的Load按钮,
    Godot从入门到精通基础篇  第五章 使用Godot的内置地形生成器创建室外场景
  • 在新窗口中,选择刚刚导入的纹理gameMapOutline.png并点击Open
    Godot从入门到精通基础篇  第五章 使用Godot的内置地形生成器创建室外场景
  • 应该会在接下来的窗口中看到已选择了该纹理,此时可点击Close按钮。
    Godot从入门到精通基础篇  第五章 使用Godot的内置地形生成器创建室外场景

此时查看视窗,会发现该纹理在重复了多次。

Godot从入门到精通基础篇  第五章 使用Godot的内置地形生成器创建室外场景

但我们只想要它展示一次,所以需要修改纹理的平铺方式:

  • 选中HTerrain对象。
  • 在检查器中,找到Script Variables分区,将Rendering | Shader Params | U Ground UV Scale属性设置为500
    Godot从入门到精通基础篇  第五章 使用Godot的内置地形生成器创建室外场景
  • 完成以上操作后,应该会看到地形仅应用了一次该纹理。
    Godot从入门到精通基础篇  第五章 使用Godot的内置地形生成器创建室外场景

已经有了轮廓,我们可以开始抬升或降低地形中的各部分。这时需要使用视窗右上角的一些工具。
Godot从入门到精通基础篇  第五章 使用Godot的内置地形生成器创建室外场景

为地形添加深度

至此,我们成功添加了小岛的轮廓。下面该为地形添加立体效果了。

请执行如下步骤:

  • 选中HTerrain节点。
  • 使用顶部工具栏,选择Lower Height工具(左起第二个)。
    Godot从入门到精通基础篇  第五章 使用Godot的内置地形生成器创建室外场景
  • 可以切换为更方便的视图,来通过y轴查看场景:在视窗中找到坐标轴工具、点击y轴。视图会发生相应的变化。
    Godot从入门到精通基础篇  第五章 使用Godot的内置地形生成器创建室外场景
  • 还可以连续使用鼠标中键和平移工具(SHIFT+拖拽)放大地形的右下角。
    TODO
  •  在视窗中,拖拽蓝色区域,必要的话可将笔刷修改为11(以覆盖更大的区域)。这么做时,会发现大片地形消失了,如下图所示。
    TODO
  • 持续操作直至覆盖了小岛旁的大部分水域。

 

添加水域

使用现实纹理绘制小岛

添加湖泊和高山

在3D环境中添加汽车

小结

 

更多内容:Godot从入门到精通系列文章

喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址