RMMV セーブ/ロード不可になる場合がある件[対処方法あり]
drive.google.com/file/d/0B9n88H… ツクールMVスクリプト「アナログムーブ」公開します。タイルによらない移動とアナログスティック入力に対応しています。 まだ未実装機能が多く実用には堪えないかもしれません。お試しにどうぞ~。 #RPGツクールMV #RPGMakerMV
2015-11-06 18:49:45@rev2nym あと海外にも似たようなスクリプトありましたがセーブができなくなる不具合があったり1px移動は課題も多そうです
2015-11-06 21:32:28@tonbiniira フォロワーの隊列表示はいまのところ未対応です。イベント間のエラー落ちとセーブ不可確認しました。修正しようと思います。教えていただきありがとうございました!
2015-11-06 21:50:37RPG Maker MVのセーブにおいて特定の条件下でセーブ不能になる現象を確認しました。循環参照を持つクラスが一つでも存在するとセーブ時に無現ループに陥ります(stack too deep系の例外が発生して続行不可)。#RPGツクールMV #RPGMakerMV
2015-11-06 23:27:39セーブ不能になる現象を再現するプラグインを作成しました。以下のプラグインを有効にしてセーブしてみてください。#RPGツクールMV #RPGMakerMV drive.google.com/file/d/0B9n88H… twitter.com/rev2nym/status…
2015-11-06 23:44:04一度セーブデータとして拾ったオブジェクトIDを記録しておいて、重複でセーブしないようにすればいいと思ったけど、JavaScriptにオブジェクトIDなんて概念はなかった!
2015-11-07 01:34:37drive.google.com/file/d/0B9n88H… 循環参照を持つオブジェクトに対応したセーブロード機能プラグインを作成しました。よかったらお試しください~。 twitter.com/rev2nym/status…
2015-11-07 03:18:31方針としては「循環参照を切ることで無限ループを防ぐ」「一度参照したデータは次は参照しない」。これではセーブか漏れてしまうプロパティが出てしまう。対策します。できるはず。
2015-11-07 04:03:03@Jun_A_sakamoto ありがとうございます!しかし申し訳ありません「どんなプラグインを導入していてもロード後に正常に動くか」は非常に怪しいです。具体的には循環参照を用いるプラグイン使用時は正常にセーブ・ロードできません。もし使用するなら入念なテストを強く推奨します><。
2015-11-07 11:14:02MVの循環参照セーブ問題。元のセーブ機能はオブジェクトのデータ木構造を再帰的に無条件で値の評価をするから無限ループに陥る。昨晩の私の対策プラグインだと「循環参照を検出したらセーブしない」という手段で無限ループを回避したので、循環参照はセーブされないのです…。(トートロジー)
2015-11-07 11:25:45「循環参照をセーブしない」ことによる弊害はもちろんあります。ロードしたときにもともと循環参照が入っていたところは null になってしまうのです。これらは JSON.stringify を使ってセーブしている以上、完全には解決できないのではないかと思っています。
2015-11-07 11:29:23次善の対策としては、「循環参照を持つ処理を作らない」「もし循環参照を使うならロード時に必ず null を初期化する」くらいでしょうか。
2015-11-07 11:33:49drive.google.com/open?id=0B9n88… ツクールMVプラグイン「循環参照対策セーブ機能」を更新。循環参照検知の精度が向上しました。 #RPGツクールMV #RPGMakerMV twitter.com/rev2nym/status…
2015-11-07 15:03:00@rev2nym おつかれさまです。 遅ればせながら、ようやく状況を半分ぐらい(?)理解しました。 プラグインで独自になんかセーブ/ロードしたいときは、JSONで処理できるオブジェクトで保存するということですよね。
2015-11-07 15:06:01@saronpasu ありがとうございます。おっしゃる通りではあるんですが、そもそもMVのセーブ(オブジェクト分解)機能が循環参照を考慮していなかったのもあります。なのでJSONのstringify(整形文字列化)とMVのオブジェクト分解機能の二ヶ所に対策を施しています。
2015-11-07 15:16:46@rev2nym えっと。MVのセーブ機能の改善を独自にされようとしているのだと思います。(違ったらごめんなさい) それってスゴイと思うのですが。 しかるべき窓口(MakerMVの場合はバグレポートフォーラム)に連絡とかってされていましたでしょうか。
2015-11-07 15:23:57