原カバンは鞄のお店ではありません。

Unityを使ったゲーム制作のあれこれを綴っていきます。

GooglePlayの100MBの壁

フラグ

「俺、このゲームをリリースしたらSwitchを買うんだ」と爆死フラグを立てて早半年、
なんとかGooglePlayにリリースはしたものの、なんたってIndie Game Fesitivalの締め切りに合わせて突貫工事で作ったものだから、いまだに未完成部分の作成に時間を取られてフラグ改修とはいかない状況です。いや、この場合はフラグは成立してるのか。

 

それはさておき

それほど規制のないGooglePlayなんですが、一つだけ大きな決まりがあって、それは
 GooglePlayにアップルするAPKのサイズは100MB以下
ってやつ。

 

当初は「ゲーム規模はそれほど大きくないし、大丈夫だろ」と考えて、あまりに気にせずにいたのですが進捗が進むにつれてアプリのサイズも大きくなり気がつけば240MBオーバー。

この時点でIndie Game Fesitival締め切り日の前々日だったりしたのは、まさしく

 

  どうしてこんなになるまで放っておいたんだ!
   三           三三
        /;:"ゝ  三三  f;:二iュ  三三三
  三   _ゞ::.ニ!    ,..'´ ̄`ヽノン
      /.;: .:}^(     <;:::::i:::::::.::: :}:}  三三
    〈::::.´ .:;.へに)二/.::i :::::::,.イ ト ヽ__
    ,へ;:ヾ-、ll__/.:::::、:::::f=ー'==、`ー-="⌒ヽ
  . 〈::ミ/;;;iー゙ii====|:::::::.` Y ̄ ̄ ̄,.シ'=llー一'";;;ド'
    };;;};;;;;! ̄ll ̄ ̄|:::::::::.ヽ\-‐'"´ ̄ ̄ll

 

的な状況だったのですが、何とかそれをしのぐことができたので今日はそのお話。

 

APKのサイズを小さくするには

1.何がサイズを大きくしているのか知る

まずは何がそんなにサイズを大きくしているのか知る必要があるので、ログを開いて確認します。

 

Consolの右上をクリックしてEditor.logを表示

f:id:Karvan:20180403214818p:plain

 

ログを下のほうにスクロールしていくと、アプリ内で使用されるアセットのサイズが「大きい順に」出力されています。

 

f:id:Karvan:20180403214844p:plain

 

なので、ログの上位に表示されているものから優先的にサイズを縮小する対応を行います。

 

2.テクスチャのサイズを小さくする

 

殆どの場合、アセットのサイズで上位を占めるのはゲーム内で使用しているテクスチャになっていると思います。

 

3Dモデルなどをアセットストアで購入したままの場合、テクスチャは2048×2048のサイズになっていたりするので、一つのテクスチャで数メガぐらいの容量をとったりします。


これはPCなどの大画面でプレイするようなゲームを作る場合には、なるだけ綺麗なテクスチャが必要となるためこのサイズになっていると思うのですが、携帯ゲームの場合にはそこまで巨大なサイズは必要ないので容赦なく小さくすることにします。

 

projectウィンドウで小さくしたいテクスチャをクリックするとInspectorに以下のように表示されるので、Override for Androidをチェック。

f:id:Karvan:20180403215524p:plain

(今は2.7MBもあります)

 

Maxサイズを512に変更して、Applyボタンを押すと・・・

f:id:Karvan:20180403215928p:plain

 

サイズは170.7KBになります。

f:id:Karvan:20180403220156p:plain

 

これを繰り返してテクスチャのサイズを下げれやれば大抵のアプリなら100MB以下になるかと思うのですが、私の場合は124MBに留まり更に減量が必要でした。

 

3.音声ファイルを小さくする

音声ファイルは通常、Sampe Rateが44.0Hzになっていると思います。が、音質にこだわらなければテクスチャと同様にサイズを小さくできます。

 

テクスチャと同じようにProjectウィンドウで音声ファイルを選び、InspectorのOverride for Androidをチェックして、「Override Sample Rate」を選択して「Sample Rate」を22.0Hzにします。

f:id:Karvan:20180403221210p:plain

これで1.3MB→0.7MBになった。

 

音声ファイルを多く使っている場合は有効な手だと思いますが、ただこれでもダメな場合のさらなる一手は・・・

 

4.使う日本語フォントを一つに絞る(TextMeshProのみ)

 私の場合、Text系のUIには全てTextMeshProを使用していますが、TextMeshProで日本語を使用する場合、ttfやotfなどをそのまま扱うことはせず、独自の形式で保存されたassetを扱います。

 

qiita.com

これが意外とでかい、一つのフォントで16MBぐらいになっちゃう。

なので演出上の理由から二種類使用していた日本語を一つに絞りました。これで16MB空くなら仕方ない。

 

で、それでも、尚且つ、ダメな場合、最後(?)の手段が・・・

 

5.使用しないStandardAssetsを削除する

開発中にPostProcessingを使おうかと思い、プロジェクトにインポートしていたのですが、テストしてみると端末負荷が以外に大きく、使用を断念してそのまま削除せずにいたのです。

が、なぜかビルドするとAPKに組み込まれるようで、Bluerのシェーダとかが2MBとか容量を喰っていたのでこれも削除しました。

 

で・・・

ここまできてやっとAPKサイズが90MBぐらいに。

一気にいろいろ書いてますが、実際は一つ試してはビルドして、一つ試してはビルドして、の繰り返しで作業したので結構な時間が掛かってしまいました。

ええ、終わったのがIndie Game Fesitival締め切り日の前日の午前4時ぐらい。

 

これからアルファ版を公開して課金テストを行う為に、あれやこれやのドタバタがあったのですが、それはまた別のお話・・・

 

宣伝

 

「キューティサーキット ~どうぶつたちと旅にでよう~」

GooglePlayで絶賛公開中です!!

 

f:id:Karvan:20180326204307p:plain

goo.gl

ここまでドタバタを披露するとベータ版じゃないの?とか思われそうですが、ちゃんと最後まで動きます。大丈夫です!きっと、たぶん、大丈夫。うん、きっと・・・

 

追伸

サイドボードのキューティーサーキットのリンクに画像を張りたいのですが、なぜか上手くいきません。誰か助けて

 

 

◇プライバシーポリシー

●個人情報の利用目的

当ブログでは、メールでのお問い合わせ、メールマガジンへの登録などの際に、名前(ハンドルネーム)、メールアドレス等の個人情報をご登録いただく場合がございます。

これらの個人情報は質問に対する回答や必要な情報を電子メールなどをでご連絡する場合に利用させていただくものであり、個人情報をご提供いただく際の目的以外では利用いたしません。

●個人情報の第三者への開示

当サイトでは、個人情報は適切に管理し、以下に該当する場合を除いて第三者に開示することはありません。

・本人のご了解がある場合
・法令等への協力のため、開示が必要となる場合

個人情報の開示、訂正、追加、削除、利用停止
ご本人からの個人データの開示、訂正、追加、削除、利用停止のご希望の場合には、ご本人であることを確認させていただいた上、速やかに対応させていただきます。

アクセス解析ツールについて

当サイトでは、Googleによるアクセス解析ツール「Googleアナリティクス」を利用しています。

このGoogleアナリティクスはトラフィックデータの収集のためにCookieを使用しています。このトラフィックデータは匿名で収集されており、個人を特定するものではありません。
この機能はCookieを無効にすることで収集を拒否することが出来ますので、お使いのブラウザの設定をご確認ください。

●免責事項

当サイトからリンクやバナーなどによって他のサイトに移動された場合、移動先サイトで提供される情報、サービス等について一切の責任を負いません。

当サイトのコンテンツ・情報につきまして、可能な限り正確な情報を掲載するよう努めておりますが、誤情報が入り込んだり、情報が古くなっていることもございます。

当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。

●プライバシーポリシーの変更について

当サイトは、個人情報に関して適用される日本の法令を遵守するとともに、本ポリシーの内容を適宜見直しその改善に努めます。

修正された最新のプライバシーポリシーは常に本ページにて開示されます。