FreelyApps

個人によるアプリ開発の日記です。アプリの収入だけで生活できるようになるのが目標です。UnityでAndroid向けのゲームアプリを作成しています。


    アプリ『トランプ・ジン・ラミー』を公開しました。
    Android/iOS https://goo.gl/PYKFYG

    カテゴリ: 開発

      このエントリーをはてなブックマークに追加 Clip to Evernote
    アプリの開発の流れをざっとまとめてみます。
    1. 企画を考える 
    2. アプリを作成する
    3. アプリを公開して宣伝する
    4. 更新をつづける
    大体こんな流れになると思います。

    1はどんなものを作るかを決めるものです。自分の作りたいものを作ってもいいですし、多くの人が求めそうなアプリを狙うのもかまいません。個人の場合はユーザーの動向を調べるとかやり始めると時間を取られすぎるので、あまりこだわらない方が良いと思います。

    2ではアプリを作ります。作り方は色々な方法があるため自分に合った方法ならなんでも良いです。
    ゲーム(特に3D) であれば、Unityを使うのが楽だと思います。ただどんなジャンルのゲームでも作れるようになっているので、自分で作る部分が多くなります。決まったジャンルのみ作るなら、それに特化したツールを使う方が楽です。

    3の公開がひとまずの目標になります。公開できればアプリを作ったと言えるでしょう。
    どんなアプリだとしても存在が知られていなければダウンロードされません。したがって宣伝をしなければいけません。これが個人でも非常に重要だと思います。 
    既にリリースした有名なアプリを開発した人であれば別ですが、普通は無名です。誰かが宣伝してくれるわけでもありません。自分から宣伝することが大事です。

    4はアプリが順調にダウンロードされ続けないとやることはありません。
    同じアプリを長く遊んでもらうことで収益や知名度の向上が見込まれます。
    停止してしまうといったバグであればすぐに修正することが必要です。 

      このエントリーをはてなブックマークに追加 Clip to Evernote
    スマホ向けのアプリはiOSとAndroidがあります。
    他にもあると思いますが、主流はこの2つです。
    どうやって片方を選ぶかという話をします。

    どちらにも一長一短あり選ぶのは難しいと思います。
    どちらも出すというのが良いと思いますがお金がかかります。
    どちらか一方出すということであれば、自分の端末と同じ方を選ぶのが良いと思います。

    新しく端末を買わなくて済みますし、多少は勝手がわかっているはずです。
    その点が有利なのでまずはそちらで開発するのが妥当です。現時点で他のプラットフォームに出していなくても、今後出すことは可能です。経験を積んでからプラットフォームを増やしていっても遅くはないわけです。

     どちらの端末も持っていないかあまり詳しくない場合は、自分の持っているパソコンで決めるのが良いです。
     iOSの場合はMacが必須です。既に持っていないなら買わなければいけません。
    使っているパソコンがMacでないなら、Androidにした方が敷居が低いということになります。
    使っているパソコンがMacであるなら、 iOS/Androidどちらの開発も可能です。

      このエントリーをはてなブックマークに追加 Clip to Evernote
    apkファイルというのはAndroidのアプリを作ったとき、最終的に出来上がるファイルのことです。
    このファイルをDeveloper Consoleで登録することでアプリを配信することができます。

    中身はアプリのプログラム、画像、音、AndroidManifestなどが含まれています。
    AndroidManifestというのはAndroidのアプリでは重要なファイルです。
    xml形式で書かれたアプリの設定をまとめたものです。
    このAndroidManifestの設定で起動する画面を決めたり、権限を割り当てることができます。

    アプリをビルドしてapkファイルができたとき、AndroidManifestが正しく設定されているか確認したい時があります。
    Unityを使っている場合は、AndroidManifestをプラグインのために使用すると最終的に出来上がるマニフェストファイルがどうなるか分かりにくいです。Project Settingsで指定したAndroidManifestのための設定とファイルとして存在するAndroidManifestがマージされるのです。
    AndroidManifestが正しくないとアプリが動かないこともあるので、どうなっているか確認したいわけです。



    apkの中にあるAndroidManifest.xmlの確認方法は以下の通りです。

    apkファイルを用意します。XXXXX.apkのような名前だとします。
    apkという拡張子をzipに変えます。
    そうすると解凍することができるので解凍します。(Windowsならダブルクリックするだけ)

    解凍したフォルダにAndroidManifest.xmlというファイルがあるはずです。
    これが見たいファイルなのですが、バイナリになっています。
    このままだとわかりづらいので、xmlのバイナリ形式をテキスト形式にしてくれるツールを使います。

    AXMLPrinter2.jarというツールをまずDLします。
    置き場所はどこでも良いので、自由においてください。

    java -jar (AXMLPrinter2.jarのパス) (バイナリ形式のxmlのパス)
    というようにしてツールを実行すると、テキスト形式になったxmlが表示されます。



    コマンドを実行するのが良く分からない場合は、
    AXMLPrinter2.jarをデスクトップに置き、見たいAndroidManifest.xmlもデスクトップに置きます。

    アクセサリ->コマンドプロンプトを選択し、cdコマンドでデスクトップに移動します。
    その場所でjava -jar AXMLPrinter2.jar AndroidManifest.xml > output.xml
    を実行すればoutput.xmlがテキスト形式のマニフェストファイルになっています。

      このエントリーをはてなブックマークに追加 Clip to Evernote
    Application.OpenURLという関数は呼び出すと、ブラウザを開き、引数に指定したURLに飛ぶことのできるものです。

    Application.OpenURL("http://freelyapps.blog.jp/");
    というように書けば、ブラウザが開きます。一旦アプリの実行はされなくなります。
    音を鳴らそうとしていたりすると、ブラウザを閉じてアプリに戻ってきたときに再生されたりします。
    あまり重要な処理は、この関数の前後で呼ばない方が良さそうです。

    この関数を使うと、アプリ内から自分の作った他のアプリの一覧のページ(Google Playの開発者ごとのページ)に誘導したり、Twitterへ投稿のリクエストをするといったことができます。
    アプリ内でWebページを見るということはできませんが、簡単に外部のWebページに誘導できるので、ヘルプページの作成なんかには役立つと思います。

      このエントリーをはてなブックマークに追加 Clip to Evernote
    使っているPCとソフトウェアについてまとめておきます。
    徐々に変わってくるものだと思いますが、現時点2015/4/3での環境です。

    PC
    • 機種 自作のデスクトップパソコン

    • OS  Windows 7

    • CPU Core i7 3.4GHz

    • メモリ 16GB


    ソフトウェア
    • Unity 5.0.0p3

    • GIMP

    • Microsoft Visual C# 2010 Express

    • サクラエディタ

    • TortiseSVN

    • Google Chrome

    • Mozilla Thunderbird



    Unityを中心にバージョン管理ソフト、画像を編集するソフト、エディター、ブラウザ、メールクライアントといったところです。
    ゲームを構成するプログラム、絵、音に関係するソフトとそれ以外に大別できます。
    それ以外というのはバージョン管理ソフト、ブラウザ、メールクライアントになります。
    これらは、なくてもゲーム制作ができます。複数人で開発するとか、できたゲームを公開するとか、調べ物をするとか、外部とのやり取りなど対外的な活動で必須です。

    ゲームを構成する要素として、上ではプログラム、絵、音を挙げました。
    一般的にはそれが含まれています。プログラムというのはユーザーの入力・処理を行うので、プログラムがないゲームはあり得ません。
    珍しいとは思いますが、絵や音はないこともあります。演出的な意図や制作者の都合によるのでしょう。

    ソフトウェアの項目を見ると、FreelyAppsはプログラムに偏っています。それは単に個人の能力的な問題ですが、できる限り絵と音にも力を入れていきたいと思っています。

      このエントリーをはてなブックマークに追加 Clip to Evernote
    管理をする環境を用意するのが一番大変です。
    作業する準備は色々な方法がありますが、私がやっている手順で説明します。

    Subversionが管理するフォルダを作り、そのフォルダの下にUnityが管理するプロジェクトを作ります。Unity上で設定をすることでバージョン管理に対応したUnityのプロジェクトになります。
    バージョン管理に対応したというのは、元に戻したり、他のパソコンで作業できるようにしたりといったことが対応できるようになります。

    以下で具体的な手順を説明します。
    TortoiseSVNを使うことを前提にします。表示されている画像では日本語パッチを当ててないので、コマンド名は英語です。それ以外のクライアント等は適宜コマンドを変えてください。



    まずSubversionの管理するフォルダを2つ作ります。中身がなければ、どこにあってもかまいません。ひとつはリポジトリ、もうひとつは作業用のフォルダになります。
    リポジトリは作業の全データを保存するデータ置き場と考えてください。

    リポジトリの作成は、
    make-repo.png
    のようにリポジトリにしたいフォルダを右クリックし、Create Repository hereを押します。
    フォルダ構造をどうするか聞かれますが、そのままOKで大丈夫です。(SVNに詳しい人は自分なりの設定で良いと思います。)

    リポジトリができたら、作業用のフォルダを準備します。
    make-work.png
    作業用にしたいフォルダを右クリックして、SVN Checkoutを選びます。URL of repositoryというのがリポジトリの場所を表すので、先ほど作成したリポジトリを指定します。指定したら、OKを押してチェックアウトが完了します。

    作業用のフォルダには「.svn」というフォルダがあるだけになっていると思います。
    これはSVNが管理するフォルダなので、触らないでおきましょう。

    次にUnityのプロジェクトを作成します。
    プロジェクトを作る場所は、先に作った作業用フォルダの下にしてください。
    プロジェクトを作ってUnityを終了させれば、このようなフォルダ構造になっているはずです。

    作業用フォルダ┓
              ┣.svn
              ┗Unityのプロジェクトフォルダ┓
                                 ┣Assets
                                 ┣Library
                                 ┗ProjectSettings

    Unityのプロジェクトフォルダ以下を管理するのですが、このままだとできないのでUnityである設定を行います。Unityでこのプロジェクトを開き、メニューEdit->Project Settings->Editorを選びます。
    open-edit.png
    インスペクタ上で設定項目があるので、以下のようにします。
    Version ControlのModeをVisible Meta Filesにし、Asset SerializationのModeをForce Textにします。
    Version Controlの方は、バージョン管理に必要なmetaファイルを作る設定です。
    Asset Serializationは必須ではないのですが、Unityが作るファイル(シーン、プレハブ、マテリアルなど)をバイナリではなくテキストの形式(YAML)で保存するようにするものです。管理しやすくなるので、Force Textに設定しておいてください。
    versioncontrol-setting.png

    Unityを終了させ、Unityのプロジェクトフォルダ下にあるLibraryフォルダを消します。metaファイルがあれば、それから再作成されますので一旦消してください。

    作業用フォルダに戻り、SVNの管理にファイルを追加します。作業用フォルダで右クリックをし、Addコマンドを選びすべてのファイルを追加してください。
    svn-add.png

    追加が終わったら、右クリックしたメニュー中からSVN Commit...を選んでください。
    以上でUnityの作成したプロジェクトがSVNによって、管理されることになります。



    以下の内容はUnityのプロジェクトをSubversionで管理することの準備以降のことです。

    もう一度プロジェクトをUnity上で起動すると、Libraryフォルダが再度作成されます。SVNで管理する対象ではないので、Libraryは無視リストに入れておきましょう。名前で無視するという設定で良いと思います。

    ファイルが増えたときは、ファイルそのものとそれに対応するmetaファイルを追加してコミットしていってください。metaファイルを忘れると、Libraryフォルダを消したときに復元ができなくなってしまいます。
    定期的にSubversionの管理フォルダのトップで変更の確認かコミットを行えば、漏れがなくなるのでやっておくと良いです。

    Unityの公式ページにもバージョン管理について書いているので、読んでみる価値があります。

      このエントリーをはてなブックマークに追加 Clip to Evernote
    プログラムのソースコードはバージョン管理することが便利です。しなくてもプログラムできますが、しておくと後で必ず役に立ちます。

    どんなことをするかと言うと、ある時点でのプログラムを保存しておきます。この保存時にファイルには番号(バージョン)が振られます。どの番号のファイルも取得することができ、それに戻すこともできます。ファイルを消してしまっても番号を指定して取得することもできます。

    管理用の置き場があって、そこにすべてのファイルがバージョンごとに保管されているイメージで良いと思います。全部の履歴があるのだから、戻したり、見比べたりすることができるわけです。

    色々なバージョン管理用のソフトがあります。フリーソフトでも存在しています。
    私は、Apache Subversionというものを利用しています。コマンドラインでは分かりづらいので、クライアントとしてTortoiseSVNを使っています。
    クライアントは、コマンドとして命令しなければいけないものをアイコンのクリックとかのインターフェースにおきかえてくれる便利ツールです。
    Subversion(SVNとも)を使っているのは、慣れているからです。また無料であり、商用利用も可能なので面倒な問題がなさそうです。

    スクリプトだけがバージョン管理の対象かというとそんなことはありません。
    Unityの場合、プレハブやシーンなどすべてのアセットが対象です。
    ただし、スクリプトだけ管理する場合と違い設定すべきことがあります。それに関しては次回詳細を書いておこうと思います。

    バージョン管理というものがあり、それを使うと役に立ちます。
    新しいアプリを作るときは必ずすることにしています。しないと作れないほど便利です。 【スクリプトの管理について】の続きを読む

      このエントリーをはてなブックマークに追加 Clip to Evernote
    アプリ開発の最初にかかる費用は既に書いたので、次に端末代について書きます。

    「端末がなぜひつようなのか?」というのは、PC上では確認できない機能というものがあるからです。
    また確認作業は「実際のものでやってみないと何が起こるのか分からない」という恐ろしいことがあるのです。
    絶対になければならないわけではないですが、確認はやれるだけやった方が最終的に皆が幸せになれると思います。

    広告の実装なんかはその典型例です。
    PC上では全く表示されないのが普通だと思います。理由はAndroidの機能を呼び出しているからだと推定します。

    端末が必要な理由は、重要度の高い(FreelyAppsの場合は広告)機能がうまく動いているのかを検証するためです。
    もし動いていなければ、広告が出ずに収益が発生しなくなります。もっとまずい場合はアプリが止まってしまうかもしれません。
    このようなことが起きていないかということを調べる手段が、端末にアプリをインストールし実行するということになるのです。

    必要性を説明したところで端末を買うことに移ります。
    どの端末を使うかによって値段は大きく異なります。安いものだと1万円切るくらいです。
    私の場合で言うと、Nexus 7 (2013)です。
    一番安いモデルでAmazonでは、現在約2万円です。
    GoogleとASUSが開発したもので、名前からもわかるように標準的なタブレットに位置付けられます。

    特に好みがなければNexus 7 (2013)をお勧めします。
    薄くて使いやすいですし、性能もそれなりに高いです。
    Nexus 7 (2012)に比べて横幅がせまくなっているので、片手でもつかめます。これは結構使いやすさに関係すると感じます。
    Android 5.0にも更新することができます。

    たくさんの機種で実行することが最も良いです。
    出回っているAndroid端末は数多くありますので、ユーザーはそれだけの端末で遊ぶ可能性があるからです。
    しかし、現実的には無理です。
    端末を買いそろえること、それぞれの端末で確認作業をすること、これらをすべて行うには資金と時間が足りません。
    企業レベルでも多くのユーザーが持っている端末を買うというのが妥協点でしょう。
    個人で行う開発では、せいぜい自分の使う端末の数――1、2個でしょう。
    儲けが出てきたら、開発資金に回して端末を買うというのが良いのではないでしょうか。

      このエントリーをはてなブックマークに追加 Clip to Evernote
    Androidアプリを提出するまでに何にどれくらいの費用がかかるのかをまとめます。
    これからアプリを作ってみようと思う人は、重要なことだと思います。
    また、アプリで稼ぐなら、収益だけでなく費用も考えないといけないのは明らかです。
    ここにあげるのは必須と思われる費用だけです。実際の開発には他にもかかるものがあります。

    はじめるにあたって費用がかかります。
    まずパソコンです。
    アプリを作るために必要になります。
    10万円程度で用意できると思います。

    Androidのアプリを作るだけなら、パソコンがあれば十分です。
    Java、Android SDKは無料で手に入るので、作るのは無料で行えます。
    個人のホームページ上で公開するなら、それも無料です。

    Androidアプリを作るなら、Google Playに置くのが普通だと思います。
    全世界に配信できますし、どのAndroid端末からもアクセスができるからです。
    Google Playに公開しようとすると、開発者の登録費用として25$かかります。(1$=120円として、3000円です)
    一回登録するだけでずっとアプリを公開していけるので、それほど高い値段ではないと思います。

    そのほかの費用として、電気代、住居費、通信費があります。
    電気代と住居費はすべてがアプリ開発に使われるわけではないですが、かける時間しだいでは多くの割合をアプリ開発のために使っていると考えることができます。
    極端な話、家にいる時間の全てが開発時間なら、全額がかかると思って差し支えないでしょう。
    通信費はインターネットにつなぐためにかかる費用分です。
    回線とプロバイダー料金がかかります。

    ざっと見積もるとこんなところでしょうか。


    【初めにかかる費用】
    パソコン:100,000円
    Google Play デベロッパー アカウント登録費:25$ = 3,000円
    小計:103,000円

    【月々かかる費用】
    電気代:8,000円 × 20% = 1,600円
    住居費:70,000円 × 20% = 14,000円
    通信費:4,000円
    小計:19,600円

    合計:122,600円(はじめの月)


    月々にかかる費用は人によってかなり異なると思います。
    私の場合は大体これくらいです。
    20%にしたのは、土日の8割くらいとして見積もりました。( 2 / 7 * 0.8 = 0.228 )

    開発の初めは、ほとんどパソコンの値段ということがわかります。
    時間がたつにつれて、住居費の負担が一番重くなってくるでしょう。
    ただ、大抵の人は既にこれらの料金を払っているでしょうから、新たに必要なのはアカウントの登録費くらいかもしれません。
    アプリの開発だけに必要な費用としては、数千円だけなので敷居はかなり低いと思います。

      このエントリーをはてなブックマークに追加 Clip to Evernote
    Unity Remote 4という機能があります。
    Unityから出ているAndroidアプリを端末に入れて、それとPCで動かしているUnityをつなぐものです。
    PCとつないだ端末にはUnityで実行中のゲーム画面が表示されます。端末からの入力がUnityへ送られゲームを操作することができます。
    スマホで操作と画面の表示を行い、処理をUnityで行うようになります。

    端末にアプリをインストールせずに実機で遊んだときの大体の動きを確認することができます。
    いちいちインストールせずに実行できるのは非常に大きいです。
    インストールはビルドと転送に時間がかかり、繰り返していると効率が悪いです。
    自動で端末にインストールされるような環境を作れば理想的ですが、多少手間がかかります。
    手っ取り早く確認するという点で開発中はUnity Remoteは便利だと思います。

    以下は手順です。
    まずアプリを端末にインストールします。
    インストールしたアプリを起動し、USBケーブルでPCと接続します。
    実行したいUnityのプロジェクトを開き、MenuにあるEdit->Project Settings->Editorを選びます。
    menu.png

    以下のようにEditor Settingsが開くので、Unity Remoteの項目のDeviceをAny Android Deviceにします。
    editor.png

    この設定が終わったら、Unityの再生ボタンを押して実行すれば端末にゲーム画面が表示され、入力することもできます。

    ※うまく動かないこともあり、Unityを再起動したらうまくいくことがありました。

    このページのトップヘ