【解決済】スイッチ共有プラグインのエラー(UTA_CommonSaveMZ、DarkPlasma_SharedSwitchVariable)

まさゆ
記事: 48
登録日時: 2022年2月11日(金) 11:38

【解決済】スイッチ共有プラグインのエラー(UTA_CommonSaveMZ、DarkPlasma_SharedSwitchVariable)

投稿記事by まさゆ » 2024年3月11日(月) 23:36

ゲームクリア後にニューゲーム二週目で一部変化を付けたいと思い、そういったプラグインがないか探したところ、下記の2つを見付けました。

・UTA_CommonSaveMZ.js(Version : 0.9.1)
・DarkPlasma_SharedSwitchVariable.js(2021/07/05 1.0.2 MZ 1.3.2に対応)

是非とも利用させていただきたいと思ったのですが、テストプレイで起動するといずれもエラーになります。
原因が何か分かりますでしょうか?

UTA_CommonSaveMZ.jsのエラー画面→SyntaxError
DarkPlasma_SharedSwitchVariable.jsのエラー画面→ぐるぐる回って起動しない
添付ファイル
DarkPlasma_SharedSwitchVariable_error.png
DarkPlasma_SharedSwitchVariable.jsのエラー画面
UTA_CommonSaveMZ_error.png
UTA_CommonSaveMZ.jsのエラー画面
最後に編集したユーザー まさゆ on 2024年3月13日(水) 18:28 [ 編集 1 回目 ]

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

Re: スイッチ共有プラグインのエラー(UTA_CommonSaveMZ、DarkPlasma_SharedSwitchVariable)

投稿記事by Plasma Dark » 2024年3月12日(火) 02:53

DarkPlasma_SharedSwitchVariable.js 1.0.2 は TemplateEvent.js があるとゲームが起動せず、ずっとくるくるし続ける不具合がありました。
修正した1.0.3を公開しましたので、お試しください。
まさゆ
記事: 48
登録日時: 2022年2月11日(金) 11:38

Re: スイッチ共有プラグインのエラー(UTA_CommonSaveMZ、DarkPlasma_SharedSwitchVariable)

投稿記事by まさゆ » 2024年3月12日(火) 08:09

Plasma Dark様

ご対応ありがとうございます。
ご連絡させてもらったぐるぐるはなくなりました。

ただ、テストプレイ画面を起動して、コンティニューからゲームを始めるとBGMだけ流れてキャラがいきなりフリーズ状態になります(数回試しましたが毎回発生)。saveフォルダからshared.rmmzsaveから除くと問題は解消します。
ニューゲームからゲームを始めても同様にキャラがフリーズしますが、フリーズしない場合もあったので再現性は不明。

一旦フリーズすると、画面の☓ボタンを押してもnwjsの画面が閉じないので終了で強制終了させてる感じです。

原因分かりますでしょうか?
アバター
Plasma Dark
記事: 669
登録日時: 2020年2月08日(土) 02:29
連絡を取る:

Re: スイッチ共有プラグインのエラー(UTA_CommonSaveMZ、DarkPlasma_SharedSwitchVariable)

投稿記事by Plasma Dark » 2024年3月12日(火) 10:58

原因分かりますでしょうか?


わかりません。

こちらの環境では全く再現しません。
原因調査の方針としては、以下の流れになるかと思います。

元のプロジェクトからマップのイベントだけコピーして、他のプラグインを一切入れずに再現するかどうかを確認します。
これで再現しない場合、何らかのプラグインとの組み合わせによって引き起こされる問題であろうと考えられます。
再現するようであれば、ある特定のマップのつくりにプラグインが対応できていないとか、環境依存で共有セーブデータのロード時になにか変な問題が起きているとかでしょうか。
まさゆ
記事: 48
登録日時: 2022年2月11日(金) 11:38

Re: スイッチ共有プラグインのエラー(UTA_CommonSaveMZ、DarkPlasma_SharedSwitchVariable)

投稿記事by まさゆ » 2024年3月12日(火) 13:34

Plasma Dark様

返信ありがとうございます。
まず先のコメントで一点訂正があります。
ニューゲームでもコンティニューでもsaveフォルダの中にshared.rmmzsaveがあるときは、キャラのフリーズは確実に再現しました(ニューゲームの場合、再現性は不明と書きましたが、それは私の勘違いでした)。

それで、私が使用しているプラグインが50以上あるのですが、基盤プラグイン等は残して一旦めぼしいプラグインを全部OFFにしてプレイ実行したところ、
ーーーーー
ReferenceError
CBR is not defined
ーーーーー
と表示されるようになりました。
そこで、CBRと名の付くプラグインを探したらCBR_EroStatus.jsというプラグインを使っていたので、そのjsをプラグイン管理からOFFにしました。
しかしながら、依然として「CBR is not defined」が表示されるので、今度は「DarkPlasma_SharedSwitchVariable」をOFFにして実行したところ、「CBR is not defined」が表示されなくなりました。

1)
CBR_EroStatus:ON
DarkPlasma_SharedSwitchVariable:OFF
⇒問題なくプレイ出来る(※DarkPlasma_SharedSwitchVariableを導入する前の状態)

2)
CBR_EroStatus:ON
DarkPlasma_SharedSwitchVariable:ON
⇒フリーズする

3)
CBR_EroStatus:OFF
DarkPlasma_SharedSwitchVariable:ON
⇒CBR is not defined

4)
CBR_EroStatus:OFF
DarkPlasma_SharedSwitchVariable:OFF
⇒問題なくプレイ出来る

私がCBRが何を意味しているのか分からないのですが、これで原因特定出来たりするでしょうか?
アバター
Plasma Dark
記事: 669
登録日時: 2020年2月08日(土) 02:29
連絡を取る:

Re: スイッチ共有プラグインのエラー(UTA_CommonSaveMZ、DarkPlasma_SharedSwitchVariable)

投稿記事by Plasma Dark » 2024年3月12日(火) 22:32

プラグインについてお話される際は、対象のプラグインの入手元URL及びバージョンを明記していただけると、回答者と齟齬が生じにくくなりますので、今後は意識してみてください。
CBR_EroStatus.js は軽く調べた限りでも2箇所からダウンロードでき、内容が多少異なっているようです。

ReferenceError
CBR is not defined


CBRというシンボルを参照しようとしているが、それが未定義であるという意味です。
スタックトレースをご確認いただくとわかるかと思いますが、CBR_EroStatus.jsあるいはそれに依存するプラグインをOFFにできていないのではないでしょうか。

スタックトレースについてはこちらの記事をご参照ください。

基盤プラグイン等は残して一旦めぼしいプラグインを全部OFFにして


残したプラグインの一覧を書いていただくか、他のプラグインを残さずすべてOFFにしてください。
こちらからではプロジェクトの状況がつかめず、原因特定の障害となる恐れがあります。
まさゆ
記事: 48
登録日時: 2022年2月11日(金) 11:38

Re: スイッチ共有プラグインのエラー(UTA_CommonSaveMZ、DarkPlasma_SharedSwitchVariable)

投稿記事by まさゆ » 2024年3月12日(火) 23:58

二箇所とのことですが、私の方では一箇所しか見付けられず。。
DLしたのが随分前なので、正直、今回見付けたその一箇所でDLしたのか、仰られている別のもう一箇所でDLしたのか覚えていませんが、少なくとも私が見付けた箇所のファイルと私のpluginsフォルダに入っているファイルは一致していたので、
https://plugin-mz.fungamemake.com/archives/2872
でDLしたのだと思います。
ただ、下記の検証からCBR_EroStatusは関係なかったのかなと思いました。

残したプラグインですが、改めて下記のように残して試しました。
・PluginCommonBase
・PluginBaseFunction
・DarkPlasma_SharedSwitchVariable

これでテストプレイボタンを押すと、
ーーーーー
TypeError
Cannot read property 'name' of undefined
ーーーーー
というエラー画面になりました。そこで、下記のようにプラグインを残すとそのエラーはなくなりました。
(一つずつプラグインをONにしていってParallelBgsのとき解消されただけであって、私の方で何か根拠があってParallelBgsを選んだ訳ではありません)
・PluginCommonBase
・PluginBaseFunction
・ParallelBgs
・DarkPlasma_SharedSwitchVariable

これで実行すると、
ーーーーー
ReferenceError
CBR is not defined
ーーーーー
のエラー画面が表示されます。

この状態でスタックトレースを参照すると下記でした。
ーーーーー
ReferenceError: CBR is not defined
at eval (eval at Game_Interpreter.command355 (rmmz_objects.js:11296), <anonymous>:1:1)
at Game_Interpreter.command355 (rmmz_objects.js:11296)
at Game_Interpreter.executeCommand (rmmz_objects.js:9658)
at Game_Interpreter.update (rmmz_objects.js:9563)
at Game_Map.updateInterpreter (rmmz_objects.js:6793)
at Game_Map.update (rmmz_objects.js:6697)
at Scene_Map.updateMain (rmmz_scenes.js:747)
at Scene_Map.updateMainMultiply (rmmz_scenes.js:743)
at Scene_Map.update (rmmz_scenes.js:730)
at Function.SceneManager.updateScene (rmmz_managers.js:2103)
ーーーーー

CBR_EroStatusを報告させてもらったのは、ファイル名にCBRと書かれていたのでこのプラグインと何かしらかち合っているのかなと推測したのですが、今回の検証から恐らくそうではなかったようです。

ただ、スタックトレースに書いてあるrmmz_scenes.jsやrmmz_managers.jsですが、私の方でいじった覚えはないです。。(rmmz_windows.jsは画面から表示を消すために数カ所コメントはしていますが)

最後に、DarkPlasma_SharedSwitchVariableをOFFして下記のようにして実行した場合、エラー画面もフリーズもなく上手くいきました。
・PluginCommonBase
・PluginBaseFunction
・ParallelBgs

上記で情報足りるでしょうか?
アバター
Plasma Dark
記事: 669
登録日時: 2020年2月08日(土) 02:29
連絡を取る:

Re: スイッチ共有プラグインのエラー(UTA_CommonSaveMZ、DarkPlasma_SharedSwitchVariable)

投稿記事by Plasma Dark » 2024年3月13日(水) 03:09

詳細な情報のご提示ありがとうございます。

https://plugin-mz.fungamemake.com/archives/2872
でDLしたのだと思います。


DarkPlasma_SharedSwitchVariable.jsはツクプラMZからGitHubにリンクしていただいているのでそこからダウンロードされたのであれば間違いなさそうです。
CBR_EroStatus.jsはツクプラMZにホスティングされたZipファイルと、作者ブログからリンクされているGoogle Driveの2箇所で配布されているようです。
どちらがマスターとなるファイルであるかは私には判断がつきませんので、気になる場合は作者に問い合わせるなりして最新版を入手されると良いかと思います。

・PluginCommonBase
・PluginBaseFunction
・DarkPlasma_SharedSwitchVariable

これでテストプレイボタンを押すと、
ーーーーー
TypeError
Cannot read property 'name' of undefined
ーーーーー


DarkPlasma_SharedSwitchVariable.jsではnameなるプロパティへのアクセスは行っていないので、他2つのプラグインいずれかに問題がありそうです。
これもスタックトレースを確認することで問題の特定に近づきます。

・PluginCommonBase
・PluginBaseFunction
・ParallelBgs
・DarkPlasma_SharedSwitchVariable

これで実行すると、
ーーーーー
ReferenceError
CBR is not defined
ーーーーー

ーーーーー
ReferenceError: CBR is not defined
at eval (eval at Game_Interpreter.command355 (rmmz_objects.js:11296), <anonymous>:1:1)
at Game_Interpreter.command355 (rmmz_objects.js:11296)
at Game_Interpreter.executeCommand (rmmz_objects.js:9658)
at Game_Interpreter.update (rmmz_objects.js:9563)
at Game_Map.updateInterpreter (rmmz_objects.js:6793)
at Game_Map.update (rmmz_objects.js:6697)
at Scene_Map.updateMain (rmmz_scenes.js:747)
at Scene_Map.updateMainMultiply (rmmz_scenes.js:743)
at Scene_Map.update (rmmz_scenes.js:730)
at Function.SceneManager.updateScene (rmmz_managers.js:2103)
ーーーーー


このスタックトレースを見る限り、スクリプトイベントコマンドに書かれたCBRという文字列が問題です。
CBR_EroStatus.jsはスクリプトイベントコマンドに独自の記法を導入するせいで、単純にプラグインをOFFにして動作確認しようとするとこういう問題が発生するんですね……。

rmmz_windows.jsは画面から表示を消すために数カ所コメントはしていますが


表示を消したいだけの場合でも、プラグイン化することを推奨します。
コアスクリプトやプラグインによる挙動の書き換えは、なにか問題が起きた際の原因調査にとってノイズになり得るものです。
プラグインにしておけば、単にOFFにするだけでそのノイズを除去できます。
まさゆ
記事: 48
登録日時: 2022年2月11日(金) 11:38

Re: スイッチ共有プラグインのエラー(UTA_CommonSaveMZ、DarkPlasma_SharedSwitchVariable)

投稿記事by まさゆ » 2024年3月13日(水) 07:55

夜遅くに返信してもらってすいません。。

先のコメントで一点訂正を。DLしたリンクですが、
https://plugin-mz.fungamemake.com/archives/2556
です(何故かDarkPlasma_SharedSwitchVariableのリンクを貼ってました。。)

作者ブログからリンクされているGoogle Driveって下記のことですかね?もしそうであれば私の方では_mainも_nも使ってないので関係なさそうです。
CBR_eroStatus_main.js
CBR_eroStatus_n.js

それで、改めて下記のみで実行(PluginBaseFunctionは除いてみました)
・PluginCommonBase
・DarkPlasma_SharedSwitchVariable

nameのエラーが出るので、スタックトレースを参照すると下記
ーーーーー
rmmz_managers.js:2036 TypeError: Cannot read property 'name' of undefined
at Function.AudioManager.playBgs (rmmz_managers.js:1195)
at Game_System.onAfterLoad (rmmz_objects.js:358)
at Game_System.onAfterLoad (PluginCommonBase.js:450)
at Scene_Load.terminate (rmmz_scenes.js:2318)
at Function.SceneManager.changeScene (rmmz_managers.js:2084)
at Function.SceneManager.updateMain (rmmz_managers.js:2062)
at Function.SceneManager.update (rmmz_managers.js:1942)
at Function.Graphics._onTick (rmmz_core.js:811)
at TickerListener.emit (pixi.js:9093)
at Ticker.update (pixi.js:9548)
SceneManager.catchNormalError @ rmmz_managers.js:2036
ーーーーー

nameのエラーは本チケットの問い合わせのメインではないので一旦置いておくとして、ParallelBgsを追加することで当エラー解消

で、下記で実行するとCBR定義エラーに
・PluginCommonBase
・ParallelBgs
・DarkPlasma_SharedSwitchVariable
ーーーーー
rmmz_managers.js:2036 ReferenceError: CBR is not defined
at eval (eval at Game_Interpreter.command355 (rmmz_objects.js:11296), <anonymous>:1:1)
at Game_Interpreter.command355 (rmmz_objects.js:11296)
at Game_Interpreter.executeCommand (rmmz_objects.js:9658)
at Game_Interpreter.update (rmmz_objects.js:9563)
at Game_Map.updateInterpreter (rmmz_objects.js:6793)
at Game_Map.update (rmmz_objects.js:6697)
at Scene_Map.updateMain (rmmz_scenes.js:747)
at Scene_Map.updateMainMultiply (rmmz_scenes.js:743)
at Scene_Map.update (rmmz_scenes.js:730)
at Function.SceneManager.updateScene (rmmz_managers.js:2103)
SceneManager.catchNormalError @ rmmz_managers.js:2036
ーーーーー

で、DarkPlasma_SharedSwitchVariableを除いて下記のみで実行すると問題なし
・PluginCommonBase
・ParallelBgs
ということで、素人考えでDarkPlasma_SharedSwitchVariableが何かしら影響を与えていると思ったのですが、それは違うってことでしょうか??

仰られている「スクリプトイベントコマンド」ってイベントコマンドを開いて3つ目のタブにあるプラグインコマンドのことでしょうか?私がどこかのイベントでCBR_EroStatusのプラグインコマンドを使っていてそれがエラーを起こしているということでしょうか?

いただいたコメントで結論がよく分からなかったのですが、結論はDarkPlasma_SharedSwitchVariableが問題ではなくCBR_EroStatusということでしょうか?
アバター
Plasma Dark
記事: 669
登録日時: 2020年2月08日(土) 02:29
連絡を取る:

Re: スイッチ共有プラグインのエラー(UTA_CommonSaveMZ、DarkPlasma_SharedSwitchVariable)

投稿記事by Plasma Dark » 2024年3月13日(水) 11:47

ひとつずつ問題を整理していきます。

CBR_EroStatus.jsは2箇所からダウンロードできる

作者ブログからリンクされているGoogle Driveって下記のことですかね?もしそうであれば私の方では_mainも_nも使ってないので関係なさそうです。
CBR_eroStatus_main.js
CBR_eroStatus_n.js


ツクプラMZのページにある直接ダウンロードのZipファイルというリンクは、何故かツクプラMZのサーバーでホスティングされたZipファイルへのリンクになっています。
一方、同ページからリンクされている解説ページには、Google Driveへのリンクが貼ってあり、そちらからもCBR_EroStatus.jsをダウンロードすることができます。
この2者は同じファイル名ですが、中身が異なっているようです。
今回の調査の発端となったフリーズと直接関係しているかどうかはさておき、どちらを使用されているかは明らかにしておくほうが、別種の問題が発生した際に調査はしやすいでしょう。

playBgsでundefinedのnameを参照しようとしてエラーが出ている

ーーーーー
rmmz_managers.js:2036 TypeError: Cannot read property 'name' of undefined
at Function.AudioManager.playBgs (rmmz_managers.js:1195)
at Game_System.onAfterLoad (rmmz_objects.js:358)
at Game_System.onAfterLoad (PluginCommonBase.js:450)
at Scene_Load.terminate (rmmz_scenes.js:2318)
at Function.SceneManager.changeScene (rmmz_managers.js:2084)
at Function.SceneManager.updateMain (rmmz_managers.js:2062)
at Function.SceneManager.update (rmmz_managers.js:1942)
at Function.Graphics._onTick (rmmz_core.js:811)
at TickerListener.emit (pixi.js:9093)
at Ticker.update (pixi.js:9548)
SceneManager.catchNormalError @ rmmz_managers.js:2036
ーーーーー


このエラーはどのタイミングで出るものでしょうか。
セーブデータをロードした時か、あるいはニューゲームを開始した時でしょうか。
BGSのデータが渡されていると期待しているのに、undefinedが渡されてエラーになっています。
ParallelBgs.jsを導入して治るのは、そのプラグインでundefinedが渡された場合に何もしないという処理を加えているためですね。

BGS再生用の関数に、なぜundefinedが渡されてしまっているかはわかりませんが、考えられるのは
1. マップデータ上のBGS自動演奏設定が破損している
2. 自動実行や並列実行イベントにおけるBGSの演奏イベントコマンドが破損している
3. セーブデータに記録されたBGSが破損している (ニューゲームだと発生しない場合)

辺りでしょうか。
BGSを演奏しようとしてエラーになっているのは確かなので、ニューゲームでも発生するのであれば、ニューゲーム開始時のマップにおけるBGS自動演奏の設定や、自動実行・並列実行イベントをご確認されると良いかと思います。
共有セーブデータに保存したスイッチ・変数を条件にして起動するイベントがある場合、それがフリーズの原因になっている可能性もないとは言えません。

CBRが定義されていないエラー

CBR_EroStatus.js では、プラグインコマンドではなくスクリプトで CBR-エロステータス なる記述をすることで、独自の記法で専用シーンの設定を行えるようにする機能があります。
この独自記法はCBR_EroStatus.jsがOFFになっていると動かないもので、CBR自体がJavaScriptのシンボルとして解釈され、しかし定義されていないためにエラーになります。

DarkPlasma_SharedSwitchVariable.js を入れると問題が起きる、というのは、最初のマップにおけるイベントの起動条件となるスイッチか変数を共有セーブデータからロードしているためではないかと推測できます。

本来の問題であったフリーズの調査のためには、CBR_EroStatus.jsを扱うためのスクリプトイベントコマンドをスキップするなどして動かしてみると良いかと思います。

“MZ:質問” へ戻る