Skip to content

使用 PackSquash 压缩与混淆资源包

bread

bread

PackSquash 是一个资源包压缩与混淆工具,可以帮助减小资源包的体积并简单混淆它

工具的使用并不复杂,不过毕竟是命令行工具,对于不熟悉的人来说还是有点麻烦,本文将简单介绍如何使用

下载

前往项目主页找到按钮 Download latest release,会导向到项目的 GitHub Release 页面,也可以直接通过项目的 Release 页面 下载

下载

对于 Windows 用户,寻找带有 windows 等字样的选项

对于 MacOS 用户,寻找带有 appledarwinmacOS 等字样的选项

对于 Linux 用户,如果你需要教,请停止使用 Linux

图例为 0.4.1 版本的 Release 页面,不同版本命名不一样

下载选项

以 Windows 为例,解压下载的压缩包,应该能得到一个箱子图标的,名为 packsquash.exe 的可执行文件

准备

需要准备三个文件:

文件

  • packsquash.exe:PackSquash 的可执行文件
  • 资源包目录:解压的资源包,放在一个目录中,pack.mcmeta 应该在这个目录的根目录下
    • 资源包目录
  • 配置文件:一个格式为 toml 的文本文件,名称不限,不过此处我将其命名为 config.toml

理论上它们可以放在任何地方,不过为了方便起见,此处将它们放在同一个目录下

配置

打开 config.toml,输入以下内容:

toml
pack_directory = '资源包目录的路径'

资源包目录的路径 替换为你资源包目录的实际路径

对于如何获取资源包路径,比较简单的方案是右键你的目录,选择 复制文件地址复制路径

如果是其它版本的 Windows,可能没有 复制文件地址 选项,可以选择 属性,在弹出的窗口中找到 位置,复制它的内容

注意,默认复制的路径使用双引号包裹,而 toml 建议使用单引号包裹字符串,所以需要将双引号替换为单引号,最终大概长这样(笔者的路径,请替换为你自己的路径):

toml
pack_directory = 'C:\Users\bread\Desktop\chocolate\pack'

运行

在工作目录下打开终端,一般可以在工作目录的空白处右键,选择 在终端中打开,如果没有这个选项,可以复制工作目录的路径,单独启动终端,输入 cd "路径" 进入工作目录

输入以下命令:

sh
.\packsquash.exe .\config.toml

如果你搞不懂目录的关系,也可以直接复制 packsquash.exe 的路径和 config.toml 的路径,输入以下命令:

sh
"packsquash.exe 的路径" "config.toml 的路径"

回车执行,如果一切正常,会在同目录下生成名为 pack.zip 的压缩包,这就是压缩与混淆后的资源包了

更多配置参数

刚刚的配置文件只是最简单的配置,使用默认的方案,如果想要定制效果,可以参考 PackSquash 的文档 来修改配置文件

如果你懒得折腾,笔者自己写了一套以压缩效果为主的,一般来说,它是可靠的,如果使用出现问题,请自行查阅文档修改

toml
pack_directory = 'C:\Users\bread\Desktop\chocolate\pack'

recompress_compressed_files = true
zip_compression_iterations = 255
zip_spec_conformance_level = 'disregard'
never_store_squash_times = true

['**/*?.png']
image_data_compression_iterations = 255
downsize_if_single_color = true
png_obfuscation = true

几个额外选项的功能:

  • recompress_compressed_files:再压缩
  • zip_compression_iterations:压缩迭代次数,数值越大压缩率越高,但也越慢,0-255,默认20
  • zip_spec_conformance_level:特殊打包方案,不符合标准 zip 规范,默认为遵守规范的'pedantic',不符合规范虽然可以被游戏读取,但某些分发平台可能会拒绝上传
  • never_store_squash_times:其实没看懂,推测和压缩重用有关,不过按照文档说法开启不会有副作用
  • image_data_compression_iterations:图片数据压缩迭代次数,相当于图片版本的 zip_compression_iterations,0-255,默认15
  • downsize_if_single_color:如果图片只有一种颜色,直接变成纯色图
  • png_obfuscation:PNG 混淆,开启后会对 PNG 文件进行混淆

以笔者的巧克力纹理包 3.9 为例,原包通过 PNGGauntlet 压缩,打包选择 7-ZipLevel 9 压缩,最终产物 1.8 MB;使用该配置压缩后,产物 0.8 MB,压缩率非常不错

注意事项

混淆不是加密,虽然被混淆的资源包不再能直接通过解压工具打开,但它的内容本质是可读取的,不要以为混淆了,就不会有盗版,偷卖了

更何况,即使是加密,只要终端用户能解密使用,跟没加也没区别

Powered by Vitepress and Github Pages