デザイナー的テックブログunityやphpなどの学びの記録。あったアプリ容量を、ほぼ見栄えを保ったまま→100MB以下に削減しました。Androidではストア公開のためのアプリサイズの制限(現時点150MB)があり、無計画に美しさだけ追求すると削減に四苦八苦することとなります。削減といってもいろいろ方法はありますができる限り見栄えを保ちたい!という場合エンジニアさん任せにするより自分でやってみようということで。エンジニアさんより初心者レベルなデザイナー目線での行なった方法の総まとめです。Pro参考1.まずは何が重いかを確認する見栄えになるべく関係ないところで減らしたいので、やみくもに軽くするのではなく、現状把握が必要。何のデータが重いかはアプリによって異なるので一旦何が重いかを把握する必要がある。デザイナーも自分でビルドしてみるべし(ステージだけとかでも。Report」で検索する上記の下に続く情報が欲しい情報。上記だとTexturesが64.8%占めてる。割合の下には、でかいファイルランキングが続いている。結論、とりあえず方法AのEditor.logでよい上記BやCなどのツールは結局最初の方法Aのログを見やすくしたもの。ビルドする必要がある。方法Aのログ確認で何が重いかは見ることができる2.テクスチャの容量削減〜一括軽量化対応ツール何が重いかの結果を見てみると、だいたいのアプリで重いのはテクスチャになるはず。私のデータでも最初テクスチャが90%超えていたと思われる。よって、テクスチャを軽くするのがだいたい最初にやる対応になると思う。Compressionなどなどをいい感じの設定にする必要があります。アセットストアなどで購入したものはだいたいMaxSize2048なのでそのままだと重すぎるので減らす作業が必要ということに。標準512、最高でも1024MBか。(このあたりのいい感じの設定値については次の3.テクスチャのいい感じの設定値とは?へ)厳密にはアセットに合わせて最適な設定は違ってくる・・がいずれにせよテクスチャ数が膨大すぎてとても一つずつなんて無理!!なので一括設定ツールを探す。https://booth.pm/ja/items/2055226上記AssetsCompressor1.3が手軽そうですぐ使えました。・Textureをさらに上記の半分でやったところ、見た目画質結構落ちてガビガビになったのにテクスチャ数1049で10MBしら減らないとかで・・・やり直した。メモ:StreamingAssets3.テクスチャのいい感じの設定値とは?ということで一括で変更できることが分かりましたが、どんな方法で一括変換するにしても、設定すべきいい感じの設定値とは?というところが気になります。スマホアプリのサイズ削減において関係する設定について調べたまとめです。小さくするほどダイレクトに軽くなる。本当にだいぶ減るけど見栄えとのトレードオフ。もとの画像には影響ないので、気軽に変更してみて試してみよう。標準512MBくらいが私のアプリではちょうど良さそうでした。物によるというのは言うまでもない。こだわりのある部分だけ2048とかもありえる。Compressionがテクスチャ圧縮の肝。不可逆圧縮(元には戻せない圧縮)なので注意。テクスチャのオリジナルデータをバックアップしたほうがよい。見栄えにそこまで影響なくてちょうどよさそう。下記も参考になりました。チェックをオンにして50くらいで圧縮するとめちゃくちゃ容量が減ります。100とかやりすぎると微妙にガビります。4kでオン50のほうが軽いことがわりとあります。ディティールにこだわりたいテクスチャ(顔とか髪とか肌とか服とか)は解像度デフォルトのままここを調節してあげると質感を維持したまま軽くなる!!加えてマスクなどモノクロのファイルはこれしてあげるだけでものすごい軽くなるので絶対おすすめ。細かいことは省きますが結構な頻度でバグってRGBA32bitになってるときがあるので絶対見る場所です。ここは特別な意図がない限りAutomaticにしてあげてください。RGBA32bitだと尋常じゃなく重いです。StreamingMipmaps)カメラから遠いテクスチャの描画を最適化する機能。遠い時用のテクスチャを生成してくれるのでその分重くなる。チェックを外すと容量が少し軽くなる。(←→オンにすると遠方の描画のパフォーマンスがよくなる。)オンだとメモリ消費も1.33倍になるので基本はオフでよいぽい。オンにするのは地面に使うテクスチャとか遠くで見がちなやつかなと。2DとかUIとかでは全オフでよい。変えてもあんまりサイズの削減インパクトはなかったので自分はデフォのままいじらなかった。とことん切り詰めたい場合は試してみる価値がありそう。Compressionは最大限でもよいことも。Proを使用している場合、生成したAtlas画像が上記のツールで一括で下がってしまうことがあるので、要チェック。物によるけど1024以上が良さそう。下げすぎると文字がガビって読みにくくなる。→※追記ありhttps://techblog.unitedcube.com/unity/text-mesh-pro-japanese/・ファイル圧縮の恩恵を最大限に受けるためにも画像サイズはできるだけ「2のべき乗」にしましょう。メモリ消費が2倍になるので基本はオフにしましょう。オンにするのは動的にテクスチャを書き換えるなど特別な場合のみで良いでしょう。軽量化ライトマップをベイクして焼いてる場合、その画像もテクスチャに含まれて結構重かったりする。しても印象変わらなかった。減らしたいときもライトマップ周り。軽量化テクスチャが片付くと、次に重いのはMeshesだったのでとりかかる。Highにすると一番小さくなるけどこれも見た目とトレードオフ。https://booth.pm/ja/items/2055226で一括でできちゃう!すばらしい。設定でビルドログ上でMeshes5.6MBしか減ってない。Meshes7MBしか減ってない。Lowとhighでは1.4MBしか差がないので一旦この設定はLOWでよさそう。見た目もそれぞれあんまり変わらなかったので極限まで落としたい場合はhighで良さそうだけど、圧縮率を上げるほどメッシュが崩れるということではあるので一応目検したほうがいいかも。その他、設定で不要なデータをインポートしないことも大事のようです。チェックを外す!!今回これが一番快挙だったかもしれない。!!!静的なものが多い入り組んだマップだからだろうか(モデル数760)とりあえずこれでビルドサイズの目標は達成したのでした。Staticがオンのオブジェクト)のメッシュがビルド時にシーンにすべて焼き込まれるため、出力サイズが著しく大きくなる場合があります。5000ポリゴンのオブジェクトが100個配置されていると、50万ポリゴンぶんのメッシュがシーンに焼き込まれます(同じメッシュを使用していても)。Batchingをオフに。他のバッチング方法を検討するのがよさそうです。静的バッチングにチェックを入れるとドローコールが減りパフォーマンスが上がります。【ドローコールバッチング編】https://blog.shogonir.jp/entry/2015/12/17/162832→そういうことだったのか・・静的オブジェクト大量の場合は外したほうがよさそう。〜〜以上で軽量化完了しましたが、以下は調査の過程で得た未検証情報のメモです。ポリゴンちなみにさらに減らすには重い小物アセットのポリゴン自体を減らそうとしていた、、やらなくてすんでよかったまず重いポリゴンのアセットを探す。トライしようとしていた。2021.2ではWebGLビルドで使用されるEmscriptenがバージョン2に更新され、ビルドが速くなり、出力サイズが大きく減少しています。Android用のテクスチャフォーマットテクスチャフォーマットについて、AndroidではASTCを使用しますが、ブロックサイズを大きくすると圧縮サイズが小さくなります。OptimizationのSpeedをSizeに変更すると、wasmが4.0MBから3.2MBになったりと結構効果が大きいです。FormatをBrotliにするとwasm、dataともに大幅にサイズが小さくなります。圧縮に非常に長い時間がかかるため開発中はGzipにしておいたほうがいいかもしれません。LevelHighにすると使用していないコードやモジュールが含まれなくなるため、wasmのサイズが大きく縮まります。実行に必要なコードまで削除されてしまうことがありますので、その場合はプロジェクト内にLink.xmlファイルを作成するか、クラスやメソッドに[Preserve]属性をつけて保持します。詳しくは下記ページを参照です。テンプレートPost-processingのシェーダーと大きなテクスチャ群が含まれてしまっているためです。