Skyrimで使われている各種テクスチャについての詳細説明です。実験したり調べたりで手は抜いてないつもりですが、間違いがあれば指摘頂けると助かります。Nifskopeの記事でも書きましたが、結構我流かつエアなので、その前提で読んでもらえれば、と。Skyrimやる範囲では、そんな間違ってないとは思いますが。
記載順番は、.nifファイルのBSShaderTextureSetの順になっています。
- 1.ディフューズマップ(Diffuse Map)
- 2.ノーマルマップ(Normal Map)
- 3.エミッシブマップ(Emissive Map)/サブサーフェイスマップ(Subsurface Map)
- 4.ハイトマップ(Height Map)
- 5.キューブ環境マップ(Environment Map)
- 6.環境マップマスク(Environment Mask)
- 7.Tintマップ(Tint Map)
- 8.スペキュラマップ(Specular Map)/バックライトマップ(Back Light Map)
- 9.未使用?
1.ディフューズマップ(Diffuse Map)
拡散マップ。いわゆる「色」のついてるテクスチャです。Color Mapと呼ばれることも。単に「テクスチャ」と言う場合は大抵これを指してますね。
半透明や部分的な非表示をしたい場合、これのアルファチャネルを使います。アルファの閾値やブレンド方法はメッシュのNiAlphaPropertyで設定します。
左:バニラ男性の顔
中:Steel Armor
右:SteelArmorアルファチャネル。襟元のファーっぽい所がアルファ透過になっています。
2.ノーマルマップ(Normal Map)
法線マップ。テクセルの向いてる方向を決めるテクスチャです。擬似的な立体表現に使います。これが無いとメッシュの凹凸のみになる為、粘土細工っぽい絵に。地面に描いた絵を立体に見せるトリックアート的なイメージ。
メッシュ自体を変形させることはできないです、陰影を塗って立体感があるように見せるだけなので、石積みの壁を真横から見たらまな板だった、なんてこともあります。
オブジェクトスペース(モデルスペース)、タンジェントスペースの2種類あります。大抵オブジェクトスペースはプレイヤーやNPCといったキャラクター(子供種族以外)、タンジェントスペースは装備や景観、クリーチャーに多いです。子供種族にも使われてます。
タンジェントスペースの場合はアルファチャネルにスペキュラマップが入っており、スペキュラは白が反射OK、黒になるほど反射しなくなります。
ファイル名のサフィックスで区別されていて、
- _msn(オブジェクトスペース)
- _n(タンジェントスペース)
となってます。
オブジェクトスペース型
バニラ男性の頭のノーマルマップです。RGB3成分をXYZ座標系にしています。
R:横方向
G:縦方向
B:画面垂直方向
になっています。RGB混合だと綺麗な虹色。DXT圧縮はなるべく避けた方がいいです。
SS下の列で、それぞれ矢印の先に光源があると考えると、例えとしてはわかり易いと思います。光に照らされている所が白、当たりにくい(だんだん角度がついてくる)とグレーに、間逆になると黒になります。
UVMAP(展開図)ですが、空間ありきで作られているのでスケルトンにこれ被せたらそれで完成しそうな雰囲気です(実際は絶対メッシュが要りますけど)。
オブジェクト(メッシュ)の持つ法線に依存することなく空間内での法線ベクトルが決まっているので、ローポリでも綺麗で滑らかな表面になります。キャラクタ向き。勿論輪郭線はメッシュの物が出ますけど。
欠点は、空間内においてオブジェクトに対する法線がガッツリ決められている為、メッシュの頂点移動に対してあまり追従できないです。 例えばキャラメイクで過剰に頬や顎を変形させると、不自然な影ができてきます。
タンジェントスペース型
Steel Armorのノーマルマップです。アルファチャネルにスペキュラマップが入ってます。このスペキュラは雰囲気だけ出すエアらしいです。
RGBの使い方はオブジェクトスペースと同じですが、オブジェクトスペース型が「空間」を基準にして方向が決められていたのに対し、こちらはUVMAPに展開された「平面」を基準にして方向が決められています。
下のSSを見ると、虹色のオブジェクトスペース型に対して、こちらはほとんど真っ青です。展開図である「平面」を基準にしているので、ほとんど全部が画面正面を向いているというわけです。ディスプレイのパネルの法線と一致してます。RGB別で見ても、「B」はほとんど真っ白です。微妙な湾曲の部分、例えるなら絵を描く時に「線」として描く部分は、正面を向いていないので別の色になっています。
展開図(平面)ありきの座標系なので、最終的な空間内での法線の向きは、メッシュの面に依存します。おっさんの顔の時と違って、これだけだと完成形のイメージわきませんよね。頂点を相当変形させても、UVが合っていれば意図した形状通りの形でノーマルマップを貼れるんじゃないでしょうか。引き伸ばし等密度的な問題はありますが。
RGBで色を拾うと、「B」で真っ白になっている部分は、R126G127B255です。どちらか片方に向ききっていれば0or255なので、中間値はどちらにも向いていないニュートラルな状態と言えます(エアなので言葉の定義は微妙です、ニュートラルじゃなくて別の言葉あるような気がします。ニュアンスだけ汲み取ってください)
3.エミッシブマップ(Emissive Map)/サブサーフェイスマップ(Subsurface Map)
自己発光やサブサーフェイススキャッタリング(SSS)につかうテクスチャ。
左:サブサーフェイスマップ。スキンテクスチャの下にある血管やお肉感。SSSを使うことでお肌の透明感がでます。ENB使ってないと意味ありません。
中:Dwemer Goggles and Scouterのエミッシブマップ。白の所が光ります。
右:Dwemer Scouterのディフューズマップ。光る場所の比較用に。
発光で使う場合はメッシュのPropertyの書き換えが必要です。Nifskopeの記事の続き(BSLightingShaderPropertyの説明)で書く予定。
これもファイル名のサフィックスで区別されており、
- _g (エミッシブマップ、グロウマップとも)
- _sk(サブサーフェイスマップ)
になります。
4.ハイトマップ(Height Map)
顔に使うディティールマップやオブジェクトのパララックス等に使います。ノーマルマップの上に更にハイトマップ被せる感じでしょうか。
黒塗りにすると暗く、白塗りにすると明るくなっていきます。黒で凹、白で凸。Photoshopの24bit環境で開くと、BlankdetailmapがR63G64B63だったので、これが基準っぽい気がします。ホクロとかソバカスとか、スキンテクスチャの変更無しに追加できる便利物です。
ENB環境下ではパララックス用にも使用されます。オブジェクトの場合はサフィックス_pのテクスチャとして使い、地形の場合はディフューズのアルファチャネルに格納します。こっちはR160G160B160が0高度っぽい?
合体してますが3枚です。
左:バニラのBlankdetailmap
中:Enhanced Character Editのfemaleheaddetail_frekles2。ソバカスがつきます。(真ん中あたり)SSはsRGBでICCプロファイル埋めてありますが、環境によってはちょっと見えないかもしれません。
右:バニラのmaleheaddetail_age50.dds。ちょっとお年寄り用です。
5.キューブ環境マップ(Environment Map)
風景などで、擬似的な6面キューブ環境を作るテクスチャ。このキューブの中にオブジェクトが存在すると仮定して、金属質なマテリアルのオブジェクトに風景の写り込みを擬似的に再現します。実際のセルの景色が写り込むわけではないので、それっぽく見せるためのエアです。
LDR and HDR Environment Cubemapsのキューブ環境マップです。6面あります。これをドリフのコントで使うセットみたいに組み立てます。例えが古くてすいません。
ちょっと写り込みを強くしてみたReshaped Ebony Armorのヘルメット。上のキューブマップの木が写りこんでます。
6.環境マップマスク(Environment Mask)
写り込みして欲しい所として欲しくない所を分けるテクスチャ。白ほど写り込みが強く、黒は全く写り込み無しになります。
_mのついたテクスチャです。
SteelArmorの環境マップマスク。丸みのカーブの所が主に白塗りされてます。車の丸みのある所に周囲の景色が写りこんでるみたいな演出ができそうです。
もちろんエアなので、緑溢れる森林のキューブ環境マップを使っていたら、たとえ雪山でも緑豊かな写り込みになります。
下のSSは、環境マップマスクの違いによる、ゲーム内での見え方の違いを比較したものです。
7.Tintマップ(Tint Map)
NPCの化粧のテクスチャ。戦化粧もここに一緒になります。顔のテクスチャの上に貼りこむイメージ。NPC1人づつにユニークに割り当てられてます。FaceTintフォルダの中にNPCのBaseIDと同じファイル名で格納。
バニラのStormcloak SoldierさんのTintマップ。
CKのCtrl+F4でNPCのFaceGenDataを出力すると、このテクスチャも一緒に出てきます。高解像度のTintMaskを使っていると横一線の変な化粧が出力されるので注意。今はECEやRaceMenuからFaceGenDataとFaceTintを出力してくれるので、あまりここでFaceTint作らないかもですが。
8.スペキュラマップ(Specular Map)/バックライトマップ(Back Light Map)
スペキュラマップの場合
オブジェクトスペース型のノーマルマップを使っている場合、ここでスペキュラマップの指定ができます(オブジェクトスペース型はアルファでスペキュラを持てない)。タンジェントスペース型ノーマルマップのアルファチャネル同様、反射の可不可を決めるテクスチャです。
グロス(光沢)強度を上げてオイリーな感じにする場合、このテクスチャの白成分を増やしておかないと、あまり見た目が変わらないと思います。Skyrimにおいて日本語で「グロステクスチャ」と呼ばれている物は、別のテクスチャが設定されている訳ではなく、このテクスチャを上書きしますので注意してください。英語だと「Glossy Specular Map」とか、そんな表現かと思います。
_sのついたテクスチャです。
バニラ男性の頭のスペキュラマップ。
こっちもICC埋めましたがどうでしょうか。ほんのりグレーっぽいのがあります。真っ白にするとえらい反射量になるので、ほんと少しだけです。
メッシュのグロス設定を上げて、スペキュラマップを少し明るくしてみました。オイリーな兄貴の誕生です。皆様は是非女性キャラでお楽しみください。いや僕はコレで楽しいってわけじゃないですよ・・・
メッシュ側の設定はNifskopeの続きでやります。
バックライトマップの場合
薄いオブジェクトを光が透過しているような表現に使うっぽい気がします。SSSに似ているんでしょうか。Forswornのフェンスで使われてました。
下のSSがフェンスのメッシュ。8番に使われています。
左がバックライトマップ、右がディフューズマップ。
下のSSは、上段が左右両方ともバックライトマップが有効な場合、下段は右側だけ無効な場合です。光が透けてる感が無くなってます。
9.未使用?
使ってなさそうな気がします。
長くなりましたが、こんなとこで終わっときます。
関連記事
その他の関連記事は下にあります