自己编译Aseprite!开源像素制作工具
Aseprite简介
aseprite是当前最为流行的像素艺术创作工具之一。aseprite有一套完整的像素制作流程,包括图层/帧/动画等特性,可为像素游戏创建2D动画,精灵和任何类型的图形。
不过,aseprite的价格还是有点小贵的。
由于aseprite是一个开源项目,我们可以手动拉取源码进行编译,目前网上也有一些教程。
大部分现有教程都专注于如何用自己的电脑进行本地编译。使用者需要下载Visual Studio以及C++编译器,配置CMake以及各种SDK才能完成,对于不了解这些技术的小白来说,没有七八个小时是很难搞定的。
这里我分享一个利用官方仓库自带的Github Actions进行构建的方法。这种方法无需配置任何本地环境,只需要一个Github账号,半小时即可得到一个可运行版本。
原理介绍
像aseprite这样的大型工程一般会有持续集成的配置。所谓持续集成,是指每天或每次提交代码时,会有一个系统自动构建源码和运行测试等。持续集成可以节省开发人员不少的精力。
aseprite的开发者们也不例外,打开aseprite的Github仓库,点击Github Actions,可以看到这个仓库配有许多自动化的工作流,这些就是用于持续集成的工作流配置。
添加图片注释,不超过 140 字(可选)
这些工作流的作用,是方便aseprite的开发者在提交代码时,自动运行一些日常的测试工作。
通过阅读、分析这些工作流,我们可以知道如何从源码去构建一个可执行的aseprite程序。
我们点进build查看一个工作流的详情。
添加图片注释,不超过 140 字(可选)
可以看到,在左边有一些build开头的条目,后面括号里是各种操作系统的名字,有的是debug(调试)有的是Rel(发布)版本。
于是,我们基本可以确定,这些工作流实际是在为各种不同的操作系统执行构建。
本文介绍一个利用这一原理来快速构建aseprite的方法。
第一步:Fork仓库以进行编辑
首先,你需要有一个Github账户,打开aseprite的仓库页面,然后Fork!
添加图片注释,不超过 140 字(可选)
Fork会把官方的仓库完整地拷贝一份,变成你自己的,这样你才可以编辑它。
第二步:启用Github Actions
添加图片注释,不超过 140 字(可选)
默认情况下,Fork来的仓库其中的Github Actions是关闭的,点击Actions标签,启用仓库的Github Actions。
接着,我们就要魔改官方的工作流,让它在构建aseprite后进行打包,并供我们下载。
熟悉Github Actions的同学会知道,工作流的定义文件位于仓库目录下的.github/workflows ,我们在文件列表找到这个目录,里面有一个build.yml。接下来我们就要魔改它!
定义工作流的YAML文件
第三步:魔改build.yml文件
点击右上角的小铅笔图标,进入编辑模式。
由于我的操作系统是Windows,下面我将修改这个文件,让它构建Windows版本的aseprite。
首先我在matrix里面删掉其他操作系统,只保留Windows(你可以根据自己的系统来)
同时,build_type这一项我改成了Release, 因为我不需要构建调试版本,enable_ui改成on。
改完这一段大概是这样的。
配置Windows构建
接着,我要删除Running C++ Tests和Running CLI Tests两个脚本块,因为不需要执行测试。不过,你也可以不删,只是会浪费点时间。
删除不需要的测试流程
经过这番操作,这个build.yml现在能构建一份Windows版本的aseprite了。但是怎么让我们可以进行下载呢,我们需要用到Github Actions的【打包制品】功能。在build.yml的最后加上下面的代码(注意缩进对齐):
1 | - uses: actions/upload-artifact@v3 |
这几行代码所做的事情,是在工作流结束之后,把构建出来的aseprite打包,之后我们便可以在Github页面上下载。
第四步:配置skia引擎
如果仅完成上面的修改,那么你得到的是一个命令行版本的aseprite。
要构建具有图形界面的aseprite,我们需要把skia加入仓库中。skia是一个图形引擎,aseprite要基于它来绘制图形界面。
为了防止你找不到skia,我把skia的依赖也放到Github Release上了。
下面两行代码用于下载我打包好的skia以及解压到当前目录。
1 | curl -L https://github.com/blueloveTH/aseprite/releases/download/v0.01/skia.zip --output skia.zip |
同时,修改cmake部分,配置skia路径:
1 | cmake -S . -B build -G Ninja \ |
skia部分的修改
最后一步:提交commit
点击右上角的绿色按钮,保存修改的build.yml文件,提交commit。
添加图片注释,不超过 140 字(可选)
接着,回到Actions标签,你会发现你刚刚提交的commit触发了工作流。
提交commit触发了工作流
等待工作流完成(大约需要15分钟),出现下图这样就算完成了。
工作流执行成功
点Summary,在最下面找到Artifacts。然后就可以下载aseprite了。
制品成功生成
解压aseprite.zip,点击.exe文件,成功打开!
Yeah!!
完整的build.yml(更新于2023-11-26)
划重点:你直接把这个文件覆盖掉默认的build.yml,点提交就可以了
1 | name: build |