SpineViewer 简介

经过数个月的修补和增强,这个无心之作现在已经成为了一个 Windows 平台下功能相对完善的 Spine 查看&导出工具,经过数次迭代和重构,版本号终于来到了 v0.16.x,在这个版本中总算是加入了我心心念念的动态壁纸支持,于是乎决定开帖正式介绍一下软件的功能和使用方法。

Hub 里应该已经有不少人用过 SpineViewer 了,但是也有不少新人刚开始接触 Spine,所以还是先贴一下项目地址:

目前项目支持 3 个主要功能,并且这 3 个功能也将长期维护但是可能更新缓慢

  • 查看动画

  • 导出动画

  • 动态壁纸

查看动画

查看当然是最基础的功能,支持从 3.4 到 4.2 的所有版本,以及一个历史遗留版本 2.1.27。

3.6 及以上的版本支持的比较好,因为官方的运行时问题也少很多;3.6 以下的版本由于比较老,运行时功能不齐全,需要魔改官方的一些实现细节,且官方的实现也会有一些问题,所以可能也许会存在一些 bug,可以提 Issue,也可以在此帖下留言并附上有问题的模型文件,有空我会帮助排查问题。

打开程序后,左上方的模型列表可以直接拖入/粘贴 *.skel 的多个文件或者包含 *.skel 的多个文件夹,程序会自动解析并导入合法的文件,如果导入失败则右下方的日志框会有错误提示。如果程序首选项中启用了文件关联,也可以通过双击 *.skel 文件来双击打开预览。

选中列表中的一项或者多项模型(也可以点击右侧画面或者按住 Ctrl 多选来选中模型),可以通过左侧下方的参数面板来查看或者调整选中模型的各项参数,比较常用的面板是渲染和动画面板。

渲染面板内可以调整由于预乘 Alpha 不同导致的人物缝隙处黑边等问题,动画面板可以添加删除动画轨道,并且切换轨道上不同动画。

更为高级的设置项是皮肤和插槽面板,皮肤面板支持同时启用多个不同的皮肤,而插槽面板可以自定义是否去除某些插槽的显示,例如去除马赛克等等。

更为详细的使用方法见 Wiki-预览模型动画

导出动画

导出动画支持四种不同模式,分别是:

  • 单帧画面

  • 帧序列

  • 动图/视频

  • 自定义导出

其中与视频有关的导出基于 ffmpeg 命令行,程序只提供帧序列给输入管道,随后通过 ffmpeg 编码合成指定格式的视频文件,因此只要是 ffmpeg 支持的文件格式理论上都是可以生成的(但是受限于文件体积硬件资源等等可能会导出失败)。

在动图/视频模式中有一些预定义的常见格式,并且提供了参数面板方便调整,但是每个人的需求是不同的,一些新的格式并不会及时更新,因此提供了自定义导出进行保底,可以输入你需要的格式的 ffmpeg 命令行参数,保证满足需求。

更为详细的使用方法见 Wiki-导出动画

动态壁纸

最后的最后,也是本次介绍的核心,那就是动态壁纸功能,只要是能预览的 Spine 模型,都可以变成壁纸嵌入桌面,并且支持实时画面调整以及配置保存。

动态壁纸涉及几个功能:

  • 工作区的保存和恢复。程序支持将当前加载的模型和画面参数全部保存到一个工作区文件中,并且之后可以读取该工作区文件恢复到原先一模一样的画面和参数状态。

  • 桌面投影。开启后支持将预览画面同步到桌面上,从而达到动态壁纸效果。

  • 背景图片。支持自定义预览画面的背景图片和填充方式再也不是曾经纯色背景了,确保壁纸效果。

  • 窗口隐藏。支持点击窗口关闭时最小化到托盘后台常驻。

  • 开机自启。这也是动态壁纸的关键,程序可以设置开机后自启,并且指定要加载的工作区文件,从而达到自动开启动态壁纸的效果,不过取决于电脑的开机速度,无法做到立即显示壁纸,需要等待程序的启动时间。

目前壁纸功能在 v0.16.x 版本已经初步实现,预期仅支持 Win10 及以上,使用中如果遇到问题可以及时留 Issue 或者此帖留言,并提供相关的系统配置和软硬件信息,方便排查可能的兼容性问题。

后记

这个项目从 3 月份就开始写了磨洋工,现在已经小半年了,终于也有模有样了,不得不说 GPT 真是个好东西,省去了很多查文档和调试的时间,毕竟咱也不是学计图的,渲染啥的都是从 0 开始学。

欢迎 Hub 内大佬小佬们试用一下该项目,觉得不错可以去点个 Star 方便更多人用上。

另外如果有自己心中觉得比较优秀的 Spine 动态壁纸背景图和模型文件可以在此帖留言进行交换,愿意的话也可以将资源分享出来搞颜色是第一生产力,也许未来程序支持联机下载资源也说不定呢咕,发出鸽子的声音

9 个赞

怎么弄透明背景?我用了#00000000,背景还是有色的,

几天没看,突然就1.6了!:smiling_face_with_three_hearts:

是导出的视频吗,只有gif/webp/webm/mov支持透明背景

另外动态壁纸不支持透明背景,所以支持设置背景图片垫个底

我是说动态壁纸,原来动态壁纸目前还不能透明背景,了解

:+1: ,期待wf版本更新

:+1: :+1: :+1: 非常好用的Veiwer

wf版本应该只会修bug不会有功能更新了 orz

:+1:

另外提个问题:现在插入单个模型是放入最顶层,但是多选文件,一次性拖入加载多个模型的时候似乎不是按照单个模型一样依次插入最顶层,有点反直觉

顺便希望viewer主体界面能够自定义主题色(或者暗色模式之类的),个人比较喜欢暗色调()

确实,发现写重复,负负得正了(

主题的话,我也一直想弄,但是实在是没精力学xaml,前端这块一直挺乱的,可能以后有空了慢慢搞 (:з」∠)

好用,一直在用。

一万年前给大佬点过Star了 :face_savoring_food:

不过现在只认 .atlas 后缀有点麻烦呢,所以窝还在用 v0.12 :smiling_face_with_tear:

还需要啥后缀的,再就是最新的版本支持打开任意文件了,列表的右键菜单->添加可以依次不受限制地选择skel和atlas文件

哦哦,可以添加任意文件就OK了 :heart:

挺常见的 atlas后缀还有 .atlas.txt ,我在扒的两个游戏都是这个后缀的

    public static readonly FrozenDictionary<string, string> PossibleSuffixMapping = new Dictionary<string, string>()
    {
        [".skel"] = ".atlas",
        [".skel.bytes"] = ".atlas.txt",
        [".json"] = ".atlas",
    }.ToFrozenDictionary();

之前某次更新已经把这个后缀加进去了,可以试一下

原来是我的问题,我遇到的文件命名是这个样子的:

"specialRoom/4001001/spine/c400101_sp_night.atlas.txt": {
    "md5": "b22723aa3d3fe7a39d3ee10116f7b313"
},
"specialRoom/4001001/spine/c400101_sp_night.json": {
    "md5": "ad950b9c30f881ab5a12dcf39559722d"
},
"specialRoom/4001001/spine/c400101_sp_night.png": {
    "md5": "e4d678b3fbca9ad0f8f0c66b4941470f"
}

我想着应该只是暂时没有加进来所以一直等着问了AI才知道这不是常见习惯 :rofl:

你直接将txt后缀删去留atlas后缀就行,bytes同理,那些是因为unity不支持这些后缀所以改成这样的。

新版本修了和加了

1 个赞

辛苦了

看来spine动画播放应用有竞争改进空间.

望了一眼自己硬盘收藏的spine动画都有1.7GB大小,还有人将spine动画收在github上而下载有些麻烦(不如分享角色名单自行拆包?),的确有spine动画是这播放器像是不支持

s_maid_zom.zip (372.6 KB)

对于未来而言,大多数的spine动画不像交错战线那种拖动动作效果.动态壁纸不止于桌面,文件夹窗口随便切换也算是享受吧.

还有用.net9编译,不止.net8,还是有人要.net4.7.2这些?

s_maid_4_43zom_251004160621_2477cc_12

调试了一下,你的atlas文件格式很奇怪,官方的运行时并不能正确读取,首先多了很多空行,其次是atlas里没有size行,这个文件是不是什么自定义的格式?

右边是一份没改过的,左边是我改过之后能加载的