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

Skyrim箱庭DIY

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

SkyrimのLeveled List(Leveled Item)の構造と、追加、削除方法



スポンサーリンク

前回は、山賊Aの装備がプレイヤーのレベル次第で変化していくようなLeveled Listの概略と、Skyrim内での変化の様子を説明しました。今回は、装備品のLeveled Listである「Leveled Item」の中身について具体的に説明します。TES5Editで覗いていきます。

※参照したい項目が一目で確認できるので、CK使うより楽です。

前回の記事はこちら

 

 山賊AのMODの概略

前回の例に使った山賊AのMODです。実験用なので既存の山賊1名を書き換えて使っています。

山賊A-MODのespの中身

Leveled Item 01000D64 LitemArmorHelmetHeavy1

これがまさしくアイテムのLeveled List、「Leveled Item」です上にもう1個ありますが使ってませんので無視します。適当なLeveled Listをコピーして使っているので、名前がヘルメットになってますが、中身は鎧です。ここにもベセスダの命名規則が生きています。

Non-Player Character 000E962B SanzokuA

前回の主人公。20人スポーンのSSも、これがx20沸いてます。

Outfit  01000D65 ChefOutfit1

NPCの装備品リストです。ここに書かれた装備をNPCが着ます。これも使いまわしています。ChiefのOutfitからパクってます。

 

SanzokuAのMOD作るのに、書き換えた項目はこの3つだけです。それぞれ中身をみていけば、Leveled ListがどうNPCに紐付けされているのか分かります。1個づつ見ていくことにします。

 

Leveled List(leveled Item)の中身を見る

山賊Aの装備品のレベルドリスト"

まさに前回の記事で説明した通りのリストが書いてあります。それだけです。簡単なもんでしょ?Leveled List Entryの中の「Count」は、所持する員数です。これが0だとマッパですし、2以上だと複数個所持になります。毎回倒した山賊が同じ鎧2個持ってるよ!?なんてことがあったら、多分ここのCountが2になってます。

 

Leveled Listの追加と削除

例えば、このリストに「LV10でSteelArmor1個」のエントリを追加すれば、LV10以降でSteelArmorが装備候補に入ります。逆にリストにあるエントリを削除すれば、その装備は選択候補から消えます。

Leveled ListのツリーのTOPで、「Remove」や「Add」ができます。ここでRemoveするとこのLeveled List丸ごと消えますので注意してください

Leveled Listへの追加手順

 

Addして、LV10に「Steel Armor」を追加してみました。

Leveled Listへの追加例

 

個別装備のツリーから「Remove」すれば、Leveled Listから消えます。

leveled Listからの削除手順

「LLCT」のところのCountは、このLeveled List(LL)に登録してある装備の個数です。直接書き換えなくてもアイテム数に応じて自動で変わってくれますが、一応チェックしときましょう。

 こうした作業をすることで、MODで追加した装備をLeveled Listに組み込むことが可能になります

 

では、次にこのリストがどこに紐付けされているか見てみます。リストの読み書きが分かっても、NPCに渡す手段が分からないと、使えません。このリスト一体誰が使ってるのよ?って話です。

 

山賊Aの中身を見る

山賊Aのespで変更している箇所

山賊A(Form ID 000E962B)の中身です。項目が膨大なので変更してない所は非表示にフィルタしてます。上の方はLVをプレイヤーと同期、SS撮影のために武器を没収、名前変更、スキル0化。SS撮影の都合で変更した項目です。

 

 一番下のDefault outfitの項目、最初に説明した通り、山賊Aの装備品になります。なんか怪しいですよね?これ。だって「装備品」のLeveled Listを触ってる訳ですし。こんなかんじで横に書いてあるアドレスを探っていくと、目的にたどり着けたりします。(そんなこんなで色々解析しました)

という訳でOutfitに行きます。

 

Outfitの中身を見る

Outfitの中身

ChefOutfit1 (Form ID 01000D65)の中身です。赤枠の所に装備品が書かれています。先ほど見ていたLeveled Listそのものを着ていますね。このOutfitが指定されたNPCは、赤枠内のLeveled Listに従って、装備が決まります。

Leveled Listではなく、Outfitに直接装備を書くことも可能です。ぼくの大好きなSteelArmorとかね。勿論その場合は、レベルに関係なく書いた装備しか着てくれません。

頭装備だけはレベル無関係で同じ装備をしてほしい、なんて時は、頭装備だけ直接書けばOKです。

 

Outfitの中にLeveled Listと、固定枠の装備を同時に追加

もう2つほどOutfitに追加してみたのが下のSSです。軽装篭手装備のLeveled Listと、レベルに関係無く固定枠としてHide Bootsが追加されています。

Outfitへの装備の追加

 TES5Editはアドレス(Form ID)の前の4文字で、そのアドレスが何のデータなのかを識別できます。上のSSでは「OTFT」はOutfit、「LVLI」はLeveled List、固定枠のHide Bootsは「ARMO」になってます。Armorですね。これを使って、一目で何のデータか判断することが出来るわけです。

 

 また、ややこしいですがLeveled Listの中にLeveled Listを登録することも可能です。使いまわしたかったり更なる細分化したかったりする時にどうぞ。

 ツリー化したLeveled Listについては、別記事で紹介しています。

 

装備品以外のLeveled List

Leveled Item以外には、Leveled NPCLeveled Spellといったものもあります。また、Leveled ItemをOutfitに設定した場合は「Leveled Listの中身を着る」という形になりましたが、MerchantFactionのNPCが持つコンテナの中に入れれば、「Leveled Listの中身を売る」といった形で、商品一覧になります。使い方色々です。

基本的なLeveled Listとしてのフォーマットはどれも同じなので、ひとつ分かれば応用できると思います。

 

 

スクリプトによるLeveled Listの追加

espによるLeveled List変更の場合、常に競合リスクが発生します。Wrye BashでBashed Patchを作れば別に問題有りませんが、スクリプトを使うと競合の心配無くスマートに追加できると思います。 

欠点は、どのみちBashed Patchが必要な環境だった場合、変更作業が二度手間になることです。Bashed Patchによる最終的なLeveled Listに対して、更にスクリプトで追加が発生する為。

Dragonbornでは、追加されるノルド刻印装備をスクリプトによってLeveled Listに追加しています。別記事で軽くソースを紹介してますので、参考にしてみてください。

 

 

今回はここいらで切ります。まだ続く予定です。Leveled Listの競合の話、なにもしてませんしね!

 

 続きはこちら。

 

Leveled Listの具体的な追加例の記事。