8_2_マテリアル_パラメータ - gaj-cg/ray-mmd-docs-ja GitHub Wiki
(material\readme.md
からの翻訳。意訳が多いので原文の英語版も参照することをお奨めします。デフォルト値は material_2.0.fx
のものです。)
このドキュメントは Ray-MMD
のマテリアル設定の各パラメータについて書かれています。
物理ベースレンダリング(PBR)は、急速に普及している物理学の周りのレンダリングパイプラインです。
PBRのマテリアル(物理ベースのマテリアル)には3つの形態があります。アルベド/スムースネス(滑らかさ)/メタルネス(金属性)パイプラインを提示します。
アルベド/ラフネス(粗さ)/メタルネス(金属度)でないのは、ラフネスを理解して使用することは容易では無いからです。また、(従来の)ディフューズ(拡散色)/スペキュラ(反射)/グロス(光沢)パイプラインで無いのは、PBRの用語ではないからです。
material_2.0.fxを複製・編集することで新しいマテリアルを作成することができます。また、さまざまなテクスチャを作成したい場合は、dDO、nDO、Substance Designer、Substance Painter、PhotoshopなどPBR用のソフトウェアを使うことで、独自のマテリアルを作成するのに役立ちます。
マテリアルの設定は以下の表のようにAlbedoからEmissiveまでの9つのパートと追加設定のCUSTOM_ENABLEで構成されます。
各パートは概ね同じようなパラメータで構成されています。
Index | 概要 |
---|---|
Albedo / SubAlbedo | 材質の色に関する設定 |
Alpha | 材質の透明度に関する設定 |
Normal / SubNormal | 材質の法線に関する設定 |
Smoothness | 材質の滑らかさに関する設定 |
Metalness | 材質の金属か否かに関する設定 |
Specular | 材質の鏡面反射に関する設定 |
Occlusion | オクルージョン(遮蔽)に関する設定 |
Parallax | パララックス(視差)マッピングに関する設定 |
Emissive | 発光(しているように見える)材質に関する設定 |
CUSTOM_ENABLE | 追加のカスタムマテリアルの設定 |
Albedo(アルベド)はbase color(ベースカラー)とも呼ばれ、材質の全体的な色を定義します。3つのカラーチャンネル(RGB)を使用し、アルベドマップはsRGB色空間で正規化された値であり、0.0から1.0の値が設定されます。
-
アルベドの取得元を決定します。
ALBEDO_MAP_FROM
には下記に示す値を設定して、マテリアルの色を決定します。値 説明 0 const float3 albedo = 1.0
にて設定されたlinear-colorがアルベドに設定されます。
(モデルに設定されている拡散色やテクスチャマップは使わない。)1 ALBEDO_MAP_FILE
にテクスチャマップの相対または絶対パスを記載することにより、srgb-image (bmp, png, jpg, tga, dds)をアルベドに設定できます。
(モデルに設定されている拡散色やテクスチャマップは使わない。)2 ALBEDO_MAP_FILE
にanimation srgb-image (gif, apng)の相対または絶対パスを記載することにより、アニメーションさせたマップをアルベドに設定できます。3 pmxモデルに設定されたTextureに設定されたマップを使用します。(デフォルト) 4 pmxモデルに設定されたSphere mapに設定されたマップを使用します。 5 pmxモデルに設定されたToon mapに設定されたマップを使用します。 6 extensionフォルダにある DummyScreen.x
を経由してaviまたはscreenを使用します。7 pmxモデルに設定されたAmbient Color(環境色)を使用します。 8 pmxモデルに設定されたSpecular Color(反射色)を使用します。 9 pmxモデルに設定されたSpecular Power(反射強度)を使用します。
(SMOOTHNESS_MAP_FROM
でのみ有効。その他の_MAP_FROM
、例えばALBEDO_MAP_FROM
ではエラーとなる。) -
ALBEDO_MAP_UV_FLIP
に設定した値によってテクスチャをX軸、Y軸、または両方で反転させます。値 説明 0 反転しない(デフォルト) 1 X
軸で反転2 Y
軸で反転3 X
軸とY
軸で反転 -
ALBEDO_MAP_APPLY_SCALE
に設定した値に従って、ALBEDO_MAP_FROM
で決定した色(map values)に対してalbedo
の数値で演算を行います。値 説明 0 演算しない(デフォルト) 1 map values * albedo (乗算) 2 map values ^ albedo (累乗) -
テクスチャカラーにPMXモデルに設定されている
diffuse
(拡散色)の数値で乗算を行います。値 説明 0 乗算しない 1 乗算する(デフォルト) -
テクスチャカラーとPMXモデルに設定されているモーフ(
R+
/G+
/B+
)の値で乗算を行います。
(この機能を使うにはR+
/G+
/B+
モーフをPMXエディタ等でPMXモデルに追加する必要があります。
R+
/G+
/B+
モーフの値が参照できればいいので、モーフの中身は空でもかまいません。)値 説明 0 乗算しない(デフォルト) 1 乗算する -
マップのファイルパスを設定する。
ALBEDO_MAP_FROM
に1
または2
を設定した場合、ALBEDO_MAP_FILE
にマップファイルパスの記載が必要です。ファイルパスの記載例 :
-
xxx.png と material.fx が同じフォルダにある場合
#define ALBEDO_MAP_FILE "xxx.png"
-
xxx.png が material.fx の親フォルダにある場合
#define ALBEDO_MAP_FILE "../xxx.png"
-
xxx.png が material.fx の親フォルダ配下の別のフォルダにある場合
#define ALBEDO_MAP_FILE "../(other path)/xxx.png"
-
xxx.png がデスクトップや他のドライブにある場合(相対パスではなく絶対パスを使う場合)
#define ALBEDO_MAP_FILE "C:/Users/(User Name)/Desktop/xxx.png"
補足 :
-
"../"
カレントフォルダの上のフォルダ(親フォルダ)を意味します。 -
"\\"
(Shift-JISでは半角の¥¥:エスケープシーケンスを利用したパスの表記法) の代わりに"/"
が使用できます。
注意:
- ファイルパスに日本語が含まれる場合はマテリアルファイルの文字エンコーディングはShift-JISでなければならない。これはMMEの仕様によるもの。
(MikuMikuEffect REFERENCE.txt「●エフェクトファイル内での日本語使用」より)
-
-
-
ALBEDO_MAP_FROM
に0
またはALBEDO_MAP_APPLY_SCALE
に1
を設定した場合、数値を設定する必要があります。
(他のケースでは参照されないことを意味します。)
albrdoに設定する数値はカラーを示すR,G,Bの数値を設定します。設定例:
-
正規化された数値(0.0~1.0)で赤色を表現するには、以下のように設定します。数値は順にR,G,Bを示します。
const float3 albedo = float3(1.0, 0.0, 0.0);
-
正規化されていない数値(0~255:ペイントソフトなどで見られる数値)で赤色を表現するには、以下のように設定します。(255.0で割るので結果的には正規化された数値となります。)
const float3 albedo = float3(255.0, 0.0, 0.0) / 255.0;
-
ペイントツールなどのカラーピッカーを使いモニター上で選択した色の数値を使う場合、sRGB色空間からリニア色空間に変換する必要があります。
(参考:物理ベースレンダリング -リニアワークフロー編 (2)-)- 正規化された数値(0.0~1.0)を変換する場合:
const float3 albedo = pow(float3(r, g, b), 2.2);
- 正規化されていない数値(0~255)を変換する場合:
const float3 albedo = pow(float3(r, g, b) / 255.0, 2.2);
- 正規化された数値(0.0~1.0)を変換する場合:
-
-
アルベドのテクスチャマップをタイル状に繰り返す回数を設定します。
X
方向とY
方向、それぞれ異なる回数を設定する場合は、albedoMapLoopNum = float2(x, y)
のように記述することができます。設定例:
-
X
とY
が同じ数値の場合:
const flaot albedoMapLoopNum = 2.0;
または
const flaot2 albedoMapLoopNum = 2.0;
-
X
とY
が異なる数値の場合:
const flaot2 albedoMapLoopNum = float2(2.0, 3.0);
-
Albedoで決定された色に対して色調整のためにSubAlbedoの値で加算や乗算などの演算を行う。
-
ALBEDO_SUB_ENABLE
に下記の値を設定することで、アルベドの色を調整することが出来ます。値 説明 0 None(SubAlbedoを使用しない:デフォルト) 1 albedo * albedoSub(乗算) 2 albedo ^ albedoSub(累乗) 3 albedo + albedoSub(加算) 4 melanin(メラニン) 5 Alpha Blend(アルファブレンド) -
SubAlbedoの色の取得元を決定します。
設定する値は ALBEDO_MAP_FROM を参照してください。
-
サブアルベドのテクスチャをX軸、Y軸、または両方で反転させます。
設定する値は ALBEDO_MAP_UV_FLIP を参照してください。
-
ALBEDO_SUB_MAP_FROM
で決定した色(map values)に対してalbedoSub
の数値で演算を行います。設定する値は ALBEDO_MAP_APPLY_SCALE を参照してください。
-
ALBEDO_SUB_MAP_FROM
に1
または2
を設定した場合、ALBEDO_SUB_MAP_FILE
にマップファイルパスの記載が必要です。
記載方法については、ALBEDO_MAP_FILE を参照してください。 -
ALBEDO_SUB_MAP_FROM
に0
、またはALBEDO_SUB_MAP_APPLY_SCALE
に1
または2
を設定した場合、数値を設定する必要があります。設定例についてはalbedoを参照して下さい。
-
サブアルベドのテクスチャマップをタイル状に繰り返す回数を設定します。
設定例については albedoMapLoopNum を参照してください。
マテリアルの透過設定を行います。不透明なオブジェクトには影響しません。
-
透過値の取得元を決定します。
設定する値は ALBEDO_MAP_FROM を参照してください。
-
透過用のマップをX軸、Y軸、または両方で反転させます。
設定する値は ALBEDO_MAP_UV_FLIP を参照してください。
-
下記の値に従って、参照するマップのチャンネルを設定します。
値 説明 0 R
チャンネルを参照する1 G
チャンネルを参照する2 B
チャンネルを参照する3 A
チャンネルを参照する(デフォルト) -
ALPHA_MAP_UV_FLIP
に1
または2
を設定した場合、ALPHA_MAP_FILE
にマップファイルパスの記載が必要です。記載方法については、ALBEDO_MAP_FILE を参照してください。
-
ALPHA_MAP_FROM
に0
を設定した場合、数値(0.0~1.0)を設定する必要があります。 -
透過テクスチャマップをタイル状に繰り返す回数を設定します。
設定例については albedoMapLoopNum を参照してください。
マテリアルにノーマル(法線)マップを追加します。
ノーマルマップは、メッシュの見た目の凸凹を変更し、光の角度を変更して細部に影を追加します。このマップは、殆どの場合、3つのチャンネルを持つタンジェントスペース(接線)のマップを使用します。古いパイプラインや、帯域幅など幾つかの要因で異なるタイプの法線マップを使用する事もできます。詳細については、NORMAL_MAP_TYPEを参照してください。
リアルタイムで光を計算するためには、すべての入力モデルが法線を持たなければならず、それ以外の場合は白いエッジの問題が発生します。モデルにいくつかの白い辺が見えたら、PMXEditor
でモデルに使用されるすべての法線が「長さ0」(XYZが0)でないことを確認し、修正します。
(訳者注:モデルの頂点法線の長さが正しくない事に起因する問題だと思われます。)
-
ノーマルマップの取得元を決定します。
設定する
code
(数値)は ALBEDO_MAP_FROM を参照してください。 -
ノーマルマップの種類を設定します。(デフォルト0)
UE4ドキュメント タンジェント空間外のバンプマッピング のPerturbNormalLQ
とPerturbNormalHQ
を参考にしてください。値 説明 0 Calculate world-space normal from RGB tangent-space map. 1 Calculate world-space normal from RG compressed tangent-space map. 2 Calculate world-space normal from Grayscale bump map by PerturbNormalLQ
(Low Quality). It has no effect on small objects.3 Calculate world-space normal from Grayscale bump map by PerturbNormalHQ
(High Quality).4 Calculate world-space normal from RGB world-space map. -
ノーマルマップをX軸、Y軸、または両方で反転させます。
設定する値は ALBEDO_MAP_UV_FLIP を参照してください。
-
NORMAL_MAP_FROM
に1
または2
を設定した場合、NORMAL_MAP_FILE
にノーマルマップファイルパスの記載が必要です。記載方法については、ALBEDO_MAP_FILE を参照してください。
-
ノーマルの倍率を設定します。(デフォルト1.0)
(倍率であることに注意) -
ノーマルマップをタイル状に繰り返す回数を設定します。
設定例については albedoMapLoopNum を参照してください。
追加のノーマルマップ。
NormalとSubNormalが合成された結果が使われる。
-
サブノーマルマップの取得元を決定します。
設定する値は ALBEDO_MAP_FROM を参照してください。
-
サブノーマルマップの種類を設定します。(デフォルト0)
設定する値は NORMAL_MAP_TYPE を参照してください。
-
サブノーマルマップをX軸、Y軸、または両方で反転させます。
設定する値は ALBEDO_MAP_UV_FLIP を参照してください。
-
NORMAL_SUB_MAP_TYPE
に1
または2
を設定した場合、NORMAL_SUB_MAP_FILE
にノーマルマップファイルパスの記載が必要です。記載方法については、ALBEDO_MAP_FILE を参照してください。
-
サブノーマルの倍率を設定します。(デフォルト1.0)
(倍率であることに注意) -
サブノーマルマップをタイル状に繰り返す回数を設定します。
設定例については albedoMapLoopNum を参照してください。
スムースネス(滑らかさ)を決定します。
スムースネスマップは、表面の滑らかさを決定します。これは常にモノラルチャンネルのグレースケールマップです。
ほとんどの場合、モノラルチャンネルのグレースケールマップ(の画像ファイル)は使用されていません。そのため、デフォルトチャネルとしてRGBAマップのRチャネルのみが使用されます。また、SMOOTHNESS_MAP_SWIZZLEにコードを設定することによって、どのチャンネルを参照するかを指定することもできます。
デフォルトの値は SpecularPower
(PMXEでは反射強度)からパラメータを取得し、Smoothness
に変換します。
-
スムースネスの値の取得元を決定します。(デフォルト9)
設定する値は ALBEDO_MAP_FROM を参照してください。
-
スムースネスのパラメータタイプを設定します。(デフォルト0)
(値をスムースネスとして扱うか、ラフネス(粗さ)として扱うか)値 説明 0 Smoothness
(from Frostbite / CE5 textures)
値をスムースネスとして扱う。1 Calculate Smoothness
from Roughness by1.0 - Roughness ^ 0.5
(from UE4/GGX/SubstancePainter2)
値をノンリニアなラフネスとして扱う。2 Calculate Smoothness
from Roughness by1.0 - Roughness
(from UE4/GGX/SubstancePainter2 with linear roughness)
値をリニアなラフネスとして扱う。 -
スムースネスマップをX軸、Y軸、または両方で反転させますす。
設定する値は ALBEDO_MAP_UV_FLIP を参照してください。
-
参照するマップのチャンネルを設定します。
設定する値は ALPHA_MAP_SWIZZLE を参照してください。
-
SMOOTHNESS_MAP_FROM
で取得した値(map values)に対してsmoothness
の数値で演算を行います。設定する値は ALBEDO_MAP_APPLY_SCALE を参照してください。
-
SMOOTHNESS_MAP_FROM
に1
または2
を設定した場合、SMOOTHNESS_MAP_FILE
にマップファイルパスの記載が必要です。記載方法については、ALBEDO_MAP_FILE を参照してください。
-
SMOOTHNESS_MAP_FROM
に0
、またはSMOOTHNESS_MAP_APPLY_SCALE
に1
または2
を設定した場合、数値(0.0~1.0)を設定する必要があります。 -
スムースネスマップをタイル状に繰り返す回数を設定します。
設定例については albedoMapLoopNum を参照してください。
メタルネスマップは、反射率を決定する1つの方法であり、テクスチャのどの部分が金属であるかを決定します。鏡面ハイライトマップなどの古いパイプラインの代わりに使用されます。
メタルネスマップは常にモノラルチャンネルのグレースケールマップですが、グレースケールマップ(の画像ファイル)はほとんど使用されず、デフォルトチャンネルとしてRGBAマップのRチャンネルのみが使用されます。また、METALNESS_MAP_SWIZZLE
に値を設定することで、どのチャンネルを参照するかを指定することもできます。
-
メタルネス値の取得元を決定します。
設定する値は ALBEDO_MAP_FROM を参照してください。
-
メタルネスマップをX軸、Y軸、または両方で反転させます。
設定する値は ALBEDO_MAP_UV_FLIP を参照してください。
-
参照するマップのチャンネルを設定します。
設定する値は ALPHA_MAP_SWIZZLE を参照してください。
-
METALNESS_MAP_FROM
で取得した値(map values)に対してmetalness
の数値で演算を行います。設定する値は ALBEDO_MAP_APPLY_SCALE を参照してください。
-
METALNESS_MAP_FROM
に1
または2
を設定した場合、METALNESS_MAP_FILE
にマップファイルパスの記載が必要です。記載方法については、ALBEDO_MAP_FILE を参照してください。
-
メタルネスの値を設定します。(0.0~1.0)
METALNESS_MAP_FROM
に0
またはMETALNESS_MAP_APPLY_SCALE
に1
または2
を設定した場合、数値を設定する必要があります。 -
メタルネスマップをタイル状に繰り返す回数を設定します。
設定例については albedoMapLoopNum を参照してください。
スペキュラマップは環境マップおよびスフィアマップではなく、モデルのベース反射率のみを変更します。これは、反射の色を制御するために使用されます。
RGBとグレースケールの2種類の鏡面マップがあります。 メタルネスが0より大きい場合は効果がありません。
CUSTOM_ENABLEがゼロに等しくない場合、RGBタイプの鏡面マップは機能しません。 そのため、SPECULAR_MAP_TYPEにコードを設定することで、RGBではなくグレースケールマップを使用することができます。 モデルが鏡面色を反映していると感じない場合は、 const float3 specular = 0.0にゼロを設定できます。
-
スペキュラ値の取得元を決定します。
設定する値は ALBEDO_MAP_FROM を参照してください。
-
スペキュラの(計算)タイプを設定します。(デフォルト0)
値 説明 0 Calculate reflection coefficient from specular color by F(x) = 0.08*(x )
(from UE4 textures)1 Calculate reflection coefficient from specular color by F(x) = 0.16*(x^2)
(from Frostbite textures)2 Calculate reflection coefficient from specular grays by F(x) = 0.08*(x )
(from UE4 textures)3 Calculate reflection coefficient from specular grays by F(x) = 0.16*(x^2)
(from Frostbite textures)4 Using reflection coefficient ( 0.04
) instead of specular value (0.5
), Available whenSPECULAR_MAP_FROM
at0
-
スペキュラマップをX軸、Y軸、または両方で反転させます。
設定する値は ALBEDO_MAP_UV_FLIP を参照してください。
-
参照するマップのチャンネルを設定します。
設定する値は ALPHA_MAP_SWIZZLE を参照してください。
-
SPECULAR_MAP_FROM
で取得した値(map values)に対してspecular
の数値で演算を行います。設定する値は ALBEDO_MAP_APPLY_SCALE を参照してください。
-
SPECULAR_MAP_FROM
に1
または2
を設定した場合、SPECULAR_MAP_FILE
にマップファイルパスの記載が必要です。記載方法については、ALBEDO_MAP_FILE を参照してください。
-
スペキュラーの値を設定します。(0.0~1.0 : デフォルト0.5)
反射率2%未満のものは物理的に不可能で、代わりにシャドーイングとみなされます。
例えば、反射係数は、F(x) = (x - 1)^2 / (x + 1)^2
に等しい。
屈折率が1.5である透明媒体に入射する光線を考慮すると、その結果は、(1.5 - 1)^2 / (1.5 + 1)^2 = 0.04
(つまり4%)と等しくなります。
鏡面反射係数はF(x) = 0.08*x
に等しく、x
が0.5に等しい場合、結果は0.04になる。
したがって、デフォルト値は0.04の係数に対しては0.5であり、0.0〜1.0の間のクランプされた値です。 -
スペキュラマップをタイル状に繰り返す回数を設定します。
設定例については albedoMapLoopNum を参照してください。
アンビエントオクルージョン(AO)は、オクルージョン(閉塞)による環境光の減衰を近似するエフェクトです。
多くの方向から射し込む「空の照明」は、単純にリアルタイムで影を計算することができません。
occlusion map
とSSAO
を使って擬似的に置き換えることができます。
diffuse
とspecular
が不要な場合は、 const float occlusion = 1.0
にゼロを設定することもできます。
-
オクルージョンの値の取得元を決定します。
設定する値は ALBEDO_MAP_FROM を参照してください。
-
オクルージョンマップのタイプを設定します。(デフォルト0)
値 説明 0 Fetch ambient occlusion
from linear color-space1 Fetch ambient occlusion
from sRGB color-space2 Fetch ambient occlusion
from linear color-space from second UV set3 Fetch ambient occlusion
from sRGB color-space from second UV set -
オクルージョンマップをX軸、Y軸、または両方で反転させます。
設定する値は ALBEDO_MAP_UV_FLIP を参照してください。
-
参照するマップのチャンネルを設定します。
設定する値は ALPHA_MAP_SWIZZLE を参照してください。
-
OCCLUSION_MAP_FROM
で取得した値(map values)に対してocclusion
の数値で演算を行います。設定する値は ALBEDO_MAP_APPLY_SCALE を参照してください。
-
オクルージョンの値を設定します。(0.0~1.0)
-
オクルージョンマップをタイル状に繰り返す回数を設定します。
設定例については albedoMapLoopNum を参照してください。
パララック(視差)マッピングは、凹凸を持たないテクスチャに高さ情報を組み合わせることで運動視差を再現し、オブジェクト表面の凹凸のよりリアルな表現を可能にする。(wikipediaより)
height map
を使用できますが、頂点ディスプレースメントとして機能するものではありません。
(パララックスマッピングはディスプレースメントマッピングではありません)
-
パララックスの値の取得元を決定します。
設定する値は ALBEDO_MAP_FROM を参照してください。
-
パララックスマップのタイプを設定します。
値 説明 0 透明度なしで計算します 1 透明度と最良の SSDO
で視差のオクルージョンを計算します -
パララックスマップのX軸、Y軸、または両方で反転させます。
設定する値は ALBEDO_MAP_UV_FLIP を参照してください。
-
参照するマップのチャンネルを設定します。
設定する値は ALPHA_MAP_SWIZZLE を参照してください。
-
PARALLAX_MAP_FROM
に1
または2
を設定した場合、PARALLAX_MAP_FILE
にマップファイルパスの記載が必要です。記載方法については、ALBEDO_MAP_FILE を参照してください。
-
パララックスの倍率を設定します。(デフォルト1.0)
(倍率であることに注意) -
パララックスマップをタイル状に繰り返す回数を設定します。
設定例については albedoMapLoopNum を参照してください。
MMDに光源(PointLightなど)を追加し、モデルの発光部の一部としてキー入力し、同じ色を光源と発光色に設定します。
(訳者注:エミッシブは発光体表現 (発光色で光っているように見えるだけ) なので、それ自体はライト(光源)の役割を持っていません。光源を追加することによって、エミッシブから光が放射しているように見せかけることができます。)
-
エミッシブの有効、無効を設定します。
値 説明 0 無効(デフォルト) 1 有効 -
エミッシブマップの取得元を決定します。
設定する値は ALBEDO_MAP_FROM を参照してください。
-
エミッシブマップをX軸、Y軸、または両方で反転させます。
設定する値は ALBEDO_MAP_UV_FLIP を参照してください。
-
EMISSIVE_MAP_FROM
で決定した色(map values)に対してemissive
の数値で演算を行います。設定する値は ALBEDO_MAP_APPLY_SCALE を参照してください。
-
エミッシブのカラーとPMXモデルに設定されているモーフ(
R+
/G+
/B+
)の値で乗算を行います。
(この機能を使うにはR+
/G+
/B+
モーフをPMXエディタ等でPMXモデルに追加する必要があります。
R+
/G+
/B+
モーフの値が参照できればいいので、モーフの中身は空でもかまいません。)設定する値は ALBEDO_MAP_APPLY_MORPH_COLOR を参照してください。
-
エミッシブのカラーとPMXモデルに設定されているモーフ(
Intensity+/-
)の値で乗算を行います。
(この機能を使うにはIntensity+/-
モーフをPMXエディタ等でPMXモデルに追加する必要があります。
Intensity+/-
モーフの値が参照できればいいので、モーフの中身は空でもかまいません。)値 説明 0 乗算しない(デフォルト) 1 乗算する -
点滅を使う時は、以下の値を設定します。
値 説明 0 点滅しない(デフォルト) 1 emissiveBlink
に記述した周期で点滅します。
例:const float3 emissiveBlink = float3(1.0, 2.0, 3.0);
赤は1周期、緑は2周期、青は3周期。2 morph controller
のBlink
モーフに従って点滅します。 -
EMISSIVE_MAP_FROM
に1
または2
を設定した場合、EMISSIVE_MAP_FILE
にマップファイルパスの記載が必要です。
記載方法については、ALBEDO_MAP_FILE を参照してください。 -
EMISSIVE_MAP_FROM
に0
、またはEMISSIVE_MAP_APPLY_SCALE
に1
または2
を設定した場合、数値を設定する必要があります。設定例についてはalbedoを参照して下さい。
-
EMISSIVE_MAP_APPLY_BLINK
に1
を設定した時に周期を設定します。 -
エミッシブの倍率を設定します。(デフォルト1.0)
-
エミッシブマップをタイル状に繰り返す回数を設定します。
設定例については albedoMapLoopNum を参照してください。
シェーディングモデルIDは、マテリアルのシェーディング方法の種類を決定します。(デフォルト0)
デフォルト以外のIDでは、CustomA
、CustomB
で専用のパラメータを設定します。
-
ID Material CustomA CustomB 備考 0 Default 無効 無効 標準のシェーディング方法 1 PreIntegrated Skin Curvature(曲率) Transmittance color 肌用 2 Unlit placeholder Invalid Invalid 未使用の予約コード 3 Anisotropy(異方性) Anisotropic Shift tangent 4 Glass(ガラス) Curvature(曲率) Transmittance color 5 Cloth(布) Sheen(光沢) Fuzz Color(毛羽立ちの色) 6 Clear Coat(クリアコート) Smoothness(滑らかさ) 無効 透明な材質で覆われた材質 7 Subsurface Curvature(曲率) Transmittance color 8 Cel Shading Threshold(影の閾値) Shadow color(影に乗算する色) 9 ToonBased Shading Haredness(影との境界の滑らかさ) Shadow color(影に乗算する色) -
Subsurface
(サブサーフェス) :curvature
(曲率) は、opacity
(不透明度)とも呼ばれ、ぼかしの全体的な強度を定義する。 詳細については、UE4ドキュメント サブサーフェス プロファイル シェーディング モデル を参照してください。Glass
(ガラス) : In order to make refraction work, you must set alpha value of the pmx to less then0.999
Cloth
(布) :Sheen
はGGX
とInvGGX
間の補間です。詳細は paper (英語)を参照してください。Cloth
(布) :Fuzz Color
はsRGB色空間のフレネル反射率の f0 です。Toon
(トゥーン) : 詳細については、 paper (中国語)を参照してください。
-
マップの値の取得元を決定します。
設定する値は ALBEDO_MAP_FROM を参照してください。
-
マップをX軸、Y軸、または両方で反転させます。
設定する値は ALBEDO_MAP_UV_FLIP を参照してください。
-
マップの階調を反転します。
値 説明 0 反転しない 1 反転する -
参照するマップのチャンネルを設定します。
設定する値は ALPHA_MAP_SWIZZLE を参照してください。
-
CUSTOM_A_MAP_FROM
で決定した値(map values)に対してcustomA
の数値で演算を行います。設定する値は ALBEDO_MAP_APPLY_SCALE を参照してください。
-
CUSTOM_A_MAP_FROM
に1
または2
を設定した場合、CUSTOM_A_MAP_FILE
にマップファイルパスの記載が必要です。
記載方法については、ALBEDO_MAP_FILE を参照してください。 -
CUSTOM_A_MAP_FROM
に0
、またはCUSTOM_A_MAP_APPLY_SCALE
に1
または2
を設定した場合、数値を設定する必要があります。 -
マップをタイル状に繰り返す回数を設定します。
設定例については albedoMapLoopNum を参照してください。
-
マップの値の取得元を決定します。
設定する値は ALBEDO_MAP_FROM を参照してください。
-
マップをX軸、Y軸、または両方で反転させます。
設定する値は ALBEDO_MAP_UV_FLIP を参照してください。
-
マップの階調を反転します。
値 説明 0 反転しない 1 反転する -
CUSTOM_B_MAP_FROM
で決定した値(map values)に対してcustomB
の数値で演算を行います。設定する値は ALBEDO_MAP_APPLY_SCALE を参照してください。
-
CUSTOM_B_MAP_FROM
に1
または2
を設定した場合、CUSTOM_B_MAP_FILE
にマップファイルパスの記載が必要です。
記載方法については、ALBEDO_MAP_FILE を参照してください。 -
(sRGB color-space)
CUSTOM_B_MAP_FROM
に0
、またはCUSTOM_B_MAP_APPLY_SCALE
に1
または2
を設定した場合、数値を設定する必要があります。 -
マップをタイル状に繰り返す回数を設定します。
設定例については albedoMapLoopNum を参照してください。
-
sRGB-color と Gamma とは?
ほとんどの場合、ガンマは約2.2です。sRGBとガンマについては、詳細は下記のドキュメントをご覧ください。
GPU Gems 3 Chapter 24. The Importance of Being Linear (英語)
sRGB(wikipedia) (英語) -
gloss map(光沢マップ)とは?
Gloss map はsmoothness map
です。 -
roughness map(ラフネスマップ)を使うには?
SMOOTHNESS_MAP_FILE
にファイルパスを設定し、SMOOTHNESS_MAP_TYPE
に1
を設定します。 -
melanin(メラニン)はどこに行った?
ALBEDO_SUB_ENABLE
の設定に移動しました。詳細はALBEDO_SUB_ENABLE を参照してください。 -
何故
parallaxMapLoopNum
の数を増やすと、アルベド、法線などのループ数が増えますか?
視差座標は「高さマップ」から計算できるので、それらはalbedo
、normals
、smoothness
、metalness
などのテクスチャにアクセスするために使われます。Bacause parallax coordinates can be calculated from
height map
,that are then used to access textures withalbedo
,normals
,smoothness
,metalness
, etc, In other words like fetched data (albedo
,normals
, etc) from parallax coordinatesparallaxMapLoopNum
albedo
/normal
/MapLoopNum