【Unity1週間ゲームジャム】2021年の最後にゲームを作っていた

【Unity1週間ゲームジャム】2021年の最後にゲームを作っていた

明けましておめでとうございます!
To Display編集部のカピバラッコです。

2021年はnoteを始めたり、無職になったり、To Displayを始めたりと激動の1年でした。
終わってみれば、いろいろあったなと思います。
2022年はさらにどうなっているのか分かりません。
ですが、私は1年の抱負を決めても忘れるタイプなので、なるようになるはず!

2022年を迎えましたが、年末を目前に控えたタイミングで個人的なトピックがありました。
今回は、私カピバラッコが1週間かけて、ひそかに取り組んでいたことについてご紹介します!

Unity1週間ゲームジャムに参加したよ

実は私、2021年12月20日から開催されていた『Unity1週間ゲームジャム』に参加していました。
この記事では、ゲームジャムというイベントに参加していた様子を振り返っていきます。

Unity1週間ゲームジャム とは

ゲームジャムという単語を聞きなれない方も多いのではないでしょうか。
簡単に説明すると、ゲームジャムとは決められた期間内にゲームを作るというイベントです。
例えば、世界一の規模を誇る『Global Game Jam(グローバルゲームジャム)』では世界各国のクリエイターが一斉に3日間ゲームを作ります。全世界で同時にゲームのテーマが発表されるので、当日は大盛り上がりなんですよ。

今回参加したUnity1週間ゲームジャムはタイトルにもある通り、1週間でゲームを作ります。
しかも、毎回テーマが決められていて、過去には「」や「ちゅう」といったお題がありました。
お題は毎回、開催初日の0時にサイトで発表されます。
私もソワソワしながら12月20日の0時にサイトを確認していました。

21回目の開催となる今回のお題は『』です!
Twitterでも、多くの人が「正」をテーマにしたゲームのアイデアに頭を悩ませていました。
こんな感じで、限られた期間で一斉にゲームを作ってみんなで遊ぶのがゲームジャムです。

Unity1週間ゲームジャムの『Unity』は何?

1週間ゲームジャムのことは分かったけど、『Unity』って何?って思いますよね。
イベントを主催している企業かと思うかもしれませんが実は違います。

もしかしたらゲームが好きな方や、3DCGに興味がある方なら聞いたことがあるかもしれません。
Unityとはゲームエンジンと呼ばれる、ゲームを作るためのソフトです。
初心者からプロまで幅広いゲームクリエイターが使っていて、多数の有名なゲームもUnityで作られています。

Unity1週間ゲームジャムではこのUnityを使ってゲームを作ります。
こういったゲームエンジンがあるからこそ、たった1週間で立派なゲームが作れてしまいます。
技術の進歩ってすごいですよね。

さて、ここからは私が1週間かけてゲームを制作した様子をご紹介します!
ぜひ最後までお付き合いください!

私が作ったゲーム

その前に私が制作したゲームをご紹介します!
その名も、『一を止めて正を作る』です!

▼▼▼ プレイはこちら!
https://unityroom.com/games/create_sei
※ パソコン推奨

お題の「正」が使われていることは一目瞭然ですね。
1プレイに1分もかからないくらい手軽なのに、何度も遊べるゲームを目指しました。
ぜひ一度遊んでみてください!

すでにイベントは終了していますが、Twitterアカウントでログインすればコメントや評価もしていただけます。
誰が評価をしたかは分からないので、率直な意見をいただけるとありがたいです。
今後の参考にさせていただきます。

他にもたくさんのゲームが公開されているので、いっぱい遊んでみてください。

ゲーム制作をスタート!

前述の通り12月20日にお題の「正」が発表されました。
ゲーム制作と言っても、どんな作業をするのかイメージしづらいですよね。
全体の流れを大まかに説明すると、

ゲームの企画・仕様決定、制作、デバッグ、リリース

と進んでいきます。

本来は「制作」をプロトタイプ制作(試作品制作)、α版、β版と段階を分けて作っていきます。
デバッグは完成品に不具合がないか確認し、バグを修正する作業です。今回は時間がないので省略しました。

それでは、流れに沿って制作をはじめていきます!

企画書をつくる

まずはどんなゲームを作るのか決めるアイデア出しという作業をやっていきます。
本来はいろいろな手法を使ってアイデアを考えるところなのですが、今回はわずか5分でひらめいてしまいました。それがまさに『一を止めて正を作る』です。

漢字の「止」の上に漢数字の「一」を加えれば「正」になるじゃん!と気づいた瞬間に、
飛んでくる「一」を「止」の上で止めて「正」を作ろう!と思いつきました。
私はこれくらい思いつきの方が好評なので、今回もひらめきを信じることにします。

アイデアが浮かんだので、今度はもう少し具体的なゲームの形にします。
これが「企画」という作業です。
企画では、どんなゲームなのかパッと見て分かるように『企画書』を作ります。
といっても今回の企画はわざわざ書類にまとめるほどでもないんですけどね…。

一応作成したのがこちらです。

あまりにもシンプルすぎて、何にもこだわらずに30分程度で作成しました。
本当はもっと情報量を多くしないと企画の意図が伝わらない事故が起きてしまいます。
ですが今回は私1人で考えて作るため、足りない情報は補いながら進めていきます。

なら、なぜ企画書を作ったんだと思いますよね。
それは、ゲームの核となる部分だけでも形にしておきたかったからです。
記憶だけを頼りにしていると1週間後には全然違うゲームを作っているかもしれません。
企画がブレるとゴールもブレてしまうので、スタート地点となる企画は書類として残します。

仕様書をつくる

企画書を作ってゲームのイメージができたら、今度は設計図を作っていきます。
しかし、その前にどんな機能を作るのか決めないと設計図は書けません。
今回作るゲームに必要な機能についてざっくり書き出していきます。

・「一」を動かす機能
・クリックしたら「一」を止める機能
・「正」の形になったか判定する機能

ここまでが、企画を実現するために必要な機能です。
そして、少し視野を広げてみましょう。

・タイトル画面
・リザルト画面(点数の表示画面)

大抵のゲームにある、おなじみの画面です。

ざっくりと絶対に必要な機能だけ並べてみました。
その他にも、BGMとか効果音をつけたり、点数をツイートする機能があったら嬉しいですよね。

上記のような機能を「仕様」と言います。

ものすごくシンプルなゲームでも、これだけやることがあります。
さらに、プログラム的にはもっと細分化しないと作れません。
(今回の記事ではプログラムのことについて詳しくは書かないのでご安心ください。)

本来なら『仕様書』にまとめるのですが、今回は時間がないのでまとめていません!
その代わり、プログラムの設計図を書きました。
それがこちらのフローチャートという図です。

簡単に説明すると、

ゲーム開始(タイトル画面の後)から終了(リザルト画面に変わる前)までの流れ

を表しています。
よーく見ると「ステージ1〜5」とありますね。
実は当初の予定では「一」の動きにバリエーションを持たせて5ステージ作る予定でした。
しかし、いざやってみると時間が足りなくなってしまいました…。

ちなみにスコアの計算はこの時は決まっておらず、数字はテキトーです。
実際にゲームをプレイしてみると全然違う点数になります。

このようにしっかり準備しておけば悩む時間が減って作業しやすくなります。
1週間という限られた時間だからこそ、基礎工事は大事なんです。

ちなみにここまでの作業時間はおよそ1時間です。

アップロードテスト

今回完成したゲームは「unityroom」というウェブサイトで公開します。
しかし、いざ完成したゲームをアップロードしようとして、トラブルが起こったら大変ですよね。
そこで、試しになーんにもしていない状態を完成品としてアップロードしてみます。

まずはUnityを起動して、プロジェクトというモノを作ります。
このプロジェクトに、画像を設置したりプログラムを書いたりしてゲームを作ります。
当然最初は何もないので、画像のように真っ青な画面です。

この状態でアップロードしてもいいのですが、ここは慎重に確認したいところ。
念のため、クリックもちゃんと反応するのかテストしてみました。
今回作るゲームはクリックさえできれば問題ないですからね。

クリックをしたら数字が増えるプログラムをササっと書いてアップロードしてみます。
実際にアップロードしたものがこちらです。

問題なく表示されて、数字も増えています。
これでひとまず安心。
ここまでがゲーム制作の準備です。

まずは一番大事なところから作る

ここからはいよいよゲームを作っていきます。
ここで重要なのがどこから作り始めるのかです。

ゲームは普通、タイトル画面から始まりますよね。
ではタイトル画面から作っていくのかといえば、そうではありません。
いきなりタイトルに時間をかけてしまうと、肝心のゲームを作る時間が無くなってしまいます
計画性がなさすぎと思うかもしれませんが、これはメチャクチャよくあることなんです。

それを未然に防ぐため、まずは遊ぶ部分から作っていきます。
今回のゲームで遊ぶ部分といえば、棒が飛んできてクリックで止まるところですね。

まずはこれさえできれば、タイトル画面やスコアがなくてもゲームといえるでしょう。
いきなり始まるし、遊んでくれた人が「キレイな正ができた!」と満足すれば終わりのゲームになってしまいますが…。

棒が飛んできてクリックしたら止まる

まずは、棒が飛んできてクリックしたら止まるようにしていきます。
棒を動かすだけならそんなに難しくありません。
画像を配置して、少しプログラムを書けば出来上がりです。

(棒と言いながら正方形が動いていますが、これは仮の画像です)

棒が動いたら、次はクリックしたら止まるようにします。これも簡単です。
クリックしたことが分かる機能を使って、動いてる棒に止まるよう命令するだけです。
あとは、背景に「止」の画像を置けば最低限のゲームが完成します!

これでもまだチープですね。もう少し見栄えを良くしていきましょう。

演出を加えて飾り付け

まずは、いきなり棒が動き出すと初めて遊ぶ人がビックリしてしまいます。
しかもどうすればいいのか分からないですよね。
最初に「棒を止めるんだよ」と、「これから開始するよ」を伝えるため演出を追加します。

実際に飛んでくる棒と同じように、「一を正しい位置で止めよ!」と表示してみました。
文字だけで表示するよりもアニメーションがある方がいいですからね。
そして、説明文の後に開始前のカウントダウンも追加しました。
これで少しは親切な始まり方になったかと思います。

次は、ゲームが終了したことも分かりやすくしたいですね。
いきなり画面が切り替わったら感じ悪いので、「終わったよ!」と伝えます。

このゲームのコンセプトは「交通」なので、踏切が降りてくるようにしました。
ちょっと脈絡がないので強引かもしれませんが、1週間しかないので気にしません!

あとはタイトル画面と、スコアを表示するリザルト画面を作ればゲームらしくなります!

タイトル画面とリザルト画面は構造

遊ぶ部分ができたので、次はゲームらしくしていきます。
まずは、完成したタイトル画面とリザルト画面をご覧ください。

タイトル画面とリザルト画面は全く違うように見えますが、実は同じ構造で作っているんです!
どういうことか詳しく説明していきますね。

小さなこだわりが隠されたタイトル画面を作る

まずはタイトル画面を作っていきましょう。
大ざっぱなデザインを決めていきます。
タイトル画面に必要なものといえば、当たり前ですが「ゲームのタイトル」です。
なるべく真ん中に大きく表示したいので、ギリギリまで広げます。
とりあえず大きさのイメージを確認するために文字だけ表示しておきます。

続いて、タイトル画面から先ほど作ったゲームの画面に切り替わるようにしていきます。
ここで重要なのが、どのタイミングで画面を切り替えるのか です。

数秒待てば勝手に切り替わったり、エンターキーを押したら始まるようにもできますが、
私はいつもゲームを作るときに意識していることがあります。
それは、ゲームの操作を統一することです。

例えば「エンターキーを押したら始まる」にしたとしましょう。
そうすると一度マウスから手を離す必要があるので煩わしいですよね…。

ではゲームの操作を統一するように考えてみましょう。
今回のゲームでは、飛んできた棒をクリックで止めていました。
タイトル画面の操作もゲームに合わせてクリックにすれば、マウスだけでゲームが遊べます。
このようにゲームの操作を統一することで煩わしさがなくなりましたね。
ということで実際にクリックしたら始まるようにしました。

しかし、このままだと初めて遊んでくれた人がどうすればいいのか分かりませんよね。
不親切なのはよくないので、「クリックで開始」という文字を表示します。
ついでに文字を点滅させたら、よりゲームっぽくなりました。

タイトルの画像などを加えて完成した画面がこちらです。

ちなみにタイトルのアニメーションが終わるまではクリックしても反応しないようにしています。
やっぱりタイトルだけでも覚えてもらいたいですからね。
「クリックで開始」の文字もタイトルのアニメーションが終わるまで表示されません。

タイトル画面をもとにしてリザルト画面を作る

続いてスコアが表示されるリザルト画面です。
スコアは棒を止めた時に計算しておいたので、こちらの画面では表示だけを行います。

こちらもゲームらしさがほしいのでスコアをいきなり表示していません。
数字が勢いよく上がっていったら、良いスコアが出せたのでは!?と期待しますよね。
おまけに自己ベストも表示されるようにしています。

自己ベストが見えると、さらに高得点を狙いたくなりますね。
そんな方のためにリザルト画面からタイトル画面へ行けるようにします。
図にするとこんな感じです。

ゲームがぐるぐるとループしています。
このようにゲーム画面がループすれば無限に遊べますね。
ではリザルト画面からタイトル画面に切り替わる機能を作っていきます。
といってもこの機能はもうすでに完成しているも同然なんです。

タイトル画面で作ったゲームの画面に切り替わる機能をリザルト画面に持ってきます。
もちろん行先はゲーム画面ではなくタイトル画面なので、そこだけ修正します。
実際にできた画面がこちら。

タイトルと同様にスコアも見てほしいので、表示が終わったらクリックできるようにしています。

同じように作りましたが、見た目は全然違いますよね。
もっとこだわればタイトル画面もリザルト画面も複雑になっていきます。
今回は1週間しかないので、タイトル画面を流用して工数を減らしました。

1つだけリザルト画面にも工夫したところがあります。
それがTwitterのボタンです。このボタンはタイトル画面にはないので作りました。
ぜひ遊んでくれた方はツイートしてスコアを自慢してみてください!

流用すると時間短縮だけじゃなく不具合対策にもなる

リザルト画面をタイトル画面と同じ構造にすることで、考える時間が大幅に減りました
「ここはどうやって作る?」と悩むのはタイトル画面で一度やっていますからね。

さらに、不具合が起こることも無くなります
プログラムを書けば、どうしても不具合が起こってしまいます。
しかし流用して作れば、正常に機能しているという保証があります。
元のタイトル画面が正常なら、リザルト画面でも不具合が起こることはまずないでしょう。

ゲーム制作の終盤はよく切羽詰まるので、原因不明の不具合が起こったら心臓に悪いです。
不具合の予防と時間短縮にもなるので、流用できるところはしていきます!

おかげで無事にタイトル画面とリザルト画面が完成しました!
次はいよいよ最後の仕上げです!

最後はゲームに欠かせないBGM&SE

ここまではずっとゲームの見た目を作ってきました。
最後はゲームに欠かせない”音”を付けていきます。
ずっと無音で寂しかったんですよ。

ゲームには2種類の音があります。
1つはBGM(background music)です。
サウンドトラックなども発売されているのでBGMが好きな方も多いのではないでしょうか?
ゲームに合うBGMが流れると、臨場感が増して感情を揺さぶられます

そしてもう1つがSE(sound effect)です。効果音とも言いますね。
ゲーム内で何かアクションが起こったときに音で表現する役割があります。
プレイヤーの操作とゲーム内の行動を結び付けるので、没入感を演出してくれます

BGMやSEは私には作れないので、ネットで公開されているフリー素材を探しました。
フリー素材といっても利用規約があるので、気を付けながら利用する素材を決めていきます。

疾走感のある明るいBGMを探す

まずはゲーム内の雰囲気を決めるBGMから探していきます。
「一を止めて正を作る」は交通系をイメージしているので、疾走感のある曲がいいですよね。
また、とてもシンプルなゲームなので、明るい音楽にしないとBGMに負けてしまいます。
私のイメージでは、きかんしゃトーマスのような雰囲気がゲームに合いそうです。

そして、もう一つ大切な条件があります。
それはループ再生が可能なBGMであることです。

BGMはゲームを遊んでいる間ずっと流れます。
タイトルからリザルトまで、ゲームを終了しない限り延々とBGMが再生されます。
とはいえ永遠に続くBGMなんてありませんから、曲が終わればリピートしなければいけません。
しかし普通の曲を使用すると、リピートしたときにつなぎ目が目立ってしまいます。

遊んでいる最中に音楽が気になってしまうと、ミスを誘発してしまうかもしれません。
なのでプレイ中はあまり曲が気にならない方がいいですよね。
そこで、ループ再生が可能なBGMを選びます。

以上の条件を踏まえ、「一を止めて正を作る」に選んだBGMはこちらです。

DOVA-SYNDROMEMake a field Musicさんが公開している『かんたんレシピ』という曲です。
料理動画をイメージした曲のようですが、「一を止めて正を作る」の雰囲気にピッタリでした。

SEはたくさん必要

BGMがあることで、さらにゲームらしくなりました。
次はSEを探していきます。

SEもBGMと同様に交通系をイメージした音を探します。
しかし、SEはBGMと違ってたくさん必要です。
「一を止めて正を作る」のような短いゲームでもこれくらい用意しなければいけません。

・飛んできたタイトルや棒が止まるときのブレーキ音
・タイトル画面とリザルト画面でクリックしたときの効果音
・ゲームの説明文が飛んできたときの効果音(飛んで行った時も)
・ゲーム開始のカウントダウンが進む効果音
・棒が飛んできたときのF1のような音
・踏切が下がる音
・スコアの数値が上がっていくときのピロピロ音

F1の音やブレーキ音は見つかったのですが、リアルすぎてゲームに合いませんでした。
とくに見つからなくて困ったのが、スコアが上がっていくときの音です。

ドラゴンボールのスカウターをイメージしていましたが、どう検索しても見つかりません。
試行錯誤の末、ようやくこちらのサイトでベストなSEを発見しました。

OtoLogicに公開されていた『サイバー20』というSEです。
まさに理想的なピロピロ音です!

その他のSEは効果音ラボというサイトからお借りしています。
こちらのサイトには、YouTuberがよく使っているSEが多くありました。
聞き覚えのある音がいっぱいあって面白いですよ。

ゲームを公開したらたくさん遊んでもらいました

なんとかBGM・SEも付けられたのでいよいよゲームを公開していきます。
1番最初に確認したので問題なく公開できて一安心です!

『Unity1週間ゲームジャム』では制作期間が終わったら、即座に評価期間が始まります。
この期間中は他の方が投稿されたゲームを遊んで評価を行います。

残念ながらまだ全てを遊べていませんが私も楽しんでいます。
クリスマスに被っており、年末も目前の時期にもかかわらず300作品以上が投稿されました。
これでも以前よりやや投稿数が少なくなっているというから驚きです。

私のゲームもたくさんの人に遊んでもらえて、23件の評価をもらえました。
本当にありがとうございます。
ちなみに評価の結果はこちら。

評価点の平均をグラフにしてくれました。

なんとも平たんなグラフですね。
悪い項目がないのはとても嬉しいですが、次は1カ所でも高い評価を得たいですね!
自分が作ったゲームをたくさんの人に遊んでもらえると次もやりたい!と思えます。
勇気を出して公開してよかったです。

次回は参加できるか分かりませんが、私はこれからもゲームを作っていくつもりです。
もしかしたら、別のゲームジャムに参加しているかもしれませんね。
今後の活躍に乞うご期待!

というわけで、とても長くなりましたが最後までお読みいただきありがとうございました!
次回の更新もお楽しみに!