スポイラーデータ

 主にPyReboot/Liteの開発上・開発外の有志によるCardWirthエンジンの検証結果から得られた情報のまとめです。
 検証に当たってはバイナリ改変で得られた通常起こり得ない結果を含みます。

 一部の情報はマニュアル/知っておくべき知識に移動させました。

閲覧注意

 CardWirthは「数値隠蔽」をコンセプトの一つとするゲームです。
しかし、CardWirthを再現するに当たっては、隠された仕様や計算式を知らないでは通りません。

これらの情報は、エンジン開発・一部シナリオ作者にも有益な情報であると思いメモ・公開していますが、
コンセプト通り、詳細な数値的要素には触れずに遊びたいプレイヤー・シナリオ作者が見ると
酷いネタバレ・スポイラー情報となってしまう点、重々ご注意下さい。



閲覧注意(再)


 CardWirthは「数値隠蔽」をコンセプトの一つとするゲームです。

これらの情報はエンジン開発・シナリオ作者にも有益な情報であると思いメモ・公開していますが、
コンセプト通り、詳細な数値的要素には触れずに遊びたいプレイヤー・シナリオ作者が見ると
酷いネタバレ・スポイラー情報となってしまう点、重々ご注意下さい。

※グーグルが見出しを先行表示する様になり、たまたま目に入って良くない部分をも表示しているため、警告位置を移動しています。

CardWirthのデータ構造

 CardWirthの宿/シナリオデータは1.20-1.28時代に存在したクローンプロジェクト「CWI」で大凡が解析されており、当時はデータを直接読み込む補助ツールなどが存在した。CardWirthPy/CWXEditorも、元々はこの解析データに基づいて実装されている。

各種専用ファイル
Environment.wyd 宿の全体情報(所属冒険者、宿内にあるアイテムの名前、ゴシップ)
wpl/wpt パーティデータ(パーティ名、所属キャラクターの所持カードを含む全データ)
wch/wcp 宿のキャラクターデータ(所持カードを含む全データ)
Summary.wsm シナリオの全体情報(貼り紙・解説・作者名・必要称号・ステップ/フラグ情報)
wid シナリオ内のエリア、パッケージ、キャスト、各カード
宿内のカード置き場/荷物袋にある効果系カード単体

 宿とシナリオで拡張子は区別されているが、内部の構造はほぼ同じ。後述の通り、1.20/データバージョン4から基本的なデータ構造は変わっていないため、構造体の仕様を理解していれば、宿にいるPCや効果系カードをシナリオとして移植するといったこともできる。

データバージョン

Environment.wyd
 ヘッダのバージョンによって宿データのエンジンバージョンを識別可能。
DATAVERSION 08 1.20
DATAVERSION 10 1.28(各種バリアント)
DATAVERSION 11 1.30-1.50

Summary.wsm
 スタートエリアIDに加算されている値によってシナリオ/作成したエディタの世代を識別可能。

データバージョン 0 最初期のCardWirthEditor
1.00-1.03用に作成されたシナリオ(レベル/数値無制限)
データバージョン 1 1.14対応となっているが、1.14シナリオは公募されていない
データバージョン 2 1.15同梱のCardWirthEditor
1.15用に作成されたシナリオ
データバージョン 3 欠番?(上記では1.20対応となっているが、作成されるのは4)
データバージョン 4(現行) 1.20-1.28(07)同梱のCardWirthEditor
各種バリアント/1.28(08)-1.30同梱のCardWirthEditor2
1.30-1.50同梱のWirthBuilder/CWXEditor
データバージョン 7(非公式) Next 1.60同梱のWirthBuilder/CWXEditor7以降(エクスポート)
WSN 0-5(非公式/XML) CWXEditor

 ギルドでタグ付けが義務付けられている1.28仕様だとか、1.50仕様だとかいった区分はシナリオデータ上は存在しない。
 最終的に公表されていた1.20用のフォーマットである「データバージョン4」を各改造版が共有し、独自に仕様変更/拡張してしまっているのが、現在の実態である。当然ながら、独自拡張された機能に非対応なエンジンでは不具合やエラーが発生するため、ユーザーレベルでReadmeなどで対応エンジンを明記する必要がある。

 なお、ベクターでgroupAskが公開しているシナリオ集のバージョンは1.15仕様・データバージョン2なので注意。1.20以降対応の最新版は公式サイトからのみダウンロードできる。

非公式フォーマットの問題
  • Next専用シナリオは暗号化が有効でもSummary.wsmについては圧縮されておらず、バージョンを本来存在しない「7」と申告しているため、1.50等でも貼り紙だけは正常に認識されるようになっているが、1.50ではバージョンアップが促され、1.30以下で選択するとエラーやクラッシュが発生する
  • 旧CWXEditorはデータバージョン4でPNG/GIF/JPGを格納できるようにしていたが、Nextを含めた他のエンジンは格納された画像を「BMP」しか認識できない。貼り紙(Summary.wsm)やカードにBMP以外の画像を格納したシナリオは、読み込んだ瞬間にエラーが発生。さらにそのシナリオがScenarioフォルダの一番前にある場合、選択ダイアログすら開けなくなる
  • WSN形式(Py専用シナリオ)の場合、このような構造体ではなく「XML」を採用しているため、他エンジンでは認識されない。展開している場合は空のフォルダとして認識されてしまう。


バイナリ・16進数の基本

符号付き整数32bit(4バイト)
 レベル、ダメージ値等の数値系はほとんどの場合「INT32」(32bit符号付き整数)で管理されている。
 この型は上限値が21億~-21億なので、1.15以降のエディタの制限上は999とか10になっているが、
 実際のところ、CardWirthは膨大な値を扱うことができ、エンジン側でもそのまま認識されるようになっている。

 このため、そういった規格外の値を扱う「バイナリ改変シナリオ」が製作されることがある。
 1.28の「無属性・必中属性」や1.50におけるキャスト体力値の拡張(999→9999)、CWXEditorで設定できるキャストの「初期状態」などは、元々エンジン側は受け付けており、初期のCardWirthEditorやバイナリ改変で設定できていたものを、エディタ側の改造・上限拡張により設定可能にされた要素にすぎない。

16進数でのマイナスの表し方
 INT32においては、たとえば「0100 0000=1」「0A00 0000=10」「FF00 0000=255」「0101 0000=257」「FFFF FFFF=-1」「FEFF FFFF=-2」となる。

FF -1 F5 -11
FE -2 F4 -12
FD -3 F3 -13
FC -4 F2 -14
FB -5 F1 -15
FA -6 F0 -16
F9 -7 EF -17
F8 -8
F7 -9
F6 -10




キャラクターのレベルの影響

  • 技能カードの発動成功判定、使用回数
  • 各判定で1レベル毎に全身体能力+2相当のボーナスを得る
    • レベル比ダメージ、命中率、回避力、抵抗力が上昇する
    • レベルを参照しない判定(行動順、固定値ダメージ、状態異常ラウンド等)はどれだけレベルが上がっても影響なし
  • 所持カードのCap(最大所持数/最大10枚)と戦闘手札(最大11枚+カード交換)が上昇する
  • PCの場合、レベルアップ毎に最大体力(HP)が上昇する(Py以外では独自体力だった場合、初期化される)

エネミーのレベルをPC側の想定レベルより5~程度高くすると、
回避力・抵抗力が高くなりすぎてしまい、絶対成功のカードしか通用しなくなってしまう。
カナンのようにペナルティを併用するか、そもそもレベルはあまり高くせずに体力を高めに設定し、
固定値ダメージ中心のカードを持たせると戦闘バランスを取りやすい。

レベルとカード所有枚数
Cap/必要レベル 1枚 2枚 3枚 4枚 5枚 6枚 7枚 8枚 9枚 10枚 11枚 12枚
スキル (-4) (-2) 1 3 5 7 9 11 13 15 - -
アイテム (-4) (-2) 1 3 5 7 9 11 13 15 - -
召喚獣 1 3 7 11 15 19 23 27 31 35 - -
戦闘手札 (-7) (-5) (-3) (-1) 1 3 5 7 9 11 13 15
キャストのレベルがマイナスになる場合、Capも連動してマイナスの値が表示されるが、0と同じ扱い。
戦闘手札はレベル-7でカード交換だけになり、-9ではカード交換も配布されなくなる。

技能カード、アイテムカードは冒険者レベル÷2+2(端数切り上げ)枚まで、
召喚獣カードが (冒険者レベル+2)÷4(端数切り上げ)枚まで、同時に所持することができます。
(公式ヘルプ)

特殊技能カードの発動成功判定

 現在レベルより高い対象レベルの技能カードを使用すると失敗することがある。
技能カードを使用するときには発動成功判定が行われている。
バイナリ改造でレベル1・適性値100のキャスト、行動力100のカードを作り、対象レベル50のスキルカードを使用させる。すると大半は失敗するが、稀に成功することがある。
このことから以下のことが言える。

  • 発動成功判定は能力判定分岐と異なり、適性値や行動力の影響を受けない。
  • レベル差のみが影響し、自動成功があるので2D6の判定が使われている可能性が高い。

Pyでの実装
2D6≧技能レベル-キャストレベル-1
自動成功(12)あり、自動失敗(2)なし


キャラクターの体力(生命点)

キャラクターの現在の最大体力(最大HP、最大生命点)は以下のタイミングで
(生命力/2+4)×(レベル+1+精神力/2)に基づく値に再計算される。

  • レベルアップ
  • レベル調節
  • 「成長」
連れ込みNPCが独自の体力を持っている場合、
連れ込んだ直後はそれが維持されるが、この再計算により正規値に戻されてしまう。

しかし、Pyにおいては「倍率」の補正値として維持される。
他のエンジンでの再計算を当てにして、体力が1のまま、あるいは適当に設定された連れ込みNPCは相当数存在するが、これらのキャラクターは、Pyではそのままでは使い物にならないか極端に強くなることになる。
たとえば、レベル1で体力50に設定された連れ込みNPCは通常のPCの約3倍の補正が付く。
これは低レベルのうちは大きいとは言えないが、
レベル10で正規体力が80の時、80*3で240にもなってしまうので非常に強烈に作用する。
この補正を取り除きたい場合、デバッグモードで再計算することで通常の正規値に戻すことが出来る。


健康/負傷/重傷/意識不明判定
健康 体力値 = 最大体力値
負傷 体力値 < 最大体力値
重傷 体力値 ≦ (最大体力値 / 5) (小数切捨)
意識不明 体力値 = 0


キャラクターの能力値・適性値の影響

ここで述べる「適性値」は身体的能力値+精神傾向値(スキルとアクションカードのみ+行動力ボーナス)の合計値です。

能力系
体力 (生命力/2+4)×(レベル+1+精神力/2)
回避力 レベル+(1※+敏捷度+慎重性+能力修正)/2
抵抗力 レベル+(1※+精神力+勇猛性+能力修正)/2
防御力 0(+能力修正)
カード(本効果)の威力(レベル比モーション) 効果値*(カードの適性値+1※/2+レベル)/2
効果コンテントの威力(レベル比モーション) 効果値*(6+1/2+対象レベル)/2
※各適性値がマイナスの場合、2となる?

判定系
行動順 敏捷度+大胆性+1D6
カードの命中・成功率 (カードの適性値+1)/2+レベル+成功率修正+2D6
効果コンテントの命中・成功率 (6+1)/2+対象レベル+成功率修正+2D6
中毒・麻痺の緩和判定 (生命力+好戦性/2)+2D6≧進行度+2D6
逃走判定 パーティ全員で敏捷度+狡猾性による6/2+エネミーの平均レベルの判定
 CardWirth全般で行われている2D6(六面ダイス2個)判定にはまずダイスロールの結果で自動成功(12)と自動失敗(2)があり、その場合能力を加味した判定は省略される。これはTRPGの定番ルールであり、換言すれば、どんなに能力の高低差があっても成功・失敗する可能性がある。

効果時間

「適性値」は精神・魔法・能力モーション使用時の持続ラウンドと召喚モーションの回数に影響する。
概ね適性玉の色によって五段階のランク型で変動。最高ランクは行動力ボーナス込みでないと通常は達成不可。

ランク 適性値 増減率 10ラウンド 召喚回数(7回)
0 黒緑- 4~ 2 50% 5 3
1 暗緑 3~ 8 80% 8 5
2 明緑 9~14 100% 10 7
3 白緑15~19 120% 12 8
4 白緑21~ 150% 15 10

1. 弱点属性(炎・冷気)は1ランク増大
たとえば使用者の適性が暗緑(80%)なら弱点をついたモーションのみ緑丸(100%)の持続時間となる。
2. スキルは適性に行動力変化値をそのまま加算する。白玉適性16のPCに祝福を掛けると+5で21(150%)という具合。
3. 召喚獣の使用回数もこの影響を受ける(ただし下限値は1)。
4.効果コンテントは適性値6扱いだが、持続時間についてはランク2(100%)が適用される。
5.ランク4・150%が出るのはスキルカードのみ。アイテムと召喚獣は不正な手段で21を超えても120%止まり。

使用時ボーナス/ペナルティ

キャラクターの回避/抵抗/防御力に影響する修正値。
150%はないためランク3・4は割愛。行動力変化の影響は受けない。

種別 白緑 15以上 明緑 9~14 暗緑 3~ 8 黒緑 2以下
技能カード
アクションカード
ボーナス 120% 120% 100% 100%
ペナルティ 100% 100% 100% 100%
アイテムカード (所有)ボーナス 100% 100% 80% 50%
(所有)ペナルティ 80% 100% 100% 120%
(使用)ボーナス 100% 100% 100% 100%
(使用)ペナルティ 100% 100% 100% 100%
召喚獣カード ボーナス 100% 100% 100% 100%
ペナルティ 100% 100% 100% 100%
能力変化 100% 100% 100% 100%
キャストの能力修正 100% 100% 100% 100%

1.効果時間同様に下限値は1で0にはならない。
2.効果が相乗する場合、使用したカード>召喚獣カード>アイテムカード(所持)>状態>キャスト自体の能力修正の順で計算。
3.単独で10/-10の値を持つ場合は適性の影響を受けない。


【アクションカード・特殊技能カード】

1. 命中と効果値に適性と行動力変化の影響を受ける。
2. 使用時ボーナスは緑適性以上で`120%`になる。最大は9.9で、10にはならない。行動力変化の影響はない。
3. 使用時ペナルティは適性・行動力変化ともに影響なし。

元から筋力が高い戦士の、祝福を掛けた渾身の一撃は最強。武器アイテムや技能カード要らずで戦える。

【アイテムカード】

1. 命中と効果値に適性の影響を受ける。行動力変化の影響は受けない。
2. 所有時ボーナスは適性緑以上で変化なし、黒緑で`80%`、黒で`50%`に低下。ただし1未満にはならない。
3. 所有時ペナルティは適性白だと`80%`軽減。緑~黒緑で変化なし、、黒で`120%`に増大してしまう。
4. 使用時ボーナス・ペナルティは適性の影響を受けない。

たまに行動力変化1ラウンドでクリティカルを表現している武器があるが、これは無意味っぽい。

【召喚獣カード】

1. 命中と効果値に適性の影響を受ける。行動力変化の影響は受けない。
2. 使用時ボーナス・ペナルティは適性の影響を受けない。

ボーナス系付帯能力の適性は気にしなくてよさそう。

【効果コンテント】

1.レベルは「対象レベル」、適性値は6であるとして判定。
2.ただし持続時間ランクは2で固定。弱点を突いた場合は他と同様に1ランク上がり3になる。
3.効果コンテントにおける吸収モーションは、実行者不在のため、誰も回復の対象にはならない。

 「使用時イベント内の効果コンテント」はカード使用者自身が使っているという誤解が非常にされやすいのだが、
 効果コンテントの使用者はあくまで効果コンテント本人でしかない。
 レベル比系効果を設定しても設定した「対象レベル」依存にしかならず、使用者に合わせて命中率や威力は上がってくれない。




規格外カード適性(~1.30)

 1.28世代では、カードの適性の値に不正な値を入れることでレベルや現在体力などを参照することができた(ラッキー氏情報)。
1.50ではこれは再現されなかったようで、見ようによっては1.28世代の長所となっている。

身体×精神適性の違い
  • 身体適性(器用さ・敏捷度…)と精神適性(好戦性・社交性…)では参照できる要素が異なる。
  • レベルと体力、身体的パラメータは身体適性でしか参照できない。能力変化・状態異常系はどちらでも可能。
  • 身体適性の方が参照できる要素は多いが、マイナス反転は精神適性しかできない。例えば好戦性(身体)×好戦性(精神)は可能だが、好戦性のマイナス反転である平和性(身体)は指定できないので平和性×平和性は実現しない。
  • 「行動力が上昇するほど適性が下がり、行動力が減少するほど適性が上がるスキル」を作りたければ精神適性に設定するしかない。

適性の値・大きさ
  • レベル、体力、キャスト修正値、中毒・麻痺・能力変化強度、持続ラウンドは値がそのまま適性となる。
    例:レベル9でレベル適性緑玉。
  • 精神状態のみ、一つの場所で管理されているため、扱いが特殊。
精神異常の適性値
眠り +1
混乱 +2
激昂 +3
勇敢 +4
恐慌 +5


適性の更新タイミング
  • 通常適性では意識することはないが、持続時間などの動的な適性により、内部的にいつ適性チェックが行われているかを判別できる。
  • 適性玉の更新タイミングはカードを手札に加えた時点、レベル更新、ロード。これにより適性は随時的に計算しているわけではなく、手札に入った時点で合計値が変数として保存されていると推測できる。
  • スキルと召喚モーションによって配布される召喚獣は手札に回ってくる度に変わるため、ある程度有用に機能するが、アイテムと付帯能力は常に手札にあるので、安定動作を期待する場合、レベル・最大体力・キャスト修正以外は使い物にならない。

無適性(常に0)
  • 精神適性の値を0にすると精神傾向に依存しない(身体的特徴のみの)カードになる。
  • または好戦性×平和性のように身体×精神で相反する要素を参照すればどちらにも依存しない(足し引き0)カードになる。
  • 1.50の実装的には無効な値は器用度・好戦性(1)に丸められるようで無適性についても再現は不能となっている。
  • PyRebootではクラシックシナリオを読み込んだ場合、変換エラーになるが、XMLのAbility引数に直接無効な文字列(Noneなど)を入れれば0として扱われるので、擬似的に再現は可能。




ボーナス/ペナルティの重複と完全効果

 防御力/回避力/抵抗力のボーナス・ペナルティ値は、直接値で+10/-10に達すると特別な効果が発生する。

ボーナス+10 ペナルティ-10
防御力 無敵化(ダメージ0) ダメージ4倍
回避力 回避判定自動成功 回避判定自動失敗
抵抗力 抵抗判定自動成功 抵抗判定自動失敗

  • 無敵化は防御力を無視する最大値処理(ver1.28以降)には貫通される。
  • 判定自動成功/自動失敗は「判定を省略」する絶対成功が優先される(必中属性/成功率+5/状態異常)。
  • 上記に加えて、1.20では行動力ボーナス+10/-10で能力判定が必ず成功/失敗していたが、この効果は1.28以降削除された。

ボーナス値とペナルティ値の計算式は以下と予想される。

「最終ボーナス値-最終ペナルティ値+固定ボーナス値=実際のボーナス値」

最終ボーナス値・最終ペナルティ値
それぞれ別々に、以下の序列で全ての値を計算していく。

  1. カード使用時修正(アクション/スキル*適性補正/アイテム)
  2. 召喚獣所有(左手優先)
  3. アイテム所有(左手優先*適性補正)
  4. 状態変化
  5. キャスト固有修正
1.20以前は最大値を9とする単純な加算方式だったが、1.28以降は10を補正値の数だけ累乗していく複雑な式となっている。


特殊な仕様-「10の総数」をカウント
 式の途中に直接値で+10/-10が入る度、それ以前の補正値はリセットされ、「10の総数」に+1加える。
10以降に入ってきた値だけで上記累乗式で計算を行い、9.99以上になる場合、「10の総数」に+1加える。
最後に「10の総数」が1以上で、合計ボーナス値が0または+1~9/-1~9である時、+10/-10が入れ直される。
たとえば、1.~4.のいずれかに不正な-100のペナルティを入れても序列最後のキャスト修正で-10があった場合、最終ペナルティ値は-100ではなく-10となる。

特殊な仕様-固定ボーナス値
 通常は0。+10が2枚以上重複する毎に+5。無制限に加算されていく。
 +10が3枚、-10が1枚以上ある時、ボーナス+10 ペナルティ-10 固定ボーナス+10 = +10となり、結果、-10以下のペナルティがいくらあろうとボーナス側の完全効果が発生する。

  • 正規値の範囲では観測できないが、固定ボーナスは内部的には+10を超える。エディターで作れる正規の範囲だと使用時ボーナス/アイテムと召喚獣各10枚/キャスト修正/状態変化が乗るので合計22*5=「110」に達する。


防御力ボーナス重複による無敵化

1.+10の防御力修正を受けるとダメージが一切通らなくなる(ただし最大値ダメージは貫通)。これを仮に無敵化と呼ぶ。
2.+10の防御力修正を重ねる度、通常の防御力ボーナスとは別枠で+5される。これを仮に固定ボーナスと呼ぶ。

1.20では「単体で+10にならない限りは+9止まり」だったため、以降もその認識が浸透していたが、1.28以降の計算式では防御ボーナスを重ねていけば無敵化に到達できることが判明した。この繰上がり分は2.にも1回分としてカウントされる。2回以上にはならない。

```
繰上がり無敵化までに必要な防御ボーナス数は次の通り。

   +1 → 24件(不可能)
   +2 → 17枚
   +3 → 11枚 硬気功・シルフィード
   +4 → 9枚  カナンの鎧
   +5 → 7枚  魔法の鎧・アクションカード「防御」
   +6 → 5枚
   +7 → 4枚
   +8 → 3枚
   +9 → 3枚  家宝の鎧(持ち出し不可)
  +10 → 1枚  封陰の陣


```

繰上がり無敵化の条件はダメージ軽減の「倍率が0.01を切ること」。(HAND氏による検証)
計算式は上述の通り、通常はどんなにボーナス値を上げても最後にペナルティ値で引き算されるため、-1でもペナルティが付くと無敵化は達成できなくなる。 ex.10-1=9
(例外は、+10の重複による固定ボーナスとバイナリ改造等で+11以上の不正値を入力した場合。)

  • 計算式上、防御ペナルティは-1の値でも「無敵化を防ぐ」という強いペナルティ価値がある。
  • 器用度+好戦性が9以上のPCがカナンの鎧(+4)を9枚(レベル13以上なので神仙型である必要あり)持てば常時無敵化が再現可能。
  • 1.20の計算式ではそのまま加算されていたので硬気功やシルフィードの重ね掛けが強力だったが、現在の仕様ではやや物足りないカードになってしまっている。

無敵化は劇的な変化なので、持ち出し可能な防具・付帯能力に+5以上または-を付ける場合には少し注意しておいた方が良いと思われる。


防御力ペナルティの仕様と不正値

防御力ペナルティ側にも最大ペナルティ(-10)の特別な処理がある。これは元々は「ダメージが3倍になる効果」として知られていたが、恐らく1.28のバグで以降のエンジンではダメージが4倍となっている(TachiGigas氏の検証)。
1~9までの防御力ペナルティによるダメージ倍率は1.1~1.9倍なので、-10になるか否かで最終ダメージは劇的に変わる。

不正値については行動力ボーナスの場合、11以上のボーナスを付与するとダメージが億単位まで上がっていく(オーバーフロー有り)が、防御力ペナルティは-11以上でも4倍で固定される。

  • 極端な不正値ペナルティを付与されない限り、防御力ボーナスが少しでもあればこの4倍効果は打ち消され、1.9倍未満に下がる(実質半減)。とはいえCWはPC側のHPが低いので4倍ダメージを防いだところで焼け石に水という場合が多い。
  • 「竜殺し」等、硬い敵を貫通するイメージのスキルに設定されることが多いが、ボスエネミーには大抵何らかのボーナスが付けられるので実際的には雑魚特攻効果。

不正値を考慮した場合の固定ボーナスの補足

  • ペナルティ-10側に固定ペナルティは存在しないので固定ボーナスを3枚積まれると通常は突破不能。
  • 固定ボーナスは単体でそれを超える不正値ペナルティであれば突破が可能。正規に積める最大補正+110に対し、能力変化ペナルティで-110を与えれば能力変化分の1枠を打ち消し、+10-110+105で最終+5となりダメージが通る。
  • ただし、「式中に-10が入るとそれ以前の-補正値がリセットされる」という特例があるため、序列最後のキャスト修正で-10された場合、序列上位の召喚獣付与モーションや能力変化モーションで与えたペナルティは無視される。
    • すなわち所持ボーナス+10を2枚持たせ、あえてキャスト修正-10すると「デバフが一切通じない永続ボーナス+5を持ったエネミー」が作る事が出来る。
  • +11以上の不正値ボーナスでは無敵にはなるが、固定ボーナスとしてはカウントされない。単純に上記計算式でペナルティとの殴り合いになる。




回避・抵抗・成功率


 回避力と抵抗力の+10ボーナスにおいても無敵化と同様に完全回避・完全抵抗の概念があるが、成功率+5の絶対成功が優先されるため、防御力ほどには問題化しない。絶対成功でなければ、+10相当になっていれば対象レベル99・どんなにレベル差があっても無効化できる。

優先度
絶対成功(必中属性or成功率+5)>抵抗属性のダメージモーション(半減)>+10相当の回避・抵抗>通常の命中判定

  • 無敵化と同じく、最後にペナルティ値で引き算されるため、防具アイテムなどで-1でも回避力ペナルティが入ると「闇に隠れる」の完全回避効果は潰され、弱体化してしまう。
  • 命中判定は「カードの効果」「効果コンテント」につき、一度だけ行われる。ダメージモーション毎に削られる防御召喚獣の「練硬気」より、回避召喚獣「練軽気」は長持ちする。
  • 命中判定自体が発生しない場合、回避力・抵抗力はそもそも参照が行われない。ゆえに有限召喚獣も消費されない。



戦闘行動の自動選択/召喚獣の行動判断

CardWirth1.28で回復関係の思考が強化され、1.50にもそのまま継承されている。PyRebootでも大半の挙動を一致させているが、「回復/中毒解除/麻痺解除モーション付きのカードを重複して選択しない」は実装されていない。

  • ラウンド開始前に手前のキャスト/召喚獣から先に行動を決定する。味方は_1、敵は配置順から。
  • 自動選択/召喚獣は自身の持つ効果モーションを上から順番に見ていき、効果が有効な対象の中からランダムで選択する。
    たとえば、神聖属性ダメージが一番上にある場合は、アンデッドを優先攻撃しようとする。
  • 適性が高いカードほど選択されやすく、適性値`22`以上離れているカードは選択されなくなる。
    同条件の場合は、手前のカードが僅かに選択されやすい。
  • 目標に有効ではないカードは絶対に選択しない。ただし能力修正による無敵・無効状態、魔法無効化状態は考慮されない。(PyRebootでは魔法無効化状態を再選択可能な味方キャストに限り考慮する)
  • 効果目標「対象なし」または「効果範囲2(手動選択不可)」の場合は、「使用時能力修正」の有無で使用を判断する。
  • 既に回復/中毒解除/麻痺解除対象に選ばれているキャストは、同効果の対象としては絶対に選ばれない。おそらく同じ対象に重複して傷薬などを選択する事態を避けるための特別な処理で、これを仮に「回復選択済みリスト」と呼ぶ。
    • PyRebootの仕様では、リストに入っているキャストは「選ばれにくくなる」ものの、召喚獣は可か不可かでしか判断しないため、回復が有効なキャストが1人でも存在すると全ての回復召喚獣が動いてしまう。
  • 召喚獣はすべての効果モーションが有効でない、またはターゲットに取れる対象全員が「回復選択済みリスト」に追加されている時は行動しない。三体召喚されているウンディーネが負傷者一人の時、一体しか発動しないのはこのため。
  • この「回復選択済みリスト」はグループごと、味方・エネミー・同行キャスト・各召喚獣の計6リストに区別(または選択グループ移行時に初期化)されている。たとえば、エネミーに意識不明者が1人いる場合で、そのキャストに対して別のエネミーが回復を選択済みでも、味方が「双方一体」対象の回復手段を持っていれば、敵の回復役と重複してそのキャストを回復しようとする。
  • 回復/中毒解除/麻痺解除モーションの回復選択済みリストはそれぞれ区別されている。_2にいる中毒状態の負傷者が付帯能力「再生」とウンディーネという順序で所持している場合、ウンディーネは「回復は無効だが、中毒解除が有効」と判断し同時に発動するが、_1が召喚している別のウンディーネが先に_2を対象に取っている場合は3モーションすべてが選択済みリストに入り再生は発動しない。
  • 「沈黙時に使用不可」の召喚獣は、睡眠・束縛時にも行動・発動しない。麻痺等は判別できないが、沈黙+行動不能判定が使われているものと推測される。

特定カードの例外的な優先補正

  • アクションカード「カード交換」は`-6`の補正があり、若干選ばれにくくなっている。
  • アクションカード「逃走」は初期で`+3`の補正があり、体力が低下するほど上昇していく。
  • 一つでも回復モーションのついたカードは初期で`-1`の補正があり、ターゲットとして選択できる対象の体力が50%を切ると選択されやすくなっていく。(1~17)
  • 意識不明になった場合、最大体力分がそのまま補正になり、意識不明者が22(+適性値)以上の体力を持つ場合はほぼ確実にターゲットになる。
  • ただし効果目標が`双方`の場合、補正が付くのはエネミー側のみ。この検証は間違い。実際には効果目標に関係なく、双方に回復優先選択ボーナスが付く。


対象を持つカードのターゲット確定処理フロー

「効果目標」と有効判定でメインターゲットを確定
  1. 手札にあるカードの適性に上記の優先度評価を加味して使用するカードを決定する
  2. 効果目標の範囲内で「使用するカードの1番目のモーションの効果対象になりえる対象」を絞り込み、ランダムで抽選
  3. モーションが有効な対象が居ない場合、N番目のモーションで再抽選を行うを繰り返す
  4. 「対象なし」である場合、モーションは見ずに使用時ボーナス/ペナルティだけを見て有効かを判断する

ターゲット確定後、「効果範囲」の適用
  1. 「単体」なら、そのまま
  2. 「全体」なら他の候補をすべてターゲットに追加する
  3. 「手動禁止(2)」なら、すべてのターゲットを解除する
  4. 回復/緩和モーションを含んでいる場合、選択したすべてのターゲットを除外リストに入れる



補足-勇猛性/臆病性による特殊補正は存在するのか?

 CWEditorヘルプに以下の記述がある。

【臆病⇔勇敢】
勇敢なキャラクターは、戦闘時に自動的に攻撃系のカードを選択します。
逆に臆病なキャラクターは、自動的に防御・回避系のカードを選択します。

A「勇敢(勇猛性)+255 / 敏捷性+精神力15 / 筋力0」
B「勇猛性-255(臆病性255) / 筋力15 / 敏捷性+精神力0」

 勇猛性を不正値に改変したキャストLV15を10体ずつ並べて、自動選択するカードを見た結果、勇敢は「攻撃」「会心の一撃」を必ず選択、臆病は「渾身の一撃」を高確率、「攻撃」「会心の一撃」以外を低確率で選択する。「攻撃」「会心の一撃」は勇猛性適性なので、適性値通りの選択率と言える。

 なので、この記述は特別な補正ではなく、アクションカード「攻撃」「会心の一撃」の適性を示している可能性が高い。少なくとも、1.28以降ではこのような補正はない、もしくはカード交換以下の軽微な補正値と思われる。



戦闘の処理フロー

1.~7.を1ラウンドとして繰り返す。

0.戦闘開始イベント(1.50以降)
戦闘開始イベントは「戦闘開始」のアニメ後、エネミーカードがすべて表示された直後に発火する。
この時点では手札が配布されていないため、KC所持分岐アイテムで「カード交換」が引っかからない。
効果コンテントで手札カードの配布予約を行うことは可能。
このイベント中に全滅条件を満たすと敗北イベントは発火しない。そのままゲームオーバー画面に移行する。
1.行動可能キャスト全員の手札1番目の名前が「カード交換」でなければ
 アクションカード「カード交換」を配布し、山札等から手札を上限までドローする
一番前のカードの名称が「カード交換」の場合、アクションカード「カード交換」は配布されない。
カードを引く際の優先度は「配布予約されたカード」>「精神状態」>「山札」
1.50の戦闘開始イベントで帰還するとアクションカードが配布されているバグは、
戦闘開始時点でこの処理が予約されているためと推測される。
行動不能ならドローしないので、配布予約も消費されない。
2.キャラクターの戦闘行動と召喚獣の効果対象を自動選択・行動順決定
上述の回復優先ボーナスの挙動から陣営ごとに処理は独立しており、同一陣営内では、内部番号順(PCでは_1から)に戦闘行動を決定していると推測される。(現状、味方・エネミー・同行キャストの行動選択順は不明)
このため、PyLite/Reboot5.0では内部番号順を考慮し、味方→エネミーの順で戦闘行動を先に決定してから行動順を並び替えている。4系までのPyRebootではまずエネミー・味方全ての行動順を先に決定し、その順に戦闘行動を自動選択していた。
3.行動選択
プレイヤーが戦闘行動を再選択し、「行動開始」or「逃走」でラウンドを開始できる状態。
4.戦闘終了判定を行い、ラウンドイベント
キャラクターの敏捷度がどんなに早くてもまずラウンドイベントが発火する。
スキル/アイテムカードの使用時ボーナスはこの時点(効果コンテント)で有効となる。
エネミーが一体も存在しない場合、「行動開始」を押した直後に戦闘が終了し、ラウンドイベントは開始されない。
5.戦闘行動
戦闘参加メンバ全員が敏捷度と大胆性で判定し、概ね速度の速い順に行動する。
キーコードイベント・死亡イベントが随時発火。
6.選択中/使用済みカードの解放
使用回数の切れたアイテムカードを取り除く。また、手札が消去(orアイテムが配布)された場合、手札にあったカード交換/全スキル/アクションカードは消滅するが、選択中と選択済みのカードのみこの時点まで残る。7.のタイミングでは消滅済み。手札消去されたスキルカードは山札に戻る(赤玉が回復する)。
7.時間経過処理/中毒・麻痺緩和処理
ラウンド終了前に時間を経過。
時間が経過することで中毒によるダメージ、中毒・麻痺の緩和判定、状態変化の持続時間の減少が起こる。
この中毒ダメージによる死亡イベントを利用することで疑似ラウンド終了イベントを作ることが可能。

戦闘終了

戦闘終了すると、まずエネミーカードが非表示になり、元のエリアに遷移する。
味方全員の束縛状態解除、精神正常化が行われる。(1.20以降)
「;」で始まる戦闘時限称号を剥奪する。(1.28以降)
同行キャストの全回復が行われる。(この挙動はエンジンによってまちまち)
その後、勝利/敗北イベントが発火する。勝利イベント開始時は選択メンバを解除する。

  • 戦闘終了条件
1.勝利イベント/敗北イベントの発火条件を満たす(同時に満たす場合は敗北優先)
2.逃走イベントがない戦闘で逃走が成功する
3.イベントによってエリア移動が行われる

  • 勝利イベントの発火条件
1.全てのエネミーカードが意識不明・麻痺・対象消去・非表示・リバース状態のいずれかになっている。

  • 敗北イベントの発火条件
1.全てのプレイキャラクターカードが意識不明・麻痺・対象消去・リバース状態のいずれかになっている。
2.ゲームオーバーコンテントが実行される。

逃走イベント

1.逃走イベントを作ると何もイベントがなくても「通常の逃走」は発生しなくなる。「通常の逃走」のように元のエリアに戻りたいとき、疑似的に再現したいときはパーティ全員・敏捷度と狡猾性・敵の平均レベルでの能力判定成功で、エリア移動を実行する。
2.逃走イベント中に戦闘終了条件を満たしたときは、連続して勝利/敗北イベントが発火する。たとえば敵全部を演出などで非表示にした場合でも勝利イベントが発生してしまう。

山札とカード配布予約/カード消去

  • 山札は100枚のアクションカードと使用回数分のスキルカードで構成される。100枚の内訳は「攻撃」40枚、「渾身の一撃」15枚、「防御」15枚、「見切り」15枚、「フェイント」10枚、「会心の一撃」5枚。(Lyna氏のツイート
  • アクションカードは引いた時点で補充される。会心の一撃を5枚以上引くことは可能。
  • 「逃走」が有効になっているエネミーは「逃走」カードを5枚追加する。
  • 「混乱」カードは通常山札にはなく、混乱状態と配布モーションのみで配られる。
  • 各カード配布モーションを使っても即座に配布されているわけではなく、一旦配布が予約され、上記1.のタイミングで精神状態や山札より優先して一斉に引かれる。これを仮に手札カードの「配布予約」と呼ぶ。
  • 「配布予約」は無制限に蓄積されていき、そのラウンドで配布しきれない場合は次ラウンド以降に引き継がれるが、「意識不明/麻痺/睡眠」を受けると全て解除される。束縛状態では解除されない。
  • 「技能配布」は全ての技能カードの使用回数が尽きている時でも消費され、山札から引くこととなる。たとえば、レベル10キャスト(1ラウンドに8枚引ける)の配布予約状況が「技能9枚」で、残り使用回数が1回の技能カード1枚しか持っていない時に手札を消去されると、技能1枚、山札から7枚配布され、技能1枚分の配布予約が持ち越しになる。
  • 「精神力喪失」を受けるとその時点で山札にあるスキルカードの使用回数が0になる。つまり、「カード消去」してから「精神力喪失」すると全てのスキルカードの使用回数が0になるが、「精神力喪失」の後に「カード消去」すると手札に配布されていた分が山札に戻り、補充される。
  • キャラクター情報ダイアログの赤玉は山札にある回枚数分のみを表す。Pyでは山札+手札の合計値を表示。
  • カード配布率に適性は関係しない。(上記の通り、選択率には影響する)

戦闘中手札の状況

 1.50のキーコード所持分岐「アイテム」で戦闘中の手札も検索される問題により、手札の内部的な状況をある程度正確に調べることができるようになった。

  • 戦闘開始イベント中には「カード交換」が配布されていない。つまり、手札が配布されていない。
  • 「カード消去」モーションを受けるか、「アイテム入手コンテント」によって手札にアイテムカードが配布された場合、その時点でアイテム以外のすべてのカード(「カード交換」を含む)を失う。ただし「使用前カード」と「使用済みカード」はラウンド終了時(正確には上記フローの6.)まで残る。
  • 「意識不明/束縛/睡眠/麻痺」になった場合、手札を失い「使用前カード」も消滅するが、そのラウンドで既に「使用済みカード」はラウンド終了時(正確には上記フローの6.)まで残る。
  • 「使用前カード」が「使用済みカード」になるタイミングは、行動順が回ってきて実際に使用した時。たとえば「防御」カードなら拡大アニメが表示され、(装備).wavが再生された時。行動前に攻撃を受けても使用済みにはならない。

精神状態のカード配布率への影響

1.20で調整された旨が公式ヘルプに書かれており、実測にも矛盾が見られない。
エディタでは「勇敢」となっている状態は、エンジンとヘルプでは「勇猛」とされ表記揺れが起こっている。

勇敢
勇猛
攻撃系アクションカード(攻撃/渾身の一撃/会心の一撃)と技能カードのみを配布。
逃走は配布されない。1.15以前は技能カードは配布されない。
恐慌 防御系アクションカード(見切り/防御/逃走)のみを配布。逃走は分母が増える。
激昂 渾身の一撃カードのみを配布。逃走は配布されない。
1.20では手札枚数が一枚増える。(バグ?)
混乱 混乱カードを2/3の確率で配布。1/3は通常ドロー(逃走あり)。
1.15以前は100%配布で混乱カードにホールド効果なし。

勇敢状態では100(攻撃/渾身の一撃/会心の一撃)+所有する技能カードの使用回数が山札(分母)となる。
Py5系以前では、配布できる技能カードがない場合、通常状態の山札からドローしているため勇敢状態でも「逃走」が配布される場合があった。


意識不明/麻痺/束縛/睡眠の違い

これらの状態になるとラウンドの行動が中断され、回避できなくなることが知られているが、厳密には微細な違いが多い。

死亡発火 手札予約 有限召喚獣 能力変化 回避 抵抗
意識不明 する リセット 消滅※ 消滅 不能 不能
麻痺/石化 する リセット 保持+停止 維持 不能 不能 毎ラウンド終了時減少判定
睡眠 しない リセット 保持 維持 不能 不能 攻撃を受けると解除
戦闘終了で解除(1.20以降)
束縛 しない 保持 保持 維持 不能 判定 戦闘終了で解除(1.20以降)
回避/抵抗不能時は、判定自体が省略されて必ず命中する。判定が行われないため、回避/抵抗修正を持つ召喚獣も消費されない。(意識不明は有限付帯能力の減少によって計測)

  • 使用ラウンドで麻痺し、行動前に麻痺から回復した場合、使用者は行動しないが、召喚獣は発動する。
  • 「沈黙時使用不可」の召喚獣は沈黙・呪縛・睡眠状態の時発動せず、使用ラウンドで沈黙・呪縛・睡眠状態になっていた場合、発動はするが、効果が中断される。

補足-初期状態で意識不明のエネミーカードの挙動

  • 初期状態に設定された精神状態・沈黙・暴露・魔法無効化・能力変化、有限召喚獣・付帯能力は一度体力が回復し、再度意識不明にならないと消滅しない。
  • 束縛状態のみ、即時解除される。
  • 意識不明者が所持している召喚獣に対しては、召喚獣消去モーションの適用は行われない
 CWXEditor製か、バイナリ改造シナリオのみ。
従来のエディタではキャストの初期状態を設定することは出来ないので想定外の挙動をしていると思われる。


対象消去/非表示/リバース状態の違い

これらの状態になると不在扱いになり、効果目標に取れなくなる。
そのラウンドで既に目標になっていた場合は、発動のみ行い、ターゲット反転処理は行われない。

死亡発火 行動 選択 備考
対象消去 する 中断 不可※
非表示 しない 中断 不可 フラグがFALSEの状態。
この状態になるのはエネミーカードのみ。
リバース(1.28以降) しない 維持 隠蔽称号「:R」が付与されたキャスト。剥奪で解除される。
エネミーカードや同行キャストにも有効。

  • 戦闘時限称号「;」はリバース状態でも剥奪される。
  • 同行キャストに対する対象消去は各エンジンで仕様が混乱している。

カードの効果/キーコード発火イベントの処理フロー

3.~6.が1セット。カードが全体を対象とする場合は内部番号順に一枚ずつ3.~4.を繰り返す。
「双方全体」の場合、使用者から見た自陣営が先となる。
ただし途中で効果中断コンテントが入った場合はその時点で終了。

0.キャストの行動可能判定
戦闘中の場合、召喚獣→キャスト(使用カード)の順に行動。
行動不能(意識不明/麻痺/束縛/睡眠)となっているか、キャストの行動前に一度でも行動不能になった場合、そのキャストのラウンド行動は取り消される。ただし召喚獣は所有者が束縛/睡眠であれば発動判定を行う。
1.カードの発動判定
一時効果音を鳴らし、出現カードアニメが行われた後。発動できない場合、使用時イベントは行われない。
キャスト自身のレベルより、高レベルの技能カードを使用しようとした場合、能力判定を行い失敗したら発動中止。
「魔法無効化状態」になっている場合、魔法属性・物理的魔法属性のカードなら発動中止。
「沈黙時使用不可」の召喚獣の場合、所有者が沈黙状態もしくは行動不能(束縛/睡眠)なら発動中止。
2.カードの使用時イベント
カードの発動判定に成功後、カードの本効果の前に発火。
Py以外では、カードの使用時イベントの効果コンテントでキーコード/死亡イベントは発火しない。
NEXTでは仕様の上書きがあるため注意が必要。
勘違いされやすいが、使用時イベントの効果コンテントはカード効果のキーコードイベントと無関係なので、シナリオ外に持ち出せるスキルやアイテムで、特に使用時イベントで敵にダメージや麻痺を与える効果を持たせるのは、効果コンテント自体にキーコードを付けられるPy2以降を除いて推奨されない(キーコードで効果中断イベントを組んでいる戦闘を破綻させてしまうため)。
3.味方のみ、フィールド/バトル直下のキーコードイベント(バトルイベント)が発火
使用時イベントを終えたら、カードの本効果を開始。
「対象無し」の場合、このイベントしか発火しない。(飛行など)
このフェーズは味方専用であり、敵・NPCの使用カードはバトル直下のキーコードイベントを発火できない。
4.メニューカード/効果目標のキーコードイベントが発火
目標に効果を適用する直前に発火する。非表示/リバース状態では発火しない。
こちらは敵・NPCの使用カードに属するキーコードでも発火する。
5.効果適用後、意識不明/麻痺/対象消去なら死亡イベントが発火
既に上記状態になっている時、逃走キーコードが付いている時、非表示/リバース状態では発火しない。
6.キーコード成否イベント(○×)が発火
カードの効果が対象に「命中したかどうか」を判定して発火する。対カード属性で無効時は×扱い。
つまり、通常のキーコードイベントと異なり、実際の効果適用後となるが、戦闘終了判定より前に実行される。
単に「○」「×」とした場合、空白(キーコード5枠のうち、何も入力されていない枠が一つでもあるカード)の成否イベントが発火する。
死亡イベントが存在し、発火した時や、非表示/リバース状態では発火しない。
7.戦闘終了判定
カードの効果目標全てに効果を適用後、戦闘終了判定。条件を満たす場合はここで終了。
双方全体攻撃などで勝利条件と敗北条件をどちらも満たす場合は、敗北イベントが発火する。

死亡イベント

  • 麻痺・意識不明になった時、または対象消去された時に発火する。
  • ただし効果コンテントや特殊キーコード「逃走」が付いたカード効果でその状態になった場合は発火しない。
  • 1.20ではエネミー側の召喚獣により死亡した場合は発火しない。
  • キーコード成否(○×)イベントより優先される。すなわち、麻痺状態になった時、死亡イベントがあれば死亡イベントが起こり、「麻痺○」が実行されることはないが、死亡イベントがなければ「麻痺○」が実行される。
  • NEXTのデフォルト設定では使用時イベント内の効果コンテントでは死亡イベントが発火するようになっている。しかし、これは不十分な対応であり、結果としてあまり意味がない。用途として想定されていたダメージモーションつき効果コンテントで連続攻撃スキルは、「(攻撃)キーコード付きのカードを効果中断コンテントで防ぐ」類のバトルギミック全般に不具合を生じさせてしまうため、「攻撃キーコードなしの攻撃スキルカード」とあまり変わらないカードとなる。

特殊キーコード

通常のキーコードと異なり、システムに組みこまれているキーコード。
「カード名のキーコード化」では効果を発揮しない。

逃走 このキーコードが設定されたカードによるダメージ・吸収・麻痺・対象消去モーションでは死亡イベントが発火しなくなる。意図せずバグの元になるので注意。
ペナルティ 設定されたスキル/アイテムカードが自動選択された時、再選択できなくなる。召喚獣カードでは無意味。
リサイクル(1.28以降) 設定されたアイテム/召喚獣カードの残り回数が0になっても消滅しなくなる。また、回数表示が黄色になる。スキルカードでは効果なし。


効果コンテントの処理順

 カードの効果と効果コンテントは一見似ているが、
 内部的にはそれぞれ独立した処理として実装されているようであり、演出も一部異なっている。

  • 効果コンテントの処理順は一次効果音→震動モーション→命中判定。
  • 回避・抵抗成功時には(無効).wavが再生される。(カード効果では回避成功時は(回避).wavで視覚効果がない)
  • 命中時には効果音を再生しない。(二次効果音を持たない。)

 Py系エンジンでは、回避成功時には(回避).wavが再生されるようになっている。

現在選択中のメンバ (選択メンバ)

 キャラクターがカードを使用したり、「誰か一人」で称号所持分岐などを行うと「現在選択中のメンバ」になる。
この「誰か一人」で「条件に成功した者」を探す挙動は一定しているのだが、「条件に失敗した者」「パーティ全員」などの挙動はコンテントごとに異なり、複雑怪奇となっている。

結果は、以下の5パターン観測できる。
  • イベントの実行者を自動で選択メンバにする。
  • 適用範囲の中から1番目に条件に成功/失敗した者を新たに選択メンバにする。
  • 現在の選択メンバを維持する。
    • 現在の選択メンバを維持するが、選択メンバが存在しない場合はパーティ全体からランダムで選出する。
    • 一切変化しない。解除状態であれば解除されたまま。
  • 選択メンバを解除する。メッセージで#mを使った場合に空白になる状態。

留意点
  • 「選択メンバを維持する」場合、選択中での成功判定時など「選択メンバが存在しないパターン」が観測できないケースでは、選択メンバが「一切変化しない」のか、「選択メンバが存在しない場合はパーティ全体からランダムで選出している」のか見分けが付かない。





雑多なマイナー情報

  • 未指定または存在しないエリアIDへのエリア移動コンテントは「終了印を付けずに終了」と同効果。
  • 1.50以降の評価メンバは沈黙・行動不能のPCが候補から除外される。

対象消去・ゲームオーバー・永眠

  • 対象消去されたPCがプレミアカードを持っていた場合は荷物袋に移動される。それ以外は消滅する。
  • パーティが全滅して「続ける」場合は持っていたカードはプレミアカードを含めて消滅する。このためプレミアカードを破棄する正規の手段として利用できる。
  • 戦闘中、ゲームオーバーコンテントを使うと直ちにゲームオーバーするのではなく敗北イベントが発火する。(1.20以降)
  • 戦闘中、対象消去による敗北イベントで帰還した場合は、荷物袋だけで無人帰還できる。(バグ)
  • 宿で老人PCを成長させた場合、永眠する。(老人のまま死亡)
  • これらによって死亡したPCには「_死亡」が配布され、アルバムに送られる。ただし「_消滅予約」を持ったPCはそのまま消滅する。アルバムのPCは親に指定した際のEP消費量が半分になる。
  • シナリオ中で死亡したPCには番号クーポンが残留する。


特殊なクーポンの意味と用途

クーポンの得点は通常経験点として解釈されるが、先端に「@」が付いているクーポンは所謂システムクーポン、「:」「;」は時限消滅クーポンとして解釈され、経験点には加算されない。システムクーポンは称号操作系コンテントで付与・剥奪できないという特性を持つ。

種類 得点 効果
通常 経験点 以下の文字(全角)が先頭に付いていないものは全て通常のクーポン(称号)扱いとなる。1.28以降、得点によりアイコンが変化し、-1以下は黒(汚名)、0は銅、+1は銀、+2以降は全て金となる。
「_」+文字列 経験点 隠蔽クーポン。経歴欄に表示されないだけで基本的には通常のクーポンと同じ。
「:」+文字列 残り時間 時限消滅クーポン。点数がない場合、シナリオ終了時に消滅。点数がある場合、バトルでのラウンド経過、時間経過コンテント、エリア移動で得点が減っていき、0になると消滅する。
「;」+文字列 残り時間 戦闘時限消滅クーポン。「:」と同様の効果があるが、こちらは戦闘終了で消滅する。
「@」+文字列 特殊 システムクーポン。シナリオでの付与剥奪が禁止されている。判定分岐は可能なので、たとえば@レベル原点の所持分岐でPCを判定したりだとか活用法がないわけではない。称号編集ダイアログにも載らないが、入力・上書きすることはできる(追加した瞬間消えてしまうが、内部的には保存されている)。

システムで使われている特殊クーポン
_死亡 1.00? 全滅・対象消去された・成長機能により老死したアルバム内のPCに配布されている隠蔽クーポン。データ上としては下記2種の死に様より前に配布。1.20まではアルバムで死亡者の判定に使われており、_死亡を持たなければ引退者扱いで「復帰」コマンドが有効になる。1.28以降アルバム内の冒険者は全て死亡者扱いとなったため、現在使われているかは不明。
旅の中、帰らぬ人となる… 1.00? 全滅または対象消去されたアルバム内のPCに配布される。
安らかに永眠す… 1.00? 成長機能によって老死したアルバム内のPCに配布される。
_1~_6 1.00? シナリオ開始時に配布される並び順クーポン。全滅や対象消去時にそのまま残留するバグがある。妖魔バリアントでは_1が_妖に置き換わっているが、この場合_1は配布・回収されず、通常クーポン扱いとなる。
@レベル上限 1.14~ 最大レベル。通常は10。宿登録の場合、英雄型と凡庸型は12、神仙型は15が設定される。1.28以降は付属エディタでもキャストに特殊型が指定できるが、これは名前だけでレベル上限は変更されない。初期称号に@レベル上限を直接入力して操作することは可能。直接入力していないキャストの連れ込み直後は「@レベル上限」を持っていないが、シナリオから帰還した時等に自動で追加される。その時、現在レベルが11以上の場合はその値と同値になる。1.14以前は無制限にレベルが上がる仕様。
@デバグ 1.15~ デバグ宿で、簡易方式で作成したPCにデフォルトで配布されている。能力型(バランス,ファイター...)の変更可否判定のみに使われている模様?
@Gxxxxxxxxxx 1.28~ 1.28以降の遺伝子クーポン。PC登録時の親に指定した場合に、子の遺伝子と特殊型の発生判定に使われる。EPシステムの導入に伴い-0が削除されている。
@EP 1.28~ 1.28で導入されたEP(ExtraPoint)システムの現在ポイント。EPはキャラクター登録で親に指定することで消費される。1.20以前は無制限に任意のPCを親とする子PCを作る事ができたが、これにより作れる子PCは有限となった。加入時のレベルから数えて1レベルアップごとに得点が+10されていく。元々レベル2以上のPCや連れ込みキャストも0からスタート。
@レベル原点 1.28~ 「実際の現在レベル」。レベル調整機能で参照される。EPシステムの基準点にもなっており、現在レベルより低い得点で上書きするとその差分だけEPが増える。
@本来の上限 1.28~ 同行キャストを連れ込んだ場合に自動で追加される。得点は通常一律で10。ただし現在レベルが11以上の場合はその値と同値になる。レベル調節やシナリオを経由すると@レベル上限が配布され、システム処理にはそちらが使われるのでこの値はほぼ意味を持たない。宿で登録したPCは持たないので、連れ込み産PCかを判定するのには有用。
:レベル補正中 1.28~ @レベル原点と異なるレベルになっているPCに対して、シナリオ開始時に付与される。通常の時限クーポンのため、シナリオ側やユーティリティモードで付与剥奪可能。
_消滅予約 1.28~ 称号を所持するPCが対象消去・全滅した場合にアルバムに載らなくなる特殊な隠蔽クーポン。1.28以降の「アルバム」は「引退/殉職冒険者の記録と確認(30人制限)」から「死亡した冒険者の確認」に位置づけが変更されているため、消去PCを死者と扱いたくない場合の例外処理用と思われる。
:R 1.28~ このクーポンを付与されたキャストは、ただちに「リバース状態」となる。愛護協会の1.28アップデート情報にはPCとあるが、同行キャスト・エネミーカードの初期称号や選択メンバにして付与しても同様の効果がある。
@MP3 1.29~ Lyna氏制作のCardWirth Extender[2012/03/15]で導入された仮想システムクーポン。「MP3を正常にループ再生可能なエンジン」の判定用クーポンとして所持判定に使う事が想定されていた。1.29~1.30にCardWirth Extenderが同梱され、1.50/NEXT/Pyでも仕様として継承されているため、現在では1.29以上の判定とほぼ同義となっている。
この称号を用いた称号所持分岐は無条件で成功するため、例外的に選択メンバに影響を与えない。

廃止されたクーポン
@Gxxxxxxxxxx-0 1.20以前 旧遺伝子クーポン。現在は使われていない。1.20の宿を1.28以降にコンバートした場合には新しい書式に変換・削除されることはなく、そのまま残留する。よって網羅的に判定すれば1.20以前で生まれたPCは判別可能。また、型の遺伝情報しか持たない新しい遺伝クーポンが重複して付与される。(連れ込みキャストと同等の処理)
@成長条件 1.20以前 1.20で標準方式で作成したPCに配布されている。用途は不明。1.28以降にコンバートした場合は削除される。
_古老 1.20以前 内部的に存在する年代だが指定できない没データ。全能力-2。クーポンを持たせてもキャラクター情報ダイアログには表示できず年齢不詳となる。


同行キャストを連れ込んだ時のPC化処理・クーポン配布順


「_(キャストの名前)」得点:現在レベルに到達できる最低点数 (自動計算)
初期称号の得点は考慮されないため、汚名が付いていると現在レベルより合計得点が低くなる。
性別・年代が欠けている場合、情報補填ダイアログを出して指定されたものを配布。
初期のCWエディタには設定項目がない。または1.28以降で不明・不詳が入力されている場合。ここで決め直す。
「@本来の上限」得点:10(レベル11以上の場合、現在レベル) 
「@レベル原点」得点:現在レベル 
「@EP」得点:0
「@Gxxxxxxxxxx」(遺伝クーポン)得点:0 
 x部分は対応する型のみが1になり、それ以外は0。
 型情報を持たない場合は@G0000000000(神仙型の遺伝情報と同じ)となる。

  • キャストを連れ込んだ直後は、(初期称号として入力していない場合、)「@レベル上限」を持たない。レベル調節やシナリオを一度経由した後に自動で付与される。得点は基本10だが、レベル11以上だった場合には同じ値が入る。
  • キャストを連れ込んだ直後は、キャストに設定されていた初期体力が生命点となる。レベル調節やレベルアップが起こるとPCと同じ計算式で再計算される。

キャラクターメイキング・成長システム

  • 宿でキャラクターを作成・成長させた場合の能力値は、能力型や特徴の組み合わせ・変化で身体的特徴1~12、精神的特徴-4~4を超えたとしても、その範囲に丸められる。
  • 身体的特徴値が初めから1~12ではない場合、その能力値は成長では変化しなくなる。0または13~15に設定できるのは連れ込みキャストのみ。ただし、これはエディタ側の制限にすぎず、バイナリ上の限界値は符号付き整数(-21億~21億)。
  • 精神的特徴は0.5刻みだが、浮動小数点数で管理されているわけではなく、こちらも符号付き整数。実際には1刻みで上下させ、最後に/2小数切捨しているものと思われる。このため成長で精神的特徴は変動しない。
  • 称号操作シナリオで年代クーポンを操作し成長を繰り返すと器用度・敏捷度以外の身体的能力は12まで引き上げることが可能だが、器用度・敏捷度は下がる一方なので1になる。
  • つまり、元の能力値がどんなに低くとも「器用度・敏捷度1、それ以外が12のPC」が作れてしまう。また、器用度・敏捷度が13超えの連れ込みキャストは成長でメリットだけを享受できるパターンがある。

成長 器用 敏捷 知力 筋力 生命 精神
子供→若者 -1 -1 +1 +1
若者→大人 -1
大人→老人 -1 -1 +1 -1 +1

CardWirthの背景変更/継承の仕組み

 CardWirthにおいて、「背景継承」で追加したセルは、隠れて見えない物も含めて内部的にすべて蓄積している。
このため、ミニゲーム系のシナリオで発生しやすいが、「背景継承」で画面にセルを置く処理を繰り返していくと処理が極端に重くなっていく。「背景削除」のない1.50以下では定期的に「背景非継承」でリセットしなければならない。

 CWEditorとWirthBuilderのUIではデフォルトで必ずMapOfWirth.bmpが指定されており、背景継承は明示的に指定しなければ行われない。しかし、CWXEditorでは1番目の背景も通常セル扱いするため、仕様を理解していないと不具合の元となる。

リセット条件
「位置0,0、フルサイズ(632x420)のイメージセル」が1番目に置かれた、背景変更コンテント or エリア移動。

  • フラグは指定されていても無視される。CWXEditorの仕様上の問題で従来のエディタでは背景(1番目のフルサイズセル)にフラグを指定できない。
  • 「フルサイズのカラーセル」では背景継承が行われるので、カラーセルがない時代に伝統的に行われてきたblack.bmpかwhite.bmpをフルサイズ表示する手法にも意味が残っている。


スプライト表示順

 宿待機パーティをロードした場合と「冒険の再開」でパーティをロードした場合で表示順が異なる。
 これはパーティオートロードが1.28時代からオプション化されていたためと思われる。

宿ロード
メニューカード表示→ステータスパネル更新→パーティ表示→画面拡大ボタン表示(1.50以降)

冒険の再開
パーティ表示→メニューカード表示→ステータスパネル更新

冒険の中断
メニューカード非表示→パーティ非表示→ステータスパネル更新



デバグ宿とユーティリティモードの振る舞い

「デバグ宿」はCardWirth 1.20で導入されたシステム。
それ以前はシナリオの作者名が無記名だとデバグモードになる仕様。
「ユーティリティーモード」はデバグ宿の一部機能をゲーム専用宿で使える修復・拡張モード。

共通
  • 画面右下に鉛筆アイコンの「[デバグ]ボタン」を表示
  • 状態変数インスペクタを表示(所持金・手札・称号・ゴシップの修正が可能)
  • キャンプ中、ゴミ箱が表示される
  • プレミアカードを捨てることができる

デバグ宿
  • 「引退の概念の省略」(1.28で引退システムごと廃止)
  • アルバムと宿帳の「拡張」が使用不可(成長システムが使用不可)
  • 簡易作成したキャラクターの「能力タイプ」の変更
  • 経験点に関係なく、キャラクターのレベルを1~15に調節可能※
  • キャラクター情報にシステムクーポン以外の隠蔽クーポンが表示される
  • ゲームオーバーにおいて「続ける」を選んでもパーティが削除されずに宿に帰還している
  • シナリオの開始エリアを常に指定できる(指定しなければならない)
  • 戦闘中、エネミーが暴露状態でなくても手札とライフゲージを可視できる
  • 隠蔽シナリオや条件付きシナリオに無制限で入れる
  • プレミアカードの売却が可能(1.28以降)
※通常宿と異なり、「レベル15を超える連れ込みPC」は想定されておらず、レベル調節での表示は15/15となる。またレベルmax判定には通常通り「@レベル上限」が使用されるため、10~14でもmax表示となる。


ユーティリティモード
  • 「貼り紙を見る」が使用不可
  • シナリオ中は状態が全回復し、キャンプモードから移動できない
  • パーティを開いていない宿のメニューカードに「アップデート」を追加
    • クリックするとカード更新ダイアログが開く。1.28で廃止・状態変数インスペクタに統合された
  • 状態変数インスペクタでは、一部のみが利用できる
    • 許可:称号・状態・同行NPC・カードの配布・ゴシップ編集・終了印編集・エリア移動
    • 禁止:情報(冒険者編集)・バトル・パッケージの実行




キーボードショートカット





用語など

 CardWirthで用いられている用語の一部にはあまり一般的ではなかったり、ユーザー間でも全く使用されていないものがある。気をつけていないとオリジナルにはない言葉を混入させてしまうので、これはというものをメモしておく。

  • 「メッセージボード」
メッセージの青い部分。設定に記載がある。「メッセージウインドウ」ではない。

  • 「キャラクターカード」「キャストカード」
物語の登場人物を表すカードです。プレイヤーが操る冒険者や、行く手に立ちはだかる敵、パーティに同行するNPCが、キャラクターカードとしてゲームに登場します。
つまり、キャラクターカードとは、「プレイヤーカード」「エネミーカード」「同行NPCカード」の三種を指す。

キャストカードも「キャラクターカード」とほぼ同義のはずだが、ゲーム用ヘルプでは記載がない。
シナリオエディタ側の用語として捉えるべき?

  • 「プレイヤーカード」「エネミーカード」「同行NPC/同行者」
キャラクターカードのうち、プレイヤー/敵/同行NPCに属するもの。同行NPCに関する表記は少なめで曖昧。

  • 「効果系カード」「手札カード」
ともにスキルカード・アイテムカード・召喚獣カードを総称して指す。
前者はバージョンアップ解説、後者はヘルプ内で使われている。

  • レアリティ「ノーマルカード」
レア/プレミアに対する普通の効果系カードの呼称。

  • 「生命力」「体力」
HPのこと。適性要素に同名のパラメータがあるが、ヘルプでは構わずHPを指して「残り生命力」「最大生命力」と解説されている。


数値隠蔽の意義


エンジンヘルプ
徹底した数値の隠蔽
CardWirth では徹底して数値の隠蔽を行っています。
数値の複雑な組み合わせで構成されるキャラクターの個性も、プレイヤーは見る事ができません。
CardWirth は数値で楽しむシミュレーションゲームではありません。
冒険の雰囲気を楽しむロールプレイングゲームなのです。
エディタヘルプ
Q. プレーヤーキャラの能力値を参照したいのですが
出来ません
正規の使用範囲内では、プレイヤーキャラクタの能力値を具体的な数値で参照することはできません。
これはCWが数値の隠蔽を行う事によって、より物語を楽しめるようにしたいというコンセプトの元に作られている為です。




NEXTでは、デフォルト設定では使用時イベントの効果コンテントで死亡イベントが随時発火するようになっているため、NEXT仕様を前提とするシナリオ/カードと、NEXT仕様では進行停止を含む不具合が起こるシナリオが両方存在してしまっている。エンジン側のオプションをシナリオ側から判定することは(実際に動作を見ないと)できないので、このギミックを使用する作者がNEXTを想定する場合、貼り紙などで明示する必要がある。

タグ:

CardWirth
+ タグ編集
  • タグ:
  • CardWirth

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2023年11月28日 12:46