こんにちは、カシワデです。
今回ハッカソン4班はチーム名『風紀委員会』として参加しました。
そして、製作したゲームは最優秀賞を獲得することができました!!!!
本当にありがとうございます!
風紀委員会メンバー
できたもの
↓↓プレイ動画
↓↓ここからダウンロードできるぞ!!!!(Windowsのみ)
風紀委員になる
操作方法
- マウスでエイミング。左クリックで愛破壊手榴弾を投擲
- wsadキーで移動。Spaceキーでジャンプ
(開発者Tips:ジャンプしない方がスコアが伸びるよ!)
(開発者Tips:ジャンプすると楽しいよ!)
なんだこれは
設定
何らかの理由でカップルが増えてしまった東工大
イチャイチャを見せつけられた学生、教授は学問に集中することができなくなってしまった
このままでは東工大の将来が危ない!
東工大の未来を守り、風紀をただすために風紀委員が立ち上がった!主人公は東工大の技術の粋を集めた『愛破壊手榴弾』をカップルに向かって投擲
『愛のかけら』を集めて『秩序レベル』を向上させよう!コンボすると『秩序レベル』の上昇が加速するぞ
テーマとの関連
カップル→愛→あい
風紀委員→腕章つけてるよね→わ
ハッカソン当日まで
今回のハッカソンのテーマは『あい』『わ』でした。このテーマに沿ったどんなゲームを作ろうかと事前ミーティングで話し合ったところ、カップル破壊ゲームのコンセプトが爆誕。亜種として『カップル射出ゲーム』も提案されましたが『リア充爆発しろ』ということで破壊ゲームが採用されました。
また、4班はUnityでの製作希望をする人でできたチームだったこと、isak君が3DモデリングのプロだったことからUnityで3DFPSゲームを作ることになりました。
そして当日に仕様などを会議する時間はないと思われたことから、各人員が何を作るかの打ち合わせもしっかりと行いました。
ハッカソン当日
(gitの履歴を見ながら書いてるのでプログラミング班に関する記述が多くなります)
9:00
ハッカソンスタート!
事前の打ち合わせ通り各員は作業に取り掛かります。
プ班は各種ゲームオブジェクトのクラスの作成を開始
9:48
スコア管理のScoreManagerクラス、
レベル管理のLevelManagerクラス、
時間管理のTimeManagerクラスが完成。
Fogrex君がゲームシステム、カシワデがUIを作り始めます。
10:24
Playerのスクリプトとプレハブが完成
10:57
isak君から愛破壊手榴弾のモデルを受け取り、実装
11:59
ゲームメイン画面のUIが完成
12:14
音を管理するSoundManagerが完成
13:03
良い感じの本館の画像をレンダリングしてもらいスタート画面完成
13:08
小物モデルを追加、愛破壊手榴弾の微変更、プレイヤー操作の調整
敵(カップル)に愛破壊以下略を当てたときの爆発を実装
14:37
愛のかけらを実装、オーディオ関連および敵の修正、クッションページの完成
ここで昼食タイム!マックとおにぎりで済ませて再び作業開始
15:30
リザルト画面、メイン画面の修正等
樹形図から推察するに、ここらあたりからコンフリクトの嵐、座標ズレ問題が発生していたと思われます(詳しくは後のFogrex記を参照)
17:05
全てのシーンでのコーディング等々が完成!製作の方法上、まだゲームは動きません。
pushやmargeを行わず、fogrex君のPC上で各プレハブの組み立てに入ります
プレゼンをisak君が作っています
17:15
なんとか完成!!!!!!やったぜ!!!!!!!!
発表
各員の努力のおかげで最優秀賞を獲得!!!
商品としてグラスをGET!!
総スタンプ数1位、スタンプ『プロ』3位、スタンプ『すごい』3位でした!
部内Game^3では
『スペースで飛ぶのたのしい!!!!!』
『マップが良い』
『ボクセルマップのクォリティが高い!!すごい!!』
『処理落ちしないのすごい』
などの感想をいただきました!!
本当にありがとうございます
発表後
打ち上げに歌志軒に行きました
カシワデは初歌志軒でした!(隙自語)
おいしかったです!
— カシワデ (@Kashiwade_music) 2019年6月22日
現在
班員が魔改造してるみたいですよ...
楽しみですね......!!!!!
班員の参加記
Fogrex
プロ班のFogrex
主にUnityでゲームシステムを作った
やったこと
- 得点管理クラス
- 時間管理クラス
- 各種ゲームオブジェクトのクラス
ゲームシステムとUIを分担して開発したのでその二つの間で残り時間やスコアを共有できるように事前に念入りに打ち合わせをした。統合の時にその辺のエラーは何も生じなかったのでとてもよかった。
発生した問題
- GitのConflict
- MagicaVoxel 座標ずれ問題
Gitのコンフリクトはヤバイ。解決策としてはきちんと.gitignoreは書いておくこと、Sceneは絶対にいじらず、すべてPrefabで管理すること。問題が起きてコミットを取り消すときはHardモードで取り消すこと(SourceTree)、Unityのアセットを使うときは最後までインポートしないこと、最後の作業はGitPushせず、誰かのパソコンで統合すること。
座標ずれ問題は最も頭を悩ませた問題。なんでずれるんでしょうかねぇ。ホント。MagicaBoxel側でいくら設定してもずれるのでUnityで設定するしかないのですが、これがまためんどくさい。空オブジェクト(ラップ)内にモデルを配置して、ローカル座標を調整して全体的には狙い通りのモデル座標になるように調節したわけですけども。ここでコライダーをラップオブジェクトじゃなくてモデルの方に設定したのが運の尽きだった。
階層
- ラップオブジェクト
- モデルオブジェクト(+コライダー+スクリプト)
衝突したときにスクリプトで衝突した座標位置を取得する必要があったのだが、モデルにアタッチしたスクリプトからラップオブジェクトを取得するというめんどくさいことをしなきゃいけなくなった。頭の中でこんがらがる。本来ならラップオブジェクトにコライダーとスクリプトを付けるべきだった。反省点ですね。
Kashiwade
プ班のカシワデです。
主にUIを担当しました。
やったこと
- UI
- シーン遷移
Unity使いたくてチームに入りました。僕は本業(得意分野)がサウンドなのですが今回はプログラム班として参戦しました。
今回モデリングがMagicaVoxelなので、それに合うようなUIをデザインしました。プレイヤーが違和感を感じなかったら泣いて喜びます。
ドローソフトはGIMPしか使ったことがなかったのでGIMPを採用。
Unityに関しては『Unity講習会』に出席した程度の経験しかなくほとんど素人同然でしたが、
ハッカソン本番までにブロック崩しもどきゲームなどを作って練習をしました。
この練習のおかげか、本番では大きな問題が発生することなく開発を終えることができました。
ゲームシステムを作るfogrex君になるべく負担がかからないように、UI部分で実装できて統合したときにエラーが起こらなそうなシステムはできるだけ実装しました。敵を爆破したときのスコア加算をUI表示する機能が動くかどうかは最後にプレハブを組み立てるまでわからないのでそこが不安でした。
反省点としてはメイン画面のUI配置のバランスの悪さがあげられると思います。カウントダウンは左下ではなく右下に置くべきだったかなー。
次回のハッカソンまでには†Unity強者†になっておきたい!!!!!!!!!!
isak
モデリング班(1人、班とは?)のisak(いさく)
やったこと
- MagicaVoxelを使った3dモデリング
- Unity用にパッケージ化
一応Unityを使いたいという希望でチームに入ったものの、自分がそこまでUnity強くないことと、僕がやらないとグラフィック0人という悲しいことになりそうだったのが理由でモデリング担当になりました。Unity使うからにはやっぱり3dゲームですよね。でも、ガチのモデル作ってたら1日なんてあっという間に溶けちゃいます。で、そこで登場するのがボクセルモデリングというわけです。簡単に説明すると3次元のドット絵です。2dではドットを一つずつ置いて絵をかきますが、3dではボクセル(box+pixel)という立方体を積み上げてモデリングをします。MagicaVoxelはボクセルモデリングに特化したソフトです。これを使えば簡単に見た目のいいモデルが作れます。コスパがいいとも言えますね。3dドットでなければ東工大のウッドデッキのモデリングなんて時間的に不可能でした。ありがとうMagicaVoxel
発生した問題
- MagicaVoxel Unityに最適化されていない問題
Magicavoxelには座標という概念があるようなのですが、オブジェクトをずらしてもUnity側では反映されたりされなかったりして結局よくわかりませんでした。この件ではfogrex君には非常に迷惑をかけました。すまんかった。 - UnityPackage化めんどくさい問題
MagicaVoxelには欠点があり、巨大なオブジェクトを作れない仕様があります。つまり、ウッドデッキのような巨大なオブジェクトは細かく分割してつくらなければいけません。MagicaVoxel上で配置はできるものの、Unityに持っていくためには一度objで出力する必要があります。しかし、objファイルは配置したオブジェクトのファイルの数出力されます。すなわち、Unity上で使うためには膨大なobjファイルをすべて読み込み、再配置しなければいけませんでした。これがまためんどくさかった。もっと大規模なものを作りたかったらMagicaVoxel以外のもののほうがいいかもしれません。
-画像載せたいマン-
Keisuke
サウンド班の桂透(Keisuke)です。班員は私だけです。
BGMと効果音を制作しました。以下長々と語っていきます。
効果音
BGMが作りたくて参加したのですが、今回のゲームが「爽快感重視」とのことで
「これBGMより爆発効果音の方が大事なのでは?」と思いました。
シンセで音作るかフリーの効果音加工すればなんとかなるだろう、
と思いつつも効果音の制作は初体験だったので下調べが必要。
というわけで「爆発で破壊する」をテーマとする様々なゲームの動画を漁り、
爆発の効果音をひたすら聴き込みました。
そんな中で最大のヒントを得たのは「ボンバーマン」
一部作品で、爆発音の中にキックドラムの音が混ざっているものがあり
「これだ!」と。
このヒントを元に、ハッカソン当日はスタート直後真っ先に爆発音を制作。
言い忘れてましたが制作環境は以下の画像の通り「Studio One 2」です。
ちなみにStudio Oneの最新版は4です。アップグレードサボりマン。
①フリーの爆発音を配置し、音の消え際を調整
②キックのサンプリング音を配置し、EQで低音を盛ってからコンプで軽く圧縮
③これらの音量バランスを調整し、マキシマイザーを強くかけて破壊力マシマシに
手榴弾は秩序レベルに応じて威力が増す、という予定だったので
爆発音は3つ制作しました。
それと、手榴弾を投げたときの音。
「ブンッ」って感じの音にするか「ピューン」って感じの音にするかで
迷いましたが、結局両方作って同時に鳴らしました。
「ブンッ」の方はフリーの効果音を少々加工しました。
軽い音にしたかったのでEQで低音をごっそり削っています。
「ピューン」の方はシンセで制作。
矩形波とノコギリ波を混ぜ、フィルターで高音域を抑えています。
と、こんな感じで特に滞りなく制作できました。
元から出来の良いフリー効果音を加工しただけなので
特別大それたことをやったわけではないですが、
初体験にしてはまずまずだったかなと。
実際に完成したゲームを遊んでみた感じ予想以上の連打ゲーだったので、
「ピューン」の音がちょっとうるさかったかもしれません。そこが反省点ですね。
BGM
効果音の方が大事じゃね?と思いつつももちろんこちらも抜かりはありません。
曲制作自体は自分でCD作る程度には経験がありましたが、
ゲームのBGM制作となると初体験。
それでもとりあえず以下の点を常に意識していました。
- ゲームのコンセプトにきっちり寄り添った曲にする
- なおかつ、単体で聴いても聴き応えのある曲を目指す
これらを踏まえてどんな曲を制作するか。構想を事前に練っておきます。
要点は以下。
①手榴弾で爆撃、秩序を正すといった要素から「軍隊行進曲」を意識
②爽快感を重視したゲームなので楽しい感じに
③勢い重視のゲームでもあるのでテンポも勢いよく
参考になりそうな曲もいくつか探しましたが、
中でも「やわらか戦車マーチ」を特に参考にしました。
10年以上前に制作されたネットアニメのテーマ曲。
太鼓の達人にも収録されているらしいです。
この曲の急所は開幕のメロディのこの部分。
メジャースケールを用いた曲ですが、開幕早々に
Ⅱ#というスケール外の音を用いています。(黒い部分)
このⅡ#だけでなく、Ⅰ#やⅣ#の音はメジャースケール内にうまく混ぜると
楽しさ全開のメロディになります。
ここを踏襲すれば狙い通りの曲になるでしょう。
また、軍隊行進曲自体は個人的にも過去に制作したことがあるので
その経験も活かせれば多分なんとかなるやろ、と思いながら当日に臨みます。
当日、爆発音を制作したあと、BGM制作に手をかけます。
ループBGMにする…予定でしたが、1プレイ1分のゲームにすると聞いていたので
1分丁度に終わる曲にしてやろうと試みます。
BPM160だと32小節の曲が48秒。ということは8小節×4区間の曲に
イントロ・アウトロを付与すれば丁度良くなるかな、と。
8小節×4区間というシンプルな構成にしておけば
「やっぱり30秒」みたいな急な変更も対応できるだろうと考えこの方針で決行。
メロディはトランペット、ルートはトロンボーンに。音源はKontakt収録のもの。
これらにシンセでノコギリ波をデチューンした音を薄く重ね、
ポップな印象を後押し。
この音色を振りかざしながらメロディ・ベースを制作。
-
イントロ
最初は大事。
「やわらか戦車マーチ」から得たヒントを元に、
開幕からⅣ#をぶっ込んでいます。
-
Aメロ
CメジャースケールだったイントロからCマイナースケールに変え、
"風紀委員"らしい厳格な雰囲気を押し出しています。
ルートはマイナーペンタをなぞるⅠ→Ⅲ♭→Ⅳ→Ⅴ→Ⅶ♭という進行。
手軽にクールにできるのでよく使います。
マイナースケールと言いつつもスケール外の音も多用して
メジャーっぽさを残しました。
-
Bメロ
Cメジャースケールに戻ります。
ここでもスケール外の音(黒鍵)を多用し、楽しさを強調。
変化を付けるためメロディはAメロより1オクターブ高い範囲。
-
Cメロ
ルートは強進行(完全4度上進行)連発で力強さを押し出します。
メロディはCメジャー、ルートはCマイナーという不思議な調性で
楽しさと重さを共存。最後はルートをⅢ♭→Ⅵ♭→Ⅰ#→Ⅳ#と動かし、
次の転調への伏線を張ります。
-
Dメロ
曲の終盤、ということはゲームの方もタイムリミットが迫ってくる頃。
ということで、メロディをあまり変えずに半音上への転調を連発することで
焦りを感じさせる曲調を目指しました。
ルートは最初Cの音から始めるつもりでしたが、
そうすると最後の音もCになって終止感が強くなりすぎてしまったので
転調してBから始まるようにしました。
工夫の余地が色々あって作ってて一番楽しかったです。
-
アウトロ
最後はCメジャースケールで楽しくスッキリ終わらせました。
こんな感じでトランペットとトロンボーンを打ち込みまして、
あとはスネアの音。BFD3の生ドラム音にEQとコンプ二段でガッツリ加工。
このスネアで16分を多用した手数の多いパターンを打ち込みます。
行進曲らしくなってきました。
トランペット、トロンボーン、スネア。
これだけでもBGMとしては成立するかなと思いますが、
曲単体では聴き応えがない印象。
あまりBGMを派手にしすぎるとゲームの邪魔をしてしまうかもしれませんが、
もう1つ楽器を足すぐらいならいいかなということで、ストリングを追加。
トランペットの隙間を縫うように、裏メロを追加していきます。
曲の情報量が増えて、いい感じになりました。
ドラムがスネアだけでは物足りないのでティンパニを入れようかと思いましたが、
ゲームプレイ中は低音モリモリの爆発音が鳴りまくることを考えると
自重した方がいいかなと判断。時間がなかったってのもある。
というわけで、シンバルだけ少々入れて終了。
最後はマスター。ステレオイメージャーでステレオ感を広げ、
マキシマイザーで3dBほど潰して完成。
反省
割と余裕ぶっこいて色々やってたBGM制作ですが、
完成が時間ギリギリになってしまいました。
上述した爆発・投擲以外にも効果音をいくつか用意したものの
プログラム班の完成もギリギリでそれらが使用されなかったので、
使わなかった効果音を制作してる時間を
BGMに充てていればもっと余裕があったはず。
ということで、反省点はプログラム班とのコミュニケーション不足。
プログラム班がサウンド班の気を遣ってる余裕はないと思うので、
こちらの方からもう少し積極的にアクションを起こすべきでした。
そんなこんなで、初めて経験することが色々ありましたが大変勉強になりました。
次の機会にこの経験が活かせるようにしたいと思います。