武器や防具等といった装備MOD、色々ありますよね。自分で使うのは勿論のこと、NPCにも装備を適用するMODも多いです。これはLeveled Listを変更することで実現してます。今回はこの構造を、概念的に見ていきます。
Leveled Listに装備を追加するには?
また今回もレールロードエージェントを例に。以前の記事ではNPCと武器を扱いましたが、今回は防具にて。
彼らの服のLeveled List、『LL_Armor_Railroad(001ABC6B
)』です。レベルに応じてMK.IからMK.Vまでの5種類が有ります。
Railroad Armored Coatだけで、代わり映えがしないですね(まあ制服でしょうし多分)。ちなみにこれはバリスティックウィーブ追加ではなく、純粋に装備の防御力が向上してます。
なんかここに追加しましょう。レベル10でThe Mercenary - PackのMercenary Armorを追加する『MOD_A.esp』と、レベル50でFortaleza ArmorのFortaleza Armor MK.IIを追加する『MOD_B.esp』を考えます。それぞれの装備MODをマスター指定した、Leveled ListだけのMODになります。
Leveled Listへの追加方法ですが、『スクリプト形式』と『プラグイン形式』の2種類があります。どちらも一長一短なので、用途に合わせて選択するのが良いと思います。
プラグイン形式のLeveled List
Fallout4では比較的少数派かも。バニラのLeveled Listの上書き変更や新規のLeveled Listを、プラグインへのeditで作成します。
プラグイン形式Leveled Listの構造イメージ
プラグインでLeveled Listを変更する以上、バニラのLeveled Listを丸ごと上書きします。したがってMOD_Aでは『バニラ+Mercenary Armor』なLeveled Listに。
同様にMOD_Bでは、『バニラ+Fortaleza Armor』。
プラグインのレコードは、いつでも自由に変更可能です。後からレベルや個数を調整したり、削除したり等。セーブデータにダメージ与えることは無いです。反映されるのは、次回のスポーン/リスポン以降になります。
また、Leveled Listの状態が全てプラグインで可視化されてる為、管理しやすいです。
プラグイン形式Leveled Listのデメリット
他のプラグイン同様、同一レコードを複数MODで変更すると競合します。よって、MOD_A.espとMOD_B.esp、2つ同時に使ったら競合します。ロードオーダー後方だけが生き残り。
共存させるには、両方が有効になる互換パッチの作成以外に方法ありません。
つまり互換パッチの自作ができない人には、実質的にプラグイン形式のLeveled List運用が不可能です。競合で潰れまくります。
とはいえ、作成自体はさして難しくないです。互換パッチの作成は、別記事にて。
f4mod.hatenablog.com
スクリプト形式のLeveled List
Fallout4のMODでは、こっちが主流ですかね。MOD導入後の初回起動時のみスクリプトを走らせて、Leveled Listに追加します。
スクリプト形式Leveled Listの構造イメージ
構造イメージだけはすごくシンプル。元々の土台であるLL_Armor_Railroadに対して、MOD_AとMOD_Bが、それぞれ勝手に防具を追加するだけです。ポイントは、1個単位で追加可能であることですね。既存のレコードに対する上書きが起こりません。
結果、2つの防具が綺麗に追加されたLeveled Listが完成します。追特別な作業は不要で、MODをインストールするだけでこの形になります。
これがスクリプト形式の最大のメリットで、複数のMODで同じLeveled Listを変更しても競合しません。
スクリプト形式Leveled Listのデメリット
お手軽な反面、非常に大きなデメリットが。個人的にはこのデメリットがでかすぎる為、スクリプト形式は極力使わない方が良いと思ってます。単体追加できるので構造イメージはシンプルなんですが、動作はあまりシンプルじゃないです。
追加後の変更作業が不可能
一度追加した以降はセーブデータ依存となり、事後の変更ができません。対象レベルの変更や個数、特定のLeveled Listからだけ削除したい等、こうした修正作業ができないです。リセット対象ではない為、30日待機とかしても意味無いです。
また、プラグインから稼働中のLeveled Listの状態を確認できない為、数が増えると管理も非常に厄介に。
(推測)アンインストール後にゴミが残る
目に見える形で確認ができない為、推測になってしまいます。
MODをアンインストールしてもLeveled Listからの削除処理が出来ない為、参照エラーになる項目がゴミとしてLeveled Listに残る筈です。
ですが、どうやら参照エラーになる項目は無視してくれるようです。削除済の装備がLeveled Listから選択され、素手やマッパになることは無さそうです。ただし全ての状況で大丈夫かは確認しきれない為、アンインストールに不安が残るのも事実かと。
どんな時にスクリプト形式を使う?
個人的には、公開目的のMOD作成以外にメリット無いと思います(プラグイン形式で公開すると、競合対策しない人が騒ぐでしょうから)。自分の環境用であれば、プラグイン形式の方が管理上も便利です。それに大抵、プラグイン形式のLeveled ListのMODもいくつか使ってると思います。どの道互換パッチ作るなら、あえてスクリプト形式で作る意味が無いです。
こちらの作成支援MOD、穴埋め的にスクリプト形式でLeveled Listが作れるようなので便利かも。
www.nexusmods.com
実際のLeveled Listの構造差分について
今回はイメージ解説だけだったので、実物の構造については、こちらをどうぞ。Desert Eagleの
スクリプト形式Leveled Listを、プラグイン形式に書換えてます。これで大体つかめるんじゃないかな、と。
f4mod.hatenablog.com
以上、おしまいです!