ヴァンピィちゃん登場!

f:id:nickel079:20170717213658p:plain

ヴァンピィちゃんです。服装が若干違うけど本家も安定してないしいいよね。

何枚か描いてましたがやっぱり大ラフって偉大ですね。

 友人を巻き込みサークル人数が二人に多分なりました。やったね!PG二人は安定感があっていいよね。シナリオも任しちゃお。たぶん今やってるADV止めてなんか他の作ると思います。それまでいろいろunityで遊びます。

 Git弄ってました。SourceTreeがコマンド覚えなくてもよくてGUIベースで分かりやすかった。それにしても便利ですね。

↓練習の一部

f:id:nickel079:20170717213812p:plainf:id:nickel079:20170717213958p:plain

f:id:nickel079:20170717213942p:plainf:id:nickel079:20170717213757p:plain

お手上げ 人を集めなければ

 

 昨日書いた通り、フェードアウトインの処理をコルーチンに書かせることによって自然な遷移を目指しました。結果は何も残りませんでした。まず最初に試したのが、

yield return new WaitUntil(再開条件)

 一見簡単そうに見えますが、再開条件のbool trueがデリゲートからのでないと受け付けないという面倒な代物。なので次にコルーチンの中で新たなコルーチンを呼び出し、コルーチン2が処理が終わるまでコルーチン1が待つというものにしました。が、うごきません。

f:id:nickel079:20170716192746p:plain

↑これがボタンにコンポーネントとして紐付けされているやつで

f:id:nickel079:20170716195123p:plain

↑これがフェードインアウトに使うパネルに紐ついた.csです。

 

 デバッグをしても毎回for文を一発で飛ばしてしまうし、パネルの移動もプログラム上ではやってるんだけどunity側では行われてないです。コルーチン自体あまりなれていないものの、もう何がおきてるのかわかりませんね。お手上げです。誰か答え教えて下さい。

 

 やっぱり初学者が独りで開発するのは無理がある。ふんわりとした実装はできるかもしれないが残りのバグで何故そうなるのかがわからない。それを誰にも聞けない現実が辛すぎる。質問サイトもいくつかあるができればレスポンスが早い方がいい。それと、同志(つまり初学者)がいないとモチベーションも上がらないし。今日はtwitterで何人かunity関連の人フォロ~~~してました。BFとかPUBGやってるとなれるかな?

 頼む~~~。Unity仙人友人になってくれ~~~。月1万のお友達料くらいで。

 

 絵は特に描いてなし、どうやって人間殴るか考えてました。

f:id:nickel079:20170716194243p:plainf:id:nickel079:20170716193507p:plain

 躁鬱はちょい躁で安定した感じ。

止まるんじゃねえぞ…💃

 進捗です。

f:id:nickel079:20170716081035g:plain

 このフェードインアウトもそこそこ骨が折れました。全面に真っ黒のパネルを起き

、ループごとにアルファ値を+したりーしたりしてフェードしてます。

 ですがパネルが前面のままだと他のuUGIがクリックできないため、フェードの呼び出しが叩かれるまでは真横に待機して呼び出しがかかるとキャンバスに着陸、フェード処理が終わると帰っていくという流れになっています。

 しかし、これのバグとりは苦労しました。Menu>Trainは問題ないのですがTrain>Menuのときになると予期しない挙動をして私を困らせるんです。まあステップ実行でコンストラクタでflagが初期化されてtrueであるべきところがfalseになってたっていうことですね。つまりシーンが変わるとコンストラクタも再起動するというのが一つわかりました。

 あとこのフェードシステム、まだ暗転してないのに次のシーンが入ってしまいます。

つまりゴミです。

 これを解決するのがコルーチンですがたぶんこんなん?になるんですかね?

f:id:nickel079:20170716081414p:plain

ここには書いてないですけどLoadLevelがおわったらFade in()を呼び出すことによって、FadeOutが終わってからシーンの読み込み>読み込み終わるとFade inってな感じで制御できそう。

 ただ今日書いた分もそこそこでfooとtmpをメソッドに組み込んでスパゲッティにしたのでGitで予備とっとこと思ったら間違えたフォルダのリポジトリ取り込んじゃって意味不明になって発狂してます。

 

絵はそろそろ色ぬりたいなぁって思うけど塗りたいと思うラフが描けない。塗り方は大体知ってる。

 

躁鬱はウルトラウルトララピッドサークルになりました。一日で躁鬱反転が起こるやつですね気分変調障害とは違います。もっとヤバイやつです。ここまでくるとガイジ手帳2級もらえるかなぁ…障害者年金欲しい。

とりあえずは順調

 今日は順調にtxtをシーンに順次表示させることができました。

f:id:nickel079:20170710233153g:plain

(本当はUNDERTALEのロゴは白で❤が赤)

 

 本当それくらい。ただまだ欠点としてボタン他UIを弄った際にも画面クリックのイベントが発生しているからそれを除外しないといけない。

 明日はtxtなりdatなりxmlなりから口上取り込んで表示させることですかね。

 

 アンテ周回中、何故かUNDYNEのお家にexp0なのに入れない。悪いことといえば序盤のアメ取りまくったことくらいなのに。理不尽だ。

 

 体調はお薬を貰いなおして若干回復。

 テストにしてもこの狐娘なにかいてあるのかわからんなぁ。

進んだ

 やっとシーン遷移終わりました。色んなやりかたを試した結果、

【Unity】シーン間でスコアを共有 まとめ - テラシュールブログ

こちらの、シングルトンとDontDestroyOnLoad()を組み合わせて遷移をする方法にしました。DontDestroyOnLoad()をEmptyオブジェクトコンポーネントに引っ付けて他のもぺたぺたでいきます。

 あとわからないのが、

public class LoadScene : MonoBehaviour

{

public static LoadScene Instance

{ get; private set; }

のところなんですよね。

これってMonoBehaviourくんがnew()できないから無理矢理やってんのかってことですかね?LoadScene型のInstanceインスタンスを生成する? 私風に書くと

public class Slave : MonoBehaviour
{
    public static Slave Fox
    {

    private int sanity;
        public int Sanity
        {
              get
              {
                    return sanity;
              }

              set
              {
                    sanity = value;
              }
        }
    }
}

ってことですかね?

 途中どうこううんぬんしてました。とにかくunity上の仕様がわかりづらい。勘弁してもらいたい。詳しい人教えてください。

f:id:nickel079:20170709232105p:plain

こうやってfile->build&setting..からシーンを紐付けしないとエラー吐いたり。

 まあ遷移さえクリアすればこっちのものですわ。

 

 アンダーテイルNルートクリアしました。Mettatonエンドです。私はネタバレガンガンしますが、ラスボスはshpongleの有名なFLASHであるFlash BackとCyclesの

http://www.nicovideo.jp/watch/sm9990100

これ(ニコニコでごめんね)に影響受けてんのかな~~~って感じでした。弾幕は見慣れた感じでしたね。東方で見た。

 

 お絵かきはときどき、きちゅれあの配信見て新作催促してました。

命名法は守ろうね!

 適当に作った仮のボタンにいろいろイベント追加してシーン遷移を乗り切ろうとしてたらエラーでずっと詰まってました。

 一つはファイル名とクラス名が違っていたことによってコンポーネント付けできませんでしたTestbutton2とかになってました。

 二つ目はそれを直したことか何かの影響でファイル名がTestButton2とTestbutton2なのに中身で両者ともTestButton2と定義されていて同じ名前空間に二つ定義されていることになってエラー吐いてました。二つとも見逃しまくってたせいで頭おかしなってまった。

 あとunityでも普通にnew()使っていいぽいインスタンスをシーンに生成するとき以外はnew()でも問題ない。やったね!

 

 今日はアンダーテイルやってました。二人同時攻撃とか初見じゃなきゃ余裕のSTGですね。西京cave東方とやってきた腕がなります。あとバトルガレッガを1Pプレイしてる人を見かけたら協力する姿勢を見せて2Pに入ってあげましょう。リアルファイトできます。

 

絵は線画の練習してた。だけどラフが下手で最終がとても見せられないレベルでした。

 

鬱が大きく減り、躁気。でもこれから鬱へいく混合期になると思うと期が滅入る。

オブジェクトってなんだよ

 今日は何もしていません。というか昼夜逆転したので今から行動開始です。

 

 unityについてはシーン遷移さへ乗り切れれば余裕やろとか思ってました。しかしまずいことに昨日気づきました。unity、いやunityC#はnewでインスタンス生成できないんです。

 どうするかというと、

public GameObject peng;

で取得して、

Instantiate(peng);

インスタンス生成するらしいです。面倒ですね。(追記 元々シーンに配置されていてヒエラルキーのオブジェクトに付与されてる場合、いきなりインスタンスが一つ生成されるみたいです。)

 これじゃあどうやって管理するんだよってなりましたね。今のところ考えついたのはInstantiateでSlaveコンポーネント付与したEmpty Prefabをインスタンス化して量産しつつコンテナで管理するのか、一つのEmptyにSlaveコンポーネント付与しまくってそれをGetかなんかして管理する方法です。

 あまりにも土方的。もっとクレバーに解決したい。ということで戻ってチュートリアルを漁ることにしました。

 あとunityやってて困ることはオブジェクトとインスタンスの違いですね。クラスとの違いは明確だけど、その2つの違いを言及している本ってあまりない印象。インスタンスのことをオブジェクトって言ってるだけだったり。

一応、私の考えでは、鯛焼き機の型がクラス。できた鯛焼きがインスタンス、鯛焼き機と鯛焼きその2つどちらもオブジェクト。っていう感じです。なんでいつもこの問題を鯛焼きで考えるんですかね?誰か悪いプログラマの人、違い教えて下さい。

 

 まだ起きたばかりなので何もしてませんがHandful Nightmareやってました。グラインド走行です。ドワーフを殴って殴って、オウガウンディーネを自白剤飲まして、殴って殴って。その後出るマタンゴを殴っては魔剤、殴っては魔剤。最後にフェアリーを酔わせて殴って魔剤注入繰り返しでクリアです。私はみんなのこと、大好きだよ。