# 开发计划 ## 1. 开发原则 - 先验证风险,再建设完整 UI。 - 每个阶段有可运行结果和退出标准。 - 未通过技术关卡时不扩大代码量掩盖问题。 - 文档、测试和代码同步更新。 - 当前文档批准后才进入功能开发。 ## 2. 阶段 0:技术原型 ### 目标 验证决定产品能否成立的核心问题。 ### 工作项 1. 在 macOS 上发现并验证已安装 Spine Editor。 2. 验证自定义 `.app`/可执行文件路径。 3. 调用 3.8、4.0、4.1、4.2、4.3 本地版本。 4. 为五个版本各构建最小 `spine-cpp` adapter。 5. 用 JSON、SKEL、Atlas 和纹理加载一帧预览数据。 6. 验证 QOpenGLWidget 绘制 Region、Mesh、Clipping 和混合模式。 7. 验证官方 Texture Unpacker。 8. 验证 SKEL → 临时 `.spine` → JSON → 设置 images → 最终 `.spine`。 9. 验证断网运行。 10. 在 Windows/MSVC 至少完成构建和 Editor CLI 冒烟测试。 ### 技术关卡 - 五套 Runtime 可以隔离构建并通过统一 ABI 加载。 - 五个版本至少各有一个 JSON/SKEL 可预览。 - 本地 Editor 路径和版本能可靠识别。 - JSON/SKEL 可以生成可回读 `.spine`。 - 图片路径能自动关联,或明确证明需要采用哪种降级方案。 - 官方解包和 PMA 行为被记录。 - 断网时已准备版本可执行完整流程。 任何关卡失败都先更新架构决策,不进入大规模 UI 开发。 ## 3. 阶段 1:工程骨架与领域模型 - CMake Presets 和平台 toolchain。 - 目录、target 和第三方依赖边界。 - `AssetGroup`、`SpineVersion`、`RecoveryJob`。 - 文件系统、进程和报告接口。 - 基础错误码和状态机。 - 单元测试框架和 CI 基线。 - 自研代码行数检查。 退出标准:macOS/Windows Debug 与 Release 构建通过,核心模型测试通过。 ## 4. 阶段 2:扫描、配对与预检 - 递归扫描。 - JSON/SKEL 版本识别。 - Atlas parser。 - 页面解析和图片校验。 - 资源组配对评分。 - 手动修正模型。 - Unicode、长路径和安全边界。 退出标准:官方样例和异常样例能形成确定、可解释的资源组。 ## 5. 阶段 3:离线预览器 - 五个 Runtime 插件完整实现。 - Texture Provider。 - OpenGL 批次渲染。 - 动画、Skin、Seek、速度控制。 - 调试显示。 - 视觉回归测试。 退出标准:五个版本功能矩阵通过,拔网预览正常。 ## 6. 阶段 4:Editor 管理与转换 - macOS/Windows 自动发现。 - 自定义路径 UI。 - 版本能力映射。 - Spine CLI 封装。 - JSON/SKEL 导入。 - 图片路径规范化。 - 语义回读验证。 - 原子发布和恢复报告。 退出标准:五个版本端到端转换通过,输入未改变。 ## 7. 阶段 5:Atlas 解包 - 官方解包器唯一流程。 - 官方结果验证。 - PMA、Scale、rotate、offset、多页和 polygon packing。 - PNG/JPG/WebP 测试。 退出标准:官方解包与失败原因可观察、可报告,且各版本具有视觉回归。 ## 8. 阶段 6:批处理和用户体验 - 任务队列、取消和失败隔离。 - 批量重名策略。 - 进度、日志和错误建议。 - 设置迁移和会话恢复。 - 中英文界面。 - 无障碍和高 DPI 检查。 ## 9. 阶段 7:发布准备 - macOS/Windows 安装包。 - Qt 和图片插件部署。 - Runtime 许可与 Third-Party Notices。 - 官方测试资源排除检查。 - 离线端到端测试。 - 签名、公证和干净机器安装测试。 - 性能、内存和损坏输入测试。 ## 10. 建议评审点 每阶段完成后提交: - 功能演示 - 自动测试结果 - 新增风险 - 文件长度报告 - 依赖与许可变更 - 下一阶段范围 ## 11. 编码顺序建议 开始开发后的第一个提交不应是完整项目 UI,而应是阶段 0 的最小原型和实验记录。技术原型通过后,再固化公共接口和正式目录。