Fallout箱庭DIY

「箱庭DIY」Fallout分室

【Fallout4】プラグイン式Leveled Listとスクリプト式Leveled Listの構造概念

スポンサーリンク


LeveledList
武器や防具等といった装備MOD、色々ありますよね。自分で使うのは勿論のこと、NPCにも装備を適用するMODも多いです。これはLeveled Listを変更することで実現してます。今回はこの構造を、概念的に見ていきます。

Leveled Listに装備を追加するには?

また今回もレールロードエージェントを例に。以前の記事ではNPCと武器を扱いましたが、今回は防具にて。

彼らの服のLeveled List、『LL_Armor_Railroad(001ABC6B)』です。レベルに応じてMK.IからMK.Vまでの5種類が有ります。
アーマーのLeveledList
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になります。

LLに追加したい項目

Leveled Listへの追加方法ですが、『スクリプト形式』と『プラグイン形式』の2種類があります。どちらも一長一短なので、用途に合わせて選択するのが良いと思います。

実際はFortalezaには女性用装備しか無い為、汎用性の高いLeveled Listには組み込まない方が良いです。あくまでイメージということで。

プラグイン形式のLeveled List

Fallout4では比較的少数派かも。バニラのLeveled Listの上書き変更や新規のLeveled Listを、プラグインへのeditで作成します。

プラグイン形式Leveled Listの構造イメージ

プラグインでLeveled Listを変更する以上、バニラのLeveled Listを丸ごと上書きします。したがってMOD_Aでは『バニラ+Mercenary Armor』なLeveled Listに。
MOD_AのLeveledList

同様にMOD_Bでは、『バニラ+Fortaleza Armor』。
MOD_BのLeveledList

プラグインのレコードは、いつでも自由に変更可能です。後からレベルや個数を調整したり、削除したり等。セーブデータにダメージ与えることは無いです。反映されるのは、次回のスポーン/リスポン以降になります。
また、Leveled Listの状態が全てプラグインで可視化されてる為、管理しやすいです。

プラグイン形式Leveled Listのデメリット

他のプラグイン同様、同一レコードを複数MODで変更すると競合します。よって、MOD_A.espとMOD_B.esp、2つ同時に使ったら競合します。ロードオーダー後方だけが生き残り。
LeveledListの競合

共存させるには、両方が有効になる互換パッチの作成以外に方法ありません。
LeveledListの互換パッチ

つまり互換パッチの自作ができない人には、実質的にプラグイン形式のLeveled List運用が不可能です。競合で潰れまくります。

とはいえ、作成自体はさして難しくないです。互換パッチの作成は、別記事にて。
f4mod.hatenablog.com



スクリプト形式のLeveled List

Fallout4のMODでは、こっちが主流ですかね。MOD導入後の初回起動時のみスクリプトを走らせて、Leveled Listに追加します。

スクリプト形式Leveled Listの構造イメージ

構造イメージだけはすごくシンプル。元々の土台であるLL_Armor_Railroadに対して、MOD_AとMOD_Bが、それぞれ勝手に防具を追加するだけです。ポイントは、1個単位で追加可能であることですね。既存のレコードに対する上書きが起こりません。
スクリプトでLLに装備追加

結果、2つの防具が綺麗に追加されたLeveled Listが完成します。追特別な作業は不要で、MODをインストールするだけでこの形になります。
スクリプト形式では競合無し
これがスクリプト形式の最大のメリットで、複数のMODで同じLeveled Listを変更しても競合しません。

スクリプト形式Leveled Listのデメリット

お手軽な反面、非常に大きなデメリットが。個人的にはこのデメリットがでかすぎる為、スクリプト形式は極力使わない方が良いと思ってます。単体追加できるので構造イメージはシンプルなんですが、動作はあまりシンプルじゃないです。

追加後の変更作業が不可能

一度追加した以降はセーブデータ依存となり、事後の変更ができません。対象レベルの変更や個数、特定のLeveled Listからだけ削除したい等、こうした修正作業ができないです。リセット対象ではない為、30日待機とかしても意味無いです。
また、プラグインから稼働中のLeveled Listの状態を確認できない為、数が増えると管理も非常に厄介に。

もし変更する方法あったらすいません、削除用のスクリプト走らせて消せないかな、とか試しましたがダメそうだったので。holotapeからLeveled Listを操作できるMODでも、戻せる機能を実装した物が無い為、恐らく無理だと思います。

(推測)アンインストール後にゴミが残る

目に見える形で確認ができない為、推測になってしまいます
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


以上、おしまいです!

 

Copyright © 2015 Fallout Hakoniwa DIY All rights reserved .

S.kutsumiya@gmail.com