アプリのサイズが2.5GBになってた
Unityでのゲーム開発中、久しぶりにiphoneでビルドしてみるとアプリサイズが2.5GBになってました。
しばらくビルドせず開発してたせいです。ちゃんと実機で確認しよう。
Unityのビルドログを確認。
99.6%がテクスチャだそうです。画像増えすぎ。
ログはビルド後にOpenEditorLogを押すと見られます。
コンソールタブの右側の : みたいなところをクリックすると出てきます。
容量の割合とか1ファイルごとのサイズとかチェック。
<参考>
まずはミニゲームをつくろう−アプリ容量を削減しよう – netsis
重たいのは画像(テクスチャ)ファイル
だいたいゲーム内のデータで割合が大きいのはテクスチャのようです。
今回も同じ。
テクスチャの容量を小さくしていきたいのです。
ちなみに作っているのはスマホ用の2Dの脱出ゲーム。
主にこんな↓感じのレンダリング された2D画像がほとんど。
たまに透過してるものもあるが、ほとんど不透明の画像。
アセットの元データの解像度は1920*1080でpng形式。
スプライトのアニメーション用の画像も含めると200枚以上はある感じ。
3Dのゲームの場合はメッシュやマテリアルなども入ってくると思います。
1枚の画像から複数のスプライトを切り出す
1枚の画像からなるべく複数のスプライトをスライスして、画像の枚数を減らすのがまず1つ。
画像のクオリティをなるべくそのままにしたいならこれが良さそう。
アニメーション用のスプライトとか数が多くなるものは、スライスで切り出した方が軽くなる。
管理もしやすい。
事前にスプライトの作り方とかスライスの仕方を決めとかないと解像度とか合わなくなるので注意。
今回みたいに3Dの時はちょっとやりにくいかも。
ドット絵のゲームなど手書きで素材を作るなら必須だと思う。
画像の枚数自体が少なくなるのでかなり容量削減できる。
<参考>
【Unity】アプリに含めるアセットを抑えて、アプリサイズを小さくする – テラシュールブログ
画像の解像度と圧縮形式を変える
UnityはUnity内で画像を圧縮して表示するらしい。
元アセットの画像は圧縮形式をいじらず、Unity側で調整すると良い。
試しにjpgにしてレンダリング した同じ解像度で軽い画像をいくつか用意したけど、ログ状はpngのデータと容量が変わっていなかった。
画像の圧縮フォーマットと解像度はアセットフォルダから画像を選んだ状態で、インスペクターの下の方をぽちぽちすると選べる。
DefaultだとMaxSizeは2048。
FormatはAutomaticでした。
Defaultにすると共通の設定になる。
タブを押すとios、androidとプラットフォームに合わせて変えられる。
その時はOveride for iosを押さないといけない。
いろいろ試した結果、今回はRGB16bitの形式にformatを変更しました。
透過できる形式はRGBAって書いてあるやつです。RGB〜だと透過しない。
透過するデータはRGBA32bitにします。
解像度は半分の1024に変更。解像度は実機を見て表示の大きさを確認しつつ決めましょう。
上記の設定でデフォルトだと5.9mbだった1枚の画像が1.1mbになりました。
アプリのサイズは2.5GB→500MBに削減できました。
まだまだデカイのであと半分くらいになって欲しいです。
1つのアニメーションの画像を1枚の画像にまとめてスライスする形にすれば減る思うので、それは後日やります。
<参考>
【Unity】知っておくべき!テクスチャ画像に関するTIPS3選 | CGメソッド
参考
Unityでアプリ容量削減。700MB→179MB – こんそーるすーぷのレシピはこちら
Unityで出力したipa, apkの容量を削減するためのチェックリスト – Qiita
【Unity】iOSアプリの容量が大きい!削減方法についてまとめる | 都会のエレキベア
プラットフォーム別オーバーライドのためのテクスチャ圧縮形式 – Unity マニュアル
【Unity】モバイルにおけるリソースの容量計算の手順 – LIGHT11
「デカいテクスチャはどれだ?」テクスチャのリストを吐いてみる – KAYAC engineers’ blog
Unity : 不要なアセットを削除して、プロジェクトをスリムに保とう – いんでぃーづ
「PVRTC」「ETC」2つの画像圧縮形式を知る・・・「OPTPiXを256倍使うための頁」第9回 | GameBusiness.jp
Unityやるには必須!RGBA画像減色の基礎をまじめに書いてみた | KAYAC DESIGNER’S BLOG – デザインやマークアップの話
Unityの本
この二冊で割と勉強してました。
Unityバージョンアップで改訂版が出るのがすごい。