Unity1week「回」参加日誌

2021年2月開催(2/22~2/28)のUnity1週間ゲームジャムに参加しました。4回目です。今回もギリギリでした。二ヵ月以上経ってしまいましたが、前回だけ書くというのもアレだったと思い、記録を残しておきます。

今回提出したのはこちらのゲームです:

●1日目(2/22):やることにする

 イベントがはじまっていたことを知る。「回」の文字を見て5秒で思いついたのは二つ。
・昔懐かしのドットイート。回廊を回る。
・キャメルトライのように、画面を回す。
 遊びたい気がしたのは前者。仕様を考える。

・基本ルール
 目的: 回廊内のドットを取りまくる。ドットはそのままスコアになる。
 ゲームオーバー: 制限時間(60秒くらい)が来たら終了。クリアすると残り時間が増えてもよい。
 敵が追いかけて来るのでそれもよける。敵とぶつかるとクラッシュしてタイムロス。

 ドットをすべて食べるとドットが回復する。得点の倍率が上がってもよい。
 ドットを全部食べた直後はフィーバータイム的に無敵とか高速とかスコアが上がるとかしてもよい。
 フィーバータイムが終わったらフィールド自体が拡張されるようにしてもよい。

 考えておくべき点
 ・敵が完全に道をふさがないようにする。そのためにフィールドをある程度大きくする?

画面構成
 3Dカメラと2Dカメラを用意。基本的には2Dカメラで状況を把握、3Dカメラは雰囲気。
 画面上に「右」「左」の2ボタンを置く。このボタンかキーボードのAD、左右などで方向入力を行う。
 自機は常に前進するが、分岐点で左右に方向転換できる。正面に壁があるときは左に曲がろうとする。左に曲がれなければ右、右にも曲がれなければ後ろに戻る(が、コースの作り上、行き止まりは無しとしたい)。

フィールド情報
 てきとうな整数形の二次元配列でフィールド情報を持つ
 各ポイント、下位4ビットが4方向の壁の有無を示し、その上のビットがドットの有無を示す

欲しいモデル
 ・車かなにか、自機
 ・おなじく敵機。自機の色違いでもいい

 ……と、ここまで考えたが、「砲塔を回す」というのでもいいかもしれないな、と思う。
 WASDで移動、マウスで照準を合わせ発射するような……

 実際の作業は翌日以降とする。

●2-3日目(2/23, 2/24):なにもしない

用事がありなにもしなかった。

●4日目(2/25):作りはじめる

 時間もなくなり、パスしてもいい気もしてきたが、せっかくだからやっぱり作ることにした。
 せっかくやるので何か新しいことをしたいが、時間はかけられない。

 時間を置いたらなんとなくタンクを動かす方が遊びたいような気がしたので、そちらを作り始める。
 タンクは砲塔と本体と履帯があればそれっぽく見えそうだったので単純な形でつくる。DesignSpark Mechanicalで各パーツを作り、blenderで読み込んで出力。テクスチャ塗ろうかとも思ったが、やり方に慣れておらず手間取りそうだったのでパス。単色でちょっとおもちゃっぽい雰囲気にする。

 タンクが移動している方向に
 ・WASDまたはカーソルで移動。前進後退・左右旋回か、ふつうのSTG式の8方向か
 ・砲塔もHLボタンあたりで回転。オプションで、回転用ボタンを使うことも可とする
 ・画面全体がタンクの方向にあわせて回転する?砲塔が回転するだけでよい?
 ・マウスでクリックした地点に向けて攻撃する?砲塔が向いている方向
  クリックした地点に放物線を描いて弾が飛んでいく方式か、
  クリックした方向にビームを撃つ方式か、どちらがいいかな。
  ビームを撃つ方式だと、タンク近くで細かい動きでエイムするのも楽しいかもしれない。
  左右クリックで撃ち分ける形式でもいいかも。
  硬い敵は右クリックの放物線爆弾、やわらかい敵は左クリックのビームで攻撃する、とか。

  さしあたりはビームだけ実装する。
  右クリック長押しでロックオンとかもよいかもしれない(余裕があれば)

 結局、Unityの物理演算の基本のおさらいをして、タンクを動かせるところまでしかつくれなかった(しかも地形に埋もれてまともに動けない)。

●5日目(2/26):がんばる

 いよいよ時間がなくなってきたので作れるところまで作る。
 前にUnity1週間ゲームジャム(あつい)で作ったのと同じように、敵がどんどん出てきて弾を撃ってくるのを制限時間内で耐えるゲームとする。
 移動の方向に視点が回転するというのも考えたが、やってみたらやりづらかった&単純に絵から見下ろしで砲塔が回転するほうが昔のタンクゲームっぽくてよさげなので、砲塔が回転するだけの普通のシューティングにすることに。

 弾を撃てるようにしたり壁を作ったり、ナビメッシュで敵がフィールド上を巡回するようにしたりした。
 いまだに弾と敵との衝突処理も敵が弾を撃つ処理もない。敵生成処理も(スポーン地点は指定したが)まだ。
 タイトル表示用の部品とリザルト表示用の部品は作った。

 動かしてみたらゲームっぽく見えてきたので、なんとかなる気になった。


画像1

●6日目(2/27):なにもしない

 用事があったうえに花粉症で目と鼻がやられてなにもしなかった。やりたいことは考えた。
・レーダーを作ってもいいなあ
・ちょっとグロブダーっぽいし、弾を撃つとエネルギーが切れるとか、弾を撃たないとシールドとか、あってもいいかな

●最終日(2/28):なんとか作り切る

 3、4時間くらいしか時間がなかったのでざくざくつくる。前日に考えたことは諦める。
 音はなにかしら欲しいが時間が惜しいので、作成中の別のゲームや過去のゲームから流用。
 夕方、移動中の電車からUnity Roomにアップロードして動作確認したら、砲塔回転がうまく動かなくて慌てる(スクリーン位置をうまく計算できていなかった)。
 直して再アップ、テストプレイして一度クリアできることを確認したのでヨシとする。
 できれば帰宅後、自宅のPCで最終チェックしたかったが、交通遅延などあって果たせず、時間切れ。

●振り返り

反省点:
 ・Debug.Logがたくさん残ってる
  →最後にDebug.を全部//Debug.に置換するとかすればよかった
 ・ハイスコアを目指しても最終的には運ゲー(最後まで敵が増え続けるので、最後の敵が近くに出現しないと破壊し損ねる)
  →タイムオーバー前に敵が出現しない時間をしばらく置くなどすればよかったか
 ・スポーンが雑タンクと重なって敵が出現するのはカッコワルイ
  →スポーン時、プレイヤーに近いスポーン地点は選ばない、スポーン地点をばらけさせるなど、もう少し工夫したほうがよかった
などなど。

参加してよかった点:
 ・ナビメッシュを初めて使った。らくちん。
 ・mac bookでの開発にチョット慣れた。
 ・前回より、迷わずできることが増えた。

 毎回なにかしら新しいことを覚えたり操作に慣れたりするので、参加する意義はしっかりあるなあとおもいました。

 次回はもう少し時間をとりたい。

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