WOLF RPGエディター(ウディタ)/初心者【サイトトップへ戻る】
■「自動実行」と「並列実行」の説明
(更新:2024/05/01)


「自動実行」と「並列実行」について解説します。


ショートカット
■基本情報
■別のマップへ移動した時に、移動先のマップに自動実行か並列実行がある場合


  
■基本情報

主な仕様は以下のとおりです。

  自動実行 並列実行
実行タイミング 何もキーを押さなくても自動的に実行する
実行回数 起動条件を満たしている限り、何度も実行する
自動実行」「決定キーで実行
プレイヤー接触」「イベント接触
イベントコマンド:次イベントの予約
のいずれかが実行中の場合
同時に実行する事ができず
処理が終わるまでは新たな
自動実行を実行する事ができない
他のイベントが実行中でも関係なく
全ての並列実行が毎フレームごとに
1回ずつ実行する
主人公の行動 操作できず、メニュー画面も開けない 通常通りに操作可能
マップイベントで実行した時に
処理の途中で別マップへ移動した場合
移動先のマップでも処理が継続して
最後のイベントコマンドまで処理される
場所移動のイベントコマンドを
実行した所で処理が中断する



自動実行並列実行の使い分けとして、
イベント実行中に主人公の操作ができないようにしたい時には「自動実行」を使い、
イベント実行中に主人公の操作ができるようにしたい時には「並列実行」を使います。

例えばタイトル画面を表示するイベントやオープニングを表示するイベントを実行している途中で、
プレイヤーのキー操作によって、主人公を移動したり、マップイベントを調べたり、
キャンセルキーを押してメニュー画面を開いたりしないようにしたい時には、自動実行を使います。

一方、主人公を自由に移動する事ができる状態で、キャンセルキーを押した時にメニュー画面が開くようにしたい時には、
キャンセルキーを押しているかどうかを調べる処理(コモンイベント[126:X[移]歩行時_並列キー処理])を並列実行で設定します。

なお、メニュー画面を表示する処理では…
■次イベントの予約: [このコモンから+1] コモン127:[ X[移]メニュー起動 ]
を実行して、自動実行と同じ仕様でメニュー画面を処理しているので、
メニュー画面の表示中に方向キーを押しても主人公は移動しません。



自動実行並列実行は起動条件が満たされている間は何度も実行されます。

これを1回だけ実行するように変えたい時には、起動条件に変数を設定し、1回だけ実行するように設定してください。
【1回だけ自動的に実行するイベントを設定方法を見る】

▼設定例(一度会話するとセルフ変数の値が変わって起動条件が満たさなくなり、画面上からネコが消えます)




イベントの実行順は…
マップイベント → コモンイベント自動実行 → コモンイベント並列実行
であり、イベントID順に処理されます。

そのため自動実行を設定したイベントID[0][1]で同時に起動した場合は、イベントID[0]が先に実行されます。

複数の並列実行を同時に実行した場合もイベントID順に処理されます。



複数の並列実行を実行している時に並列実行の中でウェイトを実行すると、
ウェイトで処理が停止している間は、別の並列実行が実行されます。

例えば2つの並列実行が同時に起動した場合、イベントコマンドの実行順は以下のようになります。

■マップイベントA(ID:00)

起動条件:並列実行

[1]■デバッグ文:A01
[2]■ウェイト:1 フレーム
[6]■デバッグ文:A02
[7]■デバッグ文:A03
[8]■イベントの一時消去:このEv (0フレーム)




■マップイベントB(ID:01)

起動条件:並列実行

[3]■デバッグ文:B01
[4]■デバッグ文:B02
[5]■ウェイト:1 フレーム
[9]■デバッグ文:B03
[10]■イベントの一時消去:このEv (0フレーム)




もしも並列実行の処理中に主人公の移動ができないようにする場合は…
■キー入力禁止/許可: ↓キー ←キー →キー ↑キー [ 移動時× キー入力○ ]
を実行してください。



テストプレー中に[F8]押し続けると、現在実行中のイベントを確認する事ができます。

▼[F8]を押し続けた時の画面


テストプレー中に急に主人公が移動できない「フリーズ状態」が発生した場合は[F8]を押し続けて、
実行中のイベントを確認すると良いでしょう。


▲トップへ戻る▲


  
■別のマップへ移動した時に、移動先のマップに自動実行か並列実行がある場合

別のマップから移動してきた時に、移動先のマップに自動実行がある場合は、
前のマップからのイベント処理が終了するまでは実行されません。

しかし移動先のマップに並列実行がある場合は、
前のマップからのイベント処理が終了してなくても、このマップへ移動してきたら、すぐに実行されます。



例えばサンプルゲームのタイトル画面で「スタート」を選択すると、
サンプルマップAに移動して、挨拶の文章が表示されます。



この挨拶の表示は、タイトル画面にあったマップイベントの処理が続いていて、文章が表示されています。

もしもサンプルマップAに自動実行のマップイベントを設定した場合は、挨拶の処理が終わるまでは実行しません。

しかしサンプルマップAに並列実行のマップイベントを設定した場合は、
挨拶の処理が終わってなくてもサンプルマップAに移動してきたら、すぐに実行されます。


▲トップへ戻る▲



◎関連ページ

◆「マップイベント」と「コモンイベント」
┣◆マップイベント用のイベントウィンドウの説明
┃┗◆「イベントID」について
┣◆コモンイベントエディタ画面の説明
┃┗◆「入力の数 / 結果を返す」の説明
┣◆「自動実行」と「並列実行」の説明
┃┗◆1回だけ自動的に実行するイベント
┗◆イベントコマンド表示欄について

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