JPY1 ファイルの表示がおかしい

Issue #128 resolved
takuto_cw created an issue

更新お疲れ様です。cardwirthpy_20140322b でバグを確認したものの、修正まで手が回りません…。お時間のある方、修正をお願いしてもよろしいでしょうか?

テストしたシナリオは、藤野亭の、「依頼預かり所」(アップローダー)にある Mo3さん作「JPYアニメアイディア集」です。

Step1 > サンプル描画 > 1:背景画像を描画

632×420サイズで一瞬白くなるはずですが、何も表示されません。 透過色を無効化してくれるはずの transparent の設定が効いていない?(init で省略すると「一時描画時に透過色無効」のはず)

Step3 > サンプル描画 > 1-浮き上がる文字

背景が黒くなるはずがそうなりません。 また、文字が跡を残しながら出てきてしまいます。

Step3 > サンプル描画 > 2-一文字ずつ表示その2

効果音だけで何も表示されません。

Step3 > サンプル描画 > 2-技名コール

掌流破の「破」がずれて表示されます。

以上です。ご確認お願いいたします。

Comments (13)

  1. k4nagatsuki repo owner

    ありがとうございます。ちょっと今すぐは時間が取れないんですが、なるべく早く確認させていただきます。

  2. k4nagatsuki repo owner

    Step1 > サンプル描画 > 1:背景画像を描画

    ここから個別に着手します。取れる時間が不安定なので、最初の1件の調査から修正までしばらくお待ちください。

  3. k4nagatsuki repo owner

    pull request #194

    takuto_cwさんの推測通りのようです。ありがとうございます。

    次の

    Step3 > サンプル描画 > 1-浮き上がる文字

    に着手します。なお、背景が黒くならない問題は1件目と同根のようです。

  4. k4nagatsuki repo owner

    pull request #195

    Jpy1でJptxを表示する時は背景が透明になるのですが、transparentの定義がある場合はそれに従うはずです。そうなっていませんでした。

    Step3 > サンプル描画 > 2-一文字ずつ表示その2

    この問題は1件目と同根のようです。

    Step3 > サンプル描画 > 2-技名コール

    これに着手します。

  5. k4nagatsuki repo owner

    pull request #197

    これですべてですね。

    実はこの直前にマージした変更によってimageretouchが正しく機能しなくなっていたのですが、それも先程修正しました。

  6. takuto_cw reporter

    返事が遅くなりました。いつも更新お疲れ様です。cardwirthpy_20140403b + WinXP で動作テストしたところ、ほとんど直っています。修正作業、ありがとうございました。

    「Step3 > サンプル描画 > 2-一文字ずつ表示その2」この1件だけ、まだ動作が違いました。本家 1.28 / 1.30 / 1.50 では文字が出たのですが、Py では黒い四角になってしまいます。

    どうも本家エンジンでは、 jpy1 ファイルの filter=7 指定が、何か不思議な動作をしているようなのです。「縁が黒くて中が白い画像に filter=7 をかける」と、本家では白黒が反転してしまいました(バグ? だとしたら再現どうしましょう…)。そのせいで文字が出ているのかもしれません。

    テスト用シナリオアップしました。時間があるときにでも、ちょっと見ていただけいてよろしでしょうか?

  7. k4nagatsuki repo owner

    うーん、左上座標が黒だと色が反転するような挙動なのか? と思って試すも別のパターンで一致せず、あれこれ試してみたのですが、結局filter=7の挙動は

    • 左上の色が白に、それ以外が黒になる

    というもののような感じがします。例えば左上(座標 0,0)の色が赤なら、画像の中の赤の部分が白く、それ以外が黒くなります。Jpy1に驚かされるのはこれが初めてではないのですが、やっぱり心臓にはよくない……。

    とりあえずこれからそのやり方に対応します。重ねてご確認いただけると助かります。

  8. k4nagatsuki repo owner

    pull request #216

    上記をマージします。さらに誤りがあった場合はご指摘ください。

    言い忘れていましたが、確認と指摘の上テストシナリオまで作っていただきありがとうございました。いつも本当に助かっています。

  9. takuto_cw reporter

    こちらこそ、ここのところずっと作業をお任せで、お世話になりっぱなしです。cardwirthpy_20140404 で、表示が本家と同じになったのを確認いたしました。ありがとうございます。お疲れ様でした。

    ……実は今の今まで、重要なことを忘れていました。

    「1.28エンジンに、エフェクトブースターのソースコードが付属していた」((エンジンのあるフォルダ) > source > dllソース)

    文字列「filter」で検索したら、「Mask」「Pixels[0,0]」なんて、いかにもな記述が。pascal 知らない自分でもなんとなく推測がつく……白黒反転なんて紛らわしいことを書く前に、こっちを見ておくんでした。

  10. k4nagatsuki repo owner

    ソースコードの添付は知っていたのですが、ライセンスが完全なフリーではないのでそれを書き写すことは好ましくないのです(仕様やインタフェースは著作権の対象外ですが、コード本体はだいたい対象内です)。そういうことを考えると、できるだけ実際の挙動から調査する方向で行きたいです。

    確認いただきありがとうございました。

  11. takuto_cw reporter

    ああ、なるほど。自分は、コードはコピーせず、処理内容(結局何をやっているのか)だけを真似させてもらえば、なんて単純に思っていたのですが……よく考えたらそれは無謀でした。

    処理内容を知るためにコードを見る。すると、処理内容を実現させるための回答例が、ひとつ頭に入ってしまう。その回答例に引きずられずにコードを書くのは……少なくとも自分には無理です。

    お手本はもう見ないで、これまで通り調査していきます。幸い試行錯誤はあまり苦にならない性質なので、暇をみつけてぼちぼちと。

  12. Log in to comment