見出し画像

ビジュアルノベル おわかね制作日誌 第3回「長編ノベルゲーム制作に大切こと」

今回、マスターアップできた「終わりの鐘が鳴る前に Chapter.2」の開発秘話を話していきたいと思います。
主に苦労した話を書いて、後世に引き継いで欲しいと思います。
前提として、本作は30万〜40万文字でグラフィックも多く音楽も多い、しかもフルボイス、音声は8000ファイルくらいだと思っていただけると規模が理解しやすいと思います。
前回の「Chapter.1」が10万文字前後だったので、工数も3倍くらいかなと思っていましたが、それだけではなかった話です。


企画段階で把握しておくこと

シナリオボリュームだけではなくシナリオ分岐など複雑性

上記にも記載した通りシナリオの文字数だけで工数を考えると後で後悔します。実は今回マルチシナリオでAという行動をとるのとBの行動をとるので、Cの行動が変わってくることもあります。
他にも好感度のような変数が存在していて、それの掛け合わせで分岐が複数あります(セリフの変化など)
そういう複雑性を整理してはいたのですが、実際にシステム設計すると変数の数がかなり膨大になり、notionで一覧表を作ることになるほどでした。

設計図を作らないと後で困る

ファイル管理方法

これは主に音声ファイルです。
本作はフルボイスというのもあり8000近い音声がありますが、かならず1つのシナリオで連続した音声を再生するのではないのが大変でした。
例えば、カフェでヒロインに会う約束を10月3日か10月5日で選択できる場合、会っとときは同じ会話の内容をするのですが10月4日に起こったイベント内容が途中に挟まれていたりするようなことも起こるので、途中での分岐が自然と発生してしまいました。
そのため、ファイル管理方法をディレクトリに細分化して管理するようにしました。それでも音声デベッグは4週くらいすることになりました。

しかし、実はここでティラノスクリプトならではの落とし穴もあり、パッケージ入稿3日前に全ファイルをリネームする作業が発生しました。
ティラノスクリプトのvoconfigの連番で音声を再生する機能ですが、音声ファイル名とキャラ名を紐づけて格納するという機能なのですが、バックログ機能で再生する機能を実装した際に、ディレクトリは違うけど同じファイル名の音声が再生されてしまうというバグを発見してしまいました。
そのため、キャラ別のディレクトリでファイル名を入れるという管理方法に直前で切り替えました。
1ディレクトリに1000件近く入っているのもあるので、管理上ではかなりカオスですが、エンジンの仕様上どうすることもできなかったので、このような乗り越え方になりました。

同じファイル名はエラーになる可能性があります

デバッグ期間は多めに取る

ファイルやシステムが複雑になればなるほど、バグの温床になります。
そのためデバッグも通常予想の2〜3倍取ることをオススメします。
特にシステムは1つバグが出て、「直せば別のバグが…」というバグ連鎖地獄になっていくこともあるのでご注意ください。

ゲームエンジン選びは大切

前作から「ティラノスクリプト」を利用しており、開発時から技術スタックのハードルが低いことで選んで、私もJSは仕事でも使っているので開発をしやすかったのですが…。

パフォーマンスの落とし穴

色々な演出もできるティラノスクリプトですが、その演出とだいたいぶつかるのがスキップ機能とオート機能です。
複数の処理を同時にするのに適していないJSでスキップやオートの速度を早めた際にかなりの確率で演出関連の処理でフリーズします。
これは例えばキャラのフェードアウトを連続3名とかすると3人目のフェードアウトをする前に、まだ1人目の処理をしていてシステム側がストップしてしまうのが原因です。
これはエンターキー連打でも同じことが起こります。
複数処理をする際にパフォーマンスの限界でダウンしやすい、重い処理をするとなかなか動かないなど、なかなか対処できないものも多いです。
ただ私は全てのスキップの状態に遅延系の処理の前にウェイトを送ったり、処理自体をなくすように書き換えたので問題ありません。

あと起動時のパフォーマンスが重いというお声をたくさんいただいたのですが、nw.jsの限界なので難しいというのが結論でした。

複雑なシステム設計をすると苦しくなる

シンプルにノベルゲームを作成することに長けた「ティラノスクリプト」だからこその問題かもしれませんが、複雑性を増した独自のシステム設計をすると既存システムとぶつかることも多かったです。

それでも凄い「ティラノスクリプト」

自作ゲームの公開ができる「ノベルゲームコレクション」などコンテンツが連動している点や、ライトなゲームであれば簡単にできるアプリなど、複雑なシステムを含まないショートドラマのゲームを作成するのにはかなり適しています。

個人的に大規模開発ならオススメのエンジン

色々触ってみた結果Artemis Engine」がオススメです。
あと1年早く出会っていれば…と私も後悔しました。
ただ、ティラノスクリプトと違って技術開発のハードルはかなり上がるのですが、ドキュメントもかなり充実しているのと、ある程度の規模で開発した実績があるので、安心度が高いです。
あと有償販売する場合など、特定の条件で費用も発生しますのでご注意ください。

やりきるメンタルは大切

何故4部作とかシナリオも短縮しなかったのだろうか…と考えたことは数え切れません。
今回実はゲームの世界での1.5ヶ月をほぼ毎日描いています。
しかし、その長さ故にネタだけの日など本編に関係話やフラグが沢山あって、プレイする人が喜ぶ笑顔をみたいという想いだけで創り続けました。

ゲーム作りとしていると、いつも悩ましくなるところでいいますと「早く届けたい」とか「別のことを思いついてしまった」というのは皆さんもご経験あると思いますが、まずは作り切るを心に決めて完成を目指しましょう。
「終わりの鐘が鳴る前に」もあと最終章のみ…頑張ります。

この記事が参加している募集

ゲームの作り方

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