mirror of
https://github.com/vrm-c/UniVRM.git
synced 2026-07-18 00:54:55 -05:00
Merge pull request #1672 from ousttrue/fix/refactor_vrmshaders
不用になっていた ShaderProperty 列挙システムを削除
This commit is contained in:
commit
6c4561bdf6
|
|
@ -47,7 +47,7 @@ namespace UniGLTF
|
|||
Data.MigrationFlags.IsRoughnessTextureValueSquared);
|
||||
MaterialFactory = new MaterialFactory(ExternalObjectMap
|
||||
.Where(x => x.Value is Material)
|
||||
.ToDictionary(x => x.Key, x => (Material)x.Value));
|
||||
.ToDictionary(x => x.Key, x => (Material)x.Value), MaterialFallback.FallbackShaders);
|
||||
AnimationClipFactory = new AnimationClipFactory(ExternalObjectMap
|
||||
.Where(x => x.Value is AnimationClip)
|
||||
.ToDictionary(x => x.Key, x => (AnimationClip)x.Value));
|
||||
|
|
|
|||
|
|
@ -0,0 +1,20 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
namespace UniGLTF
|
||||
{
|
||||
/// <summary>
|
||||
/// 過去バージョンに含まれていたが、廃止・統合された Shader のフォールバック情報
|
||||
/// </summary>
|
||||
public static class MaterialFallback
|
||||
{
|
||||
static Dictionary<string, string> s_fallbackShaders = new Dictionary<string, string>
|
||||
{
|
||||
{"VRM/UnlitTexture", "Unlit/Texture"},
|
||||
{"VRM/UnlitTransparent", "Unlit/Transparent"},
|
||||
{"VRM/UnlitCutout", "Unlit/Transparent Cutout"},
|
||||
{"UniGLTF/StandardVColor", UniGLTF.UniUnlit.UniUnlitUtil.ShaderName},
|
||||
};
|
||||
|
||||
public static IReadOnlyDictionary<string, string> FallbackShaders => s_fallbackShaders;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 90dcef1978c51e74386b76d77689dc82
|
||||
guid: feb59fa02250d3d4db41cfa1c2e2b032
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
|
|
@ -30,7 +30,7 @@ namespace VRM
|
|||
//
|
||||
// extensions.VRM.materialProperties に記録する
|
||||
//
|
||||
var prop = UniGLTF.ShaderPropExporter.PreShaderPropExporter.GetPropsForSupportedShader(m.shader.name);
|
||||
var prop = UniGLTF.ShaderPropExporter.PreShaderPropExporter.GetPropsForMToon();
|
||||
foreach (var kv in prop.Properties)
|
||||
{
|
||||
if (kv.ShaderPropertyType == UniGLTF.ShaderPropExporter.ShaderPropertyType.TexEnv)
|
||||
|
|
|
|||
|
|
@ -55,9 +55,6 @@ namespace VRM
|
|||
|
||||
[MenuItem(DevelopmentMenuPrefix + "/Create UnityPackage", priority = 34)]
|
||||
private static void CreateUnityPackage() => VRMExportUnityPackage.CreateUnityPackageWithoutBuild();
|
||||
|
||||
[MenuItem(DevelopmentMenuPrefix + "/Export ShaderProps Code", priority = 35)]
|
||||
private static void ExportShaderPropertyCode() => ShaderPropMenu.PreExport();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UniGLTF;
|
||||
using UniGLTF.ShaderPropExporter;
|
||||
|
|
@ -135,16 +134,16 @@ namespace VRM
|
|||
renderQueue = m.renderQueue,
|
||||
};
|
||||
|
||||
if (!PreShaderPropExporter.VRMExtensionShaders.Contains(m.shader.name))
|
||||
if (m.shader.name != MToon.Utils.ShaderName)
|
||||
{
|
||||
material.shader = glTF_VRM_Material.VRM_USE_GLTFSHADER;
|
||||
return material;
|
||||
}
|
||||
|
||||
var prop = PreShaderPropExporter.GetPropsForSupportedShader(m.shader.name);
|
||||
var prop = PreShaderPropExporter.GetPropsForMToon();
|
||||
if (prop == null)
|
||||
{
|
||||
Debug.LogWarningFormat("Fail to export shader: {0}", m.shader.name);
|
||||
throw new Exception("arienai");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -11,21 +11,14 @@ namespace VRMShaders
|
|||
public class MaterialFactory : IResponsibilityForDestroyObjects
|
||||
{
|
||||
private readonly IReadOnlyDictionary<SubAssetKey, Material> m_externalMap;
|
||||
private readonly IReadOnlyDictionary<string, string> m_fallbackShaders;
|
||||
|
||||
public MaterialFactory(IReadOnlyDictionary<SubAssetKey, Material> externalMaterialMap)
|
||||
public MaterialFactory(IReadOnlyDictionary<SubAssetKey, Material> externalMaterialMap, IReadOnlyDictionary<string, string> fallbackShaders)
|
||||
{
|
||||
m_externalMap = externalMaterialMap;
|
||||
m_fallbackShaders = fallbackShaders;
|
||||
}
|
||||
|
||||
// TODO: UniVRM 0.x の方に処理を移したい
|
||||
static Dictionary<string, string> s_fallbackShaders = new Dictionary<string, string>
|
||||
{
|
||||
{"VRM/UnlitTexture", "Unlit/Texture"},
|
||||
{"VRM/UnlitTransparent", "Unlit/Transparent"},
|
||||
{"VRM/UnlitCutout", "Unlit/Transparent Cutout"},
|
||||
{"UniGLTF/StandardVColor", UniGLTF.UniUnlit.UniUnlitUtil.ShaderName},
|
||||
};
|
||||
|
||||
public struct MaterialLoadInfo
|
||||
{
|
||||
public SubAssetKey Key;
|
||||
|
|
@ -117,7 +110,7 @@ namespace VRMShaders
|
|||
{
|
||||
throw new Exception("no shader name");
|
||||
}
|
||||
if (s_fallbackShaders.TryGetValue(shaderName, out string fallback))
|
||||
if (m_fallbackShaders.TryGetValue(shaderName, out string fallback))
|
||||
{
|
||||
Debug.LogWarning($"fallback: {shaderName} => {fallback}");
|
||||
shaderName = fallback;
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
{
|
||||
"name": "VRMShaders.GLTF.IO.Runtime",
|
||||
"references": [
|
||||
"GUID:60c8346e00a8ddd4cafc5a02eceeec57"
|
||||
],
|
||||
"references": [],
|
||||
"includePlatforms": [],
|
||||
"excludePlatforms": [],
|
||||
"allowUnsafeCode": false,
|
||||
|
|
|
|||
|
|
@ -1,8 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 36a5a07493511bd49b1ad9dbad2683d2
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -1,96 +0,0 @@
|
|||
using System.Reflection;
|
||||
using System.Linq;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using System.IO;
|
||||
using UniGLTF.ShaderPropExporter;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace UniGLTF
|
||||
{
|
||||
public static class ShaderPropMenu
|
||||
{
|
||||
public static void PreExport()
|
||||
{
|
||||
foreach (var fi in typeof(PreExportShaders).GetFields(
|
||||
BindingFlags.Static
|
||||
| BindingFlags.Public
|
||||
| BindingFlags.NonPublic))
|
||||
{
|
||||
var attr = fi.GetCustomAttributes(true).FirstOrDefault(y => y is PreExportShadersAttribute);
|
||||
if (attr != null)
|
||||
{
|
||||
var supportedShaders = fi.GetValue(null) as SupportedShader[];
|
||||
foreach (var supported in supportedShaders)
|
||||
{
|
||||
PreExport(supported);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static string EscapeShaderName(string name)
|
||||
{
|
||||
return name.Replace("/", "_").Replace(" ", "_");
|
||||
}
|
||||
|
||||
static string ExportDir
|
||||
{
|
||||
get
|
||||
{
|
||||
return Application.dataPath + "/VRM/ShaderProperty/Runtime";
|
||||
}
|
||||
}
|
||||
|
||||
static void PreExport(SupportedShader supportedShader)
|
||||
{
|
||||
var shader = Shader.Find(supportedShader.ShaderName);
|
||||
var props = ShaderProps.FromShader(shader);
|
||||
|
||||
var path = Path.Combine(ExportDir, supportedShader.TargetFolder);
|
||||
path = Path.Combine(path, EscapeShaderName(supportedShader.ShaderName) + ".cs").Replace("\\", "/");
|
||||
Debug.LogFormat("PreExport: {0}", path);
|
||||
File.WriteAllText(path, ToString(props, shader.name));
|
||||
}
|
||||
|
||||
static string ToString(ShaderProps props, string shaderName)
|
||||
{
|
||||
var list = new List<string>();
|
||||
foreach (var prop in props.Properties)
|
||||
{
|
||||
list.Add(string.Format("new ShaderProperty(\"{0}\", ShaderPropertyType.{1})\r\n", prop.Key, prop.ShaderPropertyType));
|
||||
}
|
||||
|
||||
return string.Format(@"using System.Collections.Generic;
|
||||
|
||||
|
||||
namespace UniGLTF.ShaderPropExporter
|
||||
{{
|
||||
public static partial class PreShaderPropExporter
|
||||
{{
|
||||
[PreExportShader]
|
||||
static KeyValuePair<string, ShaderProps> {0}
|
||||
{{
|
||||
get
|
||||
{{
|
||||
return new KeyValuePair<string, ShaderProps>(
|
||||
""{1}"",
|
||||
new ShaderProps
|
||||
{{
|
||||
Properties = new ShaderProperty[]{{
|
||||
{2}
|
||||
}}
|
||||
}}
|
||||
);
|
||||
}}
|
||||
}}
|
||||
}}
|
||||
}}
|
||||
"
|
||||
, EscapeShaderName(shaderName)
|
||||
, shaderName
|
||||
, string.Join(",", list.ToArray()));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 5eb12c186c6337e4db278b5f01d47cae
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
{
|
||||
"name": "VRMShaders.VRM.IO.Editor",
|
||||
"references": [
|
||||
"GUID:301b251fd9834274c9228e0532f444f7"
|
||||
],
|
||||
"includePlatforms": [
|
||||
"Editor"
|
||||
],
|
||||
"excludePlatforms": [],
|
||||
"allowUnsafeCode": false,
|
||||
"overrideReferences": false,
|
||||
"precompiledReferences": [],
|
||||
"autoReferenced": false,
|
||||
"defineConstraints": [],
|
||||
"versionDefines": [],
|
||||
"noEngineReferences": false
|
||||
}
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: bc66ece0f33b52446a0830c05781d4db
|
||||
AssemblyDefinitionImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: d9c97ad7f5bbcac489a47a2f34dfff00
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
namespace UniGLTF.ShaderPropExporter
|
||||
{
|
||||
public static partial class PreExportShaders
|
||||
{
|
||||
const string GLTF_FOLDER = "GLTF";
|
||||
|
||||
#pragma warning disable 414
|
||||
[PreExportShaders]
|
||||
static SupportedShader[] SupportedShaders = new SupportedShader[]
|
||||
{
|
||||
new SupportedShader(GLTF_FOLDER, "Standard"),
|
||||
new SupportedShader(GLTF_FOLDER, "Unlit/Color"),
|
||||
new SupportedShader(GLTF_FOLDER, "Unlit/Texture"),
|
||||
new SupportedShader(GLTF_FOLDER, "Unlit/Transparent"),
|
||||
new SupportedShader(GLTF_FOLDER, "Unlit/Transparent Cutout"),
|
||||
new SupportedShader(GLTF_FOLDER, "UniGLTF/UniUnlit"),
|
||||
};
|
||||
#pragma warning restore 414
|
||||
}
|
||||
}
|
||||
|
|
@ -1,52 +0,0 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
|
||||
namespace UniGLTF.ShaderPropExporter
|
||||
{
|
||||
public static partial class PreShaderPropExporter
|
||||
{
|
||||
[PreExportShader]
|
||||
static KeyValuePair<string, ShaderProps> Standard
|
||||
{
|
||||
get
|
||||
{
|
||||
return new KeyValuePair<string, ShaderProps>(
|
||||
"Standard",
|
||||
new ShaderProps
|
||||
{
|
||||
Properties = new ShaderProperty[]{
|
||||
new ShaderProperty("_Color", ShaderPropertyType.Color)
|
||||
,new ShaderProperty("_MainTex", ShaderPropertyType.TexEnv)
|
||||
,new ShaderProperty("_Cutoff", ShaderPropertyType.Range)
|
||||
,new ShaderProperty("_Glossiness", ShaderPropertyType.Range)
|
||||
,new ShaderProperty("_GlossMapScale", ShaderPropertyType.Range)
|
||||
,new ShaderProperty("_SmoothnessTextureChannel", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_Metallic", ShaderPropertyType.Range)
|
||||
,new ShaderProperty("_MetallicGlossMap", ShaderPropertyType.TexEnv)
|
||||
,new ShaderProperty("_SpecularHighlights", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_GlossyReflections", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_BumpScale", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_BumpMap", ShaderPropertyType.TexEnv)
|
||||
,new ShaderProperty("_Parallax", ShaderPropertyType.Range)
|
||||
,new ShaderProperty("_ParallaxMap", ShaderPropertyType.TexEnv)
|
||||
,new ShaderProperty("_OcclusionStrength", ShaderPropertyType.Range)
|
||||
,new ShaderProperty("_OcclusionMap", ShaderPropertyType.TexEnv)
|
||||
,new ShaderProperty("_EmissionColor", ShaderPropertyType.Color)
|
||||
,new ShaderProperty("_EmissionMap", ShaderPropertyType.TexEnv)
|
||||
,new ShaderProperty("_DetailMask", ShaderPropertyType.TexEnv)
|
||||
,new ShaderProperty("_DetailAlbedoMap", ShaderPropertyType.TexEnv)
|
||||
,new ShaderProperty("_DetailNormalMapScale", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_DetailNormalMap", ShaderPropertyType.TexEnv)
|
||||
,new ShaderProperty("_UVSec", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_Mode", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_SrcBlend", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_DstBlend", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_ZWrite", ShaderPropertyType.Float)
|
||||
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 54043e349b047bf4b8f127cd919a757d
|
||||
timeCreated: 1533542890
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
|
||||
namespace UniGLTF.ShaderPropExporter
|
||||
{
|
||||
public static partial class PreShaderPropExporter
|
||||
{
|
||||
[PreExportShader]
|
||||
static KeyValuePair<string, ShaderProps> UniGLTF_UniUnlit
|
||||
{
|
||||
get
|
||||
{
|
||||
return new KeyValuePair<string, ShaderProps>(
|
||||
"UniGLTF/UniUnlit",
|
||||
new ShaderProps
|
||||
{
|
||||
Properties = new ShaderProperty[]{
|
||||
new ShaderProperty("_MainTex", ShaderPropertyType.TexEnv)
|
||||
,new ShaderProperty("_Color", ShaderPropertyType.Color)
|
||||
,new ShaderProperty("_Cutoff", ShaderPropertyType.Range)
|
||||
,new ShaderProperty("_BlendMode", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_CullMode", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_VColBlendMode", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_SrcBlend", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_DstBlend", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_ZWrite", ShaderPropertyType.Float)
|
||||
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: ad4b6b115b83ecd48a513f697afc95f0
|
||||
timeCreated: 1537860074
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
|
||||
namespace UniGLTF.ShaderPropExporter
|
||||
{
|
||||
public static partial class PreShaderPropExporter
|
||||
{
|
||||
[PreExportShader]
|
||||
static KeyValuePair<string, ShaderProps> Unlit_Color
|
||||
{
|
||||
get
|
||||
{
|
||||
return new KeyValuePair<string, ShaderProps>(
|
||||
"Unlit/Color",
|
||||
new ShaderProps
|
||||
{
|
||||
Properties = new ShaderProperty[]{
|
||||
new ShaderProperty("_Color", ShaderPropertyType.Color)
|
||||
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 4f91421c5846d5d48933d2ee4ffeeceb
|
||||
timeCreated: 1535186213
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
|
||||
namespace UniGLTF.ShaderPropExporter
|
||||
{
|
||||
public static partial class PreShaderPropExporter
|
||||
{
|
||||
[PreExportShader]
|
||||
static KeyValuePair<string, ShaderProps> Unlit_Texture
|
||||
{
|
||||
get
|
||||
{
|
||||
return new KeyValuePair<string, ShaderProps>(
|
||||
"Unlit/Texture",
|
||||
new ShaderProps
|
||||
{
|
||||
Properties = new ShaderProperty[]{
|
||||
new ShaderProperty("_MainTex", ShaderPropertyType.TexEnv)
|
||||
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 8273e1e61ad8e914baae94d06836f2ad
|
||||
timeCreated: 1535186213
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
|
||||
namespace UniGLTF.ShaderPropExporter
|
||||
{
|
||||
public static partial class PreShaderPropExporter
|
||||
{
|
||||
[PreExportShader]
|
||||
static KeyValuePair<string, ShaderProps> Unlit_Transparent
|
||||
{
|
||||
get
|
||||
{
|
||||
return new KeyValuePair<string, ShaderProps>(
|
||||
"Unlit/Transparent",
|
||||
new ShaderProps
|
||||
{
|
||||
Properties = new ShaderProperty[]{
|
||||
new ShaderProperty("_MainTex", ShaderPropertyType.TexEnv)
|
||||
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: b98a8ee8ca13abb43809305cc4e5571a
|
||||
timeCreated: 1535186213
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
|
||||
namespace UniGLTF.ShaderPropExporter
|
||||
{
|
||||
public static partial class PreShaderPropExporter
|
||||
{
|
||||
[PreExportShader]
|
||||
static KeyValuePair<string, ShaderProps> Unlit_Transparent_Cutout
|
||||
{
|
||||
get
|
||||
{
|
||||
return new KeyValuePair<string, ShaderProps>(
|
||||
"Unlit/Transparent Cutout",
|
||||
new ShaderProps
|
||||
{
|
||||
Properties = new ShaderProperty[]{
|
||||
new ShaderProperty("_MainTex", ShaderPropertyType.TexEnv)
|
||||
,new ShaderProperty("_Cutoff", ShaderPropertyType.Range)
|
||||
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 844490f13976543478d82efe28251941
|
||||
timeCreated: 1535186301
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -1,69 +1,63 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using UnityEngine;
|
||||
#if UNITY_EDITOR
|
||||
using UnityEditor;
|
||||
#endif
|
||||
|
||||
|
||||
namespace UniGLTF.ShaderPropExporter
|
||||
namespace UniGLTF.ShaderPropExporter
|
||||
{
|
||||
public class PreExportShadersAttribute : Attribute { }
|
||||
public class PreExportShaderAttribute : Attribute { }
|
||||
|
||||
public struct SupportedShader
|
||||
/// <summary>
|
||||
/// TODO: MToon にひきとってもらう
|
||||
/// </summary>
|
||||
public static class PreShaderPropExporter
|
||||
{
|
||||
public string TargetFolder;
|
||||
public string ShaderName;
|
||||
|
||||
public SupportedShader(string targetFolder, string shaderName)
|
||||
const string ShaderName = "VRM/MToon";
|
||||
public static ShaderProps GetPropsForMToon()
|
||||
{
|
||||
TargetFolder = targetFolder;
|
||||
ShaderName = shaderName;
|
||||
return VRM_MToon;
|
||||
}
|
||||
}
|
||||
|
||||
public static partial class PreShaderPropExporter
|
||||
{
|
||||
public static readonly string[] VRMExtensionShaders = new string[]
|
||||
{
|
||||
"VRM/UnlitTransparentZWrite",
|
||||
"VRM/MToon"
|
||||
};
|
||||
|
||||
static Dictionary<string, ShaderProps> m_shaderPropMap;
|
||||
|
||||
public static ShaderProps GetPropsForSupportedShader(string shaderName)
|
||||
{
|
||||
if (m_shaderPropMap == null)
|
||||
{
|
||||
m_shaderPropMap = new Dictionary<string, ShaderProps>();
|
||||
foreach (var prop in typeof(PreShaderPropExporter).GetProperties(BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic))
|
||||
{
|
||||
if (prop.GetCustomAttributes(typeof(PreExportShaderAttribute), true).Any())
|
||||
static ShaderProps VRM_MToon =
|
||||
new ShaderProps
|
||||
{
|
||||
var kv = (KeyValuePair<string, ShaderProps>)prop.GetValue(null, null);
|
||||
m_shaderPropMap.Add(kv.Key, kv.Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ShaderProps props;
|
||||
if (m_shaderPropMap.TryGetValue(shaderName, out props))
|
||||
{
|
||||
return props;
|
||||
}
|
||||
|
||||
#if UNITY_EDITOR
|
||||
// fallback
|
||||
Debug.LogWarningFormat("{0} is not predefined shader. Use ShaderUtil", shaderName);
|
||||
var shader = Shader.Find(shaderName);
|
||||
return ShaderProps.FromShader(shader);
|
||||
#else
|
||||
return null;
|
||||
#endif
|
||||
}
|
||||
Properties = new ShaderProperty[]{
|
||||
new ShaderProperty("_Cutoff", ShaderPropertyType.Range)
|
||||
,new ShaderProperty("_Color", ShaderPropertyType.Color)
|
||||
,new ShaderProperty("_ShadeColor", ShaderPropertyType.Color)
|
||||
,new ShaderProperty("_MainTex", ShaderPropertyType.TexEnv)
|
||||
,new ShaderProperty("_ShadeTexture", ShaderPropertyType.TexEnv)
|
||||
,new ShaderProperty("_BumpScale", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_BumpMap", ShaderPropertyType.TexEnv)
|
||||
,new ShaderProperty("_ReceiveShadowRate", ShaderPropertyType.Range)
|
||||
,new ShaderProperty("_ReceiveShadowTexture", ShaderPropertyType.TexEnv)
|
||||
,new ShaderProperty("_ShadingGradeRate", ShaderPropertyType.Range)
|
||||
,new ShaderProperty("_ShadingGradeTexture", ShaderPropertyType.TexEnv)
|
||||
,new ShaderProperty("_ShadeShift", ShaderPropertyType.Range)
|
||||
,new ShaderProperty("_ShadeToony", ShaderPropertyType.Range)
|
||||
,new ShaderProperty("_LightColorAttenuation", ShaderPropertyType.Range)
|
||||
,new ShaderProperty("_IndirectLightIntensity", ShaderPropertyType.Range)
|
||||
,new ShaderProperty("_RimColor", ShaderPropertyType.Color)
|
||||
,new ShaderProperty("_RimTexture", ShaderPropertyType.TexEnv)
|
||||
,new ShaderProperty("_RimLightingMix", ShaderPropertyType.Range)
|
||||
,new ShaderProperty("_RimFresnelPower", ShaderPropertyType.Range)
|
||||
,new ShaderProperty("_RimLift", ShaderPropertyType.Range)
|
||||
,new ShaderProperty("_SphereAdd", ShaderPropertyType.TexEnv)
|
||||
,new ShaderProperty("_EmissionColor", ShaderPropertyType.Color)
|
||||
,new ShaderProperty("_EmissionMap", ShaderPropertyType.TexEnv)
|
||||
,new ShaderProperty("_OutlineWidthTexture", ShaderPropertyType.TexEnv)
|
||||
,new ShaderProperty("_OutlineWidth", ShaderPropertyType.Range)
|
||||
,new ShaderProperty("_OutlineScaledMaxDistance", ShaderPropertyType.Range)
|
||||
,new ShaderProperty("_OutlineColor", ShaderPropertyType.Color)
|
||||
,new ShaderProperty("_OutlineLightingMix", ShaderPropertyType.Range)
|
||||
,new ShaderProperty("_UvAnimMaskTexture", ShaderPropertyType.TexEnv)
|
||||
,new ShaderProperty("_UvAnimScrollX", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_UvAnimScrollY", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_UvAnimRotation", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_MToonVersion", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_DebugMode", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_BlendMode", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_OutlineWidthMode", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_OutlineColorMode", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_CullMode", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_OutlineCullMode", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_SrcBlend", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_DstBlend", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_ZWrite", ShaderPropertyType.Float)
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,16 +0,0 @@
|
|||
namespace UniGLTF.ShaderPropExporter
|
||||
{
|
||||
public static partial class PreExportShaders
|
||||
{
|
||||
const string VRM_TARGET_FOLDER = "VRM";
|
||||
[PreExportShaders]
|
||||
public static SupportedShader[] VRMSupportedShaders = new SupportedShader[]
|
||||
{
|
||||
new SupportedShader(VRM_TARGET_FOLDER, "VRM/MToon"),
|
||||
new SupportedShader(VRM_TARGET_FOLDER, "VRM/UnlitTexture"),
|
||||
new SupportedShader(VRM_TARGET_FOLDER, "VRM/UnlitCutout"),
|
||||
new SupportedShader(VRM_TARGET_FOLDER, "VRM/UnlitTransparent"),
|
||||
new SupportedShader(VRM_TARGET_FOLDER, "VRM/UnlitTransparentZWrite"),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 625b5ee8b5811dc4a915a2fbb2cb319d
|
||||
timeCreated: 1533035131
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -1,67 +0,0 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
|
||||
namespace UniGLTF.ShaderPropExporter
|
||||
{
|
||||
public static partial class PreShaderPropExporter
|
||||
{
|
||||
[PreExportShader]
|
||||
static KeyValuePair<string, ShaderProps> VRM_MToon
|
||||
{
|
||||
get
|
||||
{
|
||||
return new KeyValuePair<string, ShaderProps>(
|
||||
"VRM/MToon",
|
||||
new ShaderProps
|
||||
{
|
||||
Properties = new ShaderProperty[]{
|
||||
new ShaderProperty("_Cutoff", ShaderPropertyType.Range)
|
||||
,new ShaderProperty("_Color", ShaderPropertyType.Color)
|
||||
,new ShaderProperty("_ShadeColor", ShaderPropertyType.Color)
|
||||
,new ShaderProperty("_MainTex", ShaderPropertyType.TexEnv)
|
||||
,new ShaderProperty("_ShadeTexture", ShaderPropertyType.TexEnv)
|
||||
,new ShaderProperty("_BumpScale", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_BumpMap", ShaderPropertyType.TexEnv)
|
||||
,new ShaderProperty("_ReceiveShadowRate", ShaderPropertyType.Range)
|
||||
,new ShaderProperty("_ReceiveShadowTexture", ShaderPropertyType.TexEnv)
|
||||
,new ShaderProperty("_ShadingGradeRate", ShaderPropertyType.Range)
|
||||
,new ShaderProperty("_ShadingGradeTexture", ShaderPropertyType.TexEnv)
|
||||
,new ShaderProperty("_ShadeShift", ShaderPropertyType.Range)
|
||||
,new ShaderProperty("_ShadeToony", ShaderPropertyType.Range)
|
||||
,new ShaderProperty("_LightColorAttenuation", ShaderPropertyType.Range)
|
||||
,new ShaderProperty("_IndirectLightIntensity", ShaderPropertyType.Range)
|
||||
,new ShaderProperty("_RimColor", ShaderPropertyType.Color)
|
||||
,new ShaderProperty("_RimTexture", ShaderPropertyType.TexEnv)
|
||||
,new ShaderProperty("_RimLightingMix", ShaderPropertyType.Range)
|
||||
,new ShaderProperty("_RimFresnelPower", ShaderPropertyType.Range)
|
||||
,new ShaderProperty("_RimLift", ShaderPropertyType.Range)
|
||||
,new ShaderProperty("_SphereAdd", ShaderPropertyType.TexEnv)
|
||||
,new ShaderProperty("_EmissionColor", ShaderPropertyType.Color)
|
||||
,new ShaderProperty("_EmissionMap", ShaderPropertyType.TexEnv)
|
||||
,new ShaderProperty("_OutlineWidthTexture", ShaderPropertyType.TexEnv)
|
||||
,new ShaderProperty("_OutlineWidth", ShaderPropertyType.Range)
|
||||
,new ShaderProperty("_OutlineScaledMaxDistance", ShaderPropertyType.Range)
|
||||
,new ShaderProperty("_OutlineColor", ShaderPropertyType.Color)
|
||||
,new ShaderProperty("_OutlineLightingMix", ShaderPropertyType.Range)
|
||||
,new ShaderProperty("_UvAnimMaskTexture", ShaderPropertyType.TexEnv)
|
||||
,new ShaderProperty("_UvAnimScrollX", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_UvAnimScrollY", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_UvAnimRotation", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_MToonVersion", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_DebugMode", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_BlendMode", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_OutlineWidthMode", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_OutlineColorMode", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_CullMode", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_OutlineCullMode", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_SrcBlend", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_DstBlend", ShaderPropertyType.Float)
|
||||
,new ShaderProperty("_ZWrite", ShaderPropertyType.Float)
|
||||
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 4629d794c8969c141a4724e182af082e
|
||||
timeCreated: 1533542890
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
|
||||
namespace UniGLTF.ShaderPropExporter
|
||||
{
|
||||
public static partial class PreShaderPropExporter
|
||||
{
|
||||
[PreExportShader]
|
||||
static KeyValuePair<string, ShaderProps> VRM_UnlitCutout
|
||||
{
|
||||
get
|
||||
{
|
||||
return new KeyValuePair<string, ShaderProps>(
|
||||
"VRM/UnlitCutout",
|
||||
new ShaderProps
|
||||
{
|
||||
Properties = new ShaderProperty[]{
|
||||
new ShaderProperty("_MainTex", ShaderPropertyType.TexEnv)
|
||||
,new ShaderProperty("_Cutoff", ShaderPropertyType.Range)
|
||||
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 611b546ea471ad34cb7d94740c63b558
|
||||
timeCreated: 1533542890
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
|
||||
namespace UniGLTF.ShaderPropExporter
|
||||
{
|
||||
public static partial class PreShaderPropExporter
|
||||
{
|
||||
[PreExportShader]
|
||||
static KeyValuePair<string, ShaderProps> VRM_UnlitTexture
|
||||
{
|
||||
get
|
||||
{
|
||||
return new KeyValuePair<string, ShaderProps>(
|
||||
"VRM/UnlitTexture",
|
||||
new ShaderProps
|
||||
{
|
||||
Properties = new ShaderProperty[]{
|
||||
new ShaderProperty("_MainTex", ShaderPropertyType.TexEnv)
|
||||
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 22a8083880389b3498f421e6a5c340d5
|
||||
timeCreated: 1533542890
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
|
||||
namespace UniGLTF.ShaderPropExporter
|
||||
{
|
||||
public static partial class PreShaderPropExporter
|
||||
{
|
||||
[PreExportShader]
|
||||
static KeyValuePair<string, ShaderProps> VRM_UnlitTransparent
|
||||
{
|
||||
get
|
||||
{
|
||||
return new KeyValuePair<string, ShaderProps>(
|
||||
"VRM/UnlitTransparent",
|
||||
new ShaderProps
|
||||
{
|
||||
Properties = new ShaderProperty[]{
|
||||
new ShaderProperty("_MainTex", ShaderPropertyType.TexEnv)
|
||||
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 140d6538826e0eb448929d3e4bb2f1cd
|
||||
timeCreated: 1533542890
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
|
||||
namespace UniGLTF.ShaderPropExporter
|
||||
{
|
||||
public static partial class PreShaderPropExporter
|
||||
{
|
||||
[PreExportShader]
|
||||
static KeyValuePair<string, ShaderProps> VRM_UnlitTransparentZWrite
|
||||
{
|
||||
get
|
||||
{
|
||||
return new KeyValuePair<string, ShaderProps>(
|
||||
"VRM/UnlitTransparentZWrite",
|
||||
new ShaderProps
|
||||
{
|
||||
Properties = new ShaderProperty[]{
|
||||
new ShaderProperty("_MainTex", ShaderPropertyType.TexEnv)
|
||||
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 165ec79b7aac1564a850fb3d3d19396e
|
||||
timeCreated: 1533542890
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Loading…
Reference in New Issue
Block a user