リソースパック圧縮ソフトPackSquashをつかいたい
もくじ
PackSquashってなに?
PackSquashはあらゆる方法を使ってマインクラフトのリソースパックの自動最適化を行うソフト。
具体的にはテキストファイルや画像の圧縮、余分なファイルの削除によってロード時間短縮やファイル容量削減やゲーム内でのパフォーマンス向上を目指すもの。
また謎の技術によってzipを解凍されにくくする難読化が行なえる。
今回はPackSquash version v0.3.1.が前提です。
この記事のほとんどは公式ドキュメントの抜き出しです。
7-Zipでよくね?
7-Zipも優れた圧縮ソフトだけど、PackSquashはマイクラのリソパに特化。
基本的にzipソフトは画像の再圧縮はしないのでそのへん大きく差が出ます。
あとBlockbenchの.bbmodelを除いてzipにしてくれるのも嬉しいです。.bbmodelは.jsonとセットで置いとくことが多いのですが、.bbmodelはPCのユーザー名とか残っちゃうので配布時には消したい。
物によってはファイルサイズが半分ぐらいになったり、ロード時間も体感できるレベルで短くなります。ただ、導入や使い方が直感的ではないので一通りリソースパックが作れるようになってから試すのをおすすめします。
例えばお嬢鯖のリソースパックはすでにいろいろな軽量化処理がされていますが、7-Zipでこの設定で圧縮したものと比較すると、3.3MB -> 1.6MBまで小さくなります。強い。でももともとが軽いから例としてあんまりだけど。

どうやって使うの?
いろいろな導入方法が用意されていてすべてを説明することはここではしません。
なんでって?めっちゃ充実してるからです。Windowsでとりあえず使えるまでを説明しますが、詳しく知りたい人は公式のインストールガイドを見るといいです。
特にGitで管理している人にはGitHubのactionが便利。

ちなみにあるみなはWSLにぶちこんで使っています。
PackSquashをインストールする(Windows)
インストールは別記事にあります。
とりあえずPackSquashを動かす
PackSquashは非可逆的な処理の多くはデフォルトの設定でオフになっている。でもあまりにも設定が多いので、まずはとりあえず動かしてみよう。
PackSquashをリソースパックのフォルダに移す

設定ファイルを書く
実行には設定ファイルを書く必要があります。でもデフォルトで動かすなら簡単。
図のようにtest.tomlを作る。デフォルトではOptifineのCITの設定は消えてしまうのでOptifineも許可MODに追加しておきます。
C:\Users\alumina\AppData\Roaming\.minecraft\resourcepacks
│ packsquash.exe
│ test.toml
│
└─りそーすぱっく
│ pack.mcmeta
│
└─assets
└─minecraft
└略
pack_directory = './りそーすぱっく'
allow_mods = ['OptiFine']
設定ファイルを読み込ませる
読み込ませるだけならドラッグアンドドロップだけでいいですが、この方法だとエラーメッセージも表示されないので注意。


処理が終わるとzipができているはずです。
詳しい設定ファイルの書き方について
設定項目は他にもたくさんありますが、そういう内容がわかる人は多分英語も読めるのであるみなの説明を読むより、公式のドキュメントを見たほうがいいです。特に大きなテクスチャを使う人は次のオプションを変えるといいそうです。デフォルトは8192。
maximum_width_and_height = 8192
おわりに
とりあえずPackSquashを使ってみよう!という記事でした。
Gitでリソースパックを管理しているという方はテンプレートリポジトリがあります。
なんと日本語です。
製作者サイドも持続的な開発にはGitとかを正しく使おうな!と書いていますが、あるみなの近くの人はPC初心者の人ばかりなのでこんな記事になりました…。公式ドキュメントは非常に充実しているのでしっかり読もう。
この記事を書くにあたって@sya_ri_dayoさんに助言を頂きました。ありがとうございました!