Wet and Coldとの比較
機能的にはWet and Cold SEと同じようですが、何が違うのかというと、負荷が下がっているということのようです。
NPCへのスクリプトの配布にSPIDを使っているため、Cloakによる監視がないということのようです。
エフェクトが軽量なものになっているようです。
Skyrim AEで動作させるには
このModはSKSEのDLLを含んでおり、Skyrim SE (1.5.97)でしか動作しないようです。
とはいえ、DLLが担当する処理はActorが持っている防具(マントやフードの類)の検出だけのようです。この程度であればPapyrusで書き直すことは容易です。
所持品の検査をPapyrusで書き直し、DLLの動作チェックを削除することで、Skyrim AEで動作するようにできました。
Survival Mode Improved – SKSEと連動させる
Survival Mode Improved – SKSEはベセスダ製のサバイバルモードをSKSEのDLLで再実装したものです。colinswrath and CordialCupidによる作品です。
Cold Region Behaviorは独自の地域判定処理を行っているようですが、Survival Mode Improvedとは異なるロジックのようで、同期が取れていません。
ベセスダ製のサバイバルモードはそこらじゅうが寒い地域とされていて、HUDに雪のアイコンが出現していましたが、Survival Mode Improvedは寒いとされる地域が大幅に減少します。明らかに雪が降っていて寒そうな地域にいる時や、天候が雪の時にのみ、HUDに雪のアイコンが出現します。
一方でCold Region Behaviorはそこらじゅうで吐く息が白くなり、水に入ると霜で真っ白になってしまいます。ベセスダ製のサバイバルモードに近いようですが、それでも若干のズレがあります。
Survival Mode Improvedと連動させることで、HUDの雪アイコンと吐く息が白くなる地域が同じになります。
Survival Mode Improvedには寒さを示すグローバル変数が用意されています。これをCold Region Behaviorのスペルの条件式に組み込むことで連動が可能になります。
なお、Cold Region Behaviorのスペルの条件式は重複や無駄なものが多く混じっておりかなりおかしいので、精査した方がいいです。
まず、CRB_PlayerColdRegionDetectSpellは無駄なのでMagic Effectを削除します。とはいえ空にはできないので、AbBlank(Skyrim.esmの0xEB7EA)ひとつに差し替えます。
CRB_ColdRegionDetectGlobal = 1
を使っている条件式をすべて削除します。これがCold Region Behaviorによる寒い地域の判定で、寒い地域では1になるようです。
CRB_IsColdInterior = 1 OR IsInInterior = 0
を使っている条件式をすべて削除します。「寒い屋内扱いのセルにいる、または屋外にいる」という条件ですが、これもCold Region Behaviorによる寒い屋内の判定のようです。
かわりとなる条件式はSMI_CurrentAmbientTemp > 200
になります。SMI_CurrentAmbientTemp
はSurvival Mode Improvedに用意されている寒さを示す度合いです。概ね以下のようになっているようでした。
天気 | SMI_CurrentAmbientTemp の値 |
---|---|
晴れ | 95 |
雨 | 145 |
雪 | 295 |
大雪 | 545 |
地域 | SMI_CurrentAmbientTemp の値 |
---|---|
暖かい | 95 |
寒い | 375 |
地域と天気、そしておそらく時間帯によっても変化すると思われますが、「200より大きい」で大丈夫そうです。