ゲームを作ってスマホアプリをリリースしたいと思ってビルドしてみると、規模の小さいゲームなのに出来上がったファイルが100MBくらいになってしまいました。
これを35MBまで削減できたのでその方法をご紹介します。
私はUnityを始めてまだ4ヵ月で、この方法は初めて作ったゲームアプリで実践した方法です。
ですので難しい知識は必要なく、初心者でもできる内容になっています。
目次
サイズが大きくなってしまった理由
ビルド後ファイルのサイズ内訳の確認方法
まずは、ビルドしたあとにできるファイルのサイズの中身を調べました。
ビルド時のログを見ることで、何がファイルサイズを大きくしているのかが分かります。
1.ビルド直後にコンソールタブの横の「…」をクリックし、「Open Editor Log」を選択
2.開いたテキストファイルの下の方の「Build Report」という文字を探す
その下に、アプリを構成するファイル1つ1つのサイズが大きい順に出力されている。
※複数ある場合は下の方を確認する。(複数回ビルドした場合、最新は下のほう)
上記で見つけたファイル一覧はサイズの大きい順のため、上の方に印字されているファイルがサイズの大きいファイルであることがわかります。
サイズが大きくなった理由
ファイルサイズが大きい理由は、下記の3点でした。
1.音声ファイルが6.5MBもある
2.フォントファイルが1つ4.5MBもあり、同じようなものが4つも入っている
3.50枚以上ある画像ファイルが、1ファイル1.7MBもある。
この3点を対策することで、サイズを4分の1まで削減することができました。
サイズの削減方法
音声ファイルの形式変更
音声ファイルはWAVファイルををMP3に変換して入れ替えただけで、3MBの削減になりました。
変更前
変更後
WAVからMP3への変換はフリーソフトなどで問題ありません。
私は下記のサイトでサクッと変換しちゃいました。
不要なフォントを削除
Noto Sansフォントファイルは1つ4MB以上あったので、不要なフォントを利用しないことで、サイズ軽減になりました。
削減前
削減後
おそらく開発中にいろいろ試している間に、違う種類で同じようなフォントをつかってしまっているようでした。
不要なフォントを整理するには、すべてのテキストファイルを確認する必要があります。
あとで整理するのは大変なので、開発中に以下の2点を気を付けておきましょう。
使わないフォントはこまめに消す
開発中にいろいろなフォントを試したあと、使わないフォントはすぐに消しましょう。
そのままにしていると、どこかで無意識に使ってしまったりするかもしれません。
1か所でも使っているフォントはすべてビルドの対象になってしまいます。
使うフォントを減らす
ゲーム中、シーンや表示する場所によってフォントを変えたいことがあると思います。
ですが、フォント1種類ごとにファイルサイズが増えてしまうので、使うフォントの種類は最低限にしておく方が良いでしょう。
内容が固定で文字数が少ない部分で使っているフォントは、文字を画像にすれば削減できます。
画像ファイルの圧縮
私が作ったのは脱出ゲームですが、背景画像が50枚以上になっていたため、画像ファイルの圧縮は一番効果がありました。
画像ファイルは解像度の変更と圧縮方法の指定をしました。
これで1枚1.7MB→1枚60KBで1枚当たり1MBの削減、全体で約50MBも削減することができました。
解像度の変更
解像度はSpriteのインスペクター画面の「Max Size」で変更できます。
画像の変化を確認したがら、許容範囲まで削減しましょう。
私は2048→1024に変更しました。
こちらはもともと2.6MBだった画像を1.7MBまで削減していました。
Max Size 2048
Max Size 1024
ちなみにMax Size 512まで下げてしまうと、画質の劣化が許容範囲でなくなったため、このまま圧縮できないかを検討することにしました。
圧縮方法の指定
私はAndroid向けのビルドをしていたので、Android向けの設定変更で実施しました。
圧縮方法は、Max Sizeの2つ下にある「Format」になります。
この中の「Crunched」がついているものを選択すると、圧縮品質を選べるようになります。
私は「RGB Crunched DXT1」を選択し、圧縮品質(Compressor Quality)を25まで下げたところ、1.7MBあった画像が約60KBまで削減できました。
さらに画像の見た目もそこまで変わらなかったので採用しました。
もう1つCrunchedがあったのですが、それを試しても効果がありませんでした。
バージョンや環境によって異なると思われますので、どちらも試してみた方が良いと思います。
小さいゲームを作る時でも気を付けたい
初心者でゲームを作ろうとすると、ファイルサイズをあまり気にせず作ってしまうと思います。
ですが、規模の小さいゲームでも画像や音声はサイズが大きくなりがちです。
小さいゲームはサクっと遊んでもらいたいですよね。
そのためにも、初心者の頃からサイズは意識しておきたいですね。