耐性と弱点の仕組みを作る

Modを作ろう

Modを色々いれた環境でも動作する耐性と弱点の仕組みを作ってみます。

YASHの耐性と弱点の仕組みを読み解くうちに、どう作ればいいのかが見えてきました。複雑で大変なので、作り方についてまとめておきます。

Perkを作って持たせるには

実装はPerkにします。YASHがそうしているように、あらかじめすべてのActorに持たせておきます。

なぜPerkなのかといいますと、Perkは高速に動作するからです。そのかわりにゲーム内での付け外しができません。プレイヤーは例外で動的に付け外しができます。おそらく、最適化処理に絡んだ制限事項なのだと思われます。

そして、Perkは割合でダメージを増減させることができます。半分にするといったら半分になります。また、複数の条件が重なると、最終的にすべての効果が合わさった結果となります。例えばダメージが半分になるPerkが2つ重なると、ダメージは1/4になるわけです。ダメージを0にすることもできます。

一方、スペル(アビリティ)はゲーム内で動的に配布ができます。そのかわりに割合でダメージを操作できないので、防御力を上昇させてダメージを減らすなどの方法を使います。これだと防御力を無視してダメージを与えるという攻撃に無力なので、ダメージを減らしたいのに減らせないということも起こります。

これは想像ですが、Perkは動作が軽く、スペルは重いです。ですので、可能な限りはPerkで実装したほうがいいと思います。

問題は、PerkをどのようにすべてのActorに持たせておくかですが、いまはKnow Your Enemy - Trait-based resistances and weaknessesというとても優れたModが公開されています。このModはzEditで全Actorレコードにパッチを当ててPerkを持たせています。この仕組みを使わない手はありません。KYEのArmor Perkに手を加えれば、当然のことながら、全Actorが持っているArmor Perkが改変されます。自分が追加したい効果を付け加えていけば、自分が望む環境を構築できます。

KYEのパッチを作る

SSEEditでknow_your_enemy.espだけを読み込みます。Perkからkye_perk_armors2を右クリックしてcopy as override intoを選びます。ESPFE形式でパッチを新規作成します。名前を仮にMyPatch – KYE.espとします。

このため、know_your_enemy.espはESPにしておきます。ESLフラグを立ててしまうと、パッチを作れません。

CKでMyPatch – KYE.espを読み込みます。CKはCK Fixが必要です。あとはPerkのkye_perk_armors2を開いてPerk Entryを追加します。もちろんSSEEditで作業してもいいのですが、Conditionの設定はCKの方がやりやすいです。

ちなみに、Perkの中身をかえるのはゲームの途中でも大丈夫です。zEditのパッチ作成はPerkをActorに持たせるための作業ですので、すでに持たせてあるPerkをかえるだけならzEditによるパッチの再作成は不要です。

Mod環境に対応したPerkの条件を作る

まず、YASHのArmor ProtectionのPerkを見てみます。

さきに言っておきますが、YASHがダメなのではありません。YASHはそもそもバニラを前提としているので、Modで改変された環境は想定外というだけなのです。

条件はこうなっています。

  • グローバル変数 YASH2_EnableArmorProtection が1である。(MCMで設定がオンになっている)
  • キーワードArmorLightを持っていない。(軽装をひとつも装備していない)
  • キーワードArmorCuirassを持っている。(胴防具を装備している)
  • キーワードArmorBootsを持っている。(足防具を装備している)
  • キーワードArmorHelmetを持っている。(頭防具を装備している)
  • キーワードArmorGauntletsを持っている。(手防具を装備している)

以上をまとめると「全身が重装防具一式なら、受けるダメージが50%になる」となります。いわゆるセットボーナスです。

TAWOBAはパーツがたくさんあって、首、肩、腰、腿などにも防具があります。これらの軽装パーツをひとつでも着けていると、「キーワードArmorLightを持っていない」の条件に合わなくなってしまいます。守りが堅くなるはずなのにかえってもろくなるなんて、ロールプレイ的におかしいですね。

そこで、これにかわる条件を考えました。

条件はこれだけです。

  • キーワードArmorHeavyを持つ防具を1つ以上装備している。

つまり、「重装防具をひとつでも装備していたら、受けるダメージが90%になる」というものです。これなら軽装防具があってもなくても関係ありません。

同じようなPerk Entryをさらに用意します。

  • キーワードArmorHeavyを持つ防具を2つ以上装備している。
  • キーワードArmorHeavyを持つ防具を3つ以上装備している。
  • キーワードArmorHeavyを持つ防具を4つ以上装備している。
  • キーワードArmorHeavyを持つ防具を5つ以上装備している。

装備している重装防具の数が多ければ多いほど、これらのPerkがどんどん重なって効果を発揮するので、受けるダメージが減っていくのです。セットボーナスがいいのであれば、防具が3つ以下のPerkは無くせばいいです。

これだけだとTAWOBAのパーツが多い防具が有利になるので、例えばTAWOBA防具は劣化しやすいとか、高価で修理に素材が多く必要だとか、入手経路が少なくて貴重だとか、なんらかの形でペナルティをもうけてバランスを取る必要があります。

テスト段階では、例えば3つ装備でダメージを0%に設定して、装備を付け替えしてみて本当に効果が発動するのかを確認します。

フォロワーのバランスを調整する

すべてのNPCが持っているこのPerkをうまく活用することで、フォロワーのダメージ量を調整できます。

また、プレイヤーとフォロワーの間でのダメージ量も自在に設定できます。いわゆるフレンドリーファイアです。完全にダメージを無くすこともできますし、半分だけ減るとか、魔法のダメージだけ無効にすることもできます。

タイトルとURLをコピーしました