feat: add edutainment drawing and visual package flows

This commit is contained in:
2026-05-14 14:17:10 +08:00
parent 10e8beea80
commit e444266e1e
109 changed files with 8788 additions and 996 deletions

View File

@@ -0,0 +1,101 @@
# 宝贝爱画寓教于乐独立关卡 PRD 2026-05-13
## 1. 目标
新增寓教于乐内容线独立关卡:
```text
宝贝爱画
```
工程 ID 固定为:
```text
baby-love-drawing
```
该关卡默认出现在“发现 / 寓教于乐”板块下方。当前阶段只做本地 Demo 保存,验证完成后再补正式持久化。
## 2. 关卡结构
启动宝贝爱画后进入绘画运行态:
1. 屏幕中央是带边框的空白画板;
2. 画板边框内是可绘画区域;
3. 画板外左侧展示彩虹 7 色;
4. 画板外右侧中下方展示画笔和橡皮;
5. 用户进入内容后默认手持画笔;
6. 手持画笔或橡皮时,屏幕上实时显示跟随右手位置的工具图案标识。
## 3. 输入规则
颜色选择:
1. 仅检测左手;
2. 左手悬停在某个颜色区域 1.5 秒后,选中该颜色;
3. 颜色固定为彩虹 7 色。
工具切换:
1. 右手移动到画笔或橡皮工具区域;
2. 右手握拳后,将手里的工具切换为对应工具。
绘画与擦除:
1. 右手在画布区域握拳时,当前工具生效;
2. 当前工具为画笔时留下轨迹;
3. 当前工具为橡皮时擦除轨迹;
4. 右手张开时,画笔或橡皮抬起,不在画布上生效。
按钮选择:
1. 完成;
2. 使用绘画魔法;
3. 保存;
4. 再画一张;
5. 返回。
以上按钮都使用任一手悬停 2 秒完成选中。
## 4. 绘画魔法
用户完成绘画后,可使用“绘画魔法”。
绘画魔法使用 image-2以用户绘画内容和笔触轨迹生成对应绘本风格图片内容。
前端不得直接读取、拼接或暴露图片生成密钥。image-2 调用必须通过后端代理。
## 5. 保存规则
当前只做本地 Demo 保存。
保存规则:
1. 魔法生成前保存,只保存一张原图;
2. 若用户未保存原图,直接点击魔法生成,则魔法生成后保存时同时保存原图和魔法图;
3. 保存完毕后,可继续“再画一张”或“返回”。
## 6. 展示与开关
宝贝爱画只属于寓教于乐内容线。
`VITE_ENABLE_EDUTAINMENT_ENTRY` 关闭时:
1. 不展示“发现 / 寓教于乐”频道;
2. 不展示宝贝爱画默认卡片;
3. 不允许通过 `/runtime/baby-love-drawing` 直达运行态。
## 7. 验收
1. 寓教于乐开启时,“发现 / 寓教于乐”下方展示“宝贝爱画”默认关卡卡片;
2. 寓教于乐关闭时,不展示宝贝爱画,也不能直达运行态;
3. 进入后展示空白画板、彩虹 7 色、画笔和橡皮;
4. 默认工具为画笔;
5. 左手悬停颜色 1.5 秒后选中颜色;
6. 右手移动到工具区并握拳后切换画笔或橡皮;
7. 右手握拳在画布内绘制或擦除,张开时不生效;
8. 任一手悬停按钮 2 秒后触发按钮;
9. 完成后可保存原图;
10. 完成后可使用绘画魔法生成绘本风格图片;
11. 未保存原图直接使用绘画魔法后,保存会同时保存原图和魔法图;
12. 保存后可再画一张或返回。

View File

@@ -29,11 +29,24 @@
2. 模板名称:`宝贝识物`
3. 两个物品;
4. 两个物品图;
5. 作品标签。
5. 游戏视觉主题包;
6. 作品标签。
物品图使用 VectorEngine `gpt-image-2-all` / image-2 生成。图片生成只能走后端或后续后端预留接口,前端不得泄`VECTOR_ENGINE_API_KEY`
物品图使用 VectorEngine `gpt-image-2-all` / image-2 生成。图片生成只能走后端接口,前端不得读取、拼接或暴`VECTOR_ENGINE_API_KEY`
本地 Demo 阶段若真实生图接口未接入完成,允许前端 service 返回明确标记为 `placeholder` 的占位图形,用于打通创作到结果页的交互链路;该占位结果不得伪装成正式 image-2 资产
每个关键词只生成一张围绕该关键词的单一物品形象。生成 prompt 必须锁定寓教于乐板块统一的卡通绘本草地舞台插画风,但最终画面不生成背景、场景、氛围渲染、人物、手、篮子、礼物盒、文字、水印或 UI。服务端必须把生成结果转成透明 PNG并执行透明抠图后处理只有透明抠图后的素材才允许写入草稿 `itemAssets` 并进入游戏运行态
同一次创作还必须使用 image-2 生成游戏视觉主题包包含背景环境、UI 装饰框、礼物盒、篮子和烟雾弹出特效资源。主题包必须继续保持寓教于乐插画风,并根据用户填写的两个物品关键词匹配主题:例如关键词偏动漫角色或玩具时,背景环境和元素可使用动漫、玩具主题;关键词偏水果时,背景环境和元素可匹配果园、自然主题;其它关键词按其语义匹配合适主题。主题包不得改变关卡玩法规则,不新增文字说明、额外按钮或额外判定规则。
视觉主题包的资源边界:
1. 背景环境图不做透明抠图,但必须保证屏幕中间、中下方和底部左右篮子区域清爽,不遮挡放大后的物品、礼物盒和篮子;
2. UI 装饰框用于字幕条和计数器风格化包装,只生成装饰边框和主题点缀,不生成文字、数字或按钮;
3. 礼物盒资源输出为透明 PNG运行态按当前礼盒视觉的 2 倍尺寸展示,素材主体必须饱满清晰;
4. 篮子资源输出为透明 PNG运行态按当前篮子视觉的 1.5 倍尺寸展示,左右篮子仍固定为两个物品对应选项,篮子造型资源可以复用同一张主题篮子图;
5. 烟雾弹出特效资源输出为透明 PNG用于礼物盒打开瞬间覆盖开盒区域并承接中央物品弹出不生成物品、篮子、礼物盒或文字。
当前本地 Demo 阶段已接入真实 image-2 资源链路。创作提交必须成功获得 `generationProvider = "vector-engine-gpt-image-2"` 的两个物品透明 PNG 和完整视觉主题包后才能进入结果页、试玩或发布若后端接口、登录态、VectorEngine 配置或上游生成失败,前端必须停留在生成失败状态并展示错误,不得静默回退为占位图。历史草稿中若仍存在 `generationProvider = "placeholder"` 的占位资源,结果页必须提示重新生成,试玩和发布前必须先补齐 image-2 资源。
## 4. 标签规则
@@ -63,6 +76,8 @@
试玩按钮进入宝贝识物首关运行态,运行态消费当前草稿中的两个物品名称和两张物品图,不重新生成或改写物品内容。
若草稿包含视觉主题包运行态还必须消费该主题包中的背景环境、UI 装饰、礼物盒、篮子和烟雾弹出特效资源;旧草稿或接口失败时允许回退到当前 CSS 绘本风兜底。
## 6. 发布后体验
发布完成后作品应进入寓教于乐内容线,并在寓教于乐入口开启时可被板块消费。
@@ -73,27 +88,30 @@
本 PRD 同步约束首关运行态,已确认规则包括:
1. 礼物盒打开在本地调试绑定 `F`
1. 进入关卡后礼物盒自动打开并弹出首个随机物品
2. 每轮仅中间礼物盒跳出的物品随机;左右两侧篮子固定为当前草稿两个物品的顺序;
3. 下一关按钮当前占位;
4. 不新增用户未确认的计时、失败次数、分数、体力或难度递增。
5. 屏幕中上方字幕固定为“将物品放入对应的篮子里”。
6. 礼物盒位于屏幕中下方,任意手抬起后打开并跳出下一个随机物品
6. 礼物盒位于屏幕中下方并按当前视觉放大一倍,首次进入关卡和每次正确反馈结束后的新轮次都从上方落下后自动打开
7. 屏幕下方左侧和右侧分别展示两个固定篮子,左侧固定使用草稿第一个物品图,右侧固定使用草稿第二个物品图。
8. 明确左手连续横向移动达到阈值时将当前物品送入左侧篮子,明确右手连续横向移动达到阈值时将当前物品送入右侧篮子;选篮不使用动作名判定,侧别未知的手部轨迹不参与选篮
9. 正确时展示“真棒”字幕和正确特效;错误时展示“再想一想吧”字幕和错误特效,物品回到中央
10. 成功 20 次后展示“恭喜你!小朋友!”字幕和特效,并展示“再来一次”和“下一关”按钮
11. 当前本地 Demo 阶段音效与语音播报接口只预留调用点,不在前端写死外部硬件或服务接口
8. 左右篮子按当前视觉放大 50%
9. 礼物盒打开时播放烟雾特效,中央物品从烟雾特效中弹出;物品弹出后礼物盒从舞台移除
10. 明确左手连续横向移动达到阈值时将当前物品送入左侧篮子,明确右手连续横向移动达到阈值时将当前物品送入右侧篮子;选篮不使用动作名判定,侧别未知的手部轨迹不参与选篮
11. 正确时展示“真棒”字幕和正确特效;错误时展示“再想一想吧”字幕和错误特效,物品回到中央
12. 成功 20 次后展示“恭喜你!小朋友!”字幕和特效,并展示“再来一次”和“下一关”按钮。
13. 当前本地 Demo 阶段音效与语音播报接口只预留调用点,不在前端写死外部硬件或服务接口。
## 8. 验收
1. 创作入口显示 `宝贝识物` 并可进入模板表单。
2. 未填写任一物品名称时不能生成草稿。
3. 生成草稿后进入结果页,展示两个物品名称和物品图。
4. 草稿标签中始终包含精确 `寓教于乐`
5. 发布 payload 始终包含精确 `寓教于乐`
6. 发布完成后出现分享弹窗或发布完成状态
7. 前端不读取或暴露 VectorEngine 密钥
8. 结果页试玩进入宝贝识物运行态,不再显示“试玩关卡正在接入中”
9. 运行态可通过 `F` 打开礼物盒,通过鼠标左键拖动映射左手横向移动,通过鼠标右键拖动映射右手横向移动
10. 成功 20 次后出现“再来一次”和“下一关”按钮。
4. 生成草稿后包含视觉主题包主题包含背景环境、UI 装饰框、礼物盒、篮子和烟雾弹出特效资源
5. 草稿标签中始终包含精确 `寓教于乐`
6. 发布 payload 始终包含精确 `寓教于乐`
7. 发布完成后出现分享弹窗或发布完成状态
8. 前端不读取或暴露 VectorEngine 密钥
9. 结果页试玩进入宝贝识物运行态,不再显示“试玩关卡正在接入中”
10. 运行态通过鼠标左键拖动映射左手横向移动,通过鼠标右键拖动映射右手横向移动。
11. 成功 20 次后出现“再来一次”和“下一关”按钮。

View File

@@ -4,6 +4,7 @@
## 重点入口
- [宝贝爱画寓教于乐独立关卡 PRD](./BABY_LOVE_DRAWING_EDUTAINMENT_LEVEL_PRD_2026-05-13.md):定义寓教于乐内容线的 `宝贝爱画` 独立本地 Demo 关卡,覆盖画板、七色选择、画笔/橡皮、手部绘画、完成、image-2 绘画魔法、本地保存和关闭入口隐藏边界。
- [宝贝识物寓教于乐模板 PRD](./BABY_OBJECT_MATCH_EDUTAINMENT_TEMPLATE_PRD_2026-05-11.md):定义寓教于乐内容线的 `宝贝识物` 创作模板覆盖两个物品名称输入、image-2 物品图生成、精确 `寓教于乐` 标签、结果页和发布边界。
- [AI 原生幕间文字游戏模板 PRD参考 MOKU 的剧本模拟器闭环](./AI_NATIVE_TEXT_GAME_TEMPLATE_MOKU_REFERENCE_PRD_2026-05-05.md):参考 MOKU / 幕间类 AI 文游的剧本游乐场、自由行动、AI GM、记忆和模拟器强反馈经验但只落为陶泥儿 `text-game` 模板,复用平台接口,不迁入外部社区、支付、私有存档或回放。
- [AI 原生视觉小说模板 PRDTXT 玩法平台化接入](./AI_NATIVE_VISUAL_NOVEL_TEMPLATE_PRD_2026-05-05.md):参考 `Interactive-fiction-backend` / `Interactive-fiction-frontend` 的 TXT 玩法经验,但只保留视觉小说模板创作与运行闭环,完全使用 Genarrative 平台接口,并明确删除回放和外部平台功能。