見出し画像

Unityで短編ノベルゲームを2日くらいで作った話

こんにちは。Annulus Gamesです。
今回は、短編ノベルゲームを土日で作って公開してみたので、振り返りを記事にまとめてみました。

一応先に書いておきますが、技術的な話はそんなに多くないです。ただ単に「こんなの作ってみたよー」って言いたいだけなので、その辺りはあらかじめご了承ください。というか、投稿してTwitterにも上げたのに反応が皆無だったから記事読むついでに遊んでくれ頼む

また、記事の最後に攻略のヒントをメモしてあります。トゥルーエンドが見つからない場合に参考にしてみてください。


今回作ったゲーム


作ろうとしたきっかけ

私は最近、メインのSTG制作から離れて別のゲームを作っているわけなんですが…

何と言うか…なかなか面白くならないんですよね。しかしこのゲーム、大会用に作っていて締め切りが近い。嫌でも完成させなければならないが、アイデアは浮かんでこない。

そんな時は少し息抜きをしよう、ということで、短期間で小さいゲームを作ってみることにしました。というかそのはずでした。(詳細は後述)


選んだジャンル

で、いざ作ろうとして選んだジャンルは「短編ノベルゲーム」です。

以前にもストーリー要素としてノベルゲーム的なパートを入れたことはありましたが、ノベルゲーム単体として作ったことはなかったので、挑戦してみることにしました。

そこで、思いついたゲームのネタを書き留めているメモ帳にあった、

「死神と日常を過ごすだけのノベルゲーム」

これを作ってみることに。
(というかメモ帳にシナリオのネタ書いたりするやつ、皆さんもやってますよね…?)


どんなゲームにするか

ノベルゲームを作るのは初めてで、しかも短期間で作るということで、システムはできる限りシンプルにすることに。

そこで採用したのが「一人のキャラクターを主軸に、全てのテキストを会話形式で読ませる」というシステムです。若干ノベルゲームのイメージからは外れますが、これなら文章量も少なめで済みます。

シナリオ分岐については、ラストの選択肢でエンディングが分岐、フラグを立てていけば真エンドの選択肢が出現するようにしました。短編ですし、3種類もエンディングがあれば十分でしょう。


設計

そして、実際にノベルゲームを作っていくわけなんですが…
Unityでノベルゲームを作るとなった時に、調べてもなかなかいい方法が見つからないんですよね。イマイチどういった設計にすればいいのかわからない。

そこで今回は、ScriptableObjectを使ってテキストなどのデータを管理することにしました。したんですが…

具体的にはキャラのセリフ・表情のアニメーションなどをまとめたデータをクラスとして定義しておき、それを配列としてScriptableObjectが保持。選択肢によって会話が分岐し、選んだ選択肢によって再生するScriptableObjectを切り替えるという設計になっています。

が、これがなかなか面倒くさい。何せ選択肢が文章量の割に多めなので、かなりの量のScriptableObjectを管理する必要に迫られました。

さらに、UnityのInspectorではテキストを書くのにやや不便。今回は文章が短めなので楽に済みましたが、長めの文章を書こうとすると、TextArea属性のフィールドに書き込むことになるのでなかなか大変です。(この辺の問題はエディタ拡張で何とでもなりそうですが)

というわけで、Unityでノベルゲームを作るのにScriptableObjectを使うのはお勧めしません。Jsonなり何なりでtxtファイルに書いていったほうが楽だと思います。



ノベルゲームによくあるテキスト送りは、DOTweenを使って実装しました。

なんとこのDOTweenを使えば、テキスト送りを一行で実装可能なのです!(最近知った)

_text.DOText("ABCDEFGHIJKLMNOPQRSTUVWXYZ", 3);

マジでこれだけ。超簡単。

他にも、選択肢の出現アニメーションなども全てDOTweenで実装しました。
超絶便利なので、全Unity使いはDOTweenを使いましょう。


UIデザイン

次はUIの実装。

会話だけでストーリーが進むシステムなので、画面上に必要な情報は、

・セリフ
・選択肢
・キャラの立ち絵
・日数

これだけで済みます。それらを簡単にまとめると、こんな感じになりました。

こんな感じ

基本的に、人の視線は左上から右上、左下、右下と、Zを描くように移動していきます。いわゆる「Zの法則」というやつです。そのため、最も重要な情報は左上に配置すべきです。

今回は、セリフの吹き出しを左上、選択肢を左下に配置しました。一方、そこまで重要ではない(のかはわからないけど)立ち絵は右側に配置しています。

また、重要な情報が画面の中央に集中しているため、四隅に枠を配置して視線を中央に誘導しています。

本をイメージしたデザイン

また、今回のデザインのコンセプトはファンタジーに出てくるような古い本です。色合い、ボタンや画面の枠は本の装丁をイメージしています。

フォントは患者長ひっく様のマルモニカを使用しました。ドットフォントながら、丸みを活かした柔らかい印象に仕上がっているフォントです。いつもお世話になっております…


キャラクターを描く

ノベルゲームを作る上で(個人的に)最大の鬼門なのは「立ち絵を描くこと」です。
フリー素材を用いても良いのですが、雰囲気を統一するためには、やはり自分で描くのが一番でしょう。

とはいったものの、私、絵を描くのは苦手なもので…
適当でもそれっぽくなるドット絵でキャラを描いてみることにしました。

通称「死神ちゃん」

…こんな感じになりました。まあ及第点でしょう。

ちょっと可愛く見えてきたかも

何気に5種類くらい表情の差分があります。口パクのアニメーション付きです。


キャラクターを書く

キャラの絵は用意できましたが、今度はキャラクターの性格、話し方などを文章で表現していかなければなりません。

こちらも絵を描くのと同じぐらい苦手な作業なので、他のADVゲームを参考にしつつ、探り探りでキャラを作っていきました。

そんなこんなで、死神ちゃんが出来上がりました。
ややテンション低めなキャラクターですが、その方が死神のイメージにも合っているのではないかと。


シナリオを書く

ここまで色々やってきましたが、ここからが本番です。
何せ「ノベルゲーム」である以上、シナリオが最も重要な部分なのは間違い無いでしょう。

今回は下のような順番でストーリーを考えていきました。

導入

エンディング

日常パート

ネタバレになるのであまり言えませんが、基本的に死神との交流がメインなので、大筋はゲーム性と同様、非常にシンプルです。

一周にかかる時間は大体5〜7分ぐらい。かなり短めですが、長くても書くのが大変な上にダレてしまうので、このくらいがちょうど良いでしょう。

文章の量は…正確には分かりませんが、全ての文章を含めて8000〜10000字くらいかなぁ…
地味に細かい分岐が多いので、一周にかかる時間の割に文章が多くなった気がします。


作業時間

なんだかんだで、ゲーム自体は土日中に全て完成させることができました。できたんですが。

作業時間はおよそ18〜20時間くらい。2日で。
確か「息抜きのために」このゲームを作り始めたはずなんですが、どうしてこうなった。
マジで土日の間ずっとパソコンで作業していた気がする。もはや最後の方は作業が義務みたいになってたし。

ですが、小さくても良いので作品を完成させるというのは、いい気分転換になったと思います。初めてのジャンルにも挑戦できて、良い刺激にもなりました。結局モチベは湧かなくてこんな記事書いてるけど。


攻略のヒント

最後に、需要があるか分かりませんが、ゲームの攻略のヒントを書いておきます。どうしてもトゥルーエンドが見つからない!という方はぜひ参考にしてみてください。

ヒント: 好感度について

好感度は特定の選択肢を選んだ時に上昇し、最大まで上げる(好感度が上昇する全ての選択肢を通る)とラストの選択肢が追加されます。
好感度に関わる選択肢はDAY 1〜4に一つずつ配置されており、それ以降の選択肢は好感度には影響しません。

記事は以上です。最後までお付き合いいただきありがとうございました。

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