Martin
1
こんにちは!数ヶ月にわたってJRPGを開発しており、現在プレイ時間は約8時間です。新しいゲームを開始したときのみ初期化されるプラグインをいくつか使用しています。プラグイン内の特定のパラメータを変更しても、ゲームを再起動(新しいゲームを開始)するまで変更が反映されません……プレイ開始から8時間後に発生する現象などをテストする際に、これは非常に不便です。
良い例として、戦闘中にゲージを表示するためのプラグインがあります。新しい敵を作成した場合、ゲージは新しいゲームを開始した場合のみ正しく表示され、セーブデータでは新しい敵のゲージが適切に表示されません。
この問題の解決策をご存知の方はいらっしゃいますか?
Gensun
2
どの解決策も、プラグイン設計者がどのようにプラグインを構成したかに依存します。すべてのプラグインに適用できる普遍的な解決策は存在しません。古いセーブファイルで動作するようにプラグインの一部を再構築するためのサポートを受けるには、プラグインの作者に連絡してください。基本的に、膨大な量の独自コードを書き、問題のあるプラグインを徹底的に読み込んで理解しない限り、解決策はありません。
「いいね!」 2
プラグインが無料で、利用規約が編集を許可している場合、ここで何を編集すべきかを見つけるお手伝いもできます。有料であっても、利用規約が編集を許可している限り、同じく購入した人に編集箇所を教われる可能性もあります。
ただし、まずは元の開発者に連絡することをお勧めします。
「いいね!」 1
Martin
4
ありがとうございます。プラグインをリロードする汎用的な方法があるのではないかと期待していたのですが。RPG Makerについては比較的初心者なので、コアを(破壊的に)変更するのではなく、もっと「プラグイン」らしい形で動作することを期待していました。この問題を抱えているのは一つのプラグインだけでなく、複数の開発者による複数のプラグインです。やはり自分でプラグインの書き方を学ぶしかないですね 
Martin
5
ありがとう。複数のプラグインで、しかも異なる開発者によるものなので、これは課題になりそうです。プラグインのパラメータを変更したり追加したりすると保存したファイルが壊れてしまうなら、リリース後のゲームを更新し続けることは不可能になりますね。おそらく、使用する前にプラグインをより慎重にテストする必要があるようです。
Gensun
6
プラグインをリロードするための汎用的な方法がない理由は、それらがゲームロジックを変更するだけでなく、新しいゲームを開始する際に新しいデータを作成する可能性があるからです。通常、これらのプラグインはゲームに対して「新しいプレイヤーオブジェクトを作成する際には、これもおこなってください」と指示します。そのコマンドを呼び出すと、新しいプレイヤーオブジェクトの作成に関わる他のスクリプトも呼び出され、通常はそれ自体が独立した呼び出しにはなりません。
Galv氏には、私がちょうど説明したのと同じ挙動をする足音用のプラグインがあります。彼のプラグインでは、開発者がどのアニメーションフレームで足音を再生するかを指定できますが、そのデータをプラグインのパラメータに集約するのではなく、プレイ中に通常は再作成されないプレイヤーオブジェクトに保存されます。
個人的には、私のゲームにはバージョン管理を処理する独自のコードセクションがあります。古いセーブデータを読み込もうとした場合にゲームが何をすべきか、ゲームデータを最新バージョンに適合させるためにどう編集するかを、手動で記述する必要があります。
まあ、それはプラグインの内容やその実装方法に大きく依存します。セーブゲームを壊してしまうように作られたプラグインもあれば、壊さないように作られたものもあります。さらに、セーブゲームを壊す可能性はあるものの、最終的に壊れないように追加のロジックを備えたプラグインもあります。
もしすべてのプラグインデータがゲームデータと同様に起動時に読み込まれるだけであれば、問題はありません。しかし、データはアクターなどの標準的なゲームオブジェクトに頻繁に追加され、それがセーブゲームに組み込まれてしまいます。その結果、セーブデータがプラグインが期待する内容と一致しない場合に、何かが壊れる可能性があります。
「いいね!」 1