特定スキンでの右クリックエラー

Issue #838 resolved
Former user created an issue

お疲れ様です。 スキン適用時に不具合が発生したため、報告いたします。
既知または解決済みの場合は、恐れ入りますがご容赦ください。

【不具合の内容】

九条のん(GURIMASPOT)氏作 CardWirth アレンジパック(Ver.1.10 またはVer.1.04)適用 MedievalFantasyスキンで発生。

シナリオ内にて右クリックし、キャンプ画面を開くと発生。 発生後は、クリック等操作を受け付けない動作停止状態になる。

CardWirthPy 3.4 64 および 32 bit 版で確認。 CardWirthPy_4.0a1_x86 および CardWirthPy_4.0a1_x64 においても確認。

CardWirthPy 2.3 Build: 2018-02-01 21:03:57 では発生せず。 また問題を確認したバージョンでも、 同梱スキン(Classic, BloodWirth, JUDGEMENT)では発生せず。

【不具合の再現方法】

cwpy-installerにてVersion : 3.4 正式版インストール

アレンジパックの実行ファイルをOP画面にドラッグ&ドロップし、”CardWirth_AP”導入。
参考
>https://togetter.com/li/1075736

CardWirth_AP”スキンでシナリオに入り、右クリックからキャンプを開くと動作停止。
交易都市リューンをはじめ、手持ちシナリオで同様症状。

【エラーログ】

Version : 3.4 (32-bit) / 2019-07-01 19:57:06
DateTime: 2019-07-28 10:38:15
Traceback (most recent call last):
File ".\cw\thread.py", line 787, in run
File ".\cw\thread.py", line 808, in _run
File ".\cw\thread.py", line 817, in main_loop
File ".\cw\eventhandler.py", line 108, in run
File ".\cw\eventhandler.py", line 406, in rclick_event
File ".\cw\eventhandler.py", line 445, in background_event
File ".\cw\thread.py", line 3518, in change_specialarea
File ".\cw\thread.py", line 3332, in change_area
cw.event.EffectBreakError

Version : 3.4 (64-bit) / 2019-07-01 19:58:11
DateTime: 2019-07-28 10:25:28
Traceback (most recent call last):
File ".\cw\thread.py", line 787, in run
File ".\cw\thread.py", line 808, in _run
File ".\cw\thread.py", line 817, in main_loop
File ".\cw\eventhandler.py", line 108, in run
File ".\cw\eventhandler.py", line 406, in rclick_event
File ".\cw\eventhandler.py", line 445, in background_event
File ".\cw\thread.py", line 3518, in change_specialarea
File ".\cw\thread.py", line 3332, in change_area
cw.event.EffectBreakError

【再現環境】

OS 
Windows10 64-bit

CardWirthPyのビルド情報
CardWirthPy 3.4 64 および 32 bit 

【再現率】

5回同じ操作を行い、5回不具合が発生

【調査のチェックリスト】

(2)初期状態のCardWirthPyで再現するか?

実施し、再現を確認

(4)数日前のテスト版での再現するか?

実施し、再現を確認

CardWirthPy_4.0a1_x86 および CardWirthPy_4.0a1_x64

Version : 4.0 Alpha 1 (32-bit) / 2019-07-01 20:24:52
DateTime: 2019-07-28 19:46:25
Traceback (most recent call last):
File ".\cw\thread.py", line 827, in run
File ".\cw\thread.py", line 879, in _run
File ".\cw\thread.py", line 894, in main_loop
File ".\cw\eventhandler.py", line 112, in run
File ".\cw\eventhandler.py", line 414, in rclick_event
File ".\cw\eventhandler.py", line 453, in background_event
File ".\cw\thread.py", line 3703, in change_specialarea
File ".\cw\thread.py", line 3512, in change_area
cw.event.EffectBreakError

Version : 4.0 Alpha 1 (64-bit) / 2019-07-01 20:26:09
DateTime: 2019-07-28 20:01:28
Traceback (most recent call last):
File ".\cw\thread.py", line 827, in run
File ".\cw\thread.py", line 879, in _run
File ".\cw\thread.py", line 894, in main_loop
File ".\cw\eventhandler.py", line 112, in run
File ".\cw\eventhandler.py", line 414, in rclick_event
File ".\cw\eventhandler.py", line 453, in background_event
File ".\cw\thread.py", line 3703, in change_specialarea
File ".\cw\thread.py", line 3512, in change_area
cw.event.EffectBreakError

Comments (8)

  1. k4nagatsuki repo owner

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

    3.4等いくつかのバージョンで試してみたのですが、現象を再現できませんでした。エラーログの内容からすると、どうもスキンの中にあるべきキャンプエリアResource/Xml/Scenario/-4_Camp.xmlが無いようなのですが、どうしてそういう事が起きたのかが分かりません。変換中になんらかのバグなりトラブルなりで生成されなかったにしても、変換するたびにキャンプエリアだけが抜けるというのは妙です。実際にそういう事が起きているとしたら、なんらかの環境固有のバグがありそうです。

    お尋ねしたいのですが、これはアレンジパックから何度スキンを生成しても必ず発生するのでしょうか?

  2. R

    ご対応ありがとうございます。

    確認したところ"USBメモリ上で起動した CardWirthPy 3.4 or 4.0 では毎回生じる" ようです。
    対して内蔵SSD上で確認したところ、不具合は生じませんでした。

    アレンジパック Ver.1.10スキン
    

    CardWirthPy 3.4 (64-bit) Build: 2019-07-01 19:58:11

    CardWirthPy 4.0 Alpha 1 (64-bit) Build: 2019-07-01 20:26:09

    CardWirthPy 4.0 Alpha 2 (64-bit) Build: 2019-08-01 21:49:04

    256GB SSD      → エラー発生せず    
    64GB  USBメモリ  → エラー発生
    

    またご指摘された Resource/Xml/Scenario/-4_Camp.xml に相当すると思われる

    "-4_CAMP" ファイルは、SSDおよびUSBメモリの双方で確認できました。

    関係あるか分かりませんが、SSDのファイルシステムはNTFS、USBメモリはFAT32です。

  3. k4nagatsuki repo owner

    手持ちのUSBメモリで試してみて再現できなかったのですが、USB1時代の4GBとかのものなので、条件が違いすぎるのかもしれません。

    データが別ドライブにあるせいで発生するタイプのバグではないようです。

    お手数をおかけして申し訳ないのですが、以下の事を確かめていただけないでしょうか。

    1. Resource/Xml/Scenario/-4_Camp.xmlData/SkinBase以下ではなく、生成されたスキンのフォルダ以下にあるものを指していますが、それは問題ないでしょうか。
    2. -4_Camp.xmlをメモ帳などで開いた時に、以下のような感じの文書が出てくるでしょうか。
    <?xml version="1.0" encoding="UTF-8"?>
    <System>
      <Property>
        <Id>-4</Id>
        <Name>キャンプ</Name>
      </Property>
          :
    

    また、特定のファイル名が使えないというようなちょっとありそうもない想定の上で試していただきたい事なのですが、-4_Camp.xmlの名前をCamp.xmlなどのように変更した時にも同じ現象が発生するでしょうか。

  4. R

    最初の確認事項についてですが、

    D:\CardWirthPy\Data\Skin\CardWirth_AP\Resource\Xml\Scenario-4_CAMP.XML

    で相違ないでしょうか。内容は、下記のとおりです。

    <?xml version="1.0" encoding="utf-8" ?>
    <System>
      <Property>
        <Id>-4</Id>
      <Name>キャンプ</Name>
      </Property>
     <BgImages>
        <BgImage mask="False">
          <ImagePath />
       <Flag />
       <Location left="0" top="0" />
       <Size height="420" width="632" />
       </BgImage>
      </BgImages>
     <MenuCards spreadtype="Auto">
        <MenuCard arg="BACKPACK" command="ShowDialog">
          <Property>
            <Name>荷物袋</Name>
        <ImagePath>Resource/Image/Card/COMMAND7.bmp</ImagePath>
        <Description>荷物袋に入っているカードを閲覧し、パーティメンバーへの配付を行います。</Description>
        <Flag />
        <Location left="0" top="0" />
        <Size scale="100%" />
        </Property>
       <Events />
       </MenuCard>
      <MenuCard arg="INFOVIEW" command="ShowDialog">
          <Property>
            <Name>情報を見る</Name>
        <ImagePath>Resource/Image/Card/COMMAND8.bmp</ImagePath>
        <Description>これまで入手した情報カードを閲覧します。</Description>
        <Flag />
        <Location left="0" top="0" />
        <Size scale="100%" />
        </Property>
       <Events />
       </MenuCard>
      <MenuCard arg="PARTYEDIT" command="ShowDialog">
          <Property>
            <Name>パーティ情報</Name>
        <ImagePath>Resource/Image/Card/FATHER.bmp</ImagePath>
        <Description>パーティの呼称を設定したり、所持金の確認を行います。</Description>
        <Flag />
        <Location left="0" top="0" />
        <Size scale="100%" />
        </Property>
       <Events />
       </MenuCard>
      <MenuCard arg="SAVE" command="ShowDialog">
          <Property>
            <Name>セーブ</Name>
        <ImagePath>Resource/Image/Card/COMMAND11.bmp</ImagePath>
        <Description>ゲームの進行状況を保存します。</Description>
        <Flag />
        <Location left="0" top="0" />
        <Size scale="100%" />
        </Property>
       <Events />
       </MenuCard>
      <MenuCard command="InterruptAdventure">
          <Property>
            <Name>冒険の中断</Name>
        <ImagePath>Resource/Image/Card/COMMAND9.bmp</ImagePath>
        <Description>冒険を中断します。中止されるわけではなく、冒険中のメンバーはそのままシナリオ内に留まります。</Description>
        <Flag />
        <Location left="0" top="0" />
        <Size scale="100%" />
        </Property>
       <Events />
       </MenuCard>
      </MenuCards>
     <Events>
        <Event>
          <Ignitions>
            <Number>1</Number>
        <KeyCodes />
        </Ignitions>
       <Contents>
            <Start name="エリアイベント">
              <Contents>
              </Contents>
         </Start>
        </Contents>
       </Event>
      </Events>
     </System>
    

    次の確認事項についてですが、

    1. USBメモリ上 CW Py のアレンジパックスキンでは、-4_Camp.xmlを a.xml 等へリネームしてもしなくてもエラーが発生しました。
    2. USBメモリ上 CW Py の同梱スキン(Classic, BloodWirth, JUDGEMENT)において、シナリオに入った状態で-4_Camp.xmlをリネームし、キャンプを開くと”-4_Camp.xmlの読み込みに失敗しました”と表示され、下記エラーを確認しました。またシナリオに入っていない時に名前を変えて、シナリオ内でキャンプを起動してもエラーは発生しませんでした。
    3. 2 において-4_Camp.xmlをフォルダ内から削除した場合も下記エラーを確認しました。
    4. SSD上でエラーを生じなかったアレンジパックスキンで試したところ、 2 および 3 と同様の挙動を示しました。
    5. 2~4 の場合、リネーム後または削除後のフォルダに、元の-4_Camp.xmlを戻すと、エラーは生じませんでした。

    Version : 3.4 (64-bit) / 2019-07-01 19:58:11
    DateTime: 2019-08-03 22:52:13
    Traceback (most recent call last):
    File ".\cw\thread.py", line 787, in run
    File ".\cw\thread.py", line 808, in _run
    File ".\cw\thread.py", line 817, in main_loop
    File ".\cw\eventhandler.py", line 108, in run
    File ".\cw\eventhandler.py", line 406, in rclick_event
    File ".\cw\eventhandler.py", line 445, in background_event
    File ".\cw\thread.py", line 3518, in change_specialarea
    File ".\cw\thread.py", line 3332, in change_area
    cw.event.EffectBreakError

    Version : 4.0 Alpha 1 (64-bit) / 2019-07-01 20:26:09
    DateTime: 2019-08-03 23:07:10
    Traceback (most recent call last):
    File ".\cw\thread.py", line 827, in run
    File ".\cw\thread.py", line 879, in _run
    File ".\cw\thread.py", line 894, in main_loop
    File ".\cw\eventhandler.py", line 112, in run
    File ".\cw\eventhandler.py", line 414, in rclick_event
    File ".\cw\eventhandler.py", line 453, in background_event
    File ".\cw\thread.py", line 3703, in change_specialarea
    File ".\cw\thread.py", line 3512, in change_area
    cw.event.EffectBreakError

    Version : 4.0 Alpha 2 (64-bit) / 2019-08-01 21:49:04
    DateTime: 2019-08-03 23:31:53
    Traceback (most recent call last):
    File ".\cw\thread.py", line 827, in run
    File ".\cw\thread.py", line 879, in _run
    File ".\cw\thread.py", line 894, in main_loop
    File ".\cw\eventhandler.py", line 112, in run
    File ".\cw\eventhandler.py", line 414, in rclick_event
    File ".\cw\eventhandler.py", line 453, in background_event
    File ".\cw\thread.py", line 3717, in change_specialarea
    File ".\cw\thread.py", line 3526, in change_area
    cw.event.EffectBreakError

    使用したUSBメモリは、USB2.0 4GB と USB3.0 64GBの二つで、いずれも同様のエラーが発生しております。

    まとまっていない上、長文で失礼いたしました。

  5. k4nagatsuki repo owner

    pull request #2591

    D:\CardWirthPy\Data\Skin\CardWirth_AP\Resource\Xml\Scenario-4_CAMP.XML

    これを見て分かりました。ファイル名がWindowsによって大文字に変換されており、それが拡張子が小文字でないとキャンプ等のエリアのファイルを発見できないという既存のバグを顕在化させていました。

    特定のUSBメモリ上でだけ発生するのは、たぶんファイルシステム等諸々の条件が揃わないとファイル名の大文字化が発生しないからでしょう。

    修正できたはずなので、最新のテスト版をお試しください。

    ダウンロードのページからcardwirthpy_<年><月><日>_x86.zip(32-bit)またはcardwirthpy_<年><月><日>_x64.zip(64-bit)をダウンロードして内容を4α2に上書きする事で、テスト版を使用する事ができます。

  6. R

    お忙しいところ、ご対応ありがとうございました。

    確かに、USBメモリ上

    CardWirthPy 4.0 Alpha 2 (64-bit) Build: 2019-08-04 00:02:06 および

    CardWirthPy 4.0 Alpha 2 (32-bit) Build: 2019-08-04 00:02:53 の

    CardWirth アレンジパック(Ver.1.10 およびVer.1.04)適用 MedievalFantasyスキン

    シナリオ内にてキャンプを開くことができました!

    アレンジパックの-4_Camp.xmlは、

    SSD上とUSBメモリ上のものと比べてですが、下記のように違いがありました。

    Desktop\CardWirthPy4a2 x64\Data\Skin\CardWirth_AP\Resource\Xml\Scenario-4_Camp.xml

    D:\CardWirthPy2.3 x64\Data\Skin\CardWirth_AP\Resource\Xml\Scenario-4_Camp.xml

    D:\CardWirthPy3.4 x64\Data\Skin\CardWirth_AP\Resource\Xml\Scenario-4_CAMP.XML

    D:\CardWirthPy4a2 x64\Data\Skin\CardWirth_AP\Resource\Xml\Scenario-4_CAMP.XML

    長時間にわたり、丁寧にご対応くださりありがとうございました。

    これからも、CW Pyの開発を応援しております。

  7. k4nagatsuki repo owner

    この手のバグは見つけづらいので助かりました。こちらこそありがとうございます。

  8. Log in to comment