シナリオのキャストが正常に読み込めない現象

Issue #878 resolved
Kohaku Utakata created an issue

Xeditorでシナリオを保存した直後、
Pyエンジンでシナリオのキャストが正常に読み込めていないと思われる事象が確認されています。

エディタ上ではキャスト存在分岐でキャストが指定されているにも関わらず、
ゲームのデバッグウインドウで確認するとキャストが指定なしになっている状況が発生します。

画像を添付いたしますのでご確認ください。

OS:Win10 64bit
Core i5-7600K 3.80GHz
実装RAM 8GB

Comments (6)

  1. k4nagatsuki repo owner

    ご報告ありがとうございます。

    手許で何回か試してみたのですが、シナリオに追加したキャストを新しいキャスト存在分岐で使用し、シナリオを保存、シナリオ側で再読込を実行、といった手順では現象は確認できませんでした。

    下記の内容を確認し、実際に起きているのがどのような現象か教えていただけないでしょうか。

    1. もしも「直後」の意味が時間的なものなのであれば、保存が完了する前にシナリオが読み込まれたためと思われます。この場合、保存の完了まで少し待てばキャストが出現するはずです。特にシナリオが圧縮されている場合、cwxeditorが操作可能になったあとでも圧縮ファイルの作成が完了していない場合があります。
    2. 時間的な意味ではない(しばらく間を置いても現象が発生する)場合、シナリオの再読込が行われていないなどのケースが考えられます。CWPyはシナリオが更新されたかどうかを圧縮ファイルかSummary.xmlの更新日時で判断し、エリア切り替えなどのタイミングで再読込を行います。この再読込が行われていないために発生した現象であれば、デバッガから再読込を実行するか、シナリオをロードし直した時にはキャストが存在しているはずです。
    3. 上記のいずれでもない場合、特定のパラメータや所持カードなどなんらかの要因が条件になって、実際にキャストの保存に失敗しているか、壊れたデータが生成されているのかもしれません。この場合、問題のキャストはcwxeditorで再読込ができなかったり、コピーして他のシナリオで使用した時も読み込めなかったりするはずです。

  2. Kohaku Utakata reporter

    ご確認ありがとうございます。

    報告時に情報を省いてしまったのですが、上記シナリオは複数人で開発を行っており、そのチームメンバーの内のひとりに私から送ったシナリオデータを、
    メンバーが改変・保存した後のタイミングでの起動で発生しておりました。
    ですので、読み込みのできていないキャストは元々存在しており、新規に作成したものではありませんでした。
    加えて、スクリーンショットには移していませんが、読み込めていないキャストは複数存在しておりました。

    「直後」について、タイミングとしては、xeditorで保存し、「上書き保存」のアイコンがグレースケールになった後での起動でした。

    また、製作中であったために、このシナリオはwsn形式に圧縮されておらず、未圧縮の状態で起動しておりました。

    そして申し訳ないのですが、私自身の環境でもこのエラーは再現できていません。
    確認はチームメンバーの画面をDiscord経由でキャプチャしながら行っておりました。そのため、環境による差である可能性もあると考えております。

    もし情報不足であれば、開発中のシナリオデータもお渡しすることができます。

    本日は状況が発生したメンバーと連絡が取れないため、返答いただいた内容については後日確認させていただきます。

    よろしくお願いいたします。

  3. Kohaku Utakata reporter

    追記です。保存後しばらく時間を置いての起動ではエラーは発生しないとの連絡を受けました。

    ひとまずプレイヤーが普通に遊ぶ分には問題なさそうです。

  4. k4nagatsuki repo owner

    エディタ外部でシナリオファイルのやり取りを行う中で発生したのであれば、考えられる要因として、フォルダ内に存在するファイルとcwxeditorが認識しているファイルが食い違っていた事が考えられます。

    cwxeditorはシナリオを読み込んだ後、画像などのリソースを除く全てのシナリオデータをメモリ上に保持しています。例えばID1のキャストが読み込み時に存在しなかったのであれば、再読込を行わない限り、cwxeditorはID1のキャストは存在しないものと認識しています。

    外部からID1のキャストデータをフォルダに追加してもその状況は変わらず、次の保存時には存在しないキャストのデータファイルとして削除されてしまいます(前回読み込み時に存在していたがエディタ操作で削除されたキャストと同じ扱いになります)。

    ファイルのやり取りと追加を何度も行う過程で、そのような状況が発生していたのかもしれません。

    ただ、cwxeditor上で当該キャストを編集したあとで上書き保存したのであれば、すでにcwxeditorはそのキャストの存在を認識しているので、キャストデータを保存するはずです。バグが存在する可能性はまだ捨てきれません。また発生したら状況をご報告いただければと思います。

  5. Kohaku Utakata reporter

    ご返答ありがとうございます。

    仕様について、了解いたしました。

    もし新しく何か見つけたときには、またご報告させていただきます。

  6. Log in to comment