【解決済】RangeError: Maximum call stack size exceededというのが出ます。

朝倉あつき

ユーザー
こんにちは、何時もお世話になっております。
以前も質問させて頂きましたが、どうしても分からないので質問させて頂きます。

SRPG.coreを使っていますが、特定のアクターを操作しようとすると『RangeError: Maximum call stack size exceeded』と出ます。

F8を押すと

RangeError: Maximum call stack size exceeded
at Game_Event.Game_CharacterBase.makeRangeTable (SRPG_core.js:2651)
at Game_Event.Game_CharacterBase.makeRangeTable (SRPG_core.js:2707)
at Game_Event.Game_CharacterBase.makeRangeTable (SRPG_core.js:2679)
at Game_Event.Game_CharacterBase.makeRangeTable (SRPG_core.js:2665)
at Game_Event.Game_CharacterBase.makeRangeTable (SRPG_core.js:2693)
at Game_Event.Game_CharacterBase.makeRangeTable (SRPG_core.js:2707)
at Game_Event.Game_CharacterBase.makeRangeTable (SRPG_core.js:2679)
at Game_Event.Game_CharacterBase.makeRangeTable (SRPG_core.js:2665)
at Game_Event.Game_CharacterBase.makeRangeTable (SRPG_core.js:2693)
at Game_Event.Game_CharacterBase.makeRangeTable (SRPG_core.js:2707)

と出ます。
この場合どうすれば良いでしょうか?
未熟な質問で申し訳ありませんがよろしくお願いします。
 

タシラカ

ユーザー
どうもこんにちは。
興味が湧いたのでちょっとサンプルプロジェクトを落として中身を見てみました。
「特定のアクター」とは恐らく攻撃射程か移動射程を高目に設定していませんか?(メガネクイー)

エラー自体は普遍的なものでしょうね。
これらの算出に再帰処理というテクニックを使っているんですが、それが呼び出され過ぎてシステムのセフティに達して強制終了。
1増える度に指数関数的に負荷が増大するはずなので
例えばマップ全体を射程にしようとして極端に高く設定するとそのエラーが出て落ちても不思議ではないです。

対策としては処理の最適化、特に再帰処理を使わずループ処理で書き直す事でしょうけど
面倒くさい第三者が中途半端に口を出す事でもないので
サンプルから逸脱しない程度に射程を調整するしかないのではないでしょうか?
作者さんも移動+基本攻撃射程が10以上になる事を想定していない気がするので部分的に改善しても他に歪が出る可能性があります。
もしもこの推測の前提が見当外れなら再考したいので特定のアクターの詳細を教えてください。
 

朝倉あつき

ユーザー
どうもこんにちは。
興味が湧いたのでちょっとサンプルプロジェクトを落として中身を見てみました。
「特定のアクター」とは恐らく攻撃射程か移動射程を高目に設定していませんか?(メガネクイー)

エラー自体は普遍的なものでしょうね。
これらの算出に再帰処理というテクニックを使っているんですが、それが呼び出され過ぎてシステムのセフティに達して強制終了。
1増える度に指数関数的に負荷が増大するはずなので
例えばマップ全体を射程にしようとして極端に高く設定するとそのエラーが出て落ちても不思議ではないです。

対策としては処理の最適化、特に再帰処理を使わずループ処理で書き直す事でしょうけど
面倒くさい第三者が中途半端に口を出す事でもないので
サンプルから逸脱しない程度に射程を調整するしかないのではないでしょうか?
作者さんも移動+基本攻撃射程が10以上になる事を想定していない気がするので部分的に改善しても他に歪が出る可能性があります。
もしもこの推測の前提が見当外れなら再考したいので特定のアクターの詳細を教えてください。

お返事ありがとうございます!
スキルの攻撃射程は全て1で移動射程は添付の通り4です!
このアクターを操作しようとすると止まってしまいます。

Lgowob_00001.png
 
SRPG.coreはデータベースのメモの依存率が高く、入力ミスや入力漏れがある場合だとエラーになる事があります。

自分の場合、入力漏れがあると
RangeError: Maximum call stack size exceeded
がよく出てくるので

特定のアクターだけエラーが出るのであれば、入力ミスや入力漏れがある可能性が高いので確認してみてはどうですか?

もし、入力ミスや入力漏れがないのであれば他のプラグインの競合を考えて、SRPG.coreのみONにして、他のプラグインをON、OFFを繰り返しながら確認してみてはどうですか?
 

タシラカ

ユーザー
お返事ありがとうございます!
スキルの攻撃射程は全て1で移動射程は添付の通り4です!
このアクターを操作しようとすると止まってしまいます。
ですよね
自分で書いててこれあからさまに重くなるし絶対気付くよなって思いました
ssから分かる事は習得スキルと職業が多いな、という事くらいです
いくつか推測は出来るけど本命が外れたのなら決め手に欠けます
やはりこちらの環境でも同様のエラーを確認しないと解明は無理でしょう

今現在lemon-slice.netで公開されている
SRPGMVコンバータ参考用プロジェクト(SRPGconverterMV127.zip)で動作確認していますけど
恐らくデータベースの設定内容とテストマップだけで十分です
エラー内容的に実行環境に依存する可能性もありますけど
dataフォルダをzip圧縮して適当なローダにアップロードしてもらえませんか?

特定のアクターだけエラーが出るのであれば、入力ミスや入力漏れがある可能性が高いので確認してみてはどうですか?
ああ。やっぱりそうなんですか。
自分に出来る事は設定ミスがどういうメカニズムでエラーに繋がるのか解明する事くらいで
設定ミスを発見するのは桃月さんご自身の領分でしょうね。
そして設定ミスを発見したらそれを使うなとしか言いようがないので出番がない気がしてきた。
スキル>武器>防具>職業の順にミスしている可能性が高いです。特に装備中の装備品、習得済のスキル設定が怪しい。
あとはレベルを引き上げたりテスト中に変なスキルを習得させてそれに気付かず放置している可能性。
 
最後に編集:

朝倉あつき

ユーザー
SRPG.coreはデータベースのメモの依存率が高く、入力ミスや入力漏れがある場合だとエラーになる事があります。

自分の場合、入力漏れがあると
RangeError: Maximum call stack size exceeded
がよく出てくるので

特定のアクターだけエラーが出るのであれば、入力ミスや入力漏れがある可能性が高いので確認してみてはどうですか?

もし、入力ミスや入力漏れがないのであれば他のプラグインの競合を考えて、SRPG.coreのみONにして、他のプラグインをON、OFFを繰り返しながら確認してみてはどうですか?
お返事ありがとうございます。
なるほど……、ちょっと確認してみる事にします。
実は、先程最初からやり直したんですがその時はそのアクターは通常に動いておりました。

ですよね
自分で書いててこれあからさまに重くなるし絶対気付くよなって思いました
ssから分かる事は習得スキルと職業が多いな、という事くらいです
いくつか推測は出来るけど本命が外れたのなら決め手に欠けます
やはりこちらの環境でも同様のエラーを確認しないと解明は無理でしょう

今現在lemon-slice.netで公開されている
SRPGMVコンバータ参考用プロジェクト(SRPGconverterMV127.zip)で動作確認していますけど
恐らくデータベースの設定内容とテストマップだけで十分です
エラー内容的に実行環境に依存する可能性もありますけど
dataフォルダをzip圧縮して適当なローダにアップロードしてもらえませんか?


ああ。やっぱりそうなんですか。
自分に出来る事は設定ミスがどういうメカニズムでエラーに繋がるのか解明する事くらいで
設定ミスを発見するのは桃月さんご自身の領分でしょうね。
そして設定ミスを発見したらそれを使うなとしか言いようがないので出番がない気がしてきた。
スキル>武器>防具>職業の順にミスしている可能性が高いです。特に装備中の装備品、習得済のスキル設定が怪しい。
あとはレベルを引き上げたりテスト中に変なスキルを習得させてそれに気付かず放置している可能性。

お返事ありがとうございます。
そうですね、今やり直してテストプレイしているのでその時に何かあったらプロジェクトのアップをしたいと思います。
その時はよろしくお願いします!
 

朝倉あつき

ユーザー
先程、色々確認してみた所、武器のメモ欄に何も記載されていない所を見つけてしまいました……。
修正してみて、一通りテストプレイしてみようと思います……。
 

朝倉あつき

ユーザー
修正したところ、無事動くことを確認しました。
ご助言本当助かりました、ありがとうございます!
 
トップ