[前へ] [目次へ] [次へ]
今回はゲーム変数の値に応じて変化するイベントを作ってみます。
●イベント状態条件
今まで、イベントはマップに入った時から存在し、調べた(話した)場合だけ動作していました。
しかしゲームでは「特定イベントの間のみ出現するキャラクター」や、
「開けたら開きっぱなしの宝箱や扉」など、姿や存在自体が状況に応じて変化するものがあります。
イベントキャラクターの姿などはスクリプトから変更することもできますが、
それ自体は一時的なものであり、別のマップに移動して戻ってくればその効果はなくなってしまいます。
そこでFGSではゲーム変数の状態に反応してイベントの基本情報を変更することができるようになっており、
この基本情報を切り替える単位を「イベント状態」と呼びます。
今までイベントエディターで編集していたのはデフォルトの「イベント状態」の内容で、
「イベント状態」を切り替えるとグラフィックや実行内容なども全て切り替わります。
「イベント状態」は通常、「この状態になる条件リスト」が成立しているかを判断して切り替わります。
今までは「この状態になる条件リスト」は空だったため、無条件に成立しているものとして扱われていました。
試しに 第11回 で作成した「伝言B」イベントに条件を設定してみましょう。
条件リストの「(条件を追加する)」を選択します。
条件の設定を以下の画像のように「マップ整数」「伝言イベント進行状態」が「整数定数」「0」「より大きい」にしてOKを押します。
条件が設定されました。設定済みの条件を選ぶと内容を確認/編集できます。
この状態でゲームを実行するとどうなるか確認してみましょう。
起動時には「伝言B」イベントが出現していません。
これは設定した条件「ゲームマップ整数変数 伝言イベント進行状態 が 0 より大きい」が成立していないためです。
「伝言A」イベントに話しかけて伝言イベントを開始します。
これにより ゲームマップ整数変数 伝言イベント進行状態 が1に更新されます。
話し終わった瞬間に「伝言B」イベントが出現しました。
FGSでは原則、イベントがひとつ終わる度に全てのイベントのイベント状態条件が確認されます。
●複数のイベント状態を持つイベント
「イベント状態条件」を設定すると条件が成立するまで出現しなくなることは確認しました。
次は「イベント状態」を複数定義して「イベント状態条件」を使って「イベント状態」を切り替えてみましょう。
まず新しくイベントを設置します。
グラフィックと内容を設定したら「状態0」の部分を押し、「(新しい状態を追加)」を押します。
新しく「状態1」が追加され、「状態1」を編集する状態になります。
次に「状態1」に切り替える「イベント状態条件」を設定します。
ここで「イベント状態条件」を設定しない場合、
「同時に条件が成立した場合、最も状態IDの大きいイベント状態を採用する」というルールにより、
常に「状態1」(状態ID1)に設定され、「状態0」(状態ID0)への切り替えが起こらなくなってしまいます。
画面のように「マップ整数」「伝言イベント進行状態」が「整数定数」「1」と「同値」に設定します。
この「状態1」にもグラフィックと内容を設定します。
そして「状態1」の部分を押し、「(現在の状態の完全なコピーを追加)」を押します。
新しく「状態2」が追加され、「状態2」を編集する状態になります。
今度は「状態1」をコピーしたので「状態1」の設定が既に入力されています。
次に「状態2」の「イベント状態条件」を変更します。
画面のように「マップ整数」「伝言イベント進行状態」が「整数定数」「2」と「同値」に設定します。
この「状態2」のグラフィックと内容を設定します。
そして「状態2」の部分を押し、また「(現在の状態の完全なコピーを追加)」を押します。
新しく「状態2」のコピー「状態3」が追加され、「状態3」を編集する状態になります。
次に先ほどと同様に「状態3」の「イベント状態条件」を変更します。
画面のように「マップ整数」「伝言イベント進行状態」が「整数定数」「3」と「同値」に設定します。
この「状態3」のグラフィックと内容も設定します。
このように設定しておくことにより、伝言イベントの進行に合わせてこのイベントの見た目や内容が変化していきます。
「イベント状態」は基本的にゲーム変数の状態に自動的に対応してくれるため、
「特定イベントの間のみ出現するキャラクター」や「開けたら開きっぱなしの宝箱や扉」といったイベントを簡単に作ることができます。
実行して確認してみましょう。
[前へ] [目次へ] [次へ]
最終更新 2017/11/27