バックログを開くとまれにエラーが発生します

長玉A
記事: 14
登録日時: 2019年11月29日(金) 19:27

バックログを開くとまれにエラーが発生します

投稿記事by 長玉A » 2020年9月09日(水) 21:53

失礼いたします。
アツマールに投稿した自作ゲームで、バックログを呼び出すとまれに下画像のようなエラーが出るようで困っています(エラー画面表示改善プラグインを使用しています)
バックログはDarkPlasma様の「イベントのバックログを表示するプラグイン」で、プラグインコマンドから実行する形のものです。
Dark Plasma Text Log - DarkPlasma_TextLog.js
https://plugin.fungamemake.com/archives/12865


本来であればプラグインをすべてoffにしてエラーが出るか確認して‥‥という手順をやりたいのですが、テストプレイでは制作中に一度出たきりでめったに再現できないため、まずはこのエラー画面の読み方をご教示いただき、エラーの原因のあたりをつけようと思い投稿させていただきました。
「events filter」というものが原因のようですが、こちらについて調べても同様のエラーは出てきませんでした。


・アツマールに投稿している「OR逆転裁判」というゲームで発生しているバグです。ノベルゲームなのでテキスト量が多く、現状1パートごとに1マップ使用し、マップイベントにテキストや演出を詰め込んでいる都合上かなりアツマール上でのセーブ容量が重いです。(プレイしていると20KB近く行ったりします)

・バックログ以外にセーブをするときもまれにエラーが発生します。
・バックログから戻るさいにアツマール上で自動で「セーブしました」という表記が出ること、バックログエラーとセーブエラーいずれも「テストプレイ環境下では1度しか発生してない(エラー画面のスクショは取り忘れました‥‥)」という点から、バックログエラーとセーブエラーは同じ種類のエラーなのではないか? と少し考えてますが、いずれにせよエラーを再現してエラー画面を集めないと何とも言えない状況です。
添付ファイル
1599650094599.jpg

アバター
Plasma Dark
記事: 333
登録日時: 2020年2月08日(土) 02:29
連絡を取る:

Re: バックログを開くとまれにエラーが発生します

投稿記事by Plasma Dark » 2020年9月09日(水) 22:10

this._events.filter is not a function


これは読んだまま、 this._events.filter が関数でないことを表します。
Game_Map クラスは _events というメンバを initialize 関数内で空配列に初期化しており、その後も配列以外の内容を再代入したりしないはずですので、なにかお行儀の悪いプラグインが _events を破壊してしまった可能性があります。
(.filter は配列に対してJavascriptとして元から定義されている関数ですので、 _events が配列以外のなにかになってしまっているのだと思われます)

ちなみに、 DarkPlasma_TextLog は Game_Map にはノータッチですので、ログを開く時以外にもエラーが出るという状況と合わせて考えても、多分別のなにかが悪さしています。

スクリーンショットのスタックトレースを追うと、 PictureCallC... なんとかいうプラグインの処理を経由しているらしいことはわかりますが、直接的な原因かどうかはわかりません。
長玉A
記事: 14
登録日時: 2019年11月29日(金) 19:27

Re: バックログを開くとまれにエラーが発生します

投稿記事by 長玉A » 2020年9月09日(水) 22:40

ご返信ありがとうございます、

「pictureCallC‥‥」はおそらく「picture call commonevent」で、「ピクチャのボタン化プラグイン」のことです。
「バックログボタン(として設定したピクチャ)」を押すと、コモンイベント107番が呼び出され、107番の内容(プラグインコマンドでバックログを呼び出す)が実行される、という形の設計にしております。

ただ、バックログを呼び出してもまれにしかエラーは出ないため、他のプラグインが_events を破壊してしまった、という可能性のほうが高そうな気がします(素人考えで申し訳ありません、間違っていたら遠慮なく仰って下されば幸いです)


原因になりうるプラグインはGame_Mapクラスに干渉しているプラグインのうちのいずれか、ということでしょうか?
(マップイベントを直接呼び出す、トリアコンタン様の「テンプレートイベントプラグイン」を使用しているため、まずはこちらを調べてみます)

“MV:質問” へ戻る