RYO620
DESIGN & DEVELOPMENT
Unity1週間ゲームジャムで「ヒメをゴールへつれてって」を制作しました
Ryosuke

Unity1週間ゲームジャムで「ヒメをゴールへつれてって」を制作しました

先月8/10から開催されていた Unity1週間ゲームジャム に参加しました。 色んなゲーム制作者が1週間でUnity製ゲームを作るイベント。 お題は 「ふえる」

今回は遊ぶフェーズの期間が2週間に延長され、投稿数も 500 を超えています。 やばいですね。 投稿された皆さん、そして運営のnaichiさんお疲れ様でした。


ヒメをゴールへつれてって

今回作ったゲームはこちら!

ヒメをゴールへつれてって (unityroomへ)

全キャラ同時スライド2Dパズルアクションゲーム!

ヒメは箱を押したりすることができません。 ふえていく仲間とともに、ヒメをゴールまで連れていくパズルゲームです。 ノーマル難易度が15ステージ、高難易度が3ステージ、計18ステージあります。

是非プレイしてみてください!


工夫した点/反省点など

9/12の土曜日に unity1week online共有会 という勉強会があり、そこでオンライン登壇します。 今回の制作でこだわった点などを話す予定です!

追記(9/13)

昨日u1w共有会が終わりました! 主催者の方から切り出した動画をいただけたので、自分のYouTubeチャンネルにアップしてみました。 ぜひチェックしてみてください。

デザイン系のネタではありますが、あまり感覚的な説明にせず、非デザイナーの方でも理解しやすいようにロジカルに説明するようにしてみました。 いかがでしょうか。

使用したスライドも共有しています。

u1w共有会 #2 「神は細部に宿る」のスライド


共有会のプレゼン内容(配色/ステージ制作/クリア演出のことを話す予定)と被らないトピックスを以下に記載します。

アイデア

「ふえる」というお題に対して、「画面上にキャラがたくさんいる」という状況からアイデアを膨らませました。 プレイしたのが子供の頃なので記憶は怪しいけど レミングス という横スクロールゲームを思い出しました。 なんか妖精みたいなキャラクターがたくさん出てきて、画面を左右行き来する。 一人一人に役割を与えることができて、途中自爆したり穴を掘ったりしてゴールを目指す。一定数のキャラクターがゴールすればOK、みたいなゲームだったような。 Total Party Kill などにも通づる「キャラ特性を活かしつつ、仲間を犠牲にしてクリアする」 というのが、ちょいブラックながら面白そうで、 そこに倉庫番のスライドパズルエッセンスを加えてあれこれ考えていくうちに今回の企画に着地しました。最終的にはレミングス感はゼロ。

このゲームにおける面白さは「同時に動くキャラクターを思い通りにコントロールすること」、「ふえた仲間を駆使してクリアへの道を切り開くこと」と定義しています。 プレイに慣れてくると、1キャラだけ意図した場所に向かわせたり、壁を使って陣形を修正したりが可能になってきます。

当初は同時操作キャラを10人まで増やす予定でしたが、自分でもコントロールできなくなったので5人としました。


キャラクター

キャラグラフィックは使用しなかったキャラも含め全部で26キャラほど。 数ヶ月前の落書きを活用しました。

当初は、主人公扱いしていた左上の帽子キャラをゴールまで導くゲームとしていましたが、それを説明に落とし込むのに非常に苦悩しました。なんか導入が野暮ったくなりそうな感じ。

そこでキャラクターを入れ替えて、姫カットっぽい画像左上から2番目のキャラを「ヒメ」と呼称し、タイトルも「ヒメをゴールへつれてって」に。このタイトルと、仲間を駆使してゴールを目指すゲーム性とを合わせてキャラグラフィックを見ると、9x14ピクセルという小さなキャラのドット絵からちょっと高慢な態度の女の子感が見えてきます。

また帽子キャラは足場になれたり(帽子が足場っぽく見える)、何か被り物をしてるゴツいキャラ(右上)はトゲ床無効など、キャラグラとスキルがリンクするようにしています。

いろんな方の実況を見させていただくと、「どうにかしてキャラを犠牲にせずにクリアしよう」という試行錯誤されてる方もいて非常に嬉しかったです。 各キャラクターの登場時に本当に短いセリフがあるのですが、それだけでもキャラに愛着のようなものが生まれているのかも。 ステージによっては全く犠牲を出さずにクリアができるので、その辺りをもっと上手く見せられたら面白くなりそうです。


パズルのユニット管理

キャラや箱、壁、水路などは12x12のグリッドに沿うように並べています。移動も12px単位で移動しますが、当たり判定は短いRayを飛ばして目の前のマスに移動できるかどうかを判定しています。

ただ同時移動という特性のせいか、衝突判定が思うようなタイミングで取れず、1フレーム待ってから判定/移動したりと管理が非常に煩雑になってしまいました。 今後はステージ全体を二次元配列で管理することで、物理に依存しないユニット管理に変更する予定です。


AnimationImporter

[Unity + Aseprite でドット絵ゲーム開発に快適な環境を目指す] の記事を参考に、 Aseprite ファイルから直接 Animation を書き出せるようにしました。 正直これがなかったら完成してないと思います……。 .aseprite ファイルをウィンドウにD&Dするだけで、スプライトシート + Animation + Animator が吐き出されます。

(u1w開発フェーズ終了後にunityをアプデしたところ、うまく出力されなくなりました。 githubを見ると更新が数年前で止まっているので2020系では動かないのかも。 代わりに有償アセットの Auto Importer for Aseprite PRO がいい感じです。 余力があれば解説記事とか書きたい。)


サウンド

BGMは有償で購入したものを使用。 雰囲気をポップにしてくれて非常に気に入っています。 各種アニメーションのスピードはこの曲に合わせて速度を調整しました。 SEはフリー素材ですが、チップチューン感のあるものに限定して選んでいます。


オリジナルのピクセルフォント

イベント以前からちょこちょこ作っていたものなのですが、今回の1weekで初使用!

5ウェイト5ウェイト

320x180(16:9)という解像度で視認性を担保できる、高さ5pxのミニマムなフォントを目指しました。 スタンダードなフォルムではあるのですが、ウェイト違いも入れているので統一したテキストUIを作るのに非常に重宝しそうです。 まだ完成ではないのでちょっとずつ調整しつつ、今後自作ゲームで使っていけたらと思います。


ランキング要素

u1wだしランキング要素は付けたいけど、パズルアクションにタイムアタック付けて焦らせるのもなぁ、ということで最小Step数を競わせる形にしました。 またプレイ中はあえてStep数は表示していません。 これも「Step数を減らさなくては!」という意識を産ませず、とりあえずパズルを解くことだけを楽しんでもらうため。

ランキング機能はおなじみの unity-simple-ranking/naichiさん です。 u1wで毎回使うものなので、レイアウトをカスタムしたものを unitypackage化してインポートしています。


ステージ難易度

ノーマルステージ序盤はだいぶ難易度抑え気味にしています。 プレイヤーは何をするゲームなのか、このキャラクターは何ができるのか、実際の操作感、などを徐々に覚えてもらう形にしました。

ヒメは箱を押せないことを伝えるステージヒメは箱を押せないことを伝えるステージ

ヒメ以外は箱を押せることを伝えるステージヒメ以外は箱を押せることを伝えるステージ

ただ全15ステージをクリアしてランキングに登録してくれたユーザー数は現在80名。 ページアクセス数に比べると大分低いので、終盤もうちょっと難易度を抑えてもよかったかも。アナリティクスとか入れてどこまで到達してるのか把握するのもやってみたいです。


Undo/Redo機能入れたかった

現状リセットするしかないので、パズルゲームでは絶対いれたほうがいいと痛感!


さいごに

前回のu1wはあまり納得のいくゲームが作れませんでした。 特に目標も設定せずなんとなく参加したことで、何も得られないまま終わってしまい結構凹んでました。

そんな中イベント終了後のunity1week共有会に参加。

1:30:15 くらいからの丸ダイスさんのプレゼンを見て非常に勇気づけられました。なんとなーくで参加している人は是非見てほしい!

「目的を設定しよう」「自分次第な目的にしよう」とおっしゃられていて、今回はそれにならい「今後につながるプロダクトを作る!」という参加目的を設定していました。 参加後のことまで考えて作ったゲームは今回が初めて。 スマホ展開するなら操作は単純にしようとか、u1w参加者(主に開発者)以外のユーザでも楽しめるものにしようとか、拡張しやすいものにしようとか(ギミック/ステージ追加していくだけでスケール可能)。

実装したかったギミックやキャラ特性がまだまだたくさんあるので、その辺りをアプデしてストアに展開できたらなと思います。 年内は他のタスクでちょっとバタつき気味ですが、遅くとも今年度中にはリリースしたいです!