【解決済み】「ChoiceItemImage」の最新版対応化

返信する
utiyasu777
記事: 9
登録日時: 2025年1月22日(水) 05:16

【解決済み】「ChoiceItemImage」の最新版対応化

投稿記事 by utiyasu777 »

閲覧有難うございます。
Basu様が制作された「ChoiceItemImage.js」を使わせて頂いているのですが
ツクール本体を最新版にアップデートすると以下のエラー文が出て起動出来なくなってしまいました。

TypeError
Cannot use 'in' operator to search for 'faceSize' in null

どなたか最新版でも起動出来るよう修正したChoiceItemImage.jsを作っていただけないでしょうか?
よろしくお願い致します。

Basu様作 ChoiceItemImage.js
https://plugin-mz.fungamemake.com/archives/7194 (ツクプラの紹介ページへのリンクです)
アイテム選択画像機能を実装します。
添付ファイル
18293669e6560a6bb17d6912f8155042.png
18293669e6560a6bb17d6912f8155042.png (9.15 KiB) 閲覧された回数 125 回
最後に編集したユーザー utiyasu777 [ 2025年6月19日(木) 07:29 ], 累計 1 回
ecf5DTTzl6h6lJj02
記事: 752
登録日時: 2018年12月23日(日) 13:55

Re: 「ChoiceItemImage」の最新版対応化

投稿記事 by ecf5DTTzl6h6lJj02 »

こんにちは。
utiyasu777 さんが書きました: 2025年6月18日(水) 06:30 閲覧有難うございます。
Basu様が制作された「ChoiceItemImage.js」を使わせて頂いているのですが
ツクール本体を最新版にアップデートすると以下のエラー文が出て起動出来なくなってしまいました。

TypeError
Cannot use 'in' operator to search for 'faceSize' in null

どなたか最新版でも起動出来るよう修正したChoiceItemImage.jsを作っていただけないでしょうか?
よろしくお願い致します。

Basu様作 ChoiceItemImage.js
https://plugin-mz.fungamemake.com/archives/7194 (ツクプラの紹介ページへのリンクです)
アイテム選択画像機能を実装します。
エラーメッセージに関して、
実は、ゲームのウィンドウに表示されるエラーメッセージには、ほとんど情報がなくて、
エラーについて調査するためには、
F8 もしくは F12 を押したときに表示される DevTools というウィンドウの Console というがタブで表示される、
エラー情報(赤字で表示される情報) が必要になります。
今回はこちらでエラー原因を特定できますので、大丈夫ですが、
次回以降、上記の画像を添付していただけるようお願いします。

エラーの発生原因ですが、
ChoiceItemImage.js の 199 行目の

コード: 全て選択

    const textMargin = ImageManager.faceWidth + params.textMargin;
という命令の中の

コード: 全て選択

ImageManager.faceWidth
という部分が原因となっています。

この命令文は、今までは 144 という値を返すように設定されていましたが、
最新版のコアスクリプトのバージョン 1.9.0 で、顔画像のサイズを選択できるようになったため、
データベースの顔サイズの設定内容を取得するように変更されました。

ところが、ChoiceItemImage.js の 199 行目で取得しようとするタイミングでは、
データベースの内容が読み込まれておらず、取得することができません。
そのため、提示されているエラーが発生しています。

textMargin という変数は、
アイテムのヘルプを描画する関数内でしか使われていないませんし、
その関数の中であれば、顔画像のサイズはきちんと取得できるはずなので、
199 行目の命令文を、この関数の中に、移動してしまえばいいかな、と思います。

choiceItemImage.js ファイルのバックアップをきちんと取ってから、
ファイルを JavaScript を編集できるソフトウェアで開き、以下の編集を行ってください。
  1. 199 行目 の

    コード: 全て選択

        const textMargin = ImageManager.faceWidth + params.textMargin;
    
    という部分を
    306 行目あたり

    コード: 全て選択

            const width = this.innerWidth - ImageManager.faceWidth;
    
    となっている部分の次の行に移動してください。
  2. もし、ヘルプウィンドウが、アイテムリストのウィンドウと被ってしまっている、
    という場合には、アイテムリストウィンドウの位置を下げるために、
    1. の変更を行うと 370 行目あたりにくる

    コード: 全て選択

            _Window_EventItem_Start.apply(this, arguments);
    
    という部分の次の行に

    コード: 全て選択

            this.y += this._helpWindow.height + 4;
    
    という命令文を挿入してください。

以上で、正常な動作になるかなと思います。

ご確認ください。
utiyasu777
記事: 9
登録日時: 2025年1月22日(水) 05:16

Re: 「ChoiceItemImage」の最新版対応化

投稿記事 by utiyasu777 »

ecf5DTTzl6h6lJj02様

いつもお世話になっております。
ご回答下さり有難うございます。

教えて下さったやり方で起動してみたところ無事最新版でも起動する事が出来ました!
今回も分かりやすく的確にご教授いただき有難うございました。
また、エラーメッセージにつきましても教えて下さり有難うございます。
以後気を付けたいと思います。
返信する

“MZ:プラグイン素材のリクエスト”に戻る