ToolBuddyToolBuddy
Spine viewer 演练

Spine Viewer 在线预览:在浏览器中预览 Spine 动画

将 Spine、JSON、图集和纹理拖放到浏览器标签页中,即可播放动画、切换皮肤、检查调试叠加层以及导出 GIF 或视频。无需上传。

11 分钟阅读数 • 2026年6月5日 • Ankit Kumar

简介

您刚刚从 Spine 导出了一个角色,现在只想知道一件事:跑步循环看起来是否正确?为此重新打开编辑器或在 Unity 中连接测试场景未免过于繁琐。只需打开一个浏览器标签页即可。

这就是 Spine Viewer 的用途。动画师用它来检查导出文件是否正确,开发人员用它来确认图集是否与骨骼匹配,制片人用它来查看角色而无需安装任何软件。

下面介绍如何加载文件、版本不匹配时的处理方法、如何使用调试叠加层,以及如何构建短序列并将其导出为 GIF 或视频。

观众的操作

Spine 项目的生命周期比编辑器版本更长。一个角色可能三年前用 3.8 版本导出,而另一个角色是上周用 4.2 版本导出的,这种情况很常见。您无需选择运行时环境。查看器会检查骨骼 JSON 中的版本字符串,并加载匹配的版本。如果导出版本早于 3.6 或晚于 4.3,它会提示您,而不是渲染乱码。

所有内容都绘制在浏览器中的 WebGL 画布上。文件在本地读取,绝不会发送到任何地方,这对于受保密协议约束的未发布角色美术素材至关重要。这也意味着大型纹理页面会以计算机解码速度快速显示,无需等待加载。

  • 运行时版本系列 3.6、3.7、3.8、4.0、4.1、4.2 和 4.3 会根据导出文件自动选择。
  • 骨架文件 JSON,以及 .atlas 文本文件及其纹理页面(PNG、JPG、WebP 或 AVIF)。Binary 的 .skel 文件需要先转换为 JSON 格式;FAQ 中有相关说明。
  • 当纹理名称中包含“pma”时,预乘透明度 (Premultiplied alpha) 已启用(Spine 会在导出时添加该值),如果边缘看起来较暗或有光晕,您可以自行调整其值。

加载骨骼、图集和纹理

标准的 Spine 导出会生成三种文件:骨架文件 .json、.atlas 文本文件以及 .atlas 指向的一个或多个纹理图像。您需要所有这些文件。图集只是一张地图;没有图像,就无法绘制任何内容。

一次性选择或拖入所有图集。查看器会根据文件名将每个图集页面与其对应的图像匹配,并将角色放置在画布上。之后,您可以切换动画、尝试不同的皮肤、更改播放速度以及平移或缩放以查看细节。

  • 将 Spine 导出为 JSON。如果您只有 .skel 文件,请先进行转换。
  • 将 .json 文件、.atlas 文件以及所有纹理页面一起拖放到上传区域。
  • 从列表中选择一个动画,并循环浏览不同的皮肤以查看每个皮肤的效果。
  • 如果角色与背景融为一体,请更改背景颜色,然后根据需要进行缩放和平移。

使用调试叠加层

角色在正常尺寸下看起来可能没问题,但仍然存在一些只有在引擎中才能发现的问题:例如,网格在某一帧中发生折叠、裁剪附件裁剪过度、路径约束将骨骼拉到奇怪的位置等等。调试叠加层会将这些辅助信息绘制在图像上,以便您查看它们。

只开启你需要检查的内容。如果同时开启所有八个叠加层,屏幕很快就会变得很拥挤。骨骼和网格通常是首先要检查的,如果某些部分看起来被裁剪或漂移,则接下来检查裁剪和路径。

  • 骨骼和点,用于查看绑定以及附件的悬挂位置。
  • 区域、网格、外壳和边界,用于检查变形以及每个附件覆盖的区域。
  • 裁剪和路径,用于检查运动中行为异常的遮罩和路径约束。

构建序列并导出 GIF 或视频

一个循环动画无法让你充分了解角色在游戏中的感觉。时间轴允许你按顺序排列多个片段,例如从待机到奔跑再到攻击,并观察过渡效果。每次交接都会应用您设置的几秒钟内即可完成的交叉淡入淡出效果,这样您就可以在引擎团队发现问题之前,判断默认混合是否流畅,或者是否需要更长时间的混合。

该序列会在单个轨道上逐个播放片段。它不是分层的多轨道混音器,因此如果您需要同时查看瞄准和奔跑等效果,请在引擎中进行测试。对于检查转场是否流畅,时间线通常足够快速且足够。

当序列看起来合适时,您可以将其导出。GIF 导出以 12 fps 的帧率捕获,并将长边限制在 640 像素,这对于 Slack 讨论串或工单来说足够了。视频导出以 30 fps 的帧率录制为 MP4 格式(如果浏览器支持),否则录制为 WebM 格式。两种格式都会嵌入当前背景颜色,因此请选择适合片段用途的格式。录制过程在您的计算机上进行;不会上传任何内容。

  • 按任意顺序将片段添加到队列,并设置片段之间的淡入淡出效果。
  • 回放整个序列,以查找爆音、卡顿或不自然的过渡。
  • 对于评审来说很方便:当有人只需要查看动画时,发送 GIF 而不是构建版本。
  • 导出为 GIF(12 fps,最高 640 像素)或 MP4/WebM 视频,使用设置的任何背景颜色。

它在管道中的位置

查看器是导出和导入之间的检查点。如果图集页面过于冗余,请使用纹理打包器重新打包。如果您继承了一个没有数据文件的散页精灵图,精灵图解包器可以将其拆分回帧。然后返回此处,确认结果仍然可以正常播放。

在浏览器标签页中进行这项检查只需一分钟。但如果角色已经处于 Unity、Phaser 或 Cocos 版本中,那么查找同样的问题通常需要花费更多的时间。

AK

撰写者

Ankit Kumar

ToolBuddy 高级软件工程师兼创始人

使用 WebAssembly、Web Audio 和 Canvas 技术设计浏览器优先的实用程序,上传要求为零。

FAQ

读者在完成此工作流程后提出的常见后续问题。

为什么我的 Spine 预览图缺少纹理?

几乎总是文件名不匹配的问题。.atlas 文件列出了它期望的图像名称,您上传的纹理文件必须与这些名称完全匹配,包括扩展名。用文本编辑器打开 .atlas 文件,检查每个图块顶部的页面名称,确保您上传的批次中包含所有这些图像。

我可以打开 binary 的 .skel 导出文件吗?

不能直接读取。查看器读取的是 JSON 骨骼。如果您只有 .skel 文件,请先使用 ToolBuddy 的 Spine 骨骼数据转换器将其转换为 JSON 版本,然后将其与图集和纹理一起加载。如果您仍然保留着 Spine 项目,也可以将其重新导出为 JSON。

我的Spine文件会被上传到哪里?

不。文件会在您的浏览器标签页内读取和渲染,GIF 和视频导出也是在那里完成的。不会将任何内容发送到服务器,因此未发布的素材会保留在您的计算机上。