灰盒是使用简单形状构建关卡的过程,在投入时间进行脚本编写或创建最终艺术资产之前。这有助于您测试游戏玩法,识别布局问题,并在环境仍然易于修改时快速进行更改。
在本节中,您将灰盒构成游戏可玩区域的海堆平台。一旦布局感觉合适,您就可以开始编写脚本。
规划可玩区域
在最终游戏中,玩家收集金币以增加跳跃能力并到达更高的平台。您将在本教程后面实现这个进阶系统,但在灰盒环境时规划这一点是很重要的。一般来说,平台之间的高度差应逐渐增加,以鼓励玩家收集金币并继续进步。
作为参考,示例岛屿跳跃 - 建造游戏使用了七个高度级别。第一个平台的高度足够低,玩家只需几个金币即可到达。随后的高度差增加到8、20、35、55、81和110个stud,创造了游戏中持续的进步感。

添加平台
现在您已经有了平台之间高度差的计划,添加占位符Part对象来表示海堆。Parts是Roblox的基本构建块,具有控制其形状、大小、颜色和其他物理特性的属性。
对于这个项目,使用圆柱部件为玩家提供一个平坦的顶部,以便在跳跃时着陆。


创建组织结构
在添加部件之前,创建两个容器以保持项目的组织。Roblox提供Folder对象用于分组相关实例,Model对象用于分组3D对象。在本教程中,您将创建一个World文件夹来保存环境,并在该文件夹内创建一个Blockout_Parts模型来保存灰盒平台。
- 在资源管理器中,在工作区内创建一个名为World的文件夹。
- 在新文件夹内创建一个名为Blockout_Parts的模型。
插入部件
现在您有了组织结构,添加圆柱作为您的平台。您可以使用助手提示,手动构建自己的布局,或重建示例游戏的布局。
要让助手一次性生成整个灰盒,请复制与您想要的独特布局或示例游戏的精确副本相匹配的提示。
在Workspace > World > Blockout_Parts中创建多个圆柱Parts以形成平台。
从一个大型、平坦的圆柱开始,位于岛屿的中心,然后再添加至少七个圆柱,它们都从相同的垂直基座开始,但高度各异(像高楼大厦一样),以创建向上的路径。
调整大小、位置和方向,使顶部表面平坦且可行走,并将所有Parts设置为锚定。在Workspace > World > Blockout_Parts中创建以下圆柱部件:
1. Level_1 (Size 12, 131, 131; CFrame.Position -23, -4, 9; CFrame.Orientation 0, 0, 90)
2. Level_2 (Size 20, 81, 81; CFrame.Position -8, 0, 24; CFrame.Orientation 0, 0, 90)
3. Level_3a (Size 40, 44, 44; CFrame.Position 42, 10, 9; CFrame.Orientation 0, 0, 90)
4. Level_3b (Size 40, 34, 34; CFrame.Position 87, 10, 4; CFrame.Orientation 0, 0, 90)
5. Level_3c (Size 40, 44, 44; CFrame.Position 97, 10, 49; CFrame.Orientation 0, 0, 90)
6. Level_4a (Size 75, 39, 39; CFrame.Position 112, 27.5, 46.5; CFrame.Orientation 0, 0, 90)
7. Level_4b (Size 75, 65, 65; CFrame.Position 137, 27.5, 69; CFrame.Orientation 0, 0, 90)
8. Level_4c (Size 75, 60, 60; CFrame.Position 159.5, 27.5, 91.5; CFrame.Orientation 0, 0, 90)
9. Level_4d (Size 75, 30, 30; CFrame.Position 207, 27.5, 106.5; CFrame.Orientation 0, 0, 90)
10. Level_4e (Size 75, 61, 61; CFrame.Position 250, 27.5, 74; CFrame.Orientation 0, 0, 90)
11. Level_5a (Size 130, 60, 60; CFrame.Position 268, 55, 50; CFrame.Orientation 0, 0, 90)
12. Level_5b (Size 130, 25, 25; CFrame.Position 256, 55, 2.5; CFrame.Orientation 0, 0, 90)
13. Level_5c (Size 130, 25, 25; CFrame.Position 276, 55, -17.5; CFrame.Orientation 0, 0, 90)
14. Level_5d (Size 130, 54, 54; CFrame.Position 322, 55, -21; CFrame.Orientation 0, 0, 90)
15. Level_6a (Size 211, 79, 79; CFrame.Position 367, 94.5, -41; CFrame.Orientation 0, 0, 90)
16. Level_6b (Size 211, 24, 24; CFrame.Position 387, 94.5, 11.5; CFrame.Orientation 0, 0, 90)
17. Level_6c (Size 211, 44, 44; CFrame.Position 397, 94.5, 51.5; CFrame.Orientation 0, 0, 90)
18. Level_7 (Size 321, 61, 61; CFrame.Position 407, 149.5, 79; CFrame.Orientation 0, 0, 90)
确保所有Parts都被锚定,正确定位,并朝向形成连续的关卡布局。对齐部件
如果您正在创建自己的布局,通常在每个平台共享相同的基准高度并仅在大小上有所不同时,更容易管理平台高度。对齐工具可以通过在Y轴上对齐底部边缘来一次性完成此操作。
在资源管理器中,选择所有平台。
在模型工具栏选项卡中,单击对齐。
在对齐工具窗口中:
- 将模式设置为最小。
- 将对齐到设置为世界和Y。
- 将相对设置为选择边界。
单击对齐。

创建一个空心隧道
为了增加更多的视觉变化,使用Studio的实心建模工具在一个海堆中挖掘一个隧道。对于本教程,您将使用否定来创建孔,并使用联合将部件组合成一个形状。有关所有实心建模工具的更多信息,请参见实心建模。
使用以下步骤创建一个空心隧道结构:
1. 创建一个名为Tunnel的圆柱部件,大小为24, 65, 69,CFrame.Position为137, 77, 69,CFrame.Orientation为0, 0, 90。将锚定设置为true。
2. 创建一个名为Hollow_Part的块部件,大小为24.5, 72, 22,CFrame.Position为134.5, 77, 71,CFrame.Orientation为0, 135, 90。该部件应与圆柱相交,以定义空心空间。
3. 否定Hollow_Part,使其成为一个减法形状。
4. 选择Tunnel部件和否定的Hollow_Part,然后执行联合操作,以便在圆柱中切出空心形状。
5. 将结果联合重命名为Level_4b_Union。
6. 找到现有的Level_4b平台,复制它,并将副本重命名为Level_4b_Top。
7. 将Level_4b_Top设置为大小74, 65, 69,CFrame.Position为137, 126, 69,CFrame.Orientation为0, 0, 90。确保它被锚定并位于隧道上方。
确保所有部件正确对齐,最终结果是一个有开放通道的圆柱隧道,顶部有一个平台。试玩布局
在开始编写脚本之前,试玩布局以捕捉任何问题,同时仍然容易进行更改。
从测试选项卡开始试玩,并模拟玩家的起始状态。
- 在资源管理器中找到您的角色并选择Humanoid。
- 启用UseJumpPower。
- 在属性窗口中,将JumpPower设置为0。
- 当您到达更高的平台时,以30的增量增加JumpPower,以模拟收集跳跃升级,并确保每个级别都可以到达。

在下一节中,您将学习如何编写整体游戏玩法的脚本。