You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

523 lines
32 KiB

  1. // Made with Amplify Shader Editor
  2. // Available at the Unity Asset Store - http://u3d.as/y3X
  3. Shader "ASESampleShaders/CustomOutlineToon"
  4. {
  5. Properties
  6. {
  7. [NoScaleOffset]_BaseColorRGBOutlineWidthA("Base Color (RGB) Outline Width (A)", 2D) = "gray" {}
  8. _BaseTint("Base Tint", Color) = (1,1,1,0)
  9. _BaseCellSharpness("Base Cell Sharpness", Range( 0.01 , 1)) = 0.01
  10. _BaseCellOffset("Base Cell Offset", Range( -1 , 1)) = 0
  11. _IndirectDiffuseContribution("Indirect Diffuse Contribution", Range( 0 , 1)) = 1
  12. _ShadowContribution("Shadow Contribution", Range( 0 , 1)) = 0.5
  13. [NoScaleOffset]_Highlight("Highlight", 2D) = "white" {}
  14. [HDR]_HighlightTint("Highlight Tint", Color) = (1,1,1,1)
  15. _HighlightCellOffset("Highlight Cell Offset", Range( -1 , -0.5)) = -0.95
  16. _HighlightCellSharpness("Highlight Cell Sharpness", Range( 0.001 , 1)) = 0.01
  17. _IndirectSpecularContribution("Indirect Specular Contribution", Range( 0 , 1)) = 1
  18. [Toggle] _StaticHighLights("Static HighLights", Float) = 0.0
  19. [Normal][NoScaleOffset]_NormalMap("Normal Map", 2D) = "bump" {}
  20. _NormalScale("Normal Scale", Range( 0 , 1)) = 1
  21. [HDR]_RimColor("Rim Color", Color) = (1,1,1,0)
  22. _RimPower("Rim Power", Range( 0.01 , 1)) = 0.4
  23. _RimOffset("Rim Offset", Range( 0 , 1)) = 0.6
  24. _OutlineTint("Outline Tint", Color) = (0.5294118,0.5294118,0.5294118,0)
  25. _OutlineWidth("Outline Width", Range( 0.02 , 0.2)) = 0.02
  26. _TessValue( "Max Tessellation", Range( 1, 32 ) ) = 4
  27. _TessMin( "Tess Min Distance", Float ) = 10
  28. _TessMax( "Tess Max Distance", Float ) = 25
  29. _TessPhongStrength( "Phong Tess Strength", Range( 0, 1 ) ) = 0.5
  30. [HideInInspector] _texcoord( "", 2D ) = "white" {}
  31. [HideInInspector] __dirty( "", Int ) = 1
  32. }
  33. SubShader
  34. {
  35. Tags{ }
  36. Cull Front
  37. CGPROGRAM
  38. #include "Tessellation.cginc"
  39. #pragma target 4.6
  40. #pragma surface outlineSurf Outline nofog keepalpha noshadow noambient novertexlights nolightmap nodynlightmap nodirlightmap nometa noforwardadd vertex:outlineVertexDataFunc tessellate:tessFunction tessphong:_TessPhongStrength
  41. void outlineVertexDataFunc( inout appdata_full v )
  42. {
  43. float2 uv_BaseColorRGBOutlineWidthA = v.texcoord;
  44. float4 tex2DNode76 = tex2Dlod( _BaseColorRGBOutlineWidthA, float4( uv_BaseColorRGBOutlineWidthA, 0, 0.0) );
  45. float OutlineCustomWidth257 = tex2DNode76.a;
  46. float outlineVar = ( _OutlineWidth * OutlineCustomWidth257 );
  47. v.vertex.xyz += ( v.normal * outlineVar );
  48. }
  49. inline fixed4 LightingOutline( SurfaceOutput s, half3 lightDir, half atten ) { return fixed4 ( 0,0,0, s.Alpha); }
  50. void outlineSurf( Input i, inout SurfaceOutput o )
  51. {
  52. float3 temp_cast_0 = (1.0).xxx;
  53. float3 lerpResult117 = lerp( temp_cast_0 , float3(0,0,0) , _IndirectDiffuseContribution);
  54. float temp_output_214_0 = ( 1.0 - ( ( 1.0 - 1 ) * _WorldSpaceLightPos0.w ) );
  55. float2 uv_NormalMap = i.uv_texcoord;
  56. float3 normalizeResult170 = normalize( WorldNormalVector( i , UnpackScaleNormal( tex2D( _NormalMap, uv_NormalMap ) ,_NormalScale ) ) );
  57. float3 NewNormals220 = normalizeResult170;
  58. float3 ase_worldPos = i.worldPos;
  59. float3 ase_worldlightDir = normalize( UnityWorldSpaceLightDir( ase_worldPos ) );
  60. float dotResult54 = dot( NewNormals220 , ase_worldlightDir );
  61. float NdotL236 = dotResult54;
  62. float lerpResult159 = lerp( temp_output_214_0 , ( saturate( ( ( NdotL236 + _BaseCellOffset ) / _BaseCellSharpness ) ) * 1 ) , _ShadowContribution);
  63. float2 uv_BaseColorRGBOutlineWidthA = i.uv_texcoord;
  64. float4 tex2DNode76 = tex2D( _BaseColorRGBOutlineWidthA, uv_BaseColorRGBOutlineWidthA );
  65. float3 BaseColor253 = ( ( ( lerpResult117 * _LightColor0.a * temp_output_214_0 ) + ( _LightColor0.rgb * lerpResult159 ) ) * (( tex2DNode76 * _BaseTint )).rgb );
  66. o.Emission = ( BaseColor253 * (_OutlineTint).rgb );
  67. o.Normal = float3(0,0,-1);
  68. }
  69. ENDCG
  70. Tags{ "RenderType" = "Opaque" "Queue" = "Geometry+0" }
  71. Cull Back
  72. CGINCLUDE
  73. #include "UnityPBSLighting.cginc"
  74. #include "UnityShaderVariables.cginc"
  75. #include "UnityStandardUtils.cginc"
  76. #include "UnityCG.cginc"
  77. #include "Tessellation.cginc"
  78. #include "Lighting.cginc"
  79. #pragma target 4.6
  80. #pragma shader_feature _STATICHIGHLIGHTS_ON
  81. #ifdef UNITY_PASS_SHADOWCASTER
  82. #undef INTERNAL_DATA
  83. #undef WorldReflectionVector
  84. #undef WorldNormalVector
  85. #define INTERNAL_DATA half3 internalSurfaceTtoW0; half3 internalSurfaceTtoW1; half3 internalSurfaceTtoW2;
  86. #define WorldReflectionVector(data,normal) reflect (data.worldRefl, half3(dot(data.internalSurfaceTtoW0,normal), dot(data.internalSurfaceTtoW1,normal), dot(data.internalSurfaceTtoW2,normal)))
  87. #define WorldNormalVector(data,normal) fixed3(dot(data.internalSurfaceTtoW0,normal), dot(data.internalSurfaceTtoW1,normal), dot(data.internalSurfaceTtoW2,normal))
  88. #endif
  89. struct Input
  90. {
  91. float3 worldNormal;
  92. INTERNAL_DATA
  93. float2 uv_texcoord;
  94. float3 worldPos;
  95. };
  96. struct SurfaceOutputCustomLightingCustom
  97. {
  98. fixed3 Albedo;
  99. fixed3 Normal;
  100. half3 Emission;
  101. half Metallic;
  102. half Smoothness;
  103. half Occlusion;
  104. fixed Alpha;
  105. Input SurfInput;
  106. UnityGIInput GIData;
  107. };
  108. uniform float _IndirectDiffuseContribution;
  109. uniform float _NormalScale;
  110. uniform sampler2D _NormalMap;
  111. uniform float _BaseCellOffset;
  112. uniform float _BaseCellSharpness;
  113. uniform float _ShadowContribution;
  114. uniform sampler2D _BaseColorRGBOutlineWidthA;
  115. uniform float4 _BaseTint;
  116. uniform float4 _HighlightTint;
  117. uniform sampler2D _Highlight;
  118. uniform float _IndirectSpecularContribution;
  119. uniform float _HighlightCellOffset;
  120. uniform float _HighlightCellSharpness;
  121. uniform float _RimOffset;
  122. uniform float _RimPower;
  123. uniform float4 _RimColor;
  124. uniform float _TessValue;
  125. uniform float _TessMin;
  126. uniform float _TessMax;
  127. uniform float _TessPhongStrength;
  128. uniform float _OutlineWidth;
  129. uniform float4 _OutlineTint;
  130. float4 tessFunction( appdata_full v0, appdata_full v1, appdata_full v2 )
  131. {
  132. return UnityDistanceBasedTess( v0.vertex, v1.vertex, v2.vertex, _TessMin, _TessMax, _TessValue );
  133. }
  134. void vertexDataFunc( inout appdata_full v )
  135. {
  136. v.vertex.xyz += 0;
  137. }
  138. inline half4 LightingStandardCustomLighting( inout SurfaceOutputCustomLightingCustom s, half3 viewDir, UnityGI gi )
  139. {
  140. UnityGIInput data = s.GIData;
  141. Input i = s.SurfInput;
  142. half4 c = 0;
  143. #if DIRECTIONAL
  144. float ase_lightAtten = data.atten;
  145. if( _LightColor0.a == 0)
  146. ase_lightAtten = 0;
  147. #else
  148. float3 ase_lightAttenRGB = gi.light.color / ( ( _LightColor0.rgb ) + 0.000001 );
  149. float ase_lightAtten = max( max( ase_lightAttenRGB.r, ase_lightAttenRGB.g ), ase_lightAttenRGB.b );
  150. #endif
  151. float3 temp_cast_1 = (1.0).xxx;
  152. float2 uv_NormalMap = i.uv_texcoord;
  153. float3 normalizeResult170 = normalize( WorldNormalVector( i , UnpackScaleNormal( tex2D( _NormalMap, uv_NormalMap ) ,_NormalScale ) ) );
  154. float3 NewNormals220 = normalizeResult170;
  155. float3 indirectNormal106 = NewNormals220;
  156. float2 uv_Highlight = i.uv_texcoord;
  157. float4 temp_output_184_0 = ( _HighlightTint * tex2D( _Highlight, uv_Highlight ) );
  158. float temp_output_189_0 = (temp_output_184_0).a;
  159. Unity_GlossyEnvironmentData g106 = UnityGlossyEnvironmentSetup( temp_output_189_0, data.worldViewDir, indirectNormal106, float3(0,0,0));
  160. float3 indirectSpecular106 = UnityGI_IndirectSpecular( data, 1.0, indirectNormal106, g106 );
  161. float3 lerpResult187 = lerp( temp_cast_1 , indirectSpecular106 , _IndirectSpecularContribution);
  162. float3 HighlightColor249 = (temp_output_184_0).rgb;
  163. float3 LightColorFalloff227 = ( _LightColor0.rgb * ase_lightAtten );
  164. float3 ase_worldPos = i.worldPos;
  165. float3 ase_worldlightDir = normalize( UnityWorldSpaceLightDir( ase_worldPos ) );
  166. float dotResult54 = dot( NewNormals220 , ase_worldlightDir );
  167. float NdotL236 = dotResult54;
  168. float3 ase_worldViewDir = normalize( UnityWorldSpaceViewDir( ase_worldPos ) );
  169. float3 normalizeResult4_g3 = normalize( ( ase_worldViewDir + ase_worldlightDir ) );
  170. float dotResult62 = dot( normalizeResult4_g3 , NewNormals220 );
  171. #ifdef _STATICHIGHLIGHTS_ON
  172. float staticSwitch195 = NdotL236;
  173. #else
  174. float staticSwitch195 = dotResult62;
  175. #endif
  176. float3 temp_cast_2 = (1.0).xxx;
  177. UnityGI gi115 = gi;
  178. float3 diffNorm115 = NewNormals220;
  179. gi115 = UnityGI_Base( data, 1, diffNorm115 );
  180. float3 indirectDiffuse115 = gi115.indirect.diffuse + diffNorm115 * 0.0001;
  181. float3 lerpResult117 = lerp( temp_cast_2 , indirectDiffuse115 , _IndirectDiffuseContribution);
  182. float temp_output_214_0 = ( 1.0 - ( ( 1.0 - ase_lightAtten ) * _WorldSpaceLightPos0.w ) );
  183. float lerpResult159 = lerp( temp_output_214_0 , ( saturate( ( ( NdotL236 + _BaseCellOffset ) / _BaseCellSharpness ) ) * ase_lightAtten ) , _ShadowContribution);
  184. float2 uv_BaseColorRGBOutlineWidthA = i.uv_texcoord;
  185. float4 tex2DNode76 = tex2D( _BaseColorRGBOutlineWidthA, uv_BaseColorRGBOutlineWidthA );
  186. float3 BaseColor253 = ( ( ( lerpResult117 * _LightColor0.a * temp_output_214_0 ) + ( _LightColor0.rgb * lerpResult159 ) ) * (( tex2DNode76 * _BaseTint )).rgb );
  187. float dotResult88 = dot( NewNormals220 , ase_worldViewDir );
  188. c.rgb = ( ( lerpResult187 * HighlightColor249 * LightColorFalloff227 * pow( temp_output_189_0 , 1.5 ) * saturate( ( ( staticSwitch195 + _HighlightCellOffset ) / ( ( 1.0 - temp_output_189_0 ) * _HighlightCellSharpness ) ) ) ) + BaseColor253 + ( ( saturate( NdotL236 ) * pow( ( 1.0 - saturate( ( dotResult88 + _RimOffset ) ) ) , _RimPower ) ) * HighlightColor249 * LightColorFalloff227 * (_RimColor).rgb ) );
  189. c.a = 1;
  190. return c;
  191. }
  192. inline void LightingStandardCustomLighting_GI( inout SurfaceOutputCustomLightingCustom s, UnityGIInput data, inout UnityGI gi )
  193. {
  194. s.GIData = data;
  195. }
  196. void surf( Input i , inout SurfaceOutputCustomLightingCustom o )
  197. {
  198. o.SurfInput = i;
  199. o.Normal = float3(0,0,1);
  200. float3 temp_cast_0 = (1.0).xxx;
  201. float3 lerpResult117 = lerp( temp_cast_0 , float3(0,0,0) , _IndirectDiffuseContribution);
  202. float temp_output_214_0 = ( 1.0 - ( ( 1.0 - 1 ) * _WorldSpaceLightPos0.w ) );
  203. float2 uv_NormalMap = i.uv_texcoord;
  204. float3 normalizeResult170 = normalize( WorldNormalVector( i , UnpackScaleNormal( tex2D( _NormalMap, uv_NormalMap ) ,_NormalScale ) ) );
  205. float3 NewNormals220 = normalizeResult170;
  206. float3 ase_worldPos = i.worldPos;
  207. float3 ase_worldlightDir = normalize( UnityWorldSpaceLightDir( ase_worldPos ) );
  208. float dotResult54 = dot( NewNormals220 , ase_worldlightDir );
  209. float NdotL236 = dotResult54;
  210. float lerpResult159 = lerp( temp_output_214_0 , ( saturate( ( ( NdotL236 + _BaseCellOffset ) / _BaseCellSharpness ) ) * 1 ) , _ShadowContribution);
  211. float2 uv_BaseColorRGBOutlineWidthA = i.uv_texcoord;
  212. float4 tex2DNode76 = tex2D( _BaseColorRGBOutlineWidthA, uv_BaseColorRGBOutlineWidthA );
  213. float3 BaseColor253 = ( ( ( lerpResult117 * _LightColor0.a * temp_output_214_0 ) + ( _LightColor0.rgb * lerpResult159 ) ) * (( tex2DNode76 * _BaseTint )).rgb );
  214. o.Albedo = BaseColor253;
  215. }
  216. ENDCG
  217. CGPROGRAM
  218. #pragma surface surf StandardCustomLighting keepalpha fullforwardshadows vertex:vertexDataFunc tessellate:tessFunction tessphong:_TessPhongStrength
  219. ENDCG
  220. Pass
  221. {
  222. Name "ShadowCaster"
  223. Tags{ "LightMode" = "ShadowCaster" }
  224. ZWrite On
  225. CGPROGRAM
  226. #pragma vertex vert
  227. #pragma fragment frag
  228. #pragma target 4.6
  229. #pragma multi_compile_shadowcaster
  230. #pragma multi_compile UNITY_PASS_SHADOWCASTER
  231. #pragma skip_variants FOG_LINEAR FOG_EXP FOG_EXP2
  232. #include "HLSLSupport.cginc"
  233. #if ( SHADER_API_D3D11 || SHADER_API_GLCORE || SHADER_API_GLES3 || SHADER_API_METAL || SHADER_API_VULKAN )
  234. #define CAN_SKIP_VPOS
  235. #endif
  236. #include "UnityCG.cginc"
  237. #include "Lighting.cginc"
  238. #include "UnityPBSLighting.cginc"
  239. struct v2f
  240. {
  241. V2F_SHADOW_CASTER;
  242. float2 customPack1 : TEXCOORD1;
  243. float4 tSpace0 : TEXCOORD2;
  244. float4 tSpace1 : TEXCOORD3;
  245. float4 tSpace2 : TEXCOORD4;
  246. UNITY_VERTEX_INPUT_INSTANCE_ID
  247. };
  248. v2f vert( appdata_full v )
  249. {
  250. v2f o;
  251. UNITY_SETUP_INSTANCE_ID( v );
  252. UNITY_INITIALIZE_OUTPUT( v2f, o );
  253. UNITY_TRANSFER_INSTANCE_ID( v, o );
  254. Input customInputData;
  255. vertexDataFunc( v );
  256. float3 worldPos = mul( unity_ObjectToWorld, v.vertex ).xyz;
  257. fixed3 worldNormal = UnityObjectToWorldNormal( v.normal );
  258. fixed3 worldTangent = UnityObjectToWorldDir( v.tangent.xyz );
  259. fixed tangentSign = v.tangent.w * unity_WorldTransformParams.w;
  260. fixed3 worldBinormal = cross( worldNormal, worldTangent ) * tangentSign;
  261. o.tSpace0 = float4( worldTangent.x, worldBinormal.x, worldNormal.x, worldPos.x );
  262. o.tSpace1 = float4( worldTangent.y, worldBinormal.y, worldNormal.y, worldPos.y );
  263. o.tSpace2 = float4( worldTangent.z, worldBinormal.z, worldNormal.z, worldPos.z );
  264. o.customPack1.xy = customInputData.uv_texcoord;
  265. o.customPack1.xy = v.texcoord;
  266. TRANSFER_SHADOW_CASTER_NORMALOFFSET( o )
  267. return o;
  268. }
  269. fixed4 frag( v2f IN
  270. #if !defined( CAN_SKIP_VPOS )
  271. , UNITY_VPOS_TYPE vpos : VPOS
  272. #endif
  273. ) : SV_Target
  274. {
  275. UNITY_SETUP_INSTANCE_ID( IN );
  276. Input surfIN;
  277. UNITY_INITIALIZE_OUTPUT( Input, surfIN );
  278. surfIN.uv_texcoord = IN.customPack1.xy;
  279. float3 worldPos = float3( IN.tSpace0.w, IN.tSpace1.w, IN.tSpace2.w );
  280. fixed3 worldViewDir = normalize( UnityWorldSpaceViewDir( worldPos ) );
  281. surfIN.worldPos = worldPos;
  282. surfIN.worldNormal = float3( IN.tSpace0.z, IN.tSpace1.z, IN.tSpace2.z );
  283. surfIN.internalSurfaceTtoW0 = IN.tSpace0.xyz;
  284. surfIN.internalSurfaceTtoW1 = IN.tSpace1.xyz;
  285. surfIN.internalSurfaceTtoW2 = IN.tSpace2.xyz;
  286. SurfaceOutputCustomLightingCustom o;
  287. UNITY_INITIALIZE_OUTPUT( SurfaceOutputCustomLightingCustom, o )
  288. surf( surfIN, o );
  289. #if defined( CAN_SKIP_VPOS )
  290. float2 vpos = IN.pos;
  291. #endif
  292. SHADOW_CASTER_FRAGMENT( IN )
  293. }
  294. ENDCG
  295. }
  296. }
  297. Fallback "Diffuse"
  298. CustomEditor "ASEMaterialInspector"
  299. }
  300. /*ASEBEGIN
  301. Version=14103
  302. 487;595;979;423;3286.227;2676.877;11.52267;True;False
  303. Node;AmplifyShaderEditor.CommentaryNode;226;-803.833,-214.5792;Float;False;1370.182;280;Comment;5;82;52;170;220;109;Normals;0.5220588,0.6044625,1,1;0;0
  304. Node;AmplifyShaderEditor.RangedFloatNode;109;-753.8331,-138.0697;Float;False;Property;_NormalScale;Normal Scale;13;0;Create;1;0;0;1;0;1;FLOAT;0
  305. Node;AmplifyShaderEditor.SamplerNode;82;-422.226,-164.5792;Float;True;Property;_NormalMap;Normal Map;12;2;[Normal];[NoScaleOffset];Create;None;None;True;0;True;bump;Auto;True;Object;-1;Auto;Texture2D;6;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0.0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1.0;False;5;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  306. Node;AmplifyShaderEditor.WorldNormalVector;52;-103.4431,-159.3391;Float;False;1;0;FLOAT3;0,0,0;False;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3
  307. Node;AmplifyShaderEditor.NormalizeNode;170;138.1924,-160.2827;Float;False;1;0;FLOAT3;0,0,0,0;False;1;FLOAT3;0
  308. Node;AmplifyShaderEditor.CommentaryNode;241;-676.3679,366.5508;Float;False;835.6508;341.2334;Comment;4;53;223;54;236;N dot L;1,1,1,1;0;0
  309. Node;AmplifyShaderEditor.GetLocalVarNode;223;-599.3095,416.5508;Float;False;220;0;1;FLOAT3;0
  310. Node;AmplifyShaderEditor.RegisterLocalVarNode;220;323.3487,-158.8317;Float;False;NewNormals;-1;True;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0
  311. Node;AmplifyShaderEditor.WorldSpaceLightDirHlpNode;53;-626.368,528.7842;Float;False;1;0;FLOAT;0.0;False;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3
  312. Node;AmplifyShaderEditor.CommentaryNode;242;1324.039,459.9366;Float;False;2744.931;803.0454;Comment;25;253;158;130;235;73;182;76;133;107;159;162;160;214;74;213;215;207;57;60;58;127;59;237;256;257;Base Color;1,1,1,1;0;0
  313. Node;AmplifyShaderEditor.DotProductOpNode;54;-302.0764,453.3497;Float;False;2;0;FLOAT3;0,0,0;False;1;FLOAT3;0.0,0,0;False;1;FLOAT;0
  314. Node;AmplifyShaderEditor.RangedFloatNode;59;1374.039,641.3355;Float;False;Property;_BaseCellOffset;Base Cell Offset;3;0;Create;0;0;-1;1;0;1;FLOAT;0
  315. Node;AmplifyShaderEditor.GetLocalVarNode;237;1374.247,533.2394;Float;False;236;0;1;FLOAT;0
  316. Node;AmplifyShaderEditor.RegisterLocalVarNode;236;-83.71747,456.6653;Float;False;NdotL;-1;True;1;0;FLOAT;0.0;False;1;FLOAT;0
  317. Node;AmplifyShaderEditor.RangedFloatNode;60;1676.114,631.0218;Float;False;Property;_BaseCellSharpness;Base Cell Sharpness;2;0;Create;0.01;0;0.01;1;0;1;FLOAT;0
  318. Node;AmplifyShaderEditor.LightAttenuation;127;1631.055,790.9418;Float;False;0;1;FLOAT;0
  319. Node;AmplifyShaderEditor.SimpleAddOpNode;58;1657.487,534.5102;Float;False;2;2;0;FLOAT;0.0;False;1;FLOAT;0.0;False;1;FLOAT;0
  320. Node;AmplifyShaderEditor.SimpleDivideOpNode;57;1956.552,537.3538;Float;False;2;0;FLOAT;0.0;False;1;FLOAT;0.01;False;1;FLOAT;0
  321. Node;AmplifyShaderEditor.OneMinusNode;215;1944.082,816.0775;Float;False;1;0;FLOAT;0.0;False;1;FLOAT;0
  322. Node;AmplifyShaderEditor.CommentaryNode;251;648.5698,-1229.416;Float;False;2234.221;738.9581;Comment;18;184;180;249;246;181;177;81;172;175;61;222;239;62;195;174;173;171;261;;1,1,1,1;0;0
  323. Node;AmplifyShaderEditor.CommentaryNode;233;1355.396,-187.3015;Float;False;828.4254;361.0605;Comment;5;115;118;117;119;225;Indirect Diffuse;1,1,1,1;0;0
  324. Node;AmplifyShaderEditor.WorldSpaceLightPos;207;1626.013,899.7625;Float;False;0;3;FLOAT4;0;FLOAT3;1;FLOAT;2
  325. Node;AmplifyShaderEditor.CommentaryNode;243;1727.822,1561.833;Float;False;1926.522;520.1537;Comment;17;98;244;231;193;96;250;94;103;93;92;238;91;90;88;89;221;86;Rim Color;1,1,1,1;0;0
  326. Node;AmplifyShaderEditor.GetLocalVarNode;221;1777.822,1662.402;Float;False;220;0;1;FLOAT3;0
  327. Node;AmplifyShaderEditor.SamplerNode;81;1260.552,-1012.602;Float;True;Property;_Highlight;Highlight;6;1;[NoScaleOffset];Create;None;None;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;6;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0.0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1.0;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  328. Node;AmplifyShaderEditor.ColorNode;177;1329.485,-1179.416;Float;False;Property;_HighlightTint;Highlight Tint;7;1;[HDR];Create;1,1,1,1;0,0,0,0;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  329. Node;AmplifyShaderEditor.ViewDirInputsCoordNode;86;1824.853,1773.611;Float;False;World;0;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3
  330. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;213;2134.626,851.7131;Float;False;2;2;0;FLOAT;0.0;False;1;FLOAT;0.0;False;1;FLOAT;0
  331. Node;AmplifyShaderEditor.SaturateNode;74;2114.005,542.3831;Float;False;1;0;FLOAT;0.0;False;1;FLOAT;0
  332. Node;AmplifyShaderEditor.GetLocalVarNode;225;1405.396,-42.92128;Float;False;220;0;1;FLOAT3;0
  333. Node;AmplifyShaderEditor.RangedFloatNode;119;1785.008,-137.3016;Float;False;Constant;_Float4;Float 4;20;0;Create;1;0;0;0;0;1;FLOAT;0
  334. Node;AmplifyShaderEditor.DotProductOpNode;88;2129.955,1708.719;Float;False;2;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;1;FLOAT;0
  335. Node;AmplifyShaderEditor.FunctionNode;61;698.5698,-733.562;Float;False;Blinn-Phong Half Vector;-1;;3;91a149ac9d615be429126c95e20753ce;0;1;FLOAT3;0
  336. Node;AmplifyShaderEditor.OneMinusNode;214;2324.502,854.6982;Float;False;1;0;FLOAT;0.0;False;1;FLOAT;0
  337. Node;AmplifyShaderEditor.CommentaryNode;248;1892.391,-1558.685;Float;False;287;165;Comment;1;189;Spec/Smooth;1,1,1,1;0;0
  338. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;184;1659.207,-1057.273;Float;False;2;2;0;COLOR;0,0,0,0;False;1;COLOR;0.0,0,0,0;False;1;COLOR;0
  339. Node;AmplifyShaderEditor.IndirectDiffuseLighting;115;1688.455,-41.32622;Float;False;World;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0
  340. Node;AmplifyShaderEditor.RangedFloatNode;89;2072.556,1825.936;Float;False;Property;_RimOffset;Rim Offset;16;0;Create;0.6;0;0;1;0;1;FLOAT;0
  341. Node;AmplifyShaderEditor.RangedFloatNode;118;1659.391,58.75889;Float;False;Property;_IndirectDiffuseContribution;Indirect Diffuse Contribution;4;0;Create;1;0;0;1;0;1;FLOAT;0
  342. Node;AmplifyShaderEditor.GetLocalVarNode;222;762.1332,-605.4583;Float;False;220;0;1;FLOAT3;0
  343. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;160;2351.156,541.2684;Float;False;2;2;0;FLOAT;0.0;False;1;FLOAT;0.0;False;1;FLOAT;0
  344. Node;AmplifyShaderEditor.RangedFloatNode;162;2155.415,983.4974;Float;False;Property;_ShadowContribution;Shadow Contribution;5;0;Create;0.5;0;0;1;0;1;FLOAT;0
  345. Node;AmplifyShaderEditor.DotProductOpNode;62;1043.79,-679.1187;Float;False;2;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;1;FLOAT;0
  346. Node;AmplifyShaderEditor.LerpOp;117;1999.821,-60.9863;Float;False;3;0;FLOAT3;0,0,0;False;1;FLOAT3;0;False;2;FLOAT;0.0,0,0;False;1;FLOAT3;0
  347. Node;AmplifyShaderEditor.ComponentMaskNode;189;1942.391,-1508.685;Float;False;False;False;False;True;1;0;COLOR;0,0,0,0;False;1;FLOAT;0
  348. Node;AmplifyShaderEditor.LightColorNode;107;2626.905,541.7966;Float;False;0;3;COLOR;0;FLOAT3;1;FLOAT;2
  349. Node;AmplifyShaderEditor.GetLocalVarNode;239;1003.499,-845.3307;Float;False;236;0;1;FLOAT;0
  350. Node;AmplifyShaderEditor.SamplerNode;76;2937.31,875.5428;Float;True;Property;_BaseColorRGBOutlineWidthA;Base Color (RGB) Outline Width (A);0;1;[NoScaleOffset];Create;None;None;True;0;False;gray;Auto;False;Object;-1;Auto;Texture2D;6;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0.0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1.0;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  351. Node;AmplifyShaderEditor.LerpOp;159;2707.211,856.7739;Float;False;3;0;FLOAT;0.0;False;1;FLOAT;0.0;False;2;FLOAT;0.0;False;1;FLOAT;0
  352. Node;AmplifyShaderEditor.SimpleAddOpNode;90;2353.555,1712.936;Float;False;2;2;0;FLOAT;0.0;False;1;FLOAT;0.0;False;1;FLOAT;0
  353. Node;AmplifyShaderEditor.ColorNode;73;2975.755,1079.272;Float;False;Property;_BaseTint;Base Tint;1;0;Create;1,1,1,0;0,0,0,0;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  354. Node;AmplifyShaderEditor.StaticSwitch;195;1271.122,-784.4333;Float;False;Property;_StaticHighLights;Static HighLights;11;0;Create;0;False;False;True;;Toggle;2;0;FLOAT;0.0;False;1;FLOAT;0.0;False;1;FLOAT;0
  355. Node;AmplifyShaderEditor.CommentaryNode;240;-635.8909,943.4141;Float;False;717.6841;295.7439;Comment;4;229;228;230;227;Light Falloff;0.9947262,1,0.6176471,1;0;0
  356. Node;AmplifyShaderEditor.OneMinusNode;261;2021.558,-885.707;Float;False;1;0;FLOAT;0.0;False;1;FLOAT;0
  357. Node;AmplifyShaderEditor.RangedFloatNode;173;1405.781,-660.3005;Float;False;Property;_HighlightCellOffset;Highlight Cell Offset;8;0;Create;-0.95;0;-1;-0.5;0;1;FLOAT;0
  358. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;133;3050.939,734.3177;Float;False;2;2;0;FLOAT3;0,0,0;False;1;FLOAT;0.0,0,0;False;1;FLOAT3;0
  359. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;256;3276.777,970.2915;Float;False;2;2;0;COLOR;0,0,0,0;False;1;COLOR;0.0,0,0,0;False;1;COLOR;0
  360. Node;AmplifyShaderEditor.SaturateNode;91;2513.555,1712.936;Float;False;1;0;FLOAT;0.0;False;1;FLOAT;0
  361. Node;AmplifyShaderEditor.RangedFloatNode;174;1799.042,-648.0834;Float;False;Property;_HighlightCellSharpness;Highlight Cell Sharpness;9;0;Create;0.01;0;0.001;1;0;1;FLOAT;0
  362. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;182;3048.637,509.9366;Float;False;3;3;0;FLOAT3;0,0,0;False;1;FLOAT;0.0,0,0;False;2;FLOAT;0,0,0;False;1;FLOAT3;0
  363. Node;AmplifyShaderEditor.CommentaryNode;247;1687.587,-2100.743;Float;False;1008.755;365.3326;Comment;5;224;106;188;186;187;Indirect Specular;1,1,1,1;0;0
  364. Node;AmplifyShaderEditor.CommentaryNode;219;3993.704,1541.79;Float;False;1039.617;429.9737;Comment;8;259;200;258;83;185;245;254;192;Custom Outline;1,0.6029412,0.7097364,1;0;0
  365. Node;AmplifyShaderEditor.GetLocalVarNode;238;2644.923,1611.833;Float;False;236;0;1;FLOAT;0
  366. Node;AmplifyShaderEditor.OneMinusNode;93;2689.555,1712.936;Float;False;1;0;FLOAT;0.0;False;1;FLOAT;0
  367. Node;AmplifyShaderEditor.LightAttenuation;229;-585.8909,1129.158;Float;False;0;1;FLOAT;0
  368. Node;AmplifyShaderEditor.SimpleAddOpNode;130;3307.784,623.0619;Float;False;2;2;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;1;FLOAT3;0
  369. Node;AmplifyShaderEditor.GetLocalVarNode;224;1737.587,-1980.103;Float;False;220;0;1;FLOAT3;0
  370. Node;AmplifyShaderEditor.SimpleAddOpNode;171;1760.558,-788.2134;Float;False;2;2;0;FLOAT;0.0;False;1;FLOAT;0.0;False;1;FLOAT;0
  371. Node;AmplifyShaderEditor.LightColorNode;228;-540.1871,993.4141;Float;False;0;3;COLOR;0;FLOAT3;1;FLOAT;2
  372. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;260;2116.472,-654.7482;Float;False;2;2;0;FLOAT;0.0;False;1;FLOAT;0.0;False;1;FLOAT;0
  373. Node;AmplifyShaderEditor.RangedFloatNode;92;2577.555,1840.936;Float;False;Property;_RimPower;Rim Power;15;0;Create;0.4;0;0.01;1;0;1;FLOAT;0
  374. Node;AmplifyShaderEditor.ComponentMaskNode;235;3423.945,954.0895;Float;False;True;True;True;False;1;0;COLOR;0,0,0,0;False;1;FLOAT3;0
  375. Node;AmplifyShaderEditor.RangedFloatNode;188;2094.48,-1850.412;Float;False;Property;_IndirectSpecularContribution;Indirect Specular Contribution;10;0;Create;1;0;0;1;0;1;FLOAT;0
  376. Node;AmplifyShaderEditor.SimpleDivideOpNode;172;2108.795,-795.9062;Float;False;2;0;FLOAT;0.0;False;1;FLOAT;0.0;False;1;FLOAT;0
  377. Node;AmplifyShaderEditor.ColorNode;192;4054.217,1683.832;Float;False;Property;_OutlineTint;Outline Tint;17;0;Create;0.5294118,0.5294118,0.5294118,0;0,0,0,0;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  378. Node;AmplifyShaderEditor.ComponentMaskNode;180;1898.907,-1053.456;Float;False;True;True;True;False;1;0;COLOR;0,0,0,0;False;1;FLOAT3;0
  379. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;158;3608.84,749.2598;Float;False;2;2;0;FLOAT3;0,0,0,0;False;1;FLOAT3;0,0,0;False;1;FLOAT3;0
  380. Node;AmplifyShaderEditor.SaturateNode;103;2870.778,1633.693;Float;False;1;0;FLOAT;0.0;False;1;FLOAT;0
  381. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;230;-351.8918,1059.575;Float;False;2;2;0;FLOAT3;0,0,0;False;1;FLOAT;0.0,0,0;False;1;FLOAT3;0
  382. Node;AmplifyShaderEditor.IndirectSpecularLight;106;2161.653,-1963.519;Float;False;World;3;0;FLOAT3;0,0,0;False;1;FLOAT;0.5;False;2;FLOAT;1.0;False;1;FLOAT3;0
  383. Node;AmplifyShaderEditor.RangedFloatNode;186;2188.282,-2050.743;Float;False;Constant;_Float5;Float 5;20;0;Create;1;0;0;0;0;1;FLOAT;0
  384. Node;AmplifyShaderEditor.ColorNode;98;2890.947,1874.34;Float;False;Property;_RimColor;Rim Color;14;1;[HDR];Create;1,1,1,0;0,0,0,0;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  385. Node;AmplifyShaderEditor.PowerNode;94;2881.555,1712.936;Float;False;2;0;FLOAT;0.0;False;1;FLOAT;0.0;False;1;FLOAT;0
  386. Node;AmplifyShaderEditor.RegisterLocalVarNode;249;2211.476,-1055.947;Float;False;HighlightColor;-1;True;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0
  387. Node;AmplifyShaderEditor.RegisterLocalVarNode;227;-177.207,1056.042;Float;False;LightColorFalloff;-1;True;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0
  388. Node;AmplifyShaderEditor.GetLocalVarNode;254;4306.977,1596.032;Float;False;253;0;1;FLOAT3;0
  389. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;96;3165.683,1641.71;Float;False;2;2;0;FLOAT;0.0;False;1;FLOAT;0.0;False;1;FLOAT;0
  390. Node;AmplifyShaderEditor.ComponentMaskNode;244;3154.779,1926.118;Float;False;True;True;True;False;1;0;COLOR;0,0,0,0;False;1;FLOAT3;0
  391. Node;AmplifyShaderEditor.SaturateNode;175;2324.68,-792.1935;Float;False;1;0;FLOAT;0.0;False;1;FLOAT;0
  392. Node;AmplifyShaderEditor.RegisterLocalVarNode;257;3389.934,1086.04;Float;False;OutlineCustomWidth;-1;True;1;0;FLOAT;0.0;False;1;FLOAT;0
  393. Node;AmplifyShaderEditor.RangedFloatNode;200;4326.404,1785.057;Float;False;Property;_OutlineWidth;Outline Width;18;0;Create;0.02;0;0.02;0.2;0;1;FLOAT;0
  394. Node;AmplifyShaderEditor.GetLocalVarNode;250;3159.324,1739.908;Float;False;249;0;1;FLOAT3;0
  395. Node;AmplifyShaderEditor.ComponentMaskNode;245;4357.897,1686.073;Float;False;True;True;True;False;1;0;COLOR;0,0,0,0;False;1;FLOAT3;0
  396. Node;AmplifyShaderEditor.RegisterLocalVarNode;253;3801.573,744.8395;Float;False;BaseColor;-1;True;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0
  397. Node;AmplifyShaderEditor.GetLocalVarNode;231;3153.879,1829.875;Float;False;227;0;1;FLOAT3;0
  398. Node;AmplifyShaderEditor.GetLocalVarNode;259;4345.463,1881.319;Float;False;257;0;1;FLOAT;0
  399. Node;AmplifyShaderEditor.GetLocalVarNode;246;2204.838,-950.8322;Float;False;227;0;1;FLOAT3;0
  400. Node;AmplifyShaderEditor.LerpOp;187;2512.345,-1997.898;Float;False;3;0;FLOAT3;0,0,0;False;1;FLOAT3;0;False;2;FLOAT;0.0,0,0;False;1;FLOAT3;0
  401. Node;AmplifyShaderEditor.PowerNode;263;2277.378,-1363.768;Float;False;2;0;FLOAT;0.0;False;1;FLOAT;1.5;False;1;FLOAT;0
  402. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;185;4617.75,1638.073;Float;False;2;2;0;FLOAT3;0,0,0,0;False;1;FLOAT3;0.3382353,0.3382353,0.3382353,0;False;1;FLOAT3;0
  403. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;258;4668.784,1790.126;Float;False;2;2;0;FLOAT;0.0;False;1;FLOAT;0.0;False;1;FLOAT;0
  404. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;181;2713.791,-1059.016;Float;False;5;5;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;2;FLOAT3;0,0,0;False;3;FLOAT;0,0,0;False;4;FLOAT;0,0,0;False;1;FLOAT3;0
  405. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;193;3470.637,1634.762;Float;False;4;4;0;FLOAT;0,0,0;False;1;FLOAT3;0;False;2;FLOAT3;0,0,0;False;3;FLOAT3;0,0,0;False;1;FLOAT3;0
  406. Node;AmplifyShaderEditor.GetLocalVarNode;252;4984.134,546.408;Float;False;253;0;1;FLOAT3;0
  407. Node;AmplifyShaderEditor.SimpleAddOpNode;163;4527.494,743.6974;Float;False;3;3;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;2;FLOAT3;0,0,0,0;False;1;FLOAT3;0
  408. Node;AmplifyShaderEditor.OutlineNode;83;4783.315,1639.851;Float;False;0;True;2;0;FLOAT3;0,0,0;False;1;FLOAT;0.0;False;1;FLOAT3;0
  409. Node;AmplifyShaderEditor.StandardSurfaceOutputNode;0;5309.991,551.4377;Float;False;True;6;Float;ASEMaterialInspector;0;0;CustomLighting;ASESampleShaders/CustomOutlineToon;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;Back;0;0;False;0;0;Opaque;0.5;True;True;0;False;Opaque;Geometry;All;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;False;0;255;255;0;0;0;0;0;0;0;0;True;0;4;10;25;True;0.5;True;0;Zero;Zero;0;Zero;Zero;OFF;OFF;0;False;0.03;0,0,0,0;VertexOffset;True;False;Cylindrical;False;Relative;0;;-1;-1;-1;19;0;0;0;False;0;0;15;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;2;FLOAT3;0,0,0;False;3;FLOAT3;0.0,0,0;False;4;FLOAT;0.0;False;6;FLOAT3;0,0,0;False;7;FLOAT3;0,0,0;False;8;FLOAT;0.0;False;9;FLOAT;0.0;False;10;FLOAT;0.0;False;13;FLOAT3;0,0,0;False;11;FLOAT3;0,0,0;False;12;FLOAT3;0,0,0;False;14;FLOAT4;0,0,0,0;False;15;FLOAT3;0,0,0;False;0
  410. WireConnection;82;5;109;0
  411. WireConnection;52;0;82;0
  412. WireConnection;170;0;52;0
  413. WireConnection;220;0;170;0
  414. WireConnection;54;0;223;0
  415. WireConnection;54;1;53;0
  416. WireConnection;236;0;54;0
  417. WireConnection;58;0;237;0
  418. WireConnection;58;1;59;0
  419. WireConnection;57;0;58;0
  420. WireConnection;57;1;60;0
  421. WireConnection;215;0;127;0
  422. WireConnection;213;0;215;0
  423. WireConnection;213;1;207;2
  424. WireConnection;74;0;57;0
  425. WireConnection;88;0;221;0
  426. WireConnection;88;1;86;0
  427. WireConnection;214;0;213;0
  428. WireConnection;184;0;177;0
  429. WireConnection;184;1;81;0
  430. WireConnection;115;0;225;0
  431. WireConnection;160;0;74;0
  432. WireConnection;160;1;127;0
  433. WireConnection;62;0;61;0
  434. WireConnection;62;1;222;0
  435. WireConnection;117;0;119;0
  436. WireConnection;117;1;115;0
  437. WireConnection;117;2;118;0
  438. WireConnection;189;0;184;0
  439. WireConnection;159;0;214;0
  440. WireConnection;159;1;160;0
  441. WireConnection;159;2;162;0
  442. WireConnection;90;0;88;0
  443. WireConnection;90;1;89;0
  444. WireConnection;195;0;239;0
  445. WireConnection;195;1;62;0
  446. WireConnection;261;0;189;0
  447. WireConnection;133;0;107;1
  448. WireConnection;133;1;159;0
  449. WireConnection;256;0;76;0
  450. WireConnection;256;1;73;0
  451. WireConnection;91;0;90;0
  452. WireConnection;182;0;117;0
  453. WireConnection;182;1;107;2
  454. WireConnection;182;2;214;0
  455. WireConnection;93;0;91;0
  456. WireConnection;130;0;182;0
  457. WireConnection;130;1;133;0
  458. WireConnection;171;0;195;0
  459. WireConnection;171;1;173;0
  460. WireConnection;260;0;261;0
  461. WireConnection;260;1;174;0
  462. WireConnection;235;0;256;0
  463. WireConnection;172;0;171;0
  464. WireConnection;172;1;260;0
  465. WireConnection;180;0;184;0
  466. WireConnection;158;0;130;0
  467. WireConnection;158;1;235;0
  468. WireConnection;103;0;238;0
  469. WireConnection;230;0;228;1
  470. WireConnection;230;1;229;0
  471. WireConnection;106;0;224;0
  472. WireConnection;106;1;189;0
  473. WireConnection;94;0;93;0
  474. WireConnection;94;1;92;0
  475. WireConnection;249;0;180;0
  476. WireConnection;227;0;230;0
  477. WireConnection;96;0;103;0
  478. WireConnection;96;1;94;0
  479. WireConnection;244;0;98;0
  480. WireConnection;175;0;172;0
  481. WireConnection;257;0;76;4
  482. WireConnection;245;0;192;0
  483. WireConnection;253;0;158;0
  484. WireConnection;187;0;186;0
  485. WireConnection;187;1;106;0
  486. WireConnection;187;2;188;0
  487. WireConnection;263;0;189;0
  488. WireConnection;185;0;254;0
  489. WireConnection;185;1;245;0
  490. WireConnection;258;0;200;0
  491. WireConnection;258;1;259;0
  492. WireConnection;181;0;187;0
  493. WireConnection;181;1;249;0
  494. WireConnection;181;2;246;0
  495. WireConnection;181;3;263;0
  496. WireConnection;181;4;175;0
  497. WireConnection;193;0;96;0
  498. WireConnection;193;1;250;0
  499. WireConnection;193;2;231;0
  500. WireConnection;193;3;244;0
  501. WireConnection;163;0;181;0
  502. WireConnection;163;1;253;0
  503. WireConnection;163;2;193;0
  504. WireConnection;83;0;185;0
  505. WireConnection;83;1;258;0
  506. WireConnection;0;0;252;0
  507. WireConnection;0;13;163;0
  508. WireConnection;0;11;83;0
  509. ASEEND*/
  510. //CHKSM=95996635B7D0F42505782FCBECE8160B39C941CA