AIプログラムとかUnityゲーム開発について

探索や学習などを活用したAI系ゲームを作りたいと思います。

髪型とネックレスとダンス2種類追加

小さくて見にくいですが、ハートのネックレスをしてます
あと、ダンスを2種追加してます
NPCも踊ります

あと、広告関係を見直して、アイコンを作ったらアップデートできますので
明日はアップデートできると思う
とりあえず、明日の為に、今日は寝ましょう


ゲーム開始時のインターステンシャル広告は大丈夫になった
ただ、アイテムアンロックでのリワード広告は、なぜか実機では広告完了後に広告が消えないのでアプリに戻ってこれない
ただ、アンロック処理は動いてるみたい

手元にandroid10とかandroid8のタブレットしかないので、たんにメモリーが足りないのか?
Unity Editor上のテスト環境だとインターステンシャル広告もリワード広告も問題なく動いている

アイテムアンロックはできてるみたいだし、いったんこれで行くしかないか?
だめもとでUnity Adsのバージョンを変えてみるか?

Unity Advertisement 4.4.2

Unity Adsじゃなくて、Unity Advertisementに名前が変わってるのか
このへんも新しくしてないとAndroid updateで弾かれるらしい
ということでpackageから4.4.2にupdateしましたが、既存のスクリプトがエラーになる
仕様が変わってる模様
isReadyとか無くなってる

色々記事を読んで参考にする

Unity でのリワード広告の実装

Unity での基本的な広告の実装


Question - Unity Ads SDK 4.0.1 for Unity 2018.3.11 - Unity Forum

advertisementのpackageの画面にサンプルのimportリンクがあるので これをインストールして実際に動かしてみるのが参考になる

sing UnityEngine;
using UnityEngine.Advertisements;
using UnityEngine.UI;

public class UnityAdsScript : MonoBehaviour, IUnityAdsInitializationListener, IUnityAdsLoadListener, IUnityAdsShowListener
{
    void Start()
    {
        Advertisement.Initialize( GameID, true, this);//広告初期化
    }
    void reward()
    {
         Advertisement.Show("rewardedVideo",this);//リワード広告再生 再生後はOnUnityAdsShowCompleteが呼ばれる
    }
}

Listner系を継承してクラス作成

動画広告再生後に、このlistnerが呼ばれるので、placementIdでvideo/rewradedVideoを区別して、
リワード広告なら、広告再生がコンプリートを確認して、報酬を与える

public void OnUnityAdsShowComplete(string placementId, UnityAdsShowCompletionState showCompletionState)
{
        if(placementId == "video")
        {
//ただのインターステンシャル広告
        }
        else
        if (placementId == "rewardedVideo" && showCompletionState.Equals(UnityAdsShowCompletionState.COMPLETED))
        {
//報酬を与える
        }
}


unity editor環境では動くんだけど、実機でふるまいがおかしい
例えば initializeしてるのに、初期化完了のイベントが呼ばれない

広告をshowする前にloadして、load完了を待ってshowしないといけないが、
初期化完了を待ってloadしようとしてると、初期化完了が呼ばれない
かといって、広告表示前にloadしてると、表示を待たされる
色々と悩ましい

明日いったんsgsをアップデートします

大きな追加要素をやる時間もなくなってきたので、
アンロックアイテムの追加と、ダンスモーションの追加ぐらいで、明日、いったんUnity2019版でアップデートをかけます。
無事、アップデートしてandroid api30以上問題が解消されたら、再度、ちゃんとした機能追加をやろうと思います。

また、SGS2の作成を始めます。ある程度できたら、ベーター版リリースして、年内はSGS2を開発をやっていこうと思います。

Unity hubが起動しない

最後にプロジェクトを保存して終了するときにエラーレポートが出て終わったので、あれ?
と思ってたら、次からUnity hubが起動しなくなりました
正確にはcritical errorが出て、レポート提出ダイアログ状態になります

ググって見ると同じ症状の人が多数です
unity hubやunityを全部削除して再インストールして、おまけにレジストリまで消すみたいな手法が話し合われてました

forumの
Bug - Unity Hub critical error, please help! - Unity Forum

を読むと、どうもライセンス関係で、unity hub3の不具合っぽい 旧パージョンの戻して治ったとある
unity再インストールとかもたいへんなんで、
このにリンクされてたアーカイブの古いunity hubを再インストールしました
ライセンス新規登録になりましたが、ライセンス認証を再度やって無事 unity hub起動しました
こりゃ3系の最新のunity hubはインストールしない方が無難です

こんな時期にプロジェクト開けなくなってビビりました。・゚・(ノ∀`)・゚・。 

aoiモデルに既存のアニメーションを使う場合のjaw問題

aoiモデルに既存のアニメーションを使うと、humanodモデルとしては動くんだけど、なぜか顎がドーモ君状態になる問題がある
animationのwindowでモーションを読み込むと、プロパティ jaw closeというのがあって、ここが0だとドーモ君状態になる。1だと口を閉じた状態
モーションを適用した時にjawが1じゃないとドーモ君になって変な顔になる
そこでこのjaw closeを1にしてやる必要がある
animationの変数で、プロパティ jaw closeにkeyが入ってる場合は、ドラッグして選択してdelで削除してやって、初期状態に1のkeyを追加してやるとOK
Very Animationでやってるけど、Very Animationはあくまでunityのanimationを補佐するアセットで、基本的にanimationの編集をやる必要がある


これでドーモ君は避けられるが、顔が無表情になる問題は改善しない
このモーションはVRM前提で、本来なら口や目にもモーションが入ってるが、humanoidとは互換性が無いし
aoiモデルにはそもそも表情を変えるblendShapeがない
これは自分で作るしかない

せめて、笑顔・ウインク・両目閉じ・みたいに顔の表情を構成するボーンの状態設定を作っておいて、スクリプトで変化させるというのはやりたいところ
(定期的に目を閉じれば、まばたきが作れるし、踊ってるときは、ランダムに笑顔をまぜこむと無表情よりはいい。モーションと同期してるわけじゃないけど)

というわけで、このへんの仕組みを忘れてたので、思い出したのでメモ


あと、モーションによるとミニスカートを太ももがつきやぶるが、これはミニスカートのボーンを太ももにボーンの子供にしたモデルを使うしかない



アンロック型の髪型を追加と、新しいモーションが動くようになった
モーションはランダム選択しかないので、なかなか新モーションを再生しないけど。・゚・(ノ∀`)・゚・。 


すごい良いアセットがあった。unityから離れてる間に世の中は進んでいた
kan-kikuchi.hatenablog.com

髪型の追加とダンスモーションの追加を開発中

ソースの構造を忘れてるので、プログラムの流れを読みつつ、アンロックでの髪型の追加とダンスモーションの追加を開発中
アイテム追加はもっと分かりやすい仕様にすればよかった

髪揺れのスクリプト入れてるんだけど なぜか揺れない
どっかパラメーター間違ってるかも

モーションは大きいのでアプリサイズが増えてしまいますが、最近のスマホは大容量になってるだろうから、アプリサイズは気にせずにやろうと思います。

深夜に作業しても効率が悪いので、もう寝て、また明日の早朝から作業しましょう

ただ、土曜から日曜は1泊で旅行に行くので、明日でアップデートできない場合は、
24日から作業することに。

SGS(API33対応)Build and Run

なんか変なエラーでも出ないかとビビりながらbuild and runで、無事、実機にアプリ転送されて、動きました。

まだ何も機能追加してないけど、最低でもアップデートはいつでもかけられる状態ってことで安堵

ただ、手持ちのandroidが最新でもAndroid10しかないのが不安
まだAndroid13は出荷されてないみたいで、買えるのはAndroid12か
なにか激安でもいいからテスト機として買った方がいいかもしれない