現在Play Storeではアプリのファイルサイズの上限が150MB、App Storeでは4GBの上限があります。
とくにPlay Storeのシビアな制限をパスする為には、プロジェクトのどのアセットがバイナリのファイルサイズの内の大きな割合を占めているかを把握している必要があります。
UnityはEditor.logというログファイルを出力しており、このファイルを参照する事でビルド時にどれくらいのサイズをどのアセットが占めているのかという事を把握する事が可能です。
Unity コンソールウィンドウの 右上からOpen Editor Log を押せば開くそうですが、私の環境では無反応だったので以下を開きます。
OS | パス |
---|---|
Mac OS X | ~/Library/Logs/Unity/Editor.log |
Windows XP | C:\Documents and Settings\ユーザ名\Local Settings\Application Data_\Unity\Editor\Editor.log |
Windows Vista/7 | C:\Users\ユーザ名\AppData\Local\Unity\Editor\Editor.log |
このファイルを開くと以下のような記述がありました。
Build Report Uncompressed usage by category (Percentages based on user generated assets only): Textures 216.8 mb 69.2% Meshes 641.3 kb 0.2% Animations 199.7 kb 0.1% Sounds 63.0 mb 20.1% Shaders 6.5 mb 2.1% Other Assets 9.3 mb 3.0% Levels 1.1 mb 0.3% Scripts 2.3 mb 0.7% Included DLLs 13.2 mb 4.2% File headers 565.9 kb 0.2% Total User Assets 313.5 mb 100.0% Complete build size 735.8 mb Used Assets and files from the Resources folder, sorted by uncompressed size: 8.9 mb 1.2% Assets/OP/Resources/OP/Texture/BG/city.jpg 7.3 mb 1.0% Assets/OP/Resources/OP/Sound/BGM/127324.mp3 6.6 mb 0.9% Assets/OP/Resources/OP/Texture/BG/casino.jpg 6.4 mb 0.9% Assets/OP/Resources/OP/Sound/BGM/111985.mp3 6.0 mb 0.8% Built-in Texture2D: SpriteAtlasTexture-OP_UI (Group 1)-1024x2048-fmt3
どうやらテクスチャの圧縮やBGMのビットレート削減が全然足りてないようです。
こんな感じでアセットの中からサイズ削減の優先対象を見つける事が可能です。
私の場合、そこそこ画質を落としたjpg画像(数百Kb程度)をアセットに入れていたのですが、結局はビルド時に無圧縮のRGB画像に変換されてしまうので意味が無かったようです。
コメント