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

Skyrim箱庭DIY

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

Skyrimで高レベルの山賊がNordic Carved(ノルド刻印)だらけになる理由(解決編)



スポンサーリンク

ノルド刻印だらけになる件の解決編です。OBIS使うと特に顕著になります。スクリプトで装備をバニラ山賊に配ってる仮定して、強引にプロパティだけ外してみたりと実験してみましたが、実際はソースがしっかりとありましたので、それを見た上で対策を考えます。

スクリプトソースからノルド刻印の記述を探す

DLC2Init "Init quest"で動いているスクリプト、「DLC2_QF_DLC2_MQ04_02016E02.pex」のソースを確認します。Scripts.rarの中に入っていた「DLC2_QF_DLC2_MQ04_02016E02.psc」です。

DLC2Initでのノルド刻印装備の扱いの正体

Nordic Carved武器と鎧一式を、「LitemBanditBossxxx」のLeveled Itemに追加しています。

武器はLV23から、防具はLV25からの追加になっています。

一部の山賊の持ち物を強引に入れ替えている印象があったのですが、実際はスクリプトでLeveled ListにNordic Carved装備を追加しているだけでした。

仮説を立てるのはいいけど思い込みは良くないという、まさに実例です、すいません。思い込みが無ければ、「ソースが無い」と考えてた状況下でも、もう少しLeveled List触って実験しても良い筈なので。

 

前回の実験に対する追試

前回の整理として試します。ソースを書き換え、胡散臭くない方法でNordic Carved装備の排除を確認します。ちょっと丁寧めに書いておきます。僕自身スクリプトあまり触った経験が無いもので。

※これそのものは解決策になっていません。スクリプトに興味ない人は、「ノルド刻印だらけ現象の解決策」まで飛ばしてください

 

CKでQuestを開く

ソースをルーズフォルダに入れた状態でDragonborn.esmを開き、CKで「DLC2Init」を開きます。

CKで開いたDLC2Init

 

ここからソースのエディットできます。

CKからソースをEdit

 

ノルド刻印装備周りのソースを変更

前回同様、防具だけ外します。削除するのは次の3つです。

  1. Leveled ItemにNordic Carved装備を追加している箇所
  2. Nordic Carved装備のProperty
  3. Leveled ItemのProperty

 

それぞれ見つけてコメントアウトしていきます。まずは装備。235行目あたりから。武器と防具のLeveled ItemへのAddFormです。武器は無視して防具だけコメントアウト。

; add armor and weapons to bandits
LItemBanditBossBattleaxe.AddForm( DLC2NordicBattleaxe, 23, 1)
LItemBanditBossGreatsword.AddForm( DLC2NordicGreatsword, 23, 1)
LItemBanditBossWarhammer.AddForm( DLC2NordicWarhammer, 23, 1)
LItemBanditBossMace.AddForm( DLC2NordicMace, 23, 1)
LItemBanditBossSword.AddForm( DLC2NordicSword, 23, 1)
LItemBanditBossWarAxe.AddForm( DLC2NordicWarAxe, 23, 1)

;LItemBanditBossBoots.AddForm( DLC2ArmorNordicHeavyBoots, 25, 1)
;LItemBanditBossCuirass.AddForm( DLC2ArmorNordicHeavyCuirass, 25, 1)
;LItemBanditBossGauntlets50.AddForm( DLC2ArmorNordicHeavyGauntlets, 25, 1)
;LItemBanditBossHelmet50.AddForm( DLC2ArmorNordicHeavyHelmet, 25, 1)
;LItemBanditBossShield.AddForm( DLC2ArmorNordicShield, 25, 1)

 

続いて装備のProperty。513-517行目。

;Armor Property DLC2ArmorNordicHeavyBoots Auto
;Armor Property DLC2ArmorNordicHeavyCuirass Auto
;Armor Property DLC2ArmorNordicHeavyGauntlets Auto
;Armor Property DLC2ArmorNordicHeavyHelmet Auto
;Armor Property DLC2ArmorNordicShield Auto

 

最後にLeveled ItemのProperty。494-500行目あたり。

LeveledItem Property LItemBanditBossBattleaxe Auto
;LeveledItem Property LItemBanditBossBoots Auto
;LeveledItem Property LItemBanditBossCuirass Auto
;LeveledItem Property LItemBanditBossGauntlets50 Auto
LeveledItem Property LItemBanditBossGreatsword Auto
;LeveledItem Property LItemBanditBossHelmet50 Auto
LeveledItem Property LItemBanditBossMace Auto
;LeveledItem Property LItemBanditBossShield Auto
LeveledItem Property LItemBanditBossSword Auto
LeveledItem Property LItemBanditBossWarAxe Auto
LeveledItem Property LItemBanditBossWarhammer Auto

 

コンパイルしてespをセーブ

「Build」からコンパイルして、エラーが出なければスクリプトは終了です。「Edit Properties」から、外したPropertyが入っていないことを確認します。Autoなので基本勝手に接続してくれてます。

CKでソースのコンパイル

終わったら名前をつけてespをセーブします。Property接続がDragonborn.esmと変わっているのでespも必要です。前回、強引に切り離すespを作りましたが、あれが正当に作られる感じです。

 

TES5Editでespを確認

TES5EditでQuestを見てみます。Nordic Carved装備関連とLeveled Itemのプロパティが削除されている筈です。

装備のプロパティ。綺麗に削除されています。

TES5EDITでQuestからPropertyの削除を確認

 

LeveledItemのプロパティ。こちらも削除済み。バッチリです。

TES5EDITでQuestからPropertyの削除を確認2

 

ちなみに前回のように、スクリプトを修正せずにPropertyだけ無理に外した場合、こんなエラーログ吐いてました。AddFormが正常にうごかないよ!ってことですね。今回はソースから直しているので大丈夫です。

[04/04/2015 - 04:28:53PM] Error: Cannot call AddForm() on a None object, aborting function call
stack:
[DLC2Init (04016E02)].DLC2_QF_DLC2_MQ04_02016E02.Fragment_2() - "DLC2_QF_DLC2_MQ04_02016E02.psc" Line 243
[04/04/2015 - 04:28:53PM] Error: Cannot call AddForm() on a None object, aborting function call
stack:
[DLC2Init (04016E02)].DLC2_QF_DLC2_MQ04_02016E02.Fragment_2() - "DLC2_QF_DLC2_MQ04_02016E02.psc" Line 244
[04/04/2015 - 04:28:53PM] Error: Cannot call AddForm() on a None object, aborting function call
stack:
[DLC2Init (04016E02)].DLC2_QF_DLC2_MQ04_02016E02.Fragment_2() - "DLC2_QF_DLC2_MQ04_02016E02.psc" Line 245
[04/04/2015 - 04:28:53PM] Error: Cannot call AddForm() on a None object, aborting function call
stack:
[DLC2Init (04016E02)].DLC2_QF_DLC2_MQ04_02016E02.Fragment_2() - "DLC2_QF_DLC2_MQ04_02016E02.psc" Line 246
[04/04/2015 - 04:28:53PM] Error: Cannot call AddForm() on a None object, aborting function call
stack:
[DLC2Init (04016E02)].DLC2_QF_DLC2_MQ04_02016E02.Fragment_2() - "DLC2_QF_DLC2_MQ04_02016E02.psc" Line 247
[04/04/2015 - 04:28:53PM] Error: Cannot add a None inventory event filter to this reference alias

 

ゲーム内で山賊の装備を確認

後編での実験と同じ条件で、ゲーム内でBandit Chiefをスポーンさせてみます。結果は以下の通り。Nordic Carved装備を着ているBandit Chiefはいませんでした。前回は強引に装備を消しましたが、これだと比較的安全に装備を消すことができました。

修正したスクリプトでの山賊の確認

前回の確認ということで、一連の作業をしてみました。が・・・ここまでやっておいてアレですが、

個人的にはあまりこの方法は推奨しません

何でかというと、バニラ環境というものはMODを作るにおいて共通フォーマットである為、あまり安易に書き換えないほうが良いと思うからです。でも、はいわかってます。そんなこと言ってたら何もできないですよね?ただ、セルとかスクリプトとか、一度稼動してしまうとあとで変更しづらい物に関しては、なるべくバニラ環境を変更しないほうがいいと思います。

そんな訳で、スクリプトは触らずにLeveled List(Leveled Item)でこの問題の対処をてみようと思います。

※当初、スポーン済みの山賊に対して、「元々の装備を削除した上でNordic Carved装備を配っているのでは?」と思ったのですが、ソースを見ればただLeveled Listに追加しているだけのスクリプトだったわけです。この方式だと、スクリプトを触らず「完全削除」するには、Leveled Listの新設やOutfitの変更等、個々のNPCに対して相当の手間が必要かと思いますが、「割合を減らす」だけなら簡単です。

ノルド刻印だらけ現象の解決策

 スクリプトの正体が、単にLeveled Itemに追加しているだけと分かった以上、強引に装備を上書きされることはありません。Leveled Itemの変更で、Nordic Carvedオンリーにしない為の対策をしてみます。

 

Leveled Itemを書き換える

「LitemBanditBossCuirass」です。胴だけ例をやります。他部位も変わりません。SSのように、LVLFの項目を変更し、割り当てるアイテムの計算方法を変更します。この設定だと、該当LVで装備できる「いずれか」がランダムで割り当てられるようになります。スクリプトでNordic CarvedがLV25に追加されても、Nordic Carvedオンリーにはなりません。

LitemBanditBossCuirassの計算方法変更

Leveled Listの装備割り当て方法については、過去記事を参照してください。

 

またBandit Chief10人をスポーンさせます。見ての通り、Nordic Carvedを着てるのも居ますが、他の装備の山賊も多数居ます

ゲーム内での新LeveledListの確認

 

「Chief」らしいLeveled Itemに変更

オンリー化は回避できましたが、なんか雑兵みたいなチープな装備のもいるんで、Chiefらしくありません。もうちょっとブルジョア化してみます。

ChiefっぽくしたLeveledList

LV1からSteelPlateです。あとはEbony、Nordic Carved、Dragonplateです。Dragonplateの確率を下げる為に、他は2つづつ書いてます。Nordic Carvedはあと1個スクリプトで付きますので、ここでは1個だけ。

 

同じく10人スポーン。確率なので絶対ではないですが、DragonPlate1人、Ebony4人、Nordic Carved2人、SteelPlate3人となりました。

ゲーム内でChiefっぽくしたLeveledListの確認

 

このLeveled Listの方式を変えるのって、他のNPCでも装備の均一化を避ける為にも便利だと思います。部位ごとの装備も結構バラけてきますし、正規兵じゃない山賊ちっくな感じがあるかな?と。

最終的にはこれだけのことでオチをつけてスクリプトどこいった?感が残ってすいません、またこういうことあるとは思いますが・・・。結局、まだまだ僕もSkyrimを知れてない、ということです。

アタリのつけ方の参考や、反面教師的な感じにも、役に立てば幸いです。といったあたりで終わっておきます。