本章中我们会创建首个场景,然后对基础形状比如箱体进行添加、合并及应用纹理。本章讲解如何使用基础变换以及应用于对象。还会讲解如何管理及分组对象。
学完本章,读者可以:
- 创建场景
- 添加基础对象
- 为对象创建、应用颜色和纹理
- 分组形状
- 使用快捷方式搜索指定的对象或资源
- 导出首个场景
新建项目及场景
上一章中已经讲解了用户界面中的主要功能,下面就来创建一个可进行导航的简单场景并在其中添加一些具有纹理和颜色的对象。学完这一节后,读者可以:
- 向场景添加基础对象
- 为对象应用基础纹理和颜色
- 变换对象(如移动、缩放和旋转对象)
- 在场景中添加人物控制器,让其可以在平面上行走
- 添加及配置光照
- 分组对象及一次对多个对象应用属性
在场景中添加及合并简单内置对象
稍后我们会看到,可以使用一组基础形状(如圆柱、球形和箱形)、光照(如平行光或点光)、相机和其它内置资源(如人物控制器)创建游戏环境。一旦在当前场景中添加了这些对象后,就可以通过Godot修改它们的属性了。
首先配置场景来创建3D内容。
在选择该选项后,场景树中应该会显示一个名为Spatial的节点。该节点就是场景中其余节点的基础。
接下来创建一个用作地面的立方体。
- 右击名为Spatial的节点。
- 在上下文菜单中,请选择Add Child Node项。
- 在新窗口中的搜索框中输入单词box。
- (通过双击)选取名为CSGBox的节点类型。
- 这默认会在(0,0,0)处创建一个大小为2的箱体。也就是说该对象的长宽高均为2。
- 请将该立方体重命名为myCube,重命名的方法有(1)在场景树中选中然后同时按下CTRL+ENTER,或(2)在场景树中选中然后双击它,或(3)在场景树窗口中右击该对象并在上下文菜单中选择Rename选项。
重命名好立方体后,可以修改一些属性来查看外观的变化。例如:
- 在检查器窗口中,找到名为Transform属性,将缩放(Scale)属性的x,y和z修改为2,查看立方体的大小。
注意可以使用检查器窗口顶部的搜索框来查找具体的属性。
- 修改其y旋转属性为45度(即围绕y轴的旋转度数),查看旋转的变化。注意对于这些参数,可以使用检查器窗口在对应的文本框中修改其值,或点击参数拖拽鼠标修改:这样会增加或减少相应字段的值。这通常是调整对象属性更简单的方式。
现在读者习惯了使用检查器修改立方体转换参数,接下来看观察对象和场景修改属性的几种方式。在视窗左上角有一个工具栏,如下图所示。
工具栏中包含了很多工具,其中有三个按钮为快捷方式(从左到右分别是)(1) 移动当前选中对象、(2)旋转当前选中对象以及(3)缩放当前选中对象。这三个按钮也可通过快捷键W、E和R进行使用。
在变换对象之前,我们可以试着平衡和旋转视图:
- 旋转对象:按下鼠标中键然后拖拽鼠标,可以看到会绕着所选中对象旋转视图。
- 平移视图:按下鼠标中键和SHIFT键,再拖拽鼠标,可以平移视图。
- 聚焦当前选中对象的视图:按下F键,会发现视图会重新聚焦于当前所选中的对象。
- 缩放:使用鼠标滚轮前后滚动进行缩小和放大。
在对立方体进行变换之前,我们先来看一个有用的坐标轴工具(gizmo)。这个工具见下图,位于场景视图的右上角,可用于从不同的坐标轴和视角查看场景。
在坐标轴工具中点击x、y或z轴,可看到相应坐标轴的场景。我们来操作一下:
- 连续点击坐标轴工具的x、y和z轴,查看视图变化。
- 注意通过点击左上角的透视按钮,可以在透视和正交(或对等轴)视图之间切换。
- 调整视图,可以按下鼠标滚轮、拖拽鼠标,就可以相应地旋转对象了。
讲解完以上下知识,让我们回到左上角工具栏,测试那三个用于转换节点的按钮。
首先试用移动工具:
- 从工具栏中选取移动工具或使用相应的快捷键W。
- 可以看到立方体有三个箭头。这些箭头是拖拽的手柄,让选中对象在特定的方向上(即延x、y或z轴)移动。
连续拖拽红绿蓝手柄时,可以看到对象会延相应坐标轴移动。
下面再试用旋转工具:
- 在场景树中选中myCube对象,按下F键将视图聚焦于该对象上。
- 从工具栏中选取旋转工具(左起第三个图标)或使用相应的快捷键E。
此时可以看到在该对象周围有红绿蓝三个圈。这些手柄用于拖拽延指定坐标轴(x、y或z轴)旋转所选对象。
手柄的颜色表示对象围绕旋转的坐标轴。例如,通过拖拽绿色手柄,可以延y轴旋转对象。同样蓝色和红色手柄分别用于延z和x轴旋转。
在拖拽这些手柄时,我们可以看到检查器中的对应旋转属性也发生了改变。
下面来试用缩放工具:
- 通过工具栏选择缩放工具(左起第四个图标)或使用相应的快捷键R。
- 应该会看到在对象周围有红绿蓝线及手柄。拖拽这些手柄可延指定坐标轴(即x、y或z轴)缩放所选对象。
手柄的颜色表示对象缩放所延的坐标轴。例如,通过拖拽绿色手柄,可延y轴缩放对象。蓝色(z轴)和红色(x轴)手柄也类似。同时注意拖拽中间空白区时,会进行统一变形。也就是说,缩放在3条轴(x、y和z轴)上是一致的。
至此,我们对一个新的立方体进行了多次转换,可能会希望重置其属性为初始创建时的。可以使用平移、旋转和缩放属性右侧的圆形箭头来实现,参见下图。
更多有关如何使用Godot软件的信息及小贴士,可以查阅Godot的官方文档。
添加颜色和纹理
这时在场景中就有了一个箱体,可以通过视窗查看,那么在场景中再加两个对象就更好了:一个是可以预览场景的摄像机,另一个是光照。
在添加颜色和纹理之前,我们将箱体重置为原始大小,并将缩放属性设置为(1,1,1):
- 在场景树中选择箱体。
- 使用检查器,定位到转换属性。
- 设置平移属性为(0,0,0)、缩放属性为(1,1,1)。
- 重置属性也可通过点击属性右侧的回旋箭头,如下图所示。
重置完箱体的转换属性后,下面来加摄像机:
- 在场景树中选中Spatial。
- 右击然后在上下文菜单中选择Add Child Node。也就是说新增的摄像机为Spatial根节点的子节点。
- 在新窗口中,输入camera搜索然后从列表中选中(即双击)类型为Camera的节点。
- 这时就会在场景树中新建一个Camera节点。
- 添加好摄像机后,视图中会出现下图所示的预览选项。
- 这一选项可借助摄像机镜头来预览场景。
- 点击Preview图标左侧的复选框,应该会显示下图所示的预览。
游戏的效果就是这样。现在我们在预览窗口中只能看到一个蓝色的天空,这是因为摄像机并未指向我们之前所创建的箱体。通过屏幕右侧的检查器窗口,也可以看到摄像机的各个属性。
其中可以看到摄像机所处的位置(x=0,y=0,z=0)以及它尚未进行旋转。
注意可通过选择View | 2 ViewPorts或按下CMD/CTRL + 2快捷键同时显示在视窗和一场景摄像机中的视图,参见下图。
下面为场景添加光照:
- 取消预览图标左侧复选框的勾选关闭预览模式。
- 为Spatial节点新建一个类型为DirectionalLight的子节点:在Spatial节点上右击,在上下文菜单中选择Add Child Node,在搜索框中输入directionallight,在菜单中选择DirectionalLight类型。
- 将其重命名为myLight。
完成以上操作后,我们会更改光照的方向让光位于立方体的上方向下照。
- 检查偏移和旋转的参数是否均为(0, 0, 0)。
- (通过移动工具)延y轴移动光源,让其位于立方体之上,比如位于(0, 3, 0)。
- 还可使用检查器延x轴将光照旋转-90度:设置旋转属性为(-90, 0, 0)。
- 使用坐标轴工具延x轴查看场景,,可以清晰地看出光照向下,如下图所示。
对光照的位置满意之后,可以旋转视图从不同角度查看该对象,以及通过预览查看场景。
这样光照和立方体都设置好了。便我们希望摄像机出现在场景中,从上方来看立方体。相应地我们会通过检查器修改摄像机的属性来实现这一功能。注意我们还会在场景中添加多个相机,在场景不同区域中显示由它们捕获的图像,稍后会学习这一功能。
- 从场景树中选择摄像机,如下图所示。
让它位于立方体的上方朝下拍摄,修改转换设置如下:
- 平移(0, 4, 0):把摄像机从地面向上提4米。
- 旋转(-90, 0, 0):延x轴将摄像机旋转-90度。
做完以上修改,场景应该会如下图所示。读者可能注意到在主视窗中,摄像机的范围通过类似金字塔的形状表示,在我们的场景中包裹着立方体。这表示立方体位于摄像机的拍摄范围内。我们可以在视窗右下角的摄像机预览窗口中进行查看。
配置好摄像机后,我们来修改光照的属性。我们会修改其颜色和强度,所做的修改如下:
- 在场景树中选择名为myLight的光照。
- 在检查器中可以看到名为Light的属性,包含光照的属性(不含转换属性)。点击Color标签右侧的方块。这时就可以修改光照的颜色了。在游戏中设置气氛以及添加不同颜色的光照时会用得上。
- 点击这个方块后,会出现一个标记为Color的窗口。该窗口类似于图像编译软件中所使用的,如Gimp或Photoshop,根据RGB码定义颜色。
有些读者可能不熟悉RGB码,它是红绿蓝的英文缩写,可以看成一个指定红、绿、蓝含量的调色板,用于创建新的颜色。在这个窗口中,每种颜色的含量是一个0到255之间的数值。所以如果使用(R=255, G=0, B=0),则会得到红色。
- 在颜色窗口中进行点击,RGB的组成会有相应的变化。可根据自己的喜好选择一个颜色,比如淡蓝色。
修改好光照的颜色后,会看到箱体变成了蓝色。切换成预览窗口后也是同样的。
使用箱体创建地面
至此,我们的场景中已经有了立方体、摄像机以及(淡蓝的)光照。但我们希望在场景中建造一个人物行走的地面,甚至是跳跃或在台阶上行走。创建这个环境的第一步是创建地面。完成这一任务我们可以回收已创建的箱体,修改其尺寸和外观如下:
- 选中myCube箱体。
- 将缩放属性修改为(40, 1, 40)。也就是延x轴和z轴放大40倍。
- 在场景树中将该箱体命名为ground。