🎮

【ゲーム】ノベル部分を含むシナリオにおける因果律

に公開

はじめに

以下の記事の続編です。

https://zenn.dev/noranuko13/articles/421db7d1d8dccb

『はじめに』を書こうとしたらほぼ同じだったので、上記記事の『はじめに』を参照ください。以降の部分は独立するように書きましたので、こちらに戻ってきていただいて大丈夫です。

今回は原因と結果の部分について触れていきたいと思います。

ノベル部分の構造を紐解く

メインストーリーとサブイベント

因果律について説明を始める前に、ノベル部分の種類を理解する必要があります。

  • メインストーリー…何らかのノルマをクリアすると進展するシナリオ。
  • サブイベント…特定の条件を満たすと開始するイベント。

※書籍や公式サイトを調査しましたが用語が定まっていないため、私が勝手に呼んでるだけです。

メインストーリーを完走することを全クリすると言ったりもしますが、あれです。エンディングロールが流れるところまで、どのセーブデータでも決まったタイミングで発生するシナリオですね。

サブイベントはお遣いやミッション、クエストとも呼ばれたりします。単発のこともありますが、大抵は複数の連続する話のまとまりです。特定の条件を満たすと次に進むものですね。例えば、

  • 特定の時間帯・場所に行く。
  • ノルマをクリアしてから再度話しかける。
  • 時間経過で発生する。

などです。

サブイベントは順不同である

サブイベント同士は基本的に順不同です。これが話をややこしくしています。

  • メインストーリー: M-01, M-02, ..., M-98, M-99
  • サブイベントA: A-01, A-02, A-03
  • サブイベントB: B-01, B-02

例えば上記のようなノベル部分を考えます。基本的にサブイベントの発生は、メインストーリーのいつどこで開始しても問題ないようにする必要があります。でなければゲーム部分で制御を追加する必要があります。例えばサブイベントBはメインストーリーM-41以降に発生可能とする、という具合です。

サブイベントAとサブイベントBについても考え方は同じで、基本的にどちらが先に発生しても、どちらが先に終了しても、話の展開に矛盾が生じない内容にする必要があります。これは大変複雑かつ難しいので、何らかのサブイベントが発生している間、他のサブイベントを発生させない方法もあります。

これは映画やアニメなどの一本道のコンテンツとは大きく異なります。原作に影響を与える設定を追加せずに、オリジナルの映画やアニメを作るのに近いです。未来のメインストーリーや他のサブイベントを伏線として持ってくる、というのが原則できないことになります。

この性質を踏まえた上で、ノベル部分の因果律について見ていきましょう。

ノベル部分の因果律

端的に言えば『原因と結果』という意味で、「何かを成せば何かしらの結果が生まれる」という存外にシンプルな意味である。
因果律 (いんがりつ)とは【ピクシブ百科事典】

情報や装備の取得状況の異変

開発している側は、何度も同じイベントを見ているので、そのゲームの中で全知全能の神といっても過言ではないでしょう。過去・現在・未来に渡って起こり得る全てのことを知っている。故にまだ知らないはずのものに違和感を感じなくなるというバグが発生します。

  • メインストーリーで知る筈の情報を、サブイベントで既に知ったことになっている。
  • 既に対象のサブイベントを見た前提で、メインストーリーがエンディングへ進む。
  • 取得していない筈の装備を付けている。

などなど。知らない筈のことを探偵のように見つけるのは、実はとても難しいです。であれば全てのパターンで矛盾がないかチェックしようということになりますが。仮にサブイベントが10個あるとして、最低限の前後関係を単純に確認するとしたら。

  • メインストーリーのどこで起きても問題ないか。
  • サブイベントB, C, ..., I, Jの前に起きても問題ないか。
  • サブイベントB, C, ..., I, Jの後に起きても問題ないか。

を全てのサブイベントで確認することになるので、そんなのどだい無理な訳です。

キャラクターの成長に伴う異変

メインストーリーが進むとキャラクターが成長するタイプのノベル部分では、気を付ける必要があります。ステータスが強くなるというのも勿論ありますが、メインストーリーの通過を経て精神的に成長してしまう場合、決定的な出来事の前後で一度仕切り直す方が無難だと思います。

よくあるのは、子どもの頃と成人後で完全にシナリオを区切ってしまう系のやつです。それはそれで回収できないイベントや装備が発生するので、一概に良いとも言い切れない節はありますが、シナリオや世界観が崩壊するよりはいいでしょう。

あるゲームではメインストーリーの特定の期間、特定の登場人物の友好度が全く上がらなくなるという制御が入っていました。メインストーリーの内容的に仲良くなる見込みがないのに、ゲーム部分で好感度を上げていって、サブイベントが発生したらおかしなことになりますからね。

某農業シミュレーションでは、基本的に主人公は地蔵と精神的な変化なしを貫いていて、ゲーム内のシナリオに与えるほどの変化をさせない方向なので。実は相性が良いというか、逆に賢いことをしているのかもしれません。

スピンオフの派生元を意識して

スピンオフ作品が発表されるとき「本編でいうと◯◯の編の辺り」という補足が付くことがよくあります。あれは何をしているかというと、スピンオフ作品を書くときの起点となる本編の状態を固定しているんですね。

何故ならこれまで述べてきたように、登場するキャラクターは成長もするし、仲間も増減するかもしれないし、何か大きな事件をきっかけに性格が180度変わってしまうことだってあるからです。これと同じ考え方をサブイベントでも行います。

まずは起点となるメインストーリーの状態を定義します。最初から最後まで変わらないでも構いませんし、変わる場合は区切りを明確に区別します。この区切りをブレークポイントとして、サブイベントの発生条件や内容を決めましょう。

このブレークポイントは固定台詞や装飾・町並みの変更など、シナリオ以外の様々な変化の基準とすることができます。この考え方を使うと一気に把握がしやすくなるので、自分で作る以外にも考察や分析用途におすすめです。

このブレークポイントは何個でも増やすことができます。ブレークポイント自体を可変にすることもできます。その分、実装コストや考慮コストが増えるだけです。複雑性が増せばミスや齟齬も増える可能性があるので、どれだけシンプルにできるかも大事です。

おわりに

たまたま登場するサブイベントが被って、前のイベントのNPCが瞬間移動してくることがありますが、あれは可愛い方だと思います。問題があるのは水を差すような矛盾や齟齬なので、ゲームの性質に合わせて上手く回避してやればいいのではないかと。

最近のスマホゲームでは、イベントを最後までクリアした人や、キャラクターを開放した人しか知らない話があって大変そうだなと思います。あれは完全に他の話とは独立させるか、「そんなこともあったわね」程度で軽く触れるくらいしかない気がします。

自分で作るときは感覚でやっていたので、言語化したことで新しく気付けた部分もあって、この取り組みをしてみて良かったなと思いました。また何か思い付いたら書いてみます。

Discussion