穴とレンコンと私
0. はじめに
はじめまして。配牌が悪い人間代表、はいぱいわる美です。今回 unity1week に初参加したので備忘録として記事を残したいと思います(連携キャンペーンもあるし一石二鳥ですね)。
技術的な解説はしない(できない)ですが、ゲームを作る人の参考になればいいな、とは思っています。本当です。
ということで作ったゲームはこちらです。
まだ遊んでない方は是非遊んでみてください。なお遊ぶ前に記事を読んでもネタバレとかはないです。そんな規模のゲームではないですね。
1. ネタの決定(12/21 ~ 12/23)
お題が発表された後、とりあえず「あける」の意味を調べてみました。
開ける・空ける・明ける
うーん、流石に知ってた。特に進展のないまま初日は終了します。
2日目、何に何を「あける」かを考え始めます。
折角なら「穴」をあけたいなあ。
何が折角なのかは分かりませんが、穴をあけることに決定しました。
折角なら「いっぱい」あけたいなあ。
何が折角なのかは理解に苦しみますが、方針を定めた(?)ところで2日目終了です。
3日目は穴のあいているものを探し始めます。できればいっぱい空いていても問題ないものがいい……
そうです。レンコンです!よくよく見るとレンコンってとんでもない見た目してませんか?
色々な「あける」がある中でレンコンに穴をあける人間は他にいないだろう(いたら困る)、ということでネタが決まりました。
2. ゲーム仕様の決定(12/23 ~ 12/24)
レンコンに穴をあける、正直自分でも何を言っているか分かりませんが、これを無理やりゲームにしていきます。
私は頭を使うゲームやストーリー性のあるゲーム、要するにしっかりしたゲームは作れません。とりあえず「ゲームのループが短い(1分程度)」「操作が簡単」「パッと見で面白さがある」の3点に絞って仕様を詰め始めます。
目指すは「早い、安い、美味い」ということです。牛丼か?
色々考えましたが、仕様決定時に採用されたのは以下の通りです。
・1分間レンコンを作り続ける
・レンコンに指で穴をあける
・レンコンは回転している
・作ったレンコンは一覧で見れるようにする
・レンコン及び穴の形は複数パターン用意する
ほぼ完成版の仕様通りです。スコアなどの細かい点は後々決めるとして、作業に入っていきます。
3. 画像作成(12/24 ~ 12/25)
私は見た目から入るタイプの人間なので、まずは画像を用意します。穴のあいていないレンコンの画像やレンコンの穴の画像素材があるはずがないので、大人しく自分で描きました。
控えめにいって地獄でした。
意味の分からない面白くもない画像を複数パターン用意させられたので当然です。特に穴の種類。これをサボると使いまわし感が出過ぎてしょうもないものになる、と思ったのでそこそこの数を用意しました。
ちなみにお絵描きツール(Affinity Designer)を今回初めてまともに使用したため、出力方法を失敗して全部描き直してます。1週間しかないのにそんなことをするな。
この時点で土曜日なのでお察しの通りです。
4. Unityでの諸作業(12/25 ~ 12/26)
諸作業って何だよって感じですがコライダー付けとかそんな感じのやつです。色々やったはずなんですけどコライダー付けが余りにも地獄で家にいるのにお家に帰りたくなりました。
この2工程クリスマスなんですけど。ゲーム制作にしてももうちょっと華のある工程していたかったですね?
5. 実装(12/26 ~ 12/27)
特に話すことはないですね()
せめて何か書くとすると、大まかなループを考えてからそれに則って実装していきます。具体的には以下のループです。
1. レンコンが生成される
2. これからあける穴が用意される
3. クリックで穴をあける
4. 他の穴、端との接触判定
5. 接触していなければ2. からループ
6. 接触していれば背景に整列させて1. からループ
まあ大変でした。Unity赤ちゃんなので。
動くものを見ると「レンコンになってる!!すげぇ!!」という感想を得られるのでやる気が復活していきます。
ここで、穴のあき具合とこれからあける穴の大きさによっては絶対にあけられない状態になる可能性があることに気付きます。
ということでループを以下のように変更させて大まかな実装は完了です。
1. レンコンが生成される
2. これからあける穴が用意される
3. クリックで穴をあける
4. 他の穴、端との接触判定
5. 接触していなければ2. からループ
6. 接触していれば背景に整列させて1. からループ
7. 右クリックで現在の穴を破棄し、背景に整列させて1. からループ
ネタゲーもこうしてブラッシュアップされていくわけですね。うんうん。
6. ビジュアル調整(12/27 ~ 12/28)
最低限レンコンに穴があく実装が完了した段階で大きな問題が発生します。
よく分からないビジュアルで勝負する芸風の私はまあまあ良く発生するのですが、「回っているレンコンに穴をあける」という状況に慣れてきました。
そうです。「これ面白いのか?症候群」です。
とはいえ今更後戻りはできないので、何とかして面白さを後付けします。
具体的に取った対策は以下の通りです。
・レンコンの回転速度、回転方向をランダムにする
・レンコンの穴を伸縮させる
こうして改めて列挙すると(何してんだこいつ、、?)という気持ちになりますね。
同じ状況を作らないようにしたつもりです。ちょっと上手くいったのではないかと思います。
ところでこの段階で期限オーバーしてますね?
優しいイベントであることをひしひしと感じています。
7. スコア調整(12/28)
私はビジュアル面を楽しむだけのゲームも嫌いではない(どころか好き)のですが、スコアを用意すれば(見た目を気にってくれた方は)複数回遊んでくれるだろう、という果てしなく安直な理由でスコアを実装します。
何となく決めていた仕様は以下の通りです。
・レンコンをたくさん作った方が偉い
・1つのレンコンにたくさん穴があいている方が偉い
仕様決定の時間取ったくせに雑過ぎでは?
時間もないのでざっくりと詰めていきます。
・1個完成するごとに一定の点数を加算
・接触せずに完成させた(右クリックをした)場合、更に一定の点数を加算
・穴をあけた数×定数点を加算
・接触している場合は加点無し
妥当な範囲です。簡素にまとまっていていいと思います。
8. 度重なる仕様変更(12/28)
作者としてはレンコンに穴をあける状況で笑ってほしいのですが、また問題が発生します。
連打戦法が強すぎる
この段階では「レンコンの生成→穴の生成」と「レンコンへの穴あけ→穴の生成」のクールタイムがほぼ存在していませんでした。
そのため、カチカチしていれば割と無駄のない適切な位置に穴をあけることが出来てしまうという大きな欠陥を抱えていたのです。
戦術としてはアリですが、これが一強になるのは当然ナシです。
完成版で微妙にクールタイムが存在しているのはこれの対策を露骨に行ったためです。
このまま完成すればよかったのですが、今度は別の問題が発生します。
3個程度穴をあけて多数のレンコンを量産する戦法が強すぎる
この段階ではレンコンの作成数上限が30個程度でした。
なぜ?レンコン1つに2秒しか使えないなんて正気じゃない。
時間をかけて1つのレンコンにたくさんの穴をあけようとすると当然作成できるレンコンの数は減少します。ここに「接触せずに完成させた場合の定数点」の差が大きく現れることになります。
更に「穴をあけた数×定数点を加算」するだけだと穴を多くあけることの利点が少なく、「無理せず完成させ続けるゲーム」に拍車をかけることになってしまいました。
この対策としては「穴の数に対する加点を控えめな二次関数みたいにする」「レンコンの作成上限を10個まで減らし、ミスなし完成加点の価値を下げる」というこれまた露骨な仕様変更で対応します。
これにより、
・時間をかけすぎるとレンコンが上限数作成できない
・しかし穴あけを頑張る時間は存在する
・1つのレンコンに穴をたくさんあけることで高得点が出る
というキレイな仕様にまとまりました。
戦術の幅は狭まったというかほぼ1つになりましたが、レンコンに穴をあけるゲームとしては健全になったと思います。
9. 音楽・効果音(12/28)
レンコンを作ることの楽しさ、穴をあける気持ちよさを追求しました。自分で作ったものはないため、あまり語ることはありません。
小気味いい形になったのではないかと思います。
BGMに関しては友人がポップで疾走感のある素敵なものを制作してくれました。恐ろしい無茶振りに応えてくれて本当にありがとうございます。
10. 感想
ということで約半日遅刻となる12/28 7:30くらいに完成させることが出来ました!
「早い、安い、美味い」を達成することができたので良しとします。
時間が足りなかったため、タイトルやツイートなどのUIが簡素すぎたりと妥協点も多いですが、納得はできるものを制作することが出来ました。
11. おわりに
記事投稿時は評価期間の半分も経ってませんが、私としてはすごい量の反響をいただいており、嬉しさでホクホクです。
万人にウケる物を作っていない自覚はしっかりと持っているので、今回参加することで多くの方にウケを取れたという結果は大きな自信となりました。この段階ではネタ被りがなくてよかったです。
遊んでくれた方、この記事を読んでくれた方、本当にありがとうございます。
アプリ版作っちゃおうかなあ。アプリ作ったことないけど。
ところでこの記事参考にならなくないですか?
ネタの考案から仕様の決定まですべて雰囲気で行っているからこういう記事になるのです。
参考になるような記事を書きたかったなあ。
この記事が気に入ったらサポートをしてみませんか?