閲覧有難うございます。
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 (ツクプラの紹介ページへのリンクです)
アイテム選択画像機能を実装します。
【解決済み】「ChoiceItemImage」の最新版対応化
-
- 記事: 9
- 登録日時: 2025年1月22日(水) 05:16
【解決済み】「ChoiceItemImage」の最新版対応化
- 添付ファイル
-
- 18293669e6560a6bb17d6912f8155042.png (9.15 KiB) 閲覧された回数 126 回
最後に編集したユーザー utiyasu777 [ 2025年6月19日(木) 07:29 ], 累計 1 回
-
- 記事: 752
- 登録日時: 2018年12月23日(日) 13:55
Re: 「ChoiceItemImage」の最新版対応化
こんにちは。
実は、ゲームのウィンドウに表示されるエラーメッセージには、ほとんど情報がなくて、
エラーについて調査するためには、
F8 もしくは F12 を押したときに表示される DevTools というウィンドウの Console というがタブで表示される、
エラー情報(赤字で表示される情報) が必要になります。
今回はこちらでエラー原因を特定できますので、大丈夫ですが、
次回以降、上記の画像を添付していただけるようお願いします。
エラーの発生原因ですが、
ChoiceItemImage.js の 199 行目の
という命令の中の
という部分が原因となっています。
この命令文は、今までは 144 という値を返すように設定されていましたが、
最新版のコアスクリプトのバージョン 1.9.0 で、顔画像のサイズを選択できるようになったため、
データベースの顔サイズの設定内容を取得するように変更されました。
ところが、ChoiceItemImage.js の 199 行目で取得しようとするタイミングでは、
データベースの内容が読み込まれておらず、取得することができません。
そのため、提示されているエラーが発生しています。
textMargin という変数は、
アイテムのヘルプを描画する関数内でしか使われていないませんし、
その関数の中であれば、顔画像のサイズはきちんと取得できるはずなので、
199 行目の命令文を、この関数の中に、移動してしまえばいいかな、と思います。
choiceItemImage.js ファイルのバックアップをきちんと取ってから、
ファイルを JavaScript を編集できるソフトウェアで開き、以下の編集を行ってください。
以上で、正常な動作になるかなと思います。
ご確認ください。
エラーメッセージに関して、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 を編集できるソフトウェアで開き、以下の編集を行ってください。
- 199 行目 の
という部分を
コード: 全て選択
const textMargin = ImageManager.faceWidth + params.textMargin;
306 行目あたりとなっている部分の次の行に移動してください。コード: 全て選択
const width = this.innerWidth - ImageManager.faceWidth;
- もし、ヘルプウィンドウが、アイテムリストのウィンドウと被ってしまっている、
という場合には、アイテムリストウィンドウの位置を下げるために、
1. の変更を行うと 370 行目あたりにくるという部分の次の行にコード: 全て選択
_Window_EventItem_Start.apply(this, arguments);
という命令文を挿入してください。コード: 全て選択
this.y += this._helpWindow.height + 4;
以上で、正常な動作になるかなと思います。
ご確認ください。
-
- 記事: 9
- 登録日時: 2025年1月22日(水) 05:16
Re: 「ChoiceItemImage」の最新版対応化
ecf5DTTzl6h6lJj02様
いつもお世話になっております。
ご回答下さり有難うございます。
教えて下さったやり方で起動してみたところ無事最新版でも起動する事が出来ました!
今回も分かりやすく的確にご教授いただき有難うございました。
また、エラーメッセージにつきましても教えて下さり有難うございます。
以後気を付けたいと思います。
いつもお世話になっております。
ご回答下さり有難うございます。
教えて下さったやり方で起動してみたところ無事最新版でも起動する事が出来ました!
今回も分かりやすく的確にご教授いただき有難うございました。
また、エラーメッセージにつきましても教えて下さり有難うございます。
以後気を付けたいと思います。