Unityちゃんとゆうこの煙突

直前まで「D言語くんAdventCalender2020」に投稿するべくゲーム制作を行っていたため、実質3日間での制作となってしまいました。

テーマ「あける」では良いアイデアが浮かばなかったので、演出として開く動作を取り入れつつ、期間内で作れるものを作るといった感じで作成しました。

最初は大きなプレゼントボックスの上を歩き回って箱を閉じているピンを抜いて回り、全て抜くと蓋が開いて中身が出てくるというゲームでした。

ただ、ゲームそのもののボリュームが無さすぎるので、次々先に進むものにしたいと考え、今の形に変更しました。

ステージを作りこんでいる時間などは無かったので、以前に作成した「密林脱出ゲーム」の迷路作成スクリプトを使用しています。

迷路自体は制限が無ければ、ただ右手法を使ってしらみつぶしに歩き回るだけのものであり、単体ではもはやゲームにならないものと思っています。

ただ、手っ取り早く見た目を前の層と異なるものにするには一定の効果があります。

また、行き止まりの多い少ないが思いのほか振れるようで、これにより「アイテムの多い当たりステージ」と「距離ばっかり長くて鍵しかないハズレステージ」が発生するようになりました。

競技性の観点からすると、ステージの当たりハズレは無い方がよいのですが、プレイヤーに変化を感じさせるには一定の当たりハズレがあった方が効果的だと思います。そして、一定階層を繰り返せば、全体として見ると一定のところに収束していくのではないでしょうか。

迷路のサイズは、ある程度アイテムが出つつ短時間で抜けられるものにしています。落下演出がなかなかいい感じのものになったので、一つの迷路にかける時間を長くするよりも、次々と先に進むゲームにした方がよいと考えました。

アイテムは、鍵とスコアと時計の三つです。この系のゲームとしては定番ですね。

スコアと鍵は実は1/2の確率で出てきます。これもある程度出る周期に偏りが出ることで、欲しいときに時計が沢山出たり、逆に出なかったりといった印象上の変化を出せるものだと思います。

そして、沢山の階層を進めば、全体として見ると大体同じくらいに落ち着くはずです。鍵を持っている状態では、取るのに時間のかかる箱を敢えて無視するなどの判断もできます。

これだけだと物足りないので、時間を削られる罠を追加しました。ジャンプで回避することができます。これも定番ですね。Unityちゃんの挙動にUnityの物理演算を使っており、ジャンプアクションをするのに若干クセがあるのですが、これは「慣れてね!」ポイントとしました。即死ゲーでもないので。上達すれば、連続で飛び越さなければならない場面も安定してきます。

落下演出は作ってみたところ、思いのほかスピード感のあるものになりました。実は、床が開くと同時にそれまでのステージが上にすっ飛び、下から新しいステージが高速で上昇しています。一応、前述の罠がステージを進むごとに増えるように作成しているのですが、乱数の振れにより序盤から多いこともあれば、終盤で少ないこともあります。もう少し難易度の上昇をわかりやすく作るべきでしたね。

扉を開くときにUnityちゃんに慣性がついていると落下点がずれ、塀の上に乗れたりトラップを踏んでしまったりしますが、これはこれで回避や活用もできるので、不安定ポイントとして残しました。修正していると時間に間に合わなそうだったのも大きいですが。

塀の上に載っても、塀が滅茶苦茶スリップするので、大して移動できないと思います。なので、まぁ良いかと。一応、画面端から奈落に飛び降りることはできないように見えない壁を用意してあります。

BGMは魔王魂さんからお借りしました。8bit風には実はあんまり拘りないのですが(グラフィックがこんな感じなのは、比較的早く素材を作れるからだったりします)、雰囲気がうまく合ったと思います。というか、BGMが8割ですね。ありがたい。

テーマを演出面で実現するという方針だったこともあり、今までで最もAnimatorを活用したプロジェクトとなりました。キャラクターの動きはもちろん、アイテムボックスが開く絵にメーションや、床が開く動作。オープニングやエンディングなどで使用しています。考えてみると、オープニングやエンディングのあるゲームを作成したのは初めてかもしれません。2D絵の用意にかなり苦労しました。クォリティを放棄しても時間がかかるので…。

どうも以前からの癖でスクリプトを組みがちだったのですが、Animatorを活用すれば、かなり早く製作が行えますね。

修正するべき場所が多くあったのですが、とにかく期限に間に合わせることを重視しました。一応、ステージを進むほどに難易度が上昇するように作成はしているのですが、乱数の影響が大きくてわかりにくいかもしれません。

クリア時のツイート機能が暫く動作していませんでした。ローカルでWebGLを動作させた場合は問題なかったのですが。最終環境で見ておかないとだめですね。

この記事が気に入ったらサポートをしてみませんか?