見出し画像

Unity 1週間ゲームジャム お題「回」 で高難易度アクションゲーム「ホッピング忍者さん」を作りました

unityroom 1週間ゲームジャム お題「回」に参加して「ホッピング忍者さん」というゲームを作りました。理不尽ではないと思いますが高難易度です。遊んでもらえたら幸いです。

今回の参加を振り返ってみようと思います。時系列で書ける程ちゃんと記録を残してないので、思いつく範囲で。

ネタの話

お題が「回」と知った時、「自機を回転させて動かす」か「回転寿司」のどちらかしか思いつきませんでした。いくつかメモを書き出したあと、アクションゲームを作ろうと思ったので以下を採用しました。

メモ: キャラクターは人間。空中で回転する。壁や床、天井に足からぶつかると、向いてる方向にジャンプする。頭からぶつかると死亡

キューブで頭と足の当たり判定を作って、カーソルキーで回転させてコースをバウンドするプロトタイプを作ってみたところ、面白そうな感じがしたので、それを作ることにしました。

その後ぴょんぴょんジャンプすることから、ホッピングをモチーフにすることにしました。

Blenderで自機を作った話

Blenderで自機を作りました。ここ数ヶ月Blenderを色々勉強していて色々作れるようになったので「いつか自作ゲームで自作のモデルを使いたいなー」と思っていたので、今回良い機会なのでチャレンジしてみました。

といっても、今の技術では凝ったものを作ろうとすると簡単に数日かかってしまうのはよく知っているので、こだわらないことを念頭に作成しました。

画像1

キューブやUV球を変形してベースメッシュを作って、それをリトポして、テクスチャペイントで色付けして、ボーン入れてぴょんぴょんするループアニメを1つ作って、FBXでエクスポートしました。

ファイルの更新日時とか見ると、4時間弱で完成していました。数ヶ月前では、自分で3Dアセットを作るなんて夢のような話だったので、1日分程度の作業時間でこれが作れるようになるなんて、個人的に大きな進歩です。自分を褒めてやりたい。

実装の話

自作モデルを作れた時点で、今回のゲームジャムは半分優勝したようなものですので、実装には凝ったことをするつもりはありませんでした。その証拠と言ってはなんですが、書いた*.csのファイルは4つだけで、行数の合計は400行くらいでした。初参加のスピード逆さまクイズの時のプロジェクトを見てみたら、1500行くらい。

ゲームは1つのシーンにして、UIの遷移は最小限です。UIのアニメーションはプログラム(以前はコルーチンとDoTweenでガリガリ書いていた)じゃなくてAnimatorを使ってます。演出は効果音のみです。動的なオブジェクト生成は一切ありません。コースに動くギミックとかも全く無いですしね。

プログラムを殆ど書かない代わりに、コースの作成に時間をかけました。

コースの話

プロトタイプとしてキューブをぴょんぴょんする動きを作った時点で

「思った通りに動かすだけでも相当難しいぞ。。」

となりました。最初は動く床や、アイテムを集めて次に進むようなギミックとかも考えていましたが、ちょっとした障害を超えるだけでも十分遊べると思いました。なので、コースは凄いシンプルです。

クリアに必要な操作を想像しながら障害を作ってみる->超えられるか遊んで確かめる->「何度(数回~数十回)か失敗して超えられる」程度になるように調整->チェックポイントを配置->次の障害を作成
という感じでコースを作っていきました。

ステージはキューブを複製して移動してサイズを変えて、、、。という行き当たりばったりな感じで作ってました。座標の数値入力やスナップは使わず、Move ToolとRect Toolしか使っていないので、キューブ同士はめり込みまくっている、サイズに統一感は無い、ブロック間隔も目分量と、かなり拙さが目立つと思います。

画像2

あるあるかも知れませんが、私は例えばPowerPointでスライドを作るときに要素の整列とかで無駄に時間をかけてしまうタイプです。時間が限られるゲームジャムでその悪癖を出すまいと、かなり雑な作りでも「遊んでみて破綻がなければ良し!」という勢いでぐりぐりコースを作っていきました。

最後は、ある程度満足したところでゴールを配置して完成としました。スケジュールは余裕を持って提出できました

システムで工夫した点

私はあまり高難易度ゲームは得意じゃないです。壺おじさんで有名なGetting Over It with Bennett Foddy ですが、13時間程かけて1回もクリア出来ませんでした。その時の気持ちを思い返しながら、このゲームでは、途中で諦めたりしないようにいくつか工夫はしました。

一番大きいのはチェックポイントです。「あそこまで行けばいい」というのがわかるとモチベーションを保ちやすいと思います。また、チェックポイントの間隔も結構小さいです。操作をミスって大きく進行を戻されることがない安心感もあるかなと思います。

失敗時にわざわざリトライか尋ねたりせず、すぐに無制限にやり直しができることも意識しました。実は開発時には失敗時に一瞬でチェックポイントから再開する実装でした。想定する失敗の回数的にも、それくらいすぐに再開できるようにしたかったのですが、それだとさすがにどこにぶつかって失敗したのかわからないので、妥協して失敗時に0.5秒だけ静止するようにしました。

あと、「ゴールまであとどれくらいだ?」というのも、すぐわかるように、進行度合いもUIに表示するようにしました。これは開発後半になって気づいて追加したのですが、気に入ってます。

過去の参加ではゲームの基本部分を作るだけで精一杯だったのですが、今回はどうすれば楽しんでプレイしてもらえるかも考えることができたんじゃないかなと思います。

公開後の話

まず思ったのが、想像以上に遊んでもらえているということでした。閲覧数が1000回を超えており、嬉しい以上にびっくりしています。

ちなみに、テスト時の私のクリアタイムのベストは10分を切るくらいでしたが、今ランキングを見たら3分を切っている人もいるようです。凄くやり込んでくれたのか、凄くアクションゲームが得意なのかわかりませんが、感謝と尊敬の気持ちでいっぱいです。

逆にコメントを見ると1時間以上かかったり、途中で諦める人もいた様子です。多分私も初見だとそっち側だったと思います。

人によってプレイ時間にかなり差があるみたいで、このようなゲームが得意でも不得意でも気持ちよく遊べる難易度設定の難しさを感じています。やっぱりプレイした人全員にクリアして欲しいですし、同時に困難を突破したときの嬉しさも大事にしたいですしね。

あと、毎日閲覧数や評価数が気になってちょくちょく見てしまいます。完成して提出した後も、結構長い間心が囚われてしまいますね。

まとめ

頑張って結構面白いゲームが出来たと思うので、ぜひ遊んで見てください!

(再掲)


この記事が気に入ったらサポートをしてみませんか?