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

エントリー

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

[CardWirth] 【重要】サンプルシナリオ中のカードデータ・素材について

サンプルシナリオに含まれるカードデータの利用に関して、拍手コメントでお問い合わせ頂きました。大事なことなので、エントリの方で返信させて頂きます。

お問い合わせは、サンプルシナリオに含まれる技能やアイテムなどのカードをリソースとして利用可能かということでしたが:

────────
当サイトのサンプルやリソースは、イベントの組み方説明を目的としたものです。
配布パッケージに含まれるカードデータや画像・音声・楽曲などの利用はご遠慮ください。
(※readme.txtなど他の付属テキストで利用を許可している場合は除きます。)

なお、サンプルシナリオ、リソースシナリオとは、シナリオに付属するreadme.txtの「形式」の項に「サンプルシナリオ」または「リソースシナリオ」と記載されているシナリオを指します。
────────

切り貼り用として準備したイベントデータ(例えばCW1.30/1.50新機能代替サンプルなら「2_素材庫」フォルダ内のエリアやパッケージのイベントビュー内容や環境変数)を、あなたのシナリオにコピー&ペーストして頂くのは全く問題ありません。

ただ、カードや素材には自作ではないものも含まれるため、インポートや素材の抜き出しも可とすると、何かの手違いで自作以外のものが使われてしまう可能性が生じます。あなたが大丈夫でも、次の、またその次の誰かがということを考えると、最初から使えない設定にしておいた方がより安全と考えました。
また、使い方に「あなたのシナリオにコピーして下さい」などと書いていないものは、そもそも動作見本専用に作成していて、他での利用を想定していません。

そのようなわけで、すみません。考えましたが、この結論になりました。
後日、サイトに掲載している規約文書やシナリオ付属のテキストにも反映させます。


(5/30追記)
「配布物の取扱いについて」を更新しました。

拍手送信フォーム

[CardWirth] 各種エンジンにおけるセリフコンテントの仕様の違い

CW1.30/1.50新機能代替サンプル内の特定のPC【A】が別のPC【B】の名前を呼ぶサンプルが、Pyでは上手く動かないという某所での会話から、セリフコンテントの、と言うかその後方の選択肢の扱いがエンジンによって異なることが判明しました。

時間が無い方のために、結論だけ先に書いておきます。

話者が持つ称号がコンテント内に含まれるセリフパターンの称号条件のいずれにも一致しない時、

  • セリフの表示が飛ばされるのは各エンジン共通だが、セリフ後方の分岐(選択肢として表示される部分)の扱いが異なる。
  • CW1.20~1.50/Next1.60では必ず分岐の一番上の枝に自動で処理が進むが、Py0.12.2では何らかの文字列が設定された選択肢が1つ以下の場合のみ一番上に自動で処理が進む。


何言ってるのか良く分からんと言う方は、以下の例をご覧いただくと分かると思います。

例えば、

セリフ(誰も持っていない称号が条件)「うんたらかんたら」
├【】→メッセージ「1」
├【2に進む】→メッセージ「2」
└【3に進む】→メッセージ「3」

というイベントがあったとします。【】の中は選択肢ラベル(OKとかYesとかNoとか入っているあれ)です。

これをCW1.50、CWNext1.60、CWPy0.12.2でそれぞれ実行すると、

●CW1.50/Next1.60
・セリフ「うんたらかんたら」は表示されず、メッセージ「1」が表示される。

●Py0.12.2
・セリフ「うんたらかんたら」は表示されず、[どれか一つを選択してください。] 2に進む/3に進む との選択肢が出現。

と実行の結果が異なりました。
正規版やNextではセリフは表示されずに1番上の分岐に進みましたが、Pyでは空のセリフ+選択肢と同じ扱いになっています。


そこでもう1つ、以下のようなイベントを試してみました。

セリフ(誰も持っていない称号が条件)「うんたらかんたら」
├【】→メッセージ「1」
├【2に進む】→メッセージ「2」
└【】→メッセージ「3」


前のと何が違うかというと、3番目の選択肢ラベルが空白になり、文字列が設定された選択肢が1つに減っています。そして、このイベントを実行した場合は、どのエンジンでもメッセージ「1」のみ表示されるのです。

今度は、Pyでもセリフ後方の分岐構造が無視されました。
Pyでは、表示が行われなかったセリフ後方に意味のある選択肢が存在しない時(=何らかの文字列が設定された選択肢が1つ以下の時)は分岐が無視され、そうでない時はメッセージなしの選択肢として扱われます。
他のエンジンでは、後方がどうなっていようと、全ての場合で分岐が無視されます。


そこで、冒頭の結論部分です。

話者が持つ称号がコンテント内に含まれるセリフパターンの称号条件のいずれにも一致しない時、

  • セリフの表示が飛ばされるのは各エンジン共通だが、セリフ後方の分岐(選択肢として表示される部分)の扱いが異なる。
  • CW1.20~1.50/Next1.60では必ず分岐の一番上の枝に自動で処理が進むが、Py0.12.2では何らかの文字列が設定された選択肢が1つ以下の場合のみ一番上に自動で処理が進む。

と、なってました。
某所での会話に参加していた方が、Pyの開発者さんにこの現象を報告されるそうなので、いずれ修正されるかもされないかもしれません。


なお、特定のPC【A】が別のPC【B】の名前を呼ぶサンプル(CW1.30/1.50新機能代替サンプル)ですが、名前を呼ぶセリフ直後の選択肢で、何かの文字列が設定されたものを1つにすれば問題なく動きます。
↑の言い方で分かり辛ければ、セリフが表示される時に選択肢がつかないようにする、とお考えください。



※※※
なぜこうなっているかを考えると、たぶん、シナリオ作成者が明らかに選択肢作りたかったんだろうなという時に選択肢表示してくれる親切機能の結果というのが、最も妥当な推測だと思います。仕様である可能性が高く、影響も特殊な条件下に限られるので、私は報告する決断に至れなかったかもしれませんね。。
ともあれ、今後別の何かを発見した時のために、余裕のある時にBitbucketに登録しておきますか。


(5/26追記)
この件について、メモ箱の私家版エンジン情報に追加しました。

拍手送信フォーム

[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パターン追加しました。

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

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

拍手送信フォーム

ページ移動

ユーティリティ

2019年09月

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 - - - - -

エントリー検索

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


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

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

新着コメント

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