今回は実際にTES5Editの機能を使って、自動でDirty Edits(Identical To Master edit)の削除を行います。
理屈はいいから実践、という人は、中ほどの項目「TES5Editによるクリーニング」からどうぞ。全く構造知らずにクリーニング続けてると、いつか不具合起こすと思いますが・・・
前回の記事はこちら。クリーニングの意味や定義を知りたい人はどうぞ。
※マージでランディングした人はこちらをどうぞ。この記事では扱ってません。
前回も書きましたが、適当に削除することで問題が発生することもあります。MODクリーニングは改造です。理解した上で使うことをお勧めします。クリーニングしたことで不具合が起きた場合は自己責任で対処してください。
Dirty Editsができる原因
Dirty Editを作ってしまう一例を紹介します。こういうパターンがクリーニングすべきMODになります。
「SteelArmor2.esp」を作ります。Steel Armorを軽くして防御力を上げるMODです。
ついでにIron Armorも軽くして防御力も上げました。
が、気が変わりました。Iron Armorの変更は取りやめにします。バニラと同じ性能に戻したいです。なので、
SteelArmor2.espにバニラと同じ重量と防御力を書いておきました。
このIron Armorの項目こそが、Dirty Editです。一見するとバニラと同じ値を書いただけなので、問題無いように思えます。
けれども本来の正しい対応策は、
SteelArmor2.espからIron Armorの項目を削除する
という対処です。
この例では変更したIron Armorの項目を削除せずに、バニラと同じ値を設定することでOKとしました。結果的には元の重量、防御力に戻ってはいます。
が、他のMODと組み合わさることで問題を引き起こす場合があります。
Dirty Editが引き起こす問題
新たにIron Armorの重量と防御力を変更する「IronArmor2.esp」を作ることにしました。変更内容は同じく、Iron Armorの軽量化&防御力アップです。
ロードオーダーは次のようにしました。
00:Skyrim.esm
01:IronArmor2.esp (Iron Armorを変更するMOD)
02:SteelArmor2.esp(Steel Armorを変更するMOD)
この時のIron Armorの変更を見てみると、問題があることに気付きます。
SteelArmor2.espのDirtyEditが、Iron Armorをバニラの値に書き戻しています。
問題ですね。SteelArmor2.espだけを見ていた時は、「バニラの値に戻しただけ」のつもりでした。しかし、新たにIronArmor2.espが加わったことで、「意図的な変更をも元に戻す」という競合を引き起こしています。DirtyEditのせいで、変更したIron Armorの値が全て潰されてしまいました。
こうしたDirty Edit、Identical to Master edit(マスターと同じ値を書いているだけ)の項目は、このようにロードオーダー下位のMODに対して無用の競合を起こします。これを削除するのが自動で行えるクリーニングです。
※クリーニング禁止のMODの場合は無用の競合ではないので注意してください。
TES5Editによるクリーニング
実験用MODで実際のクリーニング作業をしてみます。SteelArmor2.espにIron ArmorのDirty Editを作ってしまいましたので、これを消します。
SteelArmor2.espとIronArmor2.espをアップしておきました。クリーニング初めての人は実験用にどうぞ。
アップローダ使ったことないんで良く分からないのですが、とりあえず。何か不都合あったらコメントください。
http://whitecats.dip.jp/up0/download/1427302678.7Z
pass:HAKONIWADIY
クリーニング時の注意事項
Dirty Editを削除するには、必ずクリーニングしたいMODだけを選択します。マスター指定ファイルは自動的に読込まれるので選択不要です。
余計なeditを消したり消し損じが起こる可能性があるので、絶対に対象以外は選択しないでください。また、一度のロードで複数MODのクリーニングはできません!
作業自体は可能ですが、上記理由により不正なプラグインになる可能性があります。
MODクリーニング実践
そろそろはじめます。
今回の例だと、SteelArmor2.espだけを選択して読込みます。SteelArmor2.espのマスター指定対象はSkyrim.esmだけなので、下のSSのようになります。
左の窓のSteelArmor2.espを右クリックして、「Apply Filter for Cleaning」を選択。削除対象となるIdentical To Master editを探してくれます。
フィルタの適用が終わったら、「Remove ”Identical To Master”Records」を選択。さんざん出てきた言葉です。よく判らず使ってた人も、前回の記事読んでれば意味バッチリですね。
SteelArmor2.espのクリーニングをした場合は、「Records:4、Removed Records:1」と表示されれば成功です。左の窓を見ると分かりますが、ArmorのカテゴリからIron Armorが削除されています。RemoveされたRecord 1個です。
あとは閉じてセーブすれば終了です。
※クリーニング対象以外をロードしてはいけない理由
前と同じSSです。IronArmor2.espでIron Armorの防御力を上げてますが、SteelArmor2.espのDirty Editが元に戻しています。
この状態ではSteelArmor2.espのIron Armorの項目をDirty Editとして識別してくれません。IronArmor2.espで変更された項目を再び元に戻す修正と識別されてしまいます。
クリーニングしてはいけないMODの例
Guard Dialogue Overhaulのespです。これはクリーニングしないようにDescriptionに記載されています。
TES5Edit Cleaning of GDO.
As of Version 1.3, GDO Must Not be cleaned with TES5Edit. Everything in GDO needs to be there for it to function properly.
espを見てみると、通常ではDirty Editsとして処理される項目がたくさん存在します。(背景緑で字が灰色のところ)
推測ですが、バニラの状態を保持していないと不具合を起こす為、MODで変更された場合はバニラに書き戻す目的で作られているんだと思います。
SteelArmor2.espの例で言えば、
「SteelArmorは強化するけどIronArmorは絶対駄目。変更されてても書き戻す」
というポリシーであれば、Dirty Editとして削除すると問題になります。IronArmorが強化されてしまいますので。
バニラの状態でないと困る項目があるMODの場合、一見Dirty Editsに見える項目が有る筈なので注意してください。防御力程度なら別に大した問題にならないのですが、リファレンス先が無くなってる等だと危ないかも。
(おまけ)CKによる「問題のあるedit」の発生
TES5Editで作業するときには大抵消去を選ぶと思いますが、CKで作業した場合は、全く気づかないうちにDirty Editsが発生する場合があります。例えばエントリを変更した後に元に戻す、といったTES5Editを使った上記の例の作業をCKで行った場合。また、セルを参照した際にうっかりオブジェクトを動かしてしまい、元に戻した場合。これ結構あると思います。
作業後にTES5Editで確認することをお勧めします。Dirty Editsだけではなく、変更した覚えの無いエントリが無いかも確認した方がいいです。関係無いセルの壁が消えてるとか、空に壁が浮いてるとか、意図してないオブジェクトの変更が出来てるかもしれません(これはWild Editsの範疇かも)。
また、CKのバグによってDirty Editsが発生することもあるらしいので、併せて注意してください。
続きはこちら