【笔记】感谢《梦幻模拟战》的Unity+Spine资源,同人模式开启

其实一个游戏的精髓之一就是它的图片资源,最近有点迷着《梦幻模拟战》;几乎算是白piao了,也算是氪了一张旅团券和1元打折的羊毛,稍微付点费用赞助一下这款良心游戏(还是让更富有的同志们贡献更大的力量吧 )。

突然想起来原来要给family写些小游戏,正愁没有资源呢。原来冒险岛的资源抽取工作已经基本完工了,只是要研究如何把所有图片还原成动态的帧还是得花些时间。不过从那时起,算是看了n多冒险岛各个版本的资源,其中有一个就是以atlas后缀结尾的文件引起了我的兴趣。是了,就是spine,这个工具确实让游戏的交互变得更有意思。

当然,这里暂时还不会直接公布具体的细节操作(比如源代码),毕竟这样会导致盗版太容易…等紫龙不太更新《梦战》了再全额发放吧。所以下面要说的是一个大致的方法,让大家失望了。

百度一下“梦幻模拟战 资源提取”,真的可以找到一篇文章:https://tieba.baidu.com/p/5952278050 话不多说,就直接去下载了Unity的工具包。把《梦战》的Android的apk下载后改zip解压就能拿到里面的资源文件夹啦(其实安装Desktop版直接就是解压好的unity文件);里面东西可全了,全身图,战斗娃娃系统贴图,告白~用工具就可以看~查阅了一下这些文件的meta,里面有个License写着Free——感谢紫龙的美工!我当然不会拿去商用,就是自己玩儿,搞搞同人~琢磨了几个小时,本来想自己分析纸娃娃系统的数据文件skel.bytes,等把最初的几个list分析出来,发现文件后期是大量的float数据,这眼花缭乱的,我就是一个WinHex怎么去把数据都弄出来……

然后我想这个文件总是有个格式的,而且spine那么火,会不会有specification呢?于是Google一下,就定位了这个github: https://github.com/EsotericSoftware/spine-runtimes 里面有个spine-ts的canvas版本,里面的例子是readSkeletonJson的,然后我就在那里把已知的数据弄成了json让它读,基础纸娃娃的各个部分都是画出来了;正愁怎么动态呢?发现这个库里有SkeletonBinary,简直就是救星啊!

开开心心地使用,好了能读,但是啥数据也没有……看看版本,最新的github上是3.8,而紫龙用的是3.3.05,搜索一下3.3.05,github上并没有保留支持这个版本。那我从commit回溯呢,回到merge 3.4之前的那个commit git reset --hard,然后发现里面还是spine-js并且没有读取binary的方法……果然是enterprise付费版本啊…

怎么办?那只能开启疯狂调试模式了;是了,把example改成SkeletonBinary读取文件,然后在Chrome里下断点,结合刚才几个小时得到的一些文件信息删删改改,从bones调试到slots,再到skins,把所有的错误都改pass了(比如3.8用的都是readStringRef而3.3.05还都是readString),yes,可以玩儿了~最终SkeletonBinary返回了满意的object~来看看《樱花大战》樱和罗莎莉亚新皮肤的行走图吧~
【笔记】感谢《梦幻模拟战》的Unity+Spine资源,同人模式开启_第1张图片
【笔记】感谢《梦幻模拟战》的Unity+Spine资源,同人模式开启_第2张图片
【笔记】感谢《梦幻模拟战》的Unity+Spine资源,同人模式开启_第3张图片

开启同人模式~BTW,如果紫龙觉得侵权了,记得ping我哈,我就把这篇删啦~

J.Y.Liu
2020.03.15

你可能感兴趣的:(娱乐,数据处理,javascript,梦幻模拟战,资源,Unity,spine,同人)