ここは森のゲーム開発室・・・クマたちは少女が構想する新作ゲームの開発に明け暮れていた・・・
(メンバーの風当たりは強い。)
森クマ『辛い・・・心が、心が張り裂けそうクマ。こんなときは1日程度で作れるミニゲームを作って公開するクマよ』
(前にCocosCreatorで作ったミニゲームをちょこちょこ改造すれば、あっという間クマよ)
『せっかくオリンピックに便乗してスケートとスキーをするマグカップを作ったから、スケートのゲームを作ろうクマ』
『うん、だいたいできたクマ。シミュレーターでも動いてるし・・・あとはビルドックマ!』
CocosCreator(1.4)でビルドできないクマ!!!
(なにこのunlinkって!!あるじゃんファイルあるじゃんクマ!!)
『こうなったらCocosCreatorを最新の1.8にして・・・』
(プロジェクト自体が開けなくなった。ダイアログが消えないままエラーログが大量に出る)
(1日くらい格闘するも光明はみえず)
『うぎぎぎg・・・せ、せっかく作ったのに、、、こうなったらもうUnityで作るックマよ!!次のゲームもUnityの予定だから勉強にもなるし、少女さんたちも許してくれるはず・・・』
(Unityは2Dも作れるらしい。ここからは初めての経験クマ・・・)
(3Dに加えて2Dの作り方も掲載されていて便利クマ。今回もこの本を足がかりに作っていくクマ)
・当たり判定
主人公のクマにRigidBody 2DとCircleColider 2Dを装着。
(キャラクターは、空のGameObjectの中に子Spriteを入れる構成にした。)
(親にRididbodyを)
(子のSpriteにColiderを追加)
敵のアザラシとアイテムのサーモンのプレハブにも、BoxColiderを装着(なんでこっちは四角い当たり判定にしたのだろうかクマ・・・)
(RigidBody は干渉するどちらかのオブジェクトについてれば物理計算が適用されるみたいなので、今回は省略)
物理衝突による干渉計算は必要ないので、アザラシとサーモンのColiderのisTriggerを有効にして、OnTriggerEnter2Dによる当たり判定のみに使えるようにしておく。
(これも、ぶつかるオブジェクトのどちらか片方だけisTriggerrが有効になってればOnTriggerEnter2Dメソッドが呼ばれるみたいクマ)
衝突時にアザラシかサーモンか識別できるようにタグも設定クマ。
(えねみー)
プレイヤーオブジェクトに設定したスクリプト内のOnTriggerEnter2Dメソッド内で、タグで処理を振り分け
(3D時に使うOnTriggerEnterを最初設定していまい3時間くらいメソッドが呼ばれない現象に悩んだクマ)
・アニメーション
Animationウインドウでコマ割りを作って
メカニムを設定して
(走ってるアニメとジャンプのアニメを真偽値で切り替えられるように設定)
・敵の動き
AssetsのDOTweenで動きを設定。なにこれすごい便利クマ・・・cocos2dxのActionを超えているのでは・・・Sequence使いやすすぎる・・・
cocos2dxだと、1つのSequenceActionの中で複数のオブジェクトを動かすには、TargetedActionを使わないといけなかったけど、DOTweenだとフラットに書ける・・・神か・・・
(ただ、座標を動かすDOMoveを1つのオブジェクトに同時に2つ以上適用してしまうと、移動座標がおかしくなったクマ。cocos2dxだといい感じにマージしてくれたクマね・・・なんかやり方がおかしいか、方法があるのかしら・・・)
WebGLビルドォおおお!!!!
Githubにどーん!!
『できたぁああ!!できたクマよ!!!!』
クマがフィギュアスケート男子シングル開始のカウントダウンをしながら氷の上を滑って冷凍サーモンを食べるゲームを作りましたhttps://t.co/9gtvGPY3S2#オリンピックマ pic.twitter.com/aSVl33BzCX
— SleepingMuseum@ふりふら (@sleepmuse) 2018年2月14日
Unity WebGL Player | OlyKumaSkate
(こちらが完成品になりますクマ。)
森クマ『うーん、一応動いてはいるけど、ジャンプ時のアニメーションがうまく切り替わらないクマね・・・メカニムの設定がおかしい??』
なんかむずむずするところ一覧
・ジャンプ時のアニメーション切り替えがおかしい(ジャンプアニメーションにすぐに切り替わらない時がある)
(メカニムの設定をみなおすクマ)
・スマフォでプレイ後に、シェアボタンからしようとすると、ブラウザでTwitterページが開きログインしないとツイートできない。できればTwitterアプリを開きたい。
(そもそもスマフォブラウザはサポートしていないから仕方ないのかしら・・・)
・別タブを開こうとするとポップアップでブロックされる。現在のタブで開くと、戻って来た時にゲームがリロードされてしまう
UnityのWEBGLで別ページを開くとき、
— SleepingMuseum@ふりふら (@sleepmuse) 2018年2月14日
Application.OpenURL を使うと現在のタブのままページが切り替わるからもう一回ゲームしようとするとリロードされてしまう
Application.ExternalEval を使うと別タブで開けるけどポップアップブロックが出る・・・
どちらを使うのが普通なのだろうかクマ・・・
(ネットで調べると上記2つの実装方法があったけど、どちらがいいのか、そもそもスマフォでは未サポートなのか)
・音がない(いれたい)
『まあおいおい作ればいいクマ(フィギュアはもう24時間後に始まってしまうが)うふふ・・・今日の進捗会ではみんな驚くクマよ』
・
・
・
(進捗会)
少女「それでは今日の進捗会議をはじめます。今日は森ククマさんから」
森クマ『はいっ!!今日は技術鍛錬の意味を含めて簡単なミニゲームをつくっ
ビスクアット先輩「このクマやろおおおおお!!!!!てめぇ開発せずになにやってんだぁああああ!!!!!」
(ここがブラックな開発室であることを思い出す)
ビスクアット先輩「進捗をなんだと思ってるんだぁあああ!!!少女さん、いやプロジェクトマネージャー様、このクマは俺が責任持って叱りつけておきます!!」
少女「任せるわねビスクアット。でもねビスクアット、あなたの管理責任は免れないわよ。あとでマンタの叩き部屋に来なさい」
ビスクアット先輩「」
(追記)
アーバンナックルのぽうひろさんが実況プレイしてくれたクマ!
[IndieGames] ふりふら@森クマ(@shakeflower)さんのオリンピックマをやってみるhttps://t.co/l8xNNI5lVa @YouTubeGamingさんから
— ぽうひろ (@pouhiroshi) 2018年2月15日
しかしバグがあり、アザラシの行動パターンが2つしかなかったため、単純ゲーになってしまっていたクマ。
アザラシのランダム生成パターンにバグがあり、2種類のアザラシしか出現しないようになってたので修正しましたクマhttps://t.co/9gtvGPY3S2
— ふりふら@森クマ ゲーム開発&スタンプ (@shakeflower) 2018年2月15日
ほんとは獲ったサーモンの個数に応じてアザラシが伸びたり縮んだりもするんですクマ。参考に問題のあったソースを提示します、Unityって難しいですねクマ pic.twitter.com/d25sxBzXOT
さらにコードを改善できるご指摘をいただけたクマ。そもそも作りが悪かったクマね・・・
5で割ればいいじゃないかクマ……!
— カン神巫女 -KAMIKO- (@Kan_Kikuchi) 2018年2月15日
(int rMax = Mathf.Min(1 + score / 5, 8);)
もしくは判定の順番を逆にするクマ……!
(score >=30とか多い方から判定していく)
(ほんとだクマ!!)
『いやぁ、Unityって怖いですねクマ!!』
Unity WebGL Player | OlyKumaSkate
(作ったゲームのリンクはこちら↑)
オリンピックマ限定マグカップもよろしくねー!!!
(WINTER COFFEE BREAKUMA!!)
ビスクアット先輩「デバッグしやがれこのクマやろおおお!!!Unityは関係ねぇえええ!!!」