イベントのレポート(メモ)です。
参加したのはこちら「Global Game Jam 2020」
参加した会場はヒューマンアカデミー 秋葉原校さんです。
他の会場はこちら
会場ごとにハッシュタグが分かれているので、興味のある方は追ってみてください。
Global Game Jamとは
世界各地で同時に開催される大規模なゲームジャムです。
毎年1月末に行われ、テーマは直前に発表されます。
タイムスケジュール
事前にタイムスケジュールは公開されていました
1月31日(金)
18:30 開場
19:00 開会式
19:30 開発開始
22:00 企画発表(1チーム2分)
2月1日(土)
18:00 中間発表(1チーム2分)・ピアレビュー(参加者同士の試遊会)
2月2日(日)
15:00 開発終了・アップロード
17:00 作品発表会(1チーム5分)
18:00 閉会式・懇親会
20:00 懇親会終了
21:00 完全撤収
1日目
基調講演&テーマ発表
要約すると健康に気をつけろという内容。
・休憩をとれ(2時間に15の休憩)
・お互いに気を配り、何が必要か伝える
・集中できる環境を作る
なぜこんなに健康を推すかというと訴えられないようにするためらしい。
今年のテーマは「Repair」です
チーム
会場側ですでにチーム分けがされていました。私は7人組のチーム3です。
内約はプランナー1、サウンド1、プログラマー5。内3人が学生。
(2日目からプログラマーが急用のため一人離脱しました)
ゲームエンジンはUnity 2019.3.0f6、バージョン管理はGit、ホスティングサービスはGitHub。
コミュニケーションツールはSlack、タスク管理はTrello。
Trelloは付箋をつ付け貼りする感覚で使えるタスク管理ツールです。
どこまで終わっているのか、どのタスクが残っているかを可視化できます。
Unityのバージョンは秋葉原会場のSlack内で2019.3.0f6が推奨されていたため、
開発時に苦労することはありませんでした。
企画
ブレインストーミングからアイデアを出し、どれがいいか投票をして決定。
その後は具体的なメカニクス、ゴールの設定などを深堀していき仕様を固めて。
各要素ごとに役割を分担しました。私の担当はUI周りです。
企画は「カワイイは心のリペア」をコアに、かわいい女の子がでるゲームになりました。
内容としては女の子が服を拾ったり、おじさんに奪われたりしつつ彼氏との関係を修復することです。
↓は初期のイメージ画像
UI作成
プランナーの方から画面のラフ案をいただいて、それ通りに作っていきます。
せっかくのチーム開発なので、MVPパターンで実装しました。
PresenterがModel(キャラクターとか)の状態に応じてView(UI)を更新するシステムです。
見よう見まねでやったのでなんか違うかも。
2日目
ユニティ・テクノロジーズ・ジャパンさんより、缶パン(乾パンじゃないよ)が届きました。
他にも回復アイテムがいっぱい!
去年と同じパンですが今年は一味違います!
つい最近LINEスタンプでUnityチョットデキルが発売されましたが、
そちらのシールがおまけとしてついてきます!
今回のGGJ2020 国内会場で配布するUnity P–CAN(缶パン)には先日新登場した「Unity チョットデキルスタンプ」のステッカーが1枚封入されています! 何が当たるかは当日のお楽しみ! #ggj2020 pic.twitter.com/U3m4P4Rojn
— ユニティ・テクノロジーズ・ジャパン (@unity_japan) 2020年1月27日
UI作成
ゲーム画面
初期ラフ案はこんな感じ。
要素を分けると以下の5つ
・タイマー
・ライフ
・スコア
・スタミナ
・アイテム
Modelに当たる部分は他の方の担当なので、ViewとPresenterを作成します。
View
Viewには画面の更新処理を記述します。
今回のゲームはゲームパッドで操作するため、View側でイベントが発行されることはありません。
Presenter
PresenterはModelとViewの橋渡しをする存在です。
これでModelのパラメーター(ReactiveProperty)が変更されるとPresenterがViewを更新するようになります。
これと同じような感じで残りの4つのUIも作ってしまいます。
本当はインターフェースとかも使うらしい。
タイトル画面
何かボタンが押されたらシーン遷移する簡単もの。後でブラッシュアップしました。
チュートリアル画面
ゲーム開始時にチュートリアル画面を出します。
この時キャラクターが動かないようtimeScaleを0にしましたが、他のコルーチンも全て止まるため断念。
代わりにUniRxで状態管理を行うようにしました。
リザルト
初期ラフ案はこんな感じ。
しかし、ライフやスコアは常時ゲーム画面に映っているため
わざわざリザルトで出す必要性がなく廃止されました。
最終的にはボタンプッシュを促す簡素なものに。
スタートカウント
チュートリアル画面後にカウントダウンが始まってからゲームが開始します。
カウントダウンがだんだん早くなるようにしたのはただの遊び心
中間発表会&懇親会
この時点ではメインシーンのみとりあえず遊べる感じです。
懇親会ではピザとシャンメリーとリンゴジュースがでました。
飲み物にはVTuberのイラストがついています。
これらはスポンサー様の信州油屋清右衛門さんによるものです。
懇親会後も少し作業を進めて、タイトル→ゲームまで推移できるようにしました。
3日目
UIまわりは大方できたので、
最終日の作業は他オブジェクトとの連携とブラッシュアップがメインです。
ブラッシュアップ
残り時間がわずかのため、大幅にコードを書く作業ではなく演出強化系の要素をいくつかいれました。
アイテムエフェクト
アイテムを取ったときにエフェクトを追加しました。エフェクトはアセットストアから。
エフェクトの設定はこちらを参考にしました。
ParticleSystemのPlay On Awakeにチェックを入れると自動的に再生されるようになり、
Stop ActionをDestroyにすることで再生終了後にParticle Systemが自動で削除されます。
Scriptで管理する必要がないため、使い捨てのエフェクトをポンと出したい時に便利。
画面揺らし
プレイヤーがおじさんにぶつかった時に画面を揺らします。
個人でやる場合はCamera Playなどを使いますが、今回はこちらを使用しました。
タイトルロゴのアニメーション
一見ただタイトルロゴですが、Kawaiiのi二つがぴょんぴょん跳ねるアニメーションを入れました。
タイトル画面背景のUVスクロール
こちらは最終コミットに間に合わなかった部分。
タイトル画面の背景は直前に追加されましたが、動きがないのは寂しいのでスクールさせました。
完成品
完成したものがこちらになります。
説明文:
ある日、女の子と彼氏が喧嘩。彼氏が激昂し、彼女の私物をマンションの80階から地上に撒き散らしてしまった!しかも、家を追い出されてしまう始末! 出来るだけ私物を回収して、彼氏との絆を修復させよう!アイテムが散らばるフィールドには変なおじさんがたくさんいるぞ!捕まってしまうと、服を剥ぎ取られてしまう!(エンディング分岐あり)
簡単に説明すると、おじさんから逃げながらフィールド内に散らばっている服を集めるというもの。
ルールとして、
・服がそのままスコアになる。
・服を集めれば集めるほど移動が遅くなる。
・おじさんにぶつかると服が奪われる
・奪われる服がなければライフが減る
・おじさんはスコアに応じて増える
・ライフが無くなるか時間経過でゲーム終了
一連のプレイはこちら(ブログに載せるため、フレーム数を削減しています)
ゲームジャムでは世界観やストーリーを作りこむ余裕がなかったりしますが、
なんとエンディングとエンディングソングが3種類あるという充実っぷり。
・一定スコア以上でクリア → ハッピーエンド
・一定スコア未満でクリア → バッドエンド
・ライフが0になりゲームオーバー → おじさんエンド
そのうちUnity Roomにアップロードされるかも。されました。
発表会&懇親会
終了後は発表を行い懇親会へ。
懇親会のスポンサー様はオルトプラスさんとゲームクリエイターズギルドさんです。
体験会
懇親会後はゲームの体験会が開かれました。
Za Janku Mairu
Za Janku Mairu | Global Game Jam
壊れた車でより遠くを目指すゲームです。おかしい挙動を如何に活かすかがポイント。
タイヤやエンジンなど複数のパーツを組み合わせることができる。
ほとんどの場合ひっくり返って動けなくなりますが、稀に高速飛行する組み合わせがあるため、
ボードゲーム
タイムスリップ系ボードゲームで、彼女に告白をし成功させることが目的です。4人で遊べます。
先に告白を成功したプレイヤーが勝ちです。
プレイヤーの取れる行動は、全員を有利にするか不利にするかのどちらかなので、
どのタイミングで告白するかというのが重要そうです。
R.R.R. (Remove Reuse Repair)
R.R.R. (Remove Reuse Repair) | Global Game Jam
工場でおもちゃを修理するゲームです。
おもちゃはクマのぬいぐるみ、車、ロボットの三種類でそれぞれパーツが異なります。
ベルトコンベヤーからパーツが流れてくるので回収、
作れるものがあれば必要なパーツを載せて流していきます。
このゲームは最大4人までのマルチプレイができ、
お邪魔キャラとして、犬(プレイヤーの動きを止める)とロボット掃除機床のパーツを回収)がいます。
こちらのチームにはとりすーぷさんが在籍しており、開発は設計から行っています。
その時の知見はQiitaでまとめられているのでこちらもぜひぜひ。
Planet Pocket
Planet Pocket | Global Game Jam
唯一のVRゲーム。惑星の修復を行います。
操作方法は銃を撃つ感覚で星にエネルギーを送り、無事送り届けられればクリア。
3回ミスするとゲームオーバーです。
宇宙のSkyBoxと星座をつなぎ合わせたようなUIテキストがとてもいい味を出しています。
Racing repairs
Racing repairs | Global Game Jam
二人対戦ができるレーシングゲームです。
車がだんだん壊れていくため、 パーツを拾って修理しながら進んでいきます。
壊れたままだと移動速度がものすっごい遅くなります。
(この状態だとバック走行の方が速いらしい)
修復先生 - Homeroom repair -
修復先生 - Homeroom repair - | Global Game Jam
生徒の関係性を修復し学級崩壊を防ぎゲームです。
席替えや、生徒の趣味嗜好を変化させてクラスの雰囲気を良くしていきます。
生徒はガリ勉、エース、不良、ギャルなど。
基本的に同じタイプの生徒を固めてあげればいいですが、
エースに限ってはライバル意識で反発するので離す必要があります。
趣味は同じもの同士であれば仲が良くなり、きのこ⇔たけのこ、
Mac⇔Windowsなど相反するものについては悪くなります。
私の場合、Mac好きのギャルを中心に回りをMac好きで囲む(Macサーの姫)戦法で無事クリアできました。
卒業式を迎えるとクリアですが、現状↓の画面で止まってしまうようです。
他の方の感想ブログとか
#ggj20_human #GGJJP #GGJ2020
— satonoi/*+*\ (@satonoibump) 2020年2月4日
プログラムのことはよくわからないコンポーザーの自分がGGJ参加5回目にしてチームリーダーを務めた時に、意識をしたことをまとめてみました。
今回は割と自分のアイデアを前面に押し出しましたが、結果としてすごく上手く行きました。チーム全員に感謝してます pic.twitter.com/d3O4p6uIzE
間違っている箇所、消してほしいツイートがありましたらコメントにお願いします。