【解決済】フトコロ様のFTKR_ExEscapeCharacters.jsで画像がたまに表示されない

アバター
亜季色
記事: 42
登録日時: 2019年9月16日(月) 12:54

【解決済】フトコロ様のFTKR_ExEscapeCharacters.jsで画像がたまに表示されない

投稿記事by 亜季色 » 2020年3月29日(日) 11:07

FTKR_ExEscapeCharacters.jsを使ってアイテム説明欄に画像を表示しているのですが、ときどき画像が表示されないことがあります。

/img/systemフォルダにItem.pngという画像を置き、
パラメータのAdvance Load Filesで画像ファイルの指定はしています。

表示されないのは、所持アイテム一覧の一番左上の画像を表示したときのみです。
その際、他のアイテムにカーソルを合わせてから左上にカーソルを戻すと表示されるようになるのですが、
時間を置くとまた表示されなくなっています。
最初からちゃんと表示されていることの方が多いのですが、たまに表示されていないことがあるという状況です。

何が原因か分かる方はいらっしゃらないでしょうか?
添付ファイル
プラグインの設定.jpg
プラグインの設定
プラグイン一覧.jpg
使用しているプラグイン一覧
最後に編集したユーザー 亜季色 on 2020年4月04日(土) 20:19 [ 編集 1 回目 ]

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

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

投稿記事by Plasma Dark » 2020年3月29日(日) 13:34

画像キャッシュから消えているタイミングで、ロードが間に合わないと表示されないです。

このプラグインはゲーム開始時にロードするようにはなっていますが、そこでキャッシュに乗ったものが他の画像のロードで押し出されて消えることはあります。
左上のアイテム説明文を処理する際にもう一度ロードするのですが、ロードが追いつかないので左上のアイテム説明文だけ表示されないのでしょう。

ツクールMVのロード形式は以下の記事でトリアコンタンさんが説明してくださっています。
FTKR_ExEscapeCharacters.js はこの3種のうち、 Load を用いているため、キャッシュから追い出される可能性があります。

https://tm.lucky-duet.com/viewtopic.php?t=7206

Reserve を使うように変更すればこの問題は解決されるかと思いますが、その分だけ画像キャッシュが狭くなり、キャッシュの入れ替わりが激しくなります。
つまり、画像のロードを挟むタイミングが増えるため、ゲーム中でカクつくように感じるかもしれません。
アバター
亜季色
記事: 42
登録日時: 2019年9月16日(月) 12:54

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

投稿記事by 亜季色 » 2020年3月29日(日) 14:13

どうもありがとうございます。

なんとなく原因が分かったので、一度Reserveで画像読み込みをしてみようと思うのですが
これはどういった手順でやれば良いのでしょうか?
アバター
Plasma Dark
記事: 668
登録日時: 2020年2月08日(土) 02:29
連絡を取る:

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

投稿記事by Plasma Dark » 2020年3月29日(日) 15:16

loadではなくreserveで先読みするパッチプラグインを用意しました。
以下のプラグインを入れてみてください。

https://github.com/elleonard/RPGtkoolMV-Plugins/blob/master/plugins/DarkPlasma_FTKR_ExEscapeCharactersPatch.js
アバター
亜季色
記事: 42
登録日時: 2019年9月16日(月) 12:54

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

投稿記事by 亜季色 » 2020年3月29日(日) 18:07

プラグイン化ありがとうございます。

しかし、こちらのプラグインをFTKR_ExEscapeCharacters.jsより下に入れても症状が改善されませんでした。
何か他の原因があるということでしょうか……。
アバター
亜季色
記事: 42
登録日時: 2019年9月16日(月) 12:54

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

投稿記事by 亜季色 » 2020年3月29日(日) 18:10

イベントでスクリプト:ImageManager.reserveSystem('Item');を実行したところちゃんと表示されるようになった気がします。
手探りでやってみたのですが、これで合ってるのでしょうか。
アバター
Plasma Dark
記事: 668
登録日時: 2020年2月08日(土) 02:29
連絡を取る:

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

投稿記事by Plasma Dark » 2020年3月29日(日) 18:36

イベントでスクリプト:ImageManager.reserveSystem('Item');を実行したところちゃんと表示されるようになった気がします。
手探りでやってみたのですが、これで合ってるのでしょうか。


そうですね、対象画像がそれだけなら、ゲーム開始時にイベントのスクリプトでそれを動かしてしまうのも手だと思います。

私のプラグインが動かなかった理由として考えられるのはRPGツクールMVのバージョンが1.5系であることくらいです。
F12を押して出てくる画面の Console タブに何かエラー表示されていたりしないでしょうか。
アバター
亜季色
記事: 42
登録日時: 2019年9月16日(月) 12:54

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

投稿記事by 亜季色 » 2020年3月30日(月) 09:37

consoleを確認してもエラーは出ていないようです。
バージョンは1.6.2です。

画像の表示がされない現象で再現性のあるタイミングを見つけました。
するとやはり、イベントからスクリプトを実行すると改善されて、
Plasma Dark様のプラグインだとやはり上手くいかないようです。

FTKR_ExEscapeCharacters.jsより下に配置しているので使い方は間違ってないと思うのですが、
いかんせんいまいち仕組みが理解出来ていないので、こちらでプラグインを導入する際に不手際がある可能性も大きいです。
うーん、何が原因なんでしょう……。
アバター
Plasma Dark
記事: 668
登録日時: 2020年2月08日(土) 02:29
連絡を取る:

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

投稿記事by Plasma Dark » 2020年3月30日(月) 11:44

Plasma Dark様のプラグインだとやはり上手くいかないようです。


何らかの原因で画像の読み込みが出来ていないのでしょう。
Consoleにエラーが出ていないとのことなので、おそらくないとは思いますが、私のプラグインをダウンロードする際に、貼り付けたURLをそのまま保存されてはいないですよね。
これはこちらの説明が足りず申し訳ないのですが、貼り付けたURLの先で右上のRawボタンを対象をファイルに保存でダウンロードされると確実です。

画像の表示がされない現象で再現性のあるタイミングを見つけました。


確実に再現が取れるとなると、元のプラグインからして何か想定してない挙動をしている可能性があります。
こういうとき、コードにブレークポイント貼って確認できると楽なんですが、VSCodeなどの環境を整える必要があるので、今すぐには難しいでしょうか。

一応、方法だけ貼り付けておきますので、気が向いたら挑戦してみてください。
プラグインの任意の行でゲームの実行を止めて、状態を確認できるスグレモノです。
https://qiita.com/Sanshiro/items/084fb0971942e03db9a4

さて、初心者に今すぐこれをしろとは流石に言えないので、代替のデバッグ方法をお教えします。
まず、UTF-8が正しく扱えるテキストエディタをご用意ください。(VSCodeが理想ですが、サクラエディタなどでも構いません)
FTKR_ExEscapeCharacters.js の186行目、 ImageManager.loadSystem(image); と書いてある行のすぐ後に、改行を入れて以下のように追記してください。

コード: 全て選択

console.log(`load image: ${image}`);


それから、DarkPlasma_FTKR_ExEscapeCharactersPatch.js の36行目、 images.forEach.... と書かれている行の後に、先程と同じようにして以下のように追記してください。

コード: 全て選択

console.log(`reserve image: ${images[0]}`);


それからゲームをテストプレイモードで起動し、F12でConsoleを開いてください。
load image: Item などの表示が出るかどうかをスクリーンショットで貼り付けていただけると何かわかるかもしれません。

それから、コンソールに FTKR.EEC.files と入力してちゃんと "item" などと表示されることも、念の為ご確認いただいたほうが良いでしょう。
アバター
亜季色
記事: 42
登録日時: 2019年9月16日(月) 12:54

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

投稿記事by 亜季色 » 2020年3月31日(火) 13:17

詳しい説明どうもありがとうございます。

これから数日間ツクールに触れないので
時間が出来次第、保存し直して再確認をした後にデバッグにも挑戦してみます!

“MV:質問” へ戻る