Files
zeling_v2/Docs/Design/44_LevelDesignGuide.md
2026-05-08 11:04:00 +08:00

22 KiB
Raw Permalink Blame History

44 · 关卡设计指南

命名空间 BaseGames.World(工具类)
所属文档集 ← 返回索引 · 总览
依赖 08_WorldSystem房间结构· 06_EnemySystem敌人配置· 35_PuzzleArchitecture谜题· 16_MapSystem地图显示
读者 关卡设计师、美术、主策划


目录

  1. 指南定位
  2. 房间规格规范
  3. 难度曲线与节奏设计
  4. 敌人布置原则
  5. 危险物布置规范
  6. 收集品与秘密房间
  7. 平台路径设计
  8. 房间连通性与地图图结构
  9. 视觉叙事与环境氛围
  10. Tileset 使用规范
  11. 关卡搭建 SOP
  12. 关卡验收清单

1. 指南定位

本文档是泽灵Zeling关卡团队的唯一权威参考,覆盖从房间尺寸标准到秘密布置频率的全部设计规范。
代码规范见 08_WorldSystem本文档聚焦设计决策而非实现细节

核心设计哲学

原则 说明
沉默式教学 关卡本身教会玩家规则,尽量不用文字说明
奖励探索 偏离主路线必须有收益Geo/收藏品/视觉彩蛋)
清晰读图 关键路线视觉引导明确,死路必须有视觉暗示
挑战可预测 危险在接触前给予充分的视觉/听觉电报
功能美学合一 平台高度、尺寸由玩法逻辑驱动,装饰性道具不遮挡判定范围

2. 房间规格规范

2.1 标准尺寸参考

以下尺寸以**游戏单位Unity Unit**为准1 Unit = 1 Tile16×16px @16PPU

房间类型 宽度范围 高度范围 用途
过渡走廊Corridor 820 46 连接两个主房间,提供喘息
标准战斗房间Battle 2040 816 含 25 个敌人,主要探索
竖向探索房间Shaft 612 2040 强调垂直平台,无大量战斗
Boss 房间Boss 3248 1624 平坦地面为主,边界防逃跑
秘密房间Secret 612 48 收藏品/彩蛋奖励,无战斗
存档点房间Rest 1014 68 仅存档点,可有商人 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 确保死亡惩罚不过重,间隔约 58 分钟路程
商人 NPC 1 区域中段,可以花 Geo 提升能力
HP 容器 1 强化奖励,通常在次要路线或秘密房间
能力解锁点 01 每区域主线最多 1 个新能力
Boss 入口前室 1 无敌人,给玩家喘息和心理准备

4. 敌人布置原则

4.1 密度规范

房间类型 最大同屏敌人 推荐敌人数
过渡走廊 2 01
标准战斗房间 6 24
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 新敌人引入规则(沉默式教学)

每种新型敌人首次出现时,遵循"认识 → 理解 → 挑战"三步曝光:

步骤 场景设计 目的
认识 单独一只,玩家有充分空间观察 学习攻击模式
理解 12 只,含简单平台要素 理解弱点/应对策略
挑战 组合多只,或置于不利地形 测试掌握程度

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 每个战斗房间 26 个 敌人击杀产生
Geo 堆叠Geo Cluster 每 23 个房间 1 个 略偏离主路线
血精HealthOrb Boss / 精英击杀产生 无固定位置
HP 容器 每区域 12 个 秘密房间或能力验证房间
魅力Charm 每区域 13 个 商人购买 / 秘密房间 / Boss 掉落
地图钉点 随玩家探索自动生成

6.2 秘密房间设计规则

密度:每 68 个标准房间应有至少 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 平台间距 35u标准跳跃可达 游戏主体
Hard 需要精确跳跃+冲刺,允许少量容错 挑战区域,可选路线
Expert 多步连续精准跳跃,强制技巧 秘密房间、挑战房39_ChallengeRoom

每个区域主线路径难度上限

区域 主线难度上限 可选路线最高难度
Forest Easy Hard
Cave Normal Expert
Ruins Normal Expert
Abyss Hard Expert
Core Hard Expert

7.2 跳跃间距参数表

跳跃类型 最小间距 推荐间距 最大间距(含技巧)
地面→地面(普通跳) 1u 35u 6u
地面→地面(冲刺跳) 6u 78u 9u
低台→高台(普通跳) 高差 ≤ 3u 高差 22.5u 高差 4u
低台→高台(双跳) 高差 ≤ 6u 高差 45u 高差 7u
墙跳连续 墙间距 34u 3.5u 5u

7.3 移动平台设计规则

  • 平台速度Easy = 1.52u/sNormal = 2.53u/sHard = 4u/s不超过 5u/s
  • 乘客空间:平台宽度 ≥ 2u玩家 0.8u + 容错 0.6u × 2
  • 停留时间:端点等待 0.30.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 IDSP_{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 块中有 12 块变体,增加变化感)

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. 配置 RoomCameraBoundsPolygonCollider2D
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.assetAssets/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. 配置区域 BGM12_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