ばかおもちゃ本店:Youtube twitter:@sashimizakana Amazon.co.jpアソシエイト

2014年2月19日水曜日

Unityで作ったFlappy BirdクローンをGoogle Playに公開した

結論

公開できた。

おはなし

もう何度も書いているけど、Flappy Birdのクローンの東方二次創作のゲームをUnityで作った。
Flappy Birdは500万/日稼ぐも作者がヤになって公開停止したゲームで、現在クローンが大量に公開されてる。で、それならば俺も公開して500万円欲しいので慌ててクローンゲームを作った。500万入ったらうちの息子大学に入れてやりますねん。まだ2歳だけど。

ご存知のとおりかどうか知らんけどUnityは出力先を自由に選べるので、Webプレーヤー向けで出力したのち、Android向けにビルドしなおした。いくつか設定をして解像度が変わったりしたけど(後述)、ほとんど問題なく出力できて、やっぱUnityすごーいって思った。
あと4年ぶり二回目のPlayストア(一回目のときはPlayストアって名前じゃなかったけど)登録だったので、あれこれ戸惑うことも多かった。っていうか、最初のことはあんまり覚えてないけど、IS01(メガネケース)を開発機にして作ったりしたので、まあずいぶん勝手も変わった。
この辺まとめて技術的なことは、後ろの方に書く。

何より心配だったのが登録を却下されないかということで、Flappy某というソフトは登録却下されるというのがニュースにも出ていた。

AppleおよびGoogle、「Flappy」の名前が入ったゲームの登録を停止中 | TechCrunch Japan

なのでまずふわふわ霊夢という名前にして登録したところ、ふわふわまりさという東方で題名丸かぶりで青空の中を横スクロールで移動するというアプリがあって、しかもちゃんとしたゲームらしく、何をどう考えてもこちらが悪質なパクりにしか見えず慌てて題名を変えた。もともとFlappy Birdのクローンなのに全く意図せず関係ないアプリのパクりゲーになりかけたので、今度からもっとちゃんと検索してから名前を決めようと思った。
というわけで名前はジャンピング霊夢になった。

Flappy Birdとの関連性がバレ疑われぬよう説明文には念には念を押す感じで関係性がないことを書き、名前を入れるだけで検索スパムと見なされるかもと思ったので非常に曖昧な書き方になった。またGoogle様に全力で媚びた方が登録されやすくなるかもという考えからアイコンも最近のAndroidのデザインに合わせたフラットデザインを採用した。
準備は万端であった。

万端過ぎてここで計算違いが生じた。

Flappy Birdは日本では特に人気になってないんじゃないかということだ。一日500万円というところと、それをあっさり捨てたというのがニュースになっているだけで、そんなに流行っているという話は聞かない。クッキークリッカーのときはみんながやっていたし、私もやっていたが、こっちはニュースを先に聞いている。また、やっている人をそんなに見かけたこともない。だから今更日本でクローンを作ったところで500万円は稼げないことは目に見えていた。そもそもクローンで1日500万も稼げるわけがない。500円稼げれば大成功である。

いやそんなことは分かっていた。分かっていて、これだけやって最後に登録却下になれば大変面白いんじゃないかと思っていたのだ。「Flappy Birdのクローン制作者、登録却下される!」みたいなことを誰かがブログに書いてくれて話題になれば面白いなと考えていた。世に言う炎上商法である。

結果は記事の最初に書いた通りである。
案外ふつうに登録できた。
これでは話のネタにもならない。
500万円は稼げなかったし、息子を大学に行かせるために私はあと数十年は働かねばなるまい。

で結局どうなの?

たぶん誰もやってない。

(以下、技術的なおはなし)

UnityのAndroid出力について

Unityでゲームを作ったら出力先はWindows PC、Mac、Web Player、Android、iPhoneなんかに出力できる。それぞれのプラットフォーム間では解像度が違ったりするので、かっちり作ってる場合は色々面倒なのだろうけど、ジャンピング霊夢の場合はごくいい加減に作ったものなので、余裕を持たせるために多少背景を大きめに描画したり、Replayボタンとかのフォントサイズを大きくするくらいだった。
あとビルドするときにAndroid SDKが必要になったけど、Android Studio入れてたのでそれにバンドルされたのを使った。そうじゃない場合は別途インストールしなきゃならないかも。

Android固有の設定としては、build settingから行える。
うろ覚えの記憶で適当にやってるのでちゃんと知りたい人は調べた方が良い。
設定したのは以下の項目(必須ではないものもあるかも)。

・Company Name(会社名。Idiot Toysにしたけど多分適当でも困らない)
・Product Name(製品名。アイコンの下の文字に表示されるので適当だと困る)
・Default Icon(アイコン。設定しないとUnityのアレになる)

Unityのアレ

Resolution and Presentation
・ Default Orientation(縦か横かみたいなの。Portrait:縦にした)

Other Settings
>Identification
・Bundle Identification
(自分のアプリのID。完全修飾名みたいなの。国名.作者名.ソフト名みたいな感じ)
(jp.Sakana.Freimuにした。これがPlayストアのURLのパラメータに入る。ので後から修正不可)
(最初間違えたので、アプリを公開停止にして再登録する羽目になった)
・Bundle Version(バージョン)
・Bundle Version Code(バージョンコード。Playストアに公開後APKを修正するときはココを変える)
(バージョンは変えないでも、ここさえ変えれば直せる。もちろんバージョンも変えても良い)
(軽微な修正だけならバージョン表記変えないでコードだけ変えるとかあるのかな?)

Publishing Settings
アプリ登録するには署名しないとダメなんだけど、ここで設定する。
まずKeystoreを作って、それからKeyを作る。
>Keystore
・Create New Key(チェックを入れてから、Browse KeyStoreでファイルを作る)
・Keystore password(Confirmも忘れずに入れる)
>Key
・Alias(Create New Keyを選ぶとダイアログが出るので適当に入れる。名前とか都市とか空欄でも一箇所だけあればOKらしい)
・Password(さっきのダイアログで決めたパスワードを入れる)

以上でBuildしてエラーとか出なかったらOKのはず。
Build & RunだとUSBでAndroid接続しておかないとダメだと思う。

Androidで追加したこと

admobに登録して広告表示するようにした。一行で追加できるプラグインをGithubで公開されている方がいたので、それをそのまんまお借りして使った。


あと、ホームキー、戻るキーとか押したときにアプリ終了するようにした。
ネット上で最初に見つけたのはKeyCode.Escape使えって記事なんだけど上手く動かなくて、HomeとかMenuも関係あるとか読んでとにかく全部突っ込んだ。本来はアプリを終了するか否かはOS側に任せて、メモリが足りなければバックグラウンドで落とされるとかそういうデザインなんじゃないかなぁと思うのだけど、これないと検証機に使ってるGalaxySではホームに戻るとそのままフリーズして死ぬことがある。たぶんメモリ不足とかなんじゃないかと思う。
ちなみにこれはこのゲーム固有の問題じゃ無くて、他にもUnityから出力した場合は全く同じ症状になるので、Unityのエンジンがメモリ食い過ぎなんじゃないかと思う。

Google Playへの登録

項目は適当に上から埋めていけばいい。スクリーンショット2枚以上と512x512のアイコンが必要になる。ので、Unityのアイコンは144x144サイズからだけど、512x512以上で描いておいたほうが良い。
スクリーンショットは音量下げ+電源の長押しとか、バック+ホームとかバージョンとか機械ごとにいろいろあるっぽい。どっかのバージョンから前者で統一されてるとかなんとか。で、そういうのでスクリーンショットを撮ってDropbox経由でPCに取り込んでアップロードした。
登録してから数時間程度で検索にひっかかるようになった。
また前述の通り、一度アプリを公開停止にして再度登録したが、そのときも公開停止にしてもしばらくはダウンロード可能なままになっていた。

というわけで

おしまい。今年はアプリで一日500万円稼ぐことを目標にします。
(本日までの記録0円)