今回は、新しいミニゲームとして 「Gem Smith」 を作り始めました。
前回まで作っていた「宝石キャッチ」とは別に、今回は単体で遊べるタイミング系ミニゲームです。
Unity初心者がミニゲーム「宝石キャッチ」を完成させた記録。BGM・ハイスコア・アイテム追加まで
まずゲームとして遊べる骨組みを作ることを目標に、Gem Smith Ver.1として一区切りできるところまで作りました。
Gem Smithはどんなゲームか

Gem Smithは、タイミングよくメーターを止めてスコアを稼ぐミニゲームです。
画面上には横長のバーがあり、その上をメーターが左右に動きます。
プレイヤーはSpaceキーを押してメーターを止めます。
止めた位置が中央に近いほど高評価になり、外側にいくほど評価が下がっていきます。
判定は以下の4種類です。
PERFECT
GOOD
NORMAL
MISS
挑戦回数は5回で、5回の合計点を出す形式にしました。
回数については今後調整していこうと思います。
今回実装したこと
今回のVer.1で実装した内容は、主に以下の通りです。
・タイトル画面の作成
・Spaceキーでゲーム開始
・バーとメーターの表示
・メーターが左右に動く処理
・Spaceキーでメーター停止
・止めた位置による判定
・PERFECT / GOOD / NORMAL / MISS の点数処理
・5回挑戦する仕組み
・挑戦回数ごとにバーのスピードが上がる仕組み
・合計点の表示
・ランク表示
・リトライボタンでタイトル画面に戻る処理
・判定エリアの色分け
こうして並べると、思ったよりいろいろやっていますが、内容としてはそこまで複雑ではありませんでした。
長さの違うボックスを重ねるように並べ、それぞれに判定をつける。
あとはバーが動くようにする。
大雑把に言うとこれくらいですかね。
見た目はまだ仮の状態ですが、ゲームの流れとしては、
タイトル画面
↓
ゲーム開始
↓
5回挑戦
↓
合計点を表示
↓
ランク表示
↓
リトライ
という一連の流れができました。
Ver.1としては、まずここまでできれば十分かなと思っています。
判定エリアを色分けした

最初は、バー全体が白いだけの状態でした。
この状態でもゲームとしては動きます。
ただ、どこを狙えばいいのかわからないのは不親切極まりないので、判定エリアごとに色を分けることにしました。
イメージとしては、中央に近いほど高評価です。
中央:PERFECT → 赤
その外側:GOOD → オレンジ
さらに外側:NORMAL → 黄色
端:MISS → 白
バーを色分けしたことで、どこを狙えばいいのか一目でわかるようになりました。
タイミング系のゲームは、見た瞬間にルールが伝わることが大事だと思います。
見た目がわかりやすいのが一番ですよね。
挑戦回数ごとに難しくなるようにした
最初の案では、単純にバーの上をメーターが動いて、それを止めるだけのゲームでした。
ただ、それだけだと単調で面白みに欠ける。
そう思ったので、挑戦回数が進むほどメーターのスピードが上がるようにしました。
具体的には、
1回目は遅い
2回目は少し速い
3回目以降はさらに速くなる
という形です。
序盤は狙いやすく、後半になるほど難しくなるようにしました。
これだけでも、最後のほうは少し緊張感が出ます。
「あと1回で高ランクが取れる」という場面でメーターが速くなると、思ったより焦ります。
小さいミニゲームでも、こういう難易度の変化があると遊びやすくなるんだなと感じました。
制作中に出たエラー
制作中には、いくつかエラーも出ました。
今回特に大きかったのは、スクリプトを差し替えたときのエラーです。
古いコードと新しいコードが重複してしまい、
同じ関数がすでに定義されています
というエラーが出ました。
原因としては、ChatGPTに言われて作ったスクリプトが、実は既存スクリプトの中身を入れ替えればよい内容だったことです。
つまり、名前が違うだけで、ほぼ同じスクリプトが2個存在する状態になっていました。
ChatGPTを使っていて初めてのことでしたので少し戸惑いましたが、古いほうのスクリプトを消すことで解決しました。
ChatGPTにコードを任せているとはいえ、最低限何をしようとしているのかくらいは把握しておく必要がありますね。
以後気を付けます。
Imageコンポーネントのエラーも出た
もう一つ、UIまわりでもエラーが出ました。
判定エリアを色分けしようとして、UIにImageを追加しようとしたところ、すでにImageコンポーネントが付いていたため、追加できないというエラーが出ました。
よく見ると、対象のUIにはすでにImageが付いていました。
なので、新しくImageを追加するのではなく、既存のImageのColorを変更することで解決しました。
単純な見落としですが、エラーが起きるとヒヤッとしますね。
Ver.1としてはここで一区切り

今回のVer.1では、背景やタイトル画面の見た目、細かいUI演出までは作り込みませんでした。
まずは、
遊べる骨組みを作ること
を優先しました。
現時点では、
タイトル画面
ゲーム画面
リザルト画面
リトライ
判定処理
スコア処理
速度上昇
色分け
までできています。
まだ見た目は仮の状態ですが、ゲームの基本部分はできました。
なので、Gem Smith Ver.1としてはここで一区切りにします。
最初から全部作り込もうとすると終わらなくなりそうなので、今回は「まず遊べるところまで作る」を優先しました。
次回やりたいこと
次回は、Gem Smithの見た目や演出、報酬まわりを追加していきたいです。
今のところ、次回の目標として考えているのは以下の内容です。
・背景画像の追加
・ゲーム画面の作成、調整
・判定文字の演出追加
・3種類の宝石の果物をランダム表示
・完成品のジュエル表示
・評価ランクごとの報酬追加
・PERFECTコンボボーナス追加
・Gem Catchとの報酬統合
・スライムのハンマーアニメーション追加
今のGem Smithは、まだタイミングバーを止めるだけのシンプルなゲームです。
ここに演出や報酬を足して、少しずつ「宝石を加工しているミニゲーム」にしていきたいです。
判定文字の演出を入れたい
まず入れたいのは、判定文字の演出です。
今は、メーターを止めたときに判定が表示されるだけです。
次回は、判定文字がバーのあたりから出てきて、上にふわっと上がって消えるような演出を入れたいです。
イメージとしては、以下のような流れです。
メーター停止
↓
バー付近に「PERFECT!」と表示
↓
文字が少し上に移動
↓
徐々に透明になって消える
これがあるだけでも、かなりゲームっぽくなりそうです。
判定ごとに演出を少し変えても面白そうです。
PERFECT:大きく表示して、少し派手に出す
GOOD:普通に上に上がって消える
NORMAL:控えめに表示する
MISS:小さめに出してすぐ消える
タイミングゲームは、成功した瞬間の気持ちよさが大事だと思います。
なので、判定演出は優先して入れたいところです。
宝石の果物からジュエルを作る形にしたい
次に、宝石の果物と完成品のジュエルも追加したいです。
今はタイミングバーを止めるだけですが、今後はゲーム開始時に3種類の宝石の果物から1つがランダムで出てくるようにしたいと考えています。
例えば、
赤い宝石の果物
青い宝石の果物
緑の宝石の果物
のような感じです。
そして、5回のタイミング判定が終わったら、その果物が加工されてジュエルになるようにしたいです。
赤い宝石の果物 → 赤いジュエル
青い宝石の果物 → 青いジュエル
緑の宝石の果物 → 緑のジュエル
これができれば、ただのタイミングゲームではなく、「宝石の果物を加工してジュエリーを作るゲーム」という雰囲気が出せそうです。
評価ランクごとに報酬を入れたい
Gem Smithにも、評価ランクごとの報酬を入れたいです。
前回作ったGem Catchでは、評価ランクに応じてお金が入る仕組みを作りました。
Gem Smithでも同じように、リザルト画面で報酬が入るようにしたいです。
ただ、Gem SmithはGem Catchよりプレイ時間が短いです。
Gem Catchは一定時間プレイするゲームですが、Gem Smithは5回メーターを止めるだけなので、かなり短時間で終わります。
そのため、報酬はGem Catchより控えめにしたほうがよさそうです。
例えば、今のところはこのくらいのイメージです。
Sランク:30G
Aランク:20G
Bランク:15G
Cランク:10G
Dランク:5G
短時間で終わるぶん、報酬は少なめ。
ただし、うまくプレイすれば短時間で少し多めに稼げるようにしたいです。
PERFECTコンボボーナスも入れたい
Gem Smithでは、PERFECTの連続ボーナスも入れてみたいです。
5回挑戦する形式なので、連続でPERFECTを出すとボーナス点が入るようにすると面白そうです。
今のところ考えているのは、連続PERFECTごとに+10点ずつボーナスが増える仕組みです。
例えば、
1回目 PERFECT:通常点
2回目 PERFECT:+10点
3回目 PERFECT:+20点
4回目 PERFECT:+30点
5回目 PERFECT:+40点
という形です。
5回全部PERFECTを取れたら、かなり気持ちよさそうです。
逆に、途中で1回でもPERFECTを逃すとコンボが途切れるので、短いゲームでも緊張感が出ます。
Gem Smithは1プレイが短いので、失敗してもすぐにもう一度遊べます。
この「短いけど、もう一回やりたくなる」感じを出せたら、ミニゲームとしてかなり良くなりそうです。
スライムがハンマーで叩くアニメーションも作りたい
演出面では、スライムがハンマーで宝石の果物を叩いて、ジュエルを作るアニメーションも作ってみたいです。
本格的なアニメーションではなく、2〜3枚の絵を切り替えるパラパラ漫画のようなものを考えています。
イメージとしては、こんな感じです。
スライムがハンマーを構える
↓
宝石の果物を叩く
↓
ジュエルが完成する
この演出が入ると、タイミングバーを止める行為と、宝石を加工している設定がつながります。
今のままだと、画面上では「バーを止めているだけ」です。
でも、スライムがハンマーで叩く演出が入れば、「加工している感じ」が出ます。
ゲームの中身はシンプルでも、見た目の演出でかなり印象が変わりそうです。
Gem Catchとの報酬も統合したい
今後は、Gem Smithで得た報酬をGem Catchの報酬と統合できるようにしたいです。
すでにGem Catchでは、評価ランクに応じてお金が増える仕組みを作りました。
Gem Smithでも同じ所持金システムを使えるようにすれば、ホーム画面で共通のお金として管理できます。
理想としては、
Gem Catchで遊ぶ
↓
報酬を獲得
↓
ホーム画面の所持金に反映
Gem Smithで遊ぶ
↓
報酬を獲得
↓
同じ所持金に反映
という形です。
これができれば、それぞれのミニゲームが単体で存在するだけではなく、「宝石の木」というミニゲーム集の中でつながっていきます。
少しずつですが、ミニゲーム集の土台ができてきた感じがします。
まとめ
今回は、新しいミニゲームとして「Gem Smith」Ver.1を作りました。
バーの上を動くメーターをタイミングよく止めるだけのシンプルなゲームですが、
判定
スコア
5回挑戦
速度上昇
ランク表示
リトライ
色分け
まで実装できたので、Ver.1としてはかなり形になったと思います。
途中でエラーも出ましたが、スクリプトの整理やImageコンポーネントの扱いについても少し学べました。
次回は、背景やゲーム画面の見た目を整えつつ、判定演出、宝石の果物、完成ジュエル、ランク報酬、PERFECTコンボボーナスなどを追加していきたいです。
今はまだシンプルなタイミングゲームですが、少しずつ「宝石の果物を加工してジュエリーを作るミニゲーム」に育てていきたいと思います。
関連記事
Unity初心者のゲーム制作まとめ。宝石キャッチからミニゲーム集「宝石の木」へ


コメント