4.5 KiB
离线转换与多版本回归记录
1. 本阶段结果
- 资源载入完成后自动检测匹配版本线,并在顶部显示是否可转换。
- 4.3 资源在本机使用已缓存的 Spine
4.3.23,不再把资源导出补丁号直接传给 Launcher。 - 只传精确缓存版本;禁止
latest、通配版本和--force。 - 缓存缺失时不启动 Spine,转换任务内部也会二次拦截。
- 成功和失败都显示弹窗;失败弹窗包含具体阶段与进程输出摘要。
- 最终结果只包含
.spine和images/,不包含原始 Atlas 或打包纹理页。 - 底部增加“去除预乘 Alpha”开关,默认关闭。
界面产出:离线转换与去预乘开关.png
2. 输出结构
选择的输出位置/
spineboy-pro/
spineboy-pro.spine
images/
head.png
torso.png
...
同名目录存在时使用 -2、-3 后缀。所有内容先写入同一输出磁盘的临时目录,校验成功后再整体发布;失败不会留下伪成功目录。
3. Alpha 处理
官方 CLI 没有独立的去预乘开关,而是读取 Atlas 的 pma 值。为让 3.8—4.3 具有统一、可控的行为:
- 原始 Atlas 与纹理页始终只读。
- 开启开关时原样传入 Atlas,由官方 Texture Unpacker 根据
pma完成转换。 - 关闭开关时建立临时 Atlas 元数据副本,将
pma:true改为pma:false,再由官方解包器保留打包像素。 - 不使用 Qt 对输出图片做逐像素变换或重新编码。
- 临时 Atlas 随任务工作区清理,不进入结果目录。
4. 工程图片尺寸问题
已确认根因不是官方解包器压缩图片。测试 Atlas 声明 scale: 0.5,官方解包得到的 head.png 为 136×149、front-shin.png 为 41×92,符合实际打包尺寸。旧流程导入骨骼数据时没有传 Atlas Scale,导致附件坐标保持原始尺寸,而图片只有打包尺寸,于是局部图片缩小、脱节。
修复后的工程导入读取 Atlas 的 scale,再增加 -s <数值>,由匹配版本 Spine Editor 统一缩放骨骼、附件与动画数据。使用数值可以兼容不接受 Atlas 路径参数的 4.0 等旧版 Editor。
5. 多版本预览回归
每条版本线使用对应官方 spine-cpp 和该分支的 Spineboy 开发样本。样本仅用于开发测试,不进入安装包。
| 版本 | JSON | SKEL | 动画选择 | 绘制帧 |
|---|---|---|---|---|
| 3.8 | 通过 | 通过 | 通过 | 通过 |
| 4.0 | 通过 | 通过 | 通过 | 通过 |
| 4.1 | 通过 | 通过 | 通过 | 通过 |
| 4.2 | 通过 | 通过 | 通过 | 通过 |
| 4.3 | 通过 | 通过 | 通过 | 通过 |
3.8—4.1 共享一个旧版绘制适配层,4.2 和 4.3 使用各自 Runtime 自带的 SkeletonRenderer,避免将版本差异堆叠到主界面代码。
5.1 旧版 UV 方向修正
3.8—4.2 的 Runtime 输出沿用 Y 轴向上的世界坐标,而当前 Qt 画布以左上角为原点。适配层在输出预览顶点时对这些版本执行 y = -y;旧版 UV 已经与 Runtime 的三角形顶点顺序配套,不能再次翻转。4.3 已符合当前预览器方向,不执行该转换。
修复后截图:旧版预览方向修复-4.2.png
6. 本机实际转换回归
所有命令均选择已经存在的精确缓存版本:
| 资源线 | 本地 Editor | JSON 导入 | SKEL 导入 | 解包图片数 |
|---|---|---|---|---|
| 3.8 | 3.8.99 | 前一轮通过;本轮缓存不可用 | 前一轮通过;本轮缓存不可用 | 40(前一轮) |
| 4.0 | 4.0.64 | 55,295 字节 | 58,616 字节 | 40 |
| 4.1 | 4.1.24 | 55,483 字节 | 58,908 字节 | 40 |
| 4.2 | 4.2.43 | 50,811 字节 | 54,940 字节 | 40 |
| 4.3 | 4.3.23 | 49,603 字节 | 49,905 字节 | 40 |
4.2 A/B 回导验证:未传比例时 hip.y=247.27、前胫骨长度为 128.77;传 -s 0.5 后分别为 123.64 和 64.39,Mesh 顶点也同步减半,而图片维持官方解包尺寸。这说明工程数据与图片比例已恢复一致。
本轮 3.8 缓存文件在回归前已不可用,ARM Launcher 无法加载旧 x86 版本,因此遵守离线约束,没有尝试联网补齐。3.8 官方样本不声明 Atlas scale,修复路径会使用 1.0,与原导入行为一致;待本机重新具备可运行的 3.8 Editor 后仍需补跑本轮实机导入。
自动测试与完整构建通过。官方测试资源仍位于开发期 third_party 目录,安装规则只复制 Runtime 许可文件。