一年中こたつ出てる

こたつは最高

【Unity】アセットのインポート時にクランチ圧縮を解除してインポートする君を作った

タイトルのとおりなのですが、これだけをするエディタ拡張が見当たらなかったので作ってみました。

インポート毎にクランチ圧縮がかかるのにめちゃくちゃイライラしていたのでこれで楽になりました。

VRChatのプロジェクトの場合、Unity2022へ移行する前に導入しておけば、移行時にクランチ圧縮解除しつつ高速に移行作業を行うことができます。なお、ワールドプロジェクトにおいてはクランチ圧縮は引き続き有効なので導入はおすすめしません。

テクスチャであればインポート時に何でも解除してしまうためその点だけ理解して使ってもらえればと。
解除したものはコンソールログに出力しているので、戻そうと思えば戻せると思います。

注意:Unity2022で導入した場合、導入した時点でそのプロジェクト内にあるすべてのテクスチャのクランチ圧縮が解除されるため場合によっては非常に時間がかかります。

gist.github.com

そもそもなぜインポート時にクランチ圧縮を解除してしまいたいのかというと、

  • インポートに時間がかかって仕方がない(これが一番)
  • VRChatにおいて、クランチ圧縮のメリットをあまり感じない
    • アセット自体の圧縮が優秀なのでクランチ圧縮したとしてもあまり大きな差がない(個人の感想です)
    • そこそこテクスチャが劣化する
    • ダウンロードサイズの調整等最適化は自分で行うので個人的には余計なお世話

といった感じです。

UnityやC#はよくわかんないんですが、見様見真似でやってみたらできたのでよかったです。

AssetPostprocessorを使うと他にもインポート時に色々自動で設定できそうですね(サイズが4Kだったら2Kにするとか)。

docs.unity3d.com