こんにちは、まとんです。
ウインドヘルムを雪景色に変えてみました。

そもそも周辺は雪マップなのに、ウインドヘルム内は雪がほとんどないとか、違和感ありすぎ。
雪景色のModを探してきて入れるだけなのですが、Community Shaders のPBR環境下だとなかなかうまくいかなくて大変でした。
私の環境だけかもしれませんが、同様の現象で悩んでいる方のために私がやった対応をご紹介します。
用意するもの
Icy Windhelm

今回の主役。ウインドヘルムを雪景色に一変させてくれる良Mod。
バニラやENB環境の場合は、ポン入れするだけでOK。
ほぼメッシュしかいじらないので、お好みのテクスチャと互換性があります。
PG Patcher

メッシュをパッチして、視差とかPBRとか混在しててもなんかうまいことやってくれるすげーMod。
Base Object Swapper

設定ファイルを使って、既存のオブジェクトを別のオブジェクトに入れ替える便利Mod。
PBR下での問題点
私の環境では、Icy Windhelmを入れてPG Patcherを実行したところ、2つの問題が起きました。
問題点1:地面の境目がくっきり
雪の色の違いで境目が目立ってしまう個所が、そこかしこに発生。

問題点2:雪の吹き溜まりの色が違う
雪の吹き溜まりも地面と色が合いません。

原因と対策
原因1:頂点カラーを持つメッシュがある
問題点1は、頂点カラーが設定されたメッシュと未設定のメッシュが混在するために発生していました。
昨今のゲームは雨の時の濡れ効果とか炎の照り返しとか、役割の違うテクスチャをいくつも重ね合わせて状況に応じた視覚効果を作り出しています。
そのため、ベースカラーを決めてしまう頂点カラーは邪魔者扱いされることが多いようです。
今回は、スノーシェーダーが頂点カラー持ちのメッシュにも適用されて色が混ざってしまうのがマズかったようです。
対策1:メッシュの頂点カラーを削除
これの解決にはメッシュから頂点カラーを削除し、テクスチャとシェーダーの色がそのまま反映されるようにすればOKです。
PG Patcherを使って行います。
MO2の場合、空のModを作成し「PBRNifPatcher」フォルダを作成します。さらにその中にjsonファイルを作成します。


ファイル名は何でもOKです。
jsonファイルに次のコードを記述します。
[
{
"texture": "landscape\\snow01",
"emissive": false,
"parallax": true,
"subsurface_foliage":false,
"subsurface": false,
"specular_level" : 0.02,
"subsurface_color": [1,1,1],
"roughness_scale" : 1,
"subsurface_opacity" : 1,
"displacement_scale" : 1.0,
"vertex_colors": false
}
]
ポイントは「”vertex_colors”: false」の一文です。
これでスノーシェーダー(snow01.dds)が設定されているすべてのメッシュから頂点カラーが削除されます。

その他の設定値は、一緒に使っている風景Modのsnow01から引用するのが良いと思います。
私は ATHEUZZ Landscapes を使っているので、それの「PBRNifPatcher」フォルダから「”texture”: “landscape\\snow01″」を探し、設定を丸パクリしました。
設定が終わったらModを有効にし、PG Patcherを実行します。
原因2:そもそもスノーシェーダーが適用されてない
頂点カラーを削除しても、雪の吹き溜まりは明るいままでした。
当たり前といえば当たり前なのですが、雪の吹き溜まりはそもそも単独で「雪」なので、シェーダーではなくメッシュ+テクスチャでオブジェクトが作られているようでした。
たぶんこれがスノーシェーダーとの不一致の原因だと思うのですが、ちょっと自信がありません。
というのも、ワールドスペースにも同じ雪の吹き溜まりはあるのですが、こちらはシェーダー関係なく地面ときれいに同化してます。
なので、根本原因ではない気がします。

少なくとも、私の環境ではウインドヘルム内のすべての雪にシェーダーを適用したらうまくいったので、その方向で対処しました。
対策2:シェーダー付きの雪の吹き溜まりを作って入れ替え
屋外は問題なさそうなので、シェーダー付きの雪の吹き溜まりを別途作り、Base Object Swapper(以下、「BOS」)でそれと入れ替えることで対策しました。
まず、色がウインドヘルム内の雪の吹き溜まりのForm IDを調べます。

ゲーム中にコンソール画面を開いた状態でオブジェクトをクリックすると、Form IDが分かります。
この記事を参考に、事前にオブジェクトの選択状態を分かりやすくしておくと作業が捗ります。

そうしたらSSEEditを起動し、Skyrim.esmを読み込みます。
調べたForm IDを検索し、右クリック→「Copy as new record into…」で新しいespファイルにコピーします。
Editor IDは、分かりやすい名前を付けておいてください。


Modの上限枠を圧迫しないよう、ESLフラグ付きにしておくのがおすすめ。

既存のespファイルに追加したい場合は、そのファイルを選びます。
そうしたら、コピーしたレコードの「Material」に「SnowMaterialObject1P」を設定します。

この作業を、ウインドヘルム内のすべての雪の吹き溜まりに対して行います。

雪の吹き溜まりは多くありますが、オブジェクトの使いまわしなので設定レコードはそれほど多くありません。
1つ吹き溜まりを入れ替えたら、まだ色が違うところのForm IDを調べて、、、という感じで何回かチェックしながら進めると無駄がないです。
次にBOSの設定ファイルを作り、雪の吹き溜まりを作成したレコードと入れ替えます。
解決策1と同じMod内にテキストファイルを作成し、テキストファイルを作成します。
ファイル名は末尾を「_SWAP.ini」とするルールだけ守れば、好きにつけてOKです。


まとん
この作業で作成したespファイルも一緒にまとめておくと管理しやすいです。
MO2のoverrideフォルダにあるはずなので、こちらに移動しちゃいましょう。
iniファイルに次のコードを記述します。
[Forms|WindhelmLocation]
SnowDriftM01|WHSnowDriftM01
SnowDriftM02|WHSnowDriftM02
SnowDriftSM02|WHSnowDriftSM02
SnowDriftL01|WHSnowDriftL01
SnowDriftL02|WHSnowDriftL02
SnowDriftL03|WHSnowDriftL03
SnowDriftL04|WHSnowDriftL04
SnowDriftM01_flat|WHSnowDriftM01_flat

まとん
左が入れ替え元のEditor IDで、右が入れ替え後のEditor IDです。
「SnowDriftM01_flat」はIcy Windhelmで追加される雪の吹き溜まりです。
私の環境では、ウインドヘルム内にあった雪の吹き溜まりレコードはこれだけでした。
これでウインドヘルム内の雪の吹き溜まりだけを対象にして、オブジェクトを入れ替えられます。
確認
ゲームを起動し、修正漏れがないかウインドヘルム内を散策しましょう。
先ほどと同じ場所で撮影。



まとん
いい感じです!
応用編:港も雪まみれに!
今回ご紹介した方法で雪景色になるのは、ウインドヘルム街中だけです。
ウインドヘルム港は対象外なので、そちらも雪景色にする場合はこちらのModを入れましょう。

オプションの「Better Windhelm Ground Meshes – Icy Windhelm」と一緒にインストールすることで、港も雪景色になります。

まとん
私の環境では、港の雪の吹き溜まりも色が変わってしまいました。
なので、港も対策2の方法でスノーシェーダー付の吹き溜まりに入れ替えました。
まとめ
ウインドヘルムに雪が積もると、やっぱりきれいでいいですね!
最初、なんで境目が出てしまうのか全然原因が分からず本当に苦労しました。
雪関係のトラブルは昔からあるようで、調べると結構情報は出てきます。
ですが、PBRは最近のModなので、それ絡みとなると途端に情報量が減る感じでした。
かなり大変でしたが、作業後のウインドヘルムを歩いてみて、労力に見合うだけの価値があったなーと思います。

まとん
おかげでウインドヘルムが好きなったまである。
この記事が同じ境遇でお悩みの方の助けになれば幸いです。それでは!


コメント