UniUnlit

2020-08-03 00:00:00 +0000 UTC
最終更新 2020/09/15: tags(unity, detail, api, gltf...) (cdaf1eb)

UniGLTF/UniUnlit シェーダー

Unity の Unlit 系シェーダーは、機能ごとに

  • Unlit/Color
  • Unlit/Texture
  • Unlit/Transparent
  • Unlit/Transparent Cutout

のように分かれています。

また、GLTF では設定可能なのだけど、標準の Unlit 系シェーダーでは再現できない組み合わせがあります。

  • Texture かつ Color の乗算
  • 頂点カラー

これらを解決する、統一 unlit シェーダーとして UniGLTF/UniUnlit があります。

UniVRM で、GLTFUnlit 設定のマテリアルをインポートすると、 すべて UniGLTF/UniUnlit 使うようになります。

エクスポートしてからインポートする場合の対応表。

exportgltfimport
Unlit/ColorKHR_materials_unlitUniGLTF/UniUnlit
Unlit/TextureKHR_materials_unlitUniGLTF/UniUnlit
Unlit/TransparentKHR_materials_unlitUniGLTF/UniUnlit
Unlit/Transparent CutoutKHR_materials_unlitUniGLTF/UniUnlit
VRM/UnlitTextureKHR_materials_unlitUniGLTF/UniUnlit
VRM/UnlitTransparentKHR_materials_unlitUniGLTF/UniUnlit
VRM/UnlitCutoutKHR_materials_unlitUniGLTF/UniUnlit
UniGLTF/UniUnlitKHR_materials_unlitUniGLTF/UniUnlit

なお、UniVRM がサポートするシェーダーの中で、UniGLTF/UniUnlit だけが頂点カラーをサポートしています。

  • Meshに頂点カラーが含まれている
  • Materialが Unlit 判定である

場合に、import すると頂点カラーが適用されます。 頂点カラーが不要であるモデルに、Unity の unlit 系マテリアルを適用してエクスポートすると、 次にインポートするときに意図せずに色が変わる場合があります。 この場合、エクスポート時に RemoveVertexColor を有効にすることで、頂点カラーを含まない Mesh をエクスポートすることができます。

GLTF

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

VRM - humanoid 3d avatar format for VR