Unity1週間ゲームジャム「筋肉行軍」制作の所感
unity1week(Unity1週間ゲームジャム)で「筋肉行軍」というゲームを制作しました。
ゲームジャンルは「2D横スクロールアクション」あるいは「ランゲーム」です。
プレイはこちらから↓
ゲーム公開時のツイートにはプレイ動画も載せています↓
このゲームの制作を通じて感じたことを書いてみようと思います。
ぶっちゃけ独り言みたいなものですが、2D横スクロールアクションを作ろうと思ってる人が見たら参考になることが書いてあるかも。書いてないかも。
① 作りたかったもの
unity1weekはお題が発表されてから作り始める人がほとんどですよね。
僕もそうです。
しかし今回は「今制作中のゲームに活かせるものを作ろう」と思っていたので、ある程度構想は固まっていました。
今制作中のゲームはランゲームなので、ランゲームを作ることにしました。
② お題発表
月曜日、お題が発表されました。
「あける」
ランゲームで何をあけるんだ……?
考えた結果、鍵と扉を設置することにしました。
「扉は実は鍵がなくても肉体で破壊可能」という仕掛けを加えることで、こじつけ感を緩和。
筋肉信仰が始まってしまった。
③ 初めてのTilemap
Unityの機能で「Tilemap」というものがあります。
ご存じない方でも名前からなんとなく分かるかと思いますが、画像をタイル状に配置できる機能です。
2DアクションのステージやRPGのマップを作るなら是非覚えておきたい機能ですね。
お題発表前にある程度使い方は調べておいたのですが、これを利用してマップを作るのは初めて。
Tilemapを利用したプロジェクトでWebGLビルドをするのも初めて。
なかなかにスリリング。
こちらの記事が参考になりました↓
④ コライダーが引っかかる……
Tilemapは、配置したタイルの形状に応じて自動的にコライダーを生成してくれます。
便利すぎる!!
えっタイル1枚ごとにコライダー1個生成されるの?
この上にキャラクター走らせたら絶対引っかかるじゃん……
と思ったら
わりと簡単にコライダーの結合ができました。
Composite Collider 2D を追加し、Used By Composite にチェックを入れるだけでした。
やはり便利……Tilemapすき……
こちらの記事が参考になりました↓
⑤ 着地判定
ランゲームなので、当然のように「ジャンプ」ができます。
ジャンプすれば、着地もします。
着地しないと、再度ジャンプはできませんよね。(2段ジャンプが可能なゲームでもなければ)
そう、「着地」を判定する必要があるのです。
「足」が「地面」に接触した時、再度ジャンプできるようになる、という処理が必要なのです。
この処理が正しく実装できていないと、
「天井に接触したら再度ジャンプできるようになる」
「壁に接触したら再度ジャンプできるようになる」
なんてバグが生まれてしまうのです。
・体とは別に足にもう一つコライダーを付けてそっちで判定する?
・地面に別のコライダーを付けて壁と区別させる?
なども考えましたが、結局どちらも横からぶつかった時にも反応しちゃうので、素直にインターネットの叡智を借りることにしました。
Filter2Dというのを使うと、うまく下の角度のみ判定できるようです。
こちらの記事が参考になりました↓
⑥ 襲いくる「このゲーム本当に面白いの?」の不安
作品を世に出したクリエイターなら、多くの人が「これ本当に面白いの?」「これ本当に求められてるの?」という不安を感じながら制作した経験があると思います。
今回もそれは感じました。
「壁や崖に近づいたらジャンプするだけじゃん。面白いの?」
いやいやいや! ルート選択という面白さはあるから!
などと思っても、やはり他のランゲームと比べると、明らかに足りないものがあるわけです。
ギミックが少ない……。
ランゲームの面白さのキモはギミックと敵のバリエーションや配置です。
移動する床、ジャンプ台、空から襲い掛かる敵、巨大ボス……
いろんな仕掛けがあるからこそ、基本ルールが「自動で走る」だけでも面白くなるんです。
ただでさえステージ制作に結構な時間が割かれたので、そこにギミックを追加する時間はありませんでした。
しかもですよ。
「ギミックを追加すると、プレイヤーにギミックを覚えさせるためのステージも追加する必要がある」のです。
さすがに1週間じゃちょっと……複数ステージはキツいっす……。
そんなわけで割り切って、
「鍵が必要だと思ったらそうでもなかった」
「ボス戦があると思ったらそうでもなかった」
という意外性を売りにしていくことにしました。
⑦ WebGLビルドできない問題
Tilemapに変なバグがあったら嫌なので、Unityをできるだけ最新の、できるだけ安定したバージョンにアップデートしました。
Unity 2019.4.16f1 を選択しました。
しかし僕のWindows PCには、致命的な欠陥があるのです。
Unity 2018.2.X 以降ではWebGLがビルドできないのです!
致命的すぎる……。
しかし、最近新しくMacBook Airを購入しました。
そう、Macでビルドすれば良いのです!
1. Windowsで使用しているUSBフラッシュメモリをMacでも問題なく認識できる(WindowsからMacにデータを移せる)
2. Macで問題なくWebGLがビルドできる
3. そのWebGLが問題なくUnityroomにアップロードできる
これらをクリアすれば、問題なくアップロードできるのです!
:
:
:
:
:
:
:
:
:
:
問題なくアップロードできました!
こわっ
絶対何かトラブルあると思った。
というかゲームジャム中にそんなこと初めてやるな。
⑧ おわりに
教訓
「ボリュームがゲームの面白さに直結するジャンルはunity1weekには向かない」
身も蓋もない……。
それではこの辺で。
この記事が気に入ったらサポートをしてみませんか?