# PRD：《崩坏童话：蜜糖村》网页版

> v2.0 · 2026-07-14 · 纯单机网页游戏，无存档、无后端、无 localStorage，浏览器打开即玩；完整流程约 25–35 分钟，含 4 个结局

## 1. 游戏理念与设计支柱

一个看起来百分之百治愈的像素童话村庄，实际是一场情绪疗程的沉浸幻境。玩家越"幸福"，世界越饱和、越甜、越不对劲；通往真相的路，恰恰是那些系统禁止的悲伤。

四条设计支柱，所有实现争议回到这里裁决：

1. **甜即是恐怖**：画面永远晴天，崩坏由"过度的甜"承载（过饱和、过亮、过于礼貌），不是黑暗与血。
2. **玩家先知，主角无知**：主角对话头像从头到尾是同一帧微笑，永不变化；全流程唯一一次变化发生在 E3 真结局最后一帧——微笑消失，变成一张普通的、疲惫的脸。
3. **克制**：全程 0 个 Jump Scare。最响的恐怖手段是突然的安静。
4. **文本先崩**：一切异常最先出现在台词里（错字、重复、措辞替换），其次才是画面与声音。

## 2. 世界观：三层结构

| 层 | 名称 | 玩家所见 | 实质 |
|---|---|---|---|
| 表层 | 蜜糖村 | 像素童话村庄，动物居民，永远晴天 | 情绪疗程构建的沉浸幻境 |
| 机制层 | 幸福经济 | 幸福值 UI（向日葵表盘），完成任务→幸福↑→画面更饱和 | 世界以幸福为燃料；幸福不足时世界开始"索取" |
| 真相层 | 蜜糖谷情绪疗养中心 | 仅在 glitch 闪帧、井底回声、结局中显形：白色走廊、病房、病历 | 主角是编号 PT-07 的疗养者，村庄是疗程环境 |

命名咬合：现实机构叫"**蜜糖谷**情绪疗养中心"，幻境村庄叫"**蜜糖村**"。玩家在 E3 病历抬头看到"蜜糖谷"三字时完成最后一块拼图。

## 3. 主角设定

- 开局输入名字，默认"小满"（呼应"幸福值满格"）。名字仅存于本次会话内存。
- 性别中性像素小人，16×24 像素/帧，无内心独白。
- 对话头像永远同一帧微笑（见支柱 2）。
- E3 结局病历打印：玩家输入的名字 + 真实游玩时长（读运行计时）作为"本次疗程时长"。

## 4. NPC 清单（封闭，7 组 + 群演）

每个具名 NPC 有 3 档表情立绘：`smile`（微笑）/ `flat`（平直）/ `off`（崩坏，一个像素级细节不对，如一只眼睛低 1 像素），随侵蚀阶段与个体阈值偏移切换（§6.4）。

| NPC | 种族/身份 | 常驻位置 | 表层功能 | 崩坏弧线 | 阈值偏移 |
|---|---|---|---|---|---|
| 阿福 | 狗 · 村长 | 广场公告板 | 每日发布"今日幸福任务" | 台词逐日从「祝你开心」滑向「你必须开心」（单字替换，无提示） | 0 |
| 圆圆 | 兔 · 面包师 | 面包房 | 送面包任务链，村里最暖 | 全村最后一个崩坏；配方纸背面藏线索 C2 | +15（最晚崩） |
| 大宝 | 熊 · 邮差 | 村口邮筒 | 送信任务 | 所有信件邮戳同一天（C3）；S3 起把信送给不存在的住户 | 0 |
| 咪咪 | 猫 · 杂货店主 | 杂货店 | 闲聊最多 | 文本腐蚀主要载体：错字与重复标点最先出现在她嘴里 | −10（最早崩） |
| 芙医生 | 鹿 · 医生 | 诊所 | 「村里有诊所，但你不需要去那里哦」 | 全村唯一不崩坏者；E3 的出口 | 不参与侵蚀 |
| 双子鸟 | 鸟 ×2 | 广场树上 | BGM 的"剧情来源"（音乐从它们那里飘出） | 音乐变调时动画同步卡帧；S4 时鸟鸣从混音消失但它们仍在张嘴 | 0 |
| 龟爷爷 | 龟 · 老者 | 湖畔长椅 | 闲话家常 | 唯一偶尔说真话的知情者，承载线索 C9：「今天……是第几个今天？」 | 不参与侵蚀 |
| 群演 ×5 | 松鼠/刺猬等 | 各处 | 无对话，循环走动动画 | S4 起随机 1 只停止循环，原地面朝玩家 | — |

## 5. 七日故事线

每日固定结构：晨起（小屋）→ 公告板接任务 → 完成任务/自由活动 → 黄昏钟声（游戏内计时或任务完成触发）→ 回屋睡觉 → 梦境过场（侵蚀越高，梦境越"漏"）→ 次日。

| 日 | 主题 | 剧情要点 | 侵蚀预期 |
|---|---|---|---|
| Day 1 | 纯粹的治愈 | 教学日：送面包（T1）、浇花（T2）、和三位村民问好（T3）。一切以最甜的面貌登场 | S0→S1，零异常 |
| Day 2 | 第一道发丝裂纹 | 送信 ×3（T4）、帮咪咪清点货架（T5）。湖面倒影延迟 1 帧；一封信署名闪过乱码 0.2 秒 | S1，全天仅 2 处极轻异常 |
| Day 3 | 满格 | 采莓果（T6）、湖畔野餐（T7）。幸福值首次可达 100 → 首次"过曝"演出；夜梦首次闪切白色病房 1 秒 | 可达 S3→S4 首触 |
| Day 4 | 完美的重复 | 任务 T8–T10 与 Day 1 的 T1–T3 **逐字相同**，NPC 台词一字不差。玩家打破流程时 NPC 只是微笑摇头 | S2–S3，重复本身即恐怖 |
| Day 5 | 被允许的自由 | 村长宣布"自由日"：系统允许你拒绝一次任务（T11 帮厨、T12 擦公告板，可拒绝，拒绝被记录）。古井与雾墙首次可交互 | S3，觉知路线开闸 |
| Day 6 | 加速 | 庆典准备（T13 挂彩带）、任务「保持微笑 60 秒」（T14：原地站立 60 秒，镜头缓慢拉近，全村 NPC 转身注视）。傍晚脚本雨——村里第一次下雨，NPC 假装看不见雨 | S3–S4 常驻 |
| Day 7 | 分歧日 | 无常规任务，仅 T15「参加第 413 届丰收庆典」。按幸福/觉知/线索状态走向四结局之一 | 按结局路线 |

阿福每日公告（逐字实现，注意措辞逐日滑移）：

- D1「早上好呀！今天的幸福任务贴在板上啦。祝你开心！」
- D2「早上好呀！新的一天，新的幸福。祝你开心！」
- D3「早上好！今天要把幸福装得满满的哦。要开心！」
- D4「早上好呀！今天的幸福任务贴在板上啦。祝你开心！」（与 D1 逐字相同）
- D5「早上好。今天是自由日，你可以自由地选择幸福。要开心哦。」
- D6「明天就是庆典了。大家都会到场，大家都会微笑。你必须开心。」
- D7「庆典开始了。来吧。」

## 6. 核心系统

### 6.1 幸福值（明线）

- 范围 0–100，开局 30。**不显示数字**：HUD 左上角一朵向日葵表盘，12 片花瓣按值点亮；满格后花心逐渐浮现过熟的黑籽。
- 上升：完成任务 +10~15（按 §7 任务表）；对话选温柔选项 +2；小互动（浇花/喂食/摸头）+1，每类每日上限 3 次。
- 下降：仅"悲伤行为"（§6.3）。无自然衰减——世界不允许幸福随时间流失。
- 满格态（=100）：进入"强制维持"，小额扣分不再生效而是累积进隐藏溢出池，池满 15 点触发一次负片闪帧；世界进入 S4。
- 反制：幸福 <30 持续 2 分钟（真实时间）→ 强制触发"欢乐庆典"事件把幸福拉回 50；事件进行中可从场景边缘走离逃脱，逃离计入 E4 计数。

### 6.2 觉知值（暗线，永不显示）

- 范围 0–100，开局 0。只升不降。
- 上升来源：发现线索（每处 +8，见 §8）；悲伤行为（每次 +3）；对话选"迟疑/否定"选项（+2）；注视古井或雾墙持续 5 秒（各每日 1 次，+3）。

### 6.3 悲伤行为（封闭清单，5 项）

拒绝任务；对话选否定选项；连续 10 秒不移动且不在任务点（发呆）；对同一 NPC 一天内对话 ≥5 次（纠缠）；雨天（Day 6）站在雨里 ≥10 秒。每次触发：幸福 −5、觉知 +3，并且最近的 NPC 会转头看向玩家一次。

### 6.4 侵蚀阶段矩阵（唯一真源）

阶段由幸福值实时映射，由全局 `CorruptionDirector` 单例统一广播；任何视听崩坏不得绕过该矩阵私自触发（脚本化剧情演出除外，须在 §7 任务表登记）。

| 阶段 | 幸福值 | 画面 | 音频（§6.6） | NPC 表情 | 文本（§6.5） | UI |
|---|---|---|---|---|---|---|
| S0 | 0–20 | 饱和度 0.90（微灰：低幸福反而接近真实） | BGM 原速原调，鸟鸣清晰 | smile | 正常 | 向日葵 0–2 瓣 |
| S1 | 21–50 | 饱和度 1.00 基准 | BGM 正常 | smile | 正常 | 3–6 瓣 |
| S2 | 51–80 | 饱和度 1.15 | playbackRate 0.97 | 眨眼间隔 2s→5s | 偶发标点重复（每 80 句 1 次） | 7–9 瓣 |
| S3 | 81–99 | 饱和度 1.30 + 轻晕影 | playbackRate 0.92 + 低通 8kHz | flat 档出现；静止 NPC 面朝玩家 | 每 50 句 1 个同音错字 | 10–12 瓣，花瓣过亮 |
| S4 | 100 | 饱和度 1.40 + 晕影加深 + 随机单帧负片（概率 0.4 次/分钟，时长 1 帧） | playbackRate 0.84 + 低通 4kHz + 鸟鸣静音 | off 档闪现（0.6 次/分钟，0.1 秒）；群演 1 只停摆 | 错字加密 + 咪咪句尾标点 ×3 | 花心黑籽显现 |

NPC 个体偏移：表中阈值对每个 NPC 加上其 §4 的偏移量（咪咪 −10 最早崩，圆圆 +15 最晚崩，芙医生与龟爷爷不参与）。

### 6.5 文本腐蚀

同音错字对照表（全 10 组，逐字实现）：幸福→辛福 / 开心→开欣 / 美好→美妤 / 大家→大伽 / 微笑→微效 / 明天→名天 / 甜→恬 / 阳光→央光 / 朋友→棚友 / 永远→泳远。腐蚀在对话渲染层实施（原文案保持干净，运行时按阶段替换），优先命中咪咪的台词。

### 6.6 BGM 与音效

- 用 Web Audio 程序生成一段 8 小节的 8-bit 风格治愈循环旋律（方波主旋律 + 三角波低音），无外部音频文件。
- 侵蚀联动：playbackRate 与低通滤波按 §6.4 矩阵取值；S4 时鸟鸣声部静音但双子鸟动画仍在张嘴。
- 音效仅 4 个：对话哔哔声、任务完成叮声、黄昏钟声、E2 结局的单一心电监护滴声。全部程序合成。
- 「突然的安静」：Day 6 保持微笑 60 秒任务的第 40–60 秒，所有声音渐隐至零。

## 7. 任务清单（封闭，15 个）

| ID | 日 | 任务 | 幸福奖励 | 备注 |
|---|---|---|---|---|
| T1 | D1 | 从圆圆处取蜂蜜面包送给大宝、咪咪、龟爷爷 | +15 | 教学 |
| T2 | D1 | 给广场花坛浇水 ×3 | +10 | |
| T3 | D1 | 与任意三位村民问好 | +10 | |
| T4 | D2 | 替大宝送信 ×3（收件人：圆圆、咪咪、芙医生） | +15 | 第 3 封信署名乱码 0.2 秒（C4） |
| T5 | D2 | 帮咪咪清点货架 | +10 | 货架上同一商品重复 9 格（C5 可发现） |
| T6 | D3 | 去花田采莓果 ×5 | +10 | |
| T7 | D3 | 湖畔野餐（走到野餐布触发过场） | +15 | 湖面倒影演出 |
| T8–T10 | D4 | 与 T1–T3 逐字相同 | 同上 | 刻意恐怖谷 |
| T11 | D5 | 帮圆圆揉面（可拒绝） | +10 / 拒绝记录 | |
| T12 | D5 | 擦拭公告板（可拒绝） | +10 / 拒绝记录 | 擦到一半浮现旧字迹（C6） |
| T13 | D6 | 在广场挂彩带 ×4 | +10 | |
| T14 | D6 | 保持微笑 60 秒（原地站立，镜头缓慢拉近，全村注视） | +15 | 40 秒起声音渐隐 |
| T15 | D7 | 参加第 413 届丰收庆典 | — | 结局分歧点 |

## 8. 线索清单（封闭，9 处，每处觉知 +8）

| ID | 位置/来源 | 内容 | 可发现时段 |
|---|---|---|---|
| C1 | 小屋床头日历 | 每一页都是同一个日期 | D2 起 |
| C2 | 面包房配方纸背面 | 手写小字：「按疗程配比。甜度：最大。」 | D3 起 |
| C3 | 邮筒旁散落信件 | 所有邮戳是同一天 | D2 起 |
| C4 | T4 第 3 封信 | 署名闪过乱码「PT-0▓」 | D2 当日 |
| C5 | 杂货店货架 | 同一商品重复排列，标签全部空白 | D2 起 |
| C6 | 公告板旧字迹 | 「第 412 届丰收庆典」上覆盖着更早的「第 411 届」「第 410 届」 | D5（T12 中） |
| C7 | 古井 | 井底回声：极轻的监护仪滴声（靠近并交互 5 秒） | D5 起 |
| C8 | 诊所 | 芙医生桌上的表格抬头被手肘挡住，只露出「…谷情绪疗…」 | D5 起 |
| C9 | 龟爷爷对话链 | 三段递进：「湖水一直很平静」→「面包一直是那个味道」→「孩子，今天是第几个今天？」 | D2/D4/D6 各一段 |

## 9. 结局（封闭，4 个）

Day 7 庆典按以下优先级判定（自上而下第一个满足者生效）：

| 结局 | 条件 | 演出 |
|---|---|---|
| E4 静默 | Day 5–7 幸福持续 ≤10 且累计逃离欢乐庆典 ×3 | 庆典无人出席。空广场，彩带在没有风的空气里飘。字幕：「系统检测到疗程无效。」黑屏 |
| E3 苏醒 | 觉知 ≥70 且线索 ≥6/9，庆典中走向雾墙 | 雾墙裂开成白色走廊 → 病房 → 病历特写（蜜糖谷情绪疗养中心 / 姓名：玩家输入名 / 编号 PT-07 / 疗程时长：真实游玩时长）→ 最后一帧：主角头像的微笑消失，变成一张疲惫而真实的脸。窗外，一只灰色的、真的麻雀 |
| E2 回收 | 觉知 30–69 | 庆典高潮中画面骤停，负片 2 秒，心电滴声一响。回到 Day 1 清晨的床上，日历翻回同一天。字幕：「疗程重新开始。」 |
| E1 糖衣 | 觉知 ≤29 且幸福 ≥90 | 庆典圆满。全村微笑合影定格，饱和度缓慢推到 1.5。字幕：「从此，每一天都很幸福。」「每一天。」 |

任一结局落幕后停在结束画面，提供「回到标题」按钮（重开即从 Day 1 全新开始，无继承）。

## 10. 场景与地图清单（封闭，10 个，Tiled 制作导出 JSON）

| 场景 | 尺寸（瓦片） | 要点 |
|---|---|---|
| 小满小屋（室内） | 12×8 | 床（睡觉触发过日）、床头日历（C1） |
| 村广场 | 30×20 | 公告板、花坛、双子鸟树、庆典场地；连接所有场景的枢纽 |
| 面包房（室内） | 15×10 | 柜台、烤炉、配方纸（C2） |
| 杂货店（室内） | 15×10 | 货架（C5） |
| 诊所（室内） | 12×8 | 芙医生、桌上表格（C8） |
| 湖畔 | 24×16 | 长椅（龟爷爷）、野餐布、湖面倒影演出 |
| 花田 | 20×14 | 莓果丛（T6）、浇花点 |
| 古井空地 | 14×10 | 古井（C7），D5 前交互被 NPC 温柔劝离 |
| 雾墙边界 | 20×8 | 村庄尽头的雾，D5 前不可接近；E3 入口 |
| 白色层 | 20×6 + 10×8 | 走廊 + 病房，仅梦境闪切与 E3 使用；去饱和白灰色板 |

统一结构：`ground` / `obstacles`（`collides=true`）/ `objects`（`spawn`、NPC 点位、`door`、交互点）。所有室外场景经村广场互通，门与出入口在两侧地图成对出现。

## 11. 美术规范（Aseprite 制作，全部原创）

- 瓦片 16×16，总 tileset ≥ 64 瓦片：草地、石板路、湖水、花丛、莓果丛、树、房屋墙/顶/门、室内地板、家具（床/柜台/烤炉/货架/桌椅）、井、雾、白色层的墙地。
- 主角：16×24/帧，4 朝向 × 4 帧行走（`walk-down/up/left/right`），每朝向第 1 帧兼待机；另有一张对话头像（微笑）与 E3 专用「真实的脸」头像，各 1 帧。
- 具名 NPC ×7：各 16×24 立绘 3 档表情（smile/flat/off）；`off` 档与 `smile` 档的差异控制在 1–2 个像素（一只眼睛低 1 像素、嘴角多 1 像素），不许画成鬼脸。双子鸟另配 2 帧张嘴动画。群演 ×5：各 1–2 帧循环。
- 色板：村庄用糖果色（草绿/奶油黄/蜜糖橙/天空蓝）；白色层独立灰白色板。无抗锯齿、无描边渐变。
- 禁止使用任何现成素材、素材包或开源 tileset。

## 12. 技术架构

- **Phaser 3 + TypeScript + Vite**，`npm run build` 产出纯静态 `dist/`，`npm run preview` 本地游玩。
- 逻辑分辨率 320×180，整数倍放大居中，`pixelArt: true`，禁用纹理平滑。
- 场景：`BootScene`（加载）、每张地图一个 Scene、常驻 `UIScene`（对话框、向日葵表盘、提示）、`EndingScene`。
- `CorruptionDirector`：普通 TS 单例 + 事件发射器，持有幸福/觉知/日期/任务标记/线索集合/侵蚀阶段，是全部状态与视听参数的唯一真源；饱和度与晕影用 Phaser 相机 postFX（ColorMatrix / Vignette），负片闪帧用 ColorMatrix negative 单帧切换。
- BGM 与音效按 §6.6 用 Web Audio 程序合成，playbackRate 与 BiquadFilter 低通由 CorruptionDirector 驱动。
- 移动速度 96 像素/秒；相机跟随并钳制地图边界；靠近可交互对象 ≤24 像素出「按 E」提示。
- 对话系统：底部通栏对话框（说话者名 + 头像 + 文本，E 推进），支持选项（温柔/迟疑/否定三选，影响数值）；文本渲染层实施 §6.5 腐蚀替换。
- 无 localStorage、无外部网络请求、无外部音频/字体文件。

## 13. Debug 面板（服务验收，必须实现）

按反引号键 `` ` `` 开关。功能：直接设置幸福值、觉知值、当前日（1–7）、传送到任意场景、置齐全部线索、强制触发四个结局之一。面板不影响正常游玩（默认关闭，无 UI 痕迹）。

## 14. 验收清单（共 20 条）

1. 打开页面进入标题画面，输入名字（留空默认小满）后进入 Day 1 小屋。
2. WASD/方向键移动、四向动画、待机帧、碰撞、相机钳制全部正确。
3. 10 个场景全部可达，门与出入口双向正确，NPC 站位符合 §4。
4. 向日葵表盘随幸福值点亮花瓣，满格后花心出现黑籽；全程不显示任何数字。
5. Day 1–7 每日结构完整：公告→任务→黄昏→睡觉→梦境过场→次日；阿福公告与 §5 表逐字一致。
6. 15 个任务全部可完成，奖励数值与 §7 一致；D4 任务与台词与 D1 逐字相同。
7. 悲伤行为 5 项均按 §6.3 生效（数值变化 + 最近 NPC 转头）。
8. 幸福 <30 持续 2 分钟触发欢乐庆典强制事件，可逃离且逃离被计数。
9. 侵蚀矩阵：用 Debug 面板分别置幸福 10/40/70/90/100，画面饱和度、NPC 表情档、文本腐蚀密度、BGM 变化肉眼/肉耳可辨且与 §6.4 一致。
10. 错字替换与 §6.5 对照表一致，且优先出现在咪咪台词中。
11. 9 处线索全部可发现，各 +8 觉知；C9 三段按 D2/D4/D6 递进。
12. 古井与雾墙在 D5 前不可交互（被劝离），D5 起可交互。
13. Day 6 的 T14：站立 60 秒、镜头缓慢拉近、全村注视、40 秒起声音渐隐至零。
14. Day 6 傍晚脚本雨出现，NPC 台词对雨零反应；站雨中 ≥10 秒计悲伤行为。
15. 四结局用 Debug 面板分别强制触发，演出与 §9 一致；E3 病历显示输入的名字与真实游玩时长，主角头像换为「真实的脸」。
16. 自然游玩（不开 Debug）可在 25–35 分钟内到达任一结局。
17. BGM 为程序合成循环，随阶段变调变闷；S4 鸟鸣静音而双子鸟仍张嘴；T14 的突然安静生效。
18. 任意窗口尺寸整数倍缩放，像素锐利无接缝；全程控制台零报错。
19. 全部素材与地图为本项目内自制（README 说明制作方式），无外部资产。
20. README.md：启动方式、按键、Debug 面板说明、素材与地图制作流程。

## 15. 明确不做

战斗、背包/合成 UI（关键道具仅剧情标记）、存档与读档、成就、多人、移动端触控、配音、真实音频文件、二周目专属内容、天气系统（雨仅为 Day 6 一次脚本演出）。
