見出し画像

#Unity1week「回」久々に参戦した話

2月22日~2月28日に、1週間でゲームを作るイベント#Unity1week が開催された。今回のお題は「回」。

お題発表後に「あ、今日から始まるんだー。学校が終わって暇だから、せっかくだしやるかー」な何も準備してない状態からスタートした。
だいぶ遅刻だが作業レポートと振り返りを書いていこうと思う。

で、お前誰?

画像3

名:mizuki
専門学校卒業間近(当時)のプログラマー。チームで何かを作る事そのものが好き。今回は個人で参加。
#Unity1week  には「10」のときに参加したことがある。楽しくゲーム作りたい。

作ったもの

ベルトコンベアの上を走りながら障害物をよけるゲームを作った。

1日目 22日

深夜中に企画を考えて寝る。起きてから開発を始める。
作業できる日数を考えて、極限まで素材をシンプルにして最大限魅せれるような方針にする。
この時にベルトコンベアーのランゲー・高いスコアを目指す・ランキング機能欲しいくらいは決めた。

【見た目参考】
 Geometry Run
【ゲーム参考】
 ボンバーマンランド3 アトラクション「スケードボード」
この日作った機能
・プレイヤー(ジャンプとダッシュ)
・ベルトコンベア(物体が流れる挙動)
・箱(流れてくる障害物のベース)


物理挙動の調整がめっっっっっっちゃ難しかった。初日にしてラスボスに遭遇する。
何の項目を変えれば思い通りの挙動になるのか全然見当つかない。
さらに発生した「プレイヤーがジャンプで箱に衝突したときに跳ね返ってしまう」問題が頭を悩ませる。
Rigidbody使ってるので物理的に跳ね返るのは正しいのだが、そのままでは高速で流れてくる障害物を避けるゲームとして成り立たなってしまう。

最優先で解決するために、Rigidbody関連のリファレンス片っ端から調べるが、その日は解決には至らなかった。

その日は試しにビルドしてUnityRoomにアップロードし、動作確認して物理挙動以外の実装した部分の問題がなさそうなことを確認して寝る。

2日目 23日

前日の問題ですが、寝たらすんなり解決方法が浮かんだ。

「OnCollisionExit時にPlayerのx方向のvelocityを0にしたら跳ね返らなくなるのでは…?」

と気づいてやってみたらビンゴ。理想通りの挙動になった。
それをきっかけに覚醒!!
面白くなりそうな動作とかスコア加算の仕組みとかギミック流す仕組みとか、いろんなアイディアがポンポン浮かんできて、寝る時間とごはんの以外の時間ほとんど作業に費やす。この日にほぼゲームとして成り立つようになった。たぶんゾーン入ってたと思う。

この日作った機能
・プレイヤー(ブレーキ)
・ベルトコンベア(スピードアップ&ダウン機能)
・デスブロック
・アイテムとプレイヤーのレベルアップ機能
・スコア関連全般
・ゲームループ

この時点でこのゲームは「プレイヤーの物理挙動と流すギミックのレベルデザインが重要なゲーム」という認識はしていた。
システム面ではあとギミックの組み合わせ作ってレベルデザインのプログラム作るだけ!
というところでこの日の作業は終了。(この油断が最終日の悲劇に繋がるのである)

3日目

おやすみ

4日目 25日

主に見た目を作る作業を主に行い、現在の完成版とほとんど同じ見た目になりました。

この日行った作業
・フォント探し
・画像素材の作成
・エフェクトの作成(死亡時・レベルアップ時・アイテム取得時)
・BGMやSE探し

フォントは以下のサイトから探しました。
https://photoshopvip.net/90262

画像素材についてだが、初日に「極限まで素材をシンプルにして最大限魅せれるように」という目標を立てたが、無事達成した感じになったと思う。
実際に使った画像素材がこちら↓

画像2

ツイッターアイコンと歯車以外が自作だが、作った画像がめちゃくちゃ少ないことがお分かりいただけると思う。
未実装のチュートリアルと未使用のプレイヤーの円を除いたらもっと少なくなる。

エフェクトは参考ゲームのGeometryDashっぽいものをパーティクルで作った。
BGMなどはアセットストアで探しました。サウンド関係のこだわりとしては、SEにフィルターつけて若干古い機械っぽくした点などがある。

5日目

おやすみ

6日目

おやすみ

7日目(28日最終日)

2日作業せずに生活リズム狂ったりしながら終了1時間前に目覚めて焦る。
「レベルデザインするだけ!」どころか少ない種類のランダム生成のままだったので、急いで「現在のスコアによって流れるブロックが変わる」ように変更する。
ランキング機能はどうしてもいれたかったので、急ピッチで以下の記事を参考にしながら導入した。
https://blog.naichilab.com/entry/webgl-simple-ranking
まじでランキング機能ありがとうございます……!

上記の通りレベルデザイン面に後悔が残ってしまったが、時間切れになってしまったので、全体公開から1時間遅れて公開完了した。


評価期間

評価期間中、コメント1つ1つが嬉しかったり、こんなたくさんの人が自分のゲームをやってみてくれたという感動がありました。プレイしてくださったすべての人や、普段からイベントを盛り上げてくださってるすべての方々への感謝のきもちがいっぱいでした。
遊んでいただいた方ありがとうございました。

他の方のゲームについて、私は50ゲームくらいしか遊べなかったがとても勉強になった。
「そんな発想が!」とか「この表現すごい!」とか「似た企画でも作る人によってこんなに違うものになるのか!」とかいろいろ学べた。
記事や配信などで全作品遊びつくした方を改めて見ながらさすがだ……って気持ちになった。

この期間に追加で行った作業
・Twitter投稿機能の追加
・新ギミックの追加
・レベルデザインを頑張る

評価期間の2週間から少し経ったくらいにようやく、心残りだったレベルデザインをがんばったバージョンをアップした。

ゲームの評価について


画像1

※3/24日時点の評価
楽しさ 3.424
斬新さ 3.061
絵作り 3.894
雰囲気 3.894
サウンド 3.333
操作性 3.53

【振り返り】
その1 物理挙動の調整難しい

今回1番実感した点は、物理挙動でゲーム的な面白さを調整することの難しさだった。
2日目の跳ね返り問題はもちろん、
「ベルトコンベアの流れ」「ダッシュやブレーキの力の大きさ」「ジャンプの高さや落ち方」「物体の重さの設定」
移動にAddForceやMovePositionやvelocity直接操作とか、この挙動にはどの命令がふさわしいのかを考えて実装するのが今回一番苦戦したポイントでした。
技術的に新しく学んだこととしては、普段そこまでがっつり触ってなかったRigidbodyを挙動調整のために結構いじったり調べたりしたことだと思う。このへんもいずれまとめたい。

その2 見た目関連は自分の満足いく結果に


見た目関連では、当初の目標の少ない素材で魅せるは自分の満足いく結果にはなったと思う。
コメントでも見た目や雰囲気関連のお褒めの言葉をたくさんいただきました……ありがとうございます!!
リアルでスピードアップのUI良い って言ってもらえたりしたのはうれしかった。
ただ、荷物の流れとベルトコンベアの見た目が完全に一致させるまでいかなかった所が心残り。

その3 レベルデザインに後悔が残る

期間内のふりかえりでは、もう一度書くがレベルデザイン面に後悔が残る出来になってしまった。開発中のギミック3種をひたすらランダム生成するだけのまま公開してしまったので、後半完全に作業のような感じになってしまったのがとても問題だったと思う。特に「レベルデザインが重要」と自覚していたのでなおさらだった。

その後評価期間中にコツコツと追加ギミックを作ったり出現パターンを組み、評価期間後にレベルデザイン頑張った版をアップできた。心残りを心残りのままにしないで終われたのはよかったと思う。

その4 フィードバックの機会をうまく生かせなかった

前項目の「レベルデザイン頑張った版の更新」だが、ここにも反省点がある。
まず、前回参加したときは投票とかランキングがなかったので、評価期間というものにキョドってしまった。
それも少しあり。評価期間内は最初に投稿したものでどんな結果が出るのか見たい……とかランキングリセットしないほうがいいかなーとか考えてしまって、レベルデザインの更新を評価期間後にした。
しかし改めて考えると、貴重なフィードバックの機会を無駄にしてしまった感じもするので、
次回は評価期間中のアップデートとフィードバックのサイクルをぐるぐる回すのを積極的に行っていきたい

また、Twitter投稿機能を入れたはいいものの、自分以外のシェアがないという結果となってしまった。
次回は「どうすればTwitterにシェアしてもらいやすくなるか?」
などの期間中の宣伝とかのプロモーションも考えながら取り組みたい。

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