8_2_マテリアル_パラメータ - gaj-cg/ray-mmd-docs-ja GitHub Wiki

8.マテリアル

8-2.マテリアル パラメータ

(material\readme.mdからの翻訳。意訳が多いので原文の英語版も参照することをお奨めします。デフォルト値は material_2.0.fx のものです。)

English       中文文档

このドキュメントは 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

 Albedo(アルベド)はbase color(ベースカラー)とも呼ばれ、材質の全体的な色を定義します。3つのカラーチャンネル(RGB)を使用し、アルベドマップはsRGB色空間で正規化された値であり、0.0から1.0の値が設定されます。

  • ALBEDO_MAP_FROM

    アルベドの取得元を決定します。
    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

    ALBEDO_MAP_UV_FLIPに設定した値によってテクスチャをX軸、Y軸、または両方で反転させます。

    説明
    0 反転しない(デフォルト)
    1 X軸で反転
    2 Y軸で反転
    3 X軸とY軸で反転
  • ALBEDO_MAP_APPLY_SCALE

    ALBEDO_MAP_APPLY_SCALEに設定した値に従って、ALBEDO_MAP_FROMで決定した色(map values)に対してalbedoの数値で演算を行います。

    説明
    0 演算しない(デフォルト)
    1 map values * albedo (乗算)
    2 map values ^ albedo (累乗)
  • ALBEDO_MAP_APPLY_DIFFUSE

    テクスチャカラーにPMXモデルに設定されているdiffuse(拡散色)の数値で乗算を行います。

    説明
    0 乗算しない
    1 乗算する(デフォルト)
  • ALBEDO_MAP_APPLY_MORPH_COLOR

    テクスチャカラーとPMXモデルに設定されているモーフ(R+/G+/B+)の値で乗算を行います。
    (この機能を使うにはR+/G+/B+モーフをPMXエディタ等でPMXモデルに追加する必要があります。
    R+/G+/B+モーフの値が参照できればいいので、モーフの中身は空でもかまいません。)

    説明
    0 乗算しない(デフォルト)
    1 乗算する
  • ALBEDO_MAP_FILE

    マップのファイルパスを設定する。 ALBEDO_MAP_FROM1または2を設定した場合、ALBEDO_MAP_FILEにマップファイルパスの記載が必要です。

    ファイルパスの記載例 :

    1. xxx.png と material.fx が同じフォルダにある場合
      #define ALBEDO_MAP_FILE "xxx.png"

    2. xxx.png が material.fx の親フォルダにある場合
      #define ALBEDO_MAP_FILE "../xxx.png"

    3. xxx.png が material.fx の親フォルダ配下の別のフォルダにある場合
      #define ALBEDO_MAP_FILE "../(other path)/xxx.png"

    4. xxx.png がデスクトップや他のドライブにある場合(相対パスではなく絶対パスを使う場合) #define ALBEDO_MAP_FILE "C:/Users/(User Name)/Desktop/xxx.png"

      補足 :

      • "../" カレントフォルダの上のフォルダ(親フォルダ)を意味します。
      • "\\"(Shift-JISでは半角の¥¥:エスケープシーケンスを利用したパスの表記法) の代わりに "/" が使用できます。

      注意:

      • ファイルパスに日本語が含まれる場合はマテリアルファイルの文字エンコーディングはShift-JISでなければならない。これはMMEの仕様によるもの。
        (MikuMikuEffect REFERENCE.txt「●エフェクトファイル内での日本語使用」より)
  • albedo

    ALBEDO_MAP_FROM0またはALBEDO_MAP_APPLY_SCALE1を設定した場合、数値を設定する必要があります。
    (他のケースでは参照されないことを意味します。)
    albrdoに設定する数値はカラーを示すR,G,Bの数値を設定します。

    設定例:

    1. 正規化された数値(0.0~1.0)で赤色を表現するには、以下のように設定します。数値は順にR,G,Bを示します。
      const float3 albedo = float3(1.0, 0.0, 0.0);

    2. 正規化されていない数値(0~255:ペイントソフトなどで見られる数値)で赤色を表現するには、以下のように設定します。(255.0で割るので結果的には正規化された数値となります。) const float3 albedo = float3(255.0, 0.0, 0.0) / 255.0;

    3. ペイントツールなどのカラーピッカーを使いモニター上で選択した色の数値を使う場合、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);
  • albedoMapLoopNum

    アルベドのテクスチャマップをタイル状に繰り返す回数を設定します。
    X方向とY方向、それぞれ異なる回数を設定する場合は、albedoMapLoopNum = float2(x, y)のように記述することができます。

    設定例:

    1. XYが同じ数値の場合:
      const flaot albedoMapLoopNum = 2.0;
      または
      const flaot2 albedoMapLoopNum = 2.0;
    2. XYが異なる数値の場合:
      const flaot2 albedoMapLoopNum = float2(2.0, 3.0);

SubAlbedo

Albedoで決定された色に対して色調整のためにSubAlbedoの値で加算や乗算などの演算を行う。

  • ALBEDO_SUB_ENABLE

    ALBEDO_SUB_ENABLEに下記の値を設定することで、アルベドの色を調整することが出来ます。

    説明
    0 None(SubAlbedoを使用しない:デフォルト)
    1 albedo * albedoSub(乗算)
    2 albedo ^ albedoSub(累乗)
    3 albedo + albedoSub(加算)
    4 melanin(メラニン)
    5 Alpha Blend(アルファブレンド)
  • ALBEDO_SUB_MAP_FROM

    SubAlbedoの色の取得元を決定します。

    設定する値は ALBEDO_MAP_FROM を参照してください。

  • ALBEDO_SUB_MAP_UV_FLIP

    サブアルベドのテクスチャをX軸、Y軸、または両方で反転させます。

    設定する値は ALBEDO_MAP_UV_FLIP を参照してください。

  • ALBEDO_SUB_MAP_APPLY_SCALE

    ALBEDO_SUB_MAP_FROMで決定した色(map values)に対してalbedoSubの数値で演算を行います。

    設定する値は ALBEDO_MAP_APPLY_SCALE を参照してください。

  • ALBEDO_SUB_MAP_FILE

    ALBEDO_SUB_MAP_FROM1または2を設定した場合、ALBEDO_SUB_MAP_FILEにマップファイルパスの記載が必要です。
    記載方法については、ALBEDO_MAP_FILE を参照してください。

  • albedoSub

    ALBEDO_SUB_MAP_FROM0、またはALBEDO_SUB_MAP_APPLY_SCALE1または2を設定した場合、数値を設定する必要があります。

    設定例についてはalbedoを参照して下さい。

  • albedoSubMapLoopNum

    サブアルベドのテクスチャマップをタイル状に繰り返す回数を設定します。

    設定例については albedoMapLoopNum を参照してください。

Alpha

 マテリアルの透過設定を行います。不透明なオブジェクトには影響しません。

  • ALPHA_MAP_FROM

    透過値の取得元を決定します。

    設定する値は ALBEDO_MAP_FROM を参照してください。

  • ALPHA_MAP_UV_FLIP

    透過用のマップをX軸、Y軸、または両方で反転させます。

    設定する値は ALBEDO_MAP_UV_FLIP を参照してください。

  • ALPHA_MAP_SWIZZLE

    下記の値に従って、参照するマップのチャンネルを設定します。

    説明
    0 R チャンネルを参照する
    1 G チャンネルを参照する
    2 B チャンネルを参照する
    3 A チャンネルを参照する(デフォルト)
  • ALPHA_MAP_FILE

    ALPHA_MAP_UV_FLIP1または2を設定した場合、ALPHA_MAP_FILEにマップファイルパスの記載が必要です。

    記載方法については、ALBEDO_MAP_FILE を参照してください。

  • alpha

    ALPHA_MAP_FROM0を設定した場合、数値(0.0~1.0)を設定する必要があります。

  • alphaMapLoopNum

    透過テクスチャマップをタイル状に繰り返す回数を設定します。

    設定例については albedoMapLoopNum を参照してください。

Normal

 マテリアルにノーマル(法線)マップを追加します。

 ノーマルマップは、メッシュの見た目の凸凹を変更し、光の角度を変更して細部に影を追加します。このマップは、殆どの場合、3つのチャンネルを持つタンジェントスペース(接線)のマップを使用します。古いパイプラインや、帯域幅など幾つかの要因で異なるタイプの法線マップを使用する事もできます。詳細については、NORMAL_MAP_TYPEを参照してください。

リアルタイムで光を計算するためには、すべての入力モデルが法線を持たなければならず、それ以外の場合は白いエッジの問題が発生します。モデルにいくつかの白い辺が見えたら、PMXEditorでモデルに使用されるすべての法線が「長さ0」(XYZが0)でないことを確認し、修正します。
(訳者注:モデルの頂点法線の長さが正しくない事に起因する問題だと思われます。)

  • NORMAL_MAP_FROM

    ノーマルマップの取得元を決定します。

    設定するcode(数値)は ALBEDO_MAP_FROM を参照してください。

  • NORMAL_MAP_TYPE

    ノーマルマップの種類を設定します。(デフォルト0)
    UE4ドキュメント タンジェント空間外のバンプマッピングPerturbNormalLQPerturbNormalHQ を参考にしてください。

    説明
    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.
  • NORMAL_MAP_UV_FLIP

    ノーマルマップをX軸、Y軸、または両方で反転させます。

    設定する値は ALBEDO_MAP_UV_FLIP を参照してください。

  • NORMAL_MAP_FILE

    NORMAL_MAP_FROM1または2を設定した場合、NORMAL_MAP_FILEにノーマルマップファイルパスの記載が必要です。

    記載方法については、ALBEDO_MAP_FILE を参照してください。

  • normalMapScale

    ノーマルの倍率を設定します。(デフォルト1.0)
    (倍率であることに注意)

  • normalMapLoopNum

    ノーマルマップをタイル状に繰り返す回数を設定します。

    設定例については albedoMapLoopNum を参照してください。

SubNormal

追加のノーマルマップ。
NormalとSubNormalが合成された結果が使われる。

  • NORMAL_SUB_MAP_FROM

    サブノーマルマップの取得元を決定します。

    設定する値は ALBEDO_MAP_FROM を参照してください。

  • NORMAL_SUB_MAP_TYPE

    サブノーマルマップの種類を設定します。(デフォルト0)

    設定する値は NORMAL_MAP_TYPE を参照してください。

  • NORMAL_SUB_MAP_UV_FLIP

    サブノーマルマップをX軸、Y軸、または両方で反転させます。

    設定する値は ALBEDO_MAP_UV_FLIP を参照してください。

  • NORMAL_SUB_MAP_FILE

    NORMAL_SUB_MAP_TYPE1または2を設定した場合、NORMAL_SUB_MAP_FILEにノーマルマップファイルパスの記載が必要です。

    記載方法については、ALBEDO_MAP_FILE を参照してください。

  • normalSubMapScale

    サブノーマルの倍率を設定します。(デフォルト1.0)
    (倍率であることに注意)

  • normalSubMapLoopNum

    サブノーマルマップをタイル状に繰り返す回数を設定します。

    設定例については albedoMapLoopNum を参照してください。

Smoothness

 スムースネス(滑らかさ)を決定します。

スムースネスマップは、表面の滑らかさを決定します。これは常にモノラルチャンネルのグレースケールマップです。

ほとんどの場合、モノラルチャンネルのグレースケールマップ(の画像ファイル)は使用されていません。そのため、デフォルトチャネルとしてRGBAマップのRチャネルのみが使用されます。また、SMOOTHNESS_MAP_SWIZZLEにコードを設定することによって、どのチャンネルを参照するかを指定することもできます。

デフォルトの値は SpecularPower(PMXEでは反射強度)からパラメータを取得し、Smoothnessに変換します。

  • SMOOTHNESS_MAP_FROM

    スムースネスの値の取得元を決定します。(デフォルト9)

    設定する値は ALBEDO_MAP_FROM を参照してください。

  • SMOOTHNESS_MAP_TYPE

    スムースネスのパラメータタイプを設定します。(デフォルト0)
    (値をスムースネスとして扱うか、ラフネス(粗さ)として扱うか)

    説明
    0 Smoothness (from Frostbite / CE5 textures)
    値をスムースネスとして扱う。
    1 Calculate Smoothness from Roughness by 1.0 - Roughness ^ 0.5
    (from UE4/GGX/SubstancePainter2)
    値をノンリニアなラフネスとして扱う。
    2 Calculate Smoothness from Roughness by 1.0 - Roughness
    (from UE4/GGX/SubstancePainter2 with linear roughness)
    値をリニアなラフネスとして扱う。
  • SMOOTHNESS_MAP_UV_FLIP

    スムースネスマップをX軸、Y軸、または両方で反転させますす。

    設定する値は ALBEDO_MAP_UV_FLIP を参照してください。

  • SMOOTHNESS_MAP_SWIZZLE

    参照するマップのチャンネルを設定します。

    設定する値は ALPHA_MAP_SWIZZLE を参照してください。

  • SMOOTHNESS_MAP_APPLY_SCALE

    SMOOTHNESS_MAP_FROMで取得した値(map values)に対してsmoothnessの数値で演算を行います。

    設定する値は ALBEDO_MAP_APPLY_SCALE を参照してください。

  • SMOOTHNESS_MAP_FILE

    SMOOTHNESS_MAP_FROM1または2を設定した場合、SMOOTHNESS_MAP_FILEにマップファイルパスの記載が必要です。

    記載方法については、ALBEDO_MAP_FILE を参照してください。

  • smoothness

    SMOOTHNESS_MAP_FROM0、またはSMOOTHNESS_MAP_APPLY_SCALE1または2を設定した場合、数値(0.0~1.0)を設定する必要があります。

  • smoothnessMapLoopNum

    スムースネスマップをタイル状に繰り返す回数を設定します。

    設定例については albedoMapLoopNum を参照してください。

Metalness

 メタルネスマップは、反射率を決定する1つの方法であり、テクスチャのどの部分が金属であるかを決定します。鏡面ハイライトマップなどの古いパイプラインの代わりに使用されます。

メタルネスマップは常にモノラルチャンネルのグレースケールマップですが、グレースケールマップ(の画像ファイル)はほとんど使用されず、デフォルトチャンネルとしてRGBAマップのRチャンネルのみが使用されます。また、METALNESS_MAP_SWIZZLEに値を設定することで、どのチャンネルを参照するかを指定することもできます。

  • METALNESS_MAP_FROM

    メタルネス値の取得元を決定します。

    設定する値は ALBEDO_MAP_FROM を参照してください。

  • METALNESS_MAP_UV_FLIP

    メタルネスマップをX軸、Y軸、または両方で反転させます。

    設定する値は ALBEDO_MAP_UV_FLIP を参照してください。

  • METALNESS_MAP_SWIZZLE

    参照するマップのチャンネルを設定します。

    設定する値は ALPHA_MAP_SWIZZLE を参照してください。

  • METALNESS_MAP_APPLY_SCALE

    METALNESS_MAP_FROMで取得した値(map values)に対してmetalnessの数値で演算を行います。

    設定する値は ALBEDO_MAP_APPLY_SCALE を参照してください。

  • METALNESS_MAP_FILE

    METALNESS_MAP_FROM1または2を設定した場合、METALNESS_MAP_FILEにマップファイルパスの記載が必要です。

    記載方法については、ALBEDO_MAP_FILE を参照してください。

  • metalness

    メタルネスの値を設定します。(0.0~1.0)

    METALNESS_MAP_FROM0またはMETALNESS_MAP_APPLY_SCALE1または2を設定した場合、数値を設定する必要があります。

  • metalnessMapLoopNum

    メタルネスマップをタイル状に繰り返す回数を設定します。

    設定例については albedoMapLoopNum を参照してください。

Specular

 スペキュラマップは環境マップおよびスフィアマップではなく、モデルのベース反射率のみを変更します。これは、反射の色を制御するために使用されます。

 RGBとグレースケールの2種類の鏡面マップがあります。 メタルネスが0より大きい場合は効果がありません。

CUSTOM_ENABLEがゼロに等しくない場合、RGBタイプの鏡面マップは機能しません。 そのため、SPECULAR_MAP_TYPEにコードを設定することで、RGBではなくグレースケールマップを使用することができます。 モデルが鏡面色を反映していると感じない場合は、 const float3 specular = 0.0にゼロを設定できます。

  • SPECULAR_MAP_FROM

    スペキュラ値の取得元を決定します。

    設定する値は ALBEDO_MAP_FROM を参照してください。

  • SPECULAR_MAP_TYPE

    スペキュラの(計算)タイプを設定します。(デフォルト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 when SPECULAR_MAP_FROM at 0
  • SPECULAR_MAP_UV_FLIP

    スペキュラマップをX軸、Y軸、または両方で反転させます。

    設定する値は ALBEDO_MAP_UV_FLIP を参照してください。

  • SPECULAR_MAP_SWIZZLE

    参照するマップのチャンネルを設定します。

    設定する値は ALPHA_MAP_SWIZZLE を参照してください。

  • SPECULAR_MAP_APPLY_SCALE

    SPECULAR_MAP_FROMで取得した値(map values)に対してspecularの数値で演算を行います。

    設定する値は ALBEDO_MAP_APPLY_SCALE を参照してください。

  • SPECULAR_MAP_FILE

    SPECULAR_MAP_FROM1または2を設定した場合、SPECULAR_MAP_FILEにマップファイルパスの記載が必要です。

    記載方法については、ALBEDO_MAP_FILE を参照してください。

  • specular

    スペキュラーの値を設定します。(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の間のクランプされた値です。

  • specularMapLoopNum

    スペキュラマップをタイル状に繰り返す回数を設定します。

    設定例については albedoMapLoopNum を参照してください。

Occlusion

 アンビエントオクルージョン(AO)は、オクルージョン(閉塞)による環境光の減衰を近似するエフェクトです。

多くの方向から射し込む「空の照明」は、単純にリアルタイムで影を計算することができません。 occlusion mapSSAOを使って擬似的に置き換えることができます。 diffusespecularが不要な場合は、 const float occlusion = 1.0にゼロを設定することもできます。

  • OCCLUSION_MAP_FROM

    オクルージョンの値の取得元を決定します。

    設定する値は ALBEDO_MAP_FROM を参照してください。

  • OCCLUSION_MAP_TYPE

    オクルージョンマップのタイプを設定します。(デフォルト0)

    説明
    0 Fetch ambient occlusion from linear color-space
    1 Fetch ambient occlusion from sRGB color-space
    2 Fetch ambient occlusion from linear color-space from second UV set
    3 Fetch ambient occlusion from sRGB color-space from second UV set
  • OCCLUSION_MAP_UV_FLIP

    オクルージョンマップをX軸、Y軸、または両方で反転させます。

    設定する値は ALBEDO_MAP_UV_FLIP を参照してください。

  • OCCLUSION_MAP_SWIZZLE

    参照するマップのチャンネルを設定します。

    設定する値は ALPHA_MAP_SWIZZLE を参照してください。

  • OCCLUSION_MAP_APPLY_SCALE

    OCCLUSION_MAP_FROMで取得した値(map values)に対してocclusionの数値で演算を行います。

    設定する値は ALBEDO_MAP_APPLY_SCALE を参照してください。

  • occlusion

    オクルージョンの値を設定します。(0.0~1.0)

  • occlusionMapLoopNum

    オクルージョンマップをタイル状に繰り返す回数を設定します。

    設定例については albedoMapLoopNum を参照してください。

Parallax

パララック(視差)マッピングは、凹凸を持たないテクスチャに高さ情報を組み合わせることで運動視差を再現し、オブジェクト表面の凹凸のよりリアルな表現を可能にする。(wikipediaより)

height mapを使用できますが、頂点ディスプレースメントとして機能するものではありません。
(パララックスマッピングはディスプレースメントマッピングではありません)

  • PARALLAX_MAP_FROM

    パララックスの値の取得元を決定します。

    設定する値は ALBEDO_MAP_FROM を参照してください。

  • PARALLAX_MAP_TYPE

    パララックスマップのタイプを設定します。

    説明
    0 透明度なしで計算します
    1 透明度と最良のSSDOで視差のオクルージョンを計算します
  • PARALLAX_MAP_UV_FLIP

    パララックスマップのX軸、Y軸、または両方で反転させます。

    設定する値は ALBEDO_MAP_UV_FLIP を参照してください。

  • PARALLAX_MAP_SWIZZLE

    参照するマップのチャンネルを設定します。

    設定する値は ALPHA_MAP_SWIZZLE を参照してください。

  • PARALLAX_MAP_FILE

    PARALLAX_MAP_FROM1または2を設定した場合、PARALLAX_MAP_FILEにマップファイルパスの記載が必要です。

    記載方法については、ALBEDO_MAP_FILE を参照してください。

  • parallaxMapScale

    パララックスの倍率を設定します。(デフォルト1.0)
    (倍率であることに注意)

  • parallaxMapLoopNum

    パララックスマップをタイル状に繰り返す回数を設定します。

    設定例については albedoMapLoopNum を参照してください。

Emissive

 MMDに光源(PointLightなど)を追加し、モデルの発光部の一部としてキー入力し、同じ色を光源と発光色に設定します。
(訳者注:エミッシブは発光体表現 (発光色で光っているように見えるだけ) なので、それ自体はライト(光源)の役割を持っていません。光源を追加することによって、エミッシブから光が放射しているように見せかけることができます。)

  • EMISSIVE_ENABLE

    エミッシブの有効、無効を設定します。

    説明
    0 無効(デフォルト)
    1 有効
  • EMISSIVE_MAP_FROM

    エミッシブマップの取得元を決定します。

    設定する値は ALBEDO_MAP_FROM を参照してください。

  • EMISSIVE_MAP_UV_FLIP

    エミッシブマップをX軸、Y軸、または両方で反転させます。

    設定する値は ALBEDO_MAP_UV_FLIP を参照してください。

  • EMISSIVE_MAP_APPLY_SCALE

    EMISSIVE_MAP_FROMで決定した色(map values)に対してemissiveの数値で演算を行います。

    設定する値は ALBEDO_MAP_APPLY_SCALE を参照してください。

  • EMISSIVE_MAP_APPLY_MORPH_COLOR

    エミッシブのカラーとPMXモデルに設定されているモーフ(R+/G+/B+)の値で乗算を行います。
    (この機能を使うにはR+/G+/B+モーフをPMXエディタ等でPMXモデルに追加する必要があります。
    R+/G+/B+モーフの値が参照できればいいので、モーフの中身は空でもかまいません。)

    設定する値は ALBEDO_MAP_APPLY_MORPH_COLOR を参照してください。

  • EMISSIVE_MAP_APPLY_MORPH_INTENSITY

    エミッシブのカラーとPMXモデルに設定されているモーフ(Intensity+/-)の値で乗算を行います。
    (この機能を使うにはIntensity+/-モーフをPMXエディタ等でPMXモデルに追加する必要があります。
    Intensity+/-モーフの値が参照できればいいので、モーフの中身は空でもかまいません。)

    説明
    0 乗算しない(デフォルト)
    1 乗算する
  • EMISSIVE_MAP_APPLY_BLINK

    点滅を使う時は、以下の値を設定します。

    説明
    0 点滅しない(デフォルト)
    1 emissiveBlinkに記述した周期で点滅します。
    例:const float3 emissiveBlink = float3(1.0, 2.0, 3.0);
    赤は1周期、緑は2周期、青は3周期。
    2 morph controllerBlinkモーフに従って点滅します。
  • EMISSIVE_MAP_FILE

    EMISSIVE_MAP_FROM1または2を設定した場合、EMISSIVE_MAP_FILEにマップファイルパスの記載が必要です。
    記載方法については、ALBEDO_MAP_FILE を参照してください。

  • emissive

    EMISSIVE_MAP_FROM0、またはEMISSIVE_MAP_APPLY_SCALE1または2を設定した場合、数値を設定する必要があります。

    設定例についてはalbedoを参照して下さい。

  • emissiveBlink

    EMISSIVE_MAP_APPLY_BLINK1を設定した時に周期を設定します。

  • emissiveIntensity

    エミッシブの倍率を設定します。(デフォルト1.0)

  • emissiveMapLoopNum

    エミッシブマップをタイル状に繰り返す回数を設定します。

    設定例については albedoMapLoopNum を参照してください。

Shading Model ID(シェーディングモデルID)

 シェーディングモデルIDは、マテリアルのシェーディング方法の種類を決定します。(デフォルト0)
デフォルト以外のIDでは、CustomACustomBで専用のパラメータを設定します。

  • CUSTOM_ENABLE

    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(影に乗算する色)
  • Tips

    Subsurface(サブサーフェス) : curvature(曲率) は、opacity(不透明度)とも呼ばれ、ぼかしの全体的な強度を定義する。 詳細については、UE4ドキュメント サブサーフェス プロファイル シェーディング モデル を参照してください。

    Glass(ガラス) : In order to make refraction work, you must set alpha value of the pmx to less then 0.999

    Cloth(布) : SheenGGXInvGGX間の補間です。詳細は paper (英語)を参照してください。

    Cloth(布) : Fuzz Color はsRGB色空間のフレネル反射率の f0 です。

    Toon(トゥーン) : 詳細については、 paper (中国語)を参照してください。

CustomA用パラメータ

  • CUSTOM_A_MAP_FROM

    マップの値の取得元を決定します。

    設定する値は ALBEDO_MAP_FROM を参照してください。

  • CUSTOM_A_MAP_UV_FLIP

    マップをX軸、Y軸、または両方で反転させます。

    設定する値は ALBEDO_MAP_UV_FLIP を参照してください。

  • CUSTOM_A_MAP_COLOR_FLIP

    マップの階調を反転します。

    説明
    0 反転しない
    1 反転する
  • CUSTOM_A_MAP_SWIZZLE

    参照するマップのチャンネルを設定します。

    設定する値は ALPHA_MAP_SWIZZLE を参照してください。

  • CUSTOM_A_MAP_APPLY_SCALE

    CUSTOM_A_MAP_FROMで決定した値(map values)に対してcustomAの数値で演算を行います。

    設定する値は ALBEDO_MAP_APPLY_SCALE を参照してください。

  • CUSTOM_A_MAP_FILE

    CUSTOM_A_MAP_FROM1または2を設定した場合、CUSTOM_A_MAP_FILEにマップファイルパスの記載が必要です。
    記載方法については、ALBEDO_MAP_FILE を参照してください。

  • customA

    CUSTOM_A_MAP_FROM0、またはCUSTOM_A_MAP_APPLY_SCALE1または2を設定した場合、数値を設定する必要があります。

  • customAMapLoopNum

    マップをタイル状に繰り返す回数を設定します。

    設定例については albedoMapLoopNum を参照してください。

CustomB用パラメータ

  • CUSTOM_B_MAP_FROM

    マップの値の取得元を決定します。

    設定する値は ALBEDO_MAP_FROM を参照してください。

  • CUSTOM_B_MAP_UV_FLIP

    マップをX軸、Y軸、または両方で反転させます。

    設定する値は ALBEDO_MAP_UV_FLIP を参照してください。

  • CUSTOM_B_MAP_COLOR_FLIP

    マップの階調を反転します。

    説明
    0 反転しない
    1 反転する
  • CUSTOM_B_MAP_APPLY_SCALE

    CUSTOM_B_MAP_FROMで決定した値(map values)に対してcustomBの数値で演算を行います。

    設定する値は ALBEDO_MAP_APPLY_SCALE を参照してください。

  • CUSTOM_B_MAP_FILE

    CUSTOM_B_MAP_FROM1または2を設定した場合、CUSTOM_B_MAP_FILEにマップファイルパスの記載が必要です。
    記載方法については、ALBEDO_MAP_FILE を参照してください。

  • customB

    (sRGB color-space)

    CUSTOM_B_MAP_FROM0、またはCUSTOM_B_MAP_APPLY_SCALE1または2を設定した場合、数値を設定する必要があります。

  • customBMapLoopNum

    マップをタイル状に繰り返す回数を設定します。

    設定例については albedoMapLoopNum を参照してください。

FAQ

  • 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_TYPE1 を設定します。

  • melanin(メラニン)はどこに行った?
    ALBEDO_SUB_ENABLEの設定に移動しました。詳細はALBEDO_SUB_ENABLE を参照してください。

  • 何故 parallaxMapLoopNum の数を増やすと、アルベド、法線などのループ数が増えますか?
    視差座標は「高さマップ」から計算できるので、それらは albedonormalssmoothnessmetalnessなどのテクスチャにアクセスするために使われます。

    Bacause parallax coordinates can be calculated from height map,that are then used to access textures with albedo, normals, smoothness, metalness, etc, In other words like fetched data (albedo, normals, etc) from parallax coordinates parallaxMapLoopNum albedo/normal/MapLoopNum

⚠️ **GitHub.com Fallback** ⚠️