Fallout箱庭DIY

「箱庭DIY」Fallout分室

【Fallout4】ロードオーダーと競合についての基礎知識( 基礎その3)

スポンサーリンク


初心者向け

MODを使う限り避けて通れない難敵、「ロードオーダー」と「競合」です。公式DLCでは競合不具合が起こることは無い(多分・・・)ですが、MODでは何かと問題になります。

競合が発生する理屈と、競合によってどんな不具合が起こるかを見ていきます。

MODの基本構成を知らない人は、まずこちらからどうぞ(いきなりこれ読んでも解らないかもです)。

f4mod.hatenablog.com

ロードオーダーとは?

MODの読み込み順序のことです。 単純ですけど、適切に管理しないと様々なトラブルの原因になります。

 

ロードオーダーの基本

NMMのPluginsタブを見ると、「Load Order」の項目があります。ゲームを起動すると、数字の若い順にプラグインが読み込まれる決まりになってます。

NMMでロードオーダーの確認

本体であるFallout4.esmは00で、一番最初に読み込まれます。変更できません。

SSの例では、00である本体の次に01の「No Fusion Core Drain.esp」が、その次に02の「EferasShoulderBag.esp」が、Fallout4.esmに対するパッチとして読み込まれます。

 

ロードオーダーのルール

次に、ロードオーダーとプラグインの中身の関係を見てみます。

前回も例にした、Sledgehammerのチート改造MODです。攻撃力と価格が大幅上昇、そのくせ重量0.5というインチキ仕様。

CheatHammerの中身

この時の読み込み順は、

  1. ロードオーダー00の「Fallout4.esm」が読み込まれる。
  2. ロードオーダー01の「CheatHammer.esp」が次に読み込まれる。

となります。順番通り。

プラグインには、色々な設定項目が書いてあります。近接武器であるSledgehammerも、そんな設定項目の1つです。これらの各項目は、後から読み込まれた方が有効になるという、絶対ルールがあります。

つまりこの例だと、Fallout4.esmのSledgehammerに対してCheaHammer.espが上書きパッチとなり、Sledgehammerが超絶強化される流れです。

ゲーム内でのCheatHammer

※飛ばしてもOKです。

Form ID:000E7AB9のSledgehammerを改造しています。SSを見ると0005DF2EにもSledgehammerがありますが、こちらは特定のNPCだけしか使えないバージョンなので除外してます。こうした「playable」でない装備というのも結構あります。

 

MODの競合とは?

上記のSledgehammerの改造の場合、Sledgehammerを変更するプラグインは1つだけだった為、何も問題ありませんでした。けれども、もし2つ以上で同じ項目を変更している状態だったらどうでしょう?

想定外の結果になる可能性があります。プラグインに限らず、例えば同じ対象をリテクスチャするMODが複数有っても同様です。ゲームを起動したら、想定と違う結果になってるかもしれません。

このように、1つの項目を複数で変更しあうことで起こる問題が、「競合」です。

 

プラグインの競合

 

競合状態の確認

上記のSledgehammer改造MODを入れた状態で、武器のバランスを変更するWeapon Balance Overhaulを追加しました。

 

ロードオーダーは以下の通り。

  • 00 Fallout4.esm
  • 01 Cheathammer.esp
  • 02 Weaponry Overhaul.esp

この状態でゲームを起動すると・・・

競合したCheatHammer

Sledgehammerが弱くなりました。バニラから見たら十分強いですが、チート改造が反映されてません。重量や価格も同様。

そんな時はFO4Editで確認です。

FO4Editで競合を確認

ロードオーダー01のCheathammer.espの変更内容を、ロードオーダー02のWeaponry Overhaulが潰しています

これはどちらのMODが悪いか?という話ではなく、Sledgehammerという武器を2つのMODが変更し合っている、つまり競合していることが原因です。 

競合対策には、FO4Editが必須になります。これを使わずに「競合だ、干渉だ」と大騒ぎしてみた所で、理にかなった対策のしようがありません。

 

競合の解決策

競合状態になったら、何をゲームに反映させたいのか?を考えます。

この場合は、

  • Cheahammer.espで、Sledgehammerをチート改造したい
  • Sledgehammer以外の武器は、Weaponry Overhaulで強化したい

ということが目的です。

したがって、ロードオーダーを入れ替えることで競合を解消できます

ロードオーダーの変更

01と02を入れ替えます。Cheathammer.espを後方に変更。

  • 00 Fallout4.esm
  • 01 Weaponry Overhaul.esp
  • 02 Cheathammer.esp

チート仕様に復活しました!

競合解消したCheatHammer

一度Weaponry Overhaul.espでSledgehammerも変更されますが、Cheathammer.espで更に上書きする為、最終的なSledgehammerの性能はCheathammer.espが有効になります

Weaponnry Overhaul.espの立場から見れば、競合によりSledgehammerの値が潰された形になります。ですが最終状態としてこの値を望んでない為、これは意図的に上書きされた競合です。ロードオーダー最後の値が有効になるだけなので、何度も上書きすること自体には、何も問題ありません。

※飛ばしてもOKです。

この例では、Cheathammer.espで変更した武器が1つだけだったので、ロードオーダー変更で解決できました。けれども複数を変更するMOD同士だと、ロードオーダーだけで解決できない競合も発生します。例えば競合する3つのMOD環境下で、

  • SledgehammerはMOD『A』
  • RipperはMOD『B』
  • SawはMOD『C』

を適用したい、みたいな。

こういうケースでは、「互換パッチ」が必要です。競合するMOD同士、自分が欲しい項目の「いいとこ取り」をしたespを自作します。武器に限らずこういう競合は多いので、MODの数が増えてくると必ず必要になります。作らない人は・・・強行してるだけです。

 

アーカイブファイルの競合

 アーカイブファイル(ba2)はプラグインのロードオーダー順に並ぶ為、プラグイン同様にロードオーダーの影響を受けます

例えば同じオブジェクトを変更するテクスチャが、複数のアーカイブファイルに入っていた場合、ロードオーダー最後のテクスチャが優先になります。

 

ルーズファイルの競合

フォルダに展開されたルーズファイルは、ロードオーダーに関係なく常に最優先となります。 同じファイルがロードオーダー最上位のアーカイブファイル内に存在しても、ルーズファイルの方が優先されます。

ルーズファイル同士が競合する場合は、HDD上に同一ファイルが存在できない以上、インストーラやOSから「上書き」するか否かのダイアログが出ることになります。

 

ルーズファイルの注意事項をひとつ。

アンインストールミス等により、ルーズファイルとして「ゴミ」が残ってしまうと、このゴミファイルが最優先になってしまいます。該当ファイルは絶対にアーカイブファイルから読み込まれることがありません。

 

まとめ

  • ロードオーダーとはプラグインの並び順。
  • ロードオーダーが後のプラグインほど優先度が高い。
  • ロードオーダー次第では競合が発生する。
  • アーカイブファイルもロードオーダーに依存する。
  • ルーズファイルは常に最優先。

 

関連記事

f4mod.hatenablog.com

 

Skyrimブログの方で、もう少し概念的な話をしてます。

skmod.hatenablog.com

 

Copyright © 2015 Fallout Hakoniwa DIY All rights reserved .

S.kutsumiya@gmail.com