格納PNG問題について

Issue #339 resolved
暗黒 騎士 created an issue

前提:「格納PNG問題」とは、CWXEditorで貼り紙、メニューカード、効果系カード、情報カードに、
PNGやGIFなど、BMP以外の形式の画像を「格納」したシナリオがCW1.28-1.50などでエラーが発生してしまう問題です。

1.50付属WirthBuilderでは格納時に強制的にBMPにする仕様で、CWでは事実上BMP以外を格納することはできません。
Pyのみ正常に表示可能ですが、WSN形式においては格納仕様が構造上撤廃されているので格納できるメリットは薄いです。

以前にも何度か改善の提案が行われていますが、長月さん側の見解は「ファイルフォーマットを勝手に変換するべきではない」
「32bitBMPに完全には対応できないので、外部の変換ツールを使って欲しい」というようなことでした。
https://bitbucket.org/k4nagatsuki/cwxeditor/issues/254/png

影響:これによって「知らないうちにシナリオがPy専用になってしまった」ので「クラシック形式だけど、そのままPy専用として出す/出していた」「CWXEditorでPNGを指定したカードを含むシナリオをWBで読んだら、そのカードだけ読み込めていないのに気づかずそのまま上書きして消えてしまった」という事例を複数(自分が認識した範囲で4人程)確認しています。現在はエンジン指定をすれば警告が入りますし、攻略wikiにもしつこく書いていることですが、そういうユーザーはWBの代替エディタとして一先ず触ってみるという感じで、まず説明をみないし、対象エンジンの指定もしないのであまり効果がないようです。


これまで、この件については長月さんの信念上の判断なのだろうと思ってきたのですが、
「1.50用に作ろうとしたのに壊れたシナリオが作られてしまう」類似の問題として、
Py側で以下の提案をしたときに、XEditor側で1.28-1.50側の仕様に決め打ちして合わせるという対応を取られました。
https://bitbucket.org/k4nagatsuki/cardwirthpy-reboot/issues/820/classic-ogg-png-wav-bmp
つまり、クラシックシナリオのデフォルト素材はwav/bmpであると断定した対応です。

これによって疑問になったのですが、クラシック形式においての「画像格納」も、標準では「BMPでしか行えない(変換するのではなく一律で格納しない)」ようにした方がセーフティなのではないでしょうか?

Comments (3)

  1. k4nagatsuki repo owner

    そもそも必ず格納が発生する場面でPNGイメージが選択できる理由が薄いですね。どうしてこういう仕様になったのか経緯を思い出せないのですが、たぶんCWのPNG対応が行われる/行われたと聞いた際に起きた、格納イメージも含めて正しい対応が行われたものという私の勘違い辺りから発している気がします。

    警告を出してもなお間違いが発生することが分かっている以上、そろそろクラシックなシナリオを編集している時の貼紙/カードのイメージ設定ではPNGイメージが選択できないようにするべきかもしれません。

    8系ではそういう対応をしたいと思います。

  2. k4nagatsuki repo owner

    pull request #23

    対応しました。以下のようなルールになります。

    • イメージ格納が必ず発生する場面では、PNGイメージの選択はできません。
    • メニューカードでは、PNGイメージの選択は可能ですが、格納操作は行えません。

  3. Log in to comment