22 KiB
44 · 关卡设计指南
命名空间
BaseGames.World(工具类)
所属文档集 ← 返回索引 · 总览
依赖 08_WorldSystem(房间结构)· 06_EnemySystem(敌人配置)· 35_PuzzleArchitecture(谜题)· 16_MapSystem(地图显示)
读者 关卡设计师、美术、主策划
目录
- 指南定位
- 房间规格规范
- 难度曲线与节奏设计
- 敌人布置原则
- 危险物布置规范
- 收集品与秘密房间
- 平台路径设计
- 房间连通性与地图图结构
- 视觉叙事与环境氛围
- Tileset 使用规范
- 关卡搭建 SOP
- 关卡验收清单
1. 指南定位
本文档是泽灵(Zeling)关卡团队的唯一权威参考,覆盖从房间尺寸标准到秘密布置频率的全部设计规范。
代码规范见 08_WorldSystem;本文档聚焦设计决策而非实现细节。
核心设计哲学
| 原则 | 说明 |
|---|---|
| 沉默式教学 | 关卡本身教会玩家规则,尽量不用文字说明 |
| 奖励探索 | 偏离主路线必须有收益(Geo/收藏品/视觉彩蛋) |
| 清晰读图 | 关键路线视觉引导明确,死路必须有视觉暗示 |
| 挑战可预测 | 危险在接触前给予充分的视觉/听觉电报 |
| 功能美学合一 | 平台高度、尺寸由玩法逻辑驱动,装饰性道具不遮挡判定范围 |
2. 房间规格规范
2.1 标准尺寸参考
以下尺寸以**游戏单位(Unity Unit)**为准,1 Unit = 1 Tile(16×16px @16PPU):
| 房间类型 | 宽度范围 | 高度范围 | 用途 |
|---|---|---|---|
| 过渡走廊(Corridor) | 8–20 | 4–6 | 连接两个主房间,提供喘息 |
| 标准战斗房间(Battle) | 20–40 | 8–16 | 含 2–5 个敌人,主要探索 |
| 竖向探索房间(Shaft) | 6–12 | 20–40 | 强调垂直平台,无大量战斗 |
| Boss 房间(Boss) | 32–48 | 16–24 | 平坦地面为主,边界防逃跑 |
| 秘密房间(Secret) | 6–12 | 4–8 | 收藏品/彩蛋奖励,无战斗 |
| 存档点房间(Rest) | 10–14 | 6–8 | 仅存档点,可有商人 NPC |
2.2 玩家活动空间约束
基于玩家跳跃参数(见 23_GameFeelTuningGuide §2):
| 约束项 | 数值 | 来源参数 |
|---|---|---|
| 最大跳跃高度 | 4.5u(自然跳)/ 7u(双跳) | JumpForce |
| 最大水平跳跃距离 | 8u(冲刺跳) | DashDistance + AirMoveSpeed |
| 玩家宽度 | 0.8u | 碰撞体宽度 |
| 玩家高度 | 1.2u | 碰撞体高度 |
| WallGrab 最大停留 | 无限(已解锁后) | 26_WallMechanicsSystem |
最低天花板高度:3u(避免玩家跳跃时视野被遮挡)
最窄可通行通道:1.2u(仅容玩家通过,不适合战斗)
推荐主路线天花板:5u 以上(有跳跃空间的走廊)
3. 难度曲线与节奏设计
3.1 区域内难度递进原则
每个区域(Region)内的房间按"张弛有道"原则排列:
区域结构(示意):
入口走廊(休息)→ 探索房 × 2(轻度战斗)→ 遭遇战(中等)
→ 存档点 → 中段精英战(挑战)→ 休息走廊
→ Boss 前室(无敌人)→ Boss 房
张弛比:每 3 个高强度战斗房间之后,安排 1 个低密度/休息房间。
3.2 区域间难度跨越
| 区域 | 主要新挑战 | 玩家获得的应对工具 |
|---|---|---|
| 扎根森林(Forest) | 基础敌人,单纯平台跳跃 | 起始攻击 + 弹反 |
| 腐蚀洞穴(Cave) | 黑暗区域,DoT 毒气,分支路线 | 双跳(本区获取) |
| 坍塌废墟(Ruins) | 移动平台,射击类敌人 | 冲刺(本区获取) |
| 深渊裂隙(Abyss) | 垂直布局,更高跌落风险 | WallGrab(本区获取) |
| 核心熔炉(Core) | 综合挑战,高火力敌人 | 命魂形态(本区获取) |
3.3 节奏节点分布
必须的节奏节点(每个区域内至少包含):
| 节点类型 | 最少数量/区域 | 说明 |
|---|---|---|
| 存档点 | 3 | 确保死亡惩罚不过重,间隔约 5–8 分钟路程 |
| 商人 NPC | 1 | 区域中段,可以花 Geo 提升能力 |
| HP 容器 | 1 | 强化奖励,通常在次要路线或秘密房间 |
| 能力解锁点 | 0–1 | 每区域主线最多 1 个新能力 |
| Boss 入口前室 | 1 | 无敌人,给玩家喘息和心理准备 |
4. 敌人布置原则
4.1 密度规范
| 房间类型 | 最大同屏敌人 | 推荐敌人数 |
|---|---|---|
| 过渡走廊 | 2 | 0–1 |
| 标准战斗房间 | 6 | 2–4 |
| Boss 前室 | 0 | 0 |
| Boss 房间 | Boss本体+2小兵 | 按Boss SO配置 |
| 秘密房间 | 1(守卫型) | 0 |
4.2 敌人组合设计法
角色化组合:每个战斗房间至少有一个"主要威胁",其余为"干扰者":
示例组合(Forest 区域中段):
主要威胁: SwordKnight(近战,盾反机制)×1
干扰者: SpiderScout(巡逻,打断玩家专注)×2
隐藏威胁: ArcherSkull(远程,树冠处,玩家注意 Knight 时开弓)×1
禁止的组合:
- 超过 2 个同类型远程敌人在同一水平线(弹幕地狱)
- 在无掩体房间内放置 3 个以上高伤害敌人
- Boss 房间内的小兵在 Boss 第一阶段就出现(除非 Boss 设计需要)
4.3 位置层次化
敌人应分布在不同高度层次,制造立体威胁:
[房间高度分布示意]
天花板层 ── 无(保留给玩家)
上层平台 ── 弓箭手、投石手(射程型)
中层主地面 ── 近战型、巡逻型(主要战斗区域)
下层凹地 ── 避免(玩家落入=陷阱,仅在特定房间使用)
4.4 新敌人引入规则(沉默式教学)
每种新型敌人首次出现时,遵循"认识 → 理解 → 挑战"三步曝光:
| 步骤 | 场景设计 | 目的 |
|---|---|---|
| 认识 | 单独一只,玩家有充分空间观察 | 学习攻击模式 |
| 理解 | 1–2 只,含简单平台要素 | 理解弱点/应对策略 |
| 挑战 | 组合多只,或置于不利地形 | 测试掌握程度 |
5. 危险物布置规范
5.1 即死危险(InstantKill HazardZone)
规则:
✓ 始终能从安全处看清危险范围(无视觉遮挡)
✓ 靠近时有听觉提示(风声、嗡鸣、液体声)
✓ 坠落坑底均为即死,但坑宽至少 3u(避免误落)
✓ 强制落坑区域必须有足够的预备平台供玩家停下
✗ 禁止把即死危险隐藏在相机盲区外(禁止屏幕右侧的突然即死)
✗ 禁止即死危险与必过路线完全重叠(总有绕行或跳过的方法)
5.2 持续伤害危险(DamagePerSecond)
规则:
✓ 可以有 DoT 危险区域挡住可选路线(探索可绕开)
✓ DoT 区域穿越时间 ≤ 2 秒(按玩家最快移速计算,不能造成强制死亡)
✓ 出口前必须有一段无危险的安全区(落脚点)
✓ 液态 DoT 区域按 40_LiquidSwimSystem 规范配置
✗ 禁止 DoT 区域宽度 > 10u 且无跳跃中转点(必须能分段通过)
5.3 机关陷阱(Triggered Hazard)
规则:
✓ 触发前播放足够的视觉电报(见 19_BossPatternLibrary §5 电报系统)
✓ 摆锤/激光等循环机关,周期必须能被观察清楚(至少能看到 1.5 个完整周期)
✓ 复杂机关序列在第一次出现时,允许玩家安全观察而不触发死亡
✓ 压力板触发的陷阱,板块颜色/材质与周围地面明显不同
5.4 危险视觉规范
| 危险类型 | 视觉颜色 | Gizmo 颜色(Editor) |
|---|---|---|
| 即死刺/锯刃 | 鲜红色血渍 + 高亮金属光泽 | 红色实心 60% 透明 |
| 酸液池 | 发光绿色液体 | 绿色半透明 |
| 熔岩区域 | 橙红色发光,流动粒子 | 橙红色半透明 |
| 毒雾区域 | 紫色半透明雾 | 紫色半透明 |
| 机关陷阱待机 | 灰色/暗色 | 黄色虚线框 |
| 机关陷阱激活 | 亮橙色/红色 | 红色实线框 |
6. 收集品与秘密房间
6.1 收集品分布密度
| 收集品类型 | 频率 | 位置 |
|---|---|---|
| Geo 碎片(SmallGeo) | 每个战斗房间 2–6 个 | 敌人击杀产生 |
| Geo 堆叠(Geo Cluster) | 每 2–3 个房间 1 个 | 略偏离主路线 |
| 血精(HealthOrb) | Boss / 精英击杀产生 | 无固定位置 |
| HP 容器 | 每区域 1–2 个 | 秘密房间或能力验证房间 |
| 魅力(Charm) | 每区域 1–3 个 | 商人购买 / 秘密房间 / Boss 掉落 |
| 地图钉点 | 随玩家探索自动生成 | — |
6.2 秘密房间设计规则
密度:每 6–8 个标准房间应有至少 1 个秘密入口。
揭示层级(暗示强弱):
| 层级 | 暗示方式 | 奖励大小 |
|---|---|---|
| 明显暗示 | 墙体材质不同,光照有差异 | 少量 Geo |
| 隐晦暗示 | 视差背景中可见另一区域,或音效传来 | 中等(Geo + 装备) |
| 无暗示 | 需要随机尝试或攻略指引 | 大奖(HP 容器 / 稀有 Charm) |
禁止行为:
- 秘密房间必须至少有 1 层视觉暗示(否则降级为彩蛋,不作为隐藏收集品计入完成度)
- 秘密入口触发后,必须在地图上标记(见 16_MapSystem §4)
6.3 假墙(FalseWall)与秘密通道
假墙实现见 08_WorldSystem §9.8。设计规则:
假墙设计三原则:
1. 外观暗示:墙体有细微色差、裂纹、或苔藓图案(与周围地形 90% 相似但 10% 有异)
2. 行为暗示:玩家靠近时轻微抖动(仅在玩家1u范围内)
3. 音效暗示:玩家攻击时有特殊空洞回声(而非实心撞击声)
7. 平台路径设计
7.1 跳跃难度分级
| 难度 | 描述 | 示例场景 |
|---|---|---|
| Easy | 宽平台,充足准备时间,无压力源 | 初始区域,教学段 |
| Normal | 平台间距 3–5u,标准跳跃可达 | 游戏主体 |
| Hard | 需要精确跳跃+冲刺,允许少量容错 | 挑战区域,可选路线 |
| Expert | 多步连续精准跳跃,强制技巧 | 秘密房间、挑战房(39_ChallengeRoom) |
每个区域主线路径难度上限:
| 区域 | 主线难度上限 | 可选路线最高难度 |
|---|---|---|
| Forest | Easy | Hard |
| Cave | Normal | Expert |
| Ruins | Normal | Expert |
| Abyss | Hard | Expert |
| Core | Hard | Expert |
7.2 跳跃间距参数表
| 跳跃类型 | 最小间距 | 推荐间距 | 最大间距(含技巧) |
|---|---|---|---|
| 地面→地面(普通跳) | 1u | 3–5u | 6u |
| 地面→地面(冲刺跳) | 6u | 7–8u | 9u |
| 低台→高台(普通跳) | 高差 ≤ 3u | 高差 2–2.5u | 高差 4u |
| 低台→高台(双跳) | 高差 ≤ 6u | 高差 4–5u | 高差 7u |
| 墙跳连续 | 墙间距 3–4u | 3.5u | 5u |
7.3 移动平台设计规则
- 平台速度:Easy = 1.5–2u/s,Normal = 2.5–3u/s,Hard = 4u/s(不超过 5u/s)
- 乘客空间:平台宽度 ≥ 2u(玩家 0.8u + 容错 0.6u × 2)
- 停留时间:端点等待 0.3–0.8s(见
MovingPlatform._waitAtEndpoint) - 视野范围:移动范围必须完整在玩家视野内,禁止平台运动到屏幕外
7.4 碎裂平台设计规则
碎裂平台使用限制:
✓ 首次出现时,旁边至少有一条无碎裂平台的安全路线(教学原则)
✓ 连续碎裂平台序列长度 ≤ 5 个(避免过长的惩罚性序列)
✓ 碎裂倒计时(_crumbleDelay)≥ 0.6s(玩家来得及反应)
✓ 必须有明显的碎裂视觉预告(颤抖动画 + 音效)
✗ 即死深渊上方的单一路径不可全用碎裂平台(必须混合稳定平台)
8. 房间连通性与地图图结构
8.1 地图图结构原则
类银河恶魔城地图本质是有向图:
区域图结构模式:
┌─ Forest ─────────────────────────────────────────────┐
│ Entry ──► 探索A ──► 探索B ──► 存档点 │
│ │ │ │
│ 支线A 精英战 ──► Boss 前室 │
│ │ │ │
│ 秘密房 ┌───────────▼ │
│ Boss 房(单向门) │
└─ ──────────────────────────────────────────────────── ┘
│
┌────────────▼
Cave Entry(新区域)
连通性规则:
| 规则 | 说明 |
|---|---|
| 无死角 | 每个支线房间最终都能回到主路线(不存在单向困死的分支) |
| 能力验证一致 | 进入某分支所需能力,必须比该分支奖励更早获得 |
| Boss 单向门 | 进入 Boss 房前可以撤退,但击败 Boss 后必须有新路线开通(不原路折返) |
| 存档点可达性 | 任意点到最近存档点的步行距离 ≤ 5 个房间 |
8.2 门类型与地图含义
| 门类型 | 外观 | 开通条件 | 地图显示 |
|---|---|---|---|
| 普通连接门 | 无特殊装饰 | 无条件通过 | 普通走廊线 |
| 能力门(AbilityGate) | 符文纹路障碍 | 玩家持有指定能力 | 灰色虚线直到解锁 |
| Boss 锁门(ProgressLock) | 大型石质封印 | 对应区域 Boss 已击败 | 锁头图标 |
| 单向门(OneWay) | 仅一侧有把手 | 仅能从一侧打开 | 带箭头方向 |
| 商人门 | 货物箱子装饰 | 无条件 | 购物袋图标 |
8.3 房间命名与资产命名规范
场景命名:Room_{Region}_{Index}_{Optional Variant}
示例:Room_Forest_01、Room_Cave_03_Dark、Boss_Forest
SpawnPoint ID:SP_{Region}_{RoomIndex}_{Direction}
示例:SP_Forest_01_East、SP_Cave_03_Entry
Transition 连接规范:
RoomA 的 East 出口 → RoomB 的 West 入口(方向互补)
RoomA._targetScene = "Room_Cave_01"
RoomB._targetScene = "Room_Forest_03"(对应返回)
9. 视觉叙事与环境氛围
9.1 环境叙事分层
无需对话或文字的叙事手段:
| 层次 | 手段 | 示例 |
|---|---|---|
| 近景装饰(Foreground) | 场景道具、遗迹碎片 | 废弃武器→曾有战斗发生 |
| 中景地形(Level Geometry) | 建筑风格、破损程度 | 坍塌的石柱→昔日繁华 |
| 背景叙事(Background) | 远景元素、光照 | 背景中的城市轮廓→世界格局 |
| 动态元素(Dynamic) | 飘落的灰烬、流动的液体 | 传递区域的"活力" |
| 遗迹遗骸(Lore Object) | 可交互的文字石碑/骨骸 | 直接文字叙事(最后手段) |
9.2 区域氛围参数
每个区域有统一的"氛围参数套":
| 区域 | 主色调 | 光照强度 | 天花板距离 | 氛围粒子 |
|---|---|---|---|---|
| Forest | 绿橙 | 中等 | 开放 | 飘落树叶 |
| Cave | 蓝紫黑 | 低 | 压迫感低天花板 | 石屑、霉菌孢子 |
| Ruins | 灰棕金 | 中等,斜光 | 高穹顶 | 灰烬微粒 |
| Abyss | 黑蓝白 | 极低(星点光源) | 无限垂直 | 上升风尘 |
| Core | 暗红橙 | 高(熔岩光) | 中等 | 灰烬、火花 |
9.3 视觉引导技巧
主路线引导(不使用 UI 标记):
- 光源(Torch/Lamp)沿主路线方向分布
- 主路线地面有轻微磨损纹理,支线地面干净
- 主路线天花板高度高于支线(更"开阔"=主要路线感)
- 重要道具/能力附近有光柱效果(区域级 Light2D)
死路标志:
- 终点有明显的视觉"收紧"(天花板降低、墙面靠近)
- 奖励物品(Geo/Charm)放在死路终点,给予探索正反馈
- 禁止无意义的死路(死路必须有奖励或叙事内容)
10. Tileset 使用规范
10.1 Sprite 导入设置
| 参数 | 规范值 | 说明 |
|---|---|---|
| Pixels Per Unit (PPU) | 16 | 全项目统一 |
| Filter Mode | Point (No Filter) | 像素风格,禁止 Bilinear |
| Compression | None | 像素精确,禁止有损压缩 |
| Sprite Mode | Multiple(图集) | 同区域 Tile 打包同一图集 |
| Generate Mip Maps | ❌ 关闭 | 2D 像素不需要 Mip Map |
10.2 Tilemap 层级规范
场景 Tilemap 层级(上到下 = 前到后):
Tilemap_Foreground → SortingLayer: Foreground → 无碰撞,覆盖在角色前
Tilemap_Ground → SortingLayer: Ground → 主碰撞地面
Tilemap_OneWay → SortingLayer: Platform → OneWayPlatform + PlatformEffector2D
Tilemap_Destructible → SortingLayer: Ground → 可破坏地形(Intact 态同 Ground)
Tilemap_Background → SortingLayer: Background → 无碰撞背景装饰
Tilemap_BackBackground → SortingLayer: FarBackground → 视差背景(最远层)
10.3 自动 Tile 规则(Rule Tile)
每个区域提供标准 Rule Tile 资产(Assets/Art/Tilesets/{Region}/RuleTile_{Region}_Ground.asset),具备:
- 自动角落连接(16 方向规则)
- 边缘过渡 Tile(与相邻区域 Tileset 衔接)
- 随机装饰 Tile 变体(每 10 块中有 1–2 块变体,增加变化感)
10.4 碰撞体规范
碰撞设置:
✓ TilemapCollider2D + CompositeCollider2D(合并碰撞体,减少物理开销)
✓ PhysicsShape 为 Rectangle(避免三角/多边形不必要的复杂度)
✓ 地面坡面角度 ≤ 45°(超过 45° 视为墙面,不允许行走)
✗ 禁止单个 Tile 独立 Collider(必须用 CompositeCollider2D 合并)
11. 关卡搭建 SOP
11.1 新建房间流程
1. 复制房间模板场景 Room_Template.unity
2. 重命名为 Room_{Region}_{Index}.unity
3. 修改 Tilemap 层填充地形
4. 配置 RoomCameraBounds(PolygonCollider2D)
5. 放置 SpawnPoint(每个入口各一个)
6. 配置 RoomTransition 组件(连接到目标场景 + SpawnPoint ID)
7. 放置 NavSurface 并设置 NavLink(用于敌人寻路)
8. 放置敌人(从 EnemyPrefab 目录拖入)
9. 配置 AudioZone(绑定区域 BGM,见 12_AudioSystem)
10. 注册到 RegionDefinitionSO.roomSceneNames[]
11. 标记为 Addressable,分配到对应 Group(见 43_AddressablesWorkflow)
12. 运行 关卡验收清单(§12)
11.2 新建区域流程
1. 创建 RegionDefinitionSO.asset(Assets/ScriptableObjects/Progression/Regions/)
2. 建立区域文件夹 Assets/Scenes/{Region}/
3. 创建所有房间场景(按 §11.1 流程)
4. 创建 Boss 场景(Boss_{Region}.unity)
5. 配置 ProgressLock(链接前一区域的 Boss 击败条件)
6. 配置 AbilityGate(如需能力解锁才能进入)
7. 添加新区域到 RegionDefinitionSO 数组
8. 配置地图颜色(MapSystem 颜色规范)
9. 配置区域 BGM(12_AudioSystem §3)
10. 更新 14_ProgressionSystem 的区域顺序表(文档同步)
11.3 编辑器工具
通过 菜单 → BaseGames/LevelDesign/ 访问:
| 工具 | 功能 |
|---|---|
| Room Validator | 检查房间完整性(SpawnPoint/Transition/NavSurface 完整性) |
| Connection Inspector | 可视化查看所有房间的 Transition 连接关系 |
| Collectible Density View | 在 Scene 视图中热图显示当前房间收集品密度 |
| Enemy Coverage View | 显示敌人视野/巡逻范围覆盖热图 |
| NavLink Validator | 检查 NavLink 是否全部连接且无孤立节点 |
12. 关卡验收清单
房间提交 PR 前必须确认所有项目:
功能性检查
[ ] 所有 SpawnPoint 均有唯一 ID,且与 RoomTransition 配对正确
[ ] 所有 RoomTransition 目标场景存在且 SpawnPoint ID 有效
[ ] RoomCameraBounds 覆盖整个房间,无边界穿出现象
[ ] NavSurface 已烘焙,NavLink 全部有效(NavLink Validator 无错误)
[ ] 所有敌人 Prefab 引用有效(无 Missing Reference)
[ ] AudioZone 配置正确(区域 BGM 和环境音)
[ ] Addressable 已标记,Group 分配正确(43_AddressablesWorkflow §11)
[ ] 场景已注册到 RegionDefinitionSO.roomSceneNames[]
游戏体验检查(需实际运行测试)
[ ] 主路线可在不使用任何特殊能力的情况下通关(若房间在能力获取前)
[ ] 所有危险区域在接触前有清晰的视觉/听觉提示
[ ] 不存在摄像机能看到房间外(黑边)的视角
[ ] 所有平台跳跃均可使用当前进程阶段的能力完成
[ ] 不存在玩家无法逃脱的陷阱/区域(无陷门困死)
[ ] 存档点触发动画正常播放
[ ] 所有 Collectible 可正常拾取并记录到 SaveData
[ ] 房间重进后持久化物件状态正确恢复
性能检查
[ ] 同屏敌人数 ≤ 6(见 §4.1 密度规范)
[ ] 同屏粒子数 ≤ 500(见 27_PerformanceBudgetGuide §5)
[ ] Tilemap 合并碰撞体已使用 CompositeCollider2D
[ ] 不存在运行时 Instantiate(仅允许对象池)
[ ] 在目标设备上稳定 60fps(见 27_PerformanceBudgetGuide §3)
叙事/氛围检查
[ ] 房间氛围与所属区域一致(颜色/光照/粒子规范见 §9.2)
[ ] 所有装饰道具不遮挡玩家判定体(可用 Gizmos 模式验证)
[ ] 死路均有奖励或叙事内容(无空洞死路)
[ ] 若含首次引入的新敌人,有"认识→理解→挑战"三步曝光(§4.4)
文档版本 1.0 · 2026