【解決済み】コモンイベント呼び出し時のエラー

アバター
cat3
記事: 3
登録日時: 2019年2月13日(水) 01:46

【解決済み】コモンイベント呼び出し時のエラー

投稿記事by cat3 » 2019年2月13日(水) 02:37

はじめまして、一つ困ったことがあり質問させていただきました。

会話中のキャラクター立ち絵を表示するコモンイベントを制作しています。
会話前に、ステータス確認し、立ち絵を表示した後、その後目パチなどのアニメーションを開始するものです。

しかし以下のようなエラー表示が出てしまい詰まっています。
(トリアコンタンさんのエラー表示改善プラグインを利用させていただいてます)

Error Common event calls exceeded the limit

Error: Common event calls exceeded the limit
Game_Interpreter.checkOverflow (chrome-extension://odlameecjipmbmbejkplpemijjgpljce/js/rpg_objects.js:8784:15)
Game_Interpreter.initialize (chrome-extension://odlameecjipmbmbejkplpemijjgpljce/js/rpg_objects.js:8773:10)
new Game_Interpreter (chrome-extension://odlameecjipmbmbejkplpemijjgpljce/js/rpg_objects.js:8768:21)
Game_Interpreter.setupChild (chrome-extension://odlameecjipmbmbejkplpemijjgpljce/js/rpg_objects.js:9378:30)
Game_Interpreter.command117 (chrome-extension://odlameecjipmbmbejkplpemijjgpljce/js/rpg_objects.js:9372:14)
Game_Interpreter.executeCommand (chrome-extension://odlameecjipmbmbejkplpemijjgpljce/js/rpg_objects.js:8930:34)
Game_Interpreter.update (chrome-extension://odlameecjipmbmbejkplpemijjgpljce/js/rpg_objects.js:8838:19)
Game_Interpreter.updateChild (chrome-extension://odlameecjipmbmbejkplpemijjgpljce/js/rpg_objects.js:8849:32)
Game_Interpreter.update (chrome-extension://odlameecjipmbmbejkplpemijjgpljce/js/rpg_objects.js:8832:18)
Game_Interpreter.updateChild (chrome-extension://odlameecjipmbmbejkplpemijjgpljce/js/rpg_objects.js:8849:32)


コモンイベントの大まかな構造は以下のような形です。

 イベント接触時ステータス確認 (ステータスと装備を確認)
 ┃
 ┣立ち絵表示コントロール (座標定義)
 ┃ ┣パーツA表示 (ステータスに合わせたピクチャを表示)
 ┃ ┣パーツB表示 (ステータスに合わせたピクチャを表示)
 ┃ ┣パーツC表示 (ステータスに合わせたピクチャを表示)
 ┃ ┣・・・
 ┃ ┗アニメーション開始  (並列処理用アニメーションスイッチON)
 ┗会話コントロール  (モブ種別と進行度によるセリフの変化を管理)
   ┣会話中アニメーション (会話中にポーズなどを変更)
   ┗立ち絵消去処理  (変数およびスイッチの初期化とピクチャの消去)

 アニメーション用並列処理(タイミングが被らないよう各パーツのトリガースイッチをON)
 パーツAアニメーション並列処理 (パーツAのアニメーションを再生後、自身の条件スイッチをOFFに)
 パーツBアニメーション並列処理 (パーツBのアニメーションを再生後、自身の条件スイッチをOFFに)
 パーツCアニメーション並列処理 (パーツCのアニメーションを再生後、自身の条件スイッチをOFFに)

アニメーション開始時の並列処理条件スイッチオン以降にエラーが出るみたいなんですが、再現性が低くたまにしか現れません。
循環参照になっている場所はない・・・はずです。
また並列処理イベントはこちらの記事を参考にさせていただき、変数とスイッチをスクリプトで記述しています。
https://paradre.com/%E4%B8%A6%E5%88%97%E5%87%A6%E7%90%86%E3%81%A7%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81%E3%82%84%E5%A4%89%E6%95%B0%E3%82%92%E6%93%8D%E4%BD%9C%E3%81%99%E3%82%8B%E3%81%A8%E9%87%8D%E3%81%8F%E3%81%AA%E3%82%8B/

どうかお知恵をお貸しください。
よろしくおねがいします。
最後に編集したユーザー cat3 on 2019年2月18日(月) 23:44 [ 編集 1 回目 ]

astral
記事: 39
登録日時: 2018年11月14日(水) 00:21

Re: コモンイベント呼び出し時のエラー

投稿記事by astral » 2019年2月13日(水) 16:47

こんにちは。

イベント処理の中断やイベントが最後まで実行されていない形で、100回子として呼び出されると
Common event calls exceeded the limit
というエラーとなります。

┣コモンイベント呼び出し
 ┣コモンイベント呼び出し
  ┣コモンイベント呼び出し
   ┣コモンイベント呼び出し
    ┣コモンイベント呼び出し
     ┣コモンイベント呼び出し
      ┣以降100回まで


大まかな構造で示された形なら、100回以上呼び出しても上記構造にはならないので問題ないはずですが。

この現在実行中のコモンイベントの呼び出しの深さは次で確認出来ます。
◆変数の操作:#0001 = this._depth

スイッチと変数のリフレッシュをなくすと、出現条件やトリガーを判定しないということになります。
プラグインのよっても、変更を検知出来ない場合もあります。
アニメーション用並列処理でトリガーとなるスイッチや変数を、リフレッシュしない形で操作した場合、
自身のトリガーも判定しないので、実行されない・もしくは実行しつづけたままになります。
アバター
cat3
記事: 3
登録日時: 2019年2月13日(水) 01:46

Re: コモンイベント呼び出し時のエラー

投稿記事by cat3 » 2019年2月13日(水) 18:06

ご回答ありがとうございます!

イベント処理の中断やイベントが最後まで実行されていない形で、100回子として呼び出されると
Common event calls exceeded the limit
というエラーとなります。


という事はどこかに循環参照が隠れているか、あるいは並列処理がなんらかの悪さをしている形かもしれませんね。
This._depthで一通り確認してみたところ特定の数字ではなく、いきなりエラーが入ってくるので、並列処理のタイミングに問題が隠れてる可能性が高いかもしれません。

アニメーション用並列処理でトリガーとなるスイッチや変数を、リフレッシュしない形で操作した場合、
自身のトリガーも判定しないので、実行されない・もしくは実行しつづけたままになります。


こちらも、ありがとうございます!余計なエラーを発生させるところでした!!
ただ、こちらを修正しても症状は治らないみたいなので、別のところに問題が隠れているみたいですね。
プラグインも再度見直ししながら、気長にやってみます。

本当にありがとうございました!
アバター
cat3
記事: 3
登録日時: 2019年2月13日(水) 01:46

Re: コモンイベント呼び出し時のエラー

投稿記事by cat3 » 2019年2月14日(木) 00:34

完全に解決しました!!
教えていただいた方法で穴を一つ一つ潰した結果、見つけることができました。

なんて事はない、私のバカげたミスです。
単純な循環参照でした。
スクリプトで呼び出していたコモンイベントの記述ミスです。
コモンイベント番号を指定する変数が狂っていました。

this.setupChild($dataCommonEvents[552 + $gameVariables.value(812)].list, 0)


こいつです。

ありがとうございました!
これでやっと一歩進めます。

“MV:質問” へ戻る