Godot从入门到精通基础篇 第三章 创建并导出第一个场景

Coding Alan 2年前 (2022-08-28) 1380次浏览 0个评论 扫描二维码

本章中我们会创建首个场景,然后对基础形状比如箱体进行添加、合并及应用纹理。本章讲解如何使用基础变换以及应用于对象。还会讲解如何管理及分组对象。

学完本章,读者可以:

  • 创建场景
  • 添加基础对象
  • 为对象创建、应用颜色和纹理
  • 分组形状
  • 使用快捷方式搜索指定的对象或资源
  • 导出首个场景

新建项目及场景

上一章中已经讲解了用户界面中的主要功能,下面就来创建一个可进行导航的简单场景并在其中添加一些具有纹理和颜色的对象。学完这一节后,读者可以:

  • 向场景添加基础对象
  • 为对象应用基础纹理和颜色
  • 变换对象(如移动、缩放和旋转对象)
  • 在场景中添加人物控制器,让其可以在平面上行走
  • 添加及配置光照
  • 分组对象及一次对多个对象应用属性

在场景中添加及合并简单内置对象

稍后我们会看到,可以使用一组基础形状(如圆柱、球形和箱形)、光照(如平行光或点光)、相机和其它内置资源(如人物控制器)创建游戏环境。一旦在当前场景中添加了这些对象后,就可以通过Godot修改它们的属性了。

首先配置场景来创建3D内容。

  • 在场景树标签中,应该看到一条要求创建根节点的消息。
    Godot从入门到精通基础篇 第三章 创建并导出第一个场景
  • 点击3D Scene就会创建一个3D场景。

在选择该选项后,场景树中应该会显示一个名为Spatial的节点。该节点就是场景中其余节点的基础。

接下来创建一个用作地面的立方体。

  • 右击名为Spatial的节点。
    Godot从入门到精通基础篇 第三章 创建并导出第一个场景
  • 在上下文菜单中,请选择Add Child Node项。
    Godot从入门到精通基础篇 第三章 创建并导出第一个场景
  • 在新窗口中的搜索框中输入单词box。
    Godot从入门到精通基础篇 第三章 创建并导出第一个场景
  • (通过双击)选取名为CSGBox的节点类型。
    Godot从入门到精通基础篇 第三章 创建并导出第一个场景
  • 这默认会在(0,0,0)处创建一个大小为2的箱体。也就是说该对象的长宽高均为2。
  • 请将该立方体重命名为myCube,重命名的方法有(1)在场景树中选中然后同时按下CTRL+ENTER,或(2)在场景树中选中然后双击它,或(3)在场景树窗口中右击该对象并在上下文菜单中选择Rename选项。

重命名好立方体后,可以修改一些属性来查看外观的变化。例如:

  • 在检查器窗口中,找到名为Transform属性,将缩放(Scale)属性的x,y和z修改为2,查看立方体的大小。

注意可以使用检查器窗口顶部的搜索框来查找具体的属性。

  • 修改其y旋转属性为45度(即围绕y轴的旋转度数),查看旋转的变化。注意对于这些参数,可以使用检查器窗口在对应的文本框中修改其值,或点击参数拖拽鼠标修改:这样会增加或减少相应字段的值。这通常是调整对象属性更简单的方式。

现在读者习惯了使用检查器修改立方体转换参数,接下来看观察对象和场景修改属性的几种方式。在视窗左上角有一个工具栏,如下图所示。

Godot从入门到精通基础篇 第三章 创建并导出第一个场景

工具栏中包含了很多工具,其中有三个按钮为快捷方式(从左到右分别是)(1) 移动当前选中对象、(2)旋转当前选中对象以及(3)缩放当前选中对象。这三个按钮也可通过快捷键W、E和R进行使用。

在变换对象之前,我们可以试着平衡和旋转视图:

  • 旋转对象:按下鼠标中键然后拖拽鼠标,可以看到会绕着所选中对象旋转视图。
  • 平移视图:按下鼠标中键和SHIFT键,再拖拽鼠标,可以平移视图。
  • 聚焦当前选中对象的视图:按下F键,会发现视图会重新聚焦于当前所选中的对象。
  • 缩放:使用鼠标滚轮前后滚动进行缩小和放大。

在对立方体进行变换之前,我们先来看一个有用的坐标轴工具(gizmo)。这个工具见下图,位于场景视图的右上角,可用于从不同的坐标轴和视角查看场景。

Godot从入门到精通基础篇 第三章 创建并导出第一个场景

在坐标轴工具中点击x、y或z轴,可看到相应坐标轴的场景。我们来操作一下:

  • 连续点击坐标轴工具的x、y和z轴,查看视图变化。
  • 注意通过点击左上角的透视按钮,可以在透视和正交(或对等轴)视图之间切换。
    Godot从入门到精通基础篇 第三章 创建并导出第一个场景
  • 调整视图,可以按下鼠标滚轮、拖拽鼠标,就可以相应地旋转对象了。

讲解完以上下知识,让我们回到左上角工具栏,测试那三个用于转换节点的按钮。

首先试用移动工具:

  • 从工具栏中选取移动工具或使用相应的快捷键W。
  • 可以看到立方体有三个箭头。这些箭头是拖拽的手柄,让选中对象在特定的方向上(即延x、y或z轴)移动。

连续拖拽红绿蓝手柄时,可以看到对象会延相应坐标轴移动。

Godot从入门到精通基础篇 第三章 创建并导出第一个场景

下面再试用旋转工具:

  • 在场景树中选中myCube对象,按下F键将视图聚焦于该对象上。
  • 从工具栏中选取旋转工具(左起第三个图标)或使用相应的快捷键E

此时可以看到在该对象周围有红绿蓝三个圈。这些手柄用于拖拽延指定坐标轴(x、y或z轴)旋转所选对象。

Godot从入门到精通基础篇 第三章 创建并导出第一个场景

手柄的颜色表示对象围绕旋转的坐标轴。例如,通过拖拽绿色手柄,可以延y轴旋转对象。同样蓝色和红色手柄分别用于延z和x轴旋转。

在拖拽这些手柄时,我们可以看到检查器中的对应旋转属性也发生了改变。

下面来试用缩放工具:

  • 通过工具栏选择缩放工具(左起第四个图标)或使用相应的快捷键R
  • 应该会看到在对象周围有红绿蓝线及手柄。拖拽这些手柄可延指定坐标轴(即x、y或z轴)缩放所选对象。

Godot从入门到精通基础篇 第三章 创建并导出第一个场景

手柄的颜色表示对象缩放所延的坐标轴。例如,通过拖拽绿色手柄,可延y轴缩放对象。蓝色(z轴)和红色(x轴)手柄也类似。同时注意拖拽中间空白区时,会进行统一变形。也就是说,缩放在3条轴(x、y和z轴)上是一致的。

至此,我们对一个新的立方体进行了多次转换,可能会希望重置其属性为初始创建时的。可以使用平移、旋转和缩放属性右侧的圆形箭头来实现,参见下图。

Godot从入门到精通基础篇 第三章 创建并导出第一个场景

更多有关如何使用Godot软件的信息及小贴士,可以查阅Godot的官方文档。

添加颜色和纹理

这时在场景中就有了一个箱体,可以通过视窗查看,那么在场景中再加两个对象就更好了:一个是可以预览场景的摄像机,另一个是光照。

在添加颜色和纹理之前,我们将箱体重置为原始大小,并将缩放属性设置为(1,1,1):

  • 在场景树中选择箱体。
  • 使用检查器,定位到转换属性。
  • 设置平移属性为(0,0,0)、缩放属性为(1,1,1)。
    Godot从入门到精通基础篇 第三章 创建并导出第一个场景
  • 重置属性也可通过点击属性右侧的回旋箭头,如下图所示。
    Godot从入门到精通基础篇 第三章 创建并导出第一个场景

重置完箱体的转换属性后,下面来加摄像机:

  • 在场景树中选中Spatial
  • 右击然后在上下文菜单中选择Add Child Node。也就是说新增的摄像机为Spatial根节点的子节点。
  • 在新窗口中,输入camera搜索然后从列表中选中(即双击)类型为Camera的节点。
  • 这时就会在场景树中新建一个Camera节点。
    Godot从入门到精通基础篇 第三章 创建并导出第一个场景
  • 添加好摄像机后,视图中会出现下图所示的预览选项。
    Godot从入门到精通基础篇 第三章 创建并导出第一个场景
  • 这一选项可借助摄像机镜头来预览场景。
  • 点击Preview图标左侧的复选框,应该会显示下图所示的预览。

Godot从入门到精通基础篇 第三章 创建并导出第一个场景

游戏的效果就是这样。现在我们在预览窗口中只能看到一个蓝色的天空,这是因为摄像机并未指向我们之前所创建的箱体。通过屏幕右侧的检查器窗口,也可以看到摄像机的各个属性。

Godot从入门到精通基础篇 第三章 创建并导出第一个场景

其中可以看到摄像机所处的位置(x=0,y=0,z=0)以及它尚未进行旋转。

注意可通过选择View | 2 ViewPorts或按下CMD/CTRL + 2快捷键同时显示在视窗和一场景摄像机中的视图,参见下图。

Godot从入门到精通基础篇 第三章 创建并导出第一个场景

Godot从入门到精通基础篇 第三章 创建并导出第一个场景

下面为场景添加光照:

  • 取消预览图标左侧复选框的勾选关闭预览模式。
    Godot从入门到精通基础篇 第三章 创建并导出第一个场景
  • 为Spatial节点新建一个类型为DirectionalLight的子节点:在Spatial节点上右击,在上下文菜单中选择Add Child Node,在搜索框中输入directionallight,在菜单中选择DirectionalLight类型。
    Godot从入门到精通基础篇 第三章 创建并导出第一个场景
  • 将其重命名为myLight

完成以上操作后,我们会更改光照的方向让光位于立方体的上方向下照。

  • 检查偏移和旋转的参数是否均为(0, 0, 0)
  • (通过移动工具)延y轴移动光源,让其位于立方体之上,比如位于(0, 3, 0)
  • 还可使用检查器延x轴将光照旋转-90度:设置旋转属性为(-90, 0, 0)
  • 使用坐标轴工具延x轴查看场景,,可以清晰地看出光照向下,如下图所示。
    Godot从入门到精通基础篇 第三章 创建并导出第一个场景

对光照的位置满意之后,可以旋转视图从不同角度查看该对象,以及通过预览查看场景。

这样光照和立方体都设置好了。便我们希望摄像机出现在场景中,从上方来看立方体。相应地我们会通过检查器修改摄像机的属性来实现这一功能。注意我们还会在场景中添加多个相机,在场景不同区域中显示由它们捕获的图像,稍后会学习这一功能。

  • 从场景树中选择摄像机,如下图所示。

Godot从入门到精通基础篇 第三章 创建并导出第一个场景

让它位于立方体的上方朝下拍摄,修改转换设置如下:

  • 平移(0, 4, 0):把摄像机从地面向上提4米。
  • 旋转(-90, 0, 0):延x轴将摄像机旋转-90度。

做完以上修改,场景应该会如下图所示。读者可能注意到在主视窗中,摄像机的范围通过类似金字塔的形状表示,在我们的场景中包裹着立方体。这表示立方体位于摄像机的拍摄范围内。我们可以在视窗右下角的摄像机预览窗口中进行查看。

Godot从入门到精通基础篇 第三章 创建并导出第一个场景

配置好摄像机后,我们来修改光照的属性。我们会修改其颜色和强度,所做的修改如下:

  • 在场景树中选择名为myLight的光照。
  • 在检查器中可以看到名为Light的属性,包含光照的属性(不含转换属性)。点击Color标签右侧的方块。这时就可以修改光照的颜色了。在游戏中设置气氛以及添加不同颜色的光照时会用得上。
  • 点击这个方块后,会出现一个标记为Color的窗口。该窗口类似于图像编译软件中所使用的,如Gimp或Photoshop,根据RGB码定义颜色。

有些读者可能不熟悉RGB码,它是红绿蓝的英文缩写,可以看成一个指定红、绿、蓝含量的调色板,用于创建新的颜色。在这个窗口中,每种颜色的含量是一个0到255之间的数值。所以如果使用(R=255, G=0, B=0),则会得到红色。

  • 在颜色窗口中进行点击,RGB的组成会有相应的变化。可根据自己的喜好选择一个颜色,比如淡蓝色。

Godot从入门到精通基础篇 第三章 创建并导出第一个场景

修改好光照的颜色后,会看到箱体变成了蓝色。切换成预览窗口后也是同样的。

使用箱体创建地面

至此,我们的场景中已经有了立方体、摄像机以及(淡蓝的)光照。但我们希望在场景中建造一个人物行走的地面,甚至是跳跃或在台阶上行走。创建这个环境的第一步是创建地面。完成这一任务我们可以回收已创建的箱体,修改其尺寸和外观如下:

  • 选中myCube箱体。
  • 将缩放属性修改为(40, 1, 40)。也就是延x轴和z轴放大40倍。
  • 在场景树中将该箱体命名为ground
Godot从入门到精通基础篇 第三章 创建并导出第一个场景

现在已经重置好了地面的大小,添加纹理会让其显得更为真实。我们会根据资源包中已含有的纹理为箱体设置一个新材质。

Godot从入门到精通基础篇 第三章 创建并导出第一个场景

要将图案修改为重复(平铺)多次,可进行如下操作:

添加多色箱体和台阶

在对场景新增对象前,我们修改下光照的属性,使用其可以照亮场景。

完成以上操作之后,我们会使用复制快速添加一系列的箱体:

下面对这个立方体设置颜色,流程类似于地面的图案:

创建好了第一个带颜色的立方体,我们可以连续复制快速创建相似立方体的流程:

和前面一样,我们为其增加绿色:

Godot从入门到精通基础篇 第三章 创建并导出第一个场景

我们再复制一个绿色立方体(默认其名称为greenBox2)并延x轴进行移动。

Godot从入门到精通基础篇 第三章 创建并导出第一个场景

此时就有了三个不同颜色的箱体,我们可以通过摄像机镜头来查看场景,请将摄像机的位置调整为(0, 10, 0),通过在主视窗中点击预览图标左侧的复选框开启预览模式,现在就可以从上方查看场景了。

Godot从入门到精通基础篇 第三章 创建并导出第一个场景

创建简单的台阶

我们已经学习了如何创建对象,再来学习一些快速创建场景的快捷方式。我们借用通过箱体创建台阶的简单示例来进行学习:

Godot从入门到精通基础篇 第三章 创建并导出第一个场景

管理及搜索资源和对象

在前面我们学习到可以使用搜索窗口和关键词来在项目和场景中查找指定的资源和对象。下面就在场景树中试试搜索功能吧:

类似地,如果输入green一词,会列出所有名称中包含green的对象。

Godot从入门到精通基础篇 第三章 创建并导出第一个场景

我们再来看如何在文件系统栏进执行搜索:

Godot从入门到精通基础篇 第三章 创建并导出第一个场景

同样可以在检查器标签中执行搜索,来查看节点的属性:

Godot从入门到精通基础篇 第三章 创建并导出第一个场景

另一个有趣的功能是对节点分组。比如我们创建了台阶。可能会需要整体而非逐一移动这些台阶。在Godot中,可以通过创建父节点组合这些台阶,这在场景树视图中经常称为空间节点(3D场景)。下面学习如何实现:

保存场景

至此我们就可以保存场景了:

默认场景保存在当前项目中。可以使用文件系统栏的搜索框查找项目中的所有场景。

构建和导出场景

这一部分中,我们会导出场景,让其可在Godot之外可视化显示。需要导入一些Godot来导出场景以及配置导出设置。

下面就开始实操:

出现这个消息是因为Godot需要在导出场景前安装导出模板,可通过如下步骤进行安装:

安装完成后,只需再指定导出的场景即可完成导出:

指定好了主场景后就可以导出项目了。

也导出供web使用,但导出的文件为Web Assembly,需要托管在服务器,虽然支持,但本文中不做探讨。

小结

本文中,我们学习了Godot的一些核心功能。读者对软件更为熟悉了并且知道如何以及为何使用各种视图。我们学习了如何添加和转换内置资源,包括立方体、光照和摄像机。我们还了解通过导入或创建材质来修改箱体的外观。

根据所学知识,我们创建一个简易的台阶和地面。我们学习了在项目中管理资源的一些方式,有(使用空间节点)进行分组和在各搜索窗口进行搜索。

最后还讲解了如何将场景导出为可执行文件。

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

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

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

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

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