Files
SpineParticlesWeb/DateToSpine/docs/01-产品需求.md
T
2026-09-07 21:29:15 +08:00

147 lines
5.3 KiB
Markdown

# 产品需求
## 1. 产品目标
DateToSpine 帮助用户批量处理仅保留运行时导出文件、但缺失原始 `.spine` 工程的资源。软件需要在转换前验证资源并显示可交互动画预览,用户确认后才调用本地 Spine Editor 生成可编辑工程。
产品目标是“尽可能恢复可编辑工程”,不是承诺字节级还原原工程。运行时导出时已经丢失的数据无法凭空恢复。
## 2. 用户前提
- 用户对待处理资源拥有合法使用和转换权限。
- 用户电脑已安装并激活 Spine Editor。
- 需要生成 `.spine` 时,本地已有与资源主/次版本相匹配的 Editor 版本。
- 未安装 Editor 时,软件仍可扫描、校验、配对和预览,但不能生成 `.spine`
## 3. 支持范围
### 3.1 骨骼数据
| 格式 | 支持状态 | 说明 |
|---|---|---|
| `.json` | 正式支持 | 必须通过 Spine schema 识别,不能把普通 JSON 当作骨骼数据 |
| `.skel` | 正式支持 | 按导出版本选择匹配 Runtime 和 Editor |
| `.skel.bytes` | 候选兼容 | 通过内容识别,扩展名支持在技术原型后决定 |
### 3.2 Spine 版本
| 版本 | 支持级别 |
|---|---|
| 3.8.20+ | 正式支持 |
| 3.8.0—3.8.19 | 尽力识别,不作正式保证 |
| 4.0.x | 正式支持 |
| 4.1.x | 正式支持 |
| 4.2.x | 正式支持 |
| 4.3.x | 正式支持 |
| 3.7.x 及更早 | 不支持 |
### 3.3 Atlas 与纹理页
- `.atlas``.atlas.txt`
- 单页和多页 Atlas
- PNG
- JPG/JPEG
- WebP
- 同一 Atlas 中不同扩展名的多页纹理
- Straight Alpha 和 Premultiplied Alpha
其他图片格式通过可扩展解码接口保留未来支持空间,但不属于首版承诺。
## 4. 主用户流程
主界面只暴露四个动作:
1. 用户把完整导出资源或资源文件夹拖入窗口。
2. 软件自动配对并显示预览;有多套资源时用顶部下拉框切换。
3. 用户用底部下拉框切换动画。
4. 用户点击“一键转换为 .spine”并选择保存位置。
版本检测、Atlas 配对、图片处理、Editor 验证和结果校验均在后台自动完成。只有自动找不到 Spine Editor 时,才要求用户指定 Spine 应用或可执行文件路径。普通流程不提供 Editor 管理页或技术参数面板。
## 5. 功能需求
### 5.1 扫描与配对
- 支持文件、文件夹和批量拖放。
- 支持递归扫描,允许配置最大深度。
- 根据 Atlas 中声明的页面名查找纹理,不能只依赖同名前缀。
- 根据附件 path、文件名、目录距离和名称前缀对数据与 Atlas 评分。
- 自动结果必须显示置信度。
- 歧义配对必须由用户确认,不能静默选择。
- 单个失败组不能终止整个批次。
### 5.2 预览
- 默认循环播放,支持动画切换。
- 画布自动适应窗口。
- 支持 Mesh、权重、Clipping、双颜色 Tint 和四种混合模式。
- 显示缺失纹理、版本错误和 Runtime 加载错误。
### 5.3 Editor 管理
- 自动查找常见安装位置。
- 自动查找失败时才显示路径选择器,支持自定义应用、可执行文件或安装目录。
- 支持一个安装入口对应多个本地可用版本。
- 转换前执行实际版本探测。
- 不读取、存储或传输 Spine 激活码。
### 5.4 批量转换
- 默认串行调用 Spine Editor,扫描和静态校验可并行。
- 支持停止等待中的任务和取消当前子进程。
- 支持跳过、自动重命名和覆盖策略。
- 默认不覆盖输入文件。
- 正式结果验证通过前只写入任务临时目录。
- 每组资源产生可读日志和机器可读报告。
## 6. 恢复能力边界
通常可恢复:骨骼、Slots、Skins、Attachments、约束、动画、Deform、事件和绘制顺序。
如果源文件导出时未启用 Nonessential data,可能永久缺失:
- 骨骼颜色和图标
- Mesh 手工边
- 编辑器辅助信息
- 部分附件原始尺寸
- 原工程图片和音频目录设置
- 编辑器视图与工作区状态
报告必须区分:
- 完整恢复
- 主体恢复但缺少 Nonessential data
- 工程生成成功但图片关联需要注意
- 转换失败
## 7. 非功能需求
- macOS 和 Windows 功能一致。
- 运行时完全离线,不依赖 CDN 或在线服务。
- 支持中文、空格、Unicode 和较长路径。
- 所有外部进程使用参数数组启动,不能拼接 shell 命令。
- 崩溃或取消不能留下半成品覆盖正式结果。
- 日志不能包含用户授权信息或不必要的绝对路径。
- 普通操作错误必须以用户可理解的语言呈现。
## 8. 首版不包含
- Spine 3.7 及更早版本。
- 绕过 Spine Editor 授权或下载 Editor。
- 自行生成或逆向写入 `.spine` 格式。
- 动画编辑功能。
- 云端转换、资源上传或账号系统。
- 将官方示例资产打包给最终用户。
## 9. 产品验收标准
- 五个目标版本均可完成 JSON、SKEL 的预览和转换测试。
- 断网环境可完成已准备版本的完整流程。
- PNG、JPG/JPEG、WebP 页面可预览。
- 纹理只允许使用匹配版本 Spine Editor 的官方 Texture Unpacker 解包。
- 生成物能被匹配版本 Editor 重新读取。
- 骨骼、Skin、附件、动画和事件数量通过语义核对。
- 原始输入不被修改。
- 单任务失败不影响批次其他任务。
- 最终安装包不含官方测试资源和 Spine Editor。