ページ 11

【解決済み】cannot read property 'refresh' of undefinedというエラーメッセージ

Posted: 2025年4月23日(水) 13:13
by Darkness89
初めまして。
ツクールMVで、ノベルゲーム風のゲームを制作しています。
現在、セーブボタンを押すと
cannot read property 'refresh' of undefinedというエラーメッセージが出てしまい
困っています。F8で原因部位を特定したのですが、修正の方法が分かりません。
画像に表記されたスクリプトを使っております。

試したこと
最初にCannot read property "bitmap" of undefinedというバグがあったので
トリアコンタン様の「選択肢表示中のロードエラー修正プラグイン」を
導入し、修正。bitmapエラーは出なくなったが、今度はrefreshエラーが出るようになった。



解決方法、スクリプトなど、
原因が分かる方、何方か詳しい方教えていただけないでしょうか?
ツクール初心者です。



ノベルゲーム風に見せる為に使用しているプラグイン

「ピクチャのボタン化プラグイン」https://triacontane.blogspot.com/2015/11/blog-post_23.html

「動的文字列ピクチャ生成プラグイン」https://triacontane.blogspot.com/2015/12/rpgmv-rpgmv-dtext-1-rpgmv-dtext-dtext.html

「イベント実行中もセーブを可能にするPlugin」https://kuina.games/p-510/#google_vignette

制作はこちらの記事を参考にしています。https://note.com/purasann/n/n4151747ed1d2
Attachments

Re: cannot read property 'refresh' of undefinedというエラーメッセージ

Posted: 2025年4月23日(水) 20:23
by Plasma Dark
セーブシーンで本来存在するべきウィンドウが作られていないために起きているエラーです。
どうやってセーブシーンを呼び出しているかを確認して、そこを適切に修正してください。

Re: cannot read property 'refresh' of undefinedというエラーメッセージ

Posted: 2025年4月23日(水) 21:07
by Plasma Dark
URLを貼ってくださるのは良いのですが、貼ってくださったプラグインのうち、「イベント実行中もセーブを可能にするPlugin」はOFFになっているようです。
直接原因には関係ないでしょうが、今後使う予定がないのであればOFF状態のプラグインは混乱防止のため削除しておくことを推奨します。

原因の調査については、実現したい仕組みを再現するために必須なプラグイン以外をすべてOFFにし、コアスクリプトを新規プロジェクトからコピーしてきたもので上書きしてから、もう一度同じエラーが出るか試すのが良さそうです。
(新規プロジェクトに必須プラグインとイベントを移植して確認しても良いですが、どの道今のプロジェクトのコアスクリプトは正常なもので上書きしておくことを推奨します)

実現したい仕組みは、イベントで選択肢の表示を行っている最中にセーブシーンを呼び出してセーブができる、であると仮定すると、以下のプラグインが今のところ必須になるでしょう。

- セーブシーンを開くボタン表示のための DTextPicture 及び PictureCallCommon
- タッチの挙動を変える ChangeWindowTouchPolicy
- 選択肢表示中のロードを実現するための BugFixLoadErrorChoiceSetup

それから、新規プロジェクトを作成し、コアスクリプト(js/rpg_xxxx.js)をすべてコピーしてきて、エラーが出ているプロジェクト内のものに上書きしてください。

動作確認の際には既存のセーブデータをロードせず、必ずニューゲームから始めるようにしてください。
なにか変更を加えた場合、セーブデータがプロジェクトと互換性を失っている可能性があります。
ロードした後の動作を確認したい場合も、ニューゲームを開始してセーブ、その後プロジェクトに変更を加えずにロードするという手順で確認してください。

Re: cannot read property 'refresh' of undefinedというエラーメッセージ

Posted: 2025年4月24日(木) 23:31
by Darkness89
返信ありがとうございました。
教えていただいた方法を試したところ、問題が無事に解決いたしました。
とても助かりました。本当にありがとうございます!