関西UE4GameJamに参加しました

このブログ参加したか行ってきたしか言ってませんがそういう話です。

もう一ヶ月も前になりますが、思い出しつつ書いてきます。
間違ってたら申し訳。

そうですね、私にとっては初GameJamだったので、
これからGameJamに参加しようとか参加しようかどうか悩んでる人、
何も出来そうにないけどどうしよう…とか考えてる人の参考になればと思います。

◯前提として
UE4歴一ヶ月もないです。
ハンズオンの参加に当たっての予習やエディターをインストールしたまではいいものの、
特にこれといった事はしてなかったので1週間くらいでしょうか。
以前参加したUnity&Unrealハンズオンセミナーがあり、


こちらでUnreal側の講師があまりにも確保できないと言うことで、
Unity側で何を作るか経験したので、簡単なサポーターとしてお手伝いした程度です。
お役に立てたかは非常に怪しいです。

◯何で参加に踏み切ったの?

私、非常にチョロいですね。

結果として非常に楽しい貴重な体験が出来ました。
alweiさんには感謝しかないです。

◯事前にやったこと
ハンズオンの資料が残っていたのでそれを中心に見直しました、前日に。
本当はもっと時間を掛けたかったところですが、
毎日24時前後に帰宅する生活を続けると、その気力はでませんでした。(甘え
三連休の2日・3日目でしたので結局1日目に復習のするしかなかったのです。
とは言え昼間は別件があり結局数時間だけでしたが。

◯ブレスト・アイデア出し〜1日目〜
結論だけ言います。
遅刻しました。
結局、9時集合のところ到着できたのは10時半でした。
そう、既にチーム決めは完了してる状態でしたが、自分以外にも遅刻者は居るとのことで
人数がそれなりになれば遅刻者でチームを組む、
少な過ぎたら各チームへと言う運びになりました。
最終的に4人(2日目に一時的に5人に)のチームとなりました。

ずしさん(@shiba_zushi)が自分より先に居られて、
まだ2人でしたが自分たちが組んだ時の事を考えてアイデアを出しておくことになりました。
ブレストと言えば付箋!って事で思いついた事を書いては貼るようにしてみました。
その間にバンタンの学生さんが1人参加されて
(名前を失念してしまいました申し訳ございません…)
ここでチームFが結成することになりました。
ある程度アイデアを並べたところで、
今回チームとしての最低限の目的というか意識のすり合わせを行い
『どんな内容でも、ゲームとして完成させる』
この点を重視し実現出来そうなアイデアに持っていくことにしました。

消極的と言われたらそこまでですが、
誰も彼もGameJamは初参加、UE4歴も浅いと言う状態でした。
その上で、完成しませんでしたで終わることだけは避けたいと言う事で一致し、
面白さは二の次三の次と言うことで、操作や目的は極力単純にする事にしました。

この時間においては
「ステージを回転させてボールをぶつけて敵を倒すゲーム」
を作ると言うことでブレストは終了しました。
先に言ってしまうと最終的には
「ステージを回転させて敵を避けつつ、時間内にアイテムを回収するゲーム」
になります。
作ってる間にこれは間に合わないのでこうする、これを実現するのは難しいので
こう変更すると言った形で、二転三転しました。
どのタイミングでどう変わったかは正直覚えてません。

◯作業〜1日目〜
プログラマ2人、デザイナ1人と言うことで
まずプログラマは操作周りの実装、敵と当たった際のイベントを分担し、
デザイナは昨日フリーになったInfinity Blade Collectionから
今回の作品に使えそうなものを厳選するという形で分担。
作業に取りかかりはじめたところで甘酢さん(@falcomin)が合流されてUI表示周り、
ゲームの状態遷移部分をお願いすることに。

最終的な統合・マージを行う際は自分のところに…という事で各々作業を進めました。
(正直、どうなるのか全く予想がつかず不安しかありませんでした。)

夕飯で休憩をとった時点で、全体的に遅れが見えてきたので
おそらくこの辺りでゲームの内容をスケールダウンさせていったかと思います。
と言うか自分の作業に関しては回転の操作は何とか検証まではいけたのですが、*1
ボールをジャンプさせるという点に関しては
どうも上手くいかず時間がいたずらに過ぎました。。。
最終的にステージ全体を縦に揺らしてボールを跳ね上げる形になりましたが、
ここに至るまで二日目の昼までかかってしまいました。*2


◯作業〜1日目深夜〜
22時で会場が閉まるので各々明日に備えて帰宅、充分な休みを…取らない人も居た。
これを仕上げますと宣言したわけではないのですが、
自分はゲーム中のBGMを再生させようと思い
帰ってから数時間、素材を探りつつをしつつ実装を進めました。
実装自体は非常に単純で探せばすぐに出てくるレベルのものでした。*3

そして寝ようとしたら

そして朝判明するのですが、バンタンの学生さんも当たりに関するBPが上手くいっておらず
夜中調査を進めてたようです。
チームF、夜更かし大好き。
だからみんな遅刻するんだ

◯作業〜二日目〜
全員揃ったところで簡単なタイムスケジュールを甘酢さん主導で立てていただいて、
再度作業を分担したあたりで、改めてゲーム全体のフローを整理しました。

昼ごろには”敵を倒す”ではなく”アイテムを回収する”ゲームになったと思います。
そして敵にぶつかった際も倒されるのではなく、弾かれてタイムロスするという形になりました。
時間内にアイテムを回収して、残り時間とアイテムでスコアアタックする事ができれば、
繰り返し遊べるゲームになるということで、個人的にはそこをゴールに据えていました。

◯統合・マージ
結局どの部分を持ってくるのか人のソースを見るよりかは相当マシでしたが、
と言うかどういう手順でやったか微妙に覚えてない、と言うか要所要所担当した人に
見てもらいつつやったので。
あれ?ワイ要らなくね…?
とは言えここでまた問題は起ってなんやかんや修正を行ってたら作業時間ギリギリとなりました。
結局このタイミングでスコアの実装は表示するだけで計算は不可能となりました。*4

ただマージ作業中、ずしさんや甘酢さんがパッケージングに関する情報を集めてくださったので
パッケージングに関してはすんなり終わりました。
(こちらの情報が決め手になったとのこと http://historia.co.jp/archives/3658

◯発表
こんな形になりました。

実は結局最後に統合した際に敵との当たりを確認してなかったので、
敵に弾かれる処理は実装できてませんでしたが、敵にぶつからずプレイして触れられないようにしました。
スコアは突っ込まれました、そりゃそうだ。
後、実行ファイルでのBGMはやたらと音割れしてます。
元ファイルは別段悪くないので、これは謎だったりします。

◯全体を通しての失敗点
自分がUE4に対する知識が今ひとつ足りてないのは置いといて、
マージ作業をこまめに行えるようにしておく必要があったのは事実です。
それを踏まえたうえでのタイムスケジュールであったりを考える必要がありました。

地味に困ったところといえばデータの受け渡しでしょうか。
作業中、データを受け取るにしても不要なデータは含まれてるにしても
判別する暇が無かったので膨大な容量となってしまい、
5GBをUSB2.0でコピーすると片道20分はかかりました…
使用するアセット類の判別をつける作業を進める必要がありました。
後、純粋にUSB3.0を使いましょう。もう2015年なんですから。
それっぽく言うなら道具に対しては古いものを使い続けるなんて妥協はしない方がいい、ってとこでしょうか。

◯感想
取り敢えず、駆け足ですがそんなところです。
時間内に出来なかったことは自分も作業の遅れを出してしまったこともあり、
もう少しUE4に対して知識があれば、もっと完成度を高められたのは事実です。
とは言え非常に楽しい二日間であり、
チームを組んでくださった御三方には本当に感謝しています。
初めはUE4で1人でなにか作ったわけでも常に触ってるわけでも無いしマジで何もせずに終わりそうと思いましたが、
そんなことは無かったです。
自分のようにゲームらしい物も作れてないしマトモにUE4経験もないし…
って足踏みしてる人は是非参加してみてください。
(今回であればエディタ?BP?何それってのは流石に論外として)

後、痛い目見るなら早いうちがいいですよと言っときます。

*1:それにしてもレベルブループリントに書けばいい事実に気づくまで時間がかかってる体たらく

*2:個人的にこの実装は避けたいと意地になってた節もあります

*3:BeginPlayノードの適当なタイミングでPlaySoundatLocationを使用

*4:端折ったのはあれです微妙にうろ覚えになってるのです