diff --git a/Assets/VRM10/Runtime/IO/Material/BuiltInRP/Import/BuiltInVrm10MaterialDescriptorGenerator.cs b/Assets/VRM10/Runtime/IO/Material/BuiltInRP/Import/BuiltInVrm10MaterialDescriptorGenerator.cs
index 8a5b82aab..e4d7c082b 100644
--- a/Assets/VRM10/Runtime/IO/Material/BuiltInRP/Import/BuiltInVrm10MaterialDescriptorGenerator.cs
+++ b/Assets/VRM10/Runtime/IO/Material/BuiltInRP/Import/BuiltInVrm10MaterialDescriptorGenerator.cs
@@ -10,11 +10,12 @@ namespace UniVRM10
public BuiltInGltfPbrMaterialImporter PbrMaterialImporter { get; } = new();
public BuiltInGltfDefaultMaterialImporter DefaultMaterialImporter { get; } = new();
public BuiltInGltfUnlitMaterialImporter UnlitMaterialImporter { get; } = new();
+ public BuiltInVrm10MToonMaterialImporter MToonMaterialImporter { get; } = new();
public MaterialDescriptor Get(GltfData data, int i)
{
// mtoon
- if (BuiltInVrm10MToonMaterialImporter.TryCreateParam(data, i, out MaterialDescriptor matDesc)) return matDesc;
+ if (MToonMaterialImporter.TryCreateParam(data, i, out MaterialDescriptor matDesc)) return matDesc;
// unlit
if (UnlitMaterialImporter.TryCreateParam(data, i, out matDesc)) return matDesc;
// pbr
diff --git a/Assets/VRM10/Runtime/IO/Material/BuiltInRP/Import/Materials/BuiltInVrm10MToonMaterialImporter.cs b/Assets/VRM10/Runtime/IO/Material/BuiltInRP/Import/Materials/BuiltInVrm10MToonMaterialImporter.cs
index 6a88ea029..6fba92303 100644
--- a/Assets/VRM10/Runtime/IO/Material/BuiltInRP/Import/Materials/BuiltInVrm10MToonMaterialImporter.cs
+++ b/Assets/VRM10/Runtime/IO/Material/BuiltInRP/Import/Materials/BuiltInVrm10MToonMaterialImporter.cs
@@ -11,14 +11,26 @@ using OutlineWidthMode = UniGLTF.Extensions.VRMC_materials_mtoon.OutlineWidthMod
namespace UniVRM10
{
///
- /// Convert MToon parameters from glTF specification to Unity implementation.
+ /// A class that generates MaterialDescriptor for "VRM10/MToon10" shader based on vrm-1.0 Material specification.
+ ///
+ /// https://github.com/vrm-c/vrm-specification/blob/master/specification/VRMC_materials_mtoon-1.0/README.md
///
- public static class BuiltInVrm10MToonMaterialImporter
+ public class BuiltInVrm10MToonMaterialImporter
{
+ ///
+ /// Can be replaced with custom shaders that are compatible with "VRM10/MToon10" properties and keywords.
+ ///
+ public Shader Shader { get; set; }
+
+ public BuiltInVrm10MToonMaterialImporter(Shader shader = null)
+ {
+ Shader = shader != null ? shader : Shader.Find("VRM10/MToon10");
+ }
+
///
/// VMRC_materials_mtoon の場合にマテリアル生成情報を作成する
///
- public static bool TryCreateParam(GltfData data, int i, out MaterialDescriptor matDesc)
+ public bool TryCreateParam(GltfData data, int i, out MaterialDescriptor matDesc)
{
var m = data.GLTF.materials[i];
if (!UniGLTF.Extensions.VRMC_materials_mtoon.GltfDeserializer.TryGet(m.extensions,
diff --git a/Assets/VRM10/Runtime/IO/Material/URP/Import/Materials/UrpVrm10MToonMaterialImporter.cs b/Assets/VRM10/Runtime/IO/Material/URP/Import/Materials/UrpVrm10MToonMaterialImporter.cs
index 515f2fb77..ada10ec84 100644
--- a/Assets/VRM10/Runtime/IO/Material/URP/Import/Materials/UrpVrm10MToonMaterialImporter.cs
+++ b/Assets/VRM10/Runtime/IO/Material/URP/Import/Materials/UrpVrm10MToonMaterialImporter.cs
@@ -7,14 +7,26 @@ using VRM10.MToon10;
namespace UniVRM10
{
///
- /// Convert MToon parameters from glTF specification to Unity implementation.(for URP)
+ /// A class that generates MaterialDescriptor for "VRM10/Universal Render Pipeline/MToon10" shader based on vrm-1.0 Material specification.
+ ///
+ /// https://github.com/vrm-c/vrm-specification/blob/master/specification/VRMC_materials_mtoon-1.0/README.md
///
- public static class UrpVrm10MToonMaterialImporter
+ public class UrpVrm10MToonMaterialImporter
{
+ ///
+ /// Can be replaced with custom shaders that are compatible with "VRM10/Universal Render Pipeline/MToon10" properties and keywords.
+ ///
+ public Shader Shader { get; set; }
+
+ public UrpVrm10MToonMaterialImporter(Shader shader = null)
+ {
+ Shader = shader != null ? shader : Shader.Find("VRM10/Universal Render Pipeline/MToon10");
+ }
+
///
/// VMRC_materials_mtoon の場合にマテリアル生成情報を作成する
///
- public static bool TryCreateParam(GltfData data, int i, out MaterialDescriptor matDesc)
+ public bool TryCreateParam(GltfData data, int i, out MaterialDescriptor matDesc)
{
var m = data.GLTF.materials[i];
if (!UniGLTF.Extensions.VRMC_materials_mtoon.GltfDeserializer.TryGet(m.extensions, out var mtoon))
diff --git a/Assets/VRM10/Runtime/IO/Material/URP/Import/UrpVrm10MaterialDescriptorGenerator.cs b/Assets/VRM10/Runtime/IO/Material/URP/Import/UrpVrm10MaterialDescriptorGenerator.cs
index be2e060cf..63b747d77 100644
--- a/Assets/VRM10/Runtime/IO/Material/URP/Import/UrpVrm10MaterialDescriptorGenerator.cs
+++ b/Assets/VRM10/Runtime/IO/Material/URP/Import/UrpVrm10MaterialDescriptorGenerator.cs
@@ -10,11 +10,12 @@ namespace UniVRM10
public UrpGltfPbrMaterialImporter PbrMaterialImporter { get; } = new();
public UrpGltfDefaultMaterialImporter DefaultMaterialImporter { get; } = new();
public BuiltInGltfUnlitMaterialImporter UnlitMaterialImporter { get; } = new();
+ public UrpVrm10MToonMaterialImporter MToonMaterialImporter { get; } = new();
public MaterialDescriptor Get(GltfData data, int i)
{
// mtoon
- if (UrpVrm10MToonMaterialImporter.TryCreateParam(data, i, out var matDesc)) return matDesc;
+ if (MToonMaterialImporter.TryCreateParam(data, i, out var matDesc)) return matDesc;
// unlit
if (UnlitMaterialImporter.TryCreateParam(data, i, out matDesc)) return matDesc;
// pbr
diff --git a/Assets/VRM10_Samples/VRM10Viewer/MaterialImporter/UrpMToonMaterialImporter.cs b/Assets/VRM10_Samples/VRM10Viewer/MaterialImporter/UrpMToonMaterialImporter.cs
index b0b04f5c1..85d939350 100644
--- a/Assets/VRM10_Samples/VRM10Viewer/MaterialImporter/UrpMToonMaterialImporter.cs
+++ b/Assets/VRM10_Samples/VRM10Viewer/MaterialImporter/UrpMToonMaterialImporter.cs
@@ -7,9 +7,11 @@ namespace UniVRM10.VRM10Viewer
///
public class UrpMToonMaterialImporter : IMaterialImporter
{
+ public UrpVrm10MToonMaterialImporter MToonMaterialImporter { get; } = new();
+
public bool TryCreateParam(GltfData data, int i, out MaterialDescriptor matDesc)
{
- if (UrpVrm10MToonMaterialImporter.TryCreateParam(data, i, out matDesc))
+ if (MToonMaterialImporter.TryCreateParam(data, i, out matDesc))
{
return true;
}