仕様バグ: JPDCで撮影したイメージをカード付属データとして宿へ持ち帰れない

Issue #409 resolved
k4nagatsuki repo owner created an issue

issue #408のコメントより引用。

エフェクトブースターの撮影と参照素材持ち帰り機能の組み合わせで「Pyでは撮影画像を使ったカードを作れるんじゃ?」と試しておられた方(マトリョーシカの件)がいましたが、Pyではフォルダに保存せず宿保存なので現状では無理なようでした。これは読み替えられるようにした方がよくないでしょうか?

これは私の見落としから発生したバグです。しかしCWPyがWsn.1のリファレンス実装なので、事実上の仕様として捉えるべきかもしれません。

直すのは(たぶん)簡単ですが、Wsn.1のシナリオに対してはどうしたものでしょう。個人的には次のようにするのがいいんじゃないかと思います。

  • Wsn.1以前のシナリオにおいては、現状のまま
  • 2以降のWSN形式とクラシックなシナリオでは撮影イメージを持ち帰れるようにする

Comments (11)

  1. 暗黒 騎士

    ありがとうございます。

    それでも問題ないかとは思いますが、

    個人的には、Wsn側ではなくPy側の機能なのでクラシック形式で実現できるという点と この変更による影響は画像表示が反映される/されないだけで、シナリオの進行に影響が出るわけではない(Wsn.1で「されない」挙動を利用するシナリオは恐らく生まれない)点から Wsn.1だけ(Wsn.0も?)特別に挙動を変えて互換性を確保するほどでもないか、という感触ですね。

  2. k4nagatsuki reporter

    そうですねぇ。クラシックでは実現できないWSN形式独自の仕様であるという事ならWsn.2以降で、というのが筋ですが、実際にはそうではないですからね。

    クラシックなシナリオでも持ち帰りを行える事が(これは例えば銃声などのインストールを要求するシナリオを念頭に置いての事ですが)そもそもの問題で、ここに設計思想上のねじれがあります。しかしすでにねじれているものは仕方ありません。直されると新しく作るシナリオで困る、という性質のものでもありませんし、もうバグと割り切って全面的に直してしまう方がいいのかもしれません。

  3. 暗黒 騎士

    まあ実装されれば使いたくなりますし、そのままWsn1シナリオが発表されていくとややこしくなるのは確かなので、Wsn.2の仕様が大体固まるような時期に直して、「Wsnでこの機能を使う場合はユーザーの利便性のためにWsn.2にすることを推奨します」的なことを書いておくとかでも…

  4. k4nagatsuki reporter

    そうするくらいなら「バグなので直します! もしこのような挙動を実現したいならこれこれこうです!」と書いた方がいい気がしますねぇ。

  5. k4nagatsuki reporter

    pull request #1558で修正しました。

    今後議論にならないとも限らないので、このissueは当面優先度を下げて残しておきます。

  6. 暗黒 騎士

    多分目的が持ち帰りなのでこちらに。

    どうもtempフォルダに保存はされているものの、一枚目にエフェブで撮影加工したキャッシュが参照され続ける?ということのようです。(1.50では緑→青→元に戻るというRGB反転をする検証シナリオです)

    またこちらのシナリオで一枚撮って、すぐに荷物袋を確認した場合は一枚ずつ別のPCの写真が撮れているのですが、 連続で撮った場合に最後に撮ったキャラの二枚になっていたりします。シナリオを終えると全て同じキャラの写真になるようです。どこまでを仕様として捉えたらよいでしょうか。

  7. 暗黒 騎士

    前者は自分の方で.xN関連を除外してビルドしていたバージョンでは再現しなかったので、59f2b21あたりで入ったバグかもしれません。

  8. k4nagatsuki reporter

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

    前者は、仰る通り高解像度対応の時に入れてしまったバグです。JPDCの撮影時に背景イメージのキャッシュから当該ファイルを取り除くのですが、xN絡みの情報をキャッシュのキーに追加した時に見逃していたせいで正常に機能しなくなっていました。

    後者の挙動ですが、以下のようになるのが正しい仕様といえるかと思います。

    1. イメージファイルが上書きされた時点で全てのカードの画像が更新される。これは全てのカードが同じファイルを参照しているためです。
    2. 撮影イメージを参照したカードを宿に持ち帰った場合は、その時点での撮影データが固定される。これはシナリオからのカードとイメージのコピーが発生するためです。

    今回の問題は1.が正しく機能していなかった事が原因で、参照しているファイルの更新確認処理がメニューカード以外で機能しておらず、最初にカードを表示した時のイメージがキャッシュされたまま固定されていました。というより、クラシックなシナリオでは更新の必要がなかったので(全部格納だから)更新確認処理を作っている時に頭から抜けていたんだと思います。

    どちらもpull request #1681で修正しました。

    シナリオのプレイ中に個別のPCの撮影データを用意したい場合は、PCごとに保存先を分けるなどの工夫が必要になるかと思います。

  9. 暗黒 騎士

    対応ありがとうございます。 どちらも正常に動いているのを確認しました。

  10. Log in to comment