読者です 読者をやめる 読者になる 読者になる

Skyrim箱庭DIY

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

【Skyrim】Leveled NPCとTemplateの構造について



スポンサーリンク

NPC用のLeveled List、Leveled NPCのお話です。

基本的にはItem用のLeveled ListであるLeveled Itemと同じなのですが、アイテムと違ってそのまま使われないことが多いです。Leveled Listに入ってるNPCをTemplateとして、AIやステータス等、なにかしら変更して使われてます。Templateを使って変更したNPCが更にTemplate指定されたりと、色々使い回されてわかりづらいです。

面倒でわかりづらい物は図で視覚化してみると理解しやすいので、ちょっとまとめてみました。あまりNPCのスポーン系をさわったことないので、間違いあったらすいません。

Leveled Listの基本的なことは過去記事にて。

Leveled NPCの基本構造

WhiterunとSolitudeの衛兵を1人づつ、Leveled Listからセルに誕生するまでの流れを図にしてみました。どちらの衛兵も配置場所こそ決まってますが、スポーンする度にLeveled Listの恩恵で、異なる衛兵が誕生します。

※実際のフローはLveled Listが起点ではなく、スポーンする各衛兵を起点にしてLeveled Listから「吸い上げる」イメージだと思います。参照リンクのわかり易さ優先ということで。

LeveledNPCの構造

ACHR:0003706AのWhiterunの衛兵がスポーンする流れをざっくり説明。「NPC_」はBase ID、「ACHR」はRef IDに相当します。

  1. Leveled Listの中には帝国兵だけが9人居ます。まだ実体の無い「霊体」みたいなもんです。この中のどれか1人が選択されます。
  2. Leveled Listの「霊体」NPCから抽選で1体が選ばれ、このNPCのTemplateに使います。Leveled ListからNPCを抽出する為の「」。この時点ではまだ帝国兵です(※Leveled Listに9人のシャアが居て、このNPCがフル・フロンタルみたいな物。意味不明だったらすいません)
  3. 「器」NPCを更にTemplate指定して、Factionごとの雛形衛兵を作ります。この例ではFaction設定や装備を変えてWhiterun衛兵の雛形に変更してます。
  4. 「雛形」をさらにTemplateにして、個別の「衛兵」を作ります。
  5. セルに配置された「実体」に入ってスポーン完了!

流れとしてはこんな感じだと思います。

Templateまみれでわかりづらいですが、これのおかげでFaction毎に大量のNPCやLeveled Listを作成せずとも、似たようなの流用して装備とAI変えるだけで済んでます。

 

Leveled NPCの構造詳細

TES5Editで見ながら進めます。基本説明でつけた番号と名前を使います。霊体とか器とか僕が勝手につけた名前です。くれぐれも他で使わないでくださいw

 

1.Leveled List

全部載せると長いので一部のみで。

帝国兵のLeveledList

9人の帝国兵がいずれもLV1~の設定になってます。Calculate方法がいずれの場合でも、1/9のランダムですかね。この帝国兵はLV20~LV50の間でプレイヤとレベル同期します。

Referenced Byは1個だけで、「器」NPCのみがこのLeveled Listを使ってます。

 

2.「器」NPC

Leveled Listから選ばれた1人をTemplateにしたNPCです。1.のLeveled ListがTemplate指定されてます

器NPCが指定してるTmplate

 

Template FlagsにはFactionAI Packageが設定されてないので、これらは引き継いでません。ここで改めて設定されてます。でもまだ帝国兵です。

器NPCのTemplateFlags

Referenced Byは90個。大半はテストセルに配置されたNPCになってます。あとは各Factionの「雛形」に作り変える為の参照。

 

参照の一部。それぞれの雛形作るために、各Factionぽい物から参照されてます。勿論「Whiterun Guard」からも。

器NPCの参照元

 

3.「雛形」NPC

Whiterunの衛兵を見ます。「器」がTemplate指定されてます。

雛形NPCのTemplate指定

 

Template Flagsからは、Faction、BaseData(名前やConfig等)、InventoryKeywordが外れてます。これらを「器」NPCから引き継ぐと帝国兵になってしまうからでしょうね。

雛形NPCのTemplateFlags

いかにも「Whiterun衛兵の雛形」といったEditorIDしてます。

 

Referenced Byは33個。これを雛形に個々の衛兵が作られてるようです。一部はこのままセルに置いてる模様。

雛形NPCの参照元

 

4.「衛兵」NPC

様々なTemplateを使い回し、個別で完成した衛兵の中の1人です。ルーツを辿ると別Factionにも同じNPCがいることでしょう。

「雛形」がTemplate指定されてます。

衛兵NPCのTemplate指定

 

AI PackageとKeyword以外がTemplateから引き継がれています。AIを共用化しちゃうと場所によってキョドりそうですしね。名前は「雛形」から引き継がれてるので、ここでは空っぽです。

衛兵NPCのTemplateFlags

 

Referenced Byは1個。最終的な実体となるACHR:0003706Aです。無事到達!

衛兵NPCの参照元

 

まとめ

  • リソース共有の為にLeveled NPCを多くのNPCで使い回す
  • 使いまわす時はTemplateとして指定する
  • Template Flagsの設定で使い回す項目を選べる
  • 使い回して雛形を作り、個別のNPCに展開する

 

ぱっと見ややこしいだけで、別に難しいことをしてる訳ではないようです。これはあくまで一例なので、物によってTemplateの回し具合が色々異なると思います。とはいえ基本は同じで、「使い回して新たな雛形を作る」ことです。これをしないとNPC毎に膨大な量のLeveled ListとNPCを作り直さないといけないので、労力もメモリも大変なことになりそうです。

見つけたNPCから元のLeveled Listを探したいことの方がほとんどだと思います。この作業を逆回しにして、Templateをたどっていけばいつか見つかります。

 

おまけ

透明NPCが発生するバグに遭遇した場合

このTemplateの下ですが、大抵はFoxRaceになってます。

Template指定の下のFoxRace

本来ならえらいことですが、Template FlagsでUse Traitsのチェックが入ってれば、Templateの種族が使われるので問題無いです。大抵Template使うなら種族も使ってるでしょうし。

稀に(CKのバグ?)、Tempalte Flagsの設定がされてるにも関わらずTemplate指定が空欄の場合があります。この場合、有無を言わさずFoxRaceが適用されてしまうので、透明だったり、ことによると確定CTDになってもおかしくない気がします。esp見ればすぐわかるので、心当たりのある人は是非。

関連記事あります。

 

Skyrim.esmにReferenced BYが出ない

別記事で出し方説明ありますので、そちらをどうぞ。

 

もしMODで追加した「霊体」がアンインストールで消えたら?

首無しNPCが発生します。詳しくは別記事にて。

 

こんなとこでお開きです!