見出し画像

「転生牡丹」unity1week制作日記

 こんにちは。南天千弦と申します。Unity 1週間ゲームジャム(テーマ:1ボタン)に参加いたしまして、その制作の裏側を少し紹介できたらと思います。
 未プレイでこの記事を読まれている方は少数かもしれませんが、もしまだでしたらこちらのリンクから遊べます。ブラウザで無料で遊べます!


※Unityの技術的な話をするのは3日目と6日目だけなので、それ以外は読み飛ばしてください。

1日目

 まずテーマの「1ボタン」から「人生で1つしかボタンが押せないなら、どんなボタンが良いかな」って考えて「人生をリセットするボタンを押したい!」って思いました。

 というわけで、まずは以下のルールが決まりました。

・操作は転生ボタン一つのみ
・主人公はオートでダンジョンをひたすら突き進む

 そして、やりたいことをひたすらメモ帳に書いていきました。
 長いのでPDFでアップロードしますね!(投げやり)

 雑なメモですが、意外とここに書かれていないことはないってぐらいに機能は網羅されています。
 一日でこんなにアイデア出せたのは、個人的には正直とても調子が良かった感じです。いつもいつもこんなにアイデア出せたら良いのですが。やはり1週間という限られた制作期間が人の潜在能力を引き出すのでしょうか。

 ここに書いたけど結局作らなかった機能はいくつかありますね。経験値、探索スキル(戦闘スキルと分けようと思ってた)とか作らなかったですね。
 世界の終焉は一応物語の中に入れられましたが、当初考えていた形とは結構違ってしまいました。

 それと、素材探しもこの日に大体やりました。
 探せば無料でも良い素材がいっぱいあってびっくりしました!

 可愛い立ち絵素材を配布されているところを見つけ、転生するのはこの子たちだ!って決まって、そこから話を考えていきました!

 モンスターの素材はちょっと不気味だけどグロすぎない感じが欲しかったのですが、まさにぴったりなのを配布されているところを見つけられて嬉しかったです!

 BGMはちょっと贅沢しちゃいました。音楽系VtuberのNoiRさんから特別に楽曲をお借りしました!めっちゃ雰囲気の良い曲をいっぱい贅沢に使わせてもらいました!

2日目

 メインの画面の構成を考えました。

雑な絵でお恥ずかしいです。字もめっちゃ殴り書き……

・画面左側に主人公のステータス
・真ん中にすごろくのマスやモンスター
・右側にログ
・右下に転生ボタン
という感じで、とにかく必要な情報をシンプルに表示しようと思いました!(だって時間がないんだもん!)

 そして、Unityで試しに転生ボタンを作ってみました。

 このときはとりあえず適当にランダムで数値書き換えているだけです。

 ちなみに、X(旧Twitter)のアカウントもこのときに急遽作りました。活動名もこのときに必死に考えました。

3日目

 すごろくのマスを作って、勝手に1マスずつ進むようにし、それぞれのマスで何が起きたのかメッセージを出して、ログを残すようにしました。

マスは大体以下3つのクラスで構成されています。
・すごろくのボード全体を制御するクラス
・マス1つを制御するクラス
・マスで起きるイベントのデータクラス(ScriptableObject)

横から見るとこんな感じです。

 特別なことはしていないのでボードとマスの制御の話は、まあいいやって感じなのですが、データを作るのに使っているScriptableObjectは、ちょっと広めたいと思っています。

 ScriptableObjectは一言で言うとデータを書き込むのに便利な機能です!
(エディター拡張と言うかは微妙な気がしますが、どちらかと言えばエディター拡張です。)

 今回作成したマスで発生するイベントは様々なデータを用意する必要がありました。イベントで表示する文字列、HPを増やしたり減らしたりする量、出現する敵、連続で次に起こるイベント等など大量にあります。これらをスクリプトに直接書き込んじゃうと管理が大変ですよね。
 エクセルなどのツールを使って、JSONやCSVで書き出すという方法もありますが、ScriptableObjectはUnityEditor内ですぐに書き換えられるという大きなメリットがあります!そして、なんと、テストプレイ中にも書き換えられます!!これがとんでもなく大きいです!デバッグのしやすさが段違いですよ!!

こちらがイベントのデータです。

 どんな風に使うかと言うと、ScriptableObjectを継承したクラスを作り、そのクラスに設定したいデータを格納する変数を書きます。そして、CreateAssetMenuという呪文を書き足すと、なんと、Projectウィンドウで右クリックしたときにそのクラスをアセットとして生成できるようになります。(だから、アセットを作るための機能です。ScriptableAssetって名前じゃダメだったのかな?ScriptableObjectって名前が分かりにくくない?)

こんな感じでCreateメニューの中に入れられます。

 マニュアルを見ても何のことやらとなると思いますが、とりあえずマニュアルへのリンクを置いておきます。詳しい使い方は説明されている記事や動画がいっぱいありますので、気になったら探してみてください。

 とにかくこの機能のおかげでいっぱいイベントを作ることが出来ました。

4日目

 この日はバトル画面を作ろうとしていました。
 スクリプトをちょっと書きながら、GUIの配置をしていました。

5日目

 この日は朝から晩まで外に出てたので何も出来ませんでした。
 毎晩遅くまで作業していたので体調がやばかった……。
 てか、これまでの呟きの投稿時間見ると不健康すぎてやばい。

6日目

 戦闘がやっとシステム完成しました。転生ボタン押したときの演出も作りましたね。

 呟きの投稿時間が一周回って健康に見える。

 戦闘システムは作るの苦痛だったし、あまり思い出したくないのですが、転生ボタン押したときの演出はそう言えば語りたいことがありました。
 あれって何で作っていると思いますか?
 分かる人が見れば一発で分かっちゃうと思いますが、あれはポストエフェクトでやっています!

 3つのポストエフェクト(Volume)のWeightを徐々に変えることで出来ています。

これが通常時。
Lens Distortionを強めにかけたポストエフェクトのWeightを徐々に上げていく。
すると、こんな面白い見た目になっていきます。
最終的にはこんなことになって何が何やらです。
最後はVignetteで真っ暗にしたポストエフェクトでフェードアウト。VignetteのCenterを下の方にすると、まばたきっぽくなって良い感じでした。

 と、まあ、そんな感じです!

7日目

 投稿日。完成しなかった……!!
 システムはほぼほぼ完成してたのですが、中身がまだ何もない。
 イベント、技、敵、主人公のステータスなどそれぞれScriptableObjectでデータを大量生産する準備までは出来ていたものの、肝心のデータを作る時間がありませんでした!!

 でも、律儀にもその未完成な状態で公開してしまいました。
(遅刻が許されるのなら、この段階では公開しない方がもっと良い評価をつけてもらえたのでは……?)

9日目

 公開2日後、何とか6人分の物語を作って、敵・技・イベントなどのデータをいっぱい用意して更新しました。

 一週間で作るというイベントで評価期間中に頻繁に更新するとずるいかなと思って、これを最後の更新にするつもりでした。ですが、このゲームを実況してくださった方を見て、気が変わりました。

「そんな変なプライドより、遊んでくれた人に満足してもらう方が大事じゃない?」と思いました。

それに、遅刻して出している方がいっぱいいましたし……。

19日目

 最後まで遊んでくださった方に、どうにかクリアした感を味わってもらおうと思って、当初考えていた物語を縮めて、トゥルーエンド感のあるエンディングを作りました!
 それと、実況動画を見て改善したいと思った点を対応しました。


 以上です。

 今回ゲームジャムに参加した理由は、「いまの自分に出来ることを試す」ということでした。

 だから「多くの人に楽しんでもらえるゲームを作ろう」とか「崇高な作品を作ろう」みたいなことはあまり考えずに、ただただ「いまってどのくらいのペースで走れるのかな」みたいな気持ちで作りました。

 いま実はちょっと人生の大きな転機と言うか、大きな挫折をしたところと言うか……そんなところに私はいまして、これから再スタートしようとしているところです。

 残念ながら、次のゲームジャムどころか、しばらくはゲームジャムに参加できないと思います。

 ですが、今後もゲームはずっと作っていくので、もし私の作品が少しでも気に入って頂けたら、また遊んでもらえたらと思います!次はもっと良い物を作るので!

 ここまで読んで頂きありがとうございました!


(えっ!noteの「スキ」を押したときに出る画像を設定できるのですね!
ちゃんと設定してみたので良かったら押してみてください!)

この記事が気に入ったらサポートをしてみませんか?