雑多な報告・連絡用Issue

Issue #189 closed
k4nagatsuki repo owner created an issue

簡単な報告だけするために新規にIssueを立てるのは躊躇する事があるという意見をいただいたので、返信を書くだけで済むように雑多連絡用としてこのIssueを立てておきます。

軽い連絡や報告など、自由に書き込んでください(ただし返信にはBitbucketのアカウントが必要)。

スレッドが長くなりすぎた場合はクローズして次の汎用Issueを立てます。

Comments (34)

  1. k4nagatsuki reporter

    ご報告いただきありがとうございました。

    長年テストプレイしてきたおかげで既存のイベントコンテントが誤動作することはほとんど無くなったのですが、新しいイベントコンテントはまだ使用しているシナリオが少ないせいか、いまだに実装バグが見つかります。一度色んなパターンでテストしていかないといけませんね……。

  2. hand.onlooker

    自作でテストプレイしたところ、

    ・jptxの描画に不具合を発見しました。<br>での改行が反映されていないようです。 ・不具合ではないのですが、戦闘中の防御修正系カードの表示時間が長いのが気になります。 ・変数関連の処理やイベントジャンプがかなり早くなった……?

  3. k4nagatsuki reporter

    いつもありがとうございます。

    <br>での改行が反映されていないようです。

    手許で試してみても反映されるように見えたのですが、これは実際にはbackheight=-1の時に最後の行が高さの計算に反映されていないというバグではないでしょうか(MONSTERS!で確認。これはとても爽快なシナリオで楽しかった!)。

    とりあえず高さ計算のバグを修正します。もし実際に<br>が無視される場合があるのであれば、お手数をおかけして申し訳ないのですが、実際のJPTXファイルを見せていただけないでしょうか。

    不具合ではないのですが、戦闘中の防御修正系カードの表示時間が長いのが気になります。

    これはカード速度の設定がどうなっていようと表示時間が12フレームに固定されているのがよくないですね。設定に応じて長さを加減するようにします。

    変数関連の処理やイベントジャンプがかなり早くなった……?

    β5で無駄な処理を減らしました。効果を感じていただけると嬉しいです。

    大きな*.widの読み込みが依然遅いので、これもできるだけ何とかしたいです。

  4. k4nagatsuki reporter
    • pull request #678 -> backheight計算のバグ修正
    • pull request #679 -> 手前に表示されるカードへのカード描画速度設定の反映
    • 上の修正をマージしたテスト版

    ご確認ください。

  5. hand.onlooker

    こちらが不具合を確認したjptxファイルは『MONSTERS!』 のものです。なので、ご指摘の通り、高さ計算のバグというのが正しいですね。

  6. hand.onlooker

    確認しました。 アニメーションなし最速での戦闘のテンポの再現度が上がったと思います。

  7. k4nagatsuki reporter

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

    そういえば最高速設定でのテストプレイは私は全然していなかったです。とりあえず今日からその設定にしてみて、気づいたところはおいおい直していこうと思います。

  8. hand.onlooker

    少しお伺いしますが、現段階でのCardWirthエンジンの 未検証・未知の仕様ってどのようなものがありますか?

  9. k4nagatsuki reporter

    すぐ思いつくのは次のようなものです。

    1.については#188から進展はありません。2.は現開発者のTachiGigasさんが調査と実装を行いましたが、わずかに確率が合わないとのことです。

    1. 行動順の決定ルール
    2. 麻痺・中毒の値が減少するルール
    3. 逃走の成否判定ルール
    4. 高レベルスキルカードを使用した時の失敗率
    5. 1.15以前のエンジンと1.20の間にどのような挙動の齟齬があるか
  10. hand.onlooker

    おお、未詳な仕様が意外とたくさんあるともいえるし、メジャーな機能についてはかなり再現できたともいえますね。私が認識していたのは1.のみでした。

  11. k4nagatsuki reporter

    CW自体でもバージョン間の差異があるので(特にカード選択のアルゴリズムは1.20と1.28で大差があったと記憶しています)、ユーティリティシナリオでシビアな使われ方をするような計算式以外は「そこそこの再現率」でもよいのではないかとも考えています。

    ただ、可能な限り合わせるに越したことはないですね。

  12. tachi gigas

    HAND様、初めまして。HAND様のmidi素材はよく使用させていただいており、感謝いたしております。

    k4nagatsukiさんのコメントの2.に関してですが、調査したところlynaさんの以下の発言に行き着き、 ( http://twilog.org/lynatan/date-121129 ) その通りに pull request #571 にて実装を致しましたが少し確率が違うようなのです。 レベルと生命力と好戦性の和が1のキャストに中毒1を与えて時間経過させた時に自然回復するかを300回試行したところ、 CW1.50では159回(53%)、現行のPy(20150103c)では133回(約44%)となり、10%ほどの差異があります。

    尚、調査の結果この判定にはクリティカルとファンブルもありまして、 それぞれ1/36の確率で必ず回復する場合と必ず回復しない場合があります。 この件は組み込みました。

    k4nagatsukiさんの言う、そこそこの再現率という考えなら小さな問題ですが、 話の種に挙げられてしまったため、検証結果を記載しました。

    HAND様のこの一年がお健やかな年でありますように。

  13. hand.onlooker

    tachi_gigas様

    一般的な能力判定だと、(生命+好戦+1)/2+レベル+2d6ですが、検証したケースが レベル=1、生命+好戦=0、 レベル=2、生命+好戦=-3 で違うということはないでしょうか?

    改めてこちらこそよろしくお願いします。

  14. tachi gigas

    HAND様

    返信ありがとうございます。まさにご指摘通りで恐縮の至りです。さらに検証中に気付いたのですが、「能力判定のダイス>中毒のダイス」という判定ではなく「能力判定のダイス≧中毒のダイス」という事に気付きました。そうでなければCW1.50での検証結果と机上の計算結果が一致しません。最初からそれをやっていれば…。

    重ね重ねありがとうございました。今後もよろしくお願いします。

  15. k4nagatsuki reporter

    pull request #698をマージ。ありがとうございました。

    能力判定の(身体+精神)/2の式は他でもよく出てくるのですが、最初の実装の時に気がつけなくて申し訳ないです。

  16. 守屋 花

    Bitbucketを使用するのは初めてなのと、プログラムに詳しくないのとで、 かなりトンチンカンな投稿になっているかもしれません。ご容赦下さい。 動作確認の一助になればと思い、現在、CardWirthPy ver0.12.1でメインプレイをさせて頂いています。 そこで、(仕様かもしれませんが)これまでに気になった点を幾つかご報告します。

    ・敵がカードを使った際の対象の選択がAskエンジンと異なる?  従来は効果モーションの最上位のアクションから順に対象を絞っていたはずですが、  AIが賢くなっている為かPyでは異なる挙動を示しました。一部の召喚獣で不具合が生じる…かも。

    ・魔法無効化状態の時、魔法的物理属性の対象として自動選択されない?  再現性の検証が十分ではないのですが、魔法的物理属性の召喚獣が無効化が切れるまで発動しませんでした。また、隠者の杖を使用したにも関わらず、手札が交換されませんでした。

    ・Pyエンジンをシナリオ側で検出する手段はあるのか?  本日、ゆうさんがVerをチェックするユーティリティシナリオを公開されましたが、  Pyのチェック法が解明されていない様です。もし方法が用意されているならば、ご教授下さい。

  17. k4nagatsuki reporter

    こんにちは。ご報告ありがとうございます。メインプレイに使っていただけているとのことでとても嬉しいです。

    ご回答させていただきます。

    ・敵がカードを使った際の対象の選択がAskエンジンと異なる?  従来は効果モーションの最上位のアクションから順に対象を絞っていたはずですが、  AIが賢くなっている為かPyでは異なる挙動を示しました。一部の召喚獣で不具合が生じる…かも。

    最上位の効果から対象を選ぶというのは知りませんでした。やはりちょくちょく分かっていない部分が出てきますね。CWPyでは、現状、すべての効果によって対象の絞込を行っています。確かに召喚獣の挙動が異なってくるかもしれません。

    ただ、私自身もCWPyで数百件のシナリオをプレイしてきたと思うのですが、その要因でシナリオの挙動やバランスが崩れていると感じたことはなかったように記憶しています。合わせる事はできますし、その方が安全ですが、CWの手札選択にもしばしばバグのような挙動が見られたりもするので、どうしたものか……。

    現在のCWPyにはシナリオが対象としているエンジンによって挙動を変える互換モードの機能がありますが、手札自動選択ルーチンもそれに対応して、不具合の出るシナリオだけ対応するという手もあるかもしれません。それも含めて検討させてください。

    ・魔法無効化状態の時、魔法的物理属性の対象として自動選択されない?  再現性の検証が十分ではないのですが、魔法的物理属性の召喚獣が無効化が切れるまで発動しませんでした。また、隠者の杖を使用したにも関わらず、手札が交換されませんでした。

    これは明らかにバグですね。これから調査します。

    ・Pyエンジンをシナリオ側で検出する手段はあるのか?  本日、ゆうさんがVerをチェックするユーティリティシナリオを公開されましたが、  Pyのチェック法が解明されていない様です。もし方法が用意されているならば、ご教授下さい。

    方法は用意していないです、というのは、CardWirthとCardWirthPyで露骨に挙動が異なるところがあれば、それはCWPyの方を修正しなければならないのであって、シナリオの側で対応するとより状況がこんがらがってしまうからです。

    ただ、上に書いた手札選択のような事もありますし、シナリオの作者がCWPyのリリース版でテストプレイした時に挙動の違いを発見し、しかしCWPy側に報告はしない(という気持ちはすごくよく分かる)というような場合も考えると、たしかに識別できてしかるべきかもしれません。検討します。


    検討するといった事柄が2点ありますが、実はCWPyは現在新しいリリース版を出す直前になっていまして、追加や変更を極力凍結してのバグフィックス期間に入っています。対応は、おそらくver.0.12.2をリリースした後になると思います。こちらの都合でまことに申し訳ありませんが、今しばらくお待ちいただけないでしょうか。

  18. k4nagatsuki reporter

    ゆう氏のバージョン判定シナリオですが、1.50に合わせた挙動をするCWPyがCWNextとして判定されてしまうことには問題があるので、とりあえず1.50と判定されるように手を入れました(Issue #198テスト版)。

  19. 守屋 花

    更新作業お疲れ様です。 また、丁寧な御対応、ありがとうございます。

    ・魔法無効化 こちらでも正常動作を確認しました。対応、ありがとうございます。

    ・手札選択の問題&Verチェック これは、自分が使用していた技能がこれを利用したギミックスキルだったので、偶然発見したものです。 確かにバランスが大きく変化するものではないので、その観点からはスルーでも良いと思います。 中毒者を優先的に回復とか、不死者を優先的に攻撃する召喚獣が多少アホの子になりますけれど、 それもまた良し!(笑;アホの子ほどかわいい)

    欲を言えば、1.50とPyを判定する方法も用意されていれば、使用時イベント側で制御できるので、 上記の様な細かい仕様を使ったカードをPyでも使い続ける事ができるかなーとは思います。 先日のゆうさんのシナリオが発表されるまでNextを判定できない事に悩んでいた作者としては、 些細な事でも仕様(特に戦闘バランス)が異なるなら、個別調製できる余地が欲しいです。 まあ、色々と無茶を申し上げているのは承知なので、一意見として聞き流して下さい。

  20. k4nagatsuki reporter

    ご確認ありがとうございます。

    確かにバランスが大きく変化するものではないので、その観点からはスルーでも良いと思います。 中毒者を優先的に回復とか、不死者を優先的に攻撃する召喚獣が多少アホの子になりますけれど、 それもまた良し!(笑;アホの子ほどかわいい)

    ああ、いえ、すいません、そこまで考えてカードを作っている方がいらっしゃるのであれば話は別です。私の認識が甘かったです。対応した方がいいですね。実は今日くらいに0.12.2をリリースするつもりだったのですが、少し伸ばして対応しましょう。

    バージョン識別子については、@クーポンの名前を決めなくてはならないので(これは後々変えられないので)やはり検討時間が欲しいです、これは0.12.2より後の対応とさせてください。

    言う事がころころ変わってすみません。

  21. k4nagatsuki reporter

    また前言を翻す形で本当に申し訳ないです。Issue #198に色々と考えた過程を書いたのですが、結局バージョン識別の問題に対応することにしました。

    最新のテスト版(とおそらく今夜リリースの0.12.2)では、「@CardWirthPy Version.0.12.2」と「@CardWirthPy Version.0.12.2 Only」の称号によって、CWPyを使用しているかどうかと、使用している場合のバージョン識別が行えます。

  22. Y Sakaguchi

    初めまして。質問や追加機能への希望もこちらのスレッドでよろしかったでしょうか?

    1.50で追加されたPC自動作成機能がPyにもあれば嬉しいです。 設定や能力傾向をじっくり考えながらPCたちを作るのも楽しいものですが、ランダムに決定されたPCでスキルの向き不向きに一喜一憂したり、偶然並んだ性格特徴からPCの設定を捻りだしたりする遊び方も面白いものだと1.50で実感しましたので。

    Pyはバリアントや過去バージョンとの互換性が素晴らしいです。 スキンを切り替えるだけで、1.50では動かないような古いシナリオも今の快適な操作性で遊べるのはとても有難いです。 これにカードワース初心者でも手軽に新しいパーティを作ってすぐ遊べる機能が付けば、もっと人にお勧めしやすく楽しいゲームになると思うのです。

    それと、話は変わりますが。 過去のシナリオを1.20~1.30互換で動作させるためのデータベースが未完成との話でしたが、報告しようにもDBの内容が分からず(私の環境ではそれらしきファイルを開いても文字化けするようです) また今では入手不可(または困難)な物が手元に多く、どうしたものやら……と言った感じです。 DBが更新されたら、含まれているシナリオリストがどこかに明記されると協力しやすくなると思います(もし既に存在して、私が見落としてるだけならすみません)

    さしあたって手持ちの中ではメビウスリング氏の<FATE>シリーズがDBに入っていないようでした(私自身は、ここの記事で見たmode.iniを導入して普通に遊べましたが)

    プログラム素人のため大した協力もできず申し訳ないのですが、ひそかに応援しております。 それでは。

  23. k4nagatsuki reporter

    はじめまして。遊んでいただいてありがとうございます。感想や要望を寄せていただき、とても嬉しいです。

    さて、PCのランダム生成について。これはしばらく前にどうするか悩んだ覚えがあります。結局載せていないのですが、今回要望をいただいたので、ついに手を付けるべき時が来たということでしょう。検討用のIssueを作成しました。

    最近プレイしていてよく思うのは、CWのキャラクターはシナリオが育てるという事です。シナリオを遊んでいくうちに6人の性格が色付けされてきて、当初の設定から離れてパーティ内の関係性が様々に成り立っていく。面白いですね。ランダム生成にはそうした面を強調する効果が確かにあるはずです。

    次に互換性DBについて。

    DBが更新されたら、含まれているシナリオリストがどこかに明記されると協力しやすくなると思います(もし既に存在して、私が見落としてるだけならすみません)

    そのリストはWebページとしては用意していません。それに限らず、私はバグチケットなどでもなるべく具体的なシナリオ名を出さないようにしているのですが、これは過去にCW界隈を色々とお騒がせした経緯がありまして、具体的なシナリオの名前を挙げると作者の方に迷惑をかけてしまわないか?などと気を回しているためです。余計な事かもしれません。

    互換性DBの具体的な内容はData/Compatibility.xmlの中にあります。これは一部のテキストエディタでは文字化けするかもしれませんが、Webブラウザでなら開く事ができると思います(実はWeb上で見る事もできます)。

    FATEシリーズは、残念ながら今手許にはありませんね。協力者がいれば互換性DBに入れるための情報を得られるので、知り合いを当たってみます。

    というか、具体的にどうすれば互換性DB用の情報を得られるか・提供できるかの記事が必要ですね。今から作成します。

    プログラム素人のため大した協力もできず申し訳ないのですが、ひそかに応援しております。 それでは。

    ご意見ご要望や情報をいただけるのは本当にありがたいです。ありがとうございます。

    ご期待に添えるよう頑張ります。

  24. Y Sakaguchi

    おはようございます。 こちらの要望を真摯に受け止めてくださり、嬉しいです。

    上の記事を参照して<FATE>で手順通りに試したつもりなのですが、何かエラーっぽい表示が出て駄目でした(詳細をコピペしようにも基本的な操作が分からず;) 結局自分には「その時、遊びたいシナリオ」の対応エンジンverを確認して、念のためにその都度mode.iniを入れた方が遥かに簡単なようです。 少しでも協力したかったのですが、お役に立てず申し訳ない…。

  25. k4nagatsuki reporter

    いえ、こちらこそ申し訳ないです。引っかかりそうなポイントを網羅できていればよかったのですが……。

    シナリオごとにmode.iniを入れるのも手間でしょうから、できるだけ互換性DBを充実させられるよう努力します。

  26. tachi gigas

    Ganma Shadow様、はじめまして。一介の駄作者でございます。

    互換性情報のページにあるPowershellの操作で表示された内容がエラーのようだけどコピペができないという件に関しまして、これが少し特殊な操作でして、以下の手順を踏まないといけません。

    1. 右クリック
    2. 「範囲指定」を選択
    3. マウスをドラッグしてコピペしたい場所を選択
    4. Enterキーを押す

    この手順で、クリップボードに選択した文字列が入ります。Windows 10ではこの操作が改善されるとか…本題には関係ないですね。もうすぐクローズするのにこんな書き込みで申し訳ないです。拙い書き込みですが、Ganma Shadow様の助けになれば幸いと存じ上げます。

  27. k4nagatsuki reporter

    補足ありがとうございます。歴史的事情なのか、コマンドプロンプトのコピー&ペーストの挙動はちょっと癖がありますよね……。

    <FATE>シリーズについては、ありがたい事に協力者を得て先ほど互換性DBに追加する事が出来ました。

    また、PCの自動登録を宿帳の拡張メニューにつけてみました。今のところ、プレイヤーが名前だけを最後に決める形です。よろしければ最新のテスト版をお試しください。

    コメント数が30件を過ぎたので一段落したらぼちぼち次のIssueを立てます。

  28. k4nagatsuki reporter

    part2としてIssue #210を立てました。以降のコメントはなるべくそちらへお願いします。

  29. Log in to comment