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

Skyrim箱庭DIY

MODによる固有の環境不具合は自分で直して快適ゲーム。CTDにさようなら。Do It Yourself!!

Skyrimにおけるメッシュの詳細とNifskopeの使い方(BSLightingShaderPropertyその2)

メッシュとテクスチャ Nifskope


スポンサーリンク

前回はSkyrim Shader Propertyだけで終わってしまったので、残りをいってみます。Alphaに関してはまた別記事にします。これも結構ボリュームありそうなので。

それ以外はひと通り詰め込んだので、めっちゃ長いです。全部の項目を把握しているわけではないので、抜けてるところもあります。

 前回の記事はこちら

 

もう一度BSLightingShaderPropertyのBlockDetailsを載せておきます。

BSShaderProperty

Shader Flags 1 

わかるところだけ書きます。いずれ追記する形で。テクスチャの詳細に関しては別記事ありますので参考にしてください。

SLSF1_Specular

スペキュラ反射を有効にします。これがOFFだとスペキュラマップをどれだけ作りこんでも反映されません。

 

SLSF1_Skinned

スキニングされてウェイトのついたメッシュの場合、この項目をONにします。BSDismemberSkinInstanceもしくはNiSkinInstanceがあるかどうかだと思います。

 

 SLSF1_Environment_Mapping

Shader Type「Environment Map」で、環境マップを使う場合にON。Glow Shaderと共存できないようです。詳細は前回の記事にて。

 

SLSF1_ Recieve_Shadows、SLSF1_Cast_Shadows

「落ちてくる影」を描画するかどうかの設定です。OFFになった地面があれば、そこには何の影も描画されません。

 

SLSF1_Cast_Shadows

「落とす影」を描画するかどうかの設定です。OFFになったメッシュを使ったキャラが居たら、その人は影無し人間になります。

 

比較用SSです。ちょっと小さくてみづらいですが、左上以外には影の比較用に、ゴーグルのちんちくりんがいます。ウォーリーをさがせ!みたいになってますが。

 左上

デフォルト状態。屋根には煙突(?)の傘の影が描画され、地面には家の影が描画されます。

右上

屋根のRecieve_Shadows OFF。傘自体は影を落としているのですが、屋根がrecieveをOFFにしているので、影が描画されません。キャラの影も同様です。

Recieve_ShadowsとCast_Shadows

左下

家のCast_Shadows OFF。地面に影を落としません。家が影を落とさないだけです。地面はrecieve ONなので、キャラの影は描画されます。

右下

傘と屋根のCast_Shadows OFF。傘と屋根が影を落としません。地面に柱の影だけ描画されてます。屋根のrecieveはONなので、に傘の影は無いものの、右上と違ってキャラの影は描画されています。

 

SLSF1_Facegen_Detail_Map

Shader Type 「Face Tint」でDetail_Mapを使う場合にON。 

 

SLSF1_Model_Space_Normals 

 オブジェクトスペース型ノーマルマップを使用する場合にON。

 

SLSF1_Refraction

Unknown Float 2を使って屈折描画をする場合にON。 

 

SLSF1_FaceGen_RGB_Tint

Detail Mapを使って顔色を変えている場合、色を合わせてくれる?体型メッシュに使います。esp(esm)でメッシュにAlternate Textures が設定されてなくても、Texture SetがArmor Addonに登録されていれば、それを使うような気がします。この場合、BSShaderTextureSetのテクスチャは読まれません

 

SLSF1_Own_Emit

Shader Type「Glow Shader」で自己発光する場合にONにする必要があります。DefaultでONになっているようです。(Glow Shaderでなければ光らない) 

 

Remappable_Textures

気になっているのですが全然わかりません。大抵ONになっています。

 

SLSF1_ZBuffer_Test

深度テストをやるかやらないかの設定?。やらないと奥行きが滅茶苦茶になる気がしますので通常ONだと思います。

 

Shader Flags 2

SLSF2_ZBuffer_Write

深度テスト結果を反映するか否かの設定?。これもONでないと表示に問題出る気がします。

 

SLSF2_Double_Sided 

テクスチャを裏からも表示します。裏から見ると透明になってしまう場合に使います。

 

Dawn of Skyrim Collectionの出店のバナーです。メッシュでSLSF2_Dauble_SidedがONになっているので、店の後ろから見ても表示されています。

左上:デフォルト(ON)。 店の裏からもバナーが見えます

右上:Double_Sided OFF。店の裏から見ると透明です。

左下:正面から見るとONでもOFFでも同じ。SLSF1_Double_Sided

 右下はGatti氏のMODの足輪。モルさんプレイがはかどります。左側がデフォルトで、Double_SidedはOFFです。隙間から見える反対側が透過しています。右側はDouble_SidedをONにしています。ちょっとアングル違いますが、反対側もテクスチャが描画されていて、透明化していません。

 

SLSF2_Vertex_Colors

頂点カラーを設定します。バニラの体型メッシュや頭部、髪の毛に設定されています。NiTriShadeDataの「Has Vertex Colors」がYESになっていない場合、ONにすると表示が壊れる場合があります。

 

SLSF2_Glow_Map

Shader Type「Glow Shader」で、発光部分を制限するGlow Mapを使う場合にONにします。前回の記事に詳細あります。

 

SLSF2_Soft_Lighting

SSSを使うときはONにする必要があります。

 

SLSF2_Back_Lighting

バックライトマップを使う場合にONにします。薄い素材に光が透過してるような、SSSっぽい表現につかうようです。例えばForswornの柵で使われてました。

 

Texture Set

テクスチャパスを指定している「BSShaderTextureSet」のノードを設定してます。BSShaderTextureSetについては前回の記事で説明しています。

 

EmissiveColor、EmissiveMultiple

自己発光の色設定と強度です。これも前回の「Glow Shader」の項目で説明しています。

 

Texture Clamp Mode、UV Offset、UV Scale

セットで説明します。テクスチャの貼り付け方を設定します。

 

UV Scale

テクスチャのスケールを設定します。通常はX=1Y=1です。図の左上、半透明でない部分1枚が適用されます。

X=2 、Y=2 に設定した場合は、図の半透明部分の旗を合わせた、2x2の計4枚の領域が適用されます。「領域」は4枚分になりますが、半透明で表した部分をどう処理するかは、Texture Clamp Modeの設定によります。

UVScale

UVマップについては別記事も参照してみてください。

 

 Texture Clamp Mode

 UV Scaleが1より大きい場合のテクスチャの貼り方の設定です。

WRAP_S_WRAP_T

テクスチャが足りない部分は、U方向V方向共に同一テクスチャの繰り返し表示とします。Windowsの壁紙の「並べて表示」みたいなものです。通常はこの設定になっています。

CLAMP_S_CLAMP_T

指定領域にテクスチャ1枚分だけ貼り付け、残りは放置。一番近いテクセルで埋めてる?。SS上段左から2番目。

CLAMP_S_WRAP_T

U方向はそのまま、V方向は繰り返し表示になります。SS下段いちばん左。

WRAP_S_CLAMP_T

U方向は繰り返し表示、V方向はそのままの表示になります。SS下段左から2番目。

Texture-Clamp-Mode

X=3.0、Y=3.0の場合は、UV領域がテクスチャ3x3で9枚分になります。SS上段右上。X,YのScaleがそれぞれ異なる場合は、1方向だけ押しつぶされた形になります。SS下段右2枚。

 

 UV Offset

原点(X=0、Y=0)にオフセットをつけます。ずらしたことによる不足部分の描画は、Texture Clamp Modeに準拠。

UVOffset

 

Alpha

Alpha透過設定です。メッシュ単位での透過になるのであまり使い勝手が良くないです。大抵はNiAlphaPropertyとディフューズマップのアルファチャネルに作ったマスクを使います。

NiAlphaPropertyについては、次の回で説明しています。記事終わりにリンク貼ります。

Alpha透過 

 

Unknown Float2

Unknownとなってますが、屈折表現の項目になってます。Shader Flags 1のSLSF1_RefractionがONになっている必要があります。

Unknown-Float2n

 

Unknown Float 2による屈折の比較です。帽子の値を変更しています。ノーマルマップは適用されていますが、ディフューズマップは表示されず、透明になっています。

上段左:0.2

上段中:0.5

上段右:1.0 値が大きいほど屈折大、ノーマルマップの適用もハッキリしてます。

Refraction比較

下段左:デフォルト

下段中:0 屈折が無く透明になってます。

下段右:1.0(ノーマルマップ無し) バカラグラスみたいになってます。

 

参考に、Transparent and refracting Glass EqmntのGlass Shieldです。これはUnknown Float 2の屈折設定をしたメッシュの下にもう1つ別のメッシュを入れ、これをテクスチャでアルファ透過することで、屈折した上に色がついているような描画になっているようです。

GlassShieldの透過と屈折

 

Glossiness

お待たせしました、いよいよヌルヌルのグロス設定です。数値を上げると光沢が強くなりオイリーな感じになります。紙ヤスリで研磨して表面の粗さを落としていくイメージでしょうか。摩擦が少なくなりそうです。スペキュラの範囲が収束して、ハイライトが強い感じになると思います。

Skyrimにはグロスマップテクスチャが無いので、スペキュラマップを使います。反射光そのものの強度(Specular Strength)が上がる訳では無いので、マスクが濃いとあまり見た目が変わりません。

 撮影モデル交代です。真っ白なスペキュラマップでグロス値を変更してみました。マスクが無いので80だとプラスチック感バリバリですが、800だととってもオイリーです。

Glossiness

 

Specular Color

反射光の色を設定できます。 

真っ白ではないですが、薄めのスペキュラマップを使ってみました。左がデフォルト(白)の反射光、右は少し赤っぽくしてみました。桜色の柔肌感があってステキです。

SpecularColor

 

Specular Strength

 数値を上げると反射光の強度が上がります。より明るく、面積も広くなる感じです。スペキュラマップ次第で適用範囲や強弱が変わります。

これも真っ白なスペキュラマップで比較しています。反射光の強度そのものが上がっているので、右は非常に明るくなってます。グロス値はそのままなので質感は変わりません。光の反射って重要です。

SpecularStrength

 

グロスとスペキュラについては別記事で詳しくまとめてます。

 

長くなりましたが、こんなとこで。結構抜けてるところも有りますが、そのうち追記するかもしれません。

 

続きはこちら