ページ 11

つちけむりプラグインについて

Posted: 2022年8月14日(日) 01:57
by Piyo_595en
いつも大変お世話になっております。

つちけむり - TMCloudDust.jsについて質問させて頂きます。
https://fungamemake.com/archives/11861

こちらのプラグイン画面効果も良く、ぜひ使いたいのですが
ニューゲームでは問題ないのですが、セーブしたデータをロードすると
this._cloudDust.scale is not a functionと表示され、エラーが出るようです。
初期状態のMZでも同様の現象が出たので、プラグインの競合ではないと思うのですが…。

お詳しい方がいらっしゃいましたら、お知恵をお貸しいただけましたら幸いです。

Re: つちけむりプラグインについて

Posted: 2023年5月21日(日) 09:01
by ムノクラ
Piyo_595en さんが書きました:いつも大変お世話になっております。

つちけむり - TMCloudDust.jsについて質問させて頂きます。
https://fungamemake.com/archives/11861

こちらのプラグイン画面効果も良く、ぜひ使いたいのですが
ニューゲームでは問題ないのですが、セーブしたデータをロードすると
this._cloudDust.scale is not a functionと表示され、エラーが出るようです。
初期状態のMZでも同様の現象が出たので、プラグインの競合ではないと思うのですが…。

お詳しい方がいらっしゃいましたら、お知恵をお貸しいただけましたら幸いです。


改変者です。
こちらの検証をコアバージョンv1.0.0/v1.6.0とで行いましたが再現できませんでした。

エラーが再現できるプロジェクトを頂ければ調べられると思います。
よろしくご検討ください。

Re: つちけむりプラグインについて

Posted: 2023年5月21日(日) 12:43
by 剣崎 宗二
横からですが、可能性だけ提示しておきます。

「プラグイン導入前にセーブした」データをロードしてませんか?

Re: つちけむりプラグインについて

Posted: 2023年5月21日(日) 15:14
by Plasma Dark
Game_CloudDust クラスがグローバルに公開されていないため、このプラグインを導入後にセーブして、そのセーブデータをロードするとPiyoさんの仰る通りのエラーが表示されます。

とりあえず最小の修正PRを出しました。

そもそもの話として、一瞬表示されては消える類のものなので、あんまりセーブデータに含める必要はなさそうです。
Game_Mapではなく、Game_Tempに載せ替えてしまうのも手だと思いますが、ひとまず今回のエラーだけ修正する内容としています。

Re: つちけむりプラグインについて

Posted: 2023年5月21日(日) 17:17
by ムノクラ
剣崎 宗二 さんが書きました:横からですが、可能性だけ提示しておきます。

「プラグイン導入前にセーブした」データをロードしてませんか?


ご指摘の通り、そのテストしかしていませんでした。


Plasma Dark さんが書きました:Game_CloudDust クラスがグローバルに公開されていないため、このプラグインを導入後にセーブして、そのセーブデータをロードするとPiyoさんの仰る通りのエラーが表示されます。

とりあえず最小の修正PRを出しました。

そもそもの話として、一瞬表示されては消える類のものなので、あんまりセーブデータに含める必要はなさそうです。
Game_Mapではなく、Game_Tempに載せ替えてしまうのも手だと思いますが、ひとまず今回のエラーだけ修正する内容としています。


ご指摘の通り「プラグインを導入後にセーブして、そのセーブデータをロードする」と下記のエラーが出ました。

コード: 全て選択

TypeError: this._cloudDust.scale is not a function
    at Sprite_CloudDust.initialize (MNKR_TMCloudDustMZ.js:514)
    at new Sprite_CloudDust (MNKR_TMCloudDustMZ.js:505)
    at Spriteset_Map.<anonymous> (MNKR_TMCloudDustMZ.js:552)
    at Array.forEach (<anonymous>)
    at Spriteset_Map.createCloudDust (MNKR_TMCloudDustMZ.js:551)
    at Spriteset_Map.createLowerLayer (MNKR_TMCloudDustMZ.js:546)
    at Spriteset_Map.Spriteset_Base.initialize (rmmz_sprites.js:3132)
    at Spriteset_Map.initialize (rmmz_sprites.js:3353)
    at new Spriteset_Map (rmmz_sprites.js:3346)
    at Scene_Map.createSpriteset (rmmz_scenes.js:908)


修正PRいただき、ありがとうございます。
動作確認できましたので、ありがたくマージさせていただきます。

ちょうど先週、MOG Battle HUD MV版のセーブデータのバグ?を修正(できた???)に触れていました。
https://github.com/munokura/MOG-MV-plug ... 57287abb14

MVでのGame_TempとGame_Systemの挙動をなんとなく分かった気でいましたが、Game_Mapについては全く考えていませんでした。
MZになって、マップイベントの位置がセーブデータに保存されていない旨の噂を耳にしていたのですが、こんな形で違いが出るとは想像していませんでした。

ググっても、globalThis でデータがグローバルオブジェクトになる?くらいしか分からなかったです。
PRをいただけなければGame_Tempに変更する作業でかなりの時間がかかっていたと思います。

グローバルオブジェクトをどのように挙動し、どういうケースで使うべきかは追って学んで行きたく思います。