Enemy Equipment

自作Mod

敵がModで追加した装備を身につけるようになります。
倒した敵が宝箱を落とすようになります。
ダンジョンに宝箱を置くことができます。

ダウンロード

更新履歴

  • 2024/2/28 (未リリース)
    • [COCO] Shadow Assassin – CBBE-TBD-BHUNP SEに対応しました。
    • Cassandra Frost Witch CBBEに対応しました。LADXもインストールされている場合は相互に代替処理が行われます。
    • FormListを使って判定を行う仕組みを廃止し、SPIDでFactionやKeywordを付与しておき判定する仕組みに置き換えました。
  • 2024/2/26
    • Cold Region Behaviorの防寒着がOutfitに登録されてしまい、屋内で防寒着を脱がなくなってしまう不具合を修正しました。
    • セラーナのフードがOutfitに登録されてしまい、屋内でフードを脱がなくなってしまう不具合を修正しました。
    • Outfitに下着が多重に登録される不具合を修正しました。
    • 屋外のWardrobeに対応しました。
  • 2024/2/10
    • ニューゲーム後の確定宝箱で、カジュアル装備の抽選にNONEが含まれてしまい、宝箱が出現しないことがある不具合を修正しました。
    • カジュアル装備のNPCへの配布とWardrobeへの配布を選べるようにしました。
  • 2023/12/29
    • [Caenarvon] Cosplay Pack Casualに対応しました。
    • [Caenarvon] Cosplay Pack – hdt SMP (CBBE 3BA) 1.3からメイド服を追加しました。
  • 2023/9/15
    • カジュアル装備に職業検査を追加しました。
    • [Caenarvon] Cosplay Pack – hdt SMP (CBBE 3BA) 1.2に対応しました。まだ一部の装備だけです。
    • [Caenarvon] Cosplay Pack Swimmerに対応しました。
    • [Caenarvon] Cosplay Pack School Daysに対応しました。
    • ニューゲーム後のヘルゲン砦において、Wardrobeの設定が有効な場合はカジュアル装備の入った宝箱を設置するようにしました。
    • ニューゲーム後のヘルゲン砦における宝箱の配置は、プレイヤーの目の前に配置するようにしました。
  • 2023/7/1
    • ニューゲーム直後は省エネモードで動作するように変更しました。これまではセルが切り替わるまで動作しないようになっていました。これによってヘルゲンの兵士の防具が変更されるようになります。
    • 死体が下着をつけないことがある不具合を修正しました。
    • 服をリプレースする機能を追加しました。
  • 2023/6/12
    • Silver Handsのレベルを半分扱いにしました。同胞団のクエストで楽に攻略できる割に、彼らの持つ装備品が豪華過ぎてバランスが崩れるためです。主にRequiem環境で顕著になります。
  • 2023/4/23
    • 動作を変更するためのキーワードを追加しました。
  • 2023/4/18
    • MCMを整理しました。戦闘用装備とカジュアル装備、NPCと宝箱で設定を切り替えられるようにしました。
    • 動作を変更するためのキーワードを用意しました。
    • 宝箱の配置処理を調整しました。

これより古い履歴はEnemy Equipmentの更新履歴にあります。

おことわり

Immersive Armorsは独自の配布システムを持っており、本Modと機能がぶつかります。NPCを着替えさせ合っておかしなことになるので、Immersive Armors側の配布機能をオフにするか、SSEEditを使って防具に関係のないレコードを削除することをオススメします。

[Caenarvon] Cosplay Pack – hdt SMP (CBBE 3BA)は現在SportsとBunnyのみ対応しています。

必要な環境

概要

Modで装備をいろいろ追加しても、そのままではNPCが着てくれません。Leveled Listに追加すればとりあえずは着てくれるようになります。でも、ModでNPCが追加されたり装備が追加されるたびにLeveled Listを修正していくのは面倒です。

そこで、サポートされている装備Modを自動的に検出し、スクリプトを使って周りのNPCに動的に配布するModを作ってみました。

このModのコンセプトはEnemy Equipment Overhaulと同じです。私もLEではEnemy Equipment Overhaulを使っていました。Enemy Equipment OverhaulはSKSE用のDLLプラグインなので高速に動作します。espに含まれる装備を認識してNPCに追加するので、ものすごく楽です。少し問題もあって、装備がたまに統一性がなかったり、性別がおかしかったりすることもありました。全自動で処理させる分、装備側が想定したデータになっていないとうまくいかないようです。それでもLeveled Listのメンテナンスから開放されるのは素晴らしく、お世話になりました。残念ながらSE版はありません。

本ModはPapyrusベースなので動作速度の面ではEnemy Equipment Overhaulに劣りますが、自分なりにこだわってみました。

装備の条件

装備は完全ランダムではなく、装備セットという概念があり、コーディネイトを意識しました。例えばビキニアーマーであれば、上が鉄なのに下がドワーフになる、ということはありません。また、部位がランダムにあったりなかったりするようにしました。胴や靴はないとおかしいので必ず身につけますが、ネックレスや肩当てなどのオプションパーツはあったりなかったりします。

対象を条件で細かく指定できるようにしてみました。名前無しの敵キャラだけ(無名の山賊など)に限定したりできます。性別や職業にも配慮し、男がビキニアーマーを着たり、戦士系なのにローブを着たりはしません。

戦闘装備

戦闘向けの防具を装備させます。敵が主な対象となります。

おすすめの条件は「敵対検査なし」「ユニークなし」「内戦関係者なし」です。これで山賊やフォースウォーンといった敵対NPC、冒険者やトレジャーハンターといった友好的NPCが対象となります。固有名詞を持つNPCや衛兵は対象外となるので、街の雰囲気もそれほど損なわれないと思います。

ボス装備

Additional Encountersで出現したボス専用の装備になります。

ボスを倒して出現した宝箱にも入っていることがあります。

カジュアル装備

カジュアルな衣装を装備させます。戦闘装備の対象にならなかったNPCがカジュアル装備の対象になります。

おすすめの条件は「内戦関係者なし」「職業検査あり」で確率を低めに設定です。これで街にいるNPCがたまにかわった服を着ているようになります。

職業検査をありに設定すると、浮浪者は対象外となり、宿屋でサービスを行うNPCにはメイド服やバニースーツといった特別な衣装が選択されます。

カジュアル装備はMCMのスライダーオプションで数値を動かすことで配布割合を、デフォルトを押すことで配布先をNPC、Wardrobe、両方から選べます。

服をリプレースする

着替えの対象外になった場合に、着ているバニラの服をリプレーサー版に入れ替えます。

現在はRemodeled Armorのスタンドアロン版に含まれる服の一部に対応しています。

バニラ服のリプレーサーを普通に導入すると年配者の服まで置き換わってしまいますが、この機能を使うことで年配者を除外することができます。

宝箱

NPCが死んだ時に宝箱が出現します。宝箱の中身は戦闘用装備もしくはカジュアル装備です。

NPCが持っていたものを宝箱に移動することもできます。Death Trap Chestで罠が仕掛けられるようにすると、さながらWizardryのような雰囲気になります。

ボスやドラゴンは宝箱の出現確率が大幅に上昇します。ボス装備が入っています。

ダンジョンに宝箱が配置されます。屋内限定です。戦闘用装備もしくはカジュアル装備がはいっています。

ニューゲーム後の確定宝箱

ニューゲーム後にヘルゲン砦に入った直後やSkyrim Unboundで屋内に移動した直後に出現します。

宝箱の配置がオンの場合はTAWOBAの防具が出現します。レザービキニセットと鉄のビキニセットの2個です。

Wardrobeがオンの場合はランダムなカジュアル装備が出現します。

実装の詳細は、以下の条件をすべて満たした際に発生します。

  • プレイヤーのレベルが1である
  • 宝箱を配置する設定がオンになっている、またはWardrobeがオンになっている
  • 本Modが稼働を始めてからセル移動を行い、初めて屋内セルに移動した
  • セルがダンジョンではない(LocTypeDungeonキーワードを持っていない)

Wardrobe

ダンジョンのWardrobeにカジュアル装備が入っています。

屋外のダンジョン扱いの区域も対象になります。

下着

下着を必ず着けさせる方法についてにて解説している「下着パンツ」「下着パンツを表示させない方法」が必要となります。

下着パンツをMCMで登録しておくことで、NPCに配布されます。

表示を正しくするために、ゲーム起動時にビキニの下の自動脱着が行われます。

従来の下着上下動的脱着、パンツの動的脱着はスクリプト負荷軽減のために廃止しました。

Outfitモード

2020/8/3版からOutfitモードが用意されました。有効にするにはMCMで「Outfitを使う」をオンにします。

内部的に1000個のOutfitを用意しており、NPCのDefault Outfitを順次切り替えながら割り当てていきます。

従来の動作は言うなればインベントリモードで、Default Outfitには手を付けず所持品に装備を追加して強制的に装備させていました。

Outfitモードの特徴として、動作が格段に速く、ロードを挟んでも勝手に脱げることがありません。そのかわり、アンインストールができなくなります。アンインストールすると、着替えたNPCは裸になります。

実装に関してはSimple NPC Outfit Managerを参考にさせていただきました。

キーワード

SPIDを使ってNPCにキーワードを付与することで、動作を変更できます。

eeIgnoreChangeOutfit

着替えの対象外にします。

; eeIgnoreChangeOutfit
;  DraugrFaction
Keyword = 0x38B0A~EnemyEquipment.esp|NONE|0x2430D~Skyrim.esm

eeForceChangeOutfit

NONEを無視して必ず着替えるようにします。

; eeForceChangeOutfit
Keyword = 0x38B0B~EnemyEquipment.esp|CamillaValerius
Keyword = 0x38B0B~EnemyEquipment.esp|Saadia

eeForceChangeOutfitCombat

戦闘装備の設定がオフでも着替えます。

; eeForceChangeOutfitCombat
Keyword = 0x38B0C~EnemyEquipment.esp|CamillaValerius
Keyword = 0x38B0C~EnemyEquipment.esp|Saadia

eeForceChangeOutfitCasual

カジュアル装備の設定がオフでも着替えます。

; eeForceChangeOutfitCasual
Keyword = 0x38B0D~EnemyEquipment.esp|CamillaValerius
Keyword = 0x38B0D~EnemyEquipment.esp|Saadia

Faction

SPIDを使ってNPCにFactionを付与することで、動作を変更できます。

eeFactionElder

老人です。

eeFactionVampire

吸血鬼です。

eeFactionCivilWar

内戦関係者です。

eeFactionRanged

遠隔武器で戦うNPCです。軽装になります。

eeFactionCaster

魔法で戦うNPCです。服になります。

eeFactionWench

酒場の関係者です。

eeFactionNoCasual

カジュアル装備を着ません。

メンテナンス用スペル

MCMで有効にすると自動的に習得します。

Refresh Outfit

対象の着替えを再抽選します。

クロスヘアで対象を捉えていない場合はセル内にいる全員を対象にします。

Change Outfit

対象の衣装をカスタマイズします。

取引画面が表示されるので、着せたい装備を渡します。

Outfitとして登録されるため、脱げません。

Fix Body

まれに胴体が透明のNPCが出現することがあります。原因は不明です。負荷が高いと起こるようです。胴装備を脱着するとなおるようです。

このスペルを唱えると、周囲にいる全員を対象に胴装備を脱着させることで修正を行います。

あとがき

NPCの装備を動的に入れ替えるのがこれほど難しいとは思いませんでした。最初は単純にPapyrusの関数を眺めてコードを書いて出来上がりだったのです。ところが、Skyrimの仕様によるさまざまな問題が出てきて、考慮しなければならないことが結構あることを知りました。また、他のModとの兼ね合いによる問題もあって、これがますます状況を複雑なものにしていました。

Mod作りをしていくうちにスキルもあがり、新しい手法を発見したりするたびに設計から見直してリファクタリングしています。何回やったかもう忘れたくらいです。

衣装の動作確認をするテストセルがあります。コンソールで以下のコマンドを実行すると移動できます。

coc eecelltesthall

ボタンを押すと衣装を着たNPCが出現します。現在はNinirim Collection 6.0のみです。

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