今天买了steam上的像素绘图软件aseprite,因为我们独立项目的美术素材都是用这个软件生产的。
因为我之前看过这个软件可以导出帧动画的json信息,所以希望它也能导出单幅图的图层信息,主要是各个图层的位置信息,以及使用的图在spritesheet上的位置。结果买来一用发现人家并不提供导出这些信息。
怎么办?我还指望靠这个能把美术做的大场景图自动导入unity呢!人少的小项目,各种自动化对项目推进速度影响很大的呀。于是我先看了看这个软件的文件格式,心想万一人家特别亲切,保存文件内是json呢?结果人家用的理所当然是2进制。慢慢扒这个文件格式对我们这种小项目来说投入产出肯定是巨亏无比,遂放弃。
第二步,我在asset store上搜了搜,看有没有人和我有同样的需求,而且已经写出了插件。结果还是没有,只有一个导出为动画的付费插件。唉,小众软件,不能期待过高。
最后我上github随便搜了搜,希望有人分析过这个软件的存档格式,最好是已经封装好的库或者软件。结果还是没有(想啥美事儿呢?)。。。但是,等等?!
虽然没找到辅助程序,但是我找到本尊的源代码了啊!一个我花了1480日元买的软件竟然是开源的!
其实比起亏钱了,我更觉得是我赚到了。我可以深入了解甚至改造我们项目所使用的美术工具了,这是何等的牛B!
事不宜迟,赶紧找保存文件的格式吧。结果我在保存文件的逻辑中迷失了自我,原文件中的一切对我来说有如小天书一般,我甚至没信心只靠静态分析来找到关于保存文件内部格式的逻辑了。可下断点调试需要先搭建编译环境,看着我从来没用过的cmake,一时也是不知从何下手。那一瞬间,我感觉到自己离开C++阵营太久了。
其实cmake也不是最近几年才出现的新东西,把这份茫然归罪于太久没碰C++也是不妥。可能是,我在井里待太久,误以为自己C++已经十分了得,其实只是略懂编译链接运行,对C++11有了解,会写点有设计模式的业务逻辑的小爬虫而已。我以前总觉得底层这些都领悟到了,什么工具呀库啊框架之类的也就信手拈来了,然而见到人家用自己的框架写的代码逻辑时发现并拈不来呀并拈不来。
今年是我正式开始重视现有框架和库的一年,我恶补了一圈现役主流的网站前端后端和app开发常用框架和编程库,感觉受益颇多。接下来如果时间允许的话,我希望到这个月末为止,能补充一下C++方面的知识,至少做到能编译通过这个 aseprite 软件(及格),能在IDE中下断点调试(良好),可能的话希望自己能修改软件的菜单,加入自定义功能(优秀)。
我跑去C#圈转了一年,JS圈跑了一段时间,GO也混了小半年。一周前回到C++,快疯了……怎么会有这么难用的语言……而且我居然用了10年。。。
现在还在重铸三观……