ゲームエフェクトデザイナーのブログ (新)

レポート記事とか色々。C#とかも触ったり。

最終マテリアル入力の各ポートについて

最終マテリアル入力ノードの「基本色(Base Color)」や「メタリック(Metalic)」といった各入力ポートについて分かる範囲で書いておきたいと思います。

f:id:moko_03_25:20141027011310p:plain

ハイライト表示されている入力ポートは入力されているノードが有効になりますが、グレーアウト表示されているポートにはノードが繋がっていても無効になります。
詳細パネルの「Material」内の設定によって、どの入力ポートが有効になるかが変わります。

f:id:moko_03_25:20141027011821p:plain

Material Domain
 基本的にデフォルトである「Surface」でOKです。
 デカールマテリアルとして利用したい場合には「Deferred Decal」を選択します。

Blend Mode
 背景との合成方法です。
 Opaque ‥ 不透明。そのためオパシティ(Opacity)ポートが無効になります。
 Masked ‥ 不透明で1bit抜きあり。オパシティマスクポートが有効になります。
 Translucent ‥ 半透明。エフェクトではこちらかAddtiveを主に使用します。
 Addtive ‥ 加算半透明。光りモノのエフェクトの場合はこちら。
 Modulate ‥ 乗算半透明。

Modulateにすると統計情報パネルにエラーが2つ表示されると思いますが、ライティングとSeparate Translucencyをサポートしていないためです。
Separate Translucencyは半透明である場合に被写界深度の影響を受けないようにする設定です。
Shading Modelを「Default Lit」から「Unlit」に変更して「Enable Separate Translucency」のチェックをOFFにすると正常に使用できるようになります。


Shading Model
 シェーディング方式の設定です。基本的には以下の2つを利用します。
 Unlit ‥ ライティングなし。
      基本色・メタリック・スペキュラ・ラフネス・法線などが無効になります。
 Default Lit ‥ ライティングあり。
 これ以外にも特殊な表現を行うためのShading Modelがいくつか用意されています。

 公式マニュアル:マテリアル プロパティ

各入力ポートについて


基本的な解説については、まずは公式マニュアルに目を通すのが良いと思います。

 公式マニュアル:マテリアル入力 , 物理ベースのマテリアル

以下、ちょっとした補足になります。

Base Color(基本色)とMetalic(メタリック)
 Metalic(メタリック)が「0」の場合はBase Color(基本色)は拡散反射カラーに、「1」の場合は鏡面反射カラーになり、中間の場合はミックスされるようです。
 下図は球を2つ並べていますが、左が「Metalic = 0」・右が「Metalic = 1」です。
 何もノードを入力しない時のデフォルト値はどちらも恐らく「0」です。
f:id:moko_03_25:20141029003835p:plain

 ちなみに半透明では鏡面反射をサポートしていないようなので、メタリックに寄せるほど基本色の色の値が失われ黒くなるので注意が必要です。

Specular(スペキュラ)
 デフォルト値は「0.5」です。「0」で鏡面反射しません。
 フレネル反射させたい場合はFresnelノードを使用すればOKだと思います。
 (Fresnelノードに関してはまた解説したいと思います)
f:id:moko_03_25:20141027023007p:plain

Roughness(ラフネス)
 デフォルト値は恐らく「0.5」です。

Emissive Color(エミッシブ)
 Base Colorに対して加算合成されます。
 「1」以上の値が入力されるとポストエフェクトのBloomによりグローが入ります。

Opacity Mask(オパシティマスク)
 1bit抜きになります。不透明のピクセルはOpaque同様にシェーディングされますが、透明のピクセルは1bit抜きとは言え半透明処理なのか重なるほど描画負荷が上がるようです。
f:id:moko_03_25:20141027031721p:plain

Normal(法線)
 Blend Modeを半透明に設定している場合、Translucency Lighting Modeがデフォルトの「TLM_Volumetric Non Directional」だと法線ポートにノーマルマップを入力していても反映されません。
 半透明での設定に関してはまた詳しく解説したいと思います。

 参考サイト:もんしょの巣穴blog | [UE4] 半透明マテリアル