カード速度の調節幅の拡大について

Issue #236 resolved
権兵衛 七篠 created an issue

七篠権兵衛です。今回のCWHSチャットではPyのカード表示の速度に関する指摘が上がっています。
戦闘中の札の表示速度を従来エンジンの標準設定(中央)相当にすると、右から1-2番目あたりになってしまいます。
このため、カード表示の速度調節幅を拡大し、これまでどおりの中央設定で
同等の表示パフォーマンスを担保することを提案するものです。
また、これに関連してNEXT1.60同様に戦闘中のカード速度の設定を分離する提案も頂いております。
よろしくお願いします。

Comments (23)

  1. k4nagatsuki repo owner

    ご指摘ありがとうございます。すでにCWPyを使用している人に再調節の手間を与えないためには、現在の設定がそのまま維持される形で変える必要がありますね。どういう形で対応するのがいいか考えてみます。

    また、これに関連してNEXT1.60同様に戦闘中のカード速度の設定を分離する提案も頂いております。

    戦闘行動の速度が設定できるということでしょうか。これは新規に設定を設けて、普段は「カード速度設定と同じ」などにチェックを入れるようにしておき、チェックを外して個別にも設定できるようにすればよさそうです。

    いずれにしても、申し訳ないのですが少し時間をください。今はβ期間なので、切実にそれを必要としている人がいる機能は0.12.3で対応しますが、そうでもない場合は0.12.4以降で対応することになると思います。

  2. k4nagatsuki repo owner

    ところで中央をずらすとなると既存の設定との兼ね合いで面倒なことになるのですが、あえて中央を合わせず(ただCWのカード速度も固定されたものではないようなので環境によるのですが)設定を細かくするという方向での対応なら問題は起きません。

    中央を合わせることに大きなメリットがあるならば対応したいと思うのですが、どういった事が考えられるでしょう。申し訳ないのですが、私は考えつきませんでした……。

  3. k4nagatsuki repo owner

    速度についての情報の整理。今のカード回転アニメは次のフレーム数(FPS=60)で動作するようになっています。

    フレーム数 = (速度設定値+1) * 1.2 ※小数点以下切り捨て
    

    ここから個別の値を出すと

    • 設定0 = 1f(フレーム)で回転
    • 設定1 = 2f
    • 設定2 = 3f
    • 設定3 = 4f
    • 設定4 = 6f
    • 設定5 = 7f
    • 設定6 = 8f
    • 設定7 = 9f
    • 設定8 = 10f
    • 設定9 = 12f

    となります。中央の値を合わせて全体をずらす場合、元の設定に応じて新設定に該当する値をセットすればよさそうに思えます。

    また、可能な値は整数のフレーム単位なので、あまり細かくしても意味がないようです。最速と最遅を変更せずに数値を細かくしても、同じ動作をする設定値が増殖するだけの結果となるはずです。

  4. 暗黒 騎士

    CWHSチャットのログを拝見させていただいたところ、紅月氏がこの件でおこな様子だったので(覗き見したようですいません)、自分も少し調査してみました。1.50とPyを同時起動してリューンでのカード表示を試してみましたが、自分の環境では現在の中央設定でCWとほぼ同じ速度で描写されています。

    ただ、キーレで蛮族退治をしたところ1.50は戦闘のみ不自然な溜めがある感じがします。 おそらくはこの件はこのウェイトを実装してくれということではないでしょうか? 戦闘以外を含めた描写速度が違うということなら環境差だと思います。

    あと気になったのですが、テスト版では起動時にカーソルが画面左上に移動されるようになりました?

  5. k4nagatsuki repo owner

    検証ありがとうございます。

    そういえばCWでは戦闘時に引っかかるような感じを受けていたような気がします。カード速度を早めるとそういうことはなくなるのですが。合わせられないか少し検証してみます。

    あと気になったのですが、テスト版では起動時にカーソルが画面左上に移動されるようになりました?

    これは起動時にカーソルを独自のものに設定するようにしたためですね。動かす必要はないので動かさないようにしておきます。

  6. 権兵衛 七篠 reporter

    ういっす、CWHS管理人です、七篠権兵衛です。

    2015/08/02のチャットからの引用ですが、 当日の秋月せな さんの指摘、
    「拡張要素や追加要素ではない、基本部分は問題なければ極力既存のエンジンにあわせるべきだと思います。」
    「わたしは効率プレイとは逆のプレイをCWに求めてるんで、効率重視の設定が苦痛に感じることが多々あります。」
    「とりあえずデフォ速度に関しては、今一番お願いしたいところですねぇ」
    は、設定がない場合のデフォルトである「真ん中」の設定速度を
    極力これまでのCWに互換させようという趣旨であると個人的には解釈しております。

    ここ(Bitbucket)での討議を踏まえたうえでの自分自身の解釈としては、(これまたチャット引用で恐縮ですが)
    「標準だと早めになっちゃうから、補正かけよう、ということですね。 」
    「でも、CWpyのバージョン変わったときにこれまでのPyユーザーさんが「逆に速度遅くなった何これ!」ってびっくりしちゃわないか、みたいなあたりを懸念しているように見えました。」
    というあたりです。

    速度設定という微妙な(人によっては些細ともとれるだろう)問題ですが、
    微妙でも互換性に問題があるのだからこの速度が正しいと了解してもらうか、
    あるいは、Pyユーザーさんのこれまで設定していた速度を使えるようにするべきなのか。

    個人的には、遅いほうの設定を増やして設定がない場合のデフォルトである「真ん中」を互換するあたりなのかな、とも思うところです。

  7. k4nagatsuki repo owner

    実をいうとCWのカード表示速度は固定されていません。暗黒騎士さんの指摘通り、環境によって変わります。中央設定で試験してみたところ、私の環境では、CWPyの方が若干(1~2フレーム?)遅いようです。

    これはCWの方が私の環境では若干速くなっていると言うべきかもしれません。CWPyは1秒間の画面更新回数がいくつかの例外を除いて決まっており、およそ秒間60回画面の更新が行われる事になっています(描画処理が間に合えば)。中央の設定だとそのうち7回、およそ11.7秒でカードが反転すると決まっています。挙動から推測するに、CWの方にはそのようなルールは無いはずで、環境によって変動するようです。ですので、「正確に真ん中を合わせる」という修正は事実上不可能ということになります。ただ、何か対応する方法はあるかもしれません。

    もちろん、戦闘行動におけるウェイトはこれとは別問題で、対応すべきインタフェースの互換性問題だと認識しております(今テストしていて遅まきながら認識しました)。たぶん近いうちに対処しますので、しばらくお待ちくだれば幸いです。

  8. 権兵衛 七篠 reporter

    CWPyの速度は固定になっていて、中央設定の場合7/60秒で反転するけど、
    他のエンジンでは速度が環境依存なのではないか、ということですか。

    自分も1.20と比較してみましたが、中央設定同士で、テーブル⇔メニューの切り替えにかかる時間は
    ごくわずかに1.20のほうが速いと感じます。 他のエンジンで速度が環境依存であるならば、これは誤差の範囲かもしれません。
    他方、バトルで比較しますと明らかにPyのほうがバトルの処理が速く進むので、ここは一考の余地があるとも思うしだいです。

  9. k4nagatsuki repo owner

    他方、バトルで比較しますと明らかにPyのほうがバトルの処理が速く進むので、ここは一考の余地があるとも思うしだいです。

    これは実際にはカード速度の問題ではなく、CWではカードの使用前に空白時間が入るためと思われます。CWPyではその空白時間が抜けていました。

    pull request #959で空白時間を入れるようにしましたので(オプション化・デフォルトで有効)、最新のテスト版では似た挙動になったのではないかと思います。よろしければお試しください。

  10. 暗黒 騎士

    >これは実際にはカード速度の問題ではなく、CWではカードの使用前に空白時間が入るためと思われます。

    おお、なるほど!

    自分の要望ではないですが、横から感想を言わせていただくとCWはウェイトがカード動作の中間のタイミング(初期効果効果音と二次効果効果音の間)に来ているのに対し、テスト版は先に来ているような感じがします。 それとPyは最速設定がめっちゃ早く感じます。 CWではカード速度最速一歩手前からそのウェイトがほぼ0に省略されていてフレーム数的な加速は緩やかな感じがするのですが、どうでしょう。 ただ、描写速度の早さというのは疾いほど正義ではあるので、デフォルトが似たような感じで動けば、無理にCW準拠にしなくてもオプションの有無と調節で各自対応すればいいのかな。

  11. k4nagatsuki repo owner

    処理の順序からすると、使用者の拡大→効果音の再生→ウェイトなので、実際には拡大より早く再生が始まっているということでしょうか。pull request #960で変えてみました。このテスト版だとどうでしょうか。

    最速と中央以外の設定も、少し調節が必要かもしれません。

  12. 暗黒 騎士

    良い感じです。自分の環境では大分似た挙動になってると思います。

    最遅設定で毎時発動する付帯能力で動かない敵を用意してテストしましたが、 付帯能力や召喚獣が拡大表示されてから引っ込められるのがPyの方が明らかに速い感じがします。(ウェイトが入ってない?)

  13. k4nagatsuki repo owner

    ウェイトは入っているのですが、CWの方がだいぶ長いようですね。たぶんPCが行動した時の4倍くらいのウェイトが入っています。

    pull request #961で、今回追加した行動前の空白時間設定を有効にした時は長めに待機時間を作るようにしました。今度のテスト版はどうでしょうか。

  14. 暗黒 騎士

    おっと、失礼しました。 ほんの少し僅かにまだ速いような気もしますが、これはもう環境差もあると思うので許容範囲だと思いますね。 CWでは最速だけがフレームレートを極端に速くしてあとはウェイトで調節しているような印象もあるような、ないような(ウェイトの合間が機敏すぎるというか)。うーん、どうしてもこういう系の検証はふわっとしてしまいます。

  15. k4nagatsuki repo owner

    この手のものは正確に測るのが難しいですね。ただ、完璧に合わせる必要もないので、人間の感覚的に合っていればいいのではないかとも考えています。

    CWにはフレームレートの仕組みがないのではないか、という推測も、私の使ってきたマシンと私の感覚によるものなので、もしかしたら実際には正確にタイミングが測れるものという可能性もありますが……。

    うーん、とりあえず一旦これで様子見させてください。ご意見がある方は仰っていただければできるだけ対応します。

  16. 暗黒 騎士

    了解です。環境差は自分も複数PCでCWを触ってきたのであると認識していましたね。

  17. k4nagatsuki repo owner
    • removed milestone

    進展が止まっていますが、とりあえず当初の問題であったと思われる戦闘行動時のウェイトは実装したので、目標マイルストーンを外します。

  18. k4nagatsuki repo owner

    当初の戦闘行動時のウェイトの問題はおそらく解決しているので、優先度を下げさせてください。

  19. Log in to comment