Skyrim箱庭DIY

MODによる固有の環境不具合は自分で直して快適ゲーム。CTDにさようなら。Do It Yourself!!

【Skyrim】スルーしがちなもう1つのMODクリーニング。「Deleted References」の修復



スポンサーリンク

MODクリーニングの定義には、すでに説明しました「Identical To Master edit」以外にも、あと2つ言葉があります。「Deleted Reference」と「Wild Edit」です。この2つは、自分の中でもちょっと怪しい部分があるのですが(言葉の定義の範疇をイマイチ正しく理解できていない)、わかっている範囲でまとめてみようと思います。

Dirty Editsのみのクリーニングで終わりにしてる人が多いと思いますが、「Deleted Reference」が問題起こすこともあります。最悪確定CTDコース。今回はこちらの修復を試してみます。

※自動修復できない場合もありますが、その場合はマニュアルで直すしかありません。自動修復できない方は、いわゆる「バグ」に相当する物だとは思いますが。

 「Identical To Master edit」についてや、その削除については過去記事を見てください。「MODクリーニング」と言った場合、大抵はIdentical To Mastar(ITM) editの削除を指しています

 

Deleted Referenceとは?

今更ですが。MODは基本的に「バニラ環境」を基準に改造しています。共通環境ですね。よって、あるMODがバニラに有る筈のオブジェクトを削除してしまった場合、そのオブジェクトを使う前提のMODに不具合が起こることが想定されます。このように、有ると思っていた参照先のオブジェクトが無くなっている現象を、「Deleted References」と定義されている、だと思います

有るべき物が無くなったことにより、スキップされるだけならまだ良いですが、場合によってはCTDしたりフリーズしたりと、何が起こるか分かりません

※例を出しますが、もしかしたら言葉の定義と異なる物もあるかもしれません。ちょっと知識不足につきご了承ください。

 

 Breezehomeの宝箱を削除してしまう場合

Breezehomeのプレイヤーの部屋にある宝箱を「削除」する例です。変更部分だけの表示にフィルタしてあります。

本来存在する筈のオブジェクトが無くなってしまったので、Ref ID:000F3922の宝箱を使うMODがあった場合、不具合が想定されます。参照先が消失してしまう、「Deleted References」です。

DeletedReferenceの例

 

TES5Editの自動クリーニングでDeleted Referencesを修正

完全復旧するわけでは無いですが、TES5Editの自動クリーニングで、CTDやフリーズといった事態を回避する為の修正ができます。

TES5EDITでDeletedReferenceを修正開始

Identical To Master editの時と同じように、「Apply Filter for Cleaning」を選択。

 

フィルタの適用が終わったら、「Undelete and Disable References」を選択します。これで作業完了です。TES5EDITでUndelete-and-Disable-Referencesを選択

 

クリーニング後の宝箱です。「Delete」から「InitiallyDisabled」に変更されています。何をしているかというと、箱の存在自体は消さずに、プレイヤーから見えない地中深くに沈めています。Z座標が超マイナスです。手の届かない所に行ってしまいました。

DeletedReferenceの修正完了

これにより、削除と同じ効果を得つつも存在そのものは残っているので、参照先が消失したことによる不具合は回避できます。箱が本来の場所に無い為にゲーム中で不具合がおこる場合は、マニュアルで別の競合対策が必要になります。

・・・ということだと思っているのですが。違ってたら指摘貰えると助かります

 

自動クリーニングで直せないDeleted Reference

存在自体を復活させて、見えない所に追いやることでCTDやフリーズのリスクを潰しているわけですが、できないこともあります

 

削除されたNavmesh

NPCの移動範囲のガイドとなるNavmeshですが、これは復旧させて沈めるという訳にいかないと思うので、「削除されているぞ」という警告が出るだけです。Navmeshに起因した問題があるかどうかは、マニュアルで確認する必要があります。

 HeartFires.esmの例。Navmeshが5個消されてる旨のWarningが出てます。問題の有無は個別で調べないといけません。

自動クリーニングでNavmeshの復旧修正はできない

 BreezehomeのNavmeshに関しては、古いMODを使った場合にCTDが起きます。詳しくは別記事で。

 

 Base IDが削除されている場合

これを定義としての「Deleted Reference」と言って良いのかちょっと怪しいのですが、似たような状況を。

見た目がSteelArmorだけど軽装カテゴリな、「Light Steel Armor」という鎧が入ったMODを作りました。Armor1.espという名前です。

軽装SteelArmorMOD

 

別の人がこのMODを気に入り、LightSteelOutfit.espという、「Light Steel Armor」をNPCに着せるOutfitを作りました。Armor1.espをマスター指定したMODになります。Outfitの中に、ARMO:01000800が入っています。Armor1.espのデータを参照しています。(espのマスター指定なんで自己責任っちゃ自己責任ですけど、まあ例として)

軽装SteelArmorのOutfit作成"

 

LightSteelOutfit.espでは、Heimskrさんに「Light Steel Armor」を着せるようです。

軽装SteelArmorをHeimskrさんに着せる

 

こんな感じで演説してました。いつもご苦労なこってすね。

Heimskrさんの演説

 

ここまでをまとめてみます。

  • ある人が、「Light Steel Armor」の入ったArmor1.espを作った。
  • 別の人がLightSteelOutfit.espを作り、Armor1.espをマスター指定して、Heimskrさんに着せた。

ということです。

さて、この後です。Armor1.espがバージョンアップしました。

LightSteelArmorのBaseID変更

大人の事情により、「Light Steel Armor」のアドレスが、01000800から、01000801に変更されました。さて、これをマスター指定していたSteelOutfit.espはどうなってしまうでしょう?

 

赤枠の中です。参照先であった01000800消滅したので、解決不可能のエラーになっています

これを定義上の「Deleted Referense」といって良いのかわかりませんが。(MODの上書きが原因でこういったことは起きないから。マスター側espが直接改変されない限り)

確かなことは、こういったケースは自動クリーニングしても直してくれません。参照先がアドレスもろとも消滅しているので、何が起こるか分かったもんじゃありません

"Referenceの消滅した致命的エラー

 

幸いHeimskrさんの鎧が消滅しただけで、CTDにはなりませんでした。とはいえ、こういったエラーはいつ何が起こるか怪しすぎます。たまたま鎧だったからセーフなだけかもしれません

自動で対処してくれないので、ダウンロードしたMODであれば作者さんにそっと連絡したり、自分で改造した結果であれば、即座に修正したほうがいいです。

Heimskrさんフンドシ演説

 

ちなみにDawnguard.espのWeatherの項目に、同じような不具合がありますUnofficial Dawnguard Patchで修正されているのですが、Weather情報をさわるMODがある場合、元に戻っている場合があります。下のSSはRealistic Lighting Overhaulで元に書き戻されている例です。これはRLOが悪い訳ではありません。必要項目以外はバニラの値を使う以上、当然の措置です。悪いのはバニラのバグです。

DawnGuardのバグ

 

もうひとつ例です。Clothing and Clutter Fixesで追加されているKeyword。マスター指定した上でこれを別のMODに組み込む人は居ないと思いますが。

SSの通り、ロードオーダー05になっているCCFで新規作成されたKeywordですが、上位2桁が01になっています。これをマスター指定して使った場合、01なので自動でマスター指定されるのはUpdate.esmになります

しかし実際には05であるCCFにデータがある為、これも同様に参照先のデータが見つからないエラーとなります。

CCFのKeyword

 

 

 「Deleted Reference」の定義からは外れてる気がしなくもないですが、関係ありそうなことを書いてみました。

この辺で終わっておきます。

次は「Wild Edit」です。これは「ModderもUserも悪くないのに発生してしまった想定外のバグ」といった所なので、今までのクリーニングとはちょっと話が違います。手作業による仕様的なバグ取りです。興味のある人は、よかったらどうぞ。

続きはこちら