バニラの入植者はバリエーションに乏しく、数が増えると見覚えのある顔がダブってきます。そこでThe new settlers a plus Overhaul vanilla(以下、Newface Settlersと呼称)の出番。バリエーション豊かな入植者達がやってきます。
更にバリエーションを増やすなら、入植者に子供NPCを加えるOrphans of the Commonwealthもありますね。
この両者の併用に、問題が有るのか無いのかを調べます。
- Newface SettlersとOrphansは競合するのか?
- 入植者用のLeveled Listを確認
- 男女分けされたLeveled Listを確認
- Leveled Listを比較
- Newface SettlersとOrphansとの互換性
Newface SettlersとOrphansは競合するのか?
以前に、なんかお互いに悪さする等の疑惑を見た気がします。例によって『競合だ、干渉だ!』と騒ぎ立てる割に、FAを見た覚えは無いのですけど・・・。
ちなみにOrphansのDescriptionには、
Incompatible
- Anything that modifies the LCharWorkshopNPC file
- Anything not listed that modifies settlers
の文言があります。まあこれは当然の話でして。
LCharWorkshopNPCは、ビーコンでやってくる入植者のLeveled Listです。入植者のバリエーションを増やすには変更が不可欠な為、どちらのMODもこれを変更しています。これがキモなので、普通ならどちらか機能しなくなる筈です。
二行目は、Descriptionに書いてある互換MODリストのことですね。
結論から先に言っちゃいます。この両者の併用は、Orphansをロードオーダー後方にすることで、
レコード上は競合するけど、動作上は全く支障無い
です。
・・・何言ってんの?って感じですが、この2つ、面白い関係にあるんです。
入植者用のLeveled Listを確認
前述の入植者NPC用のLeveled List、LCharWorkshopNPC(00113341
)を見ます。競合レコードはこれ1個のみ。Newface Settlersはプラグイン以外のassetを持たないので、Orphansのba2ファイルには競合リスク有りません。
詳細を見るまでもなく、LLCT(Leveled ListのEntry数)を見れば一目瞭然。Newface Settlersで抽選対象NPCが58(男女29人ずつ)に追加されますが、その後でOrphansに上書きで潰されてます。10になっちゃいました。
ただしOrphansでの10は、NPC10人ではなくLeveled List10個。Leveled ListからLeveled Listを呼ぶ、よくある手法です。
内訳を見ると、
- LCharWorkshopNPCFemale(
001243CD
)x4個 - LCharWorkshopNPCMale(
001243CC
)x4個 - LCharWorkshopNPCFemaleChild(
xx006AE2
)x1個 - LCharWorkshopNPCMaleChild(
xx006AE3
)x1個
これはEditor ID名の通り、
- 女性入植者4/10 = 40%
- 男性入植者4/10 = 40%
- 女性入植者(子供)1/10 = 10%
- 男性入植者(子供)1/10 = 10%
という確率設定をしています。複数並べて確率調整するのは、Leveled List運用のお約束です。子供20%のespなので想定通り。
さて、子供用の2つは置いときまして(バニラに無いから競合対象外)、前2つの大人用Leveled Listが気になります。どんな中身なのやら?
男女分けされたLeveled Listを確認
まず女性用、LCharWorkshopNPCFemale。Newface Settlersで上書きされてますね。29個あります。
男性用、LCharWorkshopNPCMale。同じく上書きされており、こちらも29個。
合わせると58個ですね。最初に見た、潰される前のLCharWorkshopNPCも58個でした。
Leveled Listを比較
これまで3つのLeveled Listが出てきました。
- LCharWorkshopNPC(入植者Leveled List 、Orphansに潰される)
- LCharWorkshopNPCFemale(入植者女性用Leveled List、 最終レコード)
- LCharWorkshopNPCMale(入植者男性用Leveled List、 最終レコード)
この3つを比較します。LCharWorkshopNPCは、Orphansに潰される前の58個の方を対象とします(つまりNewface Settlersのレコード)。一杯ありますが、マスの埋まり方だけ見ればOK。
LCharWorkshopNPC
LCharWorkshopNPCFemale
LCharWorkshopNPCMale
EncWorkshopNPCMaleFarmer01Template
"Settler"
[NPC_:00113340]
EncWorkshopNPCMaleFarmer01Template
"Settler"
[NPC_:00113340]
EncWorkshopNPCMaleFarmer02
[NPC_:00113343]
EncWorkshopNPCMaleFarmer02
[NPC_:00113343]
EncWorkshopNPCMaleFarmer03
[NPC_:00113344]
EncWorkshopNPCMaleFarmer03
[NPC_:00113344]
EncWorkshopNPCMaleFarmer04
[NPC_:00113345]
EncWorkshopNPCMaleFarmer04
[NPC_:00113345]
EncWorkshopNPCFemaleFarmer01
[NPC_:00113346]
EncWorkshopNPCFemaleFarmer01
[NPC_:00113346]
EncWorkshopNPCFemaleFarmer02
[NPC_:00113347]
EncWorkshopNPCFemaleFarmer02
[NPC_:00113347]
EncWorkshopNPCFemaleFarmer03
[NPC_:00113348]
EncWorkshopNPCFemaleFarmer03
[NPC_:00113348]
EncWorkshopNPCFemaleFarmer04
[NPC_:00113349]
EncWorkshopNPCFemaleFarmer04
[NPC_:00113349]
EncWorkshopNPCFemaleFarmer05
[NPC_:001C2689]
EncWorkshopNPCFemaleFarmer05
[NPC_:001C2689]
EncWorkshopNPCFemaleFarmer06
[NPC_:001C268A]
EncWorkshopNPCFemaleFarmer06
[NPC_:001C268A]
EncWorkshopNPCFemaleFarmer07
[NPC_:001C268B]
EncWorkshopNPCFemaleFarmer07
[NPC_:001C268B]
EncWorkshopNPCFemaleFarmer08
[NPC_:001C268C]
EncWorkshopNPCFemaleFarmer08
[NPC_:001C268C]
EncWorkshopNPCMaleFarmer05
[NPC_:001C268F]
EncWorkshopNPCMaleFarmer05
[NPC_:001C268F]
EncWorkshopNPCMaleFarmer06
[NPC_:001C2690]
EncWorkshopNPCMaleFarmer06
[NPC_:001C2690]
EncWorkshopNPCMaleFarmer07
[NPC_:001C2691]
EncWorkshopNPCMaleFarmer07
[NPC_:001C2691]
EncWorkshopNPCMaleFarmer08
[NPC_:001C2692]
EncWorkshopNPCMaleFarmer08
[NPC_:001C2692]
EncWorkshopNPCMaleFarmer09
[NPC_:00237B66]
EncWorkshopNPCMaleFarmer09
[NPC_:00237B66]
EncWorkshopNPCFemaleFarmer09
[NPC_:00237B67]
EncWorkshopNPCFemaleFarmer09
[NPC_:00237B67]
aaaWorkshopNPCFemaleSelyanka13
[NPC_:0100082A]
aaaWorkshopNPCFemaleSelyanka13
[NPC_:0100082A]
aaaWorkshopNPCFemaleSelyanka14
[NPC_:0100082D]
aaaWorkshopNPCFemaleSelyanka14
[NPC_:0100082D]
aaaWorkshopNPCFemaleSelyanka15
[NPC_:0100082E]
aaaWorkshopNPCFemaleSelyanka15
[NPC_:0100082E]
aaaWorkshopNPCMaleSelyanin12
[NPC_:010008C6]
aaaWorkshopNPCMaleSelyanin12
[NPC_:010008C6]
aaaWorkshopNPCMaleSelyanin13
[NPC_:010008C7]
aaaWorkshopNPCMaleSelyanin13
[NPC_:010008C7]
aaaWorkshopNPCMaleSelyanin14
[NPC_:010008C8]
aaaWorkshopNPCMaleSelyanin14
[NPC_:010008C8]
aaaWorkshopNPCMaleSelyanin15
[NPC_:010008C9]
aaaWorkshopNPCMaleSelyanin15
[NPC_:010008C9]
aaaWorkshopNPCFemaleSelyanka16
[NPC_:01001802]
aaaWorkshopNPCFemaleSelyanka16
[NPC_:01001802]
aaaWorkshopNPCFemaleSelyanka17
[NPC_:01001803]
aaaWorkshopNPCFemaleSelyanka17
[NPC_:01001803]
aaaWorkshopNPCFemaleSelyanka18
[NPC_:01001804]
aaaWorkshopNPCFemaleSelyanka18
[NPC_:01001804]
aaaWorkshopNPCFemaleSelyanka19
[NPC_:01001805]
aaaWorkshopNPCFemaleSelyanka19
[NPC_:01001805]
aaaWorkshopNPCFemaleSelyanka20
[NPC_:01001806]
aaaWorkshopNPCFemaleSelyanka20
[NPC_:01001806]
aaaWorkshopNPCMaleSelyanin16
[NPC_:01001809]
aaaWorkshopNPCMaleSelyanin16
[NPC_:01001809]
aaaWorkshopNPCMaleSelyanin17
[NPC_:0100180A]
aaaWorkshopNPCMaleSelyanin17
[NPC_:0100180A]
aaaWorkshopNPCMaleSelyanin18
[NPC_:0100180B]
aaaWorkshopNPCMaleSelyanin18
[NPC_:0100180B]
aaaWorkshopNPCMaleSelyanin19
[NPC_:0100180C]
aaaWorkshopNPCMaleSelyanin19
[NPC_:0100180C
aaaWorkshopNPCMaleSelyanin20
[NPC_:0100180D]
aaaWorkshopNPCMaleSelyanin20
[NPC_:0100180D]
aaaWorkshopNPCMaleSelyanin01
[NPC_:01026F37]
aaaWorkshopNPCMaleSelyanin01
[NPC_:01026F37]
aaaWorkshopNPCFemaleSelyanka03
[NPC_:01026F38]
aaaWorkshopNPCFemaleSelyanka03
[NPC_:01026F38]
aaaWorkshopNPCFemaleSelyanka04
[NPC_:01026F39]
aaaWorkshopNPCFemaleSelyanka04
[NPC_:01026F39]
aaaWorkshopNPCMaleSelyanin02
[NPC_:01026F3D]
aaaWorkshopNPCMaleSelyanin02
[NPC_:01026F3D]
aaaWorkshopNPCMaleSelyanin03
[NPC_:01026F44]
aaaWorkshopNPCMaleSelyanin03
[NPC_:01026F44]
aaaWorkshopNPCMaleSelyanin04
[NPC_:0103BDAF]
aaaWorkshopNPCMaleSelyanin04
[NPC_:0103BDAF]
aaaWorkshopNPCFemaleSelyanka05
[NPC_:0103BDB1]
aaaWorkshopNPCFemaleSelyanka05
[NPC_:0103BDB1]
aaaWorkshopNPCMaleSelyanin05
[NPC_:0103BDB3]
aaaWorkshopNPCMaleSelyanin05
[NPC_:0103BDB3]
aaaWorkshopNPCMaleSelyanin06
[NPC_:0103BDB5]
aaaWorkshopNPCMaleSelyanin06
[NPC_:0103BDB5]
aaaWorkshopNPCFemaleSelyanka06
[NPC_:0103BDB7]
aaaWorkshopNPCFemaleSelyanka06
[NPC_:0103BDB7]
aaaWorkshopNPCMaleSelyanin07
[NPC_:010566BB]
aaaWorkshopNPCMaleSelyanin07
[NPC_:010566BB]
aaaWorkshopNPCFemaleSelyanka02
[NPC_:010566BC]
aaaWorkshopNPCFemaleSelyanka02
[NPC_:010566BC]
aaaWorkshopNPCFemaleSelyanka01
[NPC_:01060CA5]
aaaWorkshopNPCFemaleSelyanka01
[NPC_:01060CA5]
aaaWorkshopNPCMaleSelyanin08
[NPC_:010ABF9E]
aaaWorkshopNPCMaleSelyanin08
[NPC_:010ABF9E]
aaaWorkshopNPCMaleSelyanin11
[NPC_:010D388B]
aaaWorkshopNPCMaleSelyanin11
[NPC_:010D388B]
aaaWorkshopNPCMaleSelyanin10
[NPC_:010D3892]
aaaWorkshopNPCMaleSelyanin10
[NPC_:010D3892]
aaaWorkshopNPCFemaleSelyanka07
[NPC_:0111E356]
aaaWorkshopNPCFemaleSelyanka07
[NPC_:0111E356]
aaaWorkshopNPCMaleSelyanin09
[NPC_:011CF00D]
aaaWorkshopNPCMaleSelyanin09
[NPC_:011CF00D]
aaaWorkshopNPCFemaleSelyanka12
[NPC_:01225B68]
aaaWorkshopNPCFemaleSelyanka12
[NPC_:01225B68]
aaaWorkshopNPCFemaleSelyanka11
[NPC_:01231349]
aaaWorkshopNPCFemaleSelyanka11
[NPC_:01231349]
aaaWorkshopNPCFemaleSelyanka09
[NPC_:0123134A]
aaaWorkshopNPCFemaleSelyanka09
[NPC_:0123134A]
aaaWorkshopNPCFemaleSelyanka10
[NPC_:0123134B]
aaaWorkshopNPCFemaleSelyanka10
[NPC_:0123134B]
aaaWorkshopNPCFemaleSelyanka08
[NPC_:0138B5F3]
aaaWorkshopNPCFemaleSelyanka08
[NPC_:0138B5F3]
マスの埋まり方に注目すると、面白いことが見えてきます。LCharWorkshopNPCFemaleとLCharWorkshopNPCMaleを合わせれば、Orphansに潰された、Newface SettlersによるLCharWorkshopNPCの変更が復元されます。
つまり、Orphansの上書きで潰されたかに見えたLCharWorkshopNPCの最終レコードは、
- LCharWorkshopNPCFemale(Newface Settlers女性29人)x4個
- LCharWorkshopNPCMale(Newface Settlers男性29人)x4個
- LCharWorkshopNPCFemaleChild(Orphans女性(子供)23人)x1個
- LCharWorkshopNPCMaleChild(Orphans男性(子供)21人)x1個
という抽選になってます。共存できてますね。
Newface SettlersとOrphansとの互換性
流れとしては、
- Orphansに、Newface SettlerのLCharWorkshopNPCの変更が潰される
- Newface Settlersによる、男女別Leveled Listの変更は有効
- Orphansは、男女別Leveled Listを使ってLCharWorkshopNPCを上書き
Orphansが男女別Leveled Listで上書きしたのは、子供NPCの確率設定をする為でしたね。その結果、
両MODのNPCが、漏れなく全て抽選対象に納まった
という顛末です。
Leveled Listのレコードだけを見ると競合してるんですが、最終的には共存できてるという訳です。動作も問題ありません、少なくとも僕の環境では。こういうケースはレアですが(というか初めて見たかも)、競合回避手段としても使えそうですね。3つ以上の競合には通じないですが・・・。
最後に念のため。Newface Settlersをロードオーダー後方に置いてしまうと、Orphansが一方的に潰されます。子供NPCがスポーンしなくなる筈です。理由は、LCharWorkshopNPCのロードオーダーを入れ替えて検討してみれば、分かる筈。
以上、おしまいです!