Unity初心者が「宝石キャッチ」にホーム画面を追加。ミニゲーム集「宝石の木」の土台を作った話

ゲーム制作

Unityで制作しているミニゲーム「宝石キャッチ」を、少しずつ改良しています。

前回:Unity初心者がミニゲーム「宝石キャッチ」を完成させた記録。BGM・ハイスコア・アイテム追加まで

今後は「宝石キャッチ」単体で終わらせるのではなく、複数のミニゲームを遊べるミニゲーム集のような形にしていきたいと考えています。

そこで今回は、「宝石キャッチ」をミニゲーム集「宝石の木」の一部として組み込むために、ホーム画面まわりを整えることにしました。


今回の目的

これまでは、宝石キャッチ単体で起動して遊ぶ形でした。

完成形のイメージとしては、複数のミニゲームを作り、ホーム画面からそれぞれのゲームを選ぶ感じです。

最終的には、

  • ミニゲームを遊ぶ
  • 評価に応じてお金を獲得する
  • ホーム画面に所持金が反映される
  • 稼いだお金で家の修理やストーリー進行につなげる

という流れを作りたいです。

ただミニゲームを遊ぶだけではなく、遊んだ結果がホーム画面に反映されて、少しずつゲーム全体が進んでいくような形にしたいと思っています。

そのため、今回はまず「ホーム画面」と「お金の管理」を作ることにしました。


HomeSceneを作成

最初に、新しく HomeScene を作成しました。

Scene とは簡単に言うとシーンです(そのままですが)。

Scene が変わると画面が変わる、ゲームで言うとマップが切り替わる感じですかね。

これまで作っていた宝石キャッチの Scene とは別に、ホーム画面用の Scene を用意しました。

Scene の順番も重要らしく、

  • 0:HomeScene
  • 1:GemCatchScene

にしました。

これで、ゲームを起動したときに最初にホーム画面が表示されるようになります。

こういう細かいところにも意味があるんですね。

調べながら進めていけば何とかなるものですね。


ホーム画面も最初はこんな感じでした。

ホーム画面から宝石キャッチへ移動できるようにした

HomeScene には、まず最低限の UI を配置しました。

置いたものは、

  • タイトル
  • 所持金表示
  • Gem Catch ボタン

の3つです。

まだホーム画面としてはかなりシンプルですが、最初は必要最低限でいいかなと思っています。

これからミニゲームを追加していくつもりです。

次に、SceneLoader スクリプトを作成しました。

このスクリプトを使って、Gem Catch ボタンを押すと GemCatchScene に移動できるようにしました。

これで、ホーム画面から宝石キャッチを起動できるようになりました。

単体のゲームとして作っていた宝石キャッチが、ホーム画面から選んで遊べる形になったので、ここだけでも少しゲーム全体っぽさが出てきた気がします。


宝石キャッチ側にHomeボタンを追加

次に、宝石キャッチ側にもホーム画面へ戻るボタンを追加しました。

もともと宝石キャッチのタイトル画面には Exit ボタンを置いていました。

以前はゲーム終了用のボタンとして使う予定でしたが、今回はそれを Home ボタンに変更しました。

このボタンを押すと、宝石キャッチの Scene から HomeScene に戻れるようにしました。

ただ、ここで少し問題が起きました。

最初は Home ボタンがゲーム中やリザルト画面にも表示されてしまい、スコア表示に重なってしまいました。

そこで、GameManager を ChatGPT に相談しながら修正して、

  • タイトル画面では Home ボタンを表示
  • ゲーム中は Home ボタンを非表示
  • リザルト画面でも Home ボタンを非表示

という形にしました。

これで、宝石キャッチのタイトル画面からだけホーム画面へ戻れるようになりました。

小さい修正ではありますが、画面ごとに表示する UI を切り替える練習にもなりました。


所持金管理を追加

次に、ホーム画面に所持金を表示できるようにしました。

今回作ったのが GameDataManager というスクリプトです。

このスクリプトで、プレイヤーの所持金を管理するようにしました。

保存には PlayerPrefs を使っています。

今回は小さなミニゲーム集の制作なので、まずはシンプルに PlayerPrefs で管理すればいいとのこと。

さらに大きなセーブデータを扱う際は、また必要なやり方を教えてもらうことになるでしょう。

さらに、HomeScene の Money 表示に MoneyTextDisplay を付けて、現在の所持金が表示されるようにしました。

これで、ホーム画面に戻ったときに現在の所持金が確認できます。

数字が表示されるだけでも、かなりゲームっぽくなりますね。


評価ランクに応じて報酬を加算

宝石キャッチでは、すでにスコアに応じて評価ランクが表示されるようになっていました。

評価ランクは、点数によって D〜S ランクになる形です。

今回は、この評価ランクに応じて報酬を加算する処理を追加しました。

ゲーム終了時に評価ランクを判定し、そのランクに応じたお金が所持金に加算されます。

実際に宝石キャッチを遊んでから HomeScene に戻ると、所持金表示が増えていることを確認できました。

これで、

ミニゲームを遊ぶ → 評価に応じてお金を獲得する → ホーム画面に反映される

という基本の流れができました。

今回の作業で一番大きかったのは、ここだと思います。

単体のミニゲームだった宝石キャッチが、少しずつゲーム全体のシステムにつながってきました。


ホーム画面の背景を設定

次に、ホーム画面の雰囲気を整えるために背景画像を設定しました。

ホーム画面は、今後ゲーム全体の拠点になる予定です。

背景の構図は、

  • 上:青空とうっすら雲
  • 左:スライム、木箱、蝶々
  • 右:宝石の木、看板、小さな花
  • 下:草原
  • 中央:UIを置くために広めに空ける

という形にしました。

Unity では、背景画像を Canvas 内に配置しました。

ただ、ここでも少しトラブルがありました。

空の BackgroundImage が白い四角として中央に表示されてしまい、最初は何が原因なのかわかりませんでした。

確認してみると、不要な Image オブジェクトが残っていたようです。

一体いつ紛れ込んだのか……。

そのオブジェクトを削除することで解決しました。

こういう「なぜか白い四角が出る」みたいなトラブルは、よくあることだと思います。


ホーム画面用BGMを設定

最後に、ホーム画面用の BGM を設定しました。

宝石キャッチ本体にはすでに BGM や SE を入れていましたが、HomeScene 用の BGM はまだありませんでした。

ChatGPT にお願いして作ってもらいました。

雰囲気としては、

  • 穏やか
  • 少し神秘的
  • ホーム画面で流れていても邪魔にならない

という方向にしました。

作成した BGM を Unity の Assets > Audio に追加し、HomeScene で流れるように設定しました。

背景画像と BGM が入ると、かなりホーム画面らしい雰囲気になりました。

やはり、画像と音が入ると一気にゲーム感が出ます。


今回できたこと

今回の作業でできたことをまとめると、以下の通りです。

  • HomeScene の作成
  • Build Profiles で Scene 順を設定
  • HomeScene から GemCatchScene への移動
  • GemCatchScene のタイトル画面から HomeScene へ戻る処理
  • Home ボタンの表示タイミング調整
  • GameDataManager による所持金管理
  • 宝石キャッチの評価に応じた報酬加算
  • HomeScene での所持金表示
  • ホーム画面背景画像の設定
  • ホーム画面 BGM の設定

ここまで来ると、宝石キャッチ単体ではなく、「宝石の木」というゲーム全体の土台が少しずつ見えてきた気がします。


今後やりたいこと

次にやりたいことは、いくつかあります。

まずは、報酬額の調整です。

現時点では評価ランクに応じてお金が増えるようにはなりましたが、仮で設定しているだけで、そもそも稼いだお金を何に使うかも決まっていません。

何度か遊びながら、稼ぎやすさやバランスを見ていきたいです。

次に、家を修理するボタン(ストーリー進行)を追加したいです。

今はお金を稼ぐだけですが、稼いだお金の使い道がまだありません。

今後は、ホーム画面に「家を修理する」ような要素を追加して、所持金を使って少しずつ拠点が変化していくようにしたいです。

他にも、

  • 宝石図鑑の作成
  • スプレンダー風ミニゲーム用 Scene の作成
  • 他のミニゲームとの所持金連携
  • ホーム画面の UI 調整
  • ストーリー要素の追加

などもやっていきたいです。

今回の作業で、宝石キャッチ単体だったものが、少しずつ「宝石の木」というゲーム全体の中に組み込まれてきました。

まだ仮の部分も多いですが、ホーム画面、所持金、背景、BGM が入ったことで、ミニゲーム集の土台がかなり見えてきた気がします。

次は新しいミニゲームの作成に取り掛かりたいです。

関連記事

Unity初心者がミニゲーム「宝石キャッチ」を完成させた記録。BGM・ハイスコア・アイテム追加まで

Unity初心者が「宝石キャッチ」Ver.1を完成させた話。白い四角からゲームらしくなったかな?

ゲーム作りを始めた理由と意気込み

コメント

タイトルとURLをコピーしました