個人アプリ開発で月収5万円目指す

個人アプリ開発で月収入5万円目指す

「定年後の収入に不安を感じる30代会社員」のリアル成長記録

【Unity】シネマシーン アセットストアから削除 それでもインストールする2つの方法 Cinemachine

環境:Unityバージョン 2020.1.1f1

カメラワークに便利そうな"シネマシーン"

使ってみよう思ったら、アセットストアに無い!!!(涙目)

シネマシーン

このことをツイッターでつぶやいたら、

幸運にもインストールする方法を教えていただいたので共有します。

なんて優しい世界...

インストール方法1

1.パッケージマネージャーを開く

ウインドウ→パッケージマネージャー

パッケージマネージャー開く

2.パッケージマネージャー設定

「Packages:In Project」ボタンを押す→「Unity Registry」を選択

unity registry

3.パッケージ一覧から探す

一覧にあるはずです。 シネマシーン探す

インストール方法2

1.パッケージマネージャーを開く

ウインドウ→パッケージマネージャー

パッケージマネージャー開く

2.パッケージマネージャー設定

GitHubのURL指定でPackageを導入できるようにする

パッケージマネージャー→左上の+ボタン→Add package from git URL...

パッケージマネージャー

3.URL入力

Add package from git URL...を選択すると

URLを入力する欄があわれるので

シネマシーン入力

と入力→「追加」ボタン

入力後しばらく待つと...

シネマシーンが表示され勝手にPackagesフォルダに入ります!!

シネマシーン出現

勝手に

おわりに

他のパッケージをインストールする時にも使えるので、下記リンクの保存をオススメします。

参考 helpdesk.unity3d.co.jp

これがブレイクスルー!? 副業アプリ個人開発1年4ヶ月の広告収益公開 2020年8月

f:id:marumaro7:20200829212044p:plain

本記事では前回記事からの活動状況と収益の推移を報告します。

marumaro7.hatenablog.com

まずは結果発表!!

ドンッ!!

収益グラフ

うおぉぉぉ!!
なにこれぇぇぇ!!
13,000円!?!?
突然増え過ぎてなにがなんだがわかりませぬ。。。
これがブレイクスルーってやつですか???

突然何があったの?

8月の最初に脱出ゲームをリリースしました。(制作期間2ヶ月)
収益の98%はこの脱出ゲームが生み出してくれています。

今まで作ったアプリの全てを使って生み出したアプリです。
(でも、クオリティ自体は他の脱出ゲームに比べたらかなり低いです。)

play.google.com

apps.apple.com

お礼
ツイッターで宣伝してくださったみなさま
ならびにレビューしてくださったアプリ紹介サイト様
おかげさまでAndroid 部門別急上昇ランキング1位まで獲得できました!!
ご協力いただき厚く御礼申し上げます。 marumaro7.hatenablog.com

しかし現在の収益は・・・

日割りの収益額として、最大で2800円ありましたが、

毎日のアプリインストール数は下がり続け、 月末には60円や90円となっております。

さらにストア検索にでてこない

また、アンインストール率が多いせいか
アプリストアから検索で表示されなくなってしまいました。(悲しい)

とはいうものの脱出ゲームは強い

今まで様々なジャンルのアプリを7本リリースして最大月収380円という結果でした。
今回リリースした脱出ゲームアプリ1本で約34倍の収益です。
アプリのジャンルでこんなにも反応が違うのかと驚いています。

脱出ゲームのジャンルは、ライバルがひしめく環境があるのも事実ですが、
ひとつのアプリにユーザーが固定されることがないので
かなりインストールされやすいです。

収益を狙うなら間違いなく狙い目のジャンルです。

今回、私の脱出ゲームはストア検索から外れてしまいましたが、
やり方次第では、ストア検索で表示され続け、継続的なインストールも狙えると感じています。

脱出ゲームを作りたい方向け教材

脱出ゲームをいざ作ろうと思うと
そこまで情報がないのでオススメの動画教材を載せておきます。

無料教材

脱出ゲームの作り方の基礎からプログラムの効率化まで解説されています。
この情報でかなり助けられました。
一人でやってたら絶対にプログラムは煩雑なものとなり、制作期間は倍増してました。 www.youtube.com

有料教材 (全12時間分)

こちらはプログラムなんもわからん!という超初心者さんでも大丈夫なやつです。

そして、一番ありがたいのは無料教材で語られていないセーブ機能の実装が
1時間40分にもわたり解説されていること。

売れてる脱出ゲームには当たり前のようについているセーブ機能ですが
私のような「ちょっとUnityかじった程度の人」には実装が結構しんどいです。
仮に実装できてもすごく管理しづらいコードになってしまいます。

こちらの教材は私が脱出ゲームをリリースした直後に出てきたのでもっと早く
出てほしかった〜><となりました。

おわりに

今年の収益目標としてアップルデベロッパー代回収を目標に活動していました。
(年間大体12,000円)

まずは、この目標が達成できたので大満足です。
今回の収益は一過性のものなので、新しいアプリ開発をして収益を底上げしたいと思います。



現在は3Dアプリを開発中で
3D実装関係、エフェクト作成、シェーダー、宣伝の仕方
の本を18,000円分買ってしまって、せっかく出た収益を吹き飛ばす暴挙に出ています笑
(まだオンラインまわりの本がほしぃという・・・)

ここまで読んでくださった方へのお願い

文中にも触れましたが、脱出ゲームアプリは現在ストア検索にひっかからない状況です。
この記事が少しでもあなたの糧になりましたら
下記ツイートをリツイートしていただけたら幸いです。

【Unity】ログインボーナスを作ってみる ローカル保存

ログインボーナスはサーバーから時間を取得した方が不正を防止できますが、

今回コスト面を考えて、

サーバー無しで不正ログインを検出する完全オレオレログインボーナスを作りました。

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;


public class LoginBonus : MonoBehaviour
{
    private enum LOGIN_TYPE
    {
        FIRST_USER_LOGIN, //初回ログイン
        TODAY_LOGIN,      //ログイン
        ALREADY_LOGIN,    //ログイン済
        ERROR_LOGIN       //不正ログイン
    }

    private int todayDate = 0;
    private int lastDate;
    private LOGIN_TYPE judge_type;


     void Start()
    {
        DateTime now = DateTime.Now;//端末の現在時刻の取得        
        todayDate = now.Year * 10000 + now.Month * 100 + now.Day;//日付を数値化 2020年9月1日だと20200901になる

        //前回ログイン時の日付データをロード データがない場合はFIRST_USER_LOGINで0
        lastDate = PlayerPrefs.GetInt("LastGetDate", (int)LOGIN_TYPE.FIRST_USER_LOGIN);


        //前回と今回の日付データ比較
        
        if (lastDate < todayDate)//日付が進んでいる場合
        {
            judge_type = LOGIN_TYPE.TODAY_LOGIN;
        }        
        else if (lastDate == todayDate)//日付が進んでいない場合
        {
            judge_type = LOGIN_TYPE.ALREADY_LOGIN;
        }
        else if (lastDate > todayDate)//日付が逆転している場合
        {
            judge_type = LOGIN_TYPE.ERROR_LOGIN;
        }


        switch (judge_type)
        {
            //ログインボーナス
            case LOGIN_TYPE.TODAY_LOGIN:

                //初ログインボーナス lastDateに0が入っていたら処理実行
                if (lastDate == (int)LOGIN_TYPE.FIRST_USER_LOGIN)
                {
                    //初ログインボーナス処理
                }
                else
                {
                    //普通のログインボーナス処理
                }               

                break;

            //すでにログイン済み
            case LOGIN_TYPE.ALREADY_LOGIN:
                //なにもしない
                break;

            //不正ログイン
            case LOGIN_TYPE.ERROR_LOGIN:
                //不正ログイン時の処理
                break;
        }

        //今回取得した日付をセーブ
        PlayerPrefs.SetInt("LastGetDate", todayDate);
        PlayerPrefs.Save();
    }
}

【Unity】アプリストア掲載上限容量とアプリ容量軽くする施策まとめ

アプリ開発用にメモ

前知識

インストールにWifiが必要な容量

Google Play 100MB以上
App Store 200MB以上

掲載上限サイズ

Google play 100MB
 ただし、拡張ファイルを使用すればプラス4GB増やせる
 拡張ファイルは1アプリにつき2つまで、
 拡張ファイルは1つにつき2GBまで

App Store 4GB
 

削減内容

docs.unity3d.com

テクスチャのマックスサイズを変更

Max Sizeを変更 見栄えが許容できるまで落とす

メッシュ圧縮

メッシュ圧縮
(アニメーションデータのModelにも項目があるが容量は変化しなかった)

f:id:marumaro7:20200819071025p:plain:w200

アニメーション圧縮

最適になっていればOK

f:id:marumaro7:20200819070635p:plain:w200

テクスチャのアトラス化

kan-kikuchi.hatenablog.com

APP Bundleを使う (Google playのみ)

takoyaking.hatenablog.com

Google Playでどうしてもサイズ100MBを超えるときは

拡張ファイルを使う

「アプリケーションバイナリを分割」にチェック
これでも100MBを超える時は最初のシーンを容量の少ないものにする。

f:id:marumaro7:20200820064616p:plain:w300

Unity公式 docs.unity3d.com

公式アップロード方法

support.google.com

注意点

blog.ariari.biz

ついでにパフォーマンス向上

kan-kikuchi.hatenablog.com

【Unity】ユニティチャントゥーンシェーダー UTS2.0メモ

モバイルアプリ開発用に引用メモ

説明書

github.com

シェーダーの分類大枠

UTS2には、大きく分けて2つの系統のシェーダーがあります。

DoubleShadeWithFeather

UTS2の標準シェーダーです。
2つの影色(Double Shade Colors)と、
各々のカラーの境界にぼかし(Feather)を入れることができます。

ShadingGradeMap

高機能版のUTS2シェーダーです。
DoubleShadeWithFeatherの機能に加えて、
ShadingGradeMapという特別なマップを持つことができます。


UnityChanToonShader/Mobileフォルダ内のシェーダー

Mobileフォルダ内には、モバイルやVRコンテンツ向けに、
ほぼルックが替わらない程度に軽量化したシェーダーが入ってます。
モバイル版では、軽量化のために以下の仕様に制限しています。

・リアルタイムディレクショナルライト1灯のみの対応に制限しています
 (複数のライトや、リアルタイムポイントライトには反応しません)。

・ポイントライトへは、
 ベイク済みポイントライト+ライトプローブの組み合わせで対応します。
 その場合、GI_Intensity を適度に調整する必要があります。

通常版Toon_DoubleShadeWithFeathe系、Toon_ShadingGradeMap系各シェーダーとは
プロパティ互換がありますので、上記機能で十分な場合、
通常版と同名のMobile版シェーダーに切り替えるとレンダリングパフォーマンスが向上します。

Mobile/AngelRingフォルダ内には、「天使の輪」機能に対応したモバイル版シェーダーが入っています。 各シェーダーの基本機能は、通常版の同名のものと同じです。



シェーダー名による使い分け

シェーダー名の後ろ側には、Clippingなどの名前ブロックがあります。
これらは以下のような機能があることを示しています。

Clipping

クリッピングマスクを持てるシェーダー。
いわゆる「テクスチャの抜き」(カットアウトやディゾルブ)ができます。

TransClipping

同じくクリッピングマスクを持てますが、
マスクのα透明度(Transparency)を考慮した「テクスチャの抜き」ができます。
より綺麗な抜きができるぶん、負荷はClippingよりも高くなります。

StencilMask

ステンシルバッファによるパーツの透過を指定します。
「眉毛」パーツのアニメ的な表現で、常に「前髪」パーツよりも前面に表示したいような
場合などに使用するシェーダーです。必ずStencilOut系シェーダーと組み合わせて使います。

StencilOut

StencilMask系シェーダーと一緒に使います。
上の例だと、「眉毛」パーツを透過させる側である「前髪」パーツに設定するシェーダーです。

初期設定

File>Build Settings>Player Settings... より

Rendering Path⇒Forward
Color Space⇒Linear
を推奨します。リニアカラーの時、UTS2は最大限の能力を発揮できます。

リニアカラーへの設定変更 f:id:marumaro7:20200817080323p:plain

Rendering Pathはデフォルトでフォワードになっていた f:id:marumaro7:20200817081342p:plain

自分が使いそうな「Basic Shader Settings」メニュー

Culling Mode

ポリゴンのどちら側を描画しないか(カリング)を指定します。
・Culling Off(両面描画)
・ Front Culling(正面カリング)
・ Back Culling(背面カリング)
が選べます。
通常はBackで指定します。

Culling Offはノーマルマップやライティング表示がおかしくなる場合がありますので、
注意してください。

【Unity】Google Play リリース時設定は Android 10(API レベル 29)以上を対象にする必要有り

前回リリース設定時に少し時間とられたのでメモ

問題

グーグルプレイにリリースしようとしたら以下の警告が出て、申請できませんでした。

2020 年 8 月 3 日以降、新規のアプリは Android 10(API レベル 29)以上を
対象にする必要があります。

以下公式から引用

APIレベル29を対象

https://developer.android.com/distribute/play-policies?hl=ja

対策

ProjectSettings>Player>ターゲットAPIレベル>Automatic(highest installed)

Android10.0(API level 29)に変更するだけです。

API設定

Amazonアプリストア 棄却されました エラー内容

棄却

Amazonアプリストア 棄却

初めてAmazonアプリストアへ登録申請しました。

結果、棄却されてしまいました!!

中身を共有します。

marumaro7.hatenablog.com

棄却内容

棄却内容はこちら

Amazonコンテンツポリシーに準拠していないとのことです。

棄却

エラー内容を翻訳してみると

アプリにメタデータ[タイトル、アイコン、説明、スクリーンショット
キーワード]が含まれているため、コンテンツが別のモバイルアプリケーションの
コンテンツに似ているか、別の機能を提案しているため、
顧客を誤解させる可能性があります。

とのことでした。

脱出ゲームなのにRPGと書いているので誤解するでしょうね...

再提出

申請内容の中でRPGの脱出ゲームに関係ないような単顎は消して再申請しました!

結果

無事リリースすることができましたー。


Amazonさんから完了メールがきませんでした。(私だけ????)

1日経って「脱出 魔法勇者」で検索するとでてきました!!!

なんか嬉しい!!

魔法勇者

おわりに

Androidと同じノリで提出してしまいました。 Amazonさんちゃんとしてる(感心)