From a76250a0ed400541ed460be5c8addb50ca86ec3a Mon Sep 17 00:00:00 2001 From: lilxyzw Date: Fri, 16 Jul 2021 21:41:58 +0900 Subject: [PATCH] fix editor & light bake --- Assets/lilToon/Editor/lang.txt | 1 + Assets/lilToon/Editor/lilInspector.cs | 154 ++++++++++++------ Assets/lilToon/Editor/lilStartup.cs | 4 +- Assets/lilToon/README.md | 12 ++ Assets/lilToon/README_JP.md | 12 ++ Assets/lilToon/Shader/Includes/lil_macro.hlsl | 2 +- Assets/lilToon/Shader/lts_overlay.shader | 2 +- Assets/lilToon/Shader/ltsl_overlay.shader | 2 +- Assets/lilToon/package.json | 2 +- version.json | 2 +- 10 files changed, 140 insertions(+), 53 deletions(-) diff --git a/Assets/lilToon/Editor/lang.txt b/Assets/lilToon/Editor/lang.txt index 7e0ae9d8..5ba4c6ba 100644 --- a/Assets/lilToon/Editor/lang.txt +++ b/Assets/lilToon/Editor/lang.txt @@ -68,6 +68,7 @@ sScaleY Scale Y Y軸サイズ Y 축 크기 Y尺度 Y尺度 sVector Vector 向き 방향 向量 向量 sLength Length 長さ 길이 长度 長度 sVertex Vertex 頂点 정점 顶点 頂點 +sColorAlphaZeroWarn To enable the property, increase the alpha value. プロパティを有効にするには透明度の値を上げて下さい。 속성을 활성화하려면 Alpha 값을 올려주세요. 增加 Alpha 值以启用该属性。 增加 Alpha 值以啟用該屬性。 sApplyTransparency Apply Transparency 透明度を適用 투명도 적용 应用透明度 應用透明度 sReset Reset 初期化 초기화 重置 重置 sLimShadowStrength Shadow Strength 影の強さ 그림자의 힘 阴影强度 陰影強度 diff --git a/Assets/lilToon/Editor/lilInspector.cs b/Assets/lilToon/Editor/lilInspector.cs index 63f48026..fdab707d 100644 --- a/Assets/lilToon/Editor/lilInspector.cs +++ b/Assets/lilToon/Editor/lilInspector.cs @@ -82,20 +82,16 @@ public enum lilPresetCategory //------------------------------------------------------------------------------------------------------------------------------ // Constant - const string currentVersionName = "1.1a"; - const int currentVersionValue = 3; + public const string currentVersionName = "1.1.1"; + public const int currentVersionValue = 4; - const string boothURL = "https://lilxyzw.booth.pm/"; - const string githubURL = "https://github.com/lilxyzw/lilToon"; - const string editorSettingPath = "Assets/lilToonSetting/EditorSetting.asset"; - const string avatarEncryptionPath = "Assets/AvaterEncryption/Editor/AvaCryptRootEditor.cs"; + public const string boothURL = "https://lilxyzw.booth.pm/"; + public const string githubURL = "https://github.com/lilxyzw/lilToon"; + public const string editorSettingPath = "Assets/lilToonSetting/EditorSetting.asset"; + public const string avatarEncryptionPath = "Assets/AvaterEncryption/Editor/AvaCryptRootEditor.cs"; static Vector4 defaultHSVG = new Vector4(0.0f,1.0f,1.0f,1.0f); - #if UNITY_2019_1_OR_NEWER - static Color lineColor = new Color(0.35f,0.35f,0.35f,1.0f); - #else - static Color lineColor = new Color(0.4f,0.4f,0.4f,1.0f); - #endif + public static Color lineColor = EditorGUIUtility.isProSkin ? new Color(0.35f,0.35f,0.35f,1.0f) : new Color(0.4f,0.4f,0.4f,1.0f); //------------------------------------------------------------------------------------------------------------------------------ // Shader @@ -524,25 +520,32 @@ public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] pro { //------------------------------------------------------------------------------------------------------------------------------ // EditorAssets - #if UNITY_2019_1_OR_NEWER - GUIStyle boxOuter = new GUIStyle(((GUISkin)AssetDatabase.LoadAssetAtPath("Assets/lilToon/Editor/gui_box_outer_2019.guiskin", typeof(GUISkin))).box); - GUIStyle boxInnerHalf = new GUIStyle(((GUISkin)AssetDatabase.LoadAssetAtPath("Assets/lilToon/Editor/gui_box_inner_half_2019.guiskin", typeof(GUISkin))).box); - GUIStyle boxInner = new GUIStyle(((GUISkin)AssetDatabase.LoadAssetAtPath("Assets/lilToon/Editor/gui_box_inner_2019.guiskin", typeof(GUISkin))).box); - GUIStyle customBox = new GUIStyle(((GUISkin)AssetDatabase.LoadAssetAtPath("Assets/lilToon/Editor/gui_custom_box_2019.guiskin", typeof(GUISkin))).box); - GUIStyle customToggleFont = EditorStyles.label; - GUIStyle offsetButton = new GUIStyle(GUI.skin.button); + GUIStyle boxOuter = GUI.skin.box; + GUIStyle boxInnerHalf = GUI.skin.box; + GUIStyle boxInner = GUI.skin.box; + GUIStyle customBox = GUI.skin.box; + GUIStyle customToggleFont = EditorStyles.label; + GUIStyle offsetButton = new GUIStyle(GUI.skin.button); + if(EditorGUIUtility.isProSkin) + { + boxOuter = new GUIStyle(((GUISkin)AssetDatabase.LoadAssetAtPath("Assets/lilToon/Editor/gui_box_outer_2019.guiskin", typeof(GUISkin))).box); + boxInnerHalf = new GUIStyle(((GUISkin)AssetDatabase.LoadAssetAtPath("Assets/lilToon/Editor/gui_box_inner_half_2019.guiskin", typeof(GUISkin))).box); + boxInner = new GUIStyle(((GUISkin)AssetDatabase.LoadAssetAtPath("Assets/lilToon/Editor/gui_box_inner_2019.guiskin", typeof(GUISkin))).box); + customBox = new GUIStyle(((GUISkin)AssetDatabase.LoadAssetAtPath("Assets/lilToon/Editor/gui_custom_box_2019.guiskin", typeof(GUISkin))).box); + customToggleFont = EditorStyles.label; offsetButton.margin.left = 24; - #else - GUIStyle boxOuter = new GUIStyle(((GUISkin)AssetDatabase.LoadAssetAtPath("Assets/lilToon/Editor/gui_box_outer_2018.guiskin", typeof(GUISkin))).box); - GUIStyle boxInnerHalf = new GUIStyle(((GUISkin)AssetDatabase.LoadAssetAtPath("Assets/lilToon/Editor/gui_box_inner_half_2018.guiskin", typeof(GUISkin))).box); - GUIStyle boxInner = new GUIStyle(((GUISkin)AssetDatabase.LoadAssetAtPath("Assets/lilToon/Editor/gui_box_inner_2018.guiskin", typeof(GUISkin))).box); - GUIStyle customBox = GUI.skin.box; - GUIStyle customToggleFont = new GUIStyle(); + } + else + { + boxOuter = new GUIStyle(((GUISkin)AssetDatabase.LoadAssetAtPath("Assets/lilToon/Editor/gui_box_outer_2018.guiskin", typeof(GUISkin))).box); + boxInnerHalf = new GUIStyle(((GUISkin)AssetDatabase.LoadAssetAtPath("Assets/lilToon/Editor/gui_box_inner_half_2018.guiskin", typeof(GUISkin))).box); + boxInner = new GUIStyle(((GUISkin)AssetDatabase.LoadAssetAtPath("Assets/lilToon/Editor/gui_box_inner_2018.guiskin", typeof(GUISkin))).box); + customBox = GUI.skin.box; + customToggleFont = new GUIStyle(); customToggleFont.normal.textColor = Color.white; customToggleFont.contentOffset = new Vector2(2f,0f); - GUIStyle offsetButton = new GUIStyle(GUI.skin.button); offsetButton.margin.left = 20; - #endif + } GUIStyle wrapLabel = new GUIStyle(GUI.skin.label); wrapLabel.wordWrap = true; @@ -827,6 +830,7 @@ public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] pro else materialEditor.ShaderProperty(shadowColor, loc["sShadow1stColor"]); if(shaderSetting.LIL_FEATURE_TEX_SHADOW_2ND) materialEditor.TexturePropertySingleLine(new GUIContent(loc["sShadow2ndColor"], loc["sTextureRGBA"]), shadow2ndColorTex, shadow2ndColor); else materialEditor.ShaderProperty(shadow2ndColor, loc["sShadow2ndColor"]); + if(shadow2ndColor.colorValue.a == 0) EditorGUILayout.HelpBox(loc["sColorAlphaZeroWarn"],MessageType.Warning); materialEditor.ShaderProperty(shadowMainStrength, loc["sMainColorPower"]); materialEditor.ShaderProperty(shadowBorderColor, loc["sShadowBorderColor"]); EditorGUILayout.EndVertical(); @@ -872,6 +876,7 @@ public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] pro { EditorGUILayout.BeginVertical(boxInnerHalf); materialEditor.TexturePropertySingleLine(textureRGBAContent, emissionMap, emissionColor); + if(emissionColor.colorValue.a == 0) EditorGUILayout.HelpBox(loc["sColorAlphaZeroWarn"],MessageType.Warning); EditorGUILayout.EndVertical(); } EditorGUILayout.EndVertical(); @@ -886,6 +891,7 @@ public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] pro { EditorGUILayout.BeginVertical(boxInnerHalf); materialEditor.TexturePropertySingleLine(textureRGBAContent, emission2ndMap, emission2ndColor); + if(emission2ndColor.colorValue.a == 0) EditorGUILayout.HelpBox(loc["sColorAlphaZeroWarn"],MessageType.Warning); EditorGUILayout.EndVertical(); } EditorGUILayout.EndVertical(); @@ -1574,6 +1580,7 @@ public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] pro DrawLine(); if(shaderSetting.LIL_FEATURE_TEX_SHADOW_2ND) materialEditor.TexturePropertySingleLine(new GUIContent(loc["sShadow2ndColor"], loc["sTextureRGBA"]), shadow2ndColorTex, shadow2ndColor); else materialEditor.ShaderProperty(shadow2ndColor, loc["sShadow2ndColor"]); + if(shadow2ndColor.colorValue.a == 0) EditorGUILayout.HelpBox(loc["sColorAlphaZeroWarn"],MessageType.Warning); materialEditor.ShaderProperty(shadow2ndBorder, loc["sBorder"]); materialEditor.ShaderProperty(shadow2ndBlur, loc["sBlur"]); DrawLine(); @@ -1609,6 +1616,7 @@ public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] pro { EditorGUILayout.BeginVertical(boxInnerHalf); TextureGUI(materialEditor, ref isShowEmissionMap, colorRGBAContent, emissionMap, emissionColor, emissionMap_ScrollRotate, shaderSetting.LIL_FEATURE_EMISSION_UV, shaderSetting.LIL_FEATURE_ANIMATE_EMISSION_UV); + if(emissionColor.colorValue.a == 0) EditorGUILayout.HelpBox(loc["sColorAlphaZeroWarn"],MessageType.Warning); DrawLine(); if(shaderSetting.LIL_FEATURE_TEX_EMISSION_MASK) { @@ -1643,6 +1651,7 @@ public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] pro { EditorGUILayout.BeginVertical(boxInnerHalf); TextureGUI(materialEditor, ref isShowEmission2ndMap, colorRGBAContent, emission2ndMap, emission2ndColor, emission2ndMap_ScrollRotate, shaderSetting.LIL_FEATURE_EMISSION_UV, shaderSetting.LIL_FEATURE_ANIMATE_EMISSION_UV); + if(emission2ndColor.colorValue.a == 0) EditorGUILayout.HelpBox(loc["sColorAlphaZeroWarn"],MessageType.Warning); DrawLine(); if(shaderSetting.LIL_FEATURE_TEX_EMISSION_MASK) { @@ -1742,6 +1751,7 @@ public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] pro materialEditor.ShaderProperty(reflectance, loc["sReflectance"]); if(shaderSetting.LIL_FEATURE_TEX_REFLECTION_COLOR) materialEditor.TexturePropertySingleLine(colorRGBAContent, reflectionColorTex, reflectionColor); else materialEditor.ShaderProperty(reflectionColor, loc["sColor"]); + if(reflectionColor.colorValue.a == 0) EditorGUILayout.HelpBox(loc["sColorAlphaZeroWarn"],MessageType.Warning); int specularMode = 0; if(specularToon.floatValue == 0.0f) specularMode = 1; if(specularToon.floatValue == 1.0f) specularMode = 2; @@ -1768,6 +1778,7 @@ public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] pro { EditorGUILayout.BeginVertical(boxInnerHalf); materialEditor.TexturePropertySingleLine(new GUIContent(loc["sMatCap"], loc["sTextureRGBA"]), matcapTex, matcapColor); + if(matcapColor.colorValue.a == 0) EditorGUILayout.HelpBox(loc["sColorAlphaZeroWarn"],MessageType.Warning); if(shaderSetting.LIL_FEATURE_TEX_MATCAP_MASK) materialEditor.TexturePropertySingleLine(maskBlendContent, matcapBlendMask, matcapBlend); else materialEditor.ShaderProperty(matcapBlend, loc["sBlend"]); materialEditor.ShaderProperty(matcapEnableLighting, loc["sEnableLighting"]); @@ -1793,6 +1804,7 @@ public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] pro { EditorGUILayout.BeginVertical(boxInnerHalf); materialEditor.TexturePropertySingleLine(new GUIContent(loc["sMatCap"], loc["sTextureRGBA"]), matcap2ndTex, matcap2ndColor); + if(matcap2ndColor.colorValue.a == 0) EditorGUILayout.HelpBox(loc["sColorAlphaZeroWarn"],MessageType.Warning); if(shaderSetting.LIL_FEATURE_TEX_MATCAP_MASK) materialEditor.TexturePropertySingleLine(maskBlendContent, matcap2ndBlendMask, matcap2ndBlend); else materialEditor.ShaderProperty(matcap2ndBlend, loc["sBlend"]); materialEditor.ShaderProperty(matcap2ndEnableLighting, loc["sEnableLighting"]); @@ -1819,6 +1831,7 @@ public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] pro EditorGUILayout.BeginVertical(boxInnerHalf); if(shaderSetting.LIL_FEATURE_TEX_RIMLIGHT_COLOR) materialEditor.TexturePropertySingleLine(colorRGBAContent, rimColorTex, rimColor); else materialEditor.ShaderProperty(rimColor, loc["sColor"]); + if(rimColor.colorValue.a == 0) EditorGUILayout.HelpBox(loc["sColorAlphaZeroWarn"],MessageType.Warning); DrawLine(); rimBorder.floatValue = 1.0f - EditorGUILayout.Slider(loc["sBorder"], 1.0f - rimBorder.floatValue, 0.0f, 1.0f); materialEditor.ShaderProperty(rimBlur, loc["sBlur"]); @@ -2956,6 +2969,7 @@ static void InitializeShaderSetting() shaderSetting.LIL_FEATURE_DECAL = false; shaderSetting.LIL_FEATURE_ANIMATE_DECAL = false; shaderSetting.LIL_FEATURE_LAYER_DISSOLVE = false; + shaderSetting.LIL_FEATURE_ALPHAMASK = false; shaderSetting.LIL_FEATURE_SHADOW = true; shaderSetting.LIL_FEATURE_RECEIVE_SHADOW = false; shaderSetting.LIL_FEATURE_EMISSION_1ST = true; @@ -2969,6 +2983,7 @@ static void InitializeShaderSetting() shaderSetting.LIL_FEATURE_NORMAL_2ND = false; shaderSetting.LIL_FEATURE_REFLECTION = false; shaderSetting.LIL_FEATURE_MATCAP = true; + shaderSetting.LIL_FEATURE_MATCAP_2ND = false; shaderSetting.LIL_FEATURE_RIMLIGHT = true; shaderSetting.LIL_FEATURE_PARALLAX = false; shaderSetting.LIL_FEATURE_POM = false; @@ -3040,7 +3055,7 @@ static void VersionCheck() } } - static void DrawLine() + public static void DrawLine() { EditorGUI.DrawRect(EditorGUI.IndentedRect(EditorGUILayout.GetControlRect(false, 1)), lineColor); } @@ -3181,7 +3196,7 @@ static void ShaderSettingGUI() if(isShaderSettingChanged && GUILayout.Button("Apply", applyButton)) { - lilApplyShaderSetting(); + lilApplyShaderSetting(shaderSetting); isShaderSettingChanged = false; } @@ -3359,7 +3374,7 @@ static void lilToggleGUI(string label, ref bool value) value = EditorGUILayout.ToggleLeft(label, value); } - static void lilApplyShaderSetting() + public static void lilApplyShaderSetting(lilToonSetting shaderSetting) { StringBuilder sb = new StringBuilder(); sb.Append("#ifndef LIL_SETTING_INCLUDED\r\n#define LIL_SETTING_INCLUDED\r\n\r\n"); @@ -5863,14 +5878,17 @@ public override void OnGUI(Rect position, MaterialProperty prop, String label, M bool value = (prop.floatValue != 0.0f); EditorGUI.BeginChangeCheck(); EditorGUI.showMixedValue = prop.hasMixedValue; - #if UNITY_2019_1_OR_NEWER + if(EditorGUIUtility.isProSkin) + { value = EditorGUI.ToggleLeft(position, label, value); - #else + } + else + { GUIStyle customToggleFont = new GUIStyle(); customToggleFont.normal.textColor = Color.white; customToggleFont.contentOffset = new Vector2(2f,0f); value = EditorGUI.ToggleLeft(position, label, value, customToggleFont); - #endif + } EditorGUI.showMixedValue = false; if(EditorGUI.EndChangeCheck()) @@ -6030,12 +6048,7 @@ public override void OnGUI(Rect position, MaterialProperty prop, String label, M // Angle angle = EditorGUI.Slider(position, labels[0], angle, -180.0f, 180.0f); - #if UNITY_2019_1_OR_NEWER - Color lineColor = new Color(0.35f,0.35f,0.35f,1.0f); - #else - Color lineColor = new Color(0.4f,0.4f,0.4f,1.0f); - #endif - EditorGUI.DrawRect(EditorGUI.IndentedRect(EditorGUILayout.GetControlRect(false, 1)), lineColor); + lilToonInspector.DrawLine(); // Heading (UV Animation) EditorGUILayout.LabelField(labels[1], EditorStyles.boldLabel); @@ -6163,17 +6176,21 @@ public override void OnGUI(Rect position, MaterialProperty prop, String label, M EditorGUI.BeginChangeCheck(); EditorGUI.showMixedValue = prop.hasMixedValue; - #if UNITY_2019_1_OR_NEWER - float value = (float)EditorGUI.Popup(position, labels[0], (int)prop.floatValue, enums); - #else + float value = prop.floatValue; + if(EditorGUIUtility.isProSkin) + { + value = (float)EditorGUI.Popup(position, labels[0], (int)prop.floatValue, enums); + } + else + { GUIStyle customToggleFont = new GUIStyle(); customToggleFont.normal.textColor = Color.white; customToggleFont.contentOffset = new Vector2(2f,0f); float labelWidth = EditorGUIUtility.labelWidth; Rect labelRect = new Rect(position.x, position.y, labelWidth, position.height); EditorGUI.PrefixLabel(labelRect, new GUIContent(labels[0]), customToggleFont); - float value = (float)EditorGUI.Popup(position, " ", (int)prop.floatValue, enums); - #endif + value = (float)EditorGUI.Popup(position, " ", (int)prop.floatValue, enums); + } EditorGUI.showMixedValue = false; if(EditorGUI.EndChangeCheck()) @@ -6337,9 +6354,12 @@ public override void OnGUI(Rect position, MaterialProperty prop, String label, M EditorGUI.BeginChangeCheck(); if(labels.Length == 5) { - #if UNITY_2019_1_OR_NEWER + if(EditorGUIUtility.isProSkin) + { type = (float)EditorGUI.Popup(position, labels[0], (int)type, new String[]{labels[1],labels[2],labels[3],labels[4]}); - #else + } + else + { GUIStyle customToggleFont = new GUIStyle(); customToggleFont.normal.textColor = Color.white; customToggleFont.contentOffset = new Vector2(2f,0f); @@ -6347,7 +6367,7 @@ public override void OnGUI(Rect position, MaterialProperty prop, String label, M Rect labelRect = new Rect(position.x, position.y, labelWidth, position.height); EditorGUI.PrefixLabel(labelRect, new GUIContent(labels[0]), customToggleFont); type = (float)EditorGUI.Popup(position, " ", (int)type, new String[]{labels[1],labels[2],labels[3],labels[4]}); - #endif + } } if(labels.Length == 6) { @@ -6472,6 +6492,48 @@ public override void OnGUI(Rect position, MaterialProperty prop, String label, M //------------------------------------------------------------------------------------------------------------------------------ // MenuItem + + public class ShaderRefresh : MonoBehaviour + { + [MenuItem("Assets/lilToon/Refresh Shaders")] + static void RefreshShaders() + { + string[] shaderGuids = AssetDatabase.FindAssets("t:shader", lilStartup.shaderFolderPaths); + if(shaderGuids.Length > 33) + { + // Render Pipeline + // BRP : null + // LWRP : LightweightPipeline.LightweightRenderPipelineAsset + // URP : Universal.UniversalRenderPipelineAsset + lilStartup.lilRenderPipeline lilRP = lilStartup.lilRenderPipeline.BRP; + if(UnityEngine.Rendering.GraphicsSettings.renderPipelineAsset != null) + { + string renderPipelineName = UnityEngine.Rendering.GraphicsSettings.renderPipelineAsset.ToString(); + if(String.IsNullOrEmpty(renderPipelineName)) lilRP = lilStartup.lilRenderPipeline.BRP; + else if(renderPipelineName.Contains("Lightweight")) lilRP = lilStartup.lilRenderPipeline.LWRP; + else if(renderPipelineName.Contains("Universal")) lilRP = lilStartup.lilRenderPipeline.URP; + } + else + { + lilRP = lilStartup.lilRenderPipeline.BRP; + } + foreach(string shaderGuid in shaderGuids) + { + string shaderPath = AssetDatabase.GUIDToAssetPath(shaderGuid); + lilStartup.RewriteShaderRP(shaderPath, lilRP); + } + lilStartup.RewriteShaderRP(lilStartup.shaderPipelinePath, lilRP); + lilToonEditorSetting editorSetting = (lilToonEditorSetting)AssetDatabase.LoadAssetAtPath(lilToonInspector.editorSettingPath, typeof(lilToonEditorSetting)); + if(editorSetting != null) + { + lilToonSetting shaderSetting = (lilToonSetting)AssetDatabase.LoadAssetAtPath(editorSetting.settingPath, typeof(lilToonSetting)); + if(shaderSetting = null) lilToonInspector.lilApplyShaderSetting(shaderSetting); + } + AssetDatabase.Refresh(); + } + } + } + #if SYSTEM_DRAWING public class lilGifToAtlas : MonoBehaviour { diff --git a/Assets/lilToon/Editor/lilStartup.cs b/Assets/lilToon/Editor/lilStartup.cs index cc3cf225..88fb7418 100644 --- a/Assets/lilToon/Editor/lilStartup.cs +++ b/Assets/lilToon/Editor/lilStartup.cs @@ -11,7 +11,7 @@ namespace lilToon public class lilStartup { //------------------------------------------------------------------------------------------------------------------------------ // Enum - enum lilRenderPipeline + public enum lilRenderPipeline { BRP, LWRP, @@ -145,7 +145,7 @@ static IEnumerator GetLatestVersionInfo() } } - static void RewriteShaderRP(string shaderPath, lilRenderPipeline lilRP) + public static void RewriteShaderRP(string shaderPath, lilRenderPipeline lilRP) { string path = shaderPath; StreamReader sr = new StreamReader(path); diff --git a/Assets/lilToon/README.md b/Assets/lilToon/README.md index ca1a331e..7001281e 100644 --- a/Assets/lilToon/README.md +++ b/Assets/lilToon/README.md @@ -57,6 +57,12 @@ lilToon is available under the MIT License. Please refer to the `LICENSE` includ Please refer to the [manual](https://github.com/lilxyzw/lilToon/blob/master/Assets/lilToon/MANUAL.md) for more detailed settings. +# Usage - Update +1. Import lilToon into Unity using one of the following methods. + i. Drag and drop unitypackage to the Unity window to import it. + ii. Import ```https://github.com/lilxyzw/lilToon.git?path=Assets/lilToon#master``` from UPM. +2. Click `Assets/lilToon/Refresh Shaders` in the top menu bar. + # How to distribute your works that use lilToon Shader settings are stored in the `lilToonSetting` folder, so it is recommended to include this folder in the unitypackage. If you have not changed shader settings, you do not need to include them. @@ -69,6 +75,8 @@ The following is the detailed procedure. 6. Press `Export...` to save the unitypackage. # Common Problems +- Material error has occurred. + → Clicking `Assets/lilToon/Refresh Shaders` in the top menu bar may help. - The shadows on face are dirty. → You can specify a mask texture in `Mask & Strength` to partially remove shadows. - Outline becomes dirty. @@ -97,6 +105,10 @@ Comparing parameters when implementing `Convert to MToon (VRM)` - [視差オクルージョンマッピング(parallax occlution mapping) (コポコポ)](https://coposuke.hateblo.jp/entry/2019/01/20/043042) # Change log +## v1.1.1 +- Show warning when property alpha is 0 +- Support for changing editor theme +- Added shader refresh ## v1.1 - Added Alpha Mask - Added MatCap 2nd diff --git a/Assets/lilToon/README_JP.md b/Assets/lilToon/README_JP.md index 058c20a1..f899c64e 100644 --- a/Assets/lilToon/README_JP.md +++ b/Assets/lilToon/README_JP.md @@ -57,6 +57,12 @@ MIT Licenseで公開しています。同梱の`LICENSE`をご確認ください より詳しい設定については[マニュアル](https://github.com/lilxyzw/lilToon/blob/master/Assets/lilToon/MANUAL_JP.md)を参照してください。 +# 使い方 - アップデート +1. 下記いずれかの方法でUnityにlilToonをインポート + i. unitypackageをUnityウィンドウにドラッグ&ドロップでインポート + ii. UPMから```https://github.com/lilxyzw/lilToon.git?path=Assets/lilToon#master```をインポート +2. 上部メニューバーの`Assets/lilToon/Refresh Shaders`をクリック + # lilToonを用いた制作物の配布手順について `lilToonSetting`フォルダにシェーダー設定が保存されているためこちらも含めてunitypackage化することをオススメします。 シェーダー設定を変更していない場合は同梱する必要はありません。 @@ -69,6 +75,8 @@ MIT Licenseで公開しています。同梱の`LICENSE`をご確認ください 6. `Export...`を押してunitypackageを保存 # よくあるトラブル +- マテリアルエラーが発生した + → 上部メニューバーの`Assets/lilToon/Refresh Shaders`をクリックすると改善される場合があります - 顔にかかる影が気になる → `マスクと強度`にマスクテクスチャを指定することで部分的に影を消すことができます。 - 輪郭線が汚くなる @@ -97,6 +105,10 @@ MIT Licenseで公開しています。同梱の`LICENSE`をご確認ください - [視差オクルージョンマッピング(parallax occlution mapping) (コポコポ)](https://coposuke.hateblo.jp/entry/2019/01/20/043042) # 変更履歴 +## v1.1.1 +- プロパティのアルファが0のときに警告を表示 +- エディターのテーマ変更に対応 +- シェーダーリフレッシュの追加 ## v1.1 - アルファマスクの追加 - マットキャップ2ndの追加 diff --git a/Assets/lilToon/Shader/Includes/lil_macro.hlsl b/Assets/lilToon/Shader/Includes/lil_macro.hlsl index db430302..46a9f55a 100644 --- a/Assets/lilToon/Shader/Includes/lil_macro.hlsl +++ b/Assets/lilToon/Shader/Includes/lil_macro.hlsl @@ -529,7 +529,7 @@ float3 lightColor = _MainLightColor.rgb; \ float3 lightDirection = lilGetLightDirection(); \ float3 lightmapColor = lilGetLightMapColor(input.uvLM); \ - lightColor = saturate(lightColor + max(lightmapColor,lilGetSHLength())) + lightColor = saturate(lightColor + max(lightmapColor,lilGetSHToon())) #elif defined(LIL_USE_LIGHTMAP) && defined(LIL_USE_DYNAMICLIGHTMAP) // Mixed Lightmap (Baked Indirect) or Lightmap (Non-Directional) #undef LIL_USE_DYNAMICLIGHTMAP diff --git a/Assets/lilToon/Shader/lts_overlay.shader b/Assets/lilToon/Shader/lts_overlay.shader index 93a78a9b..3b8a13ad 100644 --- a/Assets/lilToon/Shader/lts_overlay.shader +++ b/Assets/lilToon/Shader/lts_overlay.shader @@ -1,4 +1,4 @@ -Shader "_lil/lilToonOverlay" +Shader "_lil/[Optional] lilToonOverlay" { Properties { diff --git a/Assets/lilToon/Shader/ltsl_overlay.shader b/Assets/lilToon/Shader/ltsl_overlay.shader index d0a9f01f..8714e889 100644 --- a/Assets/lilToon/Shader/ltsl_overlay.shader +++ b/Assets/lilToon/Shader/ltsl_overlay.shader @@ -1,4 +1,4 @@ -Shader "_lil/lilToonLiteOverlay" +Shader "_lil/[Optional] lilToonLiteOverlay" { Properties { diff --git a/Assets/lilToon/package.json b/Assets/lilToon/package.json index b0b28a8c..6849a8b9 100644 --- a/Assets/lilToon/package.json +++ b/Assets/lilToon/package.json @@ -1,7 +1,7 @@ { "name": "jp.lilxyzw.liltoon", "displayName": "lilToon", - "version": "1.1a", + "version": "1.1.1", "unity": "2017.1", "description": "Feature-rich toon shader.", "keywords": ["Toon", "Shader", "Material"], diff --git a/version.json b/version.json index 6b5d64ec..fb55e8a5 100644 --- a/version.json +++ b/version.json @@ -1 +1 @@ -{"latest_vertion_name": "1.1a", "latest_vertion_value": 3} \ No newline at end of file +{"latest_vertion_name": "1.1.1", "latest_vertion_value": 4} \ No newline at end of file