Unity1週間ゲームジャムで「家具クライマー3D」を作りました(3ヶ月前)

9月のイベントの感想を12月に書くという暴挙。

手が空いたタイミングで書こうと思ったまま忘れてました。
思い出しながらになりますが、いつもどおり完成した感想を書こうと思います。

ゲームの説明

ジャンプと弾きを駆使して家具を乗り継ぐ三人称視点の3Dアクションゲームです。

Xbox系コントローラとマウス・キーボード両方の操作に対応しています。

Getting Over ItやPogostuck、Jump Kingなどの登山系ゲームをリスペクトして、
歯ごたえのある難易度(オブラートに包んだ表現)になっています。

制作にあたってのご報告

このゲーム、実はunity1week用に作ってはいませんでした。

7月にFinal Knight DEMOを作って、次に作るゲームを考えていた時に、
“コントローラのトリガーを弾く行為”が気持ちよくて楽しいのではないかと思い、
試作していたものをunity1week向けに一部流用して制作したものです。

なので、厳密には1週間の内に作られたものではありません。
(そもそも今回は遅刻してるのでアレですが)

ルール違反なのでは?というご意見もあるかもしれませんが、
事前に主催者様に確認しまして、

「過去に作った作品やライブラリも本人のスキルの一部と考えているので、
全く問題ありません。お祭りとして楽しみましょう!」(意訳)

という旨のお返事をいただきました。

突然の連絡にも関わらずご返信いただいた@naichiさん、ありがとうございました。

制作の経緯

上述のように、”コントローラのトリガーを弾く行為 → 気持ちいい”をメインコンセプトに、
どんなゲームを作ろうか考えました。

そこで思いついたのは、自分の創作活動の原点とも言える「家具クライマー」

今から4年前の2017年に作った家具クライマーは、
2D横スクロールのシンプルなジャンプアクションゲームです。
(スマホ版も出したのですが規約変更や維持費の関係で今は消えています)

ボタンを押して、押した時間の長さに合わせてジャンプの飛距離が変わり、
上手く調整しながら次の足場(家具)に飛び移っていくというシステムで、

この「溜めて、離す」という行為が、トリガーを引いて弾く行為と上手くリンクするかな?
と感じたのが今回の形になった理由の一つです。

もう一つは、その翌年にProbuilderゲームジャムという、
ゲームジャムに参加した時に作った「真・家具クライマー」です。

これは初代家具クライマーの続編的な感じで、
初代は足場が自動生成されるエンドレスなスコアアタックゲームでしたが、
今作はレベルデザインされた、クリアのある一般的な登山ゲームのスタイルになっています。

1作目で基礎のシステム、2作目でレベルデザイン、ならば3作目は何だろう?と考え、
思いついたのが「3D」でした。

3D空間を自由に飛び回る登山ゲームならば、過去作の流れを引き継ぎ、
4年経った自分の成長を反映させるには丁度いい題材かなと思い、制作をはじめました。

苦労した点

これまでの製作日誌では、1日目は○○をやって~みたいに書いていましたが、
流石に3ヶ月経って具体的な作業内容を覚えていないため、
覚えている範囲で苦労した点を書きたいと思います。

リプレイデータのWebGLファイルサイズ上限

今回の制作では、タイムアタックに挑むプレーヤー向けに、
自分の過去のゴーストと対戦できるリプレイ機能を実装しようと考えていました。

リプレイの実装自体は、入力やアニメーション状態遷移部分の
インターフェースの切り分けを適切に行なっていたため簡単に出来たのですが、
記録されるデータの容量が大きすぎて、WebGLのPlayerPrefsの容量制限(1MB~2MB?)に
引っかかってしまいました。

実装した時点で容量制限については認識していたのですが、
20分くらい放置したデータでもちゃんと記録できていたので大丈夫だろう、
と思っていたら、後にステージを難しくてクリアしたところ
5分でも容量オーバーになっていることに気づきました。

理由としては、同じ座標値でしばらく放置されたデータが、リプレイ保存時に圧縮されて
容量がメチャクチャ小さくなっていたという事のようです。

考えてみれば当たり前のことですが、WebGLという環境の特性上、
ローカルに保存できるデータ容量は限られているというのは、
今後WebGLで何かを作るときは覚えておく必要があると思いました。

結局、毎フレーム記録していた入力情報を数フレームに一回に下げて、
かつプレイ時間が5分を超えたら、5分までのリプレイデータを記録して
それ以降は保存しない、という形に変更することで対処しました。

タイムアタックをしていく上で、過去の苦戦している自分と競えたら励みになるかな~と
思っていたので、この変更は苦渋の決断でしたが、致し方なし。

リプレイゴーストが若干カクカクしてるのも、入力情報の保存頻度を下げたことが原因です。

音作り

今回ゲームジャムに遅刻したのは、主に音作りに悩んでいた事が原因です。

先人の教えで、「効果音は最後に入れろ(面白くなくても面白く感じてしまうから)」
という話を耳にしたことがあり、効果音はいつも開発の最後の方に入れるようにしています。
(もしくはモチベが下がった時)

何となく、「3Dだから今までのレトロゲームっぽいのではなくリアルな音が良いな~」
くらいは考えていたのですが、具体的にはそこまで考えず制作を進めてしまい、
いざ効果音を入れられるタイミングが来たのは公開予定時間の数時間前。

超特急で音を入れたらギリギリ間に合う時間ではありましたが、
妥協して納得できない音を入れても自分が後悔するだけなので、
それなりに苦労して作ったものだし、遅刻してでも納得行く物を作る時間を取ろう、
という結論に至りました。

一応、当日時点ではここまで出来てました。

この時点では、8bit的な音が若干浮いていると考えていて、
翌日はこれをリアル系サウンドに置き換える作業をすることにしました。

翌日、OGAWA SOUND様の書籍、サウンドエフェクトの作り方[改訂版]を読みつつ
一部のサウンドを作ったり、手持ちのサウンドライブラリにエフェクトをかけたりして
サウンドを置き換えました。

サウンドエフェクトの作り方は、効果音制作の奥深さを垣間見ることのできる良書です。
OGAWA SOUND様のホームページでも色々な効果音の作り方が紹介されているので、
効果音で困っている方は見てみるのオススメです。

チャレンジしたポイント

新しい物を制作する時には、1つくらいは新しい事に挑戦したいと思っていて、
今回は、新しいInputSystemでの入力の実装と、フォトモードの実装にチャレンジしました。

新Input System

これまではコントローラ入力とマウス・キーボード操作の両方に対応するときは、
有料アセットのRewiredを使用していました。

ですが、Unityの新しいInput Systemを使えば、Rewiredは必要なくなるかもしれません。
仕組みは一見複雑ですが、一度理解してしまえば難しくないので、
使ったことがない人は使ってみると良いかもしれません。

サンプルとして、UnityのStarter Assetsが参考になるかもしれません。

Photo Mode

フォトモードについては、少し前にUnityが公開した「Photo Mode」というパッケージを改造して、
スクリーンショットの保存機能を実装した程度で、一から作ってはいません。

こちらも新Input Systemが使われています。元々実装していたInput Systemと、
Photo Mode内のInput Systemの実装の仕方が少し違って、
入力モードの切替に少し手間取りました。

あと、おま環か特定のバージョンだけの現象かもしれませんが、
WebGLビルドでPhoto Modeを記入すると、スティックによるカメラ操作が
上下逆になってしまいました。

なのでWebGLビルド時のフォトモードのみ、
スティック入力を逆にする処理を入れて対応しています。

制作を終えて

技術的な話は終わりにして、制作を終えての感想ですが、
決めていたスケジュールを守れなかったのは大きな反省点です。

ゲームジャムのルール上は遅刻OKなのですが、自分の目標としては
一斉公開のタイミングに合わせたかったので、次は気をつけたいと思います。

あとは、公開する環境に合わせたゲーム作りの必要性。

自分が今回作ったのは、フル3Dの高難易度ゲームで、
概ね自分の想像していた通りの物になったとは思っています。

ですが、公開するのはブラウザでゲームを遊べるWebサイトです。

前作もそうですが、ブラウザ上で動く物にしてはフル3Dでリッチに作りすぎたし、
気軽に遊べる環境なのに、気軽に遊べない操作性と難易度であるというのは、
あまり遊ぶ人の層を考えられていなかったかな、と思いました。

技術的な成長を求めての制作や、創作をただ楽しむだけなら、
自分の納得行く物を作れたら良いとは思うのですが、
遊ぶ人たちがどういう環境で、どういった内容を好むかという観点を持った制作も、
人に遊んでもらう上では必要かな、と思いました。

今後について

制作時点では、ステージを刷新して多人数で山登りができるオンラインモード、
または同等規模のステージを多数作って面クリア型の一人用モードを作り、
Steamなどへの出品を目指そうと考えていたのですが、

公開後の手応えと、周りの人に遊んでもらった感触、
あとは自分の印象として、ぶっちゃけ内容が普通過ぎるかなという気もしているので、
現時点ではこのゲームの制作はこれで一区切りとしようかと思っていて、
今は別のものの制作に本腰を入れています。

ただ気が向いたら、後学のためにも、他の制作の片手間に作業を進めて、
Steam出品は目指すかもしれません。

もしこのゲームを気に入ってくれた方がいましたら幸いです。
またのゲームでお会いしましょう!

シェアする

  • このエントリーをはてなブックマークに追加

フォローする