イベントのすゝめ(18) 「並列+自動」のバトンタッチ・テクニック
このコーナーでは、主に初心者さんに向けたイベントのテクニックを紹介していきます。
RPGツクールVXAceで説明していきますが、多くはVXや他のツクールでも可能です。
合言葉は「1+1は2じゃないぞ。オレたちは1+1で200だ。10倍だぞ10倍!」
第十八回は「並列処理」イベントと「自動実行」イベントの
適材適所な使い分け方と組み合わせ方を紹介します。
今まで紹介したイベントの追加解説も兼ねていますので
気になる方はつづきはこちら、からどうぞ。 まずはおさらい
さて、道しるべなどでも書いていますが
まずは2つのイベントタイプの特徴と違いについてです。
・トリガーが満たされていれば、自動で開始&繰り返し実行される
・マップイベントはそのマップ内、コモンイベントは全てのマップで有効になる
この辺りは共通ですね。他にも使えるイベントコマンドも同じです。
大きな違いはどこかというと
「並列処理」
・他のイベントやプレイヤーの行動を邪魔しない
「自動実行」
・実行中は他のイベントやプレイヤーの行動が無効に
この部分ですね。(文章の表示など若干例外もありますが)
長所を活かす
今までの講座では並列処理を多用してきました。
これは殆どが情報の取得や判定などの、裏方の処理だったためです。
より細かく言えば更に二種類に別けられます。
・常に起動しているので自動実行ではプレイヤーが一歩も動けないケース
・そうではないが、プレイヤーやイベントの動きを阻害したくないケース
逆に皆さんがイベントでストーリーを作っている場合は
並列処理よりも自動実行を多く使っていると思います。
イベントシーンを並列処理で作ってしまうと
プレイヤーが勝手にうろうろして面白いことになってしまいますからね。
「判定処理」と「実行処理」を別けてバトンタッチ
イベントの多くは突き詰めると「○○だったら、××する」という内容です。
「○○だったら」というのは条件分岐(とそれに使うための変数の操作など)です。
「××する」というのが言わばイベントの本体です。
この「判定」と「処理」の区別ができるようになるととても便利です。
何故なら
・判定と処理で適したイベントタイプが異なるケースがある
・判定と処理を別けるとコピペがしやすく作業効率が上がる
からです。
例えば次の場合
並列イベントのみ
ウェイトの間にプレイヤーはフラフラと動けてしまいます。
それを阻止するために、スイッチを介して自動実行イベントにバトンタッチしています。
それから次の場合
まとめて1つのイベント
この例の場合は一見複雑ですが
「ある場所に移動していたら、向きとアイテムの判定を実行する」
「向きとアイテムが揃っていたら、戦闘を実行する」という2セットに別けられます。
条件分岐が多くなってきて重複が出るような場合は、こうやって分離すると効率的です。
RPGツクールVXAceで説明していきますが、多くはVXや他のツクールでも可能です。
合言葉は「1+1は2じゃないぞ。オレたちは1+1で200だ。10倍だぞ10倍!」
第十八回は「並列処理」イベントと「自動実行」イベントの
適材適所な使い分け方と組み合わせ方を紹介します。
今まで紹介したイベントの追加解説も兼ねていますので
気になる方はつづきはこちら、からどうぞ。 まずはおさらい
さて、道しるべなどでも書いていますが
まずは2つのイベントタイプの特徴と違いについてです。
・トリガーが満たされていれば、自動で開始&繰り返し実行される
・マップイベントはそのマップ内、コモンイベントは全てのマップで有効になる
この辺りは共通ですね。他にも使えるイベントコマンドも同じです。
大きな違いはどこかというと
「並列処理」
・他のイベントやプレイヤーの行動を邪魔しない
「自動実行」
・実行中は他のイベントやプレイヤーの行動が無効に
この部分ですね。(文章の表示など若干例外もありますが)
長所を活かす
今までの講座では並列処理を多用してきました。
これは殆どが情報の取得や判定などの、裏方の処理だったためです。
より細かく言えば更に二種類に別けられます。
・常に起動しているので自動実行ではプレイヤーが一歩も動けないケース
・そうではないが、プレイヤーやイベントの動きを阻害したくないケース
逆に皆さんがイベントでストーリーを作っている場合は
並列処理よりも自動実行を多く使っていると思います。
イベントシーンを並列処理で作ってしまうと
プレイヤーが勝手にうろうろして面白いことになってしまいますからね。
「判定処理」と「実行処理」を別けてバトンタッチ
イベントの多くは突き詰めると「○○だったら、××する」という内容です。
「○○だったら」というのは条件分岐(とそれに使うための変数の操作など)です。
「××する」というのが言わばイベントの本体です。
この「判定」と「処理」の区別ができるようになるととても便利です。
何故なら
・判定と処理で適したイベントタイプが異なるケースがある
・判定と処理を別けるとコピペがしやすく作業効率が上がる
からです。
例えば次の場合
並列イベントのみ
変数の操作:変数A = 主人公のX座標並列イベント
条件分岐:変数A => 10
文章の表示:魔王「ふははは、良く来たな勇者よ」
イベントの位置設定:魔王、(12, 7)
ウェイト:60F
文章の表示:勇者「お前は、魔王!」
変数の操作:変数A = 主人公のX座標自動イベント(条件:スイッチA)
条件分岐:変数A => 10
スイッチの操作:スイッチA
文章の表示:魔王「ふははは、良く来たな勇者よ」同じに見えるかもしれませんが、上だと並列処理なので
イベントの位置設定:魔王、(12, 7)
ウェイト:60F
文章の表示:勇者「お前は、魔王!」
ウェイトの間にプレイヤーはフラフラと動けてしまいます。
それを阻止するために、スイッチを介して自動実行イベントにバトンタッチしています。
それから次の場合
まとめて1つのイベント
変数の操作:変数A = 主人公のマップX位置判定イベント
変数の操作:変数B = 主人公のマップY
変数の操作:変数C = 主人公の向き
条件分岐:変数A => 20
条件分岐:変数B => 10
条件分岐:変数C == 2
条件分岐:「朱雀の羽」を持っている
文章の表示:「南より朱雀が現れ襲ってきた」
戦闘の処理:「朱雀」
条件分岐:変数C == 4
条件分岐:「白虎の牙」を持っている
文章の表示:「西より白虎が現れ襲ってきた」
戦闘の処理:「白虎」
条件分岐:変数C == 6
条件分岐:「青龍の髭」を持っている
文章の表示:「東より青龍が現れ襲ってきた」
戦闘の処理:「青龍」
条件分岐:変数C == 8
条件分岐:「玄武の甲」を持っている
文章の表示:「北より玄武が現れ襲ってきた」
戦闘の処理:「玄武」
条件分岐:変数B => 10
条件分岐:変数A => 20
条件分岐:変数C == 2
条件分岐:「朱雀の羽」を持っている
文章の表示:「南より朱雀が現れ襲ってきた」
戦闘の処理:「朱雀」
条件分岐:変数C == 4
条件分岐:「白虎の牙」を持っている
文章の表示:「西より白虎が現れ襲ってきた」
戦闘の処理:「白虎」
条件分岐:変数C == 6
条件分岐:「青龍の髭」を持っている
文章の表示:「東より青龍が現れ襲ってきた」
戦闘の処理:「青龍」
条件分岐:変数C == 8
条件分岐:「玄武の甲」を持っている
文章の表示:「北より玄武が現れ襲ってきた」
戦闘の処理:「玄武」
変数の操作:変数A = 主人公のマップX方向判定&戦闘実行イベント
変数の操作:変数B = 主人公のマップY
変数の操作:変数C = 主人公の向き
条件分岐:変数A => 20
条件分岐:変数B => 10
コモンイベント「方向判定&戦闘実行」
条件分岐:変数B => 10
条件分岐:変数A => 20
コモンイベント「方向判定&戦闘実行」
条件分岐:変数C == 2
条件分岐:「朱雀の羽」を持っている
文章の表示:「南より朱雀が現れ襲ってきた」
戦闘の処理:「朱雀」
条件分岐:変数C == 4
条件分岐:「白虎の牙」を持っている
文章の表示:「西より白虎が現れ襲ってきた」
戦闘の処理:「白虎」
条件分岐:変数C == 6
条件分岐:「青龍の髭」を持っている
文章の表示:「東より青龍が現れ襲ってきた」
戦闘の処理:「青龍」
条件分岐:変数C == 8
条件分岐:「玄武の甲」を持っている
文章の表示:「北より玄武が現れ襲ってきた」
戦闘の処理:「玄武」
この例の場合は一見複雑ですが
「ある場所に移動していたら、向きとアイテムの判定を実行する」
「向きとアイテムが揃っていたら、戦闘を実行する」という2セットに別けられます。
条件分岐が多くなってきて重複が出るような場合は、こうやって分離すると効率的です。
PR
-->