WOLF RPGエディター(ウディタ)[3.333]/イベントコマンド【サイトトップへ戻る】
■コモンイベント
(更新:2024/05/05)


イベントコマンド【コモンイベント】について解説します。



ショートカット
■イベントコマンド【コモンイベント】とは?
■[予約]の仕様
■設定画面の説明:イベントの挿入・予約
■設定画面の説明:コモンEv名で呼出
■設定画面の説明:入力の数
■設定画面の説明:結果の値
■【使用例】回復アイテムを何も持っていない場合は薬草がもらえる
■【使用例】セルフ変数の値を渡す方法
■【使用例】同じコモンイベントを予約で実行
■補足

「コモンイベント」に関する基本説明は別ページに記載しています。
【コモンイベントの説明ページを開く】


  
■イベントコマンド【コモンイベント】とは?

【コモンイベント】は、コモンイベントやマップイベントのイベントコマンドの設定を呼び出す時に使います。

▼イベントコマンド表示例
■イベントの挿入: コモン215:[ 自作処理 ]



呼び出すのはイベントコマンドの設定なので、
マップイベントを呼び出してもマップイベント自体がその場所へやってくる訳ではありません。



呼び出したイベントの処理は呼び出し元の起動条件([決定キーで実行][自動実行]など)が反映されるため、
呼び出し元の起動条件が「並列実行」の場合は、
呼び出すイベントの起動条件が「自動実行」だったとしても「並列実行」で処理されます。



【イベントの挿入】でイベントを呼び出した場合、呼び出し先のイベントの処理が最後まで終了すると、
呼び出し元の【イベントの挿入】の所へ処理が戻ります。

▼処理する順番を番号で表記




呼び出し先のイベントで【イベント処理中断】を実行すると、
その時点で呼び出し元の【イベントの挿入】へ処理が戻ります。





【イベントの挿入】を実行し、呼び出したイベントの中で【イベントの挿入】を実行し、
さらに呼び出したイベントの中で【イベントの挿入】を実行するなど、
【イベントの挿入】501回以上数珠つなぎで実行すると、
コモンイベント呼び出しが500階層を超えたため…」のエラーが発生します。
【エラー「コモンイベント呼び出しが500階層を超えたため…」の説明を見る】



存在しないイベントを呼び出そうとした場合は、エラーなどは発生せず、単に呼び出し処理が無効になります。


▲トップへ戻る▲


  
■[予約]の仕様



[予約]でイベントを呼び出すと、現在実行中の「並列処理」以外のイベントが終了したあとに、
その呼び出したイベントが実行します。





予約の処理は「自動実行」に近い仕様であり、「1回だけ実行する自動実行」と言った感じです。

そのため、「並列実行」以外のイベントが実行中の場合は、予約のイベントが実行できず、
また予約で実行したイベント処理が終わるまでは、「並列実行」以外のイベントは実行できません。

「自動実行」と同様に予約で実行したイベントが実行している時には、
プレイヤーの操作ができなくなるため、主人公の移動やメニュー画面の表示などはできません。



「並列実行」の中で予約を設定した場合は、「並列実行」の処理が終了してもしなくても、
予約を設定した瞬間に予約したイベントが実行されます。

「並列実行」以外のイベントが動いている場合は、そのイベントが終わるまでは実行されません。

なお「並列実行」で予約しても、予約したイベントは「並列実行」では実行されません。



予約の設定は1つしかできません。
予約の設定を複数同時に行っても、最後に設定された予約のみが有効になります。

▼この場合は「コモン221」のみが呼び出されます
■次イベントの予約: コモン220:[ ]
■次イベントの予約: コモン221:[ ]


▲トップへ戻る▲


   
■設定画面の説明:イベントの挿入・予約



呼び出すイベントを設定します。



イベントを選択する所では、まずコモンイベント名の一覧が表示されます。

そしてコモンイベント名の下にマップイベント名の一覧が表示され、
最後に変数(セルフ変数、通常変数、予備変数)が表示されます。



変数の値には、呼び出すイベントのイベントIDを設定してください。

マップイベントのイベントIDはそのまま設定し、
コモンイベントのイベントIDは「イベントID+500000」で設定してください。

呼び出すイベント 変数の値
マップイベント[19] 19
コモンイベント[215] 500215



ページはマップイベントを呼び出す際に、どのページを呼び出すのかを設定します。

ページを「0」にすると、
呼び出し先のマップイベントで現在表示されているページのイベントコマンドが呼び出されます。
※「0」の設定はキーボードで入力して設定してください。

[予約]の場合はページの設定はできません。
現在表示されているページが呼び出されます。


▲トップへ戻る▲


  
■設定画面の説明:コモンEv名で呼出



コモンイベントの名前を指定して呼び出します。
※名前を付いていないコモンイベントは選択できません。



同じ名前のコモンイベントが2つ以上ある場合は、
コモンイベントIDが最も大きいコモンイベントが呼び出されます。

この仕様を利用して、例えばコモンイベント[188:X◆戦闘処理]を改造する時には、
下図のようにコモンイベント[188]をコピーして、コモンイベント[215]に貼り付けます。

そしてコモンイベント[215]名前をそのままにすると、
コモンイベントIDが大きいコモンイベント[215]が実行され、コモンイベント[188]は実行されません。



改造する場合はココモンイベント[215]の方を改造し、
コモンイベント[188]の方はバックアップとして残してください。

コモンイベント[215]を削除すれば、元のコモンイベント[188]の処理に戻ります。

改造中に一時的にコモンイベント[188]の処理に戻す場合は、
コモンイベント[215]の名前を「X◆戦闘処理a」などと別の名前に変えてください。


▲トップへ戻る▲


  
■設定画面の説明:入力の数



入力の数は呼び出すコモンイベントに数値や文字列の情報を渡す時に使います。

呼び出すコモンイベント側の「入力の数 / 結果を返す」の設定が無い場合は、設定する事はできません。
【コモンイベント「入力の数 / 結果を返す」の説明を見る】



例えばコモンイベント[000:○アイテム増減]を呼び出す場合は、以下の情報を設定します。

設定名 内容
アイテム番号 増減するアイテム。(ユーザーDB[2:アイテム]データID)
増減数[-で減] 増減する数。(プラス値=増加、マイナス値=減少)
入手メッセージ 増加を知らせる文章の表示設定。

この入力の数で設定された情報を基に、呼び出し先のコモンイベントを処理します。



入力の数には「変数呼び出し値」で数値を設定したり、「特殊文字」で文字列設定したりする事ができます。
【「変数呼び出し値」の説明を見る】
【「特殊文字」の説明を見る】





呼び出すコモンイベントを変えると、数値の設定が初期値に戻ります。


                 


もしも別のコモンイベントに変更する時に、ここの設定値をそのままにしたい時には、
[Ctrl]キーを押しながらコモンイベントを変更してください。


                 



▲トップへ戻る▲


  
■設定画面の説明:結果の値



呼び出し先のコモンイベントで処理した結果を受け取る変数を設定します。

呼び出すコモンイベント側の「入力の値 / 結果を返す」の設定が無い場合は、
ここの受け取る変数の設定はできません。



呼び出し先のコモンイベントの結果を返すに設定した変数が数値タイプの変数である場合は、
ここの受け取る変数も数字タイプの変数にしてください。

文字列タイプの変数である場合は、ここの受け取る変数も文字列タイプの変数にしてください。


▲トップへ戻る▲


  
■【使用例】回復アイテムを何も持っていない場合は薬草がもらえる

アイテム「薬草」「癒しの水」「エリクサー」を持っているかどうかを調べ、
何も持っていない場合は「薬草」が1個もらえるイベントを設定します。





まずコモンイベント[017:▲アイテム所持数取得]を呼び出して、アイテムの所持数を1種類ずつ調べます。

そして全てのアイテムの所持数が「0」だった時には、
コモンイベント[000:○アイテム増減]を呼び出して「薬草」を1個増やします。

【イベントコード表示】

■マップイベント「薬草ネコ」

起動条件:決定キーで実行
起動条件変数:なし

■イベントの挿入[名]: このEvのSelf0 = ["▲アイテム所持数取得"] <コモンEv 17> / 0:薬草
■イベントの挿入[名]: このEvのSelf1 = ["▲アイテム所持数取得"] <コモンEv 17> / 1:癒しの水
■変数操作: このEvのSelf0 += このEvのSelf1 + 0
■イベントの挿入[名]: このEvのSelf1 = ["▲アイテム所持数取得"] <コモンEv 17> / 3:エリクサー
■変数操作: このEvのSelf0 += このEvのSelf1 + 0
■条件分岐(変数): 【1】 このEvのSelf0 が 0 と同じ
-◇分岐: 【1】 [ このEvのSelf0 が 0 と同じ ]の場合↓
|■文章:これをあげよう!
|■イベントの挿入[名]: ["○アイテム増減"] <コモンEv 0> / 0:薬草 / 1 / 1:あり[単位:〜個]
|■
-◇上記以外
|■文章:回復アイテムは必ず持っていた方が良いぞ!
|■
◇分岐終了◇


▲トップへ戻る▲


  
■【使用例】セルフ変数の値を渡す方法

【イベントの操作】で呼び出すコモンイベントのセルフ変数の値と、
呼び出し元のマップイベントのセルフ変数の値を互いに渡し合う方法を紹介します。



▼マップイベント→コモンイベント

コモンイベントに「入力の値 / 結果を返す」を準備する事で、
最大8個のセルフ変数の値をコモンイベントに渡す事ができます。



▼数値は変数呼び出し値、文字列は特殊文字で設定


【イベントコード表示】

■イベントの挿入[名]: このEvのSelf9 = ["テスト"] <コモンEv 215> /
            このEvのSelf0 / このEvのSelf1 / このEvのSelf2 / このEvのSelf3 /
            このEvのSelf4 / \self[5] / \self[6] / \self[7] / \self[8] / \self[9]
【変数呼び出し値の説明を見る】
【特殊文字「\self[番号]」の説明を見る】

文字列タイプのセルフ変数[5〜8]に設定された数値は、
【変数操作】にて「変数呼び出し値」で設定すれば、普通に数値として使用する事ができます。

▼「1600005」と設定する事で、文字列に保存された数字を「数値」として使う事ができます


【イベントコード表示】

■変数操作: CSelf10 = CSelf5 + 0



マップイベントのセルフ変数の値を呼び出す変数呼び出し値「1100000+X」を使う事で、
入力の値 / 結果を返す」を使わなくても、
呼び出し元のマップイベントのセルフ変数を取得する事ができます。

▼呼び出し元のマップイベントのセルフ変数[0]をコモンイベントのセルフ変数[10]へ代入
【イベントコード表示】

■変数操作: CSelf10 = このEvのSelf0 + 0



10個のマップイベントのセルフ変数の値を、
コモンイベントのセルフ変数[10〜19]へ代入する場合は以下のように設定します。

で表示されたイベントコマンドは「X番の変数呼出」が設定されています。

【イベントコード表示】

■変数操作+: CSelf10[マップセルフ0-9] = マップイベントID(コモンなら呼び出し元ID)
■変数操作: CSelf10[マップセルフ0-9] *= 10 + 0
■変数操作: CSelf10[マップセルフ0-9] += 1000000 + 0
■変数操作: CSelf11[コモンセルフ10-19] = 1600010 + 0
■回数付きループ [ 10 ]回
|■変数操作: V[CSelf11[コモンセルフ10-19]] = V[CSelf10[マップセルフ0-9]] + 0
|■変数操作: CSelf10[マップセルフ0-9]〜CSelf11[コモンセルフ10-19] += 1 + 0
|■
◇ループここまで◇◇



▼コモンイベント→マップイベント

コモンイベントに「入力の値 / 結果を返す」を準備する事で、
1個のセルフ変数の値をマップイベントのセルフ変数に渡す事ができます。

▼コモンイベントのセルフ変数[10]の値をマップイベントに返す設定


▼マップイベントのセルフ変数[9]に結果を返している設定




マップイベントのセルフ変数の値を呼び出す変数呼び出し値「1100000+X」を使う事で、
最大10個のマップイベントのセルフ変数に数値を設定する事ができます。

処理方法は、ループを使った方法と使わない方法があります。

で表示されたイベントコマンドは「X番の変数呼出」が設定されています。

▼ループ使用「コモンセルフ[10〜19]→マップセルフ[0〜9]
【イベントコード表示】

■変数操作: CSelf20[マップのセルフ] = 1100000 + 0
■変数操作: CSelf21[コモンのセルフ] = 1600010 + 0
■回数付きループ [ 10 ]回
|■変数操作: V[CSelf20[マップのセルフ]] = V[CSelf21[コモンのセルフ]] + 0
|■変数操作: CSelf20[マップのセルフ]〜CSelf21[コモンのセルフ] += 1 + 0
|■
◇ループここまで◇◇

▼ループ未使用「コモンセルフ[10〜19]→マップセルフ[0〜9]
【イベントコード表示】

■変数操作: CSelf20[マップのセルフ] = 1100000 + 0
■変数操作: V[CSelf20[マップのセルフ]] = CSelf10 + 0
■変数操作: CSelf20[マップのセルフ] += 1 + 0
■変数操作: V[CSelf20[マップのセルフ]] = CSelf11 + 0
■変数操作: CSelf20[マップのセルフ] += 1 + 0
■変数操作: V[CSelf20[マップのセルフ]] = CSelf12 + 0
■変数操作: CSelf20[マップのセルフ] += 1 + 0
■変数操作: V[CSelf20[マップのセルフ]] = CSelf13 + 0
■変数操作: CSelf20[マップのセルフ] += 1 + 0
■変数操作: V[CSelf20[マップのセルフ]] = CSelf14 + 0
■変数操作: CSelf20[マップのセルフ] += 1 + 0
■変数操作: V[CSelf20[マップのセルフ]] = CSelf15 + 0
■変数操作: CSelf20[マップのセルフ] += 1 + 0
■変数操作: V[CSelf20[マップのセルフ]] = CSelf16 + 0
■変数操作: CSelf20[マップのセルフ] += 1 + 0
■変数操作: V[CSelf20[マップのセルフ]] = CSelf17 + 0
■変数操作: CSelf20[マップのセルフ] += 1 + 0
■変数操作: V[CSelf20[マップのセルフ]] = CSelf18 + 0
■変数操作: CSelf20[マップのセルフ] += 1 + 0
■変数操作: V[CSelf20[マップのセルフ]] = CSelf19 + 0



▼通常変数や予備変数を使う

上記の方法以外に、セルフ変数の値を通常変数予備変数に代入して、
通常変数予備変数でマップイベントとコモンイベントとの数値のやり取りを行う方法もあります。


▲トップへ戻る▲


  
■【使用例】同じコモンイベントを予約で実行

並列実行で実行しているコモンイベントの中で…
【イベントコード表示】

■次イベントの予約: [このコモンから+0] コモン215:[ ]
を実行する処理を紹介します。



並列実行で特定のキーが押された時に、選択肢や自作メニュー画面が表示する場合、
並列実行のままで処理すると、キャンセルキーを押すとメニュー画面が表示されたり、
プレイヤー接触のマップイベントが実行したりと、色々な問題が発生する可能性があります。

そこで「自動実行」と同じような仕様になる【次イベントの予約】を使用します。

特徴としては、予約するコモンイベントが、
特定のキー入力を処理している並列実行のコモンイベント自身を予約している点です。

なお、予約では無く、通常の【イベントの挿入】で呼び出してしまうと、
呼び出されたイベントは並列実行で処理されてしまうため、【次イベントの予約】で呼び出してください。



今回は並列実行以外に何もイベントが実行されていない時に[A]キーを押すと、
選択肢が表示されるイベントを設定します。

【イベントコード表示】【コモン出力ファイル】

■コモンイベント

起動条件:並列実行(常時)

■■条件分岐(変数): 【1】 CSelf10[予約実行] が 0 と同じ
-◇分岐: 【1】 [ CSelf10[予約実行] が 0 と同じ ]の場合↓
|▼ 並列実行
|■キー入力:CSelf11[キーコード][入力待ち] キーボード(100〜) [キーコード[130]のみ判定] ( Aキー )
|■条件分岐(変数): 【1】 Sys13:イベント実行中?(1=ON) が 0 と同じ
|-◇分岐: 【1】 [ Sys13:イベント実行中?(1=ON) が 0 と同じ ]の場合↓
||■変数操作: CSelf10[予約実行] = 1 + 0
||■次イベントの予約: [このコモンから+0] コモン215:[ Aキーで予約実行 ]
||■
|◇分岐終了◇
|■ウェイト:2 フレーム
|■変数操作: CSelf10[予約実行] = 0 + 0
|■イベント処理中断
|■
◇分岐終了◇
▼ 予約実行
■文章選択肢:/ 【1】はい / 【2】いいえ
-◇選択肢:【1】 はい の場合↓
|■
-◇選択肢:【2】 いいえ の場合↓
|■
-◇キャンセルの場合
|■
◇分岐終了◇


▲トップへ戻る▲


  
■補足

コモンイベントの画面にある【イベントの挿入】の設定の上で[F12]を押すと、
その【イベントの挿入】に設定されているコモンイベントの設定画面が表示されます。


                         



▲トップへ戻る▲



◎関連ページ

◆お店のイベントを作る
◆ボスキャラを作る
◆エンカウントで敵を出現

◆「イベントコマンド」って何?
┣◆文章の表示
┃┗◆特殊文字
┣◆選択肢
┃┗◆【使用例】選択肢
┣◆変数操作
┃┗◆演算子について
┣◆DB操作
┣◆文字列操作
┃┗◆【使用例】文字列操作
┣◆変数操作+
┃┣◆「X座標・Y座標」と「画面X座標・画面Y座標」の違い
┃┣◆【使用例】変数操作+の「キャラ」と「位置」
┃┗◆【使用例】変数操作+の「ピクチャ」と「その他」
┣◆条件(変数)
┣◆条件(文字列)
┣◆キー入力
┃┗◆【使用例】キー入力
┣◆ピクチャ
┃┗◆表示形式(通常・加算・減算・乗算)について
┣◆エフェクト
┃┣◆「Zオーダー」について
┃┗◆【使用例】エフェクト
┣◆サウンド
┣◆セーブ・ロード操作
┣◆パーティ画像
┣◆チップ処理
┃┗◆【使用例】チップ処理
┣◆場所移動
┣◆イベント制御
┃┣◆キャラクターの動作指定
┃┗◆【使用例】イベント制御
┣◆コモンイベント
┣◆ダウンロード
┗◆プロ版機能
 ┗◆起動時の引数について

YADOT-WOLFトップ  気紛れな空間へ戻る  メール