PathLink: 砂塵の彼方 > 徒然日記 > 作ってるモノ

エントリー

カテゴリー「作ってるモノ」の検索結果は以下のとおりです。

[CardWirth] CW用「エンジン識別サンプル」 1.05 不具合修正

CardWirthPy v.0.12.2(Reboot) 正式版の識別に対応しました。

これまでPyの識別に使っていたCW1.50との仕様の違いが0.12.2正式版で無くなったため、当サンプルの過去バージョンでは正確な識別ができなくなっています。お手数ですが、本日公開の最新版(v.1.05)を新たにダウンロードして頂きますようお願い申し上げます。

Py0.12.2正式版でCW1.50に合わせられた点については、1つ前の準備メモに書いています。
興味がある方は、そちらも併せてご覧ください。


[現時点で識別可能なエンジン]
正規版
・CW1.20/1.28/1.29/1.30/1.50
私家版
・CardWirthNext1.60
・CardWirthPy(Reboot)0.12.1/0.12.2


エンジン識別サンプル→ver.1.05
・CardWirthPy0.12.2正式版の識別に対応
DLはこちら

※※※
その他、修正過程で新たに分かった事などを、メモ箱の関連記事に反映させました。
私家版エンジンの識別方法 / CW1.50の対象消去バグについて

拍手送信フォーム

[CardWirth] CW用「エンジン識別サンプル」更新のためのメモ

CardWirthPy バージョン0.12.2の正式版が公開されていたので、拙作「エンジン識別サンプル」が正しく動くかどうか確認しました。サンプルは各エンジン各バージョンの正式版が識別できる事を目指していますので、これで問題なければそのまま公開を続けられます。

しかし、識別の結果は「CW1.50」でした。
同行NPCの称号が、クーポン分岐で検出できなくなったようです。これは困った──

と思ったら、ChangeLog.txtに「称号判定分岐でCardWirthPyのバージョンを判別できるようにした」の一文が。課題一覧にそんな話が出ていましたが、正式版で実装されていました。CW1.29の「@MP3」と同じく、エンジンバージョンを示す@称号を実際の所持状況と関係なく検出できるとのことです。

ということは:

  • Py0.12.1は、これまで通りクーポン分岐による同行NPCの称号検出で見分ける。
  • Py0.12.2以降は、称号「@CardWirthPy Version.0.12.2」が検出できるかどうかで見分ける。仮想クーポンが実装されたバージョンを指定しておけば、その後全てのPyをPyと識別可能。
    バージョンについては、各バージョン毎に設定される「@CardWirthPy Version~ Only」で見分ける。

とすればPy0.12.2正式版対応は完了、のはずです。
これから修正に取りかかります。

※※※
CW1.50と識別されるようになった原因は何なのか、ChangeLog.txtで探しましたが、影響していそうな項目は見当たりませんでした。

クーポン分岐に関連する変更には「クーポン選択分岐やカード所持分岐で対象がいなかった場合の挙動をCardWirthに合わせた」がありますが、直前の0.12.2 RC3までは同行NPCの所持称号で選択して、効果コンテントによる各種状態の変更や称号やカードの付与ができていましたので、「対象がいなかった場合」にはあたりません。

他に可能性があるかもしれないのは「フィールド全体で対象を選択した時、選択中のメンバが優先選択される」ですが、これは前段階で別の手段によって同行NPCが選択できている前提の話になり、クーポン分岐から開始する実験で必ず指定称号を持っているNPCが選択されるのとは、違う現象のようです。

ともかく、0.12.2 RC3→0.12.2正式版の更新で、同行NPCが持っている称号をターゲットにクーポン分岐を行っても、必ず失敗するようになりました。そこは間違いありません。

※※※
CWPy0.12.2正式版における変更点の1つに、「CardWirth 1.50では同行キャストに対象消去の効果が無いため、それに合わせた」がありました。これは、Nextの見分けに使っている、対象消去後のNPCをランダム選択で選択可能なバグと関連する部分です。
どのように修正されたのか、実際を見てみたところ、以下のような結果になりました。

CW1.50では対象消去した同行NPCを(が):
・キャンプで閲覧できる→Py0.12.2も同じ
・キャスト存在分岐で検出できる→Py0.12.2も同じ
・ランダム選択で選択できる→Py0.12.2も同じ
・戦闘では動かない→Py0.12.2では戦闘中も動いている

CW1.50で戦闘中の行動が封じられているところ以外は、同じ動きになっていました。
対象消去後のNPCの動きついてメモ箱に書いた部分も、サンプルと同時に修正予定です。


【!】同行NPCを消したければ「キャスト離脱」で!
サンプルとは関係ありませんが、大事なことなので書いておきます。

対象消去後のNPCの扱いについては、現在存在するエンジンの最新版全て(CW1.50、CWNext1.60、CWPy0.12.2)に明らかにバグと思われる動きが存在します。
また、対象消去後の挙動が、CW1.50と各私家版で異なっています。
(→詳細

ストーリー的に対象消去が正しい(例:パーティーに取り憑いた幽霊が聖なる力で祓われるなど)場合でも、キャスト離脱で離脱させた方が無難です。

拍手送信フォーム

[CardWirth] CW用「エンジン識別サンプル」 1.04 不具合修正

前バージョンまで、Pyが互換モードで動作中は、正しく識別ができませんでした。

  • CW1.28を時限称号への対応で見分ける場合、確認した全てのバージョンがPy0.12.2 (Reboot)と識別されていた。
  • CW1.28を状態異常判定バグの有無で見分ける場合、確認した全てのバージョンがCW1.20と識別されていた。

これは何故かというと、「互換モード=互換指定したバージョンと全てにおいて同じ動きをする」のではないからです。前回更新時は、その詳細について詳しくは調べていませんでした。

今回、サンプル内で識別に用いている仕様の差やバグについて、1つずつ互換モードでの動きを確認しました。
以下は、その結果です。

【互換モード時、指定したエンジンの動きが再現されたもの】

  • CW1.20の状態判定分岐バグ(中毒が麻痺/石化の判定に引っかかる類のあれ)


【互換モードでも通常モード時と同じ動きだったもの】

  • 時限称号の時間経過による消滅
  • 仮想システムクーポン「@MP3」の検出
  • CW1.30以降の状態判定分岐の拡張分(少なくとも混乱と沈黙は互換設定によらず検出可能)
  • CW1.20の、睡眠者に絶対成功(成功値修正+5)で攻撃した場合、対象が目覚めないバグが修正済み


【そもそもCW1.50とは挙動が異なっているもの】

  • 対象消去した同行NPCをランダム選択で選択できない(※CW1.50に合わせて、できるように修正されるようです)
  • フィールド全体対象のクーポン分岐で同行NPCの称号を検出可能


互換モードで何が変わるのか細かく調べれば、どのエンジンに互換の設定で動いているのか判別可能かもしれませんが、今のところやるかどうか未定です。
互換モードの使い道を考えてみると、

プレイヤーが最新エンジンでは不具合が出るシナリオを遊ぶ際に利用
→シナリオに何かしなくても、適切に互換設定すれば多分動く。

シナリオ作者が過去の仕様やバグを利用したシナリオを作る際に利用
→こちらも互換設定が適切なら恐らく問題なく、Pyであることが判別できれば十分。
→正規版やNextに対しては、対応していない時メッセージを表示するなどの対応が可能。

なので、互換の設定まで見分けなくて良いようにも思います。


[現時点で識別可能なエンジン]
正規版
・CW1.20/1.28/1.29/1.30/1.50
私家版
・CardWirthNext1.60
・CardWirthPy(Reboot)0.12.1/0.12.2


エンジン識別サンプル→ver.1.04
・CardWirthPyが互換モードで動作中も正しく識別できるよう修正
DLはこちら

※※※
修正過程で新たに分かった事を、メモ箱の関連記事に反映させました。

拍手送信フォーム

[CardWirth] CW用「エンジン識別サンプル」 1.03 Py(Reboot)のバージョン識別に対応

前回更新時(一昨日)の日記の最後に書いたことを、シナリオに反映させました。


(1)CardWirthPyのバージョン0.12.1 (Reboot)がダウンロード可能なのを発見
→Pyのバージョン識別を追加しました。

サンプルのバージョン1.02はエンジンバージョンの違いを考慮していませんでしたが、これを0.12.1 (Reboot)は「Py0.12.1 (Reboot)」、0.12.2β1 (Reboot)と0.12.2 RC3 (Reboot)は「Py0.12.2 (Reboot)」と判定されるようにしました。

※Nextは現在1.60のみなのでバージョン識別はなしですが、今後新しいバージョンが出たら対応予定です。


(2)CardWirthPyのが互換モードで動作中、識別結果がどうなるかを調べ、使い方説明書に追加しました。

互換モードであろうとPyと判定された方が良いのか、互換指定されたエンジンと判定された方が良いのかで迷い、今回は情報の追加だけです。


[現時点で識別可能なエンジン]
正規版
・CW1.20/1.28/1.29/1.30/1.50
私家版
・CardWirthNext1.60
・CardWirthPy(Reboot)0.12.1/0.12.2


エンジン識別サンプル→ver.1.03
・CardWirthPyのバージョン見分けに対応
DLはこちら

※※※
サンプルシナリオ更新の過程で調べた事は、メモ箱の関連記事に反映させました。

拍手送信フォーム

[CardWirth] CW用「エンジン識別サンプル」 1.02 微調整

きっかけは、Pyの細かい更新内容を見ようと付属のChangeLog.txtを開いたことでした。ファイル先頭に、「2014/11/01 ver.0.12.2β1 (Reboot)」の一行が。
実は、それまでReadMe.txtを見て、バージョンは0.12.1だと思っていました。当サンプルの前バージョンまで付属テキストにPyの対応バージョンは「0.12.1」だと書いていたのは、「0.12.2」が正しかったわけです。

さらに、念のため配布元を確認したところ、今月初めに更新されていたことが分かりました。
現在最も新しいのは、ver.0.12.2 RC3 (Reboot)のようです。こちらもサンプルで識別を行ってみて、「Py」と判定されることを確認しました。

【Pyについて】
0.12.2 RC3も0.12.2β1と同じに識別できるか確認し、確認できたので、識別結果を保存するステップの値を「Py 0.12.1」としていたものを「Py」と変更しました。

【Nextについて】
Nextの方も、ランダム選択の修正が何時行われたのか、付属テキストの更新履歴を見てみましたが、そこまで詳しくは書いてありませんでした。他にそれらしい項目が無いので、Ver.1.6.0.8の「その他細かいもの多数」の中に含まれているのかもしれません。
もしランダム選択の修正が1.6.0.1より後なら、Nextの初期版は正しく識別できない事になります。


開発段階の版の違いまで考えると、大変な事になりそうです。
それぞれ正式版(正式版が出ていない時は開発段階の最も新しいバージョン)を識別できれば良しということにしておきますか、、、。

[現時点で識別可能なエンジン]
正規版
・CW1.20/1.28/1.29/1.30/1.50
私家版
・CardWirthNext(v.1.6.0.14)
・CardWirthPy(v.0.12.2)


エンジン識別サンプル→ver.1.02
・CardWirthPyの新バージョンに対応して調整
DLはこちら

※※※
そして、更新が終わってから0.12.1がまだダウンロードできることと、互換モードなる機能の存在に気付く──……。このサンプル、まだまだやる事が残っているようで。

拍手送信フォーム

[CardWirth] CW用「エンジン識別サンプル」 1.01 Py識別にも対応

1つ前のバージョンでは、対象消去後のNPCをランダム選択で選択できるかどうかでNextを見分けていましたが、このやり方ではPyはNextであると判定されていました。対象消去されたNPCは選択できない方が正しいので、これはやむをえません。
また、Pyを見分けるにはNextと同じ部分を見ても仕方ないわけで、別のCW1.50ともNextとも違う部分を探す必要があります。しかし、一昨日の段階ではさっぱり見つからず、これは長くかかりそうだと思っていたら。

何と翌日、意外に大きな違い発見しました。

「フィールド全体を対象としたクーポン分岐で、同行NPCの所持称号を検出できるか否か」

ただ、これを利用した見分け方は、そう長くは使えないかもしれません。
CW1.50やNextとは明らかに挙動が異なるため意図的な仕様と思われますが、今後CW1.50に合わせる変更が行われればそれまでです。
いまいち決め手に欠けるシナリオ更新でしたが、今日はここまで。

このサンプルは、「現在入手できる全てのエンジンを見分けること」を目標にしています。
してみると、今後は、どこかで新しいエンジン、新しいバージョンが出る毎に、それを見分けるという話になっていくでしょう。何だかキリがないような気もしてきました。
今後エンジンは増えることはあっても減ることはないだろうし、CW1.29の「@MP3」のように、各々のエンジンにそれぞれプログラム名とバージョンを表す仮想システムクーポンがあれば……と、まぁしょうもない妄想語っても意味ないですな。
いずれシナリオ側で他と区別できないエンジンが出てきたとしても、(と言うか今でも、)必要な時にはシナリオ作者がreadmeなどに対応エンジンを書けば済む話ではあります。

[現時点で識別可能なエンジン]
正規版
・CW1.20/1.28/1.29/1.30/1.50
私家版
・CardWirthNext(v.1.6.0.14)
・CardWirthPy(v.0.12.1)


エンジン識別サンプル→ver.1.01
・CardWirthPyの見分けを追加
DLはこちら

※※※
ちなみに、なぜCW1.50では対象消去後のNPCをランダム選択で選択出来てしまうかというと、同行NPCの対象消去が正常に機能していないからです。

ランダム選択でパーティーに同行中のNPCを選択
 ↓
選択メンバを対象として効果コンテントで対象消去

という処理を実行した場合、本来なら選択状態のNPCは消滅してキャンプの表示から消え、キャスト存在分岐で検出できず、当然ながらランダム選択でも選択できないのが正しい挙動です。
ところがCW1.50では、対象消去したはずのNPCがキャンプで閲覧でき、キャスト存在分岐・ランダム選択の双方で検出可能にも拘わらず、戦闘では動かないという謎の挙動をします。

なお、NextやPyの対象消去後のNPCは、現時点では次のような動き方です。

●CWNext(v.1.6.0.14)
対象消去後ランダム選択で選択できる現象はないが、キャンプで閲覧でき、キャスト存在分岐でも検出される。戦闘では動かない。

●CWPy(v.0.12.1)
対象消去後はキャンプでの表示が消え、キャスト存在分岐・ランダム選択の双方で検出されない。

CW1.50、Next、Pyでそれぞれ違っていて、ここに引っかかると割と危険です。
同行NPCを消したいなら、キャスト離脱コンテントで離脱させるのが無難だと思います。それならどのエンジンを使っていても同じ動きです。

拍手送信フォーム

[CardWirth] CW用「エンジン識別サンプル」 1.00 Next識別に対応

少し前になりますが、Twitterで知り合った方から、既存シナリオの一部にCW1.50では遊べるがNextでは遊べないものが存在しているという話を聞きました。Next独自のシナリオフォーマット(=Next用シナリオがその他エンジンで遊べない)に目を奪われ過ぎて、逆パターン(=既存シナリオがNextで遊べない)は盲点になっていたので、ちょっとした驚きでした。

が、考えてみれば複数あるエンジンがどれも全く同じであるわけはなく、そういう事が起きても不思議ではありません。これまでも非対応エンジンが使われている場合にメッセージを出すシナリオはありましたが、これをNextやPyに対してもできるようにしておけば何かの時に役立つかもしれません。

そのためには、まず、公式ファンサイト以外で配布されているエンジンを、それぞれ見分ける事が必要になります。
そんなところから出発したサンプルシナリオです。

今回は、CardWirthNextの見分けのみ作りました。
今後さらに、CardWirthPyの見分けにチャレンジします。

エンジン識別サンプル:ver.1.00【新規】
DLはこちら

※※※
サンプルに使用したCardWirthNextの見分け方情報を、メモ箱の「CW各バージョン変更点まとめ」に追加しました。(→こちら

拍手送信フォーム

[CardWirth] 偽素材集+14:CW本体差し替え用(1/19)

ずっと前に作って忘れていた分を、他の更新に便乗アップします。

一括DLのリンク先から他の差し替え用素材も一緒にまとめてDLできます。
使用条件などは偽素材集のカード用画像と同じです。
利用規約差し替え素材一括DLへ

■TABLE_STATUS.bmp
241-1.png
全部がそうでなくて、PC画像の背景にあるドラゴン柄の部分です。
このキャラクターの背景部分ばかり14パターン追加しました。

いまいち使いどころが分からない属性っぽいものをイメージした柄や、
いまいち使いどころが分からない和の伝統柄もあります。
今後も、思い付きで増えるかもしれません。

※※※
今回は以上です。
また何か出来たら追加します。

拍手送信フォーム

[CardWirth] 偽素材集+2:CW本体差し替え用(4/7)

昨日追加分の色違い版です。
昨日の茶色いのは、実際使ってみると見慣れたデフォルト素材と色が違い過ぎて、どうしても違和感が消えませんでした。この問題の解消を目指したものです。

一括DLのリンク先から他の差し替え用素材も一緒にまとめてDLできます。
使用条件などは偽素材集のカード用画像と同じです。
利用規約差し替え素材一括DLへ

■[t]MapOfWirth.bmp(ASK仕様地図柄)
223-1.png
地図柄のみのものも、色違いを入れています。

※※※
今回は以上です。
また何か出来たら追加します。

拍手送信フォーム

[CardWirth] 偽素材集+2:CW本体差し替え用(4/6)

思いついた時が作り時。2点追加です。
一括DLのリンク先から他の差し替え用素材も一緒にまとめてDLできます。

使用条件などは偽素材集のカード用画像と同じです。
利用規約差し替え素材一括DLへ

■[t]MapOfWirth.bmp(ASK仕様地図柄)
222-1.png
昨年作った起動画面に放浪の雰囲気を……の派生品です。
セル画像の邪魔にならない地味さと放浪の雰囲気の両立を目指してみました。
宿サイズ画像に隠れる部分に旅人が居ます。

背景の地図柄はgroupASK様作のデフォルト素材、MapOfWirth.BMP(Data\Table内)の加工品(的なもの)です。北の方角を考えると、地図がいつもと違った感じに見えてきました。
一括DLパッケージ内に単体でも入っています。旅人が要らない方はそちらをご利用下さい。

※※※
今回は以上です。
また何か出来たら追加します。

拍手送信フォーム

ページ移動

ユーティリティ

2024年10月

- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -

エントリー検索

エントリー検索フォーム
キーワード


翳の回廊(絵置き場)の一部を
TINAMIのスペースに置かせて頂いています。

pixivでも何かやっている……かも。

新着エントリー

cwNowUpのご利用条件の変更(7/14~7/18)について
2022/07/20 23:51
cwNowUp 0.816β
2022/07/12 20:40
cwNowUp 0.815β
2022/04/20 20:30
cwNowUp 0.814β
2022/01/29 00:00
cwNowUp 0.811β~0.813β
2022/01/26 23:40

新着コメント

Re:Re: CWBBS[26]-14
2015/06/23 from simoom
Re:Re: CWBBS[26]-14
2015/06/22 from ああ
Re:Re: CWBBS[26]-14
2015/06/22 from simoom
Re:Re: CWBBS[26]-14
2015/06/21 from 権限がありません
Re:Re: CWBBS[26]-14
2015/06/21 from あ

過去ログ

Feed