ADR-0030 効果を状態変数への作用の列として定義する
| 状態 | accepted |
| 決定日 | 2026-08-28 |
| 区分 | ゲームデザイン |
背景
ADR-0009 は「効果は PageEffect という単一のスロットに収まり、深さだけが2段階ある」と決めた。この決定は実装の入れ物についてのものであり、入れ物の中身をどう表現するかは決めていなかった。
その中身は、名前付き効果の一覧として育った。打撃・連撃・遠射・追撃・剥離・削剥・加護・継承・手繰り・選別・布石・繰越・回帰・加筆・裁断・停留・改銘・翻し・前借り・烙印・残響・増歩・貯歩・加速・拡張 — 25個である。
この一覧には2つの問題があった。
1. 同じ作用が、持続違い・参照元違いで別名になっていた。
| 別名になっていた組 | 実体 | 違い |
|---|---|---|
| 加護 / 残響 | 防御を加算する | このターン / ラン永続 |
| 繰越 / 貯歩 | 歩の持ち越し上限を設定する | このターン / ラン永続 |
| 手繰り / 加速 | ドロー枚数を加算する | 即時 / 毎ターン恒久 |
| 打撃 / 遠射 / 追撃 | 敵HPを減らす | 基準値が定数 / 移動量比例 / 跨ぎ回数比例 |
25個の語彙は、たかだか十数個の作用を別名にしたものだった。
2. 一覧に無い振る舞いが作れなかった。 バリエーションの上限が名前の数に縛られ、名前を増やすたびに重複が増える。このゲームは「ルールを薄く保ち、面白さをページの効果で作る」方針である以上、ここが詰まると設計の主戦場が詰まる。
加えて、既存の仕様はすでにベクトルを扱っていながら、それを別々の変数のように書いていた。綻びは「累積値」と「そのステージ中の上昇量」を別の役割として記述し、跨ぎ回数は「このプレイで跨いだか」と「このターンに既に跨いだ回数」を別の効果の参照元として記述していた。どちらも同じ量のスコープ違いである。
決定
効果を「状態変数への作用の列」として定義する。
- 変数は3つの型を持つ — 現在値・累計量・恒久パラメータ(+名前付きの内部フラグ)
- 累計量は
量[スコープ]のベクトルであり、作用の対象にならない。 現在値を動かせば自動的に積まれる - 面は作用の順序付きの列を持つ。 攻撃回数という変数は存在せず、列の長さがそれを表す
- 作用は6項を持つ — 対象変数・演算・基準値・値の寿命・発動タイミング・繰り返し範囲
- 値の寿命と繰り返し範囲は別物である
- 条件は作用ではなく面に紐づくプレイ条件である。 閾値は「出せるか」だけが持ち、作用の値は参照式として線形に伸びる
- 計算式は
( 基準値 + Σ加算補正 ) × Π乗算補正。 乗算どうしは掛け合わせ、補正は発動の瞬間に評価する - 名前は組み合わせの通称であって、効果の単位ではない
仕様は 効果システム が持つ。
却下した案
| 案 | 却下理由 |
|---|---|
| 名前付き効果の一覧を維持し、必要になるたび足す | 名前の数だけが増え、同じ作用が別名で重複し続ける。25個のうち少なくとも4組が持続違い・参照元違いの同一作用だった |
| 効果ごとに専用スクリプトを書く | ADR-0009 が既に却下している。バランス調整が全てコード作業になる |
| 面が「打点の列」と「作用の列」を別々に持つ | 効果の発動回数を増やしたとき、2つの列の繰り返し回数が噛み合わない。打点も作用の一種として1本の列にまとめれば、繰り返しは列を繰り返すだけで済む |
| 条件を作用ごとに持たせる | 「押してみるまで結果が分からないページ」が生まれる。面に紐づくプレイ条件にすれば、プレイヤーは押す前に結果を暗算できる |
| 補正を評価する時点を、作用を場に置いた瞬間に固定する | 予測はしやすくなるが、継続作用が伸びなくなる。数字が伸びていくことを見せる設計を優先し、代わりに継続作用の基準値を低く置く |
影響
- ADR-0009 は置き換えられていない。 あの決定は「効果が1つのスロットに収まり、ルールを曲げる効果だけがサブクラスになる」という入れ物の話であり、本 ADR はその中身の表現を定めたものである。ただし内部フラグと作用の組み合わせで書ける範囲が広がったため、サブクラスを書く場面は減る
- 攻撃倍率(累積綻び由来)と綻び倍率(ページ固有)が、特別な機構でなくなった。 どちらも「その対象変数への乗算補正」であり、出どころが違うだけである
- 補正・破却効果・遅延ダメージが「継続作用」1つに統合された。 場に乗り、タイミングごとに発動し、繰り返し範囲で消えるという同じ振る舞いを持つ
- 防御が多重集合になった。 値ごとに消滅契機(被弾1回/ターン/ステージ/ラン)を持ち、寿命の短いものから消費される
- セーブ対象が増えた。 場に乗っている継続作用の一覧を保存する必要がある(データの契約)
- 参照カウンタの一覧が、そのままプレイヤーの「性格」の一覧になる。 どのカウンタを参照するページが出現するかの偏りが、そのランの戦い方を決める。プロトタイプで参照を絞っても、定義しておいた組み合わせが将来の在庫になる
page-catalog.mdから効果語彙の表が消えた。 ページの設計指針(銘の分布・綻び倍率と喪失の痛みの一致)は残り、効果の表現方法は 効果システム が持つ