投稿者 tel | 2017年5月26日

Unityでアニメーションのサイズを小さくする

FBXなどからインポートしたアニメーションのサイズを小さくする。

前置き

2017年になってもスマートフォンの搭載メモリはたいして増えてなくて、結局アプリで使うメモリを300MB~400MBくらいに押さえないといけない。なので少しでもファイルサイズやメモリを削るようにしないとアプリが落ちてしまって困ったことになる。(古い端末を対象外にすればいいけどいろんなしがらみがあって大体サポートしないといけない)

3Dゲームの場合、テクスチャサイズはそこまで大きくしなくても見た目は許容できるので、相対的にアニメーションのサイズが問題になることが多い。(解像度が高いけどGPU性能がそうでもない端末が多いのからあまり複雑なシェーダも使えないのでテクスチャの枚数も少なくてすんでいる)

Unityでアニメーションのインポート時の設定によってアニメーションサイズがどのくらい変わるか調べてみた。

インポート設定によるアニメーションサイズの比較

SDユニティちゃん 3Dモデルデータをアセットバンドル化したときのログからアニメーションのサイズを比べてみた。(Unity 5.5.3p4)

デフォルトの状態(圧縮なし)

Compressed Size:4.0 mb
Uncompressed usage by category:
Textures       2.7 mb    30.3% 
Meshes         872.9 kb  9.5% 
Animations     5.1 mb    57.1% 
Sounds         0.0 kb    0.0% 
Shaders        105.1 kb  1.1% 
Other Assets   77.2 kb   0.8% 
Levels         0.0 kb    0.0% 
Scripts        0.7 kb    0.0% 
Included DLLs  0.0 kb    0.0% 
File headers   90.7 kb   1.0% 
Complete size  8.9 mb    100.0%

Keyframe Reduction

Compressed Size:2.4 mb
Uncompressed usage by category:
Textures       2.7 mb     51.7% 
Meshes         872.9 kb   16.3% 
Animations     1.4 mb     26.9% 
Sounds         0.0 kb     0.0% 
Shaders        105.1 kb   2.0% 
Other Assets   77.2 kb    1.4% 
Levels         0.0 kb     0.0% 
Scripts        0.7 kb     0.0% 
Included DLLs  0.0 kb     0.0% 
File headers   90.7 kb    1.7% 
Complete size  5.2 mb     100.0%

圧縮設定をOptimal

Compressed Size:2.0 mb
Uncompressed usage by category:
Textures       2.7 mb    56.7% 
Meshes         872.9 kb  17.8% 
Animations     969.3 kb  19.8% 
Sounds         0.0 kb    0.0% 
Shaders        105.1 kb  2.1% 
Other Assets   77.2 kb   1.6% 
Levels         0.0 kb    0.0% 
Scripts        0.7 kb    0.0% 
Included DLLs  0.0 kb    0.0% 
File headers   90.7 kb   1.9% 
Complete size  4.8 mb    100.0%

圧縮設定をOptimal、Resample Curvesのチェックを外す

Compressed Size:1.9 mb
Uncompressed usage by category:
Textures        2.7 mb     58.1% 
Meshes          872.9 kb   18.3% 
Animations      859.1 kb   18.0% 
Sounds          0.0 kb     0.0% 
Shaders         105.1 kb   2.2% 
Other Assets    77.2 kb    1.6% 
Levels          0.0 kb     0.0% 
Scripts         0.7 kb     0.0% 
Included DLLs   0.0 kb     0.0% 
File headers    90.7 kb    1.9% 
Complete size   4.7 mb     100.0%

まとめ

  • 圧縮なし 5.1MB
  • 圧縮あり(Keyframe Reduction) 1.4MB
  • 圧縮あり(Optimal) 969.3KB
  • 圧縮あり(Optimal)+Resample Curvesのチェックなし 859.1KB

圧縮しないと大きすぎるので基本的にはOptimalにしておく。Resample Curvesのチェックをなしにすると小さくなるがイマイチどんな設定かよく分かってないので元のモーションから大きくずれてないか確認する必要がありそう。


コメントを残す

カテゴリー