RPGツクール2000/バグ・エラー【サイトトップへ戻る】
■定期的に並列処理するが最後まで実行されない
(更新:2020/07/26)


定期的に並列処理するを実行し、
最後までイベントが実行されない時の原因と対策を紹介します。


ショートカット
■イベント出現条件を使っている場合
■指定動作の全実行を使っている場合


  
■イベント出現条件を使っている場合

イベント出現条件を設定している場合、
イベントの設定状況によっては、最後までイベントが実行されない事があります。



【1】

以下のように定期的に並列処理するイベント出現条件が設定されている場合、
スイッチ[0001]がONになると、このイベントが実行されます。





【2】

初めの「文章:あいうえお」は問題なく実行されます。





【3】

次の「スイッチの操作:[0001]をOFFにする」が実行される事により、
このイベントのイベント出現条件の条件が満たさなくなりますが、
この段階ではまだスイッチのOFFが有効にはなっていないため、イベント処理は続きます。





【4】

ウェイトの実行により、スイッチのOFF設定が有効になります。
定期的に並列処理するでは、イベント出現条件が満たさなくなった時点でイベントが終了するので、
ウェイト以降の処理(文章の表示:かきくけこ)は実行されません。



このようなイベントを設定する場合は…
◆スイッチの操作:[0001]をONにする
の設定をイベント実行内容の最後に設定してください。



上図の設定…
◆文章:あいうえお
◆スイッチの操作:[0001]をOFFにする
◆ウェイト:0.0秒
◆文章:かくきけこ
をマップイベントとコモンイベントに定期的に並列処理するで設定した場合、
スイッチ[0001]をONにしても、両方とも「かきくけこ」は表示されません。

しかし再びスイッチ[0001]をONにした時には、
マップイベントの方はイベント実行内容最初からの処理になるため、
再び「あいうえお」→スイッチ[0001]がOFFと処理されるのに対し、
コモンイベントの方は前回処理が止まった続きからの処理になるため、
「かきくけこ」が表示され、そして「あいうえお」→スイッチ[0001]がOFFが処理されます。



なお、自動的に始まるの場合は、途中でイベント出現条件が満たされなくなっても、
イベント実行内容の最後まで処理されます。


▲トップへ戻る▲


  
■指定動作の全実行を使っている場合

指定動作の全実行を使っている場合、イベントの設定状況によっては、
指定動作の全実行の所で処理が止まってしまう事があります。



■バグの確認

このバグの確認方法は、指定動作の全実行の前後に変数を1つずつ設定してください。

◆変数の操作:[0001:確認用1]加算,1
◆指定動作の全実行
◆変数の操作:[0002:確認用2]加算,1



そして「イベントが止まった!」と思ったら、F9で変数の値を確認してみてください。

変数0001番=560
変数0002番=559

のように下の方の変数の値が1少ない場合は、
この指定動作の全実行でイベント処理が止まっている事が分かります。



■原因

イベントコマンド:キャラクターの動作指定の設定にて、
オプション「移動できない場合は無視」にチェックを入れずにマップイベントの移動設定を行い、
その移動設定によって、移動できないマスへ移動してしまう状態である場合は、
指定動作の全実行の所でイベント処理が止まってしまいます。



■対策

キャラクターの動作指定にオプション「移動できない場合は無視」を設定するなど、
原因になりそうな部分は排除する必要があります。



どうしても原因元が分からない時には…
◆指定動作の全解除
◆キャラクターの動作指定:〜実行したい動作指定〜
◆指定動作の全実行
と言ったように、一旦動作指定を全て解除してから、新たな動作指定を設定すると良いでしょう。



他のイベントでキャラクターの動作指定を使っているために、指定動作の全解除が使えない時には…
◆キャラクターの動作指定:〜実行したい動作指定〜
◆ウェイト:〜動作指定を動かす時間〜
と言ったように、指定動作の全実行の代わりにウェイトを使うと良いでしょう。

【移動速度に合わせたウェイトの設定時間を確認】


▲トップへ戻る▲



◎関連ページ

●ツクールの仕様
●「自動的に始まる」と「定期的に並列処理する」の違い
●イベントコマンド:キャラクターの動作指定
●イベントコマンド:指定動作の全実行
●イベントコマンド:指定動作の全解除
●イベントコマンド:ウェイト

YADOTトップ  このサイトは何?  気紛れな空間へ戻る  メール