UE4.25 でデフォルトのアニメーション圧縮方法を変更する方法のメモ。(手順へジャンプ)
#前置き
アニメーションの圧縮が重い。インポートは仕方ないとしても、圧縮が重い。しかもPCを変えたりすると度々こいつが動く。辛いので、軽くする方法を調べてみた。
アニメーションの圧縮とはこれ ↓ の事。圧縮は助かるけど、なにぶん時間がかかりすぎ。
ちなみに、デフォルトの圧縮方法は DefaultAnimBoneCompressionSettingsという名前(下図左部分)。何もしてなければProgram Files\Epic Games\UE_4.25\Engine\Content\Animation
あたりに居る。Program filesの中とか変更したくなーい!
圧縮方法が複数の登録されていて、その中に遅い方法が含まれてるのが重い主な原因らしい(上図右)。
直接この中を減らす方法も考えたけど、前述の通りなので DefaultAnim~ は変更したくない。(※ちなみに、実際にDefaultAnim~の中身を早いの一種類のにしたら圧縮時間はすごく減った)
また、別の事情として別のPCにコピーしたりチェックアウトしたりする事もある。つまり、圧縮の設定はプロジェクトの方に含めたい。
圧縮方法自体は最初から Bitwise とか色々用意されてる。この最初から用意されている圧縮方法の諸々については、ほげたつさんの アニメーション圧縮検証(UE4.20/4.21) で勉強させてもらった。感謝。
さて、上記ブログ内のラストで名前だけ紹介されていた Animation Compression Library (ACL) が別で調べた感じ良さそうらしい。なので今回は、これを使って設定する方法をまとめた。
#■アニメーションのデフォルト圧縮方法の変更
1.ACLPluginをインストール
2.インストールが終わると、以下の場所にACL標準の設定ができるので、これを使いたいプロジェクト以下にコピー
UE_4.25\Engine\Plugins\Marketplace\ACLPlugin\Content
ACLAnimBoneCompressionSettings.uasset
ACLAnimCurveCompressionSettings.uasset
例えば下記みたいな場所(フォルダ「ACLPlugin」は適当に作った)
プロジェクトフォルダ\Content\ACLPlugin
3.肝の初期設定変更。UEプロジェクトの初期設定を変更するためには DefaultEngine.ini を編集する。
ここを変更する事で、初期のインポート時に設定した方法で圧縮されるようになる。
(※DefaultEngine.iniはプロジェクトフォルダの中を検索すれば簡単に見つかるはず)
自分が開いた DefaultEngine.ini では該当の項目が無かったので、新規に書き加えた。
[Animation.DefaultObjectSettings]
BoneCompressionSettings="/Game/ACLPlugin/ACLAnimBoneCompressionSettings"
CurveCompressionSettings="/Game/ACLPlugin/ACLAnimCurveCompressionSettings"
正常に設定できていれば、アニメーションのインポート直後で下図のようにアセットが変わってるのが確認できる。
以上。簡単だね!
実際に変更してインポートを試してみたら、デフォルトに比べて圧縮時間が1/25くらいになった(50s→2s)
アニメーション圧縮による動きの変化については、まだ未検証のなのでそこは注意。
簡単なのに調べるのに一日かかってしまった。
ACL の github にしっかり書かれてるにも関わらず見落としたのが原因。アホすぎて泣ける。
#補足追加メモ
※Bone Compression Settings はアニメーションアセットの Asset Details から確認できる
Details じゃなくて Asset Details だから注意(Window>Asset Detailsで開く)
アニメーションアセットを開いても肝心の項目が見つからずしばらく彷徨った
#####※手元にあるアニメーションを色々つっこんでの圧縮方法別必要時間(20/12/15追記)
・デフォルト...34660 sec(約9時間)
・ACL...2618 sec(約45分)
・Bitwiseのみ...228 sec(約4分)
容量そこまで気にしないし、変化もほとんどないらしいし、ACLよりBitwiseが最強?