Unityゲーム開発 Project1-④ ~タイトル、ゲームメイン、リザルト~

2023年1月22日

infeed1

広告

はじめに

更新がだいぶ遅れてしまいましたが、何とか順調に開発できてます。
タイトルとゲームメインそれにリザルトの遷移を作りましたが、なんとかバグもなく作れたところです。
今回作っているゲームは簡単に言うとカジュアルゲームと呼ばれるジャンルで玉転がしです。
玉転がしって割と拡張性があると思っているので便利だとおもってます。

タイトル

ここで設定ポップアップを出すようにしたりキャラクター選択ができる画面に誘導したりとできるようにしました。
(そもそもタイトルしかやれる場所がないけど)
設定ポップアップはおしゃれに出したいから歯車アイコン作ってタップされたら歯車を回転させながらポップアップをスライドさせて出るようにしました。
もっとおしゃれな作り方が閃いたらよいのに…
あとは画面タップでゲームメインへ遷移させて終了

ゲームメイン

  • ステージ
    事前にステージマップをいくつか用意しておきそれらを読み込むようにしました。
    今回は単純に思いつくやり方だけど、
    エクセルでマップを入力しておいてそれをUnity側のエディタ拡張で読み込んでプレハブとして保存するようにしました。
    エクセルはこんな感じに入力できるようにしました。

    ただ実はアセット探せばいくらでもあるしもっと便利で効率が良くできるものもあるんだろうけど、
    今回は自分の開発しているゲームにどれが合うか吟味する時間がないのでこんな形にしちゃいました…
    また読み込んだデータに対してAIの動きなども設定できるようにウェイポイントを置けるエディタ拡張も作っちゃいました(笑)
    ツールを使うことが多いけど作る機会ってないからプログラマーとしてそういった知見も深める目的です。
    こんな感じでマップ内のオブジェクトをブロックとして扱いそれぞれに対して編集できる形

    床、壁、穴、ギミックなどをenumで管理してそれを読み込んでとか色々やってみて思ったのが、プランナーサイドって大変だなって実感しました。
    よくプランナーサイドの方がこういったデータ管理をするイメージがあったけど、
    自分で作ってみて打ち込むのって割と考えること多くて大変でした…
    でも作ってみて苦労が知れたのは今後に役立つことなのでそれはよかったです。
    欲を言えば個人的に以下マップ系アセットも使ってみたいかもしれない
    Online Maps v3
    Cave Map
  • キャラクター
    今回は玉転がしなのでシンプルにCubeだけです
    ただよくスキンとしてパラメータは変わらないけどデザインが変えられるカジュアルゲームが多いので
    シェーダやパーティクルなどを駆使して様々なCubeを作りました。
    あとはよくあるキャラクターのアイコンのために、ワールド内に置いたオブジェクトをスクショしてテクスチャとして保存するエディタ拡張も作りました。
    こんな感じでRowImageとRenderTextureを使用してカメラに映っているオブジェクトを画像として保存する形

    デザイナーさんがいれば楽にアイコンも用意できるんだけどいないなりに自分で工夫したつもりです。

リザルト

クリアした場合、ゲーム内で獲得したコインの確認と
宝箱のようなものを複数用意してタップされたら宝箱を開けて獲得コインが増やせるような仕組みを用意しました。
勿論すべての宝箱は開けられないしハズレもあるけど…
今回はコインでスキンが変える仕組みにしたのでこのコインを増やす仕組みがないと破綻してしまう…(笑)

最後に

この後はポップアップ周りの仕組みと、スキンを購入/選択できる画面、ビルド周りのスクリプトを作成しないといけなくてまだまだやることが多いけど割と当初より早めに開発できる気がする。
今回はエディタ拡張を用意することで開発効率を上げるためにゲームメイン回りに時間を費やしました。
最初はめんどくさいと思っちゃうけど量産系はツールがあるほうが長いスパンで見たときに絶対にお得なので
作りましょう。