戦闘高速化をした時のみにエラー発生

MapleTea

ユーザー
お世話になっております_(._.)_

初めに3つ程、戦闘高速化のプラグインを使わせて頂きました。

内2つは、高速化をしているどこかのタイミングで「Object too deep」というエラーが発生してしまいます。

MZの標準でついているEnterの中速化はいくらやっても発生しないのですが、プラグインを使うと発生する理由が分からず、詳しい情報お持ちの方はいらっしゃいますでしょうか。

お忙しい中恐れ入りますが、宜しくお願いいたします_(._.)_
 

panda

ユーザー
質問の内容・意図が合ってるか自信ないのですが、
戦闘高速化のプラグインを使用したところエラーが出るので、その解決方法を知りたいということでしたら、
まずその3つのプラグインとは何で、
エラーが発生する2つとはどれとどれで、
エラーの発生しない残り1つを使うのではダメな理由を書いていただかないと、
こちらとしても回答のしようがないかなと思います。
また「どこかのタイミング」だけでは手がかりが全くありません。
以前スタックトレースで原因特定する方法を教わってらっしゃると思いますが、
それである程度原因を特定していただけると、回答しやすいかなと思います。

質問内容がそういう具体的な話ではなくて、
プラグインを使って戦闘高速化をするとエラーが発生する際の、一般的に考えられる理由は何か、
という漠然とした質問であれば、以下のような理由が考えられますかね。
  • 単純にプラグインにエラーがある(プラグイン作者も毎回完璧にテストして公開しているわけではないので)
  • プラグインの導入方法が間違っている(MV用のものを入れている、導入順序が違っている)
  • パラメータ等の設定値が間違っている
  • プラグインで想定していない使い方をしている
  • 他のプラグインと競合している(これが理由としては一番ありえそう)
標準機能の高速化は、単にウェイト時間を1/3にしているだけなのでそもそもエラーが起きにくいというのと、
プラグイン側が標準機能と競合しないように作られているため、エラーは起きにくいです。
プラグインの戦闘高速化は、標準のものより多機能なのでそれだけエラーが起きやすく、
また全ての他のプラグインと競合しないようにするのは無理なため、どうしても競合によるエラーは発生します。
 

MapleTea

ユーザー
質問の内容・意図が合ってるか自信ないのですが、
戦闘高速化のプラグインを使用したところエラーが出るので、その解決方法を知りたいということでしたら、
まずその3つのプラグインとは何で、
エラーが発生する2つとはどれとどれで、
エラーの発生しない残り1つを使うのではダメな理由を書いていただかないと、
こちらとしても回答のしようがないかなと思います。
また「どこかのタイミング」だけでは手がかりが全くありません。
以前スタックトレースで原因特定する方法を教わってらっしゃると思いますが、
それである程度原因を特定していただけると、回答しやすいかなと思います。

質問内容がそういう具体的な話ではなくて、
プラグインを使って戦闘高速化をするとエラーが発生する際の、一般的に考えられる理由は何か、
という漠然とした質問であれば、以下のような理由が考えられますかね。
  • 単純にプラグインにエラーがある(プラグイン作者も毎回完璧にテストして公開しているわけではないので)
  • プラグインの導入方法が間違っている(MV用のものを入れている、導入順序が違っている)
  • パラメータ等の設定値が間違っている
  • プラグインで想定していない使い方をしている
  • 他のプラグインと競合している(これが理由としては一番ありえそう)
標準機能の高速化は、単にウェイト時間を1/3にしているだけなのでそもそもエラーが起きにくいというのと、
プラグイン側が標準機能と競合しないように作られているため、エラーは起きにくいです。
プラグインの戦闘高速化は、標準のものより多機能なのでそれだけエラーが起きやすく、
また全ての他のプラグインと競合しないようにするのは無理なため、どうしても競合によるエラーは発生します。
Pandaさん有難うございます_(._.)_

エラー画面でF8かF12との事でしたが、どのFキーを押しても画面が出ず、してませんでした_(._.)_

2つのプラグインは下記です。
①VeryFastBattleMZ(神無月様)
②FastBattle(あわやまたな様)
③スピードスターバトル(ケケー様)

①と②で同じエラーが発生します。
特定のスキルでエラーが出てるっぽいので、故意に出しながら使ってみてる最中です_(._.)_

③は自動で高速化してしまい、解決方法が分からず一旦中断って感じです。
 

MapleTea

ユーザー
質問の内容・意図が合ってるか自信ないのですが、
戦闘高速化のプラグインを使用したところエラーが出るので、その解決方法を知りたいということでしたら、
まずその3つのプラグインとは何で、
エラーが発生する2つとはどれとどれで、
エラーの発生しない残り1つを使うのではダメな理由を書いていただかないと、
こちらとしても回答のしようがないかなと思います。
また「どこかのタイミング」だけでは手がかりが全くありません。
以前スタックトレースで原因特定する方法を教わってらっしゃると思いますが、
それである程度原因を特定していただけると、回答しやすいかなと思います。

質問内容がそういう具体的な話ではなくて、
プラグインを使って戦闘高速化をするとエラーが発生する際の、一般的に考えられる理由は何か、
という漠然とした質問であれば、以下のような理由が考えられますかね。
  • 単純にプラグインにエラーがある(プラグイン作者も毎回完璧にテストして公開しているわけではないので)
  • プラグインの導入方法が間違っている(MV用のものを入れている、導入順序が違っている)
  • パラメータ等の設定値が間違っている
  • プラグインで想定していない使い方をしている
  • 他のプラグインと競合している(これが理由としては一番ありえそう)
標準機能の高速化は、単にウェイト時間を1/3にしているだけなのでそもそもエラーが起きにくいというのと、
プラグイン側が標準機能と競合しないように作られているため、エラーは起きにくいです。
プラグインの戦闘高速化は、標準のものより多機能なのでそれだけエラーが起きやすく、
また全ての他のプラグインと競合しないようにするのは無理なため、どうしても競合によるエラーは発生します。
今F12で試したら出ました・・・!!
下記のエラーの様でした_(._.)_
1684923270069.png

1684923436024.png
 

panda

ユーザー
スクショの情報から推測なので、間違っているかもしれませんが。

①コアスクリプトのバージョンが古い?
2枚目の画像にある rmmz_core.js の6389行目が、手元のコアスクリプトと合っておらず、
古いバージョンのものと突合すると、v1.2.1~v1.3.0のコアスクリプトではないかと推測されます。
コアスクリプトが古いため、一部のプラグインでエラーが出ている可能性があります。
ゲーム>コアスクリプトの更新で、最新のv1.6.0にすることをお勧めします。

②NRP_DynamicReadTxt.js がエラーの原因?
1枚目の画像で、エラーのログの上の行が、NRP_DynamicReadTxt.js になっています。
NRP_DynamicReadTxt.js から rmmz_core.js の JsonEx._encode が呼ばれて、そこでエラーになっているので、
戦闘高速化でエラーというよりは、戦闘高速化と一緒に NRP_DynamicReadTxt.js を使うとエラーになるのかもしれません。
①のコアスクリプトの更新で、エラーは解消するかもしれません。
 

MapleTea

ユーザー
スクショの情報から推測なので、間違っているかもしれませんが。

①コアスクリプトのバージョンが古い?
2枚目の画像にある rmmz_core.js の6389行目が、手元のコアスクリプトと合っておらず、
古いバージョンのものと突合すると、v1.2.1~v1.3.0のコアスクリプトではないかと推測されます。
コアスクリプトが古いため、一部のプラグインでエラーが出ている可能性があります。
ゲーム>コアスクリプトの更新で、最新のv1.6.0にすることをお勧めします。

②NRP_DynamicReadTxt.js がエラーの原因?
1枚目の画像で、エラーのログの上の行が、NRP_DynamicReadTxt.js になっています。
NRP_DynamicReadTxt.js から rmmz_core.js の JsonEx._encode が呼ばれて、そこでエラーになっているので、
戦闘高速化でエラーというよりは、戦闘高速化と一緒に NRP_DynamicReadTxt.js を使うとエラーになるのかもしれません。
①のコアスクリプトの更新で、エラーは解消するかもしれません。
Pandaさん有難うございます_(._.)_
療養中により遅くなりました_(._.)_

バージョン確認したら確かに1.30でしたので、1.6にして1度試してみます。
またそちらのプラグインは現状使ってないので1回削除します_(._.)_
 

MapleTea

ユーザー
お世話になります。
1回試してみました_(._.)_
コアを1.60に更新と、プラグインを削除してやりましたが、同じ様な所かなと思いますが、6406がログで出るようです_(._.)_
1685266437370.png

1685266549380.png
 

DarkPlasma

ユーザー
エラーが出るタイミングは本当に戦闘中でしょうか。
戦闘を終えてからセーブするとか、RetryBattle.jsを使っていて、戦闘に入ったときに起きるとかではなく。
戦闘中にJsonEx._encodeが呼ばれるのは不自然であるように思います。

VeryFastBattleMZ.js 1.1.0

FasterBattle.js 1.0.0

どちらにしてもそういったコードは書かれていないし、コアスクリプトでもセーブ時や装備変更プレビューなどでしか使われていないはずです。
戦闘高速化以外の全てのプラグインをOFFにし、コアスクリプト1.6.0に更新して何も手を加えていない状態でも出るのでしょうか。

あるいは、 JsonEx._encode の6405行辺りにbreak pointを仕込んで試せば、何かわかるかもしれません。

貼っていただいたSources画面をエラーが出る前に開いておき、rmmz_core.jsの6405行目をクリックして選択した状態にしてからエラーが出るような動きを試します。
6405行の処理で停止しますので、以下2点を確認します。

- valueにマウスオーバーして、どんな値が渡されているのか見る
- Consoleに console.trace() を入力して、その時点でのスタックトレースを見る
 

MapleTea

ユーザー
エラーが出るタイミングは本当に戦闘中でしょうか。
戦闘を終えてからセーブするとか、RetryBattle.jsを使っていて、戦闘に入ったときに起きるとかではなく。
戦闘中にJsonEx._encodeが呼ばれるのは不自然であるように思います。

VeryFastBattleMZ.js 1.1.0

FasterBattle.js 1.0.0

どちらにしてもそういったコードは書かれていないし、コアスクリプトでもセーブ時や装備変更プレビューなどでしか使われていないはずです。
戦闘高速化以外の全てのプラグインをOFFにし、コアスクリプト1.6.0に更新して何も手を加えていない状態でも出るのでしょうか。

あるいは、 JsonEx._encode の6405行辺りにbreak pointを仕込んで試せば、何かわかるかもしれません。

貼っていただいたSources画面をエラーが出る前に開いておき、rmmz_core.jsの6405行目をクリックして選択した状態にしてからエラーが出るような動きを試します。
6405行の処理で停止しますので、以下2点を確認します。

- valueにマウスオーバーして、どんな値が渡されているのか見る
- Consoleに console.trace() を入力して、その時点でのスタックトレースを見る
DarkPlasmaさんありがとうございます_(._.)_
プラグインファイルは最新でしたが、念のため上書きしてから実行しました。

プラグインすべて切るのは色々設定から始めないと難しいため、別で試します_(._.)_

予め開いておいたら、エラー画面になる前にBreakPoint?が出ました・・・

1685355747840.png

1685355704911.png


Consoleはこちらでいいのでしょうか・・・??
1685355785508.png
 
最後に編集:

MapleTea

ユーザー
後、確かにバトル中ですので
以下に動画を失礼します_(._.)_

またスキルのメモ欄に記載してるコードで思い当たる節が1つ見つかり、余計な1行を消して試してみています、下記の動画ではまた適用されてません_(._.)_

 
最後に編集:

MapleTea

ユーザー
エラーが出るタイミングは本当に戦闘中でしょうか。
戦闘を終えてからセーブするとか、RetryBattle.jsを使っていて、戦闘に入ったときに起きるとかではなく。
戦闘中にJsonEx._encodeが呼ばれるのは不自然であるように思います。

VeryFastBattleMZ.js 1.1.0

FasterBattle.js 1.0.0

どちらにしてもそういったコードは書かれていないし、コアスクリプトでもセーブ時や装備変更プレビューなどでしか使われていないはずです。
戦闘高速化以外の全てのプラグインをOFFにし、コアスクリプト1.6.0に更新して何も手を加えていない状態でも出るのでしょうか。

あるいは、 JsonEx._encode の6405行辺りにbreak pointを仕込んで試せば、何かわかるかもしれません。

貼っていただいたSources画面をエラーが出る前に開いておき、rmmz_core.jsの6405行目をクリックして選択した状態にしてからエラーが出るような動きを試します。
6405行の処理で停止しますので、以下2点を確認します。

- valueにマウスオーバーして、どんな値が渡されているのか見る
- Consoleに console.trace() を入力して、その時点でのスタックトレースを見る
お世話になっております_(._.)_

エラーが起きるときはいつも同じスキルの様な気がしたので、エラーの出るスキルをメモして確認しました。

エラーの出たスキルが思い当たる節の1行が全部記載されており、それを消してから行いました。
大体いつも5分使い続ければ出るのですが、20分程度試したところ、挙動が変わったのと、攻撃終わった後の不自然な動きも無くなり、恐らくエラーが出なくなりました_(._.)_

この一部スキルのメモ欄に書いていた余計な1行が壊していたのかもしれません。

本当に直ったかは正直自信はないため、また同じエラーが出ましたら再度情報提供させて下さい_(._.)_
見る限りは動きが全然別物になったので、多分直ったかなと思ってます_(._.)_
 

DarkPlasma

ユーザー
予め開いておいたら、エラー画面になる前にBreakPoint?が出ました・・・
スクショを見る限りだと、6406行目にbreakpointを設定してしまっていますね。
6405行目に設定することで、問題の JsonEx._encode の呼び出しがどこから来るのかわかれば大きなヒントになるだろう、という意図でした。

console.trace() については忘れてください。Sources右側のCall Stackを見れば十分でした。
もし入力するのであれば、スクショで入力されている枠ではなく、下の大きな白い枠です。

余談ですが、ここにはJavaScriptを入力してその結果を見ることができる機能が備わっています。
デバッグのときに便利なので、気が向いたら活用してみてください。

大体いつも5分使い続ければ出るのですが、20分程度試したところ、挙動が変わったのと、攻撃終わった後の不自然な動きも無くなり、恐らくエラーが出なくなりました_(._.)_
原因がはっきりとわからないのはもどかしいですが、解決されたのであれば何よりです。
戦闘中にJsonEx._encodeを呼び出している元凶が残っている限り、将来再発する危険は十分にありますが、調べるコストをかけるべきかどうかの判断はお任せします。
 

MapleTea

ユーザー
スクショを見る限りだと、6406行目にbreakpointを設定してしまっていますね。
6405行目に設定することで、問題の JsonEx._encode の呼び出しがどこから来るのかわかれば大きなヒントになるだろう、という意図でした。

console.trace() については忘れてください。Sources右側のCall Stackを見れば十分でした。
もし入力するのであれば、スクショで入力されている枠ではなく、下の大きな白い枠です。

余談ですが、ここにはJavaScriptを入力してその結果を見ることができる機能が備わっています。
デバッグのときに便利なので、気が向いたら活用してみてください。


原因がはっきりとわからないのはもどかしいですが、解決されたのであれば何よりです。
戦闘中にJsonEx._encodeを呼び出している元凶が残っている限り、将来再発する危険は十分にありますが、調べるコストをかけるべきかどうかの判断はお任せします。
DarkPlasmaさん、ご教授頂きありがとうございます_(._.)_
確かに1行間違えてしまっておりました・・・。

次のアップデートでは「あまり出ない様に改善しました」という感じで、一先ず様子を見ようと思います。
もし再発しましたら、再度情報を記載した上でこちらのスレッドへ投稿すると思いますので、その時はよろしくお願いします_(._.)_
 
トップ