Unity1Week-転がる偉大な英国面-
1年間ほったらかしでしたねこのブログ。 MachineCladの制作系記事はEntyで書いてるとはいえひどいや。
さて、このたびhttps://unityroom.com/さんの企画、unity1weekにて下記ゲームを制作しました。
転がる偉大な英国面 | ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう
unity1weekとは、「1週間でUnityゲーム作ってアップしよう」という企画です。
月曜日の0時にお題が発表され、日曜日の20時が締め切りです(遅刻OK
この一週間どのようにしてゲームを作ったのかを語っていきます。
・月曜日
お題が発表されました。今回は「転がる」がテーマです。
僕「転がる、かぁ。岩を転がしたりして敵を押しつぶしたりとかどうだろう(ゼルダ脳)」
・火曜日
僕「坂道の上から岩転がしてタワーディフェンス系とか(妄想中)」
・水曜日
僕「ねむい」
・木曜日
僕「そろそろ手を付けねばヤバイ」
・・・あ、これタワーディフェンス、ステージ作るのめんどくさい。中止中止。
じゃああれだ、転がるっていったらあれしかねえ
パンジャンドラムやろ
この偉大な英国面の象徴たる失敗兵器が転がって迫ってくる、それから逃げる。これでいこう。
・金曜日
僕「逃げる主人公のモーションと、パンジャンのみ手作り。あとは全部アセットストアのや基本機能のフリーを使う」
フリーアセットのKyleくん。ボーンは持っていてもアニメーションを一つも持っていない(他のアニメーションアセットから入れる前提なのか)ので、自分で走るモーションを作る。Blenderで。走るモーションもアセット探してもよかったけどもめんどくさかった。
こちらは完全に自作。パンジャンしてきた。テクスチャはSubstancePainter2で適当に。どうせ大きくは見えない。
・土曜日
14時ごろ
僕「今起きた」
作ったモデルをUnityへドーン!
パンジャンを回転させるのはUnityのAnimation機能で回した。アセットストアでParticle系を手に入れてロケットの噴射炎をつけて
#unity1week 進捗です pic.twitter.com/0RW1Ds7Maq
— Hiromi@マシンクラッド (@Redhucules) 2017年5月27日
こいつを、まずは前進させねばならない。ちょうどいい、こいつは輪っかだ。UnityにはなにやらWheelColliderというホイール的なものを制御する当たり判定機能があるらしい。それを仕込もう。
— Hiromi@マシンクラッド (@Redhucules) 2017年5月29日
あーお客様!お客様!困りますお客様!!
どうやらWheelColliderを使う場合はRigidBodyのRotationをFreezeさせておかなければいけないらしい。真下でしか当たり判定とってないのね。おぼえた。
そもそも失敗兵器たるパンジャンドラムを現実的な制御したら失敗にしかならんわ!
WheelColliderの機能で前進させ、主人公を狙う機能はMachineCladのエネミー制御から旋回追尾のところだけ持ってきて埋め込んだ。
僕「主人公の移動どうしようかな。WASDで四方向移動でいいかな」
が、いままで背後視点系のものしか作っていなかったので見下ろし系の移動制御がぱっと思いつかないというかめんどくさい。
僕「めんどくさい、クリックしたところへ移動形式にしてしまえ」
先月のunity1weekでうら干物さんが、画面上のクリック地点をとる記事を書いてたので丸パ 参考にさせていただきました。
主人公の移動はNavMeshを使用。クリックで得た地点を目標地点にぶちこんでいます。
あとはパンジャンに、主人公にぶつかったときに爆発する仕組みを入れて。
まあこれで、追ってくる敵と逃げる主人公ができたわけです。
イメージエフェクトをかけてブルームとか色味とかを調整。
21時の僕「ARMSおもしろい」
ゲーム性isどこ
・パンジャンは一定時間ごとに増やそう。徐々に難しくしていくのだ。
10秒ごとに1体ポップ。生成位置は・・・画面中央にEmptyを置いてそこから360°ランダムの一定距離に生成。
ポップするごとに内部的に「レベル」を1増加。レベルが上がるごとに10秒に1回のポップ間隔を狭めていく。最終的に1秒に1体。これでだんだんと、続々出てくるようになる。
・パンジャン自体にもランダム性を付与。生成時、加速性能と追尾性能をランダム増減させた。個体差というやつだ。さらに「ハイレベル」モードを追加。ハイレベルパンジャンはプレイヤーの現在位置ではなくプレイヤーの目標位置へと追尾してくる。目の前ばっかり指定して移動してたら食われます。
・パンジャン同士もぶつかるようにしよう。というか同士討ちするようにしよう。英国面は英国面をも飲み込む。
・・・あー!一度ぶつかった後小刻みにぶつかるからすぐにHPなくなって爆発しちゃうあーお客様!お客様!!
・パンジャンがパンジャンにぶつかったら相手を弾くようにしよう。
[Unity] オブジェクトを爆風で吹っ飛ばす | ftvlog
ここをパ 参考にさせていただきました。これでぶつかったら相手を弾くから連続でぶつかってすぐ爆発するのはなくなる。
ついでに弾いて動きの軌道が変わるから、パンジャンが増えるにつれて予測が難しくなって避けるのが難しくなる。
えらいひとはいいました、複数の問題を一度に解決するのがアイデアだと。
27時の僕「ARMSおもろい」
・日曜日
謹製のランキング機能を仕込んで。結果のつぶやきも先月のやつから入れて。
unityroomにアップ!
エゴサしやすいようにつぶやき内容にオリジナルのハッシュタグを仕込みました。
まとめ
・制作は金土日の3日間 実働15時間くらい。
・過去作のスクリプトの使い回しとかフリーアセットとかで素材制作をショートカット
・スコアアタック系にすることでステージ制作をショートカット
・パンジャン