ページ 22

Re: フトコロ様のFTKR_ExEscapeCharacters.jsで画像がたまに表示されない

Posted: 2020年4月02日(木) 12:29
by 亜季色
メモ帳で2つのプラグインにコードを追記し、テストプレイでアイテムウィンドウを開くと添付した画像のようなエラーが出ました。
cosoleの使い方がよく分からないのですが、FTKR.EEC.filesと入力する場所は合ってますか?

------------------------------------------------------------------------------
FTKR_ExEscapeCharacters.jsでItem.pngを指定し忘れていたので、
指定してスクショを取り直しました。

Re: フトコロ様のFTKR_ExEscapeCharacters.jsで画像がたまに表示されない

Posted: 2020年4月02日(木) 22:34
by Plasma Dark
メモ帳で2つのプラグインにコードを追記し、テストプレイでアイテムウィンドウを開くと添付した画像のようなエラーが出ました。
cosoleの使い方がよく分からないのですが、FTKR.EEC.filesと入力する場所は合ってますか?
最近のメモ帳はUTF-8も扱えるようになったとは聞きますが、怖いですね。
とは言え、私のプラグイン側に書いたメッセージはちゃんと表示されてくれている様子。
FTKR_ExEscapeCharacter.js に書いたものが表示されていないのは気になります。

私のプラグインが全く動いていないというわけではなさそうですね。

Consoleの使い方はバッチリです。このスタックトレースやら何やらがあるだけでだいぶ原因がわかりやすくなります。
入力していただいた後にちゃんと "Item" と出てきているので、 FTKR_ExEscapeCharacter.js へのプラグインパラメータの設定も正しいですね。

状況を見るに、可能性は
1. 何か厄介なプラグインが邪魔をしてキャッシュに乗せたはずの画像を破壊した
2. そもそもちゃんとキャッシュに乗っていない

くらいでしょうか。

YEPプラグインを利用されているようですが、他にも様々なプラグインを利用されているでしょうか。
それらを一つ一つOFFにして、エラーが出なくなるものを特定してみてください。

キャッシュの中にいる画像の情報が正しいかどうかも気になります。
FTKR.EEC.files と入力していただいたのと同じ要領で、以下のように入力してみてください。

ImageManager._imageCache._items["img/system/Item.png:0"]

表示された右矢印をクリックして中を見ると、 bitmap がいるはずですので、その右矢印もクリックしてみてください。
キャッシュしている画像の情報が出てきます。 _loadingState が "loaded" であることや、 _image, _canvas が存在すれば、ちゃんとキャッシュされています。

Re: フトコロ様のFTKR_ExEscapeCharacters.jsで画像がたまに表示されない

Posted: 2020年4月03日(金) 08:46
by 亜季色
使用しているプラグインを一つずつOFFにしてみましたが、全てでエラーが起こりました。
また、YEP_CoreEngineをOFFにしたときだけエラーメッセージが変わりました。
FTKR_ExEscapeCharacters.jsとDarkPlasma_FTKR_ExEscapeCharactersPatch.jsのみONにし、他全てをOFFにしたときもエラーでした。

Re: フトコロ様のFTKR_ExEscapeCharacters.jsで画像がたまに表示されない

Posted: 2020年4月03日(金) 09:01
by Plasma Dark
詳しい状況のご説明、ありがとうございます。

プラグインにconsole.logを仕込ませてしまったのは私なので、これはちょっと申し訳ないのですが、もしかして FTKR_ExEscapeCharacters.js の205行目に私の提示したコードを追記してしまっていないでしょうか。

FTKR_ExEscapeCharacters.js が正しい状態なら、174~207行目は以下のような内容になっているはずです。

コード: 全て選択

//=============================================================================
// DataManager
//=============================================================================

//画像ファイルの事前ロード
FTKR.EEC.DataManager_loadDatabase = DataManager.loadDatabase;
DataManager.loadDatabase = function(name, src) {
    FTKR.EEC.DataManager_loadDatabase.call(this, name, src);
    if(!FTKR.EEC.files) return;
    images = FTKR.EEC.files.split(',');
    if (!images.length) return;
    images.forEach( function(image) {
        ImageManager.loadSystem(image);
        console.log(`load image: ${image}`); // 私が差し込んでほしいとお願いしたコード
    });
};

//=============================================================================
// Window_Base
//=============================================================================

//画像表示関数 /img/system/に保存したname.pngを表示する。
Window_Base.prototype.drawEecImage = function(name, index, x, y, width, height, scale) {
    if (name) {
        var bitmap = ImageManager.loadSystem(name);
        var pw = width;
        var ph = height;
        scale = scale || 1;
        var len = Window_Base.EEC_IMG_LENGTH;
        var sx = index % len * pw;
        var sy = Math.floor(index / len) * ph;
        this.contents.blt(bitmap, sx, sy, pw, ph, x, y, pw * scale, ph * scale);
    }
};
このコードの最後の方、 this.contents.blt のあたりに image を参照する内容が書かれてしまっているがゆえのエラーだと思います。
console.log なら大丈夫だろうと高をくくっていましたが、やはり初心者にコードを書き換えさせるべきではありませんでしたね……。

Re: フトコロ様のFTKR_ExEscapeCharacters.jsで画像がたまに表示されない

Posted: 2020年4月03日(金) 10:26
by 亜季色
すみません、console.logの挿入場所が間違っていました。
修正したところ、アイテム画像が正しく表示されるようになり、consoleにはこのように表示されました。
console.logを挿入することで画像が正しく読み取れるようになることってあるんでしょうか?

Re: フトコロ様のFTKR_ExEscapeCharacters.jsで画像がたまに表示されない

Posted: 2020年4月03日(金) 11:51
by Plasma Dark
console.logを挿入することで画像が正しく読み取れるようになることってあるんでしょうか?
ないです。これは正しく動作していることを確認するためのコードでしかないので、他の挙動にほとんど影響を与えません。
これで表示されるなら、cosole.logを外しても表示されるはずです。

Re: フトコロ様のFTKR_ExEscapeCharacters.jsで画像がたまに表示されない

Posted: 2020年4月03日(金) 19:24
by 亜季色
ですよね……。

不定期で表示されなくなるから今表示されていても直ったのかどうかよく分からないのが困り物です。
console.logを外しても大丈夫だったのですが、ログを見る限りでは問題は無いのでしょうか?

Re: フトコロ様のFTKR_ExEscapeCharacters.jsで画像がたまに表示されない

Posted: 2020年4月03日(金) 20:10
by Plasma Dark
ログを見る限りでは問題は無いのでしょうか?
見たところ問題はないようです。
ゲーム開始直後に超急いで開けば、画像のロードが間に合わず表示されないことがあるかもしれませんが、その程度です。

あるいは、お行儀の悪いプラグインが勝手にシステム画像用のIDを指定してキャッシュを解放してしまっているとしたら表示されなくなることもあるかもしれません。
これを調べるにはプラグインフォルダに対して releaseReservation で grep かけて、一つ一つ見ていく他ないので、そこまでして頑張りたいならどうぞ、という感じですね。

Re: フトコロ様のFTKR_ExEscapeCharacters.jsで画像がたまに表示されない

Posted: 2020年4月04日(土) 20:19
by 亜季色
なるほど、これ以上追及するとなると結構大変なんですね。
今のところ安定しているので、これで解決ということにしようと思います。

とても助かりました!どうもありがとうございます!