マテリアル設定

2020-05-25 13:04:37 +0900 +0900

トラブルシューティング

  • ピカピカに反射してしまう。
    • Shaderの種類が Standard (Unityの標準) で metallicsmooth 値が高い状態になっています。 マテリアルのシェーダーを Unlit/UniUnlit にするとテクスチャがそのまま表示できます。
    • Shaderの種類が、VRM のサポートしてないシェーダーになっています。サポート外シェーダーロード時は Standard として処理する関係でピカピカに反射する場合があります。マテリアルのシェーダーを Unlit/UniUnlit にするとテクスチャがそのまま表示できます。

Standard

UnityのデフォルトでGLTF標準のPBRマテリアルとほぼ互換性があります。

UnityのデフォルトGLTFのPBRマテリアル
Albedo カラー/materials/pbrMetallicRoughness/baseColorFactor
Albedo テクスチャ/materials/pbrMetallicRoughness/baseColorTexture
Metallic レベル/materials/pbrMetallicRoughness/metallicFactor
Smoothness レベル1.0f - (/materials/pbrMetallicRoughness/roughnessFactor)
Metallic テクスチャ/materials/pbrMetallicRoughness/metallicRoughnessTexture
法線マップ/materials/normalTexture
バンプスケール/materials/normalTexture/scale
ハイトマップN/A
オクルージョンテクスチャ/materials/occlusionTexture
オクルージョン強度/materials/occlusionTexture/strength
Emission カラー/materials/emissiveFactor
Emission テクスチャ/materials/emissiveTexture
詳細マスクN/A
セカンダリマップN/A
レンダリングモード/materials/alphaMode

UniVRMのマテリアルインポートに関して、roughnessFactor値はMetallicテクスチャにベイクされる。マテリアルエクスポートではsmoothness値はMetallicテクスチャにベイクされる[参照]

Unlit系

Unityでは、Unlit/Color, Unlit/Texture, Unlit/Transparent, Unlit/Transparent Cutout があります。 GLTFでは、 KHR_materials_unlit 拡張でサポートしています。

GLTFでは、doubleSidedTextureColorの乗算、VertexColor, Color のアルファモードが表現できますが Unityでは対応するシェーダーがありませんでした。 まとめて対応するために UniGLTF/Unlit シェーダーを追加しました(v0.44)。

UniUnlitGLTF Unlit
カラーファクター/materials/pbrMetallicRoughness/baseColorFactor
カラーテクスチャ/materials/pbrMetallicRoughness/baseColorTexture
レンダリングモード/materials/alphaMode
カリングモード/materials/doubleSided

KHR_materials_unlitを宣言されているの場合は、コアPBRプロパティは無視されます(baseColorを除く)。色の値、アルファと両面プロパティはまだUnlitマテリアルに適用されます。

MToon

VRM - humanoid 3d avatar format for VR