4.1 KiB
4.1 KiB
阶段 0 技术原型记录
记录日期
2026-09-07
当前结论
首批工程骨架已经建立并在 macOS Apple Silicon 上通过构建测试。此阶段证明多版本 Runtime 隔离、基础输入识别、本地 Editor 发现和跨平台进程抽象可以按既定架构继续推进;尚未证明完整动画预览或 .spine 恢复流程。
本机环境
- Apple Clang 17
- CMake 4.4.3(项目最低要求仍为 3.25)
- Ninja 1.13.2
- Qt Base 6.11.2
- Qt Image Formats 6.11.2
- Spine Launcher 4.3.06 Apple Silicon
- Launcher 当前观察到启动 Spine Editor 3.8.99 Professional
只安装 Qt Base 与 Qt Image Formats,没有安装 Qt WebEngine、Location、NetworkAuth 等与产品无关的 Qt 元组件。
固定 Runtime 提交
| Runtime | 官方分支 | 提交 |
|---|---|---|
| 3.8 | 3.8 |
8b4844bd4b193ba9e54487ed397a777993cbad56 |
| 4.0 | 4.0 |
425ce416bb218b28caeec47b317aa57cd7140375 |
| 4.1 | 4.1 |
77a5db0ec6d16331f5efbaa7662bba9355bd3424 |
| 4.2 | 4.2 |
e7dc1435fa4a0083ab431f1b28e083c14a1f5c68 |
| 4.3 | 4.3 |
4309c05c287d3f15da778e68f5d2a483fe10a6a3 |
当前只展开各分支的 spine-cpp 源码。4.3 官方 Spineboy 资源仅用于开发测试,不进入安装目标和发行包。
已实现
- CMake/C++20 工程和 macOS、Windows Preset。
- 标准 C++ 核心库,不依赖 Qt。
- Spine 版本值对象和正式支持范围判断。
- JSON 最小 Spine schema 与版本探测。
- SKEL 二进制头部 hash/version 有界读取。
- Atlas 多页、page、region、PMA、scale、rotate、bounds/legacy 字段基础解析。
- macOS 常见 Spine 路径发现和
.app规范化。 - Windows 常见路径骨架和
.exe→.com规范化。 - 不经过 shell 的 POSIX/Windows 子进程执行器。
- 超时后终止本软件启动的整个子进程树。
- Launcher 版本与实际 Editor 版本分离解析。
- 五个 Runtime 独立静态目标和动态 adapter。
- 稳定 C ABI 版本与 metadata 加载验证。
- 极简 Qt 桌面外壳:资源拖放/选择、资源切换、动画切换和一键转换。
- Editor 自动发现;仅在自动发现失败时请求自定义路径。
- 4.3 Runtime 已实际加载官方 JSON、SKEL 和 Atlas,并输出动画/Skin/骨骼元数据。
- 4.3 Runtime 已输出裁剪后的纹理三角形,Qt 画布可循环播放并切换真实动画。
- 4.3 beta 后缀版本和新版 SKEL 文件头识别。
- CLI:Editor 发现、路径探测、数据版本检查。
构建与测试结果
cmake --preset macos-debug:通过。cmake --build --preset macos-debug:通过。- 五个官方 Runtime:通过 Apple Clang 编译。
- 五个 Runtime adapter:通过动态加载和 ABI/版本检查。
- 核心单元测试:全部通过。
- 官方 Spineboy JSON/SKEL 真实加载测试:通过,识别到 11 个动画。
- Qt 应用 offscreen 启动冒烟测试:通过。
Spine 4.3 上游源码在 Apple Clang 下产生一条未覆盖枚举值的 warning。第三方源码没有被修改,该警告暂不影响构建,后续记录在上游警告基线中。
实际 Editor 探测发现
直接执行本机 Spine --version 时先报告 Launcher 4.3.06,随后启动 3.8.99 Professional。旧版 launcher 在当前系统产生字体兼容警告,并且探测可能长时间不退出。
因此代码已经采用:
- 分离解析 Launcher 和 Editor 版本。
- 探测超时。
- 进程树终止。
- “已观察到 Spine 但探测超时”独立状态。
仅看到 Launcher 版本不能代表目标 Editor 版本可用。
尚未完成的阶段 0 关卡
- 对 3.8—4.2 执行真实资源预览。
- 目标 Editor 版本选择与离线缓存能力验证。
- 官方 Texture Unpacker 调用与结果验证。
- JSON/SKEL 到
.spine的端到端恢复。 - SKEL 图片路径双重导入/导出方案验证。
- Windows MSVC 构建与真实 Editor 测试。
下一步
先扩展 Runtime C ABI,以 4.3 adapter 实现真实资源加载、动画/Skin 元数据与 draw list;通过后把版本差异分别适配到 4.2、4.1、4.0 和 3.8。随后接 Qt OpenGL 预览画布,再进入 Editor 导入和官方解包流水线。