WSN追加案: 任意の効果属性を定義する

Issue #523 new
k4nagatsuki repo owner created an issue

現在、効果属性には「全」を例外とすると6つがあり、それぞれキャストの対効果属性に応じて「有効」「無効」「弱点」として機能します。このうち、「炎」と「冷気」以外は「弱点」定義を持ちません。

このような属性の種類を増やす事は、CWの新仕様として多くの人に希望されてきたはずですが、実際の追加は困難でした。問題は主に2つあります。

1. 追加されるべき属性の選定基準が無く、際限も無い

たとえば「雷」属性を追加したいと思う人がいれば「水」属性がほしいと思う人もいますし、じゃあ「光」属性は、「風」属性は、「地面」属性は……と、キリがありません。

2. 新属性は既存のシナリオに対応できない

たとえば「雷」属性のダメージ効果を持つカードを作ったとします。「雷による攻撃」キーコードをつければ、「この敵は特に雷に弱い」という表現をしたい既存のシナリオは、キーコードイベントによって対応してくれているはずです。

では、その逆はどうでしょうか。

新しい「雷」属性を使って「雷に弱い」キャストを作ったとします。そのキャストをバトルに配置し、「雷」属性ができる前のカードを使っても、特に変わった事は起きません。

なぜならそのカードは「雷」属性のダメージ効果を持たないからです。持っているのはせいぜいキーコードであって、結局特別なイベントで対応する以外に方法はありません。これでは新属性のメリットは半減してしまいます。


この2つの問題を解決するアイデアがあります。

属性を文字列で任意に定義できるようにし、それをキーコードと関連させる、という手段を取る事を考えます。以降、これを「任意属性」と呼びます。

効果属性としての任意属性は、

  1. 1つまたは複数件のキーワード
  2. 「全」属性同様に、特に定義のない相手に対しても効果があるか

の2つの定義を持つ事ができます。

キャストの対効果属性としての任意属性は、

  1. 1つまたは複数件のキーワード
  2. その属性は有効か、無効か、弱点か

の定義を持つ事ができます。


たとえば「雷」を定義する新しい属性を作る事を考えます。

まず、効果カードを作ります。「雷による攻撃」を表現するために、ダメージ効果で「任意属性」を選び、属性に「雷による攻撃」や「電気」といったキーワードを設定します。効果対象が雷に対して特に何の定義も持っていない時にも効果はあるはずなので、その時は「全」と同様に動くように設定します。

次に、雷を弱点とするキャストを作ります。そのキャストの対効果属性の定義に「任意属性」を1件追加し、「雷による攻撃」や「電気」といったキーワードを設定します。また、その属性を「弱点」として設定します。

エンジンで実行すると次のように動きます。

  1. 雷効果をキャストに適用する時、雷効果が持つキーワード「雷による攻撃」などに該当する任意属性を、対象キャストが持っているか検索します。
  2. 見つかった場合、有効・無効・弱点の設定に応じて効果量の計算に反映させます。今回は「弱点」なので、ダメージを増加させます。

これで、シナリオ作者は好きなだけ新しい属性を定義できるようになります。


次に、既存のカードに対してこの機能を拡張する事を考えます。既存のカードは、新しい属性の効果を持っていません。しかし「雷による攻撃」のようなキーコードは持っているはずです。そこで、以下のようにします。

  1. 古いタイプのカードを使用して「全」属性の効果を適用する時、「雷による攻撃」などに該当するキーコードをカードが持っていたら、そのキーコードと同じキーワードを持つ任意属性を対象キャストが持っているか検索します。
  2. 見つかった場合、有効・無効・弱点の設定に応じて効果量の計算に反映させます。

これで既存の雷攻撃カードにも対応できます。


この提案の問題点はいくつかあります。

  1. 設定が煩雑。
  2. 仕様衝突の可能性を度外視している。
  3. うまくシナリオ作者同士で協調して整理する事ができないと、キーコード並かそれ以上にカオス化する事が考えられる。

1.はエディタのインタフェースの工夫でなんとかなるかもしれませんが、2.の解決は困難ですし、3.に至っては、おそらく仕様としてはカバーできません。新属性辞典などを予め整備しておくくらいしか対策が思いつきません。

これは時間をかけて検討するべき課題です。慌てて実現しようとするべきではありませんし、必ず実現しようとするべきでもありません。

Comments (1)

  1. tachi gigas

    お疲れ様です。

    既存のバリアントでやると影響が非常に大きいでしょうね。 今から新規に作るバリアントのために属性を新しく追加できる、 とかの方がまだ現実的だと思います。 ただ、それを実装するのは中々現実的ではないと思います。

    ※個人の感想です

  2. Log in to comment