報告:WSN形式シナリオの挙動が重い

Issue #423 resolved
gorfrog created an issue

環境に依存する事かも知れませんが、一応報告しておきます WSN形式だと、メッセージコンテントを左クリック押しっ放しで飛ばした時の挙動が若干重く、 また、背景表示の挙動は極端に重くなり正常に機能しているとは言い難い状態です。 現状私の環境では、WSN形式のままプレイする上で利点がありません。 もし改善が可能なら、御検討頂きたく思うのですが、如何でしょう?

Comments (9)

  1. k4nagatsuki repo owner

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

    CWPyは、元々WSN形式のシナリオだけを再生するものだったため、実はクラシックなシナリオも内部的にはWSN形式同様のものに変換しています。それが正常に動かないというのはおかしな話で、何かバグがあるとしか思えません。

    そのバグがWSN形式を遊ぶ時にだけ発生するものであれば、まったく同じシナリオをcwxeditorなどでクラシック形式とWSN形式の両方で保存し、それぞれ遊んでみた時に、WSN形式の方だけ問題が発生するはずです。実際にそのようになるかどうか、教えていただけないでしょうか。

    また、私の環境ではこの問題は発生しないのですが、他に発生している方はいらっしゃらないでしょうか。

  2. k4nagatsuki repo owner

    もしかすると、セキュリティソフトが「wsn? なんだこの拡張子は」と思って念入りに検査しているために重いというような事があるかもしれません。

    その場合、*.wsnの拡張子をzipに変えてみたり、シナリオを展開(ZIPを展開できるソフトならできます)してみたりすると、問題が解消するかもしれません。

  3. gorfrog reporter

    展開後は問題なく動作する事は既に確認しています。やはり環境に依存する問題のようですね。特に違いが無いのなら、展開してプレイさせて頂く事にします。御返答ありがとうございました。

  4. k4nagatsuki repo owner

    圧縮されたままの場合はCWPy自身が展開しているのですが、その処理で何か起きているのでしょうか。だとしたらZIP書庫やLHA書庫などでも問題は起きそうです。

    お手数をおかけして申し訳ありません。よろしければ、何か新しい事が分かりましたらお知らせください。

  5. Iraka.T

    この課題に関係しないかもしれませんが、Pyでのみ異様に動作が重くなるクラシックシナリオをひとつ知っています。しろねこ氏の「採点式ゴブ洞」です。

    http://ux.getuploader.com/shironeko_cat/download/187/%E6%8E%A1%E7%82%B9%E5%BC%8F%E3%82%B4%E3%83%96%E6%B4%9E.cab

    また、このシナリオはWSN形式に変換すると、エンジンがシナリオの読み込みに失敗します。

    Traceback (most recent call last):
      File "(略)\cw\thread.py", line 1875, in set_scenario
        self.sdata = cw.data.ScenarioData(header)
      File "(略)\cw\data.py", line 686, in __init__
        self._init_xmlpaths()
      File "(略)\cw\data.py", line 1064, in _init_xmlpaths
        e = xml2element(path, "Property")
      File "(略)\cw\data.py", line 3596, in xml2element
        return parser.parse()
      File "(略)\cw\data.py", line 3726, in parse
        self.parse_file(f)
      File "(略)\cw\data.py", line 3741, in parse_file
        raise err
    ExpatError: not well-formed (invalid token): line 7, column 34. file: (略)/採点式ゴブ洞WSN/ItemCard/01_南へ.xml
    

    この状態でも、CWXEditorでは開くことができますし、誤り検索にも特に問題は見られません。

    ただ、シナリオの形式によらずですが、Pyが処理速度で1.50に劣るコンテントは存在します(私はクーポン処理が遅いことを把握しています)ので、単にパフォーマンスの問題なのか、バグによる現象なのか判断はつきません。

  6. k4nagatsuki repo owner
    • pull request #1610
    • pull request #1611

    どちらの問題も対応しました。読込失敗は、なぜかアイテムカードの解説欄に本来は入力不可能な制御文字が混入しているせいでした(これどうやってコピペしたんだろう?)。

    パフォーマンスの問題は、特殊技能カードが荷物袋へ入る処理が大量に発生しているせいだったのですが、この問題は以前他のシナリオで問題になって軽量化したはず……と思って調べてみたところ、PCへ渡そうとして溢れた分が荷物袋へ入る時にはその処理が利いていませんでした。利くようにしたので、速くなったはずです。

    その他、シナリオで問題になるほど処理が遅い部分があったら都度手を入れていきます(無理なところもあるかもしれませんが)。

  7. Iraka.T

    パフォーマンスが劇的に改善して驚きました。対応ありがとうございます。

    pull request #1610 については思うことがあり、そちらにコメントしました。

  8. gorfrog reporter

    最新版で試してみると「レイリヨ(略)」の挙動が驚くほどに滑らかになっていて驚きました。「鉄鍋のニコラ」でも試してみたのですが、こちらはまだまだ重くて、やはり展開せざるを得ませんでした。セキュリティツールのウイルスチェックから例外設定したりもしたので、それも関係しているかも知れません。

  9. k4nagatsuki repo owner

    原因は不明なままですが、とりあえず解決していると思われるので完了にします。

    また問題が起きたらお知らせください。

  10. Log in to comment