プラグイン導入後にコンティニューができなくなる問題

アバター
ジャグリングドラゴンヒョウガ
記事: 3
登録日時: 2021年5月16日(日) 06:50
お住まい: 浜松
連絡を取る:

プラグイン導入後にコンティニューができなくなる問題

投稿記事by ジャグリングドラゴンヒョウガ » 2021年5月16日(日) 08:14

room_sample.png
room_sample.png (74.12 KiB) 閲覧数: 1828 回
はじめて質問をさせていただきます、ジャグリングドラゴンヒョウガと申します。

ゲームアツマールで自作ゲームを公開するなどしております。
https://game.nicovideo.jp/atsumaru/games/gm14679

こちらのゲームはパズルゲームで、
現在もゲームアツマールで稼働中ですが、
ステージエディタを作ったら面白いかなと思い、現在試行錯誤しながら作っている最中です。

パズルゲームではあるのですが、
地形はRPGツクールの機能を生かして作成しており、
移動可能な「床」と、移動ができない「障害物」と、そこに進むとミスになってしまう「穴」
という3種類のタイルを利用しつつ、画面上のアイテムをすべて回収するようなパズルゲームです。
(添付ファイル参照)

エディット機能を作るにあたり、プラグインを導入しました。
https://plugin.fungamemake.com/archives/16630
Suppon様作成 チェンジタイルID version1.10

こちらのプラグインを使うことで、
マップを動的に変更することが可能になり、地形タグなどを利用すればセーブ・ロードなども含めて
エディットが実現できるかと思っていたのですが、

新規ゲームの開始・あるいはテスト実行 では問題なく動くようなのですが、
途中まで進めたゲーム(プラグイン導入前に進めたデータ)をコンティニューしてロードしようとすると、
ゲームをロードした瞬間に以下のエラーが出てきてしまいます。

TypeError
Cannot read property 'length' of undefined

他のプラグインをON、このプラグインのみOFFにした状態でコンティニュー→ゲームロードはうまくいったので
このプラグインが原因なのではないかと思っているのですが、

・このエラーを回避する方法は何か思いつきますでしょうか。
・何か原因をさらに追及する方法はありますでしょうか。

の2点、是非ともご相談させていただきたく思います。

当方、知識不足でまだプラグインの開発などはできませんが、
スクリプトを使うところまではなんとか大丈夫と思っています。
リファレンスなども参考にしてみましたが、タイルを変更するなどの方法はわからなかったため
プラグインを導入することにしましたが、
もし、スクリプトを利用しても同じようなことができるよということをご存じでしたら教えていただけるとプラグイン無しでも回避できるのではないかなと思っております。

是非ともお知恵を拝借させてください。

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

Re: プラグイン導入後にコンティニューができなくなる問題

投稿記事by Plasma Dark » 2021年5月16日(日) 08:46

SupponChangeTileId110.js はコードを読む限り、導入前のセーブデータをロードすることを想定していません。(必ずエラーになります)

ロード時に必要な初期化を行えばこのエラーは回避できるかもしれませんが、あまり可読性の良くないコードなので何が起こるかわかりません。

対症療法的に試すとすれば、 Game_System.prototype.onAfterLoad に $gameMap._supponCTI の初期化処理を挟んであげるとかじゃないかなと思います。

もし、スクリプトを利用しても同じようなことができるよということをご存じでしたら教えていただけるとプラグイン無しでも回避できるのではないかなと思っております。


プラグインの良し悪しはともかくとして、あまり複雑なことをスクリプトを利用して実現しようとしないほうが良いとは思います。
意味を理解できないままおまじないのようにスクリプトを書いてしまうと何か起きたときにどうしようもなくなります。

プラグインであれスクリプトであれ、書いているのはJavaScriptですので、スクリプトは書けるがプラグインは書けない、というのは(今回くらい複雑な例であれば特に)意味がありません。
アバター
ジャグリングドラゴンヒョウガ
記事: 3
登録日時: 2021年5月16日(日) 06:50
お住まい: 浜松
連絡を取る:

Re: プラグイン導入後にコンティニューができなくなる問題

投稿記事by ジャグリングドラゴンヒョウガ » 2021年5月16日(日) 08:53

Plasma Drak様
ありがとうございます、
やはり途中から新しく機能を追加しようとすることに無理がありましたね。

他の方の意見もお待ちしようと思います。
アバター
WTR
記事: 558
登録日時: 2015年12月22日(火) 19:14

Re: プラグイン導入後にコンティニューができなくなる問題

投稿記事by WTR » 2021年5月16日(日) 10:04

タイルとかリージョンを動的に変更したいって話はときどき見ますが
あまりよくないと思うんですよね。
すごく把握しづらい仕組みだと思います。
そういう動的な部分は本来イベントが担うものなんじゃないかと。
ジャグリングドラゴンヒョウガ さんが書きました:移動可能な「床」と、移動ができない「障害物」と、そこに進むとミスになってしまう「穴」
という3種類のタイルを利用しつつ、画面上のアイテムをすべて回収するようなパズルゲームです。

3つしかないならイベントでもできそうな気がしますけど、どうでしょう。
テンプレートイベントプラグインなんてのもありますね。
Twitter、はじめました。
https://twitter.com/wtr_in_reverie/
アバター
ジャグリングドラゴンヒョウガ
記事: 3
登録日時: 2021年5月16日(日) 06:50
お住まい: 浜松
連絡を取る:

Re: プラグイン導入後にコンティニューができなくなる問題

投稿記事by ジャグリングドラゴンヒョウガ » 2021年5月16日(日) 12:55

WTR様
返信ありがとうございます。
なるほど、本来なら推奨できないものなのですね。

イベントを使うという方法も考えましたが(実際テンプレートプラグインは使っています)
ゲームの設計時にそう作っていなかったこともあり、
ここから変えるのは止めておこうと思います。

仕方ないのでエディット機能は断念かなと思っています。

ご意見ありがとうございました。
アバター
ムノクラ
記事: 2011
登録日時: 2018年2月23日(金) 11:41
連絡を取る:

Re: プラグイン導入後にコンティニューができなくなる問題

投稿記事by ムノクラ » 2021年12月06日(月) 12:29

自分もマップタイルを変更するのは、ツクールの想定外の動作だと思うので、使うのは難しいかと思っています。
ただ、導入後に出るエラーは解決できたと思う(あまり自信はありませんが)ので、検索で来た人向けに載せておきます。

下記の不具合修正は行っていません。
viewtopic.php?f=116&t=10559
添付ファイル
SupponChangeTileId.js
v1.10.1
(22.98 KiB) ダウンロード数: 7 回
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。

“MV:質問” へ戻る