Pandaさん有難うございます_(._.)_質問の内容・意図が合ってるか自信ないのですが、
戦闘高速化のプラグインを使用したところエラーが出るので、その解決方法を知りたいということでしたら、
まずその3つのプラグインとは何で、
エラーが発生する2つとはどれとどれで、
エラーの発生しない残り1つを使うのではダメな理由を書いていただかないと、
こちらとしても回答のしようがないかなと思います。
また「どこかのタイミング」だけでは手がかりが全くありません。
以前スタックトレースで原因特定する方法を教わってらっしゃると思いますが、
それである程度原因を特定していただけると、回答しやすいかなと思います。
質問内容がそういう具体的な話ではなくて、
プラグインを使って戦闘高速化をするとエラーが発生する際の、一般的に考えられる理由は何か、
という漠然とした質問であれば、以下のような理由が考えられますかね。
標準機能の高速化は、単にウェイト時間を1/3にしているだけなのでそもそもエラーが起きにくいというのと、
- 単純にプラグインにエラーがある(プラグイン作者も毎回完璧にテストして公開しているわけではないので)
- プラグインの導入方法が間違っている(MV用のものを入れている、導入順序が違っている)
- パラメータ等の設定値が間違っている
- プラグインで想定していない使い方をしている
- 他のプラグインと競合している(これが理由としては一番ありえそう)
プラグイン側が標準機能と競合しないように作られているため、エラーは起きにくいです。
プラグインの戦闘高速化は、標準のものより多機能なのでそれだけエラーが起きやすく、
また全ての他のプラグインと競合しないようにするのは無理なため、どうしても競合によるエラーは発生します。
今F12で試したら出ました・・・!!質問の内容・意図が合ってるか自信ないのですが、
戦闘高速化のプラグインを使用したところエラーが出るので、その解決方法を知りたいということでしたら、
まずその3つのプラグインとは何で、
エラーが発生する2つとはどれとどれで、
エラーの発生しない残り1つを使うのではダメな理由を書いていただかないと、
こちらとしても回答のしようがないかなと思います。
また「どこかのタイミング」だけでは手がかりが全くありません。
以前スタックトレースで原因特定する方法を教わってらっしゃると思いますが、
それである程度原因を特定していただけると、回答しやすいかなと思います。
質問内容がそういう具体的な話ではなくて、
プラグインを使って戦闘高速化をするとエラーが発生する際の、一般的に考えられる理由は何か、
という漠然とした質問であれば、以下のような理由が考えられますかね。
標準機能の高速化は、単にウェイト時間を1/3にしているだけなのでそもそもエラーが起きにくいというのと、
- 単純にプラグインにエラーがある(プラグイン作者も毎回完璧にテストして公開しているわけではないので)
- プラグインの導入方法が間違っている(MV用のものを入れている、導入順序が違っている)
- パラメータ等の設定値が間違っている
- プラグインで想定していない使い方をしている
- 他のプラグインと競合している(これが理由としては一番ありえそう)
プラグイン側が標準機能と競合しないように作られているため、エラーは起きにくいです。
プラグインの戦闘高速化は、標準のものより多機能なのでそれだけエラーが起きやすく、
また全ての他のプラグインと競合しないようにするのは無理なため、どうしても競合によるエラーは発生します。
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 を使うとエラーになるのかもしれません。
①のコアスクリプトの更新で、エラーは解消するかもしれません。
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() を入力して、その時点でのスタックトレースを見る
お世話になっております_(._.)_エラーが出るタイミングは本当に戦闘中でしょうか。
戦闘を終えてからセーブするとか、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() を入力して、その時点でのスタックトレースを見る
スクショを見る限りだと、6406行目にbreakpointを設定してしまっていますね。予め開いておいたら、エラー画面になる前にBreakPoint?が出ました・・・
原因がはっきりとわからないのはもどかしいですが、解決されたのであれば何よりです。大体いつも5分使い続ければ出るのですが、20分程度試したところ、挙動が変わったのと、攻撃終わった後の不自然な動きも無くなり、恐らくエラーが出なくなりました_(._.)_
DarkPlasmaさん、ご教授頂きありがとうございます_(._.)_スクショを見る限りだと、6406行目にbreakpointを設定してしまっていますね。
6405行目に設定することで、問題の JsonEx._encode の呼び出しがどこから来るのかわかれば大きなヒントになるだろう、という意図でした。
console.trace() については忘れてください。Sources右側のCall Stackを見れば十分でした。
もし入力するのであれば、スクショで入力されている枠ではなく、下の大きな白い枠です。
余談ですが、ここにはJavaScriptを入力してその結果を見ることができる機能が備わっています。
デバッグのときに便利なので、気が向いたら活用してみてください。
原因がはっきりとわからないのはもどかしいですが、解決されたのであれば何よりです。
戦闘中にJsonEx._encodeを呼び出している元凶が残っている限り、将来再発する危険は十分にありますが、調べるコストをかけるべきかどうかの判断はお任せします。