docs(workflow): 关卡设计工作流与关卡执行案体系

- Agent 文档新增关卡执行案产出规范与白模搭建工作流
- 开发流水线补充关卡执行案产出节点与白模搭建子任务(6a)
- 新增关卡执行案模板、BSP资产参考卡、关卡设计工作流规范
- 新增原型阶段设计文档索引 README
- .gitignore 补充 __pycache__ 规则
This commit is contained in:
2026-06-06 23:55:14 +08:00
parent b951450345
commit 84bdfb22de
9 changed files with 1131 additions and 1 deletions
+26
View File
@@ -64,6 +64,7 @@ GameConfig/ # 数值配置表
| 系统设计案 | `<system>.md` | `interaction-system.md` |
| 执行案 | `<system>-execution.md` | `player-controller-execution.md` |
| 场景设计 | `scene-v<XX>-<name>.md` | `scene-v01-suburban.md` |
| 关卡执行案 | `level-v<XX>-<name>-execution.md` | `level-v01-suburban-execution.md` |
| 配置表 | `<name>.csv` 或 `<name>.json` | `marble-params.csv` |
---
@@ -341,6 +342,31 @@ GameConfig/ # 数值配置表
---
## 关卡执行案
关卡执行案是场景设计案的**空间精度版本**——将氛围描述转化为带有坐标、尺寸和资产建议的结构化搭建指南。
### 产出时机
关卡执行案在 **③执行案阶段** 产出,与系统执行案同步。产出前先阅读:
- 对应的场景设计案 `scene-v<XX>-<name>.md`(氛围愿景)
- `.claude/refs/level-execution-template.md`(文档模板)
- `.claude/refs/blockout-asset-reference.md`(BSP 资产参考卡)
### 关键规则
1. **混合坐标体系**:区域用场景绝对坐标(原点在西南角),区域内物件用相对偏移坐标
2. **BSP 资产建议是方向性指引**:引用资产类别名和组合方式(如 "Wall_400x300 × 2"),不写文件路径
3. **交叉引用**:交互物引用 `interaction-system-execution.md` 编号,收集品引用 `collection-system-execution.md` 编号
4. **不越界**:不写引擎组件名、文件路径、Blueprint 类名
5. **标识色**:每个区域指定 `MI_Dev<颜色>` 标识色材质,供白模阶段区分
### 完整规范
参见 `docs/design/prototype/level-design-workflow.md`。
---
**持续更新你的 Agent 记忆**——当你发现设计模式、已确认的创意决策、头脑风暴共识点、跨系统关系、以及项目特有的叙事元素时记录下来。这会在多次对话中积累组织知识。写简洁的笔记——发现了什么、在哪里。
例如:
+34 -1
View File
@@ -113,7 +113,40 @@ memory: project
| UI | ... | ... | ... | ... |
```
### 工作流 B:实现(步骤⑥)
### 工作流 B:白模搭建(步骤⑥子任务 6a)
当版本开发涉及场景搭建时,白模搭建是 ⑥程序实现的首要子任务。
**输入**:
- `level-v<XX>-<name>-execution.md` — 关卡执行案(空间指南)
- `scene-v<XX>-<name>.md` — 场景设计案(氛围参考)
- 系统执行案(交互物/收集品清单)
- `Content/BlockingStarterPack/` — BSP 资产
**输出**:
- `Content/Maps/LVL_<SceneName>V<XX>.umap` — 白模关卡文件
- `docs/technical/level-v<XX>-build-report.md` — 搭建报告(偏差记录)
- **在对应任务 Issue 下以评论发布搭建报告**(包含偏差清单、资产替代、缩放记录、比例验证结果,使 PM 和策划能直接在 Issue 中查看)
**搭建流程**:
1. **准备**:阅读关卡执行案 → 创建 BSP 资产映射表 → 创建关卡文件
2. **地面与边界**:铺设地面 Floor → 放置边界围墙/围挡
3. **逐区域搭建**:按结构体 → 布景 → 交互物 → 收集品顺序
4. **光照**:定向光/天空光 → 路灯/局部光源
5. **验证**:角色比例检查(门洞/摄像机/家具) → 流线通行检查
**Actor 命名规范**:`LVL_<ZoneID>_<Category>_<Description>`
- Category: STR(结构体) | PROP(布景) | INTR(交互物) | COLL(收集品) | BND(边界) | LGT(光源)
**Outliner 结构**:按区域分文件夹(Z1_家/Structure/、Z1_家/Props/、...),Global/ 放边界和光照。
**搭建报告**:逐区域对照文档要求记录偏差,包含资产替代清单、缩放记录、未实现项、比例验证结果。**报告必须同时**:
1. 写入 `docs/technical/level-v<XX>-build-report.md`(本地文件)
2. 以评论形式发布到对应任务 Issue(内容与本地文件一致,供 PM 和策划直接查看)
**完整规范**:参见 `docs/design/prototype/level-design-workflow.md` 第四章。
### 工作流 C:代码实现(步骤⑥子任务 6b-6f)
```
阅读技术方案 → 阅读美术资产清单 → 编写代码 → 集成美术资产 → 验证功能 → 汇报结果
+11
View File
@@ -90,6 +90,11 @@ memory: project
- **系统间关联**:与其他系统的依赖关系是否记录?
- **技术越界检查**:策划是否误入技术实现细节?参数应标注"建议值,可调"
**关卡执行案附加检查**(仅当执行案包含关卡文档时):
- **关卡资产存在验证**:关卡执行案中引用的 BSP 资产是否在 `Content/BlockingStarterPack/` 中实际存在?逐项验证可行性
> 关卡执行案的质量门**仅做资产存在验证**。空间精度、比例、跨文档一致性等维度的准确性由程序在白模搭建过程中验证——如果程序在 Issue 中汇报了搭建异常(尺寸偏差、资产无法匹配、比例问题等),PM 将异常汇总并汇报给用户确认,不自行判断通过或不通过。
### 质量门 2:程序设计质量门(④→⑤)
检查维度:
@@ -242,6 +247,12 @@ memory: project
- 单个代码任务应在一次工作会话中可完成(约 1-3 小时有效工作时间)
- 如果一个系统的实现需要跨越多天,必须按程序设计文档的建议拆分
**③执行案任务拆分**:
- PM 为**每一份系统执行案**创建独立的任务 Issue(如 `D-001 交互系统执行案`、`D-002 收集系统执行案`)
- 当版本涉及场景搭建时,为**关卡执行案**单独创建一个任务 Issue(如 `D-005 v0.1 城郊小街关卡执行案`)
- 不将多份系统执行案或关卡执行案合并为同一个任务
- 关卡执行案任务与系统执行案任务**并行存在**,策划可按任意顺序完成,全部通过质量门后才进入 ④
---
## 9. 文档标准
+404
View File
@@ -0,0 +1,404 @@
# BlockingStarterPack 资产参考卡
> 供策划产出关卡执行案时引用 BSP 资产。策划只需引用资产**类别名和近似尺寸**(如 `Wall_400x300`),不需要写文件路径。程序负责最终映射到引擎中的具体资产。
>
> 所有尺寸以厘米(cm)为单位。资产路径前缀:`Content/BlockingStarterPack/Meshes/`
---
## 一、建筑模块(Architecture)
### 1.1 墙体(Walls)
**命名规律**:`SM_Wall_<宽>x<高>` — 宽度/高度均为 cm 单位
| 资产名 | 尺寸(宽cm × 高cm) | 用途 |
|--------|-------------------|------|
| Wall_100x100 | 100 × 100 | 短墙、装饰墙段 |
| Wall_100x300 | 100 × 300 | 标准宽度墙面 |
| Wall_100x400 | 100 × 400 | 标准宽度高墙 |
| Wall_200x100 | 200 × 100 | 矮墙、半墙 |
| Wall_200x300 | 200 × 300 | **常用** — 标准墙面 |
| Wall_200x400 | 200 × 400 | 高墙面 |
| Wall_400x100 | 400 × 100 | 矮长墙 |
| Wall_400x300 | 400 × 300 | **常用** — 大片墙面 |
| Wall_400x400 | 400 × 400 | 大片高墙 |
**含门洞的墙**:`SM_WallDoor_<宽>x<高>`
| 资产名 | 尺寸 | 说明 |
|--------|------|------|
| WallDoor_200x300 | 200 × 300 | 单门洞墙 |
| WallDoor_200x400 | 200 × 400 | 单门洞高墙 |
| WallDoor_400x300 | 400 × 300 | 宽墙含单门洞 |
| WallDoor_400x400 | 400 × 400 | 宽墙含单门洞(高) |
| WallDoorDouble_400x300 | 400 × 300 | 宽墙含双门洞 |
| WallDoorDouble_400x400 | 400 × 400 | 宽墙含双门洞(高) |
| WallDoorGarage_400x300 | 400 × 300 | 车库门墙 |
| WallDoorGarage_400x400 | 400 × 400 | 车库门墙(高) |
**含窗户的墙**:`SM_WallWindow_<宽>x<高>`
| 资产名 | 尺寸 | 说明 |
|--------|------|------|
| WallWindow_200x300 | 200 × 300 | 单窗墙 |
| WallWindow_200x400 | 200 × 400 | 单窗墙(高) |
| WallWindow_400x300 | 400 × 300 | 宽窗墙 |
| WallWindow_400x400 | 400 × 400 | 宽窗墙(高) |
| WallWindowDouble_400x300 | 400 × 300 | 双窗墙 |
| WallWindowDouble_400x400 | 400 × 400 | 双窗墙(高) |
| WallWindowSmall_200x300 | 200 × 300 | 小窗墙 |
| WallWindowSmall_200x400 | 200 × 400 | 小窗墙(高) |
**圆角墙**:`SM_WallRoundedCorner_<宽>x<高>_<角度>d`(角度 45d 或 90d)
### 1.2 地板(Floors)
**命名规律**:`SM_Floor_<宽>x<深>`
| 资产名 | 尺寸(cm) | 用途 |
|--------|-----------|------|
| Floor_100x100 | 100 × 100 | 小面积填充 |
| Floor_100x200 | 100 × 200 | 窄条地面 |
| Floor_100x300 | 100 × 300 | 走廊地面 |
| Floor_100x400 | 100 × 400 | 长走廊 |
| Floor_200x150 | 200 × 150 | 不规则填充 |
| Floor_200x200 | 200 × 200 | 中等面积 |
| Floor_200x300 | 200 × 300 | **常用** |
| Floor_200x400 | 200 × 400 | **常用** |
| Floor_300x300 | 300 × 300 | 大面积 |
| Floor_300x400 | 300 × 400 | 大面积 |
| Floor_400x400 | 400 × 400 | 大面积 |
| Floor_1000x1000 | 1000 × 1000 | **超大地砖** — 快速铺设大范围地面 |
另有:FloorCorner(转角)、FloorRounded(圆角)、FloorTriangle(三角)、Floor 含 Trap(带活门开口)
### 1.3 门(Doors)
| 资产名 | 说明 |
|--------|------|
| DoorFrame | 单门框 |
| DoorFrameDouble | 双门框 |
| DoorFrameGarage | 车库门框 |
| RotativeDoor_01 / 02 / 03 | 旋转门(三种样式) |
| LateralDoor | 推拉门 |
| LateralDoorFrame_150 / 300 | 推拉门框(150cm/300cm 宽) |
| FakeDoor / FakeDoorDouble | 假门(装饰,不可开) |
| GarageDoor_01 / 02 | 车库门(关闭) |
| GarageDoorOpen_01 / 02 | 车库门(打开) |
### 1.4 窗户(Windows)
| 资产名 | 说明 |
|--------|------|
| WindowsFrame / WindowsGlass | 单窗框/玻璃 |
| WindowsFrameDouble / WindowsGlassDouble | 双窗 |
| WindowsFrameUp / WindowsGlassUp | 上开窗 |
| FakeWindowsFrame / FakeWindowsFrameDouble / FakeWindowsFrameUp | 假窗(装饰) |
### 1.5 楼梯(Stairs)
| 资产名 | 说明 |
|--------|------|
| Stair_100 / Stair_200 | 直梯(100cm/200cm 高) |
| StairPlane_100 / StairPlane_200 | 楼梯面(无侧板) |
| StairRounded_300_45d / 90d | 圆弧梯 |
### 1.6 栏杆/围栏(Barriers)
**命名规律**:`SM_Barrier<类型>_<长度>cm`
- Barrier01/02/03 — 三种样式(直线段,50/100/200/500cm)
- BarrierAngle — 角度栏杆
- BarrierBeam — 横梁栏杆
- BarrierRounded01/02_45/90 — 圆弧栏杆(200-800cm)
- BarrierStair — 楼梯栏杆
- BarrierWall_200/400/600 — 实墙式栏杆(**常用作围墙**)
- BarrierWallRoundedCorner — 实墙式圆角
**独立围栏**:
- Fence_Normal_100/200/300/400 — 普通围栏
- Fence_Small_100/200/300/400 — 矮围栏
### 1.7 飘窗(BayWindows)
`SM_BayWindow<类型>_<宽>x<高>` — 宽度 100/200/400,高度 300/400
- BayWindow — 纯飘窗
- BayWindowDoor — 带门的飘窗
- BayWindowDoorDouble — 带双门的飘窗
### 1.8 横梁(Beams)
| 资产名 | 说明 |
|--------|------|
| Beam_300 / Beam_400 | 直梁(300/400cm) |
| RoundedBeam_300 / RoundedBeam_400 | 圆弧梁 |
| Beam_400_45d / RoundedBeam_400_45d | 45 度转角梁 |
---
## 二、建筑整体(Buildings)
### 2.1 小型建筑(SmallBuildings)
| 资产名 | 说明 | 建议用途 |
|--------|------|---------|
| House_01 | 小房屋 A | 家、小卖部等单层建筑 |
| House_02 | 小房屋 B | 居民平房 |
| House_03 | 小房屋 C | 仓库/杂物间 |
| House_04 | 小房屋 D | 另一种风格平房 |
### 2.2 大型建筑(BigBuildings)
| 资产名 | 说明 | 建议用途 |
|--------|------|---------|
| Building_01 | 大楼 A | 老居民楼(5-6层) |
| Building_02 | 大楼 B | 办公楼/商场 |
| Building_03 | 大楼 C | 工业建筑 |
| Building_04 | 大楼 D | 另一种风格大楼 |
---
## 三、家具(Furnitures)
| 资产名 | 说明 | 尺寸参考 |
|--------|------|---------|
| SimpleTable_01 | 简易桌 | ~120×60cm |
| SimpleTable_02 | 简易桌 B | ~100×60cm |
| DinnerTable_01 / 02 / 03 | 餐桌(三种) | ~120-150cm |
| DiningChair_01 | 餐椅 | ~45cm 座高 |
| OfficeChair_01 | 办公椅 | 带轮 |
| Armchair_01 | 扶手椅 | 休闲用 |
| Laptop | 笔记本电脑 | 小型桌面物件 |
| Monitor_01 | 显示器 | ~50cm 宽 |
| Keyboard | 键盘 | 桌面物件 |
| Broom | 扫帚 | 靠墙放 |
| Cushion | 坐垫 | 小型 |
---
## 四、卧室(Bedroom)
| 资产名 | 说明 |
|--------|------|
| BedSingle | 单人床(含被褥) |
| BedSingle_Empty | 单人床(空床) |
| BedDouble | 双人床(含被褥) |
| BedDouble_Empty | 双人床(空床) |
---
## 五、卫浴(Bathroom)
| 资产名 | 说明 |
|--------|------|
| Toilet_01 | 马桶 |
| ToiletClosed_01 | 马桶(盖关) |
| Urinal_01 | 小便池 |
| ToiletPaper_01 / 02 | 卫生纸 |
---
## 六、装饰小物件(Decorations)
| 资产名 | 说明 | 用途 |
|--------|------|------|
| Bottle_01 / 02 / 03 | 饮料瓶/酒瓶 | 小卖部、街头散落 |
| Books_01 / BooksOpen_01 | 书本 | 书桌、书架 |
| Can_01 | 易拉罐 | 散落物、垃圾桶内 |
| Flask_01 | 烧瓶 | 实验室场景 |
| GlassFlask_01-04 | 玻璃瓶(四种) | 装饰、收集 |
| Mug_01 | 马克杯 | 桌面物件 |
| Plate_01 | 盘子 | 餐桌 |
| WaterGlass_01 | 水杯 | 桌面物件 |
| Bucket_01 | 水桶 | 院子、巷子 |
| Padlock_01 / Padlock_Open / Padlock_Break | 挂锁(三种状态) | 门、箱子 |
| SimplePlug_01 | 插头 | 墙面细节 |
| SimpleSwitch_01 | 开关 | 墙面细节 |
| SpikedBall_01 / 02 | 铁蒺藜 | 路障 |
---
## 七、载具(Vehicles)
| 资产名 | 说明 |
|--------|------|
| Car01 / Car02 | 轿车(两种) |
| Truck01 / Truck02 | 卡车(两种) |
| TruckWithoutTrailer | 卡车(无挂车) |
| HoodTruckWithoutTrailer | 皮卡 |
| Bus_Big | 大巴 |
| Boat_01 / Boat_02 | 船(两种) |
| Plane_01 | 飞机 |
| Metro_01 | 地铁车厢 |
| Trailer_01 / 02 / 03 | 挂车(三种) |
| SimpleWheel / SimpleRims | 车轮/轮毂 |
| TruckWheel / TruckRims | 卡车轮 |
| SimpleTire | 轮胎 |
| SmallLocomotive | 小型机车 |
| SmallWagon_Normal / SmallWagon_Large | 小型车厢 |
| SmallRail_200-1000 | 小型铁轨 |
| SmallRailTurn_45d / 90d | 小型铁轨转辙 |
---
## 八、道路设施(Roads)
| 资产名 | 说明 |
|--------|------|
| BarricadeBlocks_100 / 200 | 水马路障 |
| Barricade_200 / 300 / 400 | 栏式路障 |
| BarricadeWall_100 | 矮路障墙 |
| RoadCone_Big / Normal / Small | 锥桶(三种大小) |
| SpeedBump_100/200/400/600 | 减速带 |
| SpeedBumpWithEnds_200/400/600 | 减速带(含端头) |
| SpeedBumpEnd | 减速带端头 |
| MetalPost_01 | 金属路桩 |
| RoadLamp_01 | 路灯 |
| RoadLight | 道路照明灯 |
---
## 九、工业物件(Industrials)
| 资产名 | 说明 | 用途 |
|--------|------|------|
| Barrel | 铁桶 | 巷子、工地散落 |
| ExplosiveBarrel | 爆炸桶(红色) | 游戏交互物 |
| WoodenBox_Small / Normal / Large | 木箱(三种大小) | 杂物堆、仓库 |
| WoodenCrate_01 | 木条箱 | 搬运箱 |
| WoodenPallet_01 / 02 | 木托盘 | 地面垫板 |
| Container_Normal / Large | 集装箱 | 工地 |
| ContainerClosed_Normal / Large | 集装箱(关闭) | 工地 |
| ContainerDoor_Left / Right | 集装箱门 | 工地 |
| ContainerShip_01 / ContainerShipEmpty_01 | 船运集装箱 | 港口场景 |
| BigDumpster | 大垃圾箱 | 街道 |
| Fence_Normal_100-400 / Fence_Small_100-400 | 围栏 | 场地分隔 |
| Radiator | 散热器 | 室内墙面 |
---
## 十、垃圾(Trashs)
| 资产名 | 说明 |
|--------|------|
| TrashCans_01 | 垃圾桶(盖着) |
| TrashCansOpen_01 | 垃圾桶(打开) |
| TrashCansLid_01 | 垃圾桶盖(单独) |
---
## 十一、灯光(Lights)
| 资产名 | 说明 |
|--------|------|
| CeilingLight01 / 02a / 02b / 03a / 03b | 吸顶灯(多种) |
| CeilingLightBulb / CeilingLightBulbBreak | 灯泡(正常/损坏) |
| CeilingLightFlat02a / 02b | 平板灯 |
| CeilingLightRotaryWarning | 旋转警示灯 |
| SpotLight / SpotLight_Support | 射灯 |
| FlamingTorch / FlamingTorchWithSupport / FlamingTorch_Support | 火把 |
| FlashLight | 手电筒 |
| RoadLamp_01 | 路灯 |
| RoadLight | 道路灯 |
---
## 十二、基础体(Primitives)
| 资产名 | 说明 | 用途 |
|--------|------|------|
| Cube | 立方体 | 万能替代,可缩放 |
| Cylinder | 圆柱体 | 柱子、管道 |
| Sphere | 球体 | 装饰 |
| Cone | 圆锥体 | 装饰 |
| Ramp | 斜坡 | 地形过渡 |
| QuarterPipe | 四分之一管 | 装饰/地形 |
| QuarterCylinder | 四分之一圆柱 | 角落装饰 |
| CirclePlatform | 圆形平台 | 地面标记 |
| SquarePlatform | 方形平台 | 地面标记 |
| SphereOctant / SphereOctantInvert | 球体切片 | 装饰 |
**弯曲基础体**(CylinderBend/RectangleBend/RectangleAngle,各种半径 150-450cm)
---
## 十三、其他(Extra)
| 资产名 | 说明 |
|--------|------|
| Tree_01 | 树木(唯一的植被资产) |
| Ladder_01_200 / Ladder_01_Unit | 梯子(两种) |
| Ladder_02_200 / Ladder_02_Unit | 梯子 B(两种) |
| SnowMan_01 | 雪人 |
| Campfire | 营火 |
| HumanMesh_01 / 02 | 人体参考网格 |
| HumanCage / HumanCageWithFloor | 人体碰撞参考框 |
| ArrowBody / ArrowHead / ArrowBack | 箭头组件 |
| CameraPose_01-04 | 摄像机参考姿态 |
| DisplayPanels_50x50 到 400x200 | 展示面板(8种尺寸) |
---
## 十四、标识色材质速查
> 用于白模阶段区分不同区域/物体类型。命名规律:`MI_Dev<颜色>` 或 `MI_Dev<颜色>_TPLA/TPWA`(三平面变体)。
| 材质名 | 颜色 | 推荐用途 |
|--------|------|---------|
| MI_DevRed | 红色 | 危险区域、交互热点、围墙 |
| MI_DevBlue | 蓝色 | 水域、天空相关 |
| MI_DevGreen | 绿色 | 植被、草地、可通行 |
| MI_DevBrown | 棕色 | 泥土、木质结构 |
| MI_DevGray | 灰色 | 水泥、混凝土、道路 |
| MI_DevWhite | 白色 | 墙壁、室内 |
| MI_DevBlack | 黑色 | 阴影区域、遮挡 |
| MI_DevYellow | 黄色 | 警示、收集品标记 |
| MI_DevOrange | 橙色 | 施工区域、路障 |
| MI_DevPink | 粉色 | 角色/NPC 相关 |
| MI_DevPurple | 紫色 | 特殊/隐藏区域 |
| MI_DevSkyBlue | 天蓝 | 水面、天空 |
| MI_DevFoliage | 草绿 | 植物、树木 |
| MI_LightGreen | 浅绿 | 草地细节 |
**特殊材质**:
- `MI_DevGrid` — 带网格的灰色材质,用于地面
- `M_DevMirror` — 镜面材质
- `M_FullyBlack` — 纯黑材质,用于遮挡/剪影
- `MI_DevGlassBlue/Green/Red/White` — 透明玻璃材质
- `MI_DevLight_*` — 自发光材质(绿/蓝/橙/白/黄/红/天蓝)
- `MI_StainDecalColor*` — 污渍贴花(黑/蓝/绿/红/天蓝/黄)
---
## 十五、中式城郊场景替代方案速查
> 千禧年城郊结合区的许多物件在 BSP 中没有精确匹配,下表提供替代策略。
| 场景物件 | BSP 替代方案 | 标识色建议 |
|---------|-------------|-----------|
| 红砖围墙 | Wall_400x300 组合 + MI_DevRed | 红 |
| 绿色铁门/木门 | RotativeDoor_01 + MI_DevGreen | 绿 |
| 小卖部招牌 | Cube 缩放为薄长条 + MI_DevBlue/Orange | 蓝/橙 |
| 卷帘门 | GarageDoor_01 + MI_DevGray | 灰 |
| 玻璃柜台 | Cube 缩放为扁长方体 + MI_DevGlassWhite | 透明白 |
| 老式冰柜 | Container_Normal 缩小 + MI_DevWhite | 白 |
| 金属货架 | Fence_Small 排列 + MI_DevGray | 灰 |
| 公用电话亭 | Cube+Cylinder 组合 | 灰 |
| 电线杆 | Cylinder 高缩放 + MI_DevGray | 灰 |
| 晾衣杆 | Beam_300 + Cylinder 支撑 + MI_DevWhite | 白 |
| 铁栏杆窗户 | WallWindow + Beam 细条前置 | 灰 |
| 水泥路裂缝 | Floor + MI_DevGray + Decal 贴花 | 灰 |
| 积水坑 | Floor 嵌入地面 + MI_DevGlassBlue | 天蓝 |
| 水塘水面 | Floor_1000x1000 + MI_DevSkyBlue/GlassBlue | 天蓝 |
| 芦苇/杂草 | 多个小 Cylinder 不同角度 + MI_DevFoliage | 草绿 |
| 施工围挡 | BarricadeWall_200/400/600 + MI_DevBlue | 蓝 |
| 垃圾桶 | TrashCans_01 + MI_DevGreen | 绿 |
| 老式自行车 | Car01 缩小至 ~50% 或 Primitives 组合 | 黑 |
| 弹珠/小物件 | Sphere 缩小至 ~2cm | 彩色 |
| 老式冰箱 | Barrel 竖放或 Cube + MI_DevWhite | 白 |
| 大脑袋电视 | Monitor_01 + MI_DevGray | 灰 |
| 水塔/工业设备 | Cylinder + CylinderBend 组合 | 灰/棕 |
| 平房屋顶 | Floor 覆盖 + MI_DevBrown | 棕 |
| 台阶 | Stair_100 或 Ramp | 灰 |
| 围墙门洞 | WallDoor_200x300 + RotativeDoor | 红 |
+22
View File
@@ -434,6 +434,14 @@ docs/design/production/
- 每个系统一份执行案,放在 `docs/design/<阶段>/` 目录下
- 文件命名:`<系统名>-execution.md`(如 `player-controller-execution.md`)
- 不按版本分文件,通过迭代记录表头追踪变更
- **关卡执行案**(如有场景搭建需求):文件命名 `level-v<XX>-<name>-execution.md`,产出模板参见 `.claude/refs/level-execution-template.md`
**关卡执行案**:
- 当版本开发涉及场景搭建时,策划额外产出一份关卡执行案
- 关卡执行案将场景设计案的氛围描述转化为空间精度搭建指南(坐标、尺寸、BSP 资产映射)
- 使用混合坐标体系:区域用场景绝对坐标,区域内物件用相对偏移坐标
- 交互物和收集品的位置标注必须与交互系统/收集系统执行案交叉引用
- 完整规范参见 `docs/design/prototype/level-design-workflow.md`
---
@@ -451,6 +459,10 @@ docs/design/production/
4. **系统间关联**:与其他系统的关联和影响是否说明?
5. **技术越界检查**:是否误入了技术细节?精确参数值是否标注为"建议值,可调"?
**关卡执行案附加检查**(仅当审查对象包含关卡执行案时):
- **关卡资产存在验证**:关卡执行案中引用的 BSP 资产是否在 `Content/BlockingStarterPack/` 中实际存在?标识色材质是否在可用范围内?
- 关卡执行案的质量门**仅做资产存在验证**。空间精度、比例、跨文档一致性等维度由程序在白模搭建过程中验证——如果程序在 Issue 中汇报搭建异常,PM 汇总异常并汇报给用户确认,不自行判断通过/不通过。
**判定**:
- **通过** → 进入 ④ 程序设计
- **不通过** → 退回策划修改,列出具体问题清单
@@ -550,6 +562,16 @@ docs/design/production/
**前置条件**:程序设计(④)已就绪且 PM 审查通过,美术资产(⑤)已就位且 PM 验收通过。
**白模搭建子任务(6a)**:
当版本开发涉及场景搭建时,⑥的第一个子任务是白模关卡搭建:
- 读取关卡执行案 `level-v<XX>-<name>-execution.md` 和场景设计案
- 使用 `Content/BlockingStarterPack/` 资产在 UE5 编辑器中搭建白模关卡
- 按区域分文件夹组织 Actor(命名规范:`LVL_<ZoneID>_<Category>_<Description>`)
- 完成比例验证(角色可通过门洞、摄像机不穿墙、流线通行)
- 产出搭建报告 `docs/technical/level-v<XX>-build-report.md` 记录偏差
- **搭建报告必须以评论形式发布到对应任务 Issue**(与本地文件内容一致)
- 完整搭建流程参见 `docs/design/prototype/level-design-workflow.md` 第四章
**阶段差异**:
| 维度 | 原型阶段 | 批量生产阶段 |
+245
View File
@@ -0,0 +1,245 @@
# 关卡执行案模板
> 本模板供策划产出关卡执行案时使用。关卡执行案是场景设计案的"空间精度版本"——将氛围描述转化为带有坐标、尺寸和资产建议的结构化搭建指南,供程序在 UE5 编辑器中搭建白模。
>
> 文件命名:`level-v<XX>-<name>-execution.md`(如 `level-v01-suburban-execution.md`)
> 存放位置:`docs/design/<阶段>/`(与其他执行案同目录)
---
```markdown
# v<版本号> 关卡执行案 — <场景名>
## 迭代记录
| 迭代版本 | 修改日期 | 状态 | 说明 |
|----------|----------|------|------|
| v<版本号> | YYYY-MM-DD | 📝 设计中 | 初始版本 |
> 状态标记:📝 设计中 | 🔄 开发中 | ✅ 已同步
---
## 一、场景参数
| 参数 | 值 | 说明 |
|------|-----|------|
| 场景总尺寸 | <!-- 如 80m x 60m --> | UE5 单位(1 uu = 1 cm) |
| 地面高度基准 | <!-- 如 0 --> | 统一地面平面高度(UE5 Z 轴,单位 cm) |
| 主角身高 | <!-- 如 ~120cm --> | 影响门高、窗台高、摄像机高度 |
| 主角视角高度 | <!-- 如 ~100cm --> | 摄像机距地面(SpringArm 高度参考) |
| 时间设定 | <!-- 如 夏日午后 15:00 --> | 影响光照方向和色温 |
| 坐标系原点 | 场景西南角地平面 | X 轴向东(+),Y 轴向北(+),Z 轴向上(+) |
**坐标系说明**:
- 区域级定位使用**场景绝对坐标**(原点在西南角,单位 cm)
- 区域内物件使用**相对于该区域西南角的偏移坐标**(0,0 为区域西南角)
- 偏移格式:(ΔX, ΔY, ΔZ),ΔX 向东为正,ΔY 向北为正,ΔZ 向上为正
---
## 二、区域坐标布局
### 2.1 区域总览表
| 区域编号 | 区域名称 | 绝对坐标范围 (X,Y) | 尺寸 (宽x深) | 地面材质建议 | 标识色 |
|---------|---------|-------------------|-------------|-------------|--------|
| Z1 | <!-- 区域名 --> | (X1,Y1)-(X2,Y2) | Wm × Dm | <!-- 如 水泥/砖/泥 --> | <!-- 如 MI_DevRed --> |
| Z2 | | | | | |
| ... | | | | | |
| Zn | | | | | |
> 标识色使用 BSP 材质名(参见 `blockout-asset-reference.md`),程序用对应材质标识区域。
### 2.2 交通流线
| 流线路径 | 宽度 | 说明 |
|---------|------|------|
| <!-- 如 Z1 → Z3 家门 → 街道 --> | <!-- 如 200cm --> | <!-- 如 出院门直接接主街 --> |
| | | |
| | | |
### 2.3 ASCII 总览图
<!-- 用简化的方块图展示区域相对位置关系和流线方向 -->
```
Y↑ (北)
│
┌─────┤
│ Zn │
└──┬──┘
│
┌──────┴──────┐
│ Z... │
└──┬──────┬───┘
│ │
┌──────┴──┐ ┌─┴───────┐
─────┤ Z1 │ │ Z... ├─────
└─────────┘ └─────────┘
────────────────────────────────→ X (东)
(0,0)
```
---
## 三、逐区域搭建指南
<!-- ============================================ -->
<!-- 以下为每个区域的模板,每个区域复制一份并填写 -->
<!-- ============================================ -->
### Z<x>: <区域名称>
**区域绝对原点**:(X, Y, Z) — 该区域西南角在场景中的绝对坐标
#### 3.x.1 区域参数
| 参数 | 值 | 说明 |
|------|-----|------|
| 地面高度 | <!-- 如 0cm / +10cm --> | 相对场景地面基准 |
| 围墙/外墙高度 | <!-- 如 250cm --> | |
| 门洞宽度 | <!-- 如 120cm --> | |
| 门洞高度 | <!-- 如 220cm --> | |
| 室内净高 | <!-- 如 280cm --> | 如为室内区域 |
| 屋檐高度 | <!-- 如 300cm --> | |
#### 3.x.2 结构体清单
<!-- 结构体 = 墙、地板、屋顶、门框、窗框、围栏等建筑构件 -->
| 编号 | 构件名称 | 尺寸 (宽x深x高, cm) | 相对原点偏移 (ΔX,ΔY,ΔZ) | BSP 资产建议 | 标识色 |
|------|---------|-------------------|----------------------|-------------|--------|
| Zx-S01 | <!-- 如 南围墙 --> | <!-- 如 800x20x250 --> | (0,0,0) | <!-- 如 Wall_400x300×2 --> | <!-- 如 MI_DevRed --> |
| Zx-S02 | | | | | |
| Zx-S03 | | | | | |
| ... | | | | | |
**BSP 资产建议说明**:
- 填写 BSP 资产类别名和组合方式(如 "Wall_400x300 × 2 叠加")
- 程序负责映射到引擎中的具体资产路径
- 如无精确匹配,写"Primitives 组合"并注明替代意图
- 参见 `.claude/refs/blockout-asset-reference.md` 中的替代方案
#### 3.x.3 布景物清单
<!-- 布景 = 非建筑结构的场景物件:家具、道具、装饰品等 -->
| 编号 | 物件名称 | 尺寸 (约, cm) | 相对原点偏移 (ΔX,ΔY,ΔZ) | BSP 资产建议 | 说明 |
|------|---------|-------------|----------------------|-------------|------|
| Zx-P01 | <!-- 如 旧自行车 --> | <!-- 如 50x150x100 --> | (100,100,0) | <!-- 如 Car01 缩放50% --> | <!-- 如 靠墙停放 --> |
| Zx-P02 | | | | | |
| ... | | | | | |
#### 3.x.4 可交互物体标记
<!-- 引用交互系统执行案中的交互物,此处只标注空间位置 -->
| 交互编号 | 物件名称 | 交互类型 | 相对原点偏移 (ΔX,ΔY,ΔZ) | 触发半径 (cm) | 引用 |
|---------|---------|---------|----------------------|-------------|------|
| Zx-I01 | <!-- 如 旧冰箱 --> | <!-- 如 观察 --> | (200,400,10) | <!-- 如 150 --> | interaction-system-execution #n |
| Zx-I02 | | | | | |
| ... | | | | | |
> 交互类型参照交互系统执行案中的分类(观察/拾取/操作/对话等)。
> "引用"列填写交互系统执行案中对应交互物的编号,确保跨文档一致。
#### 3.x.5 收集品标记
<!-- 引用收集系统执行案中的收集品,此处只标注空间位置 -->
| 收集编号 | 物品名称 | 稀有度 | 相对原点偏移 (ΔX,ΔY,ΔZ) | 引用 |
|---------|---------|--------|----------------------|------|
| Zx-C01 | <!-- 如 彩色弹珠 --> | <!-- 如 普通/稀有 --> | (500,200,0) | collection-system-execution #n |
| Zx-C02 | | | | |
| ... | | | | | |
> 稀有度影响拾取物的视觉效果标识(普通=白色光,稀有=金色光),具体表现由收集系统技术方案定义。
---
<!-- 重复 Z2...Zn 的搭建指南 -->
---
## 四、全局物件清单
<!-- 不属于任何特定区域的场景物件,如街道家具、环境物件等。
全局物件使用场景绝对坐标定位。 -->
### 4.1 街道家具
| 编号 | 物件名称 | 数量 | 放置位置 (绝对坐标 X,Y,Z) | BSP 资产建议 | 说明 |
|------|---------|------|------------------------|-------------|------|
| G-01 | <!-- 如 路灯 --> | <!-- 如 3 --> | <!-- 如 (2000,200,0) --> | <!-- 如 RoadLamp_01 --> | |
| G-02 | | | | | |
| ... | | | | | |
### 4.2 环境物件
| 编号 | 物件名称 | 数量 | 放置位置 (绝对坐标 X,Y,Z) | BSP 资产建议 | 说明 |
|------|---------|------|------------------------|-------------|------|
| G-E01 | <!-- 如 电线杆 --> | <!-- 如 2 --> | <!-- 如 (3000,200,0) --> | <!-- 如 Cylinder 缩放 --> | |
| G-E02 | | | | | |
| ... | | | | | |
### 4.3 收集品位置汇总
| # | 物品名称 | 所在区域 | 绝对坐标 (X,Y,Z) | 稀有度 | 引用 |
|---|---------|---------|-----------------|--------|------|
| 1 | | | | | collection-system-execution #n |
| 2 | | | | | |
| ... | | | | | |
---
## 五、场景边界与遮挡
| 边界段 | 位置范围 | 遮挡方式 | BSP 资产建议 | 标识色 |
|--------|---------|---------|-------------|--------|
| 西边界 | X=0 全线 | <!-- 如 围墙 --> | <!-- 如 Wall_400x300 --> | |
| 南边界 | Y=0 全线 | | | |
| 东边界 | X=<!-- --> | | | |
| 北边界 | Y=<!-- --> | | | |
> 边界必须确保玩家无法走出场景范围。所有边界物体启用物理碰撞。
> 自然边界(如水塘)通过不可通行水面实现,无需额外围墙。
---
## 六、光照建议(可选)
| 光源类型 | 数量 | 位置/方向 | 参数建议 | 说明 |
|---------|------|---------|---------|------|
| 定向光 | 1 | <!-- 如 从西南向东北照射 --> | <!-- 如 色温 6500K,强度 中 --> | 夏日午后主光源 |
| 天空光 | 1 | 全局 | | 环境补光 |
| 路灯 | N | 见全局物件清单 | | 点光源/聚光灯 |
> 光照参数为建议值,可调。程序根据实际效果微调方向和强度。
```
---
## 模板使用说明
### 策划填写要点
1. **先确定区域坐标布局**(第二章),确保所有区域在总尺寸内不重叠、流线合理
2. **逐区域填写**(第三章),按"结构体 → 布景 → 交互物 → 收集品"的顺序
3. **BSP 资产建议是方向性指引**:写资产类别名和组合方式即可(如 "Wall_400x300 × 2"),不需要写文件路径
4. **尺寸以 cm 为单位**,对应 UE5 的 1 uu = 1 cm
5. **交叉引用**:交互物和收集品必须引用对应系统执行案中的编号,保持跨文档一致
### 不要填写的内容
- ❌ 引擎组件名(Actor、Component、Blueprint 等)
- ❌ 文件路径(如 `/Game/Content/...`)
- ❌ Blueprint 类名
- ❌ 精确的硬编码参数值(标注"建议值,可调"并附范围)
- ❌ 代码或脚本
### 与场景设计案的关系
- 场景设计案(`scene-vXX-<name>.md`)= **氛围愿景** — 描述感觉、氛围、叙事意图
- 关卡执行案 = **空间精度搭建指南** — 坐标、尺寸、资产映射
- 两者是互补关系,不是替代关系。程序搭建时两个文档都需要参考。
+6
View File
@@ -102,6 +102,12 @@ Desktop.ini
# ==============================
scripts/.gitea-tokens.json
# ==============================
# Python
# ==============================
__pycache__/
*.pyc
# ==============================
# 其他
# ==============================
+73
View File
@@ -0,0 +1,73 @@
# 原型阶段设计文档索引
> 最后更新:2026-06-06
> 阶段:原型阶段 | 版本范围:v0.1–v0.4
---
## 核心锚点
| 文档 | 说明 |
|------|------|
| [game-vision.md](game-vision.md) | 游戏愿景、核心情感、三大支柱——所有设计决策的锚点 |
---
## 系统设计案
| 文档 | 说明 | 当前版本覆盖 |
|------|------|-------------|
| [player-controller.md](player-controller.md) | 玩家角色控制——移动、摄像机、动画蓝图 | v0.1 ✅ |
| [interaction-system.md](interaction-system.md) | 环境交互系统——交互组件、检测、UI 提示 | v0.1 ✅ |
| [collection-system.md](collection-system.md) | 收集系统——拾取、进度追踪、图鉴(v0.1 基础版 → v0.4 完整版) | v0.1 ✅ v0.2+ 待补 |
| [minigame-system.md](minigame-system.md) | 小游戏体系——弹珠、拍洋画、四驱车等千禧年童年游戏 | v0.2 待补执行案 |
| [narrative-framework.md](narrative-framework.md) | 叙事框架——暑假结构、事件设计、角色系统 | v0.3-v0.4 待补 |
---
## 场景与角色
| 文档 | 说明 |
|------|------|
| [scene-world.md](scene-world.md) | 完整场景与世界观设计(城市主场景 + 乡下场景) |
| [scene-v01-suburban.md](scene-v01-suburban.md) | v0.1 白盒场景具体内容——6 区域布局、交互点位置 |
| [protagonist-character.md](protagonist-character.md) | 主角角色描述——美术设计的核心参考 |
---
## 执行案
| 文档 | 对应系统 | 版本 | 状态 |
|------|---------|------|------|
| [player-controller-execution.md](player-controller-execution.md) | 角色控制 | v0.1.1 | 📝 设计中 |
| [interaction-system-execution.md](interaction-system-execution.md) | 交互系统 | v0.1.2 | 📝 设计中 |
| [collection-system-execution.md](collection-system-execution.md) | 收集系统 | v0.1.1 | 📝 设计中 |
---
## 版本范围
| 文档 | 说明 |
|------|------|
| [v01-scope.md](v01-scope.md) | v0.1 功能边界、验收标准、开发优先级 |
---
## 头脑风暴记录
| 文档 | 日期 | 主题 |
|------|------|------|
| [brainstorm-2026-06-01-vision-pillars-world.md](brainstorm-2026-06-01-vision-pillars-world.md) | 2026-06-01 | 愿景三大支柱 + 世界观确认 |
| [brainstorm-2026-06-04-era-tech-inspirations.md](brainstorm-2026-06-04-era-tech-inspirations.md) | 2026-06-04 | 千禧年时代技术灵感(随身听、小霸王、街机等) |
| [brainstorm-2026-06-05-nostalgia-culture.md](brainstorm-2026-06-05-nostalgia-culture.md) | 2026-06-05 | 千禧年怀旧文化灵感(电视剧、广播体操、广场舞等) |
---
## 外部关联
| 文档 | 位置 | 说明 |
|------|------|------|
| 概念草案 | [../concept.md](../concept.md) | 已冻结,只读参考 |
| 原型路线图 | [../../plans/prototype-roadmap.md](../../plans/prototype-roadmap.md) | v0.1–v0.4 版本规划 |
| 技术可行性评估 | [../../technical/feasibility-assessment.md](../../technical/feasibility-assessment.md) | 10 个系统的技术评估 |
| 程序设计方案 | [../../technical/](../../technical/) | v0.1 程序设计文档 |
@@ -0,0 +1,310 @@
# 关卡设计工作流:策划文档规范 + 程序白模搭建
> 本文档定义 ChildHood 项目中策划如何产出关卡执行案、程序如何基于关卡执行案和 BlockingStarterPack 资产搭建白模关卡。是策划和程序两个角色之间的交接桥梁。
---
## 一、总览
### 1.1 两个文档,两个角色
| 文档 | 产出角色 | 性质 | 用途 |
|------|---------|------|------|
| 场景设计案 `scene-vXX-<name>.md` | 策划 | 氛围愿景 | 定义场景的感觉、叙事意图、时代元素 |
| 关卡执行案 `level-vXX-<name>-execution.md` | 策划 | 空间精度搭建指南 | 坐标、尺寸、BSP 资产映射、交互/收集品位置 |
**关系**:场景设计案描述"这里应该是什么感觉",关卡执行案描述"程序应该在什么位置放什么资产来实现这个感觉"。两者互补,不是替代。
### 1.2 在 7 步流水线中的位置
```
① 设计案(含场景设计案)
↓
② 阶段路线图
↓
③ 执行案(系统执行案 + 关卡执行案) ← 关卡执行案在此阶段产出
↓ [PM 审查:执行案质量门]
④ 程序设计
↓ [PM 审查:程序设计质量门]
⑤ 美术产出
↓ [PM 审查:美术资产验收门]
⑥ 程序实现(含白模搭建子任务 6a) ← 白模搭建在此阶段执行
↓ [PM 审查:程序实现验收门]
⑦ 版本复盘
```
**v0.1 特殊情况**:由于 v0.1 的 ③执行案质量门已通过(三个系统执行案已批准),关卡执行案作为补充文档在 ④或 ⑥早期补充,PM 做轻量审查。
**v0.2 及以后**:关卡执行案纳入标准 ③执行案阶段,与其他系统执行案一起接受完整质量门审查。
---
## 二、策划职责边界
### 2.1 策划在关卡执行案中做什么
- ✅ 定义区域坐标范围和尺寸(cm 单位)
- ✅ 定义每个结构体和布景的位置、尺寸
- ✅ 标记可交互物体和收集品的精确位置
- ✅ 引用 BSP 资产**类别名**和组合方式(如 "Wall_400x300 × 2 叠加")
- ✅ 为每个区域指定标识色材质(如 `MI_DevRed`)
- ✅ 定义交通流线和区域连接关系
- ✅ 定义场景边界遮挡方式
- ✅ 提供光照方向建议(建议值,可调)
### 2.2 策划不做什么
- ❌ 不写引擎组件名(Actor、Component、Blueprint、Widget 等)
- ❌ 不写文件路径(如 `/Game/Content/BlockingStarterPack/...`)
- ❌ 不写 Blueprint 类名或 C++ 类名
- ❌ 不写精确的硬编码参数值(标注"建议值,可调"并附范围)
- ❌ 不写代码或脚本
### 2.3 BSP 资产建议的性质
策划在关卡执行案中引用的 BSP 资产建议是**方向性指引**,不是硬性要求。程序有权根据实际资产尺寸和可用性做替代,但必须在搭建报告中记录偏差。
---
## 三、坐标体系:混合方式
### 3.1 场景绝对坐标系
- **原点**:场景西南角地平面
- **X 轴**:向东为正
- **Y 轴**:向北为正
- **Z 轴**:向上为正
- **单位**:cm(对应 UE5 中 1 uu = 1 cm)
程序在 UE5 中将关卡原点设在场景西南角,所有绝对坐标直接对应 UE5 世界坐标。
### 3.2 区域内偏移坐标系
- 每个区域定义一个**区域原点**(该区域西南角在场景中的绝对坐标)
- 区域内所有物件的坐标使用**相对于区域原点的偏移**
- 偏移格式:(ΔX, ΔY, ΔZ),ΔX 向东为正,ΔY 向北为正,ΔZ 向上为正
### 3.3 为什么用混合坐标
- **区域级绝对坐标**:让程序快速定位每个区域在大场景中的位置,便于地面铺设和边界搭建
- **区域内相对偏移**:策划不需要在脑中做加法,每个区域内部的物件位置从 (0,0,0) 开始数即可。程序搭建时先在绝对坐标放置区域原点空 Actor,再按偏移量摆放内部物件
---
## 四、程序白模搭建工作流
白模搭建是 **⑥程序实现** 的子任务(记为 6a),在系统代码实现(6b-6d)之前或并行执行。
### 4.1 输入与输出
**输入**:
- `level-vXX-<name>-execution.md` — 关卡执行案(空间指南)
- `scene-vXX-<name>.md` — 场景设计案(氛围参考)
- `interaction-system-execution.md` — 交互物清单
- `collection-system-execution.md` — 收集品清单
- `<system>-tech.md` — 技术设计方案
- `Content/BlockingStarterPack/` — BSP 资产
**输出**:
- `Content/Maps/LVL_<SceneName>V<XX>.umap` — 白模关卡文件
- `docs/technical/level-vXX-build-report.md` — 搭建报告(偏差记录)
### 4.2 搭建流程
```
Phase A: 准备 Phase B: 地面与边界 Phase C: 逐区域搭建
A1 阅读关卡执行案 B1 铺设地面 C1 结构体
A2 创建资产映射表 B2 放置边界遮挡物 C2 布景物
A3 创建关卡文件 C3 交互物
C4 收集品
Phase D: 光照 Phase E: 验证
D1 定向光/天空光 E1 角色比例检查
D2 路灯/局部光源 E2 流线通行检查
```
#### Phase A: 准备
**A1 — 阅读关卡执行案**
通读整个关卡执行案,重点关注:
- 场景参数(总尺寸、角色身高/视角高度)
- 区域坐标布局表和交通流线
- 每个区域的结构体和布景清单
- 交互物和收集品的位置
**A2 — 创建资产映射表**
在搭建报告或技术方案中,将策划的 BSP 资产建议映射到引擎中的实际资产路径:
| 设计文档资产建议 | 实际 UE 资产路径 | 备注 |
|----------------|-----------------|------|
| Wall_400x300 | `BlockingStarterPack/Meshes/Architecture/Walls/SM_Wall_400x300` | 400×20×300 cm |
| BedSingle | `BlockingStarterPack/Meshes/Bedroom/SM_BedSingle` | |
| Primitives 组合 | `BlockingStarterPack/Meshes/Primitives/SM_Cube` | 按需缩放 |
**A3 — 创建关卡文件**
创建 `Content/Maps/LVL_<SceneName>V<XX>.umap`。设置:
- World Settings:GameMode override 指向项目 GameMode
- Player Start:放在区域 Z1(家)门口附近
- 无需 World Partition 或 Level Streaming(80m×60m 单关卡足够)
#### Phase B: 地面与边界
**B1 — 铺设地面**
使用 `SM_Floor_1000x1000` 平铺覆盖整个场景。按区域分配标识色材质。
**B2 — 放置边界遮挡物**
按关卡执行案第五章放置边界围墙/围挡。确保所有边界启用物理碰撞。
#### Phase C: 逐区域搭建
按区域编号顺序搭建(建议 Z1 → Z3 → Z2 → Z4 → Z5 → Z6 → Z7,先搭主路径再搭分支)。
每个区域按以下顺序:
1. **C1 结构体**:放置墙体、地板、门框、窗框等建筑构件
2. **C2 布景物**:放置家具、装饰物等场景道具
3. **C3 交互物**:在指定位置放置交互物 Actor(按技术方案配置)
4. **C4 收集品**:在指定位置放置收集品 Actor(按技术方案配置)
#### Phase D: 光照
1. **定向光**:根据关卡执行案光照建议放置 Directional Light
2. **天空光**:Sky Light 提供环境补光
3. **路灯/局部光源**:在全局物件清单中标记了光源的位置放置点光源
#### Phase E: 验证
**E1 — 角色比例检查**:
以主角(身高 ~120cm)视角验证:
- [ ] 所有门洞可通过(最低门洞高度 > 180cm)
- [ ] 室内摄像机不穿墙/天花板
- [ ] 窗台高度合理(主角能看出去或够不到)
- [ ] 桌面/柜台高度与主角身高协调
**E2 — 流线通行检查**:
沿主流线行走验证:
- [ ] 主要路径无死胡同(除非设计如此)
- [ ] 区域过渡自然、方向感清晰
- [ ] 步行距离合理(从家到最远点不超过 1 分钟游戏内步行)
- [ ] 视线引导合理(玩家知道该往哪走)
### 4.3 Actor 命名规范
所有关卡内 Actor 遵循统一命名:
```
LVL_<ZoneID>_<Category>_<Description>
ZoneID: Z1-Z7
Category: STR(结构体) | PROP(布景) | INTR(交互物) | COLL(收集品) | BND(边界) | LGT(光源)
```
示例:
- `LVL_Z1_STR_SouthWall` — Z1 家的南墙
- `LVL_Z1_PROP_OldBicycle` — Z1 家的旧自行车
- `LVL_Z1_INTR_01_Fridge` — Z1 第 1 号交互物(冰箱)
- `LVL_Z1_COLL_10_CatEyeMarble` — Z1 第 10 号收集品(猫眼弹珠)
- `LVL_Z3_BND_EastBarricade` — Z3 街道东段施工围挡
- `LVL_Z3_LGT_StreetLight_01` — Z3 第 1 盏路灯
### 4.4 Outliner 文件夹结构
```
LVL_<SceneName>V<XX>/
Z1_<区域名>/
Structure/
Props/
Interactables/
Collectibles/
Z2_<区域名>/
...
Zn_<区域名>/
...
Global/
Boundaries/
Lighting/
PlayerStart/
```
### 4.5 搭建报告
搭建完成后,产出 `docs/technical/level-vXX-build-report.md`,包含:
| 章节 | 内容 |
|------|------|
| 搭建概要 | 总 Actor 数、各类别数量、实际关卡尺寸 |
| 逐区域对照 | 文档要求 vs 实际搭建,标注偏差 |
| 资产替代清单 | 文档建议资产 vs 实际使用资产,附原因 |
| 缩放记录 | 使用了非 1:1 缩放的 Actor |
| 未实现项 | 跳过或占位的项目及原因 |
| 比例验证结果 | E1/E2 检查清单的实际结果 |
**发布要求**:报告内容必须同时:
1. 写入本地文件 `docs/technical/level-vXX-build-report.md`
2. **以评论形式发布到对应任务 Issue**(与本地文件内容一致,供 PM 和策划直接在 Issue 中查看)
搭建报告在 ⑦版本复盘时作为偏差分析的输入。
---
## 五、PM 关卡文档质量门检查项
以下检查项补充到标准执行案质量门中,仅在审查关卡执行案时使用。
### 5.1 关卡资产存在验证
关卡执行案的质量门**仅做资产存在验证**——确认策划引用的 BSP 资产在 `Content/BlockingStarterPack/` 中实际存在:
- [ ] 关卡执行案中引用的每个 BSP 资产类别是否在 BlockingStarterPack 中存在?
- [ ] 标记为"Primitives 组合"的替代方案是否合理(Cube/Cylinder/Sphere 等)?
- [ ] 标识色材质引用是否在 14 种可用材质范围内?
### 5.2 搭建异常上报
关卡执行案的空间精度、比例、跨文档一致性等维度的准确性,由**程序在白模搭建过程中验证**(Phase E 比例检查和流线检查)。PM 不在质量门阶段检查这些维度。
**流程**:
1. 程序在白模搭建 Issue 评论中发布搭建报告,包含偏差和异常
2. PM 阅读搭建报告,如果发现程序汇报了异常(如尺寸偏差、资产无法匹配、比例问题、交互物位置冲突等),PM 将异常汇总并**汇报给用户确认**
3. 用户决定是否需要策划修正关卡执行案,或接受当前偏差
4. PM 不自行判断关卡空间精度的通过/不通过
---
## 六、特殊考虑
### 6.1 儿童主角比例
ChildHood 的主角是 ~120cm 身高的儿童,不是标准成人(~180cm)。这影响:
- **门洞高度**:BSP 门框为成人设计(~200-300cm),儿童通过没有问题,但需要注意摄像机高度
- **摄像机视角**:~100cm 高度,比标准第三人称低。2.5m 围墙在成人视角可以看过去,在儿童视角会感觉更高更封闭
- **家具比例**:标准 BSP 家具(桌高 ~75cm、床高 ~50cm)对儿童视角是合理的
- **街道宽度**:5m 宽的街道对儿童感觉宽敞但不空旷
### 6.2 中式城郊场景的资产缺口
BlockingStarterPack 以西式/现代城市场景为主。以下千禧年城郊物件没有精确匹配:
- 小卖部招牌/柜台 → Primitives 组合 + 标识色材质
- 公用电话亭 → Primitives 组合
- 红砖墙 → Wall + MI_DevRed
- 绿色铁门 → RotativeDoor + MI_DevGreen
- 晾衣杆 → Beam + Cylinder 支撑
- 水泥路面裂缝 → Floor + Decal 贴花
完整替代方案参见 `.claude/refs/blockout-asset-reference.md` 第十五节。
### 6.3 单关卡场景
v0.1 场景为 80m×60m,不需要 World Partition、Level Streaming 或 Data Layer。整个场景在一个 `.umap` 文件中加载。后续版本扩展到 150m×120m 时可能需要评估是否使用 Data Layer 或 Sub-level。
### 6.4 单人开发节奏
单人开发者切换策划和程序角色时,关卡执行案就是**交接文档**。策划会话中产出执行案,程序会话中按执行案搭建白模。搭建报告是**反向交接**——记录实际搭建中的偏差,供策划下次更新执行案。