正月休み課題に、「1日ぐらいで作れる小さいゲームを一本完成させて公開する!」というのを発令しました。いつもの如く、課題を発したら自分も参加するスタイルなので、自分でも作って公開しました。以下から遊べます。
目次
企画
作戦
少ない要素でも遊べるものにするための作戦として、以下のようなことを考えました。
- フィールドを歩ける系のやつはまとめにくいので避ける
- ランキングに対応させて、単純操作を競うようにする
これまでのUnity1週間ゲームジャムで、一つの要素で楽しめるシンプルな作品に憧れてたので、とにかく今回は余計なものをそぎ落とそうと考えました。
ゲームの要素
作戦を元に、以下のような要素を考えました。
- 一発操作ものだと、タイミングよくパワーを止めるやつが好き、ということで、マウス操作で飛ばす方向を決めて、パワーゲージをタイミングよくクリックして飛ぶものにする
- 主人公は、SURIYUNさんのCute Petのカモに決定!
- 背景は、同じくアセットストアで購入したばかりのPBR Desert Landscapeを少しいじるかそのままでいけそう
- UI - Builderで円形のパワーゲージを作る
- 開始点から着地点の距離がスコア
ゲーム内容はこれで決定。飛んだあとに姿勢を変えて、飛ぶコースや速度を調整することも考えていましたが、今回はとにかくシンプルがテーマなので削りました。
開発方針
開発に入る前に、大雑把に全体像を箇条書きにしました。
全体的なこと
- フォントは太いカタカナのインパクトのあるやつ
- 1シーンで、タイトル、ゲーム中、結果表示、ランキングを実装
ゲームの流れ
- 方向を決めてクリックしたら次へ
- ゲージを動かして、クリックを検出して次へ
- 飛ばして、停止するのを待つ
- 距離表示
- タイトルへ
効果音
- 決定音
- パワーゲージの音
- 飛ぶ音
- 飛んでいる間のbgm
- バウンド音
- 結果音
- ハイスコアファンファーレ
こんなことを日野へ向かう電車の中でスマホにメモりました。行きだけでほぼ書き終わっていたので、1時間ぐらいでまとめました。
開発
PBR Desert Landscapeの高速化は、事前に研究してました。まとめ記事はこちら → PBR Desert Landscapeを高速化する - tanaka's Programming Memo
進捗としては以下のような感じでした。
- 1日目:ゲームのルールは全て実装
- 2日目:バグや的の範囲の制限、画面エフェクトの調整、BGMとSEの実装など
- 3日目:ランキング、ツイート、アニメーションの実装
- 4日目:操作説明の実装、当たり判定の調整など仕上げして完成
まとめ
今回、久々にプレイヤーのキャラクターを登場させられました。また、ステージをアセットでさくっとまとめられて、画面も綺麗にまとまりました。
内部的には、1シーンということで各フェーズの処理を1つのファイルにまとめてしまいました。同じオブジェクト上なら簡単にGetComponentでお互いのインスタンスを取得できるので、フェーズごとにスクリプトファイルを分けることを少し検討しましたが、考えているうちに完成してしまったのでそのままになりました。いずれ、UniRxやZenjectの練習台にしてもいいかと考えています。
前回から使いまくり始めたAnimationとAnimatorを今回もあちこちで使いました。文字のアニメーションは勿論、パワーゲージもAnimationで動かしています。スクリプトを書かずに色々できて楽です。Timelineはタイトルの表示ぐらいでしか使ってません。シンプルな構造ならステートマシーンをマウスでぽちぽちできるAnimatorもまだ捨てたものじゃないと感じていますが、ちゃんと勉強したらTimelineの方が楽なのかな?今後の研究課題です。
以上、正月明けにどのような作品が揃うか楽しみにしています。
利用アセット
以下のアセットやリソースにお世話になりました。作者の皆様、ありがとうございました。
アセット
- SURIYUNさんのかわいいペットアセットから、主人公のカモのモデルとアニメーションに登場してもらいました
- PBR Desert Landscape
- 背景の地形のアセットです。すでに公開が終っています。
お買い得です。そのまま使うと遅かったので、高速化のためにやったことをここにまとめてあります
- 背景の地形のアセットです。すでに公開が終っています。
- Post Processing Stack用のプロファイルセットです。このプロファイルをちょこっとだけ調整するだけで綺麗な画面になりました
- ツイートやランキングボタンや、照準、ゲージをこれで作りました。色見本もゲージの色作りに参考にしました
Package Managerのもの
- Cinemachine
- 定番カメラ制御アセットです
- Post Processing Stack
- 画面のクオリティアップには無くてはならないアセットです
- TextMesh Pro
- 文字が滑らかになって、グラデーションなどの効果を簡単に設定できるこれまた定番アセットです
フォント
- 稲塚春. あんにゃんとろまん
- タイトルなど、多くの場所で使用したインパクトのあるフォントです
- 中井 良尚. こども丸ゴシック
- コピーライト、解説、バージョンのフォントです
オーディオ
-
- タイトルとゲーム中のBGMは、今回は音楽の卵さんのものを使いました
-
- ゲージの上昇音以外の効果音は全て効果音ラボさんで探しました
- PEKO STEP. 効果音メーカー
- パワーゲージの音を作りました
オンラインランキング
- 【Unity、WebGL】なるべく簡単にオンラインランキング機能をつけるサンプル - naichi's lab
- UnityのWebGL出力に簡単に無料でグローバルランキングを実装できる仕組みを考えてみた - Qiita
- オンラインランキングのバックエンドをGoogleワークシートで構築するdivideby_zero氏の記事です。今回もありがたく利用いたしました