将项目架构从"整图+热区"升级为"驱动层+图层叠加",支持时间、状态、身份等多维度动态内容。
---
文件: `_build/data/driver_config.json` (8055 字节)
内容:
- 时间参数系统: 阶段、季节、时辰、光效映射
- 角色状态系统: identity/health/hunger/fatigue 阈值规则
- 互助层状态规则: 声望→状态映射,一次性下降
- NPC 规则: 称呼映射、出现条件、状态变体
- 季节滤镜配置: 4 季色调参数、前景效果
关键映射:
health < 50 → 禁用 climb/sneak/fight/run health < 20 → 触发 dying 事件 hunger < 30 → 对话出现"肚子叫" hunger < 10 → 场景被 starving_event 覆盖 fatigue ≥ 50 → 对话缩短 30% fatigue ≥ 80 → 对话缩短 60%
文件: `_build/data/story_v3.json` (14651 字节)
架构:
player_state ├── time (时间参数) ├── character (角色状态) ├── world (世界状态: 声望/互助层) └── marks (标记位) scenes ├── scene_001 ~ scene_008 (8 个场景) ├── npc_slots (NPC 插槽配置) ├── choices (选项 + condition 字段) └── template (场景模板引用) scene_templates (模板定义)
新增字段:
文件: `_build/js/engine_v3.js` (12886 字节)
核心方法:
| 方法 | 功能 |
|------|------|
| `applyTimeEffects()` | 时间→光效 |
| `applySeasonFilter()` | 季节→滤镜 |
| `filterOptionsByCharacterState()` | 角色状态→选项过滤 |
| `checkHealthLimitation()` | health→移动限制 |
| `getHungerStatus()` | hunger→饥饿状态 |
| `adjustDialogByFatigue()` | fatigue→对话缩短 |
| `getNPCTitle()` | identity→NPC 称呼 |
| `calculateSolidarity()` | 声望→互助层状态 |
| `shouldNPCAppear()` | 综合判断 NPC 是否出现 |
| `generateNPCDialog()` | 根据状态生成 NPC 对话 |
图层叠加渲染:
背景层 (background-layer) ↓ + 时间光效 (CSS filter) ↓ + NPC 热区层 (SVG hotzone-layer) ↓ + 前景层 (foreground-layer)
文件: `_build/css/style_v3.css` (7993 字节)
新增:
文件: `_build/index_v3.html` (5733 字节)
测试功能:
---
story.json (场景驱动) ├── scenes[].npcs[] (固定 NPC) └── scenes[].choices[] (硬编码选项) engine.js └── 直接渲染场景内容
driver_config.json (规则层) story_v3.json (数据层) ├── player_state (驱动层) └── scenes (场景层) engine_v3.js (引擎层) ├── 读取驱动层 ├── 应用规则 └── 动态生成内容
---
---
1. 图层叠加效果: 需要生成对应的背景图和滤镜素材
2. NPC 称呼插入: 当前仅返回称呼文本,未实际插入对话
3. 饥饿事件覆盖: `starving_event` 场景未定义
4. 健康限制: 选项的 `requires_health` 字段未在 story_v3.json 中定义
---
| 文件 | 状态 | 说明 |
|------|------|------|
| `driver_config.json` | ✅ 已写入 | 驱动层配置 |
| `story_v3.json` | ✅ 已写入 | 整合数据文件 |
| `engine_v3.js` | ✅ 已写入 | 状态驱动引擎 |
| `style_v3.css` | ✅ 已写入 | 图层叠加样式 |
| `index_v3.html` | ✅ 已写入 | 测试页面 |
---
1. 用户测试: 打开 `index_v3.html`,点击测试按钮验证驱动层生效
2. 素材补充: 生成背景图、滤镜图、NPC 图、前景图
3. 坐标定义: 使用现有整图作为参照,标注各元素的坐标区域
4. 对话模板: 实现身份→称呼的实际插入逻辑
---
原因: 关注点分离
好处:
原因: 同一场景适配不同身份
好处:
原因: NPC 动态出现
好处:
---
完成时间: 2026-06-24 20:30 GMT+8
—— 人与AI协作记录 ——