FreelyApps

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


    アプリ『トランプ・7並べ』を公開しました。
    Android/iOS https://goo.gl/zsFces

    2015年03月

      このエントリーをはてなブックマークに追加 Clip to Evernote
    YouTubeとニコニコ動画へ動画をアップロードしました。
    『走れユニティちゃん!』の紹介をする動画です。
    簡単な内容ですが、アプリを実際に遊んでいる様子を撮影しています。

    以下はリンクです。
    内容は同じです。お好きな方をどうぞ。





    やはりニコニコ動画の方が勢いがあります。
    関心の高い人が多いのか投稿してすぐに再生されます。
    数字がすべてではないですが、見てくれる人がいるのは励みになります。

    ツイッターで動画を載せられないかと思っていたのですが、動画のURLを載せると自動で見れるようにしてくれるらしいです。YouTubeの方で共有したものはうまくいっているようでした。

      このエントリーをはてなブックマークに追加 Clip to Evernote
    3/29に3作目のアプリとして「走れユニティちゃん!」をリリースしました。
    UnityChan-KeepRunning.gif

    以前の記事で内容はほとんど説明してしまいましたが、一応説明します。

    宣伝用素材

    プレイヤーが走っているので、障害物をジャンプで避けて走り続けさせることが目的です。
    走り続けると得点が増えていくので、それを競うゲームになります。

    操作方法は画面のタップをするとジャンプするというものになります。
    空中でも一度だけジャンプすることができます。

    プレイヤーは徐々に前に動いていくので、障害物をうまく使って一定の位置(真ん中くらい)に保つと長く走ることができます。

      このエントリーをはてなブックマークに追加 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
    Unityでスクリプトを編集するときはMonoDevelopが基本です。
    良いところもありますが、私はこれをあまり使っていません。
    JavaScriptやBooでスクリプトを書くならこれでも良いと思いますが、C#の場合はVisual Studioを使う方が好きです。

    コメントを日本語で書きづらいのが、MonoDevelopの最大の欠点だと思っています。
    書けるけども確定するまで表示されないので、わかりにくいです。
    MonoDevelopを使うのは、デバッグのときとちょっとした編集の時です。

    Visual Studioを使うには、
    UnityのメニューのAssets->Sync MonoDevelop Projectを押せばVisual Studio用のファイルが作られます。
    Assembly-CSharp.csprojとか*.slnとかができるので、それを開けばスクリプトの編集が行えます。

    Visual Studioと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
    Android 4.4でimmersive Full-Screen モード(以下、immersiveモードとします)ができたようです。
    以前はフルスクリーン表示といっても、画面下部に戻るボタン等が出ていました。
    これを消し、全画面を利用できるようになるのがimmersiveモードのようです。
    ディベロッパーサイトに使用方法について書いてありました。

    画面下部に出ているボタンを消す必要は、アプリによると思います。
    下の方にボタンがたくさんあるような場合は、ない方が良いです。
    個人的にはあった方が便利なので、あればうれしいです。

    このimmersiveモードはUnity5でアプリを作るとデフォルトで有効になっています。
    それだけなら別に良いのですが、使っているインターステイシャル広告(画面全体にでるもの)を表示すると、ボタンが出てきてしまいます。広告表示後にもボタンが残ってしまうのは、バグのように見えて良くないのです。
    その状態でアプリを残したままメニューに戻り、アプリに戻ってくるとボタンが消えます。
    なんだかバグのような気がしてきます。

    この記事のスクリーンショットの下部に黒いところがあります。これがボタンの領域です。

    現在、Unity5で開発を続けているのですが、この問題があるのでリリースするUnityのバージョンをどうするか悩んでいます。将来的にはUnity5に移行するのは確実なので、微妙なところです。

      このエントリーをはてなブックマークに追加 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を再起動したらうまくいくことがありました。

      このエントリーをはてなブックマークに追加 Clip to Evernote
    ロゴを作ろうと思ってペイントソフトを調べていました。
    色々なものが見つかり、すぐに使えるようにはなりそうもありませんでした。
    時間をかけて使えるようになる必要がありそうです。

    ロゴに求めることは以下のことです。
    1.FreelyAppsと表示されている
    2.いかにも手抜きと思われない
    3.ゲームをしたいと思わせられれば

    1があるのでどのように文字を出すかということを考えました。
    絵を描くと難しいので、Unity上でオブジェクトを並べてロゴができないかな~と思って……やってみました。
    アイコン

    シーン上でCubeをたくさん用意し、それが文字列に見えるように配置していくだけです。
    時間はかかりましたが、ライティングがなされたりしてまずまずの見え方になります。
    Cubeの一つ一つにRigidbodyをくっつけたりすると、崩れていくアニメーションができたりします。
    Unity内のゲームオブジェクトなので、色々と制御できるわけです。

    リリースするアプリではアニメーションは使わないと思います。
    使う場合はここで表示しているように静止画を使うと思います。
    それは初期化のところで出すのが最も都合が良いと考えているからです。
    初期化の処理によっては画面が固まってしまうようなことがあります。
    それでも不自然にならないためには、画面が止まっていなければなりません。
    したがって、もったいないですが絵として保存したものを実際には使用することになります。

    私としては、結構うまくいったというところですが、いかがでしょう。

    このページのトップヘ