イベントと分岐:シナリオ作りの基礎の基礎
シナリオ作成の小ネタ
【対応】
CW:1.20○ 1.28○ 1.29○ 1.30○ 1.50○ |
そして、イベントは様々な条件判定とその結果による分岐の積み重ねです。
「どんなときイベントを発生させられるか」「判定の条件には何が使えるか」を知れば、シナリオ作りに幅が出る……かも?
(※初めてシナリオを作る方向けのつもりが、だいぶややこしくなりました;)
なお、イベントや分岐の一部に、本体更新により追加されたため、より古いエンジンでは使えないものが含まれます。
既存手法の組み合わせなどによって同じ or 類似の効果を得られることもあるので、対応エンジンを増やしたい場合はリンク先を覗いてみてください。
※※※
CW独自の表現ではないですが、一応。
以下、文中にイベントの(が)「発火」とある場合、「発生」と同じ意味です。
イベントデータは何処に書く?(イベントビュー)
イベントデータを書き込める場所は、以下の4つです。- エリア
- バトル
- パッケージ
- 効果系カード(スキル・アイテム・召喚獣)
(1)イベントビューの表示方法
- ○エリア・バトル・パッケージ
- データウィンドウからダブルクリックでビューウィンドウが開く→【イベントビュー】タブを選択
- ○カード
- カードウィンドウでイベント編集したいカードを右クリック→使用時イベントの設定
(2)イベントビューの見方と操作
例として、エリアのスクリーンショットを掲載します。- 左カラムは、イベント一覧。
- 一番上のアイコンは、全体を表します。絵柄は物によって異なります(エリアは絵画風)。
その下に、エリアではメニューカード、バトルでは敵キャストを表すカードアイコンが並びます。 - 各アイコンから伸びる枝の先の青い三角は、1つ1つがアイコンが表すものに属するイベントです。
+印をクリックして折り畳まれて部分を展開すると、発火条件を確認できます。
- 一番上のアイコンは、全体を表します。絵柄は物によって異なります(エリアは絵画風)。
- 右カラムには、左カラムで選択したイベントの内容が表示されます。編集はここで。
- イベント関連の操作
- 全体 or カードアイコンを選択し、2つのコンボボックスでイベント種別と発火条件を選んだ後、右隣の青三角ボタンを押すと、新規イベントが作成されます。
- 既存のイベントを選択し、2つのコンボボックスでイベント種別と発火条件を選んだ後、右側の赤い火花のボタンを押すと、発火条件が追加されます。
イベント発生の優先順
- 1つの対象に設定された複数のイベントが同時に発火条件をクリアした場合、画面上で一番上にある1つだけが発火します。
(バトルで設定できる「キーコード名○」「キーコード名×」イベント(※後述します)を除く) - エリア全体とメニューカード または バトル全体と敵キャストの両方に発火条件をクリアしたイベントが存在する場合、全体イベント → メニューor敵のイベント の順で連続して発火します。
- 1つのイベントに複数の発火条件がある場合、いずれか1つを満たせば発火します。
(CW1.50で、キーコード発火条件が「すべて一致する」かつ複数のキーコードを設定しているときを除く)
どんなときイベントを発生させられるか
場所別にまとめました。イベント名後ろの括弧の中身は、(イベント種別(/設置可能な場所))です。
エリア
- 到着イベント(システムイベント/設置可能=全体)
→発火のタイミング: エリア移動で、そのエリアに到着したとき - クリックイベント(システムイベント/設置可能=メニューカード)
→発火のタイミング: イベントを設定したメニューカードがクリックされたとき - キーコードイベント(キーコードイベント/設置可能=全体 or メニューカード)
→発火のタイミング:
- エリア全体に設定した場合は、そのエリア内で指定キーコードを持つカードが使われたとき
- メニューカードに設定した場合は、そのメニューカードに対して指定キーコードを持つカードが使われたとき
バトル
- 勝利イベント(システムイベント/設置可能=全体)
→発火のタイミング: 全ての敵キャストを倒したとき- 発生時、バトルは既に終わっている扱いです(戦後イベント)。
画面から敵キャストが消え、バトルが発生したエリアのメニューカードが表示されます。
- 発生時、バトルは既に終わっている扱いです(戦後イベント)。
- 敗北イベント(システムイベント/設置可能=全体)
→発火のタイミング: 全てのパーティーメンバーが倒れたとき- 発生時、バトルは既に終わっている扱いです(戦後イベント)。
画面から敵キャストが消え、バトルが発生したエリアのメニューカードが表示されます。 - パーティー全滅時、敗北イベント内で体力や戦闘不能とみなされる状態異常が回復しなければゲームオーバーになります。
負けてもそのままゲーム続行して欲しい場合は、必ず敗北イベントに回復を入れておきます。
- 発生時、バトルは既に終わっている扱いです(戦後イベント)。
- 逃走イベント(システムイベント/設置可能=全体)
→発火のタイミング: バトル中、プレイヤーによって「逃走」が選択されたとき
- ラウンドイベント(ラウンドイベント/設置可能=全体)
→発火のタイミング: 指定ラウンドの開始(=プレイヤーによって「戦闘開始」が選択された)直後 - 死亡イベント(システムイベント/設置可能=敵キャスト)
→発火のタイミング: その敵キャストが意識不明・麻痺・石化の何れかの状態になったとき、ただし例外あり
- キーコードイベント(キーコードイベント/設置可能=全体 or 敵キャスト)
→発火のタイミング:
- バトル全体に設定した場合は、そのバトル中に指定キーコードを持つカードが使われたとき
- 敵キャストに設定した場合は、その敵キャストに対して指定キーコードを持つカードが使われたとき
- キーコード名+○ or ×イベント(キーコードイベント/設置可能=敵キャスト)
→発火のタイミング:- キーコード名の後ろに「○」をつけた場合は、指定キーコードを持つカードの本体効果が、回避や抵抗によって無効化されなかったとき
- キーコード名の後ろに「×」をつけた場合は、指定キーコードを持つカードの本体効果が、回避や抵抗による無効化されたとき
- 例えば、発火条件を「攻撃○」に設定したキーコードイベントは、キーコード「攻撃」を持つカードが回避や抵抗によって無効化されなかったときに発火します。
- 発火条件末尾の○や×が無視されるわけではないことに注意が必要です。
発火条件=「攻撃○」の場合、「攻撃○」というキーコードを持つカードが使われたときも発火します。 - 誤作動を防ぐため、効果系カード(技能・アイテム・召喚獣)にキーコードを設定する際は、末尾に○や×はつけないようにした方が良いです。
- 発火条件末尾の○や×が無視されるわけではないことに注意が必要です。
- あくまで「カード本体の効果」が問題で、使用時イベントは無関係の扱いです。
- 回避・抵抗の結果で振り分けが行われるため、変化が起きない状況でカードを使って無効音(カキーン)音が鳴ってもキーコード○イベントは発生します。
- 不発やカード使用から本体効果発動までの間の「効果中断」で処理が中断された場合、キーコード○×イベントは発生しません。
- 各種通常イベント→本体効果の発動判定→キーコード○×イベント の順で処理されます。
キーコード「攻撃」「攻撃○」「攻撃×」に対してそれぞれ別のイベントを設定した敵キャストに「攻撃」カードを使うと、「攻撃」イベントが実行された後、本体効果が回避や抵抗で無効化されたかどうかによって「攻撃○」か「攻撃×」のどちらか片方が実行されます。
→参考:カード使用時の諸々の処理順
- バトル開始イベント(システムイベント/設置可能=全体)
→発火のタイミング: バトルの開始直後- CW1.50で追加された新しいイベント。より古いエンジンでは無視されます。
- 毎ラウンドイベント(システムイベント/設置可能=全体)
→発火のタイミング: 各ラウンドの開始(=プレイヤーによって「戦闘開始」が選択された)直後- CW1.50で追加された新しいイベント。より古いエンジンでは無視されます。
- 【注意点】エディタ上ではシステムイベントに分類されていますが、既存のラウンドイベントと同種の扱いらしく、CW1.50で通常のラウンドイベントと重なる場合は優先順が高い(=より上にある)方のみ実行されます。
パッケージ
- パッケージイベント(システムイベント)
- 発火のタイミング: コールまたはリンクで呼び出されたとき
- 良く使う処理などをまとめておいて、外部から呼び出して使うものです。単体では意味がありません。
効果系カード(スキル・アイテム・召喚獣)
- 使用時イベント(システムイベント)
- 発火のタイミング: そのカードが使われたとき
- 【注意点1】キーコードイベントよりも先に発生するため、特定の条件下でシナリオの表現を壊してしまう可能性があります。
- 良く引き合いに出されるのが、○○無効空間。
例えば「この場所では魔法が封じられている」表現として、キーコード「魔法」に対して無効化イベントを設定したシナリオがあったとします。 - ここで使用時イベント内に敵や味方の状態を変更するイベントを持つカードを使用した場合、イベントの発生は
(1)カード効果の発現→(2)無効化イベント
の順になり、無効化されたはずなのに効果が出てしまう、というものです。 - →参考:カード使用時の諸々の処理順
- 良く引き合いに出されるのが、○○無効空間。
- 【注意点2】キーコード○×イベントで考慮されないため、カードの使用結果とシナリオ上の表現が食い違う可能性があります。
- 以下の3つの条件を兼ね備えているカードに問題発生の可能性があります。
- カード本体には無効音防止の全体では効果の出ない設定(例えば暴露→暴露解除)をして、実際の効果は使用時イベントに組み込まれている。
- 使用対象が敵方単体か敵方全体。
- 使用時イベントの実行結果によっては使用に失敗することがあり、失敗の後に「効果中断」がない。
もしくは状況に応じて多様な効果を発揮し、通常一緒に設定されることがないキーコードが1つのカード内に設定されている(「攻撃」と「治癒」など)。
- 無効音防止の効果設定は、通常必ず成功するように設定されます。
このため、使用時イベント「しかし、何も起こらなかった……」→キーコード○イベント「#Mが鋭い攻撃を叩き込む!」のようなことが起きる可能性が出てきます。
使用時イベント内の効果発動に失敗する部分の後ろに、「効果中断」を入れると解決可能です。
- 多様な効果を発揮する方は、極端な例ですが、確率半々で敵にダメージを与えるか回復するカードに、キーコード「攻撃」と「治癒」が同時に設定されているようなものを考えてみてください。
使用時イベントで敵を回復→キーコード○イベント「#Mが鋭い攻撃を叩き込む!」のようなことが起きる可能性があります。
- 以下の3つの条件を兼ね備えているカードに問題発生の可能性があります。
変数には何があるか
- フラグ
- 2つの状態を切り替える形のものです(TRUE/FALSE,ON/OFF,済み/まだ,……)
- コンテントパレットでは、三角の旗の絵柄で表されています。
- ステップ
- 1桁の変数(0~9)と考えるのが近いと思います。
ステップ1個につき、最大10の状態を扱う事ができます。 - コンテントパレットでは、階段の絵柄で表されています。
- 1桁の変数(0~9)と考えるのが近いと思います。
イベントの分岐に何が使えるか
名称に「分岐」または「判定」を含むものが、分岐を行うコンテントです。大部分はボタンの絵に1本の線が二股の矢印に分かれている図柄( または )を含むため、見た目でも大雑把に判別できます。
使えるもの(1):フラグ・ステップの値 →「Data」タブ
- フラグ分岐
→指定したフラグの値が真か偽かで分岐 - フラグ判定
→指定したフラグの値が「真」であるときのみ後続のイベントを実行 - ステップ多岐分岐
→指定したステップのインデックス値によって分岐 - ステップ上下分岐
→指定したステップのインデックス値が指定値以上/未満で分岐
- フラグ比較判定
→2つのフラグを比較し、ソースとターゲットの値の関係性(=,≠)により2分岐 - ステップ比較判定
→2つのステップを比較し、ソースとターゲットのインデックス値の関係性(>,=,<)により3分岐
- ステップ判定
→指定したステップのインデックス値が条件を満たすときのみ後続のイベントを実行
使えるもの(2):パーティーやパーティーメンバーの状態 →「Utility」タブ
- 能力判定分岐
→PCの身体的要素・精神的要素と指定項目の一致度によって分岐(詳細) - レベル判定分岐
→PCのLvまたはパーティーの平均Lvが指定値以上/未満で分岐 - 状態判定分岐
→PCのステータスが条件に一致/不一致で分岐 - 人数判定分岐
→パーティーが指定人数以上/未満で分岐
使えるもの(3):確率・選択 →「Utility」タブ
- メンバ選択
→パーティーの中から手動またはランダムで1人選択し、選択できた/できていないで分岐 - ランダム分岐
→指定した確率で成功するものとし、成功/失敗で分岐
(CW1.28までは、成功確率が指定値より1%多く扱われるバグが存在する)
- ランダム選択
→パーティーメンバーや敵の中からランダムに1人選択し、選択できた/できていないで分岐
(CW1.50からは、パーティーに同行中のNPCも対象に含めることができる)
使えるもの(4):存在・所持状況 →「Branch」タブ
- キャスト存在分岐
→指定したキャストがパーティーに同行している/していないで分岐
- アイテム所持分岐
→指定したアイテムカードを持っている/持っていないで分岐 - スキル所持分岐
→指定したスキル(=技能)カードを持っている/持っていないで分岐 - 情報所持分岐
→指定した情報カードを持っている/持っていないで分岐 - 召喚獣存在分岐
→指定した召喚獣カードを持っている/持っていないで分岐 - 所持金分岐
→パーティーの所持金が指定額以上/未満で分岐 - クーポン分岐
→パーティーメンバーなどが指定したクーポン(=称号)を持っている/持っていないで分岐
- 終了シナリオ分岐
→宿に指定したシナリオの済印が存在する/しないで分岐 - ゴシップ分岐
→宿に指定したゴシップが存在する/しないで分岐
- キーコード所持分岐
→指定したキーコードが設定されたカードを持っている/持っていないで分岐
使えるもの(5):その他 →「Utility」タブ
- エリア分岐
→パーティーが、どのエリアに居るかで分岐 - バトル分岐
→パーティーが、どのバトルを戦っているかで分岐(戦闘中でないときは「その他」扱い) - バトル判定分岐
→現在、戦闘中かそうでないかで分岐
- ラウンド分岐
→戦闘中、現在のラウンドが指定と同じ・以上・以下で3分岐