This commit is contained in:
2026-05-10 22:20:54 +08:00
parent d6219f1a0c
commit 192accd796
92 changed files with 7045 additions and 1559 deletions

View File

@@ -1,6 +1,6 @@
# AI 原生抓大鹅 Match3D 玩法创作工具与玩法系统 PRD
更新时间:`2026-04-30`
更新时间:`2026-05-10`
## 0. 文档目的
@@ -16,7 +16,7 @@
## 1. 一句话定义
让百梦主通过 Agent 对话确认题材、需要消除次数难度,系统编译出一个可试玩、可发布的单局抓大鹅玩法作品;玩家在 `10` 分钟倒计时内点击圆形空间中可见物品,把物品放入下方 `7` 格备选栏,每凑齐 `3` 个同物品 id 自动消除,最终清空圆形空间内全部物品即胜利。
让百梦主在创作页通过表单确认题材主题和难度选项,系统根据难度选项派生需要消除次数难度数值,并编译出一个可试玩、可发布的单局抓大鹅玩法作品;玩家在 `10` 分钟倒计时内点击圆形空间中可见物品,把物品放入下方 `7` 格备选栏,每凑齐 `3` 个同物品 id 自动消除,最终清空圆形空间内全部物品即胜利。
---
@@ -36,7 +36,7 @@
```text
平台创作入口
-> 选择“抓大鹅”
-> Agent 对话确认题材、需要消除次数、难度
-> 入口表单确认题材主题、难度选项
-> 生成待发布结果页
-> 编辑作品基础信息
-> 发布前试玩
@@ -62,7 +62,7 @@
## 3.1 复用什么
1. 复用平台创作中心入口。
2. 复用 Agent-first 创作体验。
2. 复用拼图式创作页入口表单体验。
3. 复用“创作会话 -> 结果页 -> 发布 -> 运行态”的平台主链。
4. 复用作品基础信息、标签、封面、发布接口和作品管理体验。
5. 复用现有 Rust / SpacetimeDB 后端基线。
@@ -93,13 +93,13 @@ Match3D 必须形成独立玩法域,后续技术方案至少需要覆盖:
首版 demo 必须满足:
1. 平台新增“抓大鹅”玩法创作入口。
2. 创建流程采用 Agent 对话收集关键配置。
3. Agent 必须在进入结果页前确认:
2. 创建流程采用入口表单收集关键配置。
3. 表单必须在进入结果页前确认:
- 题材主题
- 需要消除次数
- 难度 `1~10`
4. 支持系统自动补全配置,用户确认后开始创造
5. 题材阶段允许上传参考图片
- 3D 素材风格
- 难度选项
4. `需要消除次数` 与难度 `1~10` 数值不再作为独立输入框展示,由难度选项派生
5. 生成抓大鹅草稿消耗 `20` 光点,生成按钮必须显式展示
6. 结果页支持编辑游戏名称、标签、封面图等基础发布信息。
7. 发布前支持试玩,并允许随时停止和修改配置。
8. 发布不要求试玩通关。
@@ -110,7 +110,8 @@ Match3D 必须形成独立玩法域,后续技术方案至少需要覆盖:
13. 清空圆形空间中全部物品即胜利。
14. 倒计时结束或备选栏满即失败。
15. 胜利 / 失败后展示结算界面。
16. 点击、入槽、消除、失败、胜利的即时反馈效果由前端先行呈现,后端负责权威确认、状态落库和成绩可信性
16. 入口页的 3D 素材风格选择会进入素材图提示词,并作为结果页手动 Rodin 3D 模型生成的默认提示词依据
17. 点击、入槽、消除、失败、胜利的即时反馈效果由前端先行呈现,后端负责权威确认、状态落库和成绩可信性。
---
@@ -137,13 +138,22 @@ Match3D 必须形成独立玩法域,后续技术方案至少需要覆盖:
## 6.1 创作方式
Match3D 首版参考拼图早期的 Agent 对话收集锚点,而不是拼图后期的纯表单入口
Match3D 首版参考拼图后期的入口表单收集方式,而不是早期的 Agent 对话锚点收集
Agent 的职责是帮助用户确认可以直接编译 demo 的最小配置:
表单的职责是帮助用户确认可以直接编译 demo 的最小配置:
1. 题材主题。
2. 需要消除次数
3. 游戏难度。
2. 3D 素材风格
3. 游戏难度选项
`需要消除次数` 与游戏难度数值仍属于后端会话配置,但不再要求用户手填。当前入口页固定采用以下映射:
```text
轻松 -> 需要消除 8 次,难度 2
标准 -> 需要消除 12 次,难度 4
进阶 -> 需要消除 16 次,难度 6
硬核 -> 需要消除 20 次,难度 8
```
## 6.2 必填配置
@@ -151,13 +161,13 @@ Agent 的职责是帮助用户确认可以直接编译 demo 的最小配置:
题材决定后续生成或选择物品素材的方向。用户可以自定义主题,例如水果、玩具、食物、符号等。
首版 demo 不接入真实图片生成。当前运行态可消除物统一使用参考图方向的 25 个积木件类型表现,不使用透明气泡,也不在图案上放文字标识。前端首版用差异化颜色、积木造型和 3D 程序化模型表现可消除物,避免玩家在堆叠状态下难以辨认。
首版 demo 不接入真实图片生成。当前运行态可消除物统一使用题材方向的 25 个积木件类型表现,不使用透明气泡,也不在图案上放文字标识。前端首版用差异化颜色、积木造型和 3D 程序化模型表现可消除物,避免玩家在堆叠状态下难以辨认。
可消除物尺寸使用五档相对体积规则XL 型相对体积为 `1.60~2.30`L 型为 `1.25~1.60`M 型为 `1.00`XS 型为 `0.65~0.85`S 型为 `0.35~0.50`。单局中 XL / L / M / XS / S 按本局使用的消除物类型数的 `20% / 30% / 30% / 15% / 5%` 分配;非整数配额按最大余数补齐,确保总数等于本局使用类型数量。同一关卡内同一个颜色和造型的物品只能对应一个尺寸档位;可存在同尺寸但不同颜色和造型的物品。后端运行态通过 `radius` 下发权威尺寸,前端只按快照表现。
### 需要消除次数
用户输入任意正整数
该字段由难度选项派生,不作为入口页独立输入框展示
该字段不是胜利条件,而是本局总物品规模配置:
@@ -169,21 +179,23 @@ Agent 的职责是帮助用户确认可以直接编译 demo 的最小配置:
### 难度
用户输入 `1~10` 的数字,代表从低到高的难度感受
用户选择 `轻松 / 标准 / 进阶 / 硬核` 之一,系统派生 `1~10` 范围内的难度数值
首版 demo 中,用户只需凭感觉选择难度;具体难度规则由系统内部解释。后续优化阶段再细化难度曲线、生成算法和遮挡策略。
## 6.3 自动配置
### 3D 素材风格
如果用户不想逐项填写,系统可以自动补全题材、需要消除次数和难度。
入口页在题材主题与难度之间展示 `3D素材风格` 横向滑动选择。首批固定选项为:
自动补全后的配置必须展示给用户确认,用户确认后才能开始创造。
```text
黏土手作 / 低多边形 / 玩具塑料 / 木质雕刻 / 体素积木 / 金属机甲 / 自定义
```
## 6.4 参考图片
每个内置选项使用 VectorEngine `gpt-image-2-all` 生成的画风参考图展示;参考图保存在 `public/match3d-style-references/`,只作为入口选择的视觉提示,不作为用户上传参考图。选择内置风格时,前端提交 `assetStyleId``assetStyleLabel` 与对应 `assetStylePrompt`。选择 `自定义` 时必须弹出独立面板,用户填写描述后才允许应用;自定义描述作为 `assetStylePrompt` 进入后端生成链路。
题材阶段允许用户上传参考图片
## 6.3 参考图片
首版只支持图片参考,不支持视频参考。参考图片用于影响题材表现,不作为运行时规则裁决依据
抓大鹅入口页不展示参考图片上传。题材表现先由题材文本和草稿切割图片链路承接;后续需要 3D 模型时,在结果页 `3D素材` Tab 以切割图片作为图生模型参考图手动触发
---
@@ -210,9 +222,9 @@ Agent 的职责是帮助用户确认可以直接编译 demo 的最小配置:
## 7.3 素材生成边界
首版结果页暂时不生成额外素材
抓大鹅草稿生成链路会生成首批 `3` 个题材物品素材文本模型生成物品名VectorEngine 生成 `2*2` 素材图并切割独立图片。入口页选择的 `assetStylePrompt` 必须写入素材图提示词;结果页手动 Rodin 图生模型时,继续以该物品图片和默认提示词作为起点
后续如果需要生成题材物品、伪 3D 物品、场景背景或封面图,需要先补充本文档或新增技术方案,再进入编码
生成出的独立图片先作为草稿页 `3D素材` Tab 的预览资产返回,状态为 `image_ready`模型文件为空。正式平台资产绑定、Rodin 生成模型转存和二次编辑流程以后续技术方案为准
## 7.4 发布前试玩
@@ -415,15 +427,14 @@ itemTypeCount = clearCount <= 25 ? clearCount : 25
前端负责所有游戏过程中需要即时呈现的反馈效果:
1. 展示 Agent 创作界面。
1. 展示表单式创作界面。
2. 展示结果页和基础编辑表单。
3. 上传参考图片
4. 展示运行态场景、物品、倒计时和备选栏
5. 基于最新后端快照执行 2D 命中检测、悬停、按压和选中反馈
6. 发送玩家点击意图
7. 在等待后端确认期间,先行播放飞入、入槽、三消、腾格、胜利和失败过渡效果
8. 收到后端确认后,把本地表现校正到权威快照
9. 展示结算界面。
3. 展示运行态场景、物品、倒计时和备选栏
4. 基于最新后端快照执行 2D 命中检测、悬停、按压和选中反馈
5. 发送玩家点击意图
6. 在等待后端确认期间,先行播放飞入、入槽、三消、腾格、胜利和失败过渡效果
7. 收到后端确认后,把本地表现校正到权威快照
8. 展示结算界面
前端可以做即时表现预判,但不得把预判结果作为最终规则真相或成绩来源。
@@ -444,7 +455,7 @@ itemTypeCount = clearCount <= 25 ? clearCount : 25
```ts
interface Match3DCreatorConfig {
themeText: string;
referenceImageSrc?: string;
referenceImageSrc?: string | null;
clearCount: number;
difficulty: number;
}
@@ -453,9 +464,9 @@ interface Match3DCreatorConfig {
字段说明:
1. `themeText`:题材主题。
2. `referenceImageSrc`可选参考图片
3. `clearCount`:需要消除次数,必须为正整数。
4. `difficulty`:难度,范围为 `1~10`
2. `referenceImageSrc`历史兼容字段,入口页固定提交为 `null`
3. `clearCount`由难度选项派生的需要消除次数,必须为正整数。
4. `difficulty`难度选项派生的难度数值,范围为 `1~10`
## 11.2 作品结构
@@ -656,15 +667,17 @@ GET /api/runtime/match3d/runs/:runId
创作入口只展示必要信息,不默认堆叠玩法规则说明。
## 14.2 Agent 工作区
## 14.2 入口表单
Agent 每轮优先追问最影响 demo 生成的一个问题。
入口表单只展示三个输入块:
已确认的信息应清晰展示给用户确认:
1. `想做一个什么题材的抓大鹅?` 大文本输入框。
2. `3D素材风格` 横向滑动风格卡,最后一个为 `自定义`
3. `难度` 选项按钮。
1. 题材主题
2. 需要消除次数。
3. 难度
入口页不展示参考图、`需要消除次数` 数值输入、`难度数值` 滑杆,也不展示 `题材 / 物品 / 难度` 三个摘要框。`需要消除次数``difficulty` 由难度选项派生后提交给后端
抓大鹅入口页必须适配移动端创作页一屏内展示,页面自身不产生纵向滚动。题材输入框、风格横滑区、难度按钮和生成按钮根据可视高度自适应压缩,风格区只允许横向滑动
## 14.3 结果页
@@ -689,22 +702,24 @@ Agent 每轮优先追问最影响 demo 生成的一个问题。
首版 PRD 对应 demo 验收标准:
1. 用户可从平台创作入口进入“抓大鹅”模板。
2. Agent 能确认题材、需要消除次数难度。
3. 用户可上传参考图
4. 系统可生成待发布结果页
5. 用户可编辑游戏名称、标签、封面图等基础信息
6. 用户可发布前试玩,且试玩失败不阻断发布
7. 运行态能展示圆形空间、倒计时、物品和 `7` 格备选栏
8. 物品可重叠、遮挡、堆叠
9. 被完全遮挡物品不可点击,露出可点击区域的物品可点击
10. 点击通过后物品飞入备选栏
11. 备选栏中 `3` 个相同物品 id 自动消除
12. 清空空间中全部物品后胜利
13. 倒计时结束或备选栏满后失败
14. 胜利结算展示使用时间
15. 失败结算展示完成进度和重新开始按钮
16. 局内即时反馈由前端先行呈现,关键状态以后端确认快照校正
17. 相关中文文档通过编码检查
2. 入口表单能确认题材主题、3D 素材风格和难度选项,并提交派生后的消除次数难度数值
3. 入口页不展示参考图上传
4. 内置风格显示画风参考图,自定义风格通过独立面板填写并进入提交 payload
5. 移动端入口页所有内容一屏展示,不产生纵向滚动
6. 系统可生成待发布结果页,并在草稿中返回首批切割图片素材预览
7. 用户可编辑游戏名称、标签、封面图等基础信息
8. 用户可发布前试玩,且试玩失败不阻断发布
9. 运行态能展示圆形空间、倒计时、物品和 `7` 格备选栏
10. 物品可重叠、遮挡、堆叠
11. 被完全遮挡物品不可点击,露出可点击区域的物品可点击
12. 点击通过后物品飞入备选栏
13. 备选栏中 `3` 个相同物品 id 自动消除
14. 清空空间中全部物品后胜利。
15. 倒计时结束或备选栏满后失败
16. 胜利结算展示使用时间
17. 失败结算展示完成进度和重新开始按钮
18. 局内即时反馈由前端先行呈现,关键状态以后端确认快照校正。
19. 相关中文文档通过编码检查。
---
@@ -719,7 +734,7 @@ Agent 每轮优先追问最影响 demo 生成的一个问题。
## 阶段 B创作与结果页
1. 新增平台创作入口。
2. 接入 Agent 会话。
2. 接入创作会话。
3. 编译草稿并进入结果页。
4. 复用基础信息编辑和发布链。

View File

@@ -110,9 +110,10 @@
```text
平台创作中心
-> 选择视觉小说
-> 选择创作起点:一句话 / 文档 / 空白
-> 进入 visual-novel-agent-workspace
-> Agent 生成或补齐底稿
-> 视觉小说入口页只展示一句话创作输入框和视觉画风选项
-> 点击生成草稿
-> 进入 visual-novel-generating
-> 生成或补齐底稿
-> 进入 visual-novel-result
-> 编辑世界观、角色、场景、剧情阶段、资产和运行时配置
-> 点击试玩
@@ -154,10 +155,11 @@
1. 作品标题。
2. 一句话简介。
3. 世界观摘要
4. 玩家身份
5. 3 到 6 个主要角色
6. 3 到 8可用场景
3. 视觉画风
4. 世界观摘要
5. 玩家身份
6. 3 到 6主要角色
7. 3 到 8 个可用场景。
7. 3 到 6 个剧情阶段。
8. 初始场景、初始旁白和第一轮可选行动。
@@ -772,20 +774,23 @@ service client 要复用现有请求封装、鉴权和错误提示风格,不
### 12.1 工作台
工作台只展示创作需要的输入和状态:
入口页只展示创作需要的输入和状态:
1. 创作起点选择:一句话、文档、空白
2. 文本输入框和文档上传
3. Agent 对话区域
4. 底稿生成进度
5. 进入结果页按钮。
1. 一句话创作输入框
2. 视觉画风选项,参考抓大鹅入口页的横向卡片选择结构
3. 生成草稿按钮
4. 错误、忙碌与禁用态
点击生成草稿后进入 `visual-novel-generating` 过程页,过程页复用平台已有生成进度面板,展示一句话输入、画风和草稿生成阶段;完成后自动进入 `visual-novel-result` 草稿页。
不展示:
1. 平台规则说明。
2. 外部仓库平台功能介绍。
3. 回放、分享回放、录像、复盘入口。
4. 大段字段解释
3. 文档 / 空白创建入口。
4. Agent 对话侧栏
5. 回放、分享回放、录像、复盘入口。
6. 大段字段解释。
### 12.2 结果页