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

Fallout箱庭DIY

「箱庭DIY」Fallout分室

【Fallout4】テクスチャ構造の概要と注意点メモ

メッシュ&テクスチャ


スポンサーリンク

主だった物だけのメモです、全てのテクスチャを網羅してません。

結構嘘多いかもしれないので、参考程度に。

ディフューズ(カラー)マップ

Skyrim同様DXT1とDXT5(3もあるかも?)の模様。透過や削除を使いたい場合はアルファチャネルでのマスクが有効です。

VaultSuit111_d.DDS。アルファ無しのDXT1です。

VaultSuitのDiffuseMap

 

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のプラグインだと読めてます。バッグ以外の領域はアルファチャネルで黒塗り。

NVIDIAプラグインでのDXT5

 

Intelのプラグインで読んだ場合。マスクが透明領域としてRGBに合成されてます。アルファチャネル自体は消失してます

IntelプラグインでのDXT5

 

パレットテクスチャ

ディフューズマップ絡みでもう1つ。

Baseball Batです。普通のバット。

BaseballBat

 

ですがバットのディフューズマップ(BaseballBat_d.dds)を見ると、なんかグレースケールっぽいです。全然バットと色違います。

BaseballBatのDiffuseMap

 

「BatLookup.dds」というパレットテクスチャ(この呼称が正しいか微妙ですがとりあえず)があり、これで色相を決めてるようです。10mmAutoでも使われてました。

BaseballBatのDiffuseMap

 

このテクスチャの色を、ド緑にしてみると・・・

Paletteをど緑に変更

 

バットも緑になりました。単色系(?)の場合は、これで簡単に色替えしてるんですかね。パレット画像の配色ルールはまだ知らないですが・・・

ど緑になったBaseballBat

 

コンバットアーマーのカラーパレットの構造を調べた別記事あります。

 

 

ノーマルマップ

基本は全部タンジェントノーマルみたいです。女性の顔だけオブジェクトノーマル入ってましたが、男性は無し。使ってないのかも?

圧縮形式は、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ブログの方にて。

skmod.hatenablog.com

 

DX10+対応プラグインと非対応プラグインの比較

DX10+対応のIntel版プラグインでCombatArmor_Helmet_n.DDSを読み込んだ時のチャネル情報です。Blueは真っ黒で、RとGの2チャネルのみになってます。

IntelプラグインでのBC5(ノーマル)

 

こちらは未対応のNVIDIA版。BC5形式でもエラー出ずに開けるのですが、Blueにも画像が出てます。RGの画像もそれぞれ異なっており、正しいノーマルマップになっていません

NVIDIAプラグインでのBC5(ノーマル)

 

 

スペキュラマップ

これもノーマルと同じくBC5形式になってます。タンジェントノーマルにスペキュラが仕込めないのでこれが必要になります

BC4(1チャネル)ではなくBC5(2チャネル)を使っているのは、スペキュラマップだけでなくグロスマップも格納されている為。

 

ノーマル同様、NVIDIAプラグインを使うと画像おかしくなります。

BaseMaleBody_s.DDSをIntel版プラグインで開いた時のチャネル情報。同様にBlueを使ってません。

IntelプラグインでのBC5(スペキュラ)

 

NVIDIA版を使うと、やはり対応してないのでBlueにも画像が現れます。

NVIDIAプラグインでのBC5(スペキュラ)

 

RとGをそれぞれ明るくレベル補正してみました。

スペキュラのチャネル変更比較

Skyrimの感覚だとRがスペキュラ(反射)でGがグロス(光沢、荒さ)のように見えるのですが、RがグロスでGがスペキュラという話も?

このあたり全然詳しくないので、Skyrim的フィーリング以上のことはわからないです(汗)

 

 

BGSMファイル

テクスチャパスやパレットテクスチャの設定、その他マテリアル関連が設定されてます。従来メッシュファイルに設定されてた設定を、外部ファイルとして外に出してるイメージでしょうか。

メッシュファイルにBGSMファイルが紐付けされてます。

BaseballBatのメッシュファイル

 

Material Editorを使って新設、変更できます。

BaseballBatのBGSMファイル

 

もしくはGibbed's Fallout 4 ToolsでJSON形式に変換して、テキスト編集。

JSON形式のテキストファイルの拡張子をBGSMに変更しただけでも動くようです。Material Editorで開けないBGSMファイルがあった場合、多分テキストで開けると思います。

 

MrHandyのテクスチャを戦前の綺麗な物にする、Codsworth Pre-War Rextextureです。ver.1.0ではテクスチャが同梱されてましたが、2.0ではBGSMファイルの差し替えのみで対応してました。

BGSM変更によるCodsworthの変化

同梱の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にもテクスチャパスは設定されてますが、使われていないぽい?

BaseballBatのBSShaderTextureSet

 

同系にBGEMファイルがありますが、こちらはエフェクト系?まだ見れてないです。

とりあえずこんなとこで。

 

Copyright © 2015 Fallout Hakoniwa DIY All rights reserved .

S.kutsumiya@gmail.com