帽子に髪を埋め込んだウィッグ方式にすると、髪の色が固定されてしまいます。これをどのように変更するのか調べました。
髪のリソースを調べる
パイパーの帽子に髪を付けてみました。
パイパーについてFO4Editで調べてみると、以下のようになっています。
パイパーのActorBaseはCompanionPiperです。
パイパーの髪はHairFemale01 “エレガント”です。
髪の色はHairColor11WarmBlack “ウォームブラック”です。
髪のモデルを調べると、以下のパスにあることがわかります。
Actors\Character\CharacterAssets\Hair\Female\HairLong01.nif
実際はFallout4 – Meshes.ba2の中にあるので取り出します。
このnifファイルをNifScopeで開いてみると、Materialファイルとして以下が使われています。
Materials\actors\Character\HumanHair\HairLong_LGrad_1bit.BGSM
実際はFallout4 – Materials.ba2の中にあるので取り出します。
Materialを調べる
このbgsmファイルをMaterial Editorで開いてみると、以下のようになっています。
一番下のGrayscale To Palette Colorにチェックが入っているのがポイントです。こうなっていると色の指定方法がガラっとかわります。
通常はDiffuseで指定されているテクスチャが色を決定しますが、この場合はグレースケールになっていて色はありません。Greyscaleで指定されているテクスチャが色になります。
Actors/Character/Hair/HairColor_Lgrad_d.dds
このファイルはFallout4 – Textures1.ba2の中にあるので取り出します。
ddsファイルをpaint.netで開いてみると、このようになっています。
Grayscale To Palette Scaleでは0.987が指定されていますが、これはddsファイルの上から98.7%の位置にある色を使う、という意味になります。
色を変更する
パイパーの髪の色であるHairColor11WarmBlackを調べると、CNAMが0.675になっています。
おそらく、ゲーム内でこの髪色が設定されていると、この0.675という値がGrayscale To Palette Scaleのところに上書きされて色が決定されるのだと思います。
よって、Grayscale To Palette Scaleを編集したbgsmファイルを用意して、メッシュ内のbgsmファイルの記述を直接変更するか、プラグイン内でMaterial Swapとして新たに割り当てるかすればいいということになります。