一度入れてみたものの、色々な理由で使うことをやめる場合があります。トラブルが起きたので泣く泣く外すこともあれば、趣味がイマイチ合わなかったので外すという場合もあります。MODの出し入れによるトラブルは目に付かないことも多いので、気づかないうちに累積することがあります。今回はビジュアル的に分かりやすい例で、MODを外すことによって起こるトラブルを説明します。
Skyrim Peasant Fashionを例にします。農民や酒場のお姉さんの服のバリエーションを追加して、Leveled Listに追加するMODです。別にこのMODが悪いと言っている訳ではないので誤解の無いようお願いします。外した時の影響がわかり易い、というだけです。
- MODを外すと服が脱げる例
- TES5Editを使って原因究明をする
- TES5EditでDefault outfitを調べる
- Default outfitの構造について
- Default outfitのLeveled Listを見る
- MOD外して装備が脱げる流れのまとめ
MODを外すと服が脱げる例
入れたMODを外せばバニラに戻るだけの筈、と思うのは思い込みです。変更した物がバニラに戻るとは限らない例です。
微妙に楽しくないSSかもしれませんが。RedguardのSaadiaさんです。
左はSkyrim Peasant Fashionを導入した時。右は一度導入してから外した時です。見ての通り、バニラの服に戻るどころか、完全に脱げてます。NeverNudeの体型メッシュ使ってなかったら、はてなにもアドセンスにも怒られるところです。何故MODを入れてから抜いただけでこうなってしまったのか?を追いかけてみます。
こういう時にも大活躍のTES5Editです。MOD作らなくても使えるようになっとくと便利です。
TES5Editよくわからない方はこちらもどうぞ。
TES5Editを使って原因究明をする
PIVariety.espを開いてみます。まずは左の窓の各項目を見ていきます。
項目としてあるのは、
ArmorAddon
Armor
Leveled Item
Outfit
Texture Set
の5項目です。スクリプトは使われていません。NPCも項目には有りますが、見ての通りテスト用?の新規NPCが1人いるだけなので、既存NPCには関係ありません。
どこから手をつけるかですが、とりあえずは異常の起きたSaadiaさんを見てみます。
見ての通り競合もなく真っ白です。NPCの項目はtestキャラしか居なかったので当たり前です。しかしながらSaadiaさんに装備関連の異常が起きたことは事実です。ということで、Default outfitを疑ってみます。SSの赤線引いた箇所です。
ここでNPCの初期装備が定義されています。装備が脱げた以上、疑わしい項目です。
TES5EditでDefault outfitを調べる
SaadiaさんのDefault outfitです。OTFT:0005FB81を見てみます。靴はそのままですが、胴装備が変更されています。固定装備ではなくLeveled Listです。SSの赤線の箇所です。この時点で「Leveled Listが悪さしてる」と決めるのは早計ですので注意してください。
Default outfitの構造について
ここで一旦、Default outfitの構造について話をしておきます。「初期装備でしょ?さっ聞いた」と思うかもですが。ここに重大な落とし穴があります。
Default outfitに定義されている装備を読み込むタイミングはいつか?ということです。
今でしょ!(※すいません言ってみたかっただけです)
と言ってロード毎に読んでいたら、フォロワーに様々な装備持たせても、ロード毎にデフォルトに戻ってしまいます。非常に困ります。
Default outfitを読み込むタイミングは、NPC生成時です。
Saadiaさんの場合なら、初めてBannered Mareに入った時かと思います。この時にDefault outfitを読込んで、NPCの装備が決まります。ニューゲームじゃないと反映されない系のMODは、こういった理由から来ていることが多いです。
これは逆に言いますと、
生成時にMODのDefault outfitを読み込んだNPCは、バニラのDefault outfitの装備を持っていない
ということを意味します。
リスポーンするNPCであれば、一度倒せば次のリスポーンで装備変わりますが、ユニークNPCに関してはそうはいきません。再度Default outfitを読込むタイミングが有りません。(リスポーンさせずにリセットだけする方法とかあったらすいません)
スクリプトで装備を配るMODの場合は、既にスポーンされているNPCにも適用されます。悪者扱いされるスクリプトですが、こういう時は便利です。
Default outfitのLeveled Listを見る
という訳で、Saadiaさんの胴装備に指定されているLeveled Listを見てみます。
LVLI:02001DEFです。
装備総数は7種類。このうちのどれか1つがSaadiaさんに割り振られることになります。ランダムですね。7つの装備のアドレスを見てください。赤線が引いてある5個の装備はアドレスの先頭が「02」で始まっています。MODで新設された装備です。したがって、この5個の装備のうちの何れかがDefault outfitに選択された場合、
MODを外すことで胴装備が消滅します
一番最初のSSを見ると分かりますが、Leveled Listになっているのは胴装備だけの為、靴はそのまま残っています。
こんがらがってきたかもなので、まとめます。
MOD外して装備が脱げる流れのまとめ
- Saadiaさん生成時、Skyrim Peasant FashionのDefault outfitの初期装備を読込む。
- SaadiaさんのDefault outfitが胴装備だけLeveled Listに変更されている。候補装備は7つ。バニラ装備2種、新規装備5種。
- MODを外すと、追加されていた装備が消える。しかしDefault outfitは既に確定している為、再度読み込まれることは無い。
- 結果、MODが外されてもNPCの装備は更新されない。したがって、新規装備5種を引いていた場合は胴装備が消えたままになる為、服が脱げることになる。靴は固定装備なのでそのまま残る。
この場合の対策は、数が少なければNPCをターゲットして
additem xxxxxxxx 1
equipitem xxxxxxxx 1
コンソールで好きなアイテム渡して装備させれば良いかもです。
これは目に見える明白な不具合ですが、MODの出し入れによって気づかぬ不具合が怒る可能性もあるので、ご注意ください。