![見出し画像](https://assets.st-note.com/production/uploads/images/117186090/rectangle_large_type_2_bd44c61da21baa7be5c9dd58dcb54e1c.png?width=1200)
開発記録:unity1week 「1ボタン」 ナンバーバレット
2023/9/18~24のUnity 1週間ゲームジャム(unity1week、お題:「1ボタン」)に参加した四次元ベクトルです。
ゲームはこちらからプレイできます。
前回の制作記録・振り返り記事はこちら
今回の事前準備や目標はこちら
「ナンバーバレット」について
マウスカーソルに合わせてプレイヤーキャラクターが動き、左クリック(1つのボタン)で数字を発射して敵を倒す2Dシューティングゲームです。
![](https://assets.st-note.com/img/1695641124622-Up8Ot9GxYl.png?width=1200)
数字の発射には条件があり、フィールド上のアイテム(+1など)を取って攻撃力を得ている必要があります。
練習(チュートリアル)・初級・上級の3つのダンジョンはいずれも3ステージ構成となっており、ステージ内のすべての敵を倒すと次のステージに進む仕様となっています。
![](https://assets.st-note.com/img/1695680238783-qlQCcSkFlR.png?width=1200)
運要素の大きかった前回「ふりかけダイス」と異なり、ランダム性皆無で最速のルートを自分で見つけ出すものとなっています。
ゲームオーバーもありませんので、楽しく気軽にプレイできると思います。
今回のゲームは、次の日程で開発しました。
開発記録
事前準備
今回に向けて以下のサイトなどからドット絵などの素材を集め、
フィールド上を歩き回って数字を集めるゲームを作ろうと考えていました。
この案は十字キーでプレイヤーを操作し、敵にぶつかると集めた数字の分ダメージを与えるというものでした。
1日目(9/18 月)
お題が操作方法に関する「1ボタン」ということで難しく考えてしまいましたが、過去の自作品10作のうち「貯メイズ」(ためる)以外の9作は基本操作をマウスの左ボタンのみで完結させていた(今回のお題を満たす)ので、意外と自由にゲームを作れそうだと感じました。
お題と、以前考えた上記のアイデアを結び付け、マウス左ボタンだけで遊べるようゲーム内容を以下の通り変更しました。
十字キー移動
→マウスカーソルの移動に変更
敵にぶつかってダメージを与える
0ボタン(ボタン入力不要)になってしまう
→左クリックで数字を発射し、それが敵に当たったらダメージを与えるシューティングゲームに変更
今回は、パズルゲーム中心に作ってきた私として初めてのジャンル(シューティングアクション)&絵作り(ドット絵)で行くことになりました。
キャラクターを直接操作するゲーム内容も今回が初です。
カーソルを追従するプレイヤーの移動システム(今回に向けて自作した2Dキャラクターコントローラーの改造)を作り、タイルマップ(こちらも私がunity1weekで使ったのは初)による地面も作成しました。
以下のアセットで複雑なタイルマップを簡単に作れるようにしました。
2Dでどうしても奥行き表現を与えたかったので、以下の記事を参考に設定をしました。
プレイヤーが敵を攻撃し、プレイヤーが敵に当たると攻撃力が半減する処理も実装しました。
#unity1week 1日目
— 四次元ベクトル (@4DVector) September 18, 2023
お題が「1ボタン」ということで、マウスの左クリックだけで遊べるシューティング(アクション)ゲームを制作開始。
パズルゲーム中心だった私としては初めてのジャンル。
ドット絵に初挑戦。
これからフィールド上を動き回って数字を集め、攻撃力を高められるようにする予定。 pic.twitter.com/We4qgYlwIM
その後、フィールド上のアイテムで攻撃力(加算・乗算)やプレイヤーの移動速度を上げられるようにし、効果音も追加しました。
#unity1week 1日目午後
— 四次元ベクトル (@4DVector) September 18, 2023
フィールド上のアイテムを拾って攻撃力や移動速度を上げられるようになった。
さらに、効果音も追加。 pic.twitter.com/DEG7AfT1Ud
2日目(9/19 火)
UIでステージ上にいる敵の数や現在のプレイ時間を表示するようにしました。
タイトル→ダンジョン(複数ステージ)→結果画面の流れもできました。
#unity1week 2日目
— 四次元ベクトル (@4DVector) September 19, 2023
全体的なダンジョンの流れ(タイトル→複数ステージ→結果)ができた。
長い間作業していると画面酔いで少し具合が悪くなった。 pic.twitter.com/wiczMrMU8I
3日目(9/20 水)
プレイ方法を理解するためのチュートリアルダンジョンを完成させ、カメラの範囲を2倍に広げ、BGMも付けました。
#unity1week 3日目
— 四次元ベクトル (@4DVector) September 20, 2023
チュートリアルステージ(?)が完成。
カメラの画角が狭かったので、2倍にした。
BGMも付け、あとは敵の種類を増やし、本ステージを作ることなどだ。 pic.twitter.com/dzsJ83I2ch
4日目(9/21 木)
弾(敵と同様、触れるとプレイヤーの攻撃力が半減する)を発射するボスステージ用の敵を作り、初級ダンジョン(3ステージ)を作りました。
#unity1week 4日目
— 四次元ベクトル (@4DVector) September 21, 2023
ゲームタイトルを「Number Bullet」(ナンバーバレット、数字の弾丸)に決定。
弾を放ってくるボスを追加し、ゲームの本番用のダンジョン(3ステージ)ができた。
ステージの開始方法を画面クリックに変更。
今後は敵の種類を増やし、上級ダンジョンも作成予定。 pic.twitter.com/41TjPWiVyz
カメラをプレイヤー追従から固定にしてステージのサイズも画面に収まるようにし、画面酔いを感じなくしました。
その後、上級ダンジョン向けにプレイヤーを追いかける敵も作りました。
5日目(9/22 金)
プレイヤーを追尾する敵が登場する上級ダンジョン(3ステージ)を作り、ゲーム内遊び方説明(スライド形式)も完成させました。
プレイヤーキャラクターは自作の仮素材でゲームの雰囲気とあまり合わない気がしたので、より雰囲気に合うフリー素材に変更しました。
#unity1week 5日目
— 四次元ベクトル (@4DVector) September 22, 2023
プレイヤーを追従する敵を実装し、上級ダンジョン(3ステージ)を作成。
こちらの動画内にはないが、遊び方説明スライドも作成。
あとはWebGLビルドとunityroomへのアップロードだ。
ランキングは公開前のアップデートで実装する予定。 pic.twitter.com/rAxoaEYDKg
WebGLビルド、unityroomへのアップロードもして、とりあえず無遅刻参加を確定させました。
とりあえずWebGLビルドとunityroomへの投稿は完了。
— 四次元ベクトル (@4DVector) September 22, 2023
これで11連続無遅刻参加が確定。
あとはランキングの追加などがある。#unity1week pic.twitter.com/SeqJsvE9Op
6日目(9/23 土)
unityroom専用ランキングやX(Twitter)への投稿機能(今回は画像なし)も実装しました。
#unity1week 6日目
— 四次元ベクトル (@4DVector) September 22, 2023
unityroom内のランキングを実装。
X(Twitter)への投稿機能も実装予定。 pic.twitter.com/GXiG6q2qgU
unityroomからの投稿テストです。ゲームは明日20時公開予定です。
— 四次元ベクトル (@4DVector) September 23, 2023
初級を0:00:45.0でクリア! みんなもやってみてね。 https://t.co/0XrsqrtWJo #unityroom #unity1week #NumberBullet
ゲーム名(NumberBullet)のハッシュタグを検索すると同名のゲームが既に存在することが判明したので、タイトルをカタカナの「ナンバーバレット」に変更しました。
7日目(9/24 日)
ゲームの開始時のスプラッシュスクリーンのロゴ(Made with Unity)の上にオリジナルロゴを表示するなど、わずかな調整を行いました。
公開前の不具合修正
5日目(9/22)の投稿後、見つけにくいながらも致命的な不具合があることに自分で気づいたので、公開前に以下の通り修正しました。
プレイヤーを追いかける敵がプレイヤーを柵の外に追い出してしまう
→動く敵のRigidbody2DのBody TypeをKinematic→Dynamic(動的)に変更して解決
クリア直前にRキーでリトライすると不正なスコア(タイム)0が送信される
→変数(フラグ)の管理で自己解決
反省点
制作における心残りだった点は以下の通りです。
ダンジョンやステージの数が少なく、ボリュームに欠ける
unityroomの新ランキングシステムにおいて、2つまでしかランキングを作成できない
たくさんのゲームが投稿されるunity1weekの環境では短時間で気軽に遊べる作品が好まれる
→以上の2点より、それはそれでよかったのかもしれないが、上級ダンジョンは4ステージくらいが妥当だったと思う
文字をピクセルパーフェクトにできなかった
文字や画像を960×540の画面サイズできれいに表示できるよう文字(TMP)や画像、キャンバス、カメラのサイズなどを設定したが、文字だけはうまくいかなかった
表示倍率100%のEdgeだと本当は100%(960×540)より大きく表示されたため?
→システムのディスプレイの拡大率が100%より大きい値に設定されていたため(私の環境だと125%だった)(2024/5/20追記)
2倍に当たる1920×1080の全画面(フルスクリーン)ではきれいに表示できた
最後に
今回も祝日と有給休暇をうまく利用して11連続無遅刻参加を達成しました。
途中画面酔いなどで作業に打ち込めない時間もありましたが、ゲーム自体は5日で投稿できたので、その後は機能の追加やバグ修正などに使うことができました。
深夜に目が覚めて睡眠時間が4~5時間になり、寝不足になってしまったのは半年前(前々回「つたえる」)から相変わらずです。
今回はタイルマップやドット絵といった2D描画技術などの知識を深め、「作りたくて作れるものを作る」精神で充実したゲーム制作ができました。
前回は無理して自作のイラストや曲を使うことにこだわってしまい、統一感を出せず絵作りや雰囲気などの評価が大幅に下がったので、その反省を生かし今回はフリー素材で絵や音などの統一感を意識しました。
また、前回はルールをうまく理解できなかった人も少なくなかったようなので、今回はチュートリアルを設けてルールを理解しやすくしました。
unityroomでのプレイ・評価をよろしくお願いします!
この記事が気に入ったらサポートをしてみませんか?