主だった物だけのメモです、全てのテクスチャを網羅してません。
結構嘘多いかもしれないので、参考程度に。
ディフューズ(カラー)マップ
Skyrim同様DXT1とDXT5(3もあるかも?)の模様。透過や削除を使いたい場合はアルファチャネルでのマスクが有効です。
VaultSuit111_d.DDS。アルファ無しのDXT1です。
BC7形式も使えるようです。
ITWでのDXT5読み込み不具合(?)
僕の環境ではちょっと不具合が。設定問題だったらすいません(汗)
(20160924追記)ITW1.0.4では問題ありませんでした。
Intel® Texture Works Plugin for Photoshopで読み込むと、アルファチャネルが透明領域としてRGBに統合されてました。チャネルそのものは消失。
NVIDIA Texture Tools for Adobe Photoshopを使った場合は問題無かったです。
Wearable Postman Shoulder Bag or BackpackのMilitaryBag_d.DDSを例に。DXT5です。バッグ付きの胴装備メッシュ(多分postman)から、バッグ以外をアルファチャネルでマスクしています。
NVIDIAのプラグインだと読めてます。バッグ以外の領域はアルファチャネルで黒塗り。
Intelのプラグインで読んだ場合。マスクが透明領域としてRGBに合成されてます。アルファチャネル自体は消失してます。
パレットテクスチャ
ディフューズマップ絡みでもう1つ。
Baseball Batです。普通のバット。
ですがバットのディフューズマップ(BaseballBat_d.dds)を見ると、なんかグレースケールっぽいです。全然バットと色違います。
「BatLookup.dds」というパレットテクスチャ(この呼称が正しいか微妙ですがとりあえず)があり、これで色相を決めてるようです。10mmAutoでも使われてました。
このテクスチャの色を、ド緑にしてみると・・・
バットも緑になりました。単色系(?)の場合は、これで簡単に色替えしてるんですかね。パレット画像の配色ルールはまだ知らないですが・・・
コンバットアーマーのカラーパレットの構造を調べた別記事あります。
ノーマルマップ
基本は全部タンジェントノーマルみたいです。女性の顔だけオブジェクトノーマル入ってましたが、男性は無し。使ってないのかも?
圧縮形式は、DX10+で使われているBC5(3Dc)。これはNVIDIAプラグインやPaint.NETといったソフトでは正しく読み込めません。DDS対応しててもDX10+に未対応だとアウトなので要注意。
また、Skyrimのようにタンジェントノーマルのアルファチャネルにスペキュラマップを仕込むことは出来ないです。
BC5の概略
Rに8bit、Gに8bitづつの計16bit。2チャネルのみで、Bは使いません。したがってカラー画像には使えないです。タンジェントノーマルの場合、BはRGから計算するようです。DXTCではR5G6b5の計16bitだったので、RGの精度に絞った感じでしょうか。
代表値やインデックスのつけ方はDXT5のアルファチャネルと同一のようで、実質的にはDXT5のアルファチャネルだけを2枚使うのと同じだと思います。
DXTCの詳細はSkyrimブログの方にて。
DX10+対応プラグインと非対応プラグインの比較
DX10+対応のIntel版プラグインでCombatArmor_Helmet_n.DDSを読み込んだ時のチャネル情報です。Blueは真っ黒で、RとGの2チャネルのみになってます。
こちらは未対応のNVIDIA版。BC5形式でもエラー出ずに開けるのですが、Blueにも画像が出てます。RGの画像もそれぞれ異なっており、正しいノーマルマップになっていません。
スペキュラマップ
これもノーマルと同じくBC5形式になってます。タンジェントノーマルにスペキュラが仕込めないのでこれが必要になります。
BC4(1チャネル)ではなくBC5(2チャネル)を使っているのは、スペキュラマップだけでなくグロスマップも格納されている為。
ノーマル同様、NVIDIAプラグインを使うと画像おかしくなります。
BaseMaleBody_s.DDSをIntel版プラグインで開いた時のチャネル情報。同様にBlueを使ってません。
NVIDIA版を使うと、やはり対応してないのでBlueにも画像が現れます。
RとGをそれぞれ明るくレベル補正してみました。
Skyrimの感覚だとRがスペキュラ(反射)でGがグロス(光沢、荒さ)のように見えるのですが、RがグロスでGがスペキュラという話も?
このあたり全然詳しくないので、Skyrim的フィーリング以上のことはわからないです(汗)
顔のテクスチャ
サイズとフォーマットが厳密に指定されてるようで、違うと顔黒になります。
xxxHead_d.dds:BC3(Linear) 1024x1024 ※BC3ならアルファ無しでもOK
xxxHead_n.dds:BC5 1024x1024
xxxHead_s.dds:BC5 512x512
BGSMファイル
テクスチャパスやパレットテクスチャの設定、その他マテリアル関連が設定されてます。従来メッシュファイルに設定されてた設定を、外部ファイルとして外に出してるイメージでしょうか。
メッシュファイルにBGSMファイルが紐付けされてます。
Material Editorを使って新設、変更できます。
もしくはGibbed's Fallout 4 ToolsでJSON形式に変換して、テキスト編集。
JSON形式のテキストファイルの拡張子をBGSMに変更しただけでも動くようです。Material Editorで開けないBGSMファイルがあった場合、多分テキストで開けると思います。
MrHandyのテクスチャを戦前の綺麗な物にする、Codsworth Pre-War Rextextureです。ver.1.0ではテクスチャが同梱されてましたが、2.0ではBGSMファイルの差し替えのみで対応してました。
同梱のBGSMファイルはJSON形式なので、Material Editorでは開けません。
HandyArmor.BGSMの中身。テクスチャ指定が戦前の綺麗な物に変更されてます。他はバニラの値と同一。
{
"sDiffuseTexture": "Actors/Handy/HandyArmorClean_d.DDS",
"sNormalTexture": "Actors/Handy/HandyArmorClean_n.DDS",
"sSmoothSpecTexture": "Actors/Handy/HandyArmorClean_s.DDS",
"sEnvmapTexture": "Shared/Cubemaps/mipblur_DefaultOutside1.dds",
"bRimLighting": true,
"fRimPower": 0.1,
"fSubsurfaceLightingRolloff": 0.3,
"bSpecularEnabled": true,
"cSpecularColor": "#d3d3fc",
"fSpecularMult": 0.3,
"sRootMaterialPath": "template/ArmorTemplate_Wet.bgsm",
"bCastShadows": true,
"fDisplacementTextureBias": -0.5,
"fDisplacementTextureScale": 10.0,
"fTessellationPnScale": 1.0,
"fTessellationBaseFactor": 1.0,
"fGrayscaleToPaletteScale": 0.502,
"bTileU": true,
"bTileV": true,
"fAlphaTestRef": 128,
"bAlphaTest": true,
"bTwoSided": true,
"bEnvironmentMapping": true,
"fEnvironmentMappingMaskScale": 10.0
}
メッシュファイルのBSShaderTextureSetにもテクスチャパスは設定されてますが、使われていないぽい?
同系にBGEMファイルがありますが、こちらはエフェクト系?まだ見れてないです。
とりあえずこんなとこで。