docs: 互动剧情演绎 v2 文档补充(README 功能说明 + 技术设计 4.14 小节)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-08-13 16:52:23 +08:00
co-authored by Claude Opus 4.7
parent 4a9eb1d7a2
commit 3dde5b2b42
2 changed files with 23 additions and 3 deletions
+3 -3
View File
@@ -4,7 +4,7 @@
## 功能特性
- **分支情境闯关**:36 计 × 每计 1-3 个现代情境,每个情境是一棵决策树——环境场景、人物、道具构成每个决策的要素,不同选择走向不同分支、产生不同结果,多条路线都能拿到最佳结果;每步即时反馈"智慧点评",**每个选择都解释好处/坏处(对比点评)**,结算页展示整局选择路线回顾;**通关 = 到达最佳终局,完美 = 走完所有分支,完美才解锁下一关**;未通关走错路线扣教训分
- **分支情境闯关**:36 计 × 每计 1-3 个现代情境,每个情境是一棵决策树——环境场景、人物、道具构成每个决策的要素,不同选择走向不同分支、产生不同结果,多条路线都能拿到最佳结果;每步即时反馈"智慧点评",**每个选择都解释好处/坏处(对比点评)**,结算页展示整局选择路线回顾;**通关 = 到达最佳终局,完美 = 走完所有分支,完美才解锁下一关**;未通关走错路线扣教训分;**互动剧情演绎 v2**:节点台词流(3-6 句)逐句演绎——气泡 + 自动朗读 + 逐字高亮 + 表情切换,决策选项直接嵌入剧情流,角色回应(好处/对比)以气泡融入剧情无弹窗;剧本内容由离线管线 oMLX 生成草稿 + 人工精修 + 导入回填
- **多样互动**:闯关不止选项点击——道具选择、步骤排序、动作过关(跳跃/攀爬/躲避/奔跑,一套组件配置驱动)、拖拽放置、接取收集、找线索、连线配对共 8 类互动形态按年龄适配;操作型互动成功/失败同样走向对应决策分支,教育逻辑不受互动形式影响
- **计策学堂**:每章开头先认识计策——卡通图文讲解名称、拼音、释义与"什么时候用它",再进情境践行,构成认知 → 践行 → 反思完整学习闭环
- **智慧总结**:每章闯关完成后一道反思题"哪个说法总结了这条计策",把直觉选择转成语言认知,答对奖励积分
@@ -59,7 +59,7 @@
| 家长中心 | 家长注册/登录(微信 openid 或手机号)、孩子档案管理(含每日学习限额)、学习报告、实物奖品确认、生活任务确认 |
| 计策学堂 | 每章开头的认知环节:图文/动画讲解计策名称、拼音、释义、使用时机 |
| 关卡地图 | 36 计按六套分组展示,星星进度、解锁状态、计策卡图标 |
| 情境闯关 | 每关一棵决策树:环境场景 + 人物冲突 + 道具行为构成决策要素,入口 → 多样互动(选择/排序/动作过关-跳跃攀爬躲避奔跑/拖拽/找线索,按年龄适配)→ 多路线通往不同终局;通关=到达最佳终局,完美=走完全部分支解锁下一关;未通关走错扣教训分。已实现:选项选择 + 触控互动(道具选择/步骤排序/拖拽放置/找线索/连线配对,互动入口节点模型,成功进决策树/失败进失败终局)+ 对比点评(每个选项好处/坏处)+ 结算路线回顾 + 场景插画/角色立绘/道具图标视觉呈现;呈现为三幕小剧场:开场演出(旁白朗读+字幕逐字淡入+角色入场+道具飞入,可跳过)→ 决策演出(普通节点为动作卡——图标/拼音/听读/按压动画,config 互动节点为触控互动,选择后分支演出过渡再弹对比点评)→ 结局演出(成功彩带/失败鼓励语) |
| 情境闯关 | 每关一棵决策树:环境场景 + 人物冲突 + 道具行为构成决策要素,入口 → 多样互动(选择/排序/动作过关-跳跃攀爬躲避奔跑/拖拽/找线索,按年龄适配)→ 多路线通往不同终局;通关=到达最佳终局,完美=走完全部分支解锁下一关;未通关走错扣教训分。已实现:选项选择 + 触控互动(道具选择/步骤排序/拖拽放置/找线索/连线配对,互动入口节点模型,成功进决策树/失败进失败终局)+ 对比点评(每个选项好处/坏处)+ 结算路线回顾 + 场景插画/角色立绘/道具图标视觉呈现;呈现为三幕小剧场:开场演出(旁白朗读+字幕逐字淡入+角色入场+道具飞入,可跳过)→ 决策演出(普通节点为动作卡——图标/拼音/听读/按压动画,config 互动节点为触控互动,选择后分支演出过渡再弹对比点评)→ 结局演出(成功彩带/失败鼓励语);互动剧情演绎 v2:script 非空节点走剧情流(StoryPlayer 逐句台词演绎 + 决策嵌入剧情流 + 角色回应气泡无弹窗),script 空回退 v1 动作卡呈现 |
| 章末温故 | 每章完美后自动出现:随机抽 2-3 个已学计谋关卡重温(选项打乱),完成解锁下一章 + 奖励积分 |
| 智慧总结 | 每章完成后的反思题("哪个说法总结了这条计策"),答对 +5 分 |
| 生活践行 | 章完美后下发的真实生活小任务(家长引导完成并确认,得积分) |
@@ -69,7 +69,7 @@
| 徽章 | 成就徽章(集卡、连续学习、通关数、复习、探索等),自动解锁 |
| 奖品 | 积分兑换虚拟/实物奖品,兑换记录与状态 |
| 朗读拼音 | 拼音随内容一次性标注入库(逐字对齐 JSON,`common/pinyin.go` + 多音字词表),朗读音频优先播文件、无文件时浏览器语音降级朗读(H5),低龄档(4-6)全量开启;TTS 文件生成留后续接入 |
| 视觉素材生成 | 场景插画/角色立绘/道具图标/计策卡图标由 `cmd/genasset/` 离线生成管线调用本机 oMLXQwen3.5-9B)生成 SVG 并转 PNG,打包入客户端随五端发布;未生成素材按 emoji 映射兜底 |
| 视觉素材生成 | 场景插画/角色立绘/道具图标/计策卡图标由 `cmd/genasset/` 离线生成管线调用本机 oMLXQwen3.5-9B)生成 SVG 并转 PNG,打包入客户端随五端发布;未生成素材按 emoji 映射兜底。剧本台词流同管线生成:`go run ./cmd/genasset --only=scripts` 生成草稿(workspace/scripts/)→ 人工精修 → `--import-scripts` 校验 + 注音 + 回填 scene_node.script(幂等) |
### 后台(Web
+20
View File
@@ -527,6 +527,26 @@ config JSON 结构(`scene_node.config`,前端解析渲染):`{"kind":"pro
**互动形态判定**:config 互动节点用触控组件、普通决策节点一律动作卡——触控组件是 success/fail 双出口(成功进决策树 / 失败进失败终局),与多分支选项(多出口、各带独立点评)语义不兼容,故决策节点不套触控组件。
### 4.14 互动剧情演绎 v2(台词流演绎)
4.13 三幕小剧场之上,把"动作卡 + 弹窗点评"升级为**剧情流演绎**:节点台词逐句播出,决策选项直接嵌入剧情流,角色回应以气泡融入剧情(无弹窗),闯关从"做题"变为"演一幕小短剧"。
**数据模型**
- `scene_node` 新增 `script` 列(JSON 台词流),元素结构 `{speaker, text, pinyin, emotion}`:speaker 为角色名或「旁白」,text 为台词,pinyin 为逐字注音(**导入时**由 `common.AnnotatePinyin` 生成,不入草稿),emotion 为表情(normal/happy/sad/think/surprise,驱动角色立绘角标切换)
- 每节点 3-6 句,每句 8-30 字,至少 1 句旁白;**决策节点末句为角色提问(以?结尾)**衔接选项;**终局节点末句为角色总结**(不得是旁白)
- 决策树模型零改动:`level/detail` 接口透出 `script`scene_node/node_option/result_type 与 `level/choose` 接口均不变
**前端演绎(StoryPlayer + play.vue**
- `StoryPlayer` 逐句演绎:一句一气泡,朗读 `onEnd` 驱动下一句同步推进(朗读慢时逐字高亮等朗读);文本逐字高亮约 260ms/字引导跟读;emotion 驱动角色表情切换;单句 20s 无输出判 TTS 无声自动跳过(兜底防卡死);右上角「跳过」整段快进
- `play.vue` 剧情流:`script` 非空节点走 StoryPlayer`:key="curNode.node_id"` 重建组件保证状态干净,`@done` 后显示选项)→ ActionCard/触控选项 → 角色回应气泡融入剧情流;`script` 为空回退 v1 动作卡 + 弹窗点评呈现
- 反馈剧情化:对比点评(pros/cons)从弹层改为角色回应气泡,随剧情流逐条呈现(✓ 好处 / ✗ 对比),无弹窗打断
**剧本生成管线(genasset**
- `go run ./cmd/genasset --only=scripts`:按 prompt 约束(决策/终局节点语义、3-6 句、末句规则)调用本机 oMLX 生成草稿,落 `workspace/scripts/{level_id}/{node_id}.json``validateScript` 校验(3-6 句、每句 8-30 字、speaker 合法、≥1 句旁白、决策末句?/终局末句角色总结),不合格重试
- 人工精修草稿 → `go run ./cmd/genasset --import-scripts`:重新校验 + `AnnotatePinyin` 注音 + 回填 `scene_node.script`
- 幂等:仅处理 `script` 为空的节点;草稿已存在跳过(防重跑覆盖人工精修,`--force` 覆盖);`--strategy` 限定计策分批执行
- 试点:第 1 计 8 节点已导入精修,全量 36 计剧本由主会话按计分批生成
## 5. 开发计划
| 里程碑 | 内容 | 验收标准 |