WOLF RPGエディター(ウディタ)/マップイベント【サイトトップへ戻る】
■マップイベントAを実行するとマップイベントBが出現する
(更新:2024/05/08)


マップイベントAを実行するとマップイベントBが出現するイベントを設定します。


今回はキャライベントAに話しかけると、キャライベントBが出現するイベントを設定します。
イメージとしては、ウディタのサンプルゲームにあるパン屋のような感じです。

▼初めはパン屋が居ない
▼仲間にするイベントを実行
▼パン屋が出現

なお、「A→B→C」と順番に実行するのではなく、
複数のマップイベントを順番は関係なく1回以上実行する事で先へ進めるようにする場合は、
以下のページをご覧ください。
【複数のマップイベントを実行すると先へ進める設定方法を見る】

また「A→B→C」と正しい順番に実行しないと再び「A」から調べ直す必要があるイベントを作りたい時には、
以下のページをご覧ください。
【正しい順番にスイッチを押すと扉が開くの設定方法を見る】

ショートカット
■変数について
■キャラAに会話するとキャラBが出現するイベントを作る
■キャラAに会話すると2回目以降のキャラAの会話内容が変わる
■キャラBに会話するとキャラAの会話内容が変わる
■キャラAにお金やアイテムを渡すとキャラBが出現する
■キャラBに会話するとさらにキャラCが出現する
■セルフ変数を使って設定する

キャライベントの作り方は別ページに記載しています。
【キャライベントの作り方を見る】


  
■変数について

今回のイベント設定では「変数」を使います。
【変数の説明を見る】



変数の種類には数値を保存するタイプ文字列を保存するタイプがありますが、今回は数値を保存するタイプを使います。

また数値を保存する変数には、いくつかの種類がありますが、
今回のような処理を作る時には「マップイベントのセルフ変数」か「通常変数(予備変数)」を使います。

マップイベントのセルフ変数 マップイベントごとに10個ずつ用意されている変数です。
主人公がいるマップのセルフ変数のみを操作する事ができます。
別のマップにあるセルフ変数は操作できません。
変数を名前を付ける事ができないため、何に使っているのかが分かりにくい場合は、
各マップイベントの最初の行にイベントコマンド【コメント】を使って、
使用内容を書いておく必要があります。
現在の値を確認するには、変数の値を表示するイベント処理が必要です。
通常変数(予備変数) 全てのマップで共通して使用する事ができ、
マップイベントやコモンイベントのイベントコマンドの処理だけでなく、
イベントを起動する時にも使用する事ができる万能な変数です。
別のマップにあるマップイベントを出現させたい時には、この通常変数を使います。
通常変数の他に「予備変数」と言う物があります。
機能的には通常変数と同じであり、どちらを使っても問題ないですが、基本的に…
通常変数=よく使う変数
予備変数=たまに使う変数(1回限りの使用など)

などと使い分けます。
変数に名前を付ける事ができます。
またテストプレイ中に[F9]を押すと、現在の値を確認する事ができます。



今回紹介するイベント設定は、全てのマップイベントを同じマップ内に設定するので、
通常ならばセルフ変数を使いますが、以下の理由で今回は通常変数を使います。

●設定例のイベント設定を複数のマップにまたいで設定しても、通常変数ならば問題無く処理する事ができる。
●変数に名前が付けられるので分かりやすく、設定ミスが起きにくい。
●[F9]を押すと現在の値を確認する事ができる。
●他のマップイベントのセルフ変数を操作する設定は、イベント設定に慣れていないと設定ミスが起きやすい。



イベントを設定する前にシステムDB[14:通常変数名]に今回使う変数の名前を設定してください。

今回のイベント設定では「1:キャラ出現」を使いますが、変数の番号は「1」ではなくても良いですし、
予備変数を使っても問題ありません。





変数の値はゲーム開始時は全て「0」になっているため、イベントを設定する時には…
変数の値が「0」=初期状態
変数の値が「0以外」=変化した時
と言った形で設定します。

今回のようなゲームの途中でキャライベントが出現するイベントを作る場合は…
変数の値が「0」=キャラが出現していない
変数の値が「1」=キャラが出現している
と言った形で設定します。

A→B→Cと順番に出現させる場合は…
変数の値が「0」=キャラAしかいない → キャラAと会話すると変数の値が「1」になる
変数の値が「1」=キャラBが出現 → キャラBと会話すると変数の値が「2」になる
変数の値が「2」=キャラCが出現
と言った形で設定します。


▲トップへ戻る▲


  
■キャラAに会話するとキャラBが出現するイベントを作る

キャラAに会話するとキャラBが出現するイベントを設定します。

初めはキャラAしか居ませんが、キャラAと会話するとキャラBが出現します。



キャラAを設定します。

このキャラAでは、会話の最後に通常変数[1:キャラ出現]の値を「1」に変える設定を置きます。



【イベントコード表示】

■マップイベント「キャラA」

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

■文章:キャラBを探している?
■文章:キャラBなら右の方にいたはずだ。
■変数操作: V1[キャラ出現] = 1 + 0



キャラBを設定します。

キャラBには、起動条件の変数に「[V1:キャラ出現] が 1 以上」を設定します。

この起動条件の設定によって、
変数の値が「0」=キャラBが表示されない
変数の値が「1以上」=キャラBが表示される

と設定する事ができます。



【イベントコード表示】

■マップイベント「キャラB」

起動条件:決定キーで実行
起動条件変数:[V1:キャラ出現]が1以上

■文章:キャラBはボクの事だよ。


以上で設定完了です。


▲トップへ戻る▲


  
■キャラAに会話すると2回目以降のキャラAの会話内容が変わる

キャラAに会話すると、2回目以降のキャラAの会話内容が変わる設定を
■キャラAで会話するとキャラBが出現するイベントを作るの設定に追加します。

▼動作イメージ
キャラAの1回目の会話 キャラAの2回目以降の会話



キャラAに2回目以降に表示される会話を追加してください。

【イベントコード表示】

■マップイベント「キャラA」

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

■条件分岐(変数): 【1】 V1[キャラ出現] が 1 以上
-◇分岐: 【1】 [ V1[キャラ出現] が 1 以上 ]の場合↓
|■文章:取りあえず右の方へ行ってみて!
|■イベント処理中断
|■
◇分岐終了◇

■文章:キャラBを探している?
■文章:キャラBなら右の方にいたはずだ。
■変数操作: V1[キャラ出現] = 1 + 0



キャラBの設定に変更はありません。

【イベントコード表示】

■マップイベント「キャラB」

起動条件:決定キーで実行
起動条件変数:[V1:キャラ出現]が1以上

■文章:キャラBはボクの事だよ。


以上で設定完了です。


▲トップへ戻る▲


  
■キャラBに会話するとキャラAの会話内容が変わる

キャラBに会話するとキャラAの会話内容が変わる設定を
■キャラAで会話するとキャラBが出現するイベントを作るの設定に追加します。

▼キャラAの動作イメージ
キャラBと会話する前 キャラBと会話した後



キャラAにキャラBと会話した後のイベントを追加してください。

【イベントコード表示】

■マップイベント「キャラA」

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

■条件分岐(変数): 【1】 V1[キャラ出現] が 2 以上
-◇分岐: 【1】 [ V1[キャラ出現] が 2 以上 ]の場合↓
|■文章:キャラBと会えて良かったね。
|■イベント処理中断
|■
◇分岐終了◇

■文章:キャラBを探している?
■文章:キャラBなら右の方にいたはずだ。
■変数操作: V1[キャラ出現] = 1 + 0



■キャラAと会話すると2回目以降のキャラAの会話内容が変わるの設定を追加している場合は、
以下のように設定してください。

【イベントコード表示】

■マップイベント「キャラA」

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

■条件分岐(変数): 【1】 V1[キャラ出現] が 2 以上
-◇分岐: 【1】 [ V1[キャラ出現] が 2 以上 ]の場合↓
|■文章:キャラBと会えて良かったね。
|■イベント処理中断
|■
◇分岐終了◇

■条件分岐(変数): 【1】 V1[キャラ出現] が 1 以上
-◇分岐: 【1】 [ V1[キャラ出現] が 1 以上 ]の場合↓
|■文章:取りあえず右の方へ行ってみて!
|■イベント処理中断
|■
◇分岐終了◇
■文章:キャラBを探している?
■文章:キャラBなら右の方にいたはずだ。
■変数操作: V1[キャラ出現] = 1 + 0



キャラBに会話終了後に通常変数[1:キャラ出現]の値が「2」になるように設定してください。

【イベントコード表示】

■マップイベント「キャラB」

起動条件:決定キーで実行
起動条件変数:[V1:キャラ出現]が1以上

■文章:キャラBはボクの事だよ。
■変数操作: V1[キャラ出現] = 2 + 0


以上で設定完了です。


▲トップへ戻る▲


  
■キャラAにお金やアイテムを渡すとキャラBが出現する

キャラAにお金やアイテムを渡すとキャラBが出現する設定を、
■キャラAで会話するとキャラBが出現するイベントを作るの設定に追加します。

▼キャラAの動作イメージ
お金「100」を要求する場合 アイテム「薬草」を要求する場合



現在の所持金を調べる場合は【イベントの挿入】コモンイベント[020:▲所持金取得]を呼び出してください。

呼び出す際に「→結果【所持金】」の所に「このEvSelf0」を設定し、
所持金がいくらあるのかと言った情報をキャラAのセルフ変数[0]に保存してください。



アイテムの場合は、コモンイベント[017:▲アイテム所持数取得]を呼び出して、
同様にセルフ変数[0]に現在のアイテムの所持数を保存してください。



「100G」の所持金を減らす場合は、コモンイベント[003:○お金の増減]を呼び出し、
お金の増減値の設定で「-100」を設定してください。



アイテムを減らす場合は、コモンイベント[000:○アイテム増減]を呼び出し、増減数を「-1」にしてください。



キャラAに「100G」で情報を教えるイベントを設定します。

処理としては、まず選択肢で「100G」を払うかどうかを尋ねます。

選択肢で「支払う」を選択した場合は、現在の所持金を調べて「99以下」の場合は分岐してイベント処理を中断します。

そして100G以上を持っている場合は、100Gを減らし、変数[V1:キャラ出現]を「1」にして、キャラBに関する情報を教えます。

イベントコマンド表示欄のトップに「変数[V1:キャラ出現]=1以上」の条件分岐を設定し、
一度お金を払ったあとは、タダでもう一度キャラBに関する情報が見れるようにします。

アイテムを渡す場合も基本的な処理の流れは同じです。

▼お金「100G」を要求する設定例
【イベントコード表示】

■マップイベント「キャラA」

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

■条件分岐(変数): 【1】 V1[キャラ出現] が 1 以上
-◇分岐: 【1】 [ V1[キャラ出現] が 1 以上 ]の場合↓
|■文章:キャラBは右の方にいるぞ。
|■イベント処理中断
|■
◇分岐終了◇
■文章:キャラBを探している?
■文章:教えて欲しかったら100Gをくれよ。
■文章選択肢:/ 【1】100G支払う / 【2】断る(キャンセル:分岐2)
-◇選択肢:【1】 100G支払う の場合↓
|■イベントの挿入: このEvのSelf0 = コモン20:[ ▲所持金取得 ]
|■条件分岐(変数): 【1】 このEvのSelf0 が 99 以下
|-◇分岐: 【1】 [ このEvのSelf0 が 99 以下 ]の場合↓
| |■文章:なんだ、100G持ってないではないか。\nそれでは話にならんな。
| |■イベント処理中断
| |■
|◇分岐終了◇
|■イベントの挿入: コモン3:[ ○お金の増減 ] / -100 / 0:なし
|■変数操作: V1[キャラ出現] = 1 + 0
|■文章:毎度どうも!
|■文章:キャラBは右の方にいるぞ。
|■
-◇選択肢:【2】 断る の場合↓
|■文章:まあ払いたくないなら、別にいいけどね。
|■
◇分岐終了◇

▼アイテム「薬草」を要求する設定例
【イベントコード表示】

■マップイベント「キャラA」

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

■条件分岐(変数): 【1】 V1[キャラ出現] が 1 以上
-◇分岐: 【1】 [ V1[キャラ出現] が 1 以上 ]の場合↓
|■文章:キャラBは右の方にいるぞ。
|■イベント処理中断
|■
◇分岐終了◇
■文章:キャラBを探している?
■文章:教えて欲しかったら「薬草」をくれよ。
■文章選択肢:/ 【1】薬草を渡す / 【2】断る(キャンセル:分岐2)
-◇選択肢:【1】 薬草を渡す の場合↓
|■イベントの挿入: このEvのSelf0 = コモン17:[ ▲アイテム所持数取得 ] / 0:薬草
|■条件分岐(変数): 【1】 このEvのSelf0 が 0 と同じ
|-◇分岐: 【1】 [ このEvのSelf0 が 0 と同じ ]の場合↓
| |■文章:なんだ、薬草を持ってないではないか。\nそれでは話にならんな。
| |■イベント処理中断
| |■
|◇分岐終了◇
|■イベントの挿入: コモン0:[ ○アイテム増減 ] / 0:薬草 / -1 / 0:なし
|■変数操作: V1[キャラ出現] = 1 + 0
|■文章:どうもです〜♪
|■文章:キャラBは右の方にいるぞ。
|■
-◇選択肢:【2】 断る の場合↓
|■文章:薬草くれないなら、教えな〜い。
|■
◇分岐終了◇



キャラBの設定に変更はありません。

【イベントコード表示】

■マップイベント「キャラB」

起動条件:決定キーで実行
起動条件変数:[V1:キャラ出現]が1以上

■文章:キャラBはボクの事だよ。


以上で設定完了です。


▲トップへ戻る▲


  
■キャラBに会話するとさらにキャラCが出現する

キャラBと会話するとキャラCが出現する設定を、
■キャラAで会話するとキャラBが出現するイベントを作るの設定に追加します。

キャラAに会話するとキャラBが出現 キャラBに会話するとキャラCが出現



キャラCを設定してください。

【イベントコード表示】

■マップイベント「キャラC」

起動条件:決定キーで実行
起動条件変数:[V1:キャラ出現]が2以上

■文章:キャラCはオレ様の事だ!



キャラBに会話終了後に通常変数[1:キャラ出現]の値が「2」になるように設定してください。

【イベントコード表示】

■マップイベント「キャラB」

起動条件:決定キーで実行
起動条件変数:[V1:キャラ出現]が1以上

■文章:キャラBはボクの事だよ。
■文章:下の方にキャラCもいるよ!
■変数操作: V1[キャラ出現] = 2 + 0

これでキャラBと会話するとキャラCが出現するようになります。



キャラAの設定に以下のように条件分岐を設定している場合は、そのままで問題ありません。

【イベントコード表示】

■マップイベント「キャラA」

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

■条件分岐(変数): 【1】 V1[キャラ出現] が 1 以上
-◇分岐: 【1】 [ V1[キャラ出現] が 1 以上 ]の場合↓
|■文章:取りあえず右の方へ行ってみて!
|■イベント処理中断
|■
◇分岐終了◇
■文章:キャラBを探している?
■文章:キャラBなら右の方にいたはずだ。
■変数操作: V1[キャラ出現] = 1 + 0


しかし以下のように条件分岐が無い場合は、
通常変数[1:キャラ出現]に値を設定する処理を「下限」にしてください。

【イベントコード表示】

■マップイベント「キャラA」

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

■文章:キャラBを探している?
■文章:キャラBなら右の方にいたはずだ。
■変数操作: V1[キャラ出現] 下限= 1 + 0

▼「下限」の設定は「引上げ」を選択


最初の「=」のままだと、キャラBと会話して変数の値が「2」になったあとにキャラAを会話すると「1」に戻ってしまい、
出現していたキャラCが消えてしまいます。

しかし「下限」にすると、「1未満だったら1になる」「1以上だったらそのままの値」となるので、
変数の値が「0」の時には「1」になりますが、変数の値が「2」の時には「2」のままとなり、
キャラA→キャラB→キャラAと会話してもキャラCが消える事はありません。


以上で設定完了です。


▲トップへ戻る▲


  
■セルフ変数を使って設定する

セルフ変数を使った時のイベント設定例を紹介します。



キャラB、キャラCの出現は、それぞれが持つセルフ変数[0]を「1」にして出現させます。

セルフ変数を「1」にするイベント設定では、出現させたいマップイベントのセルフ変数[0]を選択します。

▼キャラBを出現させる時のセルフ変数




イベントコマンドを設定する前に、先にマップイベントを準備してください。

キャラBとキャラCの起動条件には「Self0:セルフ変数0 が 1 と同じ」を設定してください。









イベントコマンドを設定します。

なお、【イベントコード表示】は以下の設定例のイベントIDに合わせて設定されているので、
設定例とは異なるイベントIDの場合は「Ev1のセルフ0」などの設定を修正する必要があります。

【イベントコード表示】

■マップイベント「キャラA」(ID:00)

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

■文章:キャラBを探している?
■文章:キャラBなら右の方にいたはずだ。
■変数操作: Ev1のSelf0 = 1 + 0

【イベントコード表示】

■マップイベント「キャラB」(ID:01)

起動条件:決定キーで実行
起動条件変数:[Self0:セルフ変数0]が1と同じ

■文章:キャラBはボクの事だよ。
■文章:下の方にキャラCもいるよ!
■変数操作: Ev2のSelf0 = 1 + 0

【イベントコード表示】

■マップイベント「キャラC」(ID:02)

起動条件:決定キーで実行
起動条件変数:[Self0:セルフ変数0]が1と同じ

■文章:キャラCはオレ様の事だ!


以上で設定完了です。



*注意点*

マップイベントの設定位置を移動する作業にて、
例えばキャラCを[コピー]→[貼り付け]→[古い方を削除]を実行した場合、キャラCのイベントIDが変わります。

この場合は、キャラBにあるキャラCのセルフ変数を操作する設定を変える必要があります。




▲トップへ戻る▲



◎関連ページ

◆キャラクターイベントを作る
◆複数のマップイベントを実行すると先へ進める
◆正しい順番でスイッチを押すと扉が開く

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