ゲームでは「キャラAと会話したら、キャラBが出現する」といった具合に、状況の変化を記録してその後の進行を変化させていく必要があります。
オープニングから始まり、小さなイベントをいくつもクリアしていく事で、エンディングまで辿り着く……。
そんなゲーム全体の進行をどのような方法で管理すると効率が良いのか、考えていきましょう。
RPGツクールでゲーム進行を管理するには、セーブデータに記録される「スイッチ」や「変数」を用います。
方法1:「スイッチ」で管理する方法
ツクール初心者にもとっつきやすいのが、単純にONとOFFを記録するだけの「スイッチ」です。
最初に挙げた例「キャラAと会話したら、キャラBが出現する」を実現するためには、まずは「キャラAと会話したイベントの最後にスイッチをON」にします。
次に、「スイッチがONの時に出現するキャラB」を設定します。
これを繰り返すことで、エンディングまでゲームを進行させていく事ができます。
この方法のメリット
- 実行するイベント毎に個別のスイッチを使用するので、後でゲームの流れに変更があった場合もバグが発生しにくい
- スイッチ毎に名前を付けられるので、どんなイベントを管理するスイッチか分かりやすい
この方法のデメリット
- 長編ゲームになると大量のスイッチが必要になり、使用可能上限に引っかかる可能性がある
- スイッチの数が多くなってくると、使ったスイッチがどこにあるのか探すのが大変
- スイッチを多く使用するほどセーブデータの容量が大きくなる
方法2:「変数」で管理する方法(1ずつ増やす)
ある程度ツクールに慣れた人なら「変数」を使うのが便利です。
たとえば「進行度」という名前の変数を用意しておけば、オープニングからエンディングまでのゲーム進行を、その変数1つで管理する事ができます。
「キャラAと会話したら、キャラBが出現する」を実現するためには、まずは「キャラAと会話したイベントの最後に変数を+1」します。
次に、「変数が1以上の時に出現するキャラB」を設定します。
このように、ゲームのメインストーリーに関係するイベントをこなす毎に「進行度」を+1していく事でゲームを進行させていく事ができます。
また、同様にサブストーリー毎の変数を用意することでメインストーリーとは関係の無いゲーム進行をいくつも作る事ができます。
この方法のメリット
- スイッチよりも数が少なくなるので、セーブデータの容量を節約できる
- ゲーム進行が数値で時系列的に表されるので、各イベントと進行度の対応関係が分かりやすい
この方法のデメリット
- 変数の単位が「1」なので、後でイベントとイベントの間に別のイベントをはさみたくなった時に困る
方法3:「変数」で管理する方法(100ずつ増やす)
「方法2」の改良版で、イベントをこなす度に変数を「+1」していくのではなく、「+100」していきます。
なぜそんな事をするのかというと、後でイベントとイベントの間に別のイベントをはさみたくなった時のためです。
「方法2」の場合、別のイベントをはさみたくなったら例外的に新たなスイッチや変数を作成する必要がありますが、それをしてしまうと、後からゲームの流れやバグの原因が分かりにくくなってしまいます。それを避けるためには、最悪すべてのイベントで変数の数値を書き換えるハメに……。
ここは後で変更があるかもしれない事を想定して、最初から「+100」といった大きな桁ずつ増やしていきましょう。もし途中で別のイベントをはさみたくなった時は「+50」してやればいいのです。
たとえば、以下のイベントは進行度「52100」で出現します。このイベントとその前のイベントの間に別のイベントをはさみたくなったら……
進行度「52050」で出現するイベントを作ってしまえば良いのです!
この方法なら、例外的に新たなスイッチや変数を作成する必要はなく、すでに作成してあるイベントの出現条件を書き換える必要もありません。
もし、「52050」と「52100」の間にも別のイベントをはさみたくなったら……?
そうです、今度は「52075」を作ってやれば良いだけです。
このように最初から変数に大きな数を足していく事で、もしもの時の対応が楽になります。「+100」でも足りないと思う場合は「+1000」しても構いません。
この方法のメリット
- スイッチよりも数が少なくなるので、セーブデータの容量を節約できる
- ゲーム進行が数値で時系列的に表されるので、各イベントと進行度の対応関係が分かりやすい
- 後でイベントとイベントの間に別のイベントをはさむのが楽
この方法のデメリット
- 変数の桁数が大きくなるのでパッと見て数値を把握するのが難しくなる