第5回1WeekGameJamに参加した話。
どうもW@です。
今回も1WeekGameJamに参加したので、
それについてつらつらだらだら書いていこうと思います。
~お品書き~
Unity1Weekって?
ざっくり説明すると、
- naichiさんが運営するUnityRoomで開催されるイベント
- お題が発表され1週間でゲームを作成し、投稿する
- 月に1回、月末に開催される。
的な感じです。
自分は今回で4回目の参加です。
今回作ったもの
作品名
今回のお題が「フロー」ということで自分が作ったのは、
です。
…え?名前が安直だって??
いや、自分のゲームはなんというかモノクロチックでシンプルな感じだったから変に華のありそうなタイトルつけないでそれはそれはシンプルな名前にしようという作戦の上で…
はい、後回しにしたら時間が足りませんでした。
内容
ゲーム内容をかんたんに説明すると、
オブジェクトを回転させてボールをゴールに入れるだけ
です。
オブジェクトごとの細かい説明は解説にまとめようと思います。
アイコン
今回作ったアイコンはこれ
前回参加した際にアイコンにGIF画像が使えることを知って今回使ってみました。
やはり、アイコンが動いているだけで結構目立ちますね!
…まぁ、適当にオブジェクト並べただけですがね…。
ちなみに、GIF画像は「ScreenToGif」というソフトを使って作りました。
詳しくは椿さんのブログで。
制作の流れ
アイデア出し
初日はとりあえずどんな感じのゲームにするかをテキトーにぼんやーりと動画見たり放送見たりしながら考えてました。
だいたい出た案としては、
- フローチャート
- 流体
- フローズン
- 風呂
- 川下り
- UC(…流れ変わったな。)
- 水道管つなげるやつ
- ベルトコンベアでアイテム仕分けるやつ
- ボール導くやつ
…と、まぁそんな感じであったんですが、
「作るの簡単!」
「見ているだけで面白い!!」
「可能性は無限大!!!」
ってことで、物理ゲームの「ボール導くやつ」に決定しました。
煮詰め作業
大まかなアイデアが決まって、そこから細かいルールとかを決めるわけですが、
すでに自分の中で決めていたルールが、
- 一定間隔で生成される玉
- 床を動かしてゴールへの道を作る
- 様々なギミックがある
みたいな感じでありました。
ただ、これじゃ弱い(確信)と思ったので、もう少し追加ルールを考えることに。
床について
→回転+移動:❌自由度が高すぎてゲームにならない。
→移動のみ :❌予期せぬ動きや自分の想定外すぎる回答が生まれるかも。
→回転のみ :✔一番現実的。
ゴールについて
→一定個数指定範囲に入れる :❌範囲である必要性が見いだせない。
→指定個数入れる :❌なんかゴリ押しでなんとかなりそう。
→指定時間内に連続して入れる:✔まぁ、そんなもんか。
そんな感じで、煮詰め終了。
プロトタイプ作成
「まずはプロトタイプを!」
「玉を一定間隔で生成!!」
「満足~」
…。
実際そんな感じです。完全に舐め腐ってますね。
画像素材作成
ってことで、いきなり本番用デザイン開始。
今回作った素材はこんな感じ↓
1枚目がSpriteとUIで、2枚目が背景素材で、三枚目が回転させるときに出る扇形のやつです。
全体的に統一感を持たせるために
- モノクロカラーで(いつもの)
- 形はシンプルに
- 線幅はある程度統一して
とか考えながらデザインしてます。
…実際統一感持たせればシンプルでもそれっぽく見えるから…。
ギミック作成
画像素材も完成し、ギミックを作成することに。
ギミックの説明
ボール
こいつをゴールに運ぶ。
危険ブロックに当たるとパーティクルを生成して消える。Trail付き。
ジェネレータ
名前通り玉を生成する。
生成する間隔、オフセット時間、パワー、有効/無効が指定できる。
ゴール
ここに指定時間内に指定個数玉を入れるとクリアとなる。
制限時間、必要個数が指定できる。
ブロック達
玉の道や障害物になるもの。
これ自体にスクリプトはついていないが、普通とはねるにはPhysicsMaterial、危険にはTagが付いている。
回転軸
これがついているオブジェクトを回転させることができる。
回転させる動作が意外と苦戦した…。
レール
これにオブジェクトをつけると、横に移動する。
速さ、方向がしてできる。長さも自由に変更できる。
ちょっと工夫してるところ
今回のはステージ制にしたので、ステージエディットがし易いようにギミックにちょっと工夫しました。
・ブロックのサイズ指定を簡単に
ブロックのサイズを変えられるようにするためにスプライトのTile機能を使ったのですが、
サイズを変更すると当たり判定がおかしくなる!
ついでに跳ねるブロックの丸角が面倒くさい!!
という問題があったため、ブロックのサイズをInt型で指定できるエディタ拡張を作りました。…まぁ、コピペですが。
Widthで幅指定、IsBoundで丸角を設定できる
・移動、回転系ギミックを使いやすく
はじめは、オブジェクトにスクリプトを追加することで回転や移動できるようにしようかと考えていましたが、
「回転、移動できるオブジェクトの子に加えて回転や移動する方法」に変えました。
こうすることで、複数のオブジェクトを同時に移動、回転させることができるようになりました。
UI作成
今回一番と言っていいいほど力を入れたUI。
…といっても、大体はアニメーションゴリ押ししただけですが。
初めてFillAmountの機能の使い方を知り、多くの箇所で使用しました。
こんな機能がデフォルトで入っているとは…。
あと、今回もフォントは「廻想体」を使わせてもらいました。
個人的に好きなのと、システムフォント利用可なのが素晴らしいです。
ステージ作成
いよいよ、メインであるステージの作成!
しかし、正直余裕だと思って最後に回していたが、
予想に反して大苦戦。
残り約1日
\(^o^)/
最初は「12ステージくらい余裕だろ」とか思っていたけれど、
1ステージ作るのに平均1時間
難しくしようと複雑なものにすると、別の簡単な解が生まれる
クリアできるものを作ったはずなのに再現性0
…みたいな感じで、結構苦労しました。
ステージ数も結局9ステージに減ってしまったし…。
でもまぁ、感想とか聞いてみるといい塩梅だったかもしれないですね。
感想
今回で4回めの参加になりましたが、拡張性もあり自分的には良いルールを考えられたと思っています。時間があったらアプリ化もしたいですね~。時間があったら。
反省としては、やっぱり時間配分ですねぇ。
今回はギリギリに間に合った(?)のですが、結局時間配分を見誤って最後に徹夜で作ることになるんですな…。
どうにかして、自分なりの計画の立て方を見つけることが課題ですね…。
なにわともあれ、次回も開催するなら参加する予定です!
では、お疲れ様でした~!