同人ゲームをAndroid用に作ってリリースするまでのロードマップ
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

同人ゲームをAndroid用に作ってリリースするまでのロードマップ

2020-10-24 22:29
    先日作ったカモメ町のベンチマークとして、ビーチボールゲームを作りましたが、
    モバイル用にも作ってGooglePlayにリリースしました。
    カモメ町ビーチボールフェス
    https://play.google.com/store/apps/dev?id=7772025009740869932


    …その道のりが想像以上に大変だったというか、ネットで得られる情報がことごとくぶつ切りで! 今じゃ通用しなくなった情報もあってやべえ!

    全工程を一つの記事で書ききったサイトは見当たらなかったので、
    2020年度のAndriodアプリリリースまでのロードマップをここに書き記します。

    1.Unityでアプリのプロジェクトを作る
    2.AndroidStudioを入手する・Javaを入手する・JDK/SDK/NDKを割り当てる
    3.Unity2018でしかビルドが通らない
    4.PlayerSettingから、圧縮設定を考えるVertexCompress
    5.Googleアカウントからデベロッパーアカウントとストアページを作る
    6.アプリを新規作成する
    7広告AdMobのアカウントを取得する
    8.広告とプライバシーポリシーを実装する
    9.テストビルドしてスクショを撮る
    10.apkまたはabbをアップロードする
    11.レーティングを真剣に考える
    12.テストリリース

    13.公開申請する
    14.自力で宣伝する

    長い道のりです(真顔)

    1.Unityでアプリのプロジェクトを作る
    まずここは省略します。
    プラットフォームをAndroidに切り替え、モバイル用に最適化するため各種アセットの圧縮や低解像度化、メッシュの統合、マテリアルの削減、軽いシェーダー、といろいろやるのは
    ネットで出回ってる情報の通りにやればほぼ間違いなかった、でした。
    ただキャラモデルに関しては、シェイプがあると引くほどサイズが増えるのですが、どうしてもキャラの表情を変えたかったら顔を別パーツにして、アニメーターも変えるという改造が必要です(した)が、ここでは割愛します。
    他にひっかかったのがVertex Compression(後述) ですが、圧縮は可逆でいつでも設定を変えられるので、おおむね問題ないです。


    2.AndroidStudio+エミュを入手する・Javaを入手する・JDK/SDK/NDKを割り当てる

    嘘だあーーーー!!!

    JDK/SDK/NDKは、Android向けにビルドするために必須のものですが、
    使用するUnityのバージョンに合わせて、細かく要求されるバージョンが違います。
    厳密にはもう公式に入手できないものまである…!!
    しかし、2017以前のUnityエディタにはSDKNDKは組み込まれてなくて、その頃までの記事にはJDK/SDK/NDK入手とインストール手順がみっちりネットの記事に書かれてたのですが、

    今は事情が違いました。

    うかつにこれらの最新バージョンをインストールすると死にます。
    古いバージョンをインストールしても死にます。

    2018以降はJDKはともかく、他はUnityエディタにはじめから組み込まれてるので、うかつにSDKをインストールとかパスを変えて再起動とかやると、逆にビルドできなくなります
    (複数あると競合するくさい)
    ビルドしてエラーを出さずにapkファイル=実行ファイルは作れても、Androiod実機で起動しない症状に死ぬほど苦しめられました。情報が出てこない。
    ちなみにいまだに解決してません。
    全然使わないけど必須というからインストールしたAndroidStudioも、もしかしたら悪さしてるかもしれない。


    3.Unity2018でしかビルドが通らない
    私の環境では2018しかビルドできなかった…!
    2.でもがきまくったのが原因だと思います。
    HDRPもURPも使えない(いや2018でもプレビュー版なら使えるけど)
    泣く泣く2019.4で作ったプロジェクトを2018に作り直しました。
    (2019→2018だとシーンに並べたプレハブが消えない程度の後方互換性はあったんだ。)
    これも、ネットで調べても該当する情報が出てこない。
    レジストリの近くまでいじくるような操作とかしたから、クリーンインストールしない限り直らないかもなあ。それでも動く保証はないし、最悪2018までビルドできなくなりかけたので、今の状況を維持して状況改善するには、別のPCを用意してそっちで試すしかないという…


    4.PlayerSettingから、設定を組む
    UnityエディタではAndroid用の設定は主にPlayerSettingから行います。

    ここでプロダクトIDとかアイコンとかセットしますが、注意点は

    キーストアを作る
    キーストアって何?、要はアプリをGoogle Play Consoleにアップするさいに必要な本人証明のファイルと、そのパスワードのことです。これがないとアップできません。


    https://qiita.com/ptkyoku/items/3fb1ae542ff04423c781
    作ったファイルとエイリアスが全然Unityに認識されずに焦った。いつの間にか通ってた
    作ったファイルとパスワードx2は絶対忘れないように。

    NDKが不可欠
    ストアに出す=Google Play Consoleにアップするには、
    今は64ビット対応(というか32ビット禁止)にしないといけなくて、それにはNDKの使用が不可欠です。(使わなくてもビルドだけはできる)
    https://teratail.com/questions/207173
    PlayerSettingから、Publishing Settings-ConfigurationでARM64にチェック
    加えて、x86のチェックは外さないといけませんでした。


    x86つけてるとストアアップロードではじかれます。

    APKレベルを最大にする
    APKレベルが何なのかイマイチわかりませんが、その時点の要求レベル以上にしないとアプリストアにアップできません。いまレベル28必要。年々上がります。
    Unityエディタに設定項目がありますが、AndroidStudioはこのためだけに必要みたいなこともあったかも。…これが何したらレベルを上げられたのかよく覚えてません。

    Vertex Compressionも設定する必要があります。
    https://masakami.com/archives/2019/11/14/486/
    これはビルド時にメッシュを圧縮する新機能ですが、似た機能であるfbxのMeshCompressionをオンにしてると無効になってしまうとか。でもどっちがよく圧縮するのかパフォーマンスがいいのか、わかりません。体感的には後者な気もする


    5.Googleアカウントからデベロッパーアカウントとストアページを作る
    リリースする前にアカウントを作り、
    Google Play Consoleから自分のストアを作る必要がありますが、



    いろいろな要項を申請して承認させるのに一日以上の待ち時間を要します。

    デベロッパーページにはでかいバナー画像が必要だし、
    支払い設定は銀行オンリーで(嘘だろ)、テスト入金待ちなんてあるし
    プライバシーポリシーにはホームページを作っておかないとだし
    アプリ広告もアプリページを作って検索に出てくるまでは無効です。(ビルドしてアップロードするまで、ではなくて)

    早めに(金払って)作っておかないと、いらんトラブルを引き起こします。


    6.アプリを新規作成する
    アプリページがあれば広告がアプリに貼れるようになります。
    アプリのテキスト関係を早めに設定しといて損はないでしょう。
    言語は日本語以外に英語も用意しておくといいはず。英語の翻訳は急ぐとひどい文章になる。

    アプリ自体も言語切り替えを実装してるに越したことはないので、文字が少ないならちょびっとのスクリプトで簡単にテキストを切り替えできるので、やります。
    これの動作確認は実機の本体設定を変えるのが手間だけど


    7広告AdMobのアカウントを取得する
    Googl広告AdMobのアカウントを取得したら、プロジェクトに広告を実装するのですが



    実装はまあ、ネットの記事の通りにやればバナー広告だったら簡単でした。
    一方、UnityAdsが無理ゲーでした
    http://kuromikangames.com/article/475955809.html
    コードを追加するのはそりゃ簡単だけど、それはテストモードまでの話
    本番に必要な必要なグーグルストアIDが取得するまでの手順が、頭に入らない!!!
    一度も使ったことないUnityダッシュボードにアプリのプロジェクトを登録して、さらに
    アルファ版のアプリ(なにそれ?)をGooglePlayにクローズドテスト版でアップして、申請が通るまで24時間待ち…ついてけねー!
    さらにAdvanced設定は切れとか怪情報が出るし…
    初心者はバナーだけで精一杯


    8.広告とプライバシーポリシーを実装する
    無料アプリに広告を載せましたが、こいつのためにプライバシーポリシーが不可欠だそうで
    なんと自分のサイトを作って専用ページを作り、更にストアページだけでなくアプリからも飛べるようにリンクを張れとかいう。
    課金とかネットアクセスとかしなければ文は短くて済むんですが
    すでにHP持ってたからまだ良かったけど、やっぱりめんどくさい
    ※なお現時点ではまだアプリにリンクは実装してないです(このへん申請した後に知った情報なんで)、にもかかわらず通ったなら、もしかしたら今は必要ないのかもしれない。数日後に警告がきて公開取り消しになるのかもしれない。


    9.テストビルドしてスクショを撮る
    広告を実装したら動作テストします。
    Android用の実行ファイルはapk形式の1ファイルのみ、扱いが簡単です、が。
    USBケーブルでつないでビルドランするか、コマンドプロンプトでadbコマンドとか、エミュレータにD&Dでファイルを実機に渡す、などいくつか方法がありますが、恐ろしいことにどれも失敗しました。プロファイラーでデバッグもできやしねえ
    が、Googleドライブ経由でファイルを渡すことができました

    admobの実装はまあまあ簡単なのですが、
    https://nekopro99.com/unity-android-admob-banner/
    リリース前は広告はテストIDにしないと規約違反でBANされるかもとか。
    本番リリース時以外は常にテストIDにしとかないとマジで間違えます。
    絶対間違えずすぐ切り替えられような気の利いたスクリプトを書く必要があります。

    テストプレイ時にストア用のスクショも撮ります。
    アイコン用に512*512が一枚,フィーチャーグラフィック用に1024*500が一枚,
    実機のサンプルスクショ用に数枚必要です。
    Androidでスクショしづらかったら、PCでビルドして撮るのもいいかも
    更に、国別に違う画像をアップできるので、レーティング対策に多めに撮ります。


    10.apkまたはabbをアップロードする
    テストビルドが問題なかったら、apkをアップします。どこに?
    Google Play Console-アプリ-リリースってとこです。



    クローズテスト、オープンテスト、製品版とありますが、どれも別ファイルをアップする仕様です。また、一度アップしたらバージョンアップとしてカウントされ、Bundle Version Codeが同じかそれ以下のファイルは二度とアップできません。ビルド前にUnityエディタ側でBundle Version Codeを変える必要があります。
    PlayerSettingから、Other SettingsにあるBundle Version Codeを上げます。


    また、apkよりabb形式のほうがファイルサイズが小さくなりインストールされやすくなるのですが、abbファイルは実機に直接読み込ませることができないデメリットがあります。


    abbファイルでビルドするには、Build App Bundleをオンにします。


    11、レーティングを真剣に考える
    アプリには、レーティングを決める必要があります。
    apkをアップすると設定できるようになります。こいつが審査の最大の障壁です
    Google Play Consoleの長いアプリメニューの一番下というわかりにくいところにあります



    https://akira-watson.com/android/developer-console.html
    CeroZとかM指定とか、リリースする国ごとにレーティングが違いますが、リリースする国が増えると面倒が増えます。日本国内なら面倒は少なそうだけどアメリカでかいから外したくない…
    アンケートに暴力表現の有無とか答えると、レーティング目安が3歳とかになって低っ!てなったけど、
    これとは別にターゲット層と、広告の有無の項目があったのも見逃してました。
    ビーチボールのぶつけ合いというゆるゆるな内容でも水着の女が出る時点でアウトなわけで、審査一度落ちました
    日本以外は超厳しいのは察せられます。体感的にアイコンに水着ガールは100%アウトなのかなと(アイコンだけは全世界全年齢が共通で見えるから?)
    念の為水着ガールをモデリングし直しました。


    12.テストリリースを挑むができない
    レーティングを固めてリリースの設定がすべて終わったら、申請します。
    いきなり製品版リリースはビビるのでテストリリースしたかったのですけど。

    限定されたメンバーにだけテスト版をリリースできます。メールアドレスを登録して、Play Consoleアプリをインストールした実機からプレイできる…はずですが
    ぼっちはどうすんだ 
    仕方なく自分のメアドをテストメンバーとして登録しましたが、テストリリースも申請が必要で、こっちはレーティング関係ないと思うんだけど、ずっと審査中のまま通らない…

    仕方なくノーテストで製品版リリースしました。

    製品版の公開と同時にこっちも公開済みになりました。なにそれ


    13.公開申請する
    リリースを申請すると数日かかって審判が下ります。
    無事日の目を見るといいですね


    14.自力で宣伝する
    申請が通って無事リリースされたら…え?!になりました
    公開されたというメールも来ないし、アプリのストアページにはシェアボタンが見当たらない
    さらに、ストアで自作アプリを検索しても出てきません。
    どうやって告知とかするん????

    Googl広告を登録するとできるぽいですが(アプリ内広告のAdMobとは別)
    https://ads.google.com/intl/ja_jp/home/campaigns/app-ads/
    …これ企業向けで個人でやることではなさげ?

    さらにAdMobの設定は、自動でリリース済みにならず、手動で設定し直す必要がありますが、ストアの検索に出てこないとこれも設定できません。
    検索に出るまでしばし(一日以上?)かかります。

    おへえ


    というわけで山程つまづきながらも、人生初のゲームアプリのリリースにこぎつけました。よろしくおねがいします。













































    広告
    コメントを書く
    コメントをするには、
    ログインして下さい。