当前位置:首页>安卓APP>安卓平台开源的Spine动画查看器

安卓平台开源的Spine动画查看器

  • 2026-10-20 03:48:12
安卓平台开源的Spine动画查看器

一款硬核安卓工具:SpineViewer,帮你在手机上直接预览 Spine 骨骼动画

做游戏美术、拆包、逆向的朋友,大概率都跟 Spine 打过交道——这是业界最主流的 2D 骨骼动画方案之一,从二次元手游到主机大作的角色动画,背后常常都是它。但麻烦的是,Spine 骨骼动画文件(.json / .skel + .atlas + 贴图)历经十几年迭代,版本从 1.6 一路演进到 4.3,不同版本之间的运行时(runtime)彼此并不兼容,想快速确认一个文件是什么版本、能不能正常播放,往往得在电脑上折腾好几个工具。

今天要介绍的 SpineViewer,就是为了解决这个痛点而生的一款 Android 原生工具:一个能在手机上直接浏览文件夹、自动识别版本、并实时预览动画的 Spine 骨骼文件查看器。

项目地址:https://github.com/sanwinddd/SpineViewer


这是个什么样的工具?

简单说,SpineViewer 就是安卓上的"Spine 文件资源管理器 + 播放器"。你不需要 root,不需要连电脑,只要在手机里选中一个装有 .json/.skel 骨骼文件的文件夹,它就会自动扫描、配对贴图与图集,列成卡片供你逐一点开预览。

核心功能包括:

  • 文件夹浏览
    :基于 Android SAF(Storage Access Framework)实现,免 root
  • 版本自动识别
    :通过读取 .json/.skel 文件头,自动判断 Spine 版本(覆盖 1.6 → 4.3 共 14 个版本)
  • 手动切换运行时
    :遇到自动识别失效的老版本文件(比如 Spine 1.6/1.7 文件头里根本没存版本号),可以手动指定运行时
  • 交互式预览
    :支持双指缩放、拖拽平移
  • 动画切换
    :上一个/下一个动画按钮,支持播放/暂停
  • 换装换皮肤
    :支持 skin 切换,部分运行时下还支持多 skin 组合
  • 播放速度调节
    :0.1× 到 2.0× 任意调速
  • 骨骼调试视图
    :一键开启骨骼(bone)叠加显示,方便排查动画结构
  • 容错重试
    :如果某个版本加载失败(版本选错、缺 atlas、老运行时不支持某种二进制格式等),会提示你换个版本重试,而不是直接崩溃

最硬核的部分:14 个版本的运行时全部内置

Spine 从 1.6 到 4.3,官方运行时之间的 API 差异其实相当大——2.1 和 3.1 这两个版本甚至只支持 JSON 格式,没有 SkeletonBinary 实现;4.2 引入了物理约束(Skeleton.Physics);到了 4.3,连基础的 pose API 命名都变了(setupPose → setupPoseSlots)。

SpineViewer 的做法是:把这 14 个版本的运行时源码原样打包进项目里,每个版本对应一个独立的 Engine 类,再用一个工厂类根据检测到的版本自动选择合适的运行时加载。也就是说,不管你手上的文件是十年前老游戏的 1.6 版素材,还是最新 4.3 版角色动画,理论上都能在同一个 App 里找到对应的解析引擎。

版本支持一览:

版本
说明
1.6 / 1.7
文件头无版本号,支持二进制 .skel
2.0
开始在文件中写入版本号,支持二进制
2.1 / 3.1
仅支持 JSON,该版本官方运行时无二进制解析器
3.4 – 4.1
均支持二进制格式
4.2
新增物理约束系统
4.3
物理约束移至顶层,pose 相关 API 更名

怎么用?

  1. 点击 +,选择一个存有 .json 或 .skel 文件的文件夹
  2. App 自动扫描并把骨骼文件与对应的 .atlas 配对
  3. 每张卡片上会直接显示识别出的版本号
  4. 点开卡片进入预览
  5. 预览界面里,点一下版本号标签即可手动切换运行时

需要注意的是,一个完整的骨骼动画通常由三个文件组成:

my_animation/├── skeleton.json   (或 skeleton.skel)├── skeleton.atlas└── skeleton.png    (atlas 引用的贴图)

三者需要放在同一目录下,App 才能正确配对加载。


技术栈速览

对开发者朋友,附上一些技术细节:

  • 开发语言:Java(100%)
  • 渲染引擎:libGDX 1.13.0
  • 构建工具:Gradle 8.13 + AGP 8.7.3
  • 最低支持:Android 7.0(SDK 24),目标 SDK 35
  • 需要 JDK 17 + Android Studio 编译

项目结构上,spine/engines/ 目录下每个版本对应一个 SpineEngineXX.java,spine/runtime/ 则存放各版本原始运行时源码,层次清晰,后续如果 Spine 出新版本,理论上只需要照葫芦画瓢再加一个 Engine 类即可扩展。


写在最后

对于经常要处理游戏资源、拆包分析、或者单纯想在手机上快速确认一个 Spine 文件能不能用的朋友来说,SpineViewer 省去了"开电脑、装环境、找对应版本工具"这一整套流程,一部手机就能搞定版本识别 + 实时预览。目前项目仍在持续打磨中,欢迎感兴趣的朋友去 GitHub 上点个 star、试用或提 issue:

👉 https://github.com/sanwinddd/SpineViewer

最新文章

随机文章