「影を実体化するゲーム」を作りました
はじめに
2018/5/3(水) ~ 5/13(日)にunityroomで開催されたProBuilderゲームジャムに参加し「影を実体化するゲーム」を制作しました。その制作記録です。
告知
5/2にユニティ・テクノロジーズ・ジャパンから突然ゲームジャム開催のお知らせがありました。
このゲームジャムの開催期間は5/3 ~ 5/13となっていますが、5/7 ~ 5/9で開催されたUnite Tokyo 2018と連動したイベントになっていて投稿したゲームを会場に展示してもらえるみたいです。テンションあがりますね。
よしいっちょ参加するか!そう思い開催期間を確認すると奇妙な点に気が付きます。ゲームジャムの締め切りは5/13なのにUnite Tokyo 2018は5/9まで。初日の5/7から会場展示してもらいたいのであれば開発期間が実質5日間しかあらへんやんけ!
お題
日程的に厳しそうな感じはしつつもゲームジャムにはなるべく参加していきたいので参加条件を確認します。なにやらUnity 2018で標準機能となったProBuilderで作ったアセットを使う必要があるようです。
ProBuilderについて全く知識がなかったのでゲームジャムのページに掲載されていたチュートリアル動画やスライドを見て勉強しました。Unityのエディタ上で高度なレベルデザインが可能になるってのがキモのようです。
アイデア
もういい大人なので、自分が作りたいものよりも何を求められているのかという観点からお題に沿ったアイデアを考えてみました。Unityのエディタで直接レベルデザインができるというのがProBuilderの機能で、そのProBuilderのアピールのためのゲームジャムのはず。なのでレベルデザイン自体がゲーム内容に密接に関連しているまたは大きく関わってくるようなアイデアを探しました。たとえばValveの名作アクションパズルゲームPortalです。
Portalはレベルデザインと普遍的な概念である位置(の入れ替え)を超うまく組み合わせて成り立っているゲームです。ProBuilderでレベルいじくれたら面白そうです。同じようにレベルとゲーム内容の関連度が高いゲームだとSonyのGRAVITY DAZEなんかも当てはまりそうです。こちらはレベルデザインとこれまた普遍的な概念である重力(の切り替え)の組み合わせです。
これらのように現実世界での位置や重力といったユーザがなじみ深い概念に、ゲーム世界でしか実現できないような変化を加えることでレベルと深く関連したゲームのアイデアになるんじゃないかと考えました。
ユーザがなじみ深い概念…なにがあるかな…位置と重力はもう使われてるし…速度…光…。光と影。手で触れない影が固体になって触れるように変化する。影ができるってことは光が何かにさえぎられているわけで、さえぎる何かが地形ならレベルデザインと関連度の高いアイデアと言えなくもないか。うーん時間もないし(実質5日間)これでいくか、ということでアイデアをひねり出しました。
仕様
影を実体化するというひとつの行為に複数の意味があるとゲームに深みがでそうなのでざっくり3つの仕様を考えました。
・プレイヤーが上に乗って足場にできる
・物理演算でうごくオブジェクトに干渉できる
・敵へ攻撃できる
画面構成は3D要素を盛り込みたかったのとユーザが影を判別しやすいようゲーム内のオブジェクトを3Dにした2D(2.5D)横スクロールにしました。地形はもちろんProBuilderで作成しました。
プレイヤーキャラクターがスポットライトを持っていること、ライトで照らすことのできる距離は上限があること、ライトの範囲内の影のみ実体化することも決めました。最初はボリュームライトを使ってフォトリアルな感じに出来ないか検討しましたが、影を実体化するというウソと画面上の整合性がとれなさそうなのでこれは却下しました。
操作についてはUnite Tokyo 2018の会場でXbox Oneのコントローラが使えるとのことでしたので、左右の親指でアナログ2軸+左右の人差し指でボタン2つのインターフェースでおさまるようにしたいと考えました。コントローラが無い場合には左手がキーボードで移動、右手がマウスでスポットライトの移動と決めました。
実装
スポットライトと実体化する前の影は厚さ0のメッシュを毎フレーム張り直しして作っています。ライトが物体に当たって影ができるかどうかはRayをライトの形状にそって飛ばし、Rayが何かに当たったら物体を貫通しているかどうか調べるためライトの円弧から逆にRayを飛ばし…等々やっています。光と影を作るロジック作成にだいぶ苦しみ4日ほど費やしています。
制作記録を書いている現在でもロジックに穴があり、光と影が物体を貫通してしまったりする場合があります。が、どこかで見切りをつけないと先に進めないので致命的に違和感のある影が生成されないようにだけして一旦終了としました。
といってるうちに5/7になってしまっています。Unite Tokyo 2018初日です。間に合ってへんやんけ!せめて制作中動画でも出してお茶を濁そう、そんなあさましい考えで動画をツイートしてます。
主人公は豆腐だわ、ジャンプが実はtransform.position.y += 0.1fしてるだけだわ、起動しているとFPSがガンガン下がっていくなど色々ひどい。せめてUnite Tokyo 2018最終日には間に合わせたいと締め切りを5/9の朝までに再設定しました。
まずFPSが下がっていくバグをつぶして
主人公の動作にCharacter Controller(初めて使いました)を設定したり、アセットストアからモデル(初めて使いました)をダウンロードして豆腐と入れ替えたり、間に合わないから敵関連の要素をばっさり無くしたり、コントローラの対応をあきらめキーボードとマウスだけにしたり、レベルを考えるのも間に合わないからチュートリアルにしたりしました。
そんな努力の結果
5/9の朝までになんとか完成し公開できました。
反応
unityroomにて公開した旨ツイートしましたが、ツイート添付の静止画のゲーム画面だと「うわ、つまらなさそう…」と我ながら思いました。なので短い動画を適当に作ってツイートしました。
この動画がありがたいことに大変バズりました。再生回数は100万回を超え国内のツイートの中で勢い9位だったみたいです。たくさんの人に見てもらえたおかげで感想やバグ報告もたくさん頂けました。
正直なところバズった動画がなぜここまで拡散されたのか理解しきれていないんですが、多くの人に見てもらえたということは何か光るものがあるんだと信じてもう少しバージョンアップ等手を加えていきたいと思います。
バズった結果
・スマホが壊れそうになるというのは本当だなと分かった
・Unity公式アカウントにゲームを宣伝してもらえた
・Twitterのフォロワーさんが1000人増えた
まとめ
期限ギリギリでしたがUnite Tokyo 2018で展示してもらうという目的は達成できましたし完全に想定外のバズりも経験できました。求められているものを作れたか?についてはやや疑問ですが運よくバズったおかげで#pbjamの付いたツイートが25000リツイート以上されました。なので多少は…。
次のゲームジャムも可能であれば是非参加したいと思います。
さいごに
バズりを感じ始めたときにこんなツイートをしてます。
ノータイムで真っ先に「いいね」してくれたのはバズらせ屋さんでした。
さすがバズに敏感だなと思いました。
この記事が気に入ったらサポートをしてみませんか?