Unity1週間ゲームジャムに参加した話
Unity1週間ゲームジャムに参加しました
↑ これのことです。
参加のきっかけとしては、前々からイベントの存在は知っていたものの、時間の捻出が難しく頓挫してしまっていたところ、コロナ禍で在宅勤務になり、時間の確保が可能になったことと、たまたま開催前にスケジュールを知ることができた*1ので、「それじゃあやってみるか」となったのがきっかけです。
完成品はこちらです。(PC推奨です)
コーヒーカップ・ヘリコプター | フリーゲーム投稿サイト unityroom
というわけで、今回のイベント参加の感想を日にち事に平日か休日かの記載を併記して書いていこうと思います。
※注意! 技術的な話より、こんな感じだったよ~という体験談がメインの話になります。
1日目(平日)
環境構築とアイデア出しを仕事の後にしました。
環境についてはせっかくなのでちゃんとやろうと思いGithubをSourceTreeに連携させてバージョン管理を行えるように構築しました。*2
そのほかにも、WebGLでビルドするように設定したり、3Dモデルを作ろうと決めてたのでBlenderをインストールしたりしました。*3
環境構築はスムーズにいったのですが、アイデア出しは大変迷走し、睡眠時間がガッツリ削られてしまいました。*4
テーマの「回」という文字から、下記に記載した当時のメモを見れの通り迷走していましたが、最終的に「コーヒーカップで空を飛ぼう」という結論に至りました。
アイデア
・回転して形を合わせて奥に進んでいく
→シンプルで作りやすそう テーマにも合ってる
・メイドインワリオの車輪回して橋渡しするゲームのインスパイア
→にぎやかにしやすそう テーマにも合ってる
・ベルトコンベアから流れてくる炎をバルブで勢いだけ変えれる放水で消火
→独創性はピカ一 若干テーマから遠い
・回転する人が武器持って暴れるストレス解消系
→既存にあったらしい 回転には合う
・コーヒーカップヘリコプター
→独創性〇 テーマにも合う
→採用!!!!
そんなこんなで方向性を決め、一日目は終了しました。
2日目(休日)
この日は祝日で時間があったので、とにかく動くものを作ろうという目標の元、動きました。
今回のイベント参加の動機の多くを占めるのが「勉強」なので、業務で使用している2D技術よりも、3Dの技術を使用し、アクション性を高めることで当たり判定などの3Dの要素と向き合おうと思い、積極的に使っていきました。*5
そのほかにも、カメラの分割や、スマホ、PC両対応のスワイプ操作*6の受付など、ゲームの実現のために必要なことを学び、導入していきました。
そして最終的に下記のような見た目の簡素なプロトタイプが完成しました。
Unity1週間ゲームジャム 20210222 プロトタイプ版
この時点でゲームとしては割と成立していたので面白かったです。(小学生)
時間が余ったので、Blenderでコーヒーカップ・ヘリコプター(自機)のモデル作成を行いました。*7
ちょっと形が荒いけど、シンプルな見た目のものなので十分だと自分に言い聞かせ、完成としました。*8
3日目(平日)
これ以後も平日は基本的に時間がないので、作業は少なめになります。
2日目に作成したモデルを取り込み、ゲームに反映させ、アニメーションを付けました。
モデル取り込み、反映は過去に自主学習で実施したことがあったので、BlenderからFBXファイルを吐き出し、取り込み、表示させるという手順ですぐに完了しました。
アニメーションの方も、2Dで経験していたので、特に難しいこともなく実装できました。*9
モデルの色なんかも調整してそれっぽくなりました。
4日目(平日)
この日はアイテムや敵、背景のアセット(ここでは3D素材)を検索して取り込み、見た目をそれっぽくしていきました。
ここで苦戦したのは、AssetStore*10でいい感じのアセットをうまく検索できなかったことです。
というのも、検索は主に英語で行う必要があるため、たとえば「日本茶」のような日本由来のものはうまく検索しづらく、検索できたとしてもいい感じのアセットがあるとは限らず、見つからなければアイデア練り直しだからです。
特に敵のモデルを考えるのに大苦戦しました*11が、最終的に「寿司」を敵にして、「回転界のライバル」とか適当に世界観をでっちあげました。
また、飛行している感を出すために背景をスクロールさせたり、パーティクルを使用して敵やアイテムを光らせて判別しやすくしたりしました。
ゲームのメイン画面はおおよそ出来上がりました。
このとき、見た目上の世界観が広がったことや、ゲームバランスについても考える余裕が出てきたことから、
・燃料(切れると操作不能)のシステムを導入し、アイテムを燃料回復、敵を即死じゃなくて燃料減少にする
・スコアを距離にする
・スタートが唐突なので開始前にカウントを入れる
のようなアイデアも考え付きました。
5日目(平日)
前日に思いついたアイデアを実装と、UIの調整を行いました。
前日に思い付いたアイデアのうち、燃料についてはUIを直感的にわかりやすくする必要があると思い、バーの長さで表示できるようにしました。
そのほかタイトル画面とゲームオーバー画面を作成し、ゲームの画面遷移を行えるように実装しました。
今後*12実装予定の機能もボタンだけおいておきました。
フォントなんかもフリーのフォントを探し、追加して見た目を整えました。
タイトル画面
メイン画面
ゲームオーバー画面
UI調整は実際に業務でやっているような内容なので、何の問題もなくスムーズに実装できました。
ゲームの一連の流れとしては、完成ともいえる段階になったので俄然テンションが上がったのを覚えています。
6日目(休日)
7日目は用事があり、作業着手できるかわからないので、この日のうちに投稿までしたいと思っていました。
なのですることがいっぱいありました。*13
ランキング機能、ツイート機能の実装
こちらは上記の1週間ゲームジャムのサイトにサンプルがあったのでせっかくならと実装してみました。
パッケージを取り込み、ランキング用環境を構築し、ソースコードを書き換えるというだけで簡単に導入できたので便利でした。
ただし、プロジェクト内のパスがぐちゃぐちゃになったので、ゲーム作成前にやっておいた方がよかったかもしれません。*14
BGM、SEの導入
他のゲームを参考に、下記の魔王魂様で素材を探しました。
許諾周りがめちゃくちゃ簡単だったので便利でした。
この中から、各画面のBGMと必要そうなSE*15をチョイスして音が鳴るように仕込んでいきました。
遊び方画像、配布サイトで表示されるアイコンの作成
フォトショとか持ってないので一番大変でした。
結局画面をUnityに構築して、Windowws内臓のペイントにスクショを張り付けて切り貼りするという方法で作成しました。
アイコン
遊び方
遊び方の文言は差し替えできるようにゲーム内で後入れしています。
ゲームバランス調整
このシンプルなゲームで何を調整するのか?とも思うかもしれませんが、現状アイテムや敵の出現を乱数でのみ制御していたり、燃料の減少量やアイテムでの回復量など完全に適当にしていたので運ゲーと化しているのです。
そこで下記の指針を作成し、それに従って数値を調整しました。
・ミスしなければ無限に飛べ、ミスすると簡単に落下するようにする
・まれに燃料が切れた後の落下先にポットが出てきてリカバリがきく時がある
・敵は多めの代わりにアイテムの回復量は強くする
ビルド&投稿
ここで手間取ると問題だと思いましたが、WebGLでのビルドは、業務でもやっていたのでスムーズに行え、投稿もUIが大変親切なのでスムーズに行えました。
これで最悪明日丸々一日使えなくても問題ない程度のものをアップできました。
7日目(休日)
〆切かつ公開日です。
夕方ぐらいに家に帰れたので、20時の公開まで時間があったので、少しパソコンに向き合いました。
実環境でのテストプレイ中にいくつか気になる不具合や仕様があったので修正しました。*16
また、この時に気づいたのですが、どうもスマホではフレーム落ちして動作が厳しいようでした。*17
完成系*18
そして20時にゲームが公開され製作期間は終わりを告げました。
他にも多くのゲームが投稿されており、この時も相互評価もかねてプレイをたくさんしています。
総合
なんにしても一本作品を作ることで見えることがめちゃくちゃ多いので、大変勉強になりました。
モデル作成や、カメラワーク、ゲーム全体のシーン遷移など業務ではなかなか触れられず、学べなさそうなことにたくさん触れられたのも楽しかったです。
今回見えた総合的な課題としては、
・デザイン系のセンスが著しく低い
・実際の環境や、スペックなどの考慮を意識する
という二点が主に挙げられると思います。
デザイン系については、世界観を完全に構築するなら、3Dでも2Dでもモデルの自作が可能な数は多い方が表現しやすかったり、上記のアイコンなども魅せ方がイマイチでゲーム性などが伝わりにくいです。*19
環境、スペックの考慮は、なまじスペックの高いPCを使用していたので、スマホや低スぺの意識が抜けており、FPSや描画負荷の調整などを怠った*20のも問題だったと思いました。
というわけでいろいろ参考になったので、機会があればぜひまた参加したいと思いました。
ただ、時間の捻出はやはり大変だったので、次回以降参加する場合は初参加でモチベが保ててたところを何とかするのも課題だと思います。*21
俺の作品をみんな遊んでくれ~!!!!!
ーーー
おわり
*2:結論から言えばほぼほぼ不要だった
*3:非エンジニアの方はわからない横文字は読み飛ばしてください。
*4:睡眠時間が削れるのがほんとーにつらかった。
*5:とはいえ認識していないことはできないので、3D初心者の自分でも把握している程度の内容です
*6:最終的にはPCでしか満足に動かなくなってしまいましたが・・・
*7:勉強目的だけど、こんなアセットは存在しないと思ったのもある
*8:凝りすぎたら一週間で終わらないと思ったので
*9:ヘリコプター部分を回転させた。
*10:Unityにモデルなどの各種素材を取り込ませてくれる公式のストア。無料のものも有料のものもある。
*11:ほーんとに何にも思い浮かばなかった。コーヒーカップの敵ってなんだよ。
*12:といっても明日明後日
*13:後工程に押し付けすぎ
*14:パッケージ側の指定するパスと自分の作成したファイルのパスが混ざった
*16:ランキングがおかしい、SEがうまく再生されない、開始前のカウントの数え方に違和感がある等
*17:ガタガタで入力が反映されない
*18:この動画のみ録画環境を変えたので少し処理落ちしています
*19:何をするゲームかわからない
*20:というより思いつきもしなかった
*21:期間中本当に眠かった