Unity引擎制作会融化的士兵效果

unity制作会融化的士兵

  大家好,我是阿赵。
  这次做一个角色变成液体溶解的效果
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

  下面分解一下制作过程:

unity制作融化士兵变形过程

1、液体流动效果

在这里插入图片描述

  这个效果的第一个部分,是要把人物制作一个液体流动的效果。
这里使用的技术主要是:
1.使用Matcap效果
2.使用流动的法线贴图作为Matcap的法线输入
3.想做到整体流动,就不能使用模型UV来采样,而需要用模型的世界顶点坐标
4.由于使用了模型的世界顶点坐标作为采样UV,就需要用三平面映射的方式去消除不同方向产生采样缝隙的问题。
  用ASE来制作,大概是这个样子:
在这里插入图片描述

  ASE原来就自带了三平面映射的节点,叫做Triplanar_Sample,但这个节点并没有做UV流动的效果,所以我自己写了一个支持UV流动效果的三平面映射节点,叫做TriplanarFlow
在这里插入图片描述

源码是这样的:

%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {
    
    fileID: 0}
  m_PrefabInstance: {
    
    fileID: 0}
  m_PrefabAsset: {
    
    fileID: 0}
  m_GameObject: {
    
    fileID: 0}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {
    
    fileID: 11500000, guid: 78b2425a2284af743826c689403a4924, type: 3}
  m_Name: TriplanarFlow
  m_EditorClassIdentifier: 
  m_functionInfo: "// Made with Amplify Shader Editor\n// Available at the Unity
    Asset Store - http://u3d.as/y3X \n/*ASEBEGIN\nVersion=18500\n359;228;1920;745;6478.745;2595.645;5.428565;True;True\nNode;AmplifyShaderEditor.CommentaryNode;125;-1158.23,-76.22507;Inherit;False;1242.057;631.35;Comment;11;90;97;99;96;94;98;95;92;91;93;0;Output;1,1,1,1;0;0\nNode;AmplifyShaderEditor.CommentaryNode;124;-4240.374,428.4314;Inherit;False;1959.505;544.478;Comment;13;64;66;74;72;70;22;46;45;69;65;67;68;75;zNorm;1,1,1,1;0;0\nNode;AmplifyShaderEditor.CommentaryNode;123;-4241.115,-227.0793;Inherit;False;1799.805;470.0698;Comment;13;56;55;57;59;60;62;54;21;43;52;44;53;63;yNorm;1,1,1,1;0;0\nNode;AmplifyShaderEditor.CommentaryNode;122;-4239.804,-790.0585;Inherit;False;1808.244;411.255;Comment;13;49;48;29;50;27;47;20;42;25;41;23;24;51;xNorm;1,1,1,1;0;0\nNode;AmplifyShaderEditor.CommentaryNode;121;-2023.791,841.1984;Inherit;False;1747.016;820.0761;Comment;28;17;38;109;115;39;86;110;83;82;84;114;87;88;89;19;85;78;111;13;36;15;14;79;80;81;113;100;37;UV;1,1,1,1;0;0\nNode;AmplifyShaderEditor.CommentaryNode;120;-1536.545,-1187.829;Inherit;False;858.2654;270.0625;Comment;5;101;108;107;103;112;speedFlow;1,1,1,1;0;0\nNode;AmplifyShaderEditor.CommentaryNode;119;-2061.011,-1.988859;Inherit;False;616.584;180.4363;Comment;3;31;12;35;nsign;1,1,1,1;0;0\nNode;AmplifyShaderEditor.CommentaryNode;118;-2044.071,-660.0865;Inherit;False;523.361;408.4813;Comment;4;4;30;3;76;worldVal;1,1,1,1;0;0\nNode;AmplifyShaderEditor.CommentaryNode;117;-1427.946,-696.7437;Inherit;False;895.7377;465.5776;Comment;7;7;33;9;8;10;11;34;projNormal;1,1,1,1;0;0\nNode;AmplifyShaderEditor.CommentaryNode;116;-2126.369,-1267.963;Inherit;False;492.905;419.4811;Comment;6;106;6;104;77;1;40;Input;1,1,1,1;0;0\nNode;AmplifyShaderEditor.SimpleAddOpNode;69;-3128.447,618.4826;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.SwizzleNode;68;-3337.247,741.2226;Inherit;False;FLOAT2;0;1;2;3;1;0;FLOAT3;0,0,0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.RegisterLocalVarNode;63;-2665.309,-101.7244;Inherit;False;yNorm;-1;True;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.SwizzleNode;74;-2732.009,686.2016;Inherit;False;FLOAT3;0;1;2;3;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.GetLocalVarNode;44;-4191.115,-101.8404;Inherit;False;38;uv2;1;0;OBJECT;;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.GetLocalVarNode;42;-4189.804,-638.6224;Inherit;False;37;uv1;1;0;OBJECT;;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.GetLocalVarNode;41;-4176.205,-732.1605;Inherit;False;40;texMap;1;0;OBJECT;;False;1;SAMPLER2D;0\nNode;AmplifyShaderEditor.GetLocalVarNode;43;-4171.768,-177.0794;Inherit;False;40;texMap;1;0;OBJECT;;False;1;SAMPLER2D;0\nNode;AmplifyShaderEditor.SwizzleNode;70;-3272.349,856.9096;Inherit;False;FLOAT;2;1;2;3;1;0;FLOAT3;0,0,0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.RegisterLocalVarNode;75;-2504.868,681.9687;Inherit;False;zNorm;-1;True;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.DynamicAppendNode;72;-2945.042,677.7355;Inherit;False;FLOAT3;4;0;FLOAT2;0,0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.DynamicAppendNode;59;-3040.688,-82.44632;Inherit;False;FLOAT3;4;0;FLOAT2;0,0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.SimpleMultiplyOpNode;53;-3413.618,-173.4055;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.SwizzleNode;62;-2868.434,-72.93533;Inherit;False;FLOAT3;0;2;1;3;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.SwizzleNode;60;-3258.69,126.9906;Inherit;False;FLOAT;1;1;2;3;1;0;FLOAT3;0,0,0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.GetLocalVarNode;46;-4147.38,596.6635;Inherit;False;39;uv3;1;0;OBJECT;;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.SimpleAddOpNode;55;-3222.605,-90.24344;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.RegisterLocalVarNode;51;-2655.56,-677.8738;Inherit;False;xNorm;-1;True;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.DynamicAppendNode;25;-3049.939,-694.8027;Inherit;False;FLOAT3;4;0;FLOAT2;0,0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.SimpleAddOpNode;27;-3254.804,-678.9016;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.SwizzleNode;50;-2856.106,-686.7876;Inherit;False;FLOAT3;2;1;0;3;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.SwizzleNode;49;-3283.337,-494.8038;Inherit;False;FLOAT;0;1;2;3;1;0;FLOAT3;0,0,0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.SimpleMultiplyOpNode;66;-3365.463,545.1196;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.GetLocalVarNode;45;-4190.374,478.4315;Inherit;False;40;texMap;1;0;OBJECT;;False;1;SAMPLER2D;0\nNode;AmplifyShaderEditor.SwizzleNode;23;-3642.958,-740.0585;Inherit;False;FLOAT2;0;1;2;3;1;0;FLOAT3;0,0,0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.SwizzleNode;29;-3425.804,-558.7018;Inherit;False;FLOAT2;2;1;2;3;1;0;FLOAT3;0,0,0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.GetLocalVarNode;91;-1108.23,93.21825;Inherit;False;34;projNormal;1;0;OBJECT;;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.BreakToComponentsNode;92;-936.8959,107.3015;Inherit;False;FLOAT3;1;0;FLOAT3;0,0,0;False;16;FLOAT;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT;5;FLOAT;6;FLOAT;7;FLOAT;8;FLOAT;9;FLOAT;10;FLOAT;11;FLOAT;12;FLOAT;13;FLOAT;14;FLOAT;15\nNode;AmplifyShaderEditor.SimpleMultiplyOpNode;95;-659.074,296.5267;Inherit;False;2;2;0;FLOAT3;0,0,0;False;1;FLOAT;0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.SimpleAddOpNode;98;-513.6002,207.9299;Inherit;False;3;3;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;2;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.GetLocalVarNode;94;-872.3628,264.8069;Inherit;False;63;yNorm;1;0;OBJECT;;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.GetLocalVarNode;96;-917.208,410.2808;Inherit;False;75;zNorm;1;0;OBJECT;;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.NormalizeNode;99;-350.626,254.9628;Inherit;False;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.SimpleMultiplyOpNode;97;-664.543,420.1249;Inherit;False;2;2;0;FLOAT3;0,0,0;False;1;FLOAT;0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.GetLocalVarNode;90;-909.5569,-26.22507;Inherit;False;51;xNorm;1;0;OBJECT;;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.GetLocalVarNode;67;-3596.836,765.2065;Inherit;False;30;worldNormal;1;0;OBJECT;;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.GetLocalVarNode;48;-3636.856,-536.4866;Inherit;False;30;worldNormal;1;0;OBJECT;;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.GetLocalVarNode;65;-3605.301,635.4116;Inherit;False;39;uv3;1;0;OBJECT;;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.SwizzleNode;64;-3613.766,515.4936;Inherit;False;FLOAT2;0;1;2;3;1;0;FLOAT3;0,0,0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.SwizzleNode;52;-3669.601,-160.4104;Inherit;False;FLOAT2;0;1;2;3;1;0;FLOAT3;0,0,0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.SamplerNode;21;-3978.776,-175.5955;Inherit;True;Property;_TextureSample1;Texture
    Sample 1;0;0;Create;True;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;True;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4\nNode;AmplifyShaderEditor.GetLocalVarNode;54;-3618.925,-61.65652;Inherit;False;38;uv2;1;0;OBJECT;;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.SwizzleNode;57;-3422.714,38.39868;Inherit;False;FLOAT2;0;2;2;3;1;0;FLOAT3;0,0,0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.GetLocalVarNode;56;-3635.817,47.49464;Inherit;False;30;worldNormal;1;0;OBJECT;;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.SimpleMultiplyOpNode;24;-3443.72,-699.2217;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.RegisterLocalVarNode;37;-500.7745,938.7051;Inherit;False;uv1;-1;True;1;0;FLOAT2;0,0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.SamplerNode;20;-3980.593,-730.1096;Inherit;True;Property;_TextureSample0;Texture
    Sample 0;0;0;Create;True;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;True;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4\nNode;AmplifyShaderEditor.GetLocalVarNode;47;-3663.466,-632.7574;Inherit;False;37;uv1;1;0;OBJECT;;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.SamplerNode;22;-3951.314,493.2254;Inherit;True;Property;_TextureSample2;Texture
    Sample 2;0;0;Create;True;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;True;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4\nNode;AmplifyShaderEditor.SimpleAddOpNode;100;-644.748,962.4671;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.DynamicAppendNode;14;-1430.22,1093.859;Inherit;False;FLOAT2;4;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.SwizzleNode;81;-1255.674,991.9004;Inherit;False;FLOAT2;2;1;2;3;1;0;FLOAT3;0,0,0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.GetLocalVarNode;108;-1486.545,-1033.767;Inherit;False;106;speed;1;0;OBJECT;;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.FractNode;101;-1085.798,-1102.702;Inherit;False;1;0;FLOAT2;0,0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.RegisterLocalVarNode;35;-1668.427,49.88309;Inherit;False;nsign;-1;True;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.SignOpNode;12;-1788.998,48.01115;Inherit;False;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.GetLocalVarNode;31;-2011.011,62.44743;Inherit;False;30;worldNormal;1;0;OBJECT;;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.RegisterLocalVarNode;76;-1755.965,-446.7408;Inherit;False;worldPos;-1;True;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.WorldPosInputsNode;3;-1991.072,-434.6052;Inherit;False;0;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3\nNode;AmplifyShaderEditor.RegisterLocalVarNode;30;-1744.71,-610.0865;Inherit;False;worldNormal;-1;True;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.WorldNormalVector;4;-1994.071,-602.4806;Inherit;False;False;1;0;FLOAT3;0,0,1;False;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3\nNode;AmplifyShaderEditor.RegisterLocalVarNode;34;-756.2081,-615.6442;Inherit;False;projNormal;-1;True;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.SimpleMultiplyOpNode;107;-1267.665,-1081.767;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT2;0,0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.RangedFloatNode;11;-1067.076,-347.1659;Inherit;False;Constant;_Float0;Float
    0;0;0;Create;True;0;0;False;0;False;1E-05;0;0;0;0;1;FLOAT;0\nNode;AmplifyShaderEditor.SimpleDivideOpNode;8;-906.0152,-626.2781;Inherit;False;2;0;FLOAT3;0,0,0;False;1;FLOAT;0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.BreakToComponentsNode;9;-1233.146,-479.3059;Inherit;False;FLOAT3;1;0;FLOAT3;0,0,0;False;16;FLOAT;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT;5;FLOAT;6;FLOAT;7;FLOAT;8;FLOAT;9;FLOAT;10;FLOAT;11;FLOAT;12;FLOAT;13;FLOAT;14;FLOAT;15\nNode;AmplifyShaderEditor.GetLocalVarNode;33;-1377.946,-641.1437;Inherit;False;30;worldNormal;1;0;OBJECT;;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.AbsOpNode;7;-1184.444,-646.7436;Inherit;False;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.RegisterLocalVarNode;40;-1857.465,-966.3229;Inherit;False;texMap;-1;True;1;0;SAMPLER2D;;False;1;SAMPLER2D;0\nNode;AmplifyShaderEditor.FunctionInput;1;-2074.919,-964.4821;Inherit;False;texMap;9;0;False;1;0;SAMPLER2D;;False;1;SAMPLER2D;0\nNode;AmplifyShaderEditor.RegisterLocalVarNode;77;-1862.583,-1098.797;Inherit;False;tiling;-1;True;1;0;FLOAT2;0,0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.FunctionInput;104;-2074.371,-1210.871;Inherit;False;speed;2;2;False;1;0;FLOAT2;0,0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.FunctionInput;6;-2076.37,-1087.994;Inherit;False;tiling;2;1;False;1;0;FLOAT2;0,0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.RegisterLocalVarNode;106;-1864.679,-1217.963;Inherit;False;speed;-1;True;1;0;FLOAT2;0,0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.SimpleAddOpNode;10;-932.9429,-496.2076;Inherit;False;4;4;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.SimpleTimeNode;103;-1486.402,-1137.829;Inherit;False;1;0;FLOAT;1;False;1;FLOAT;0\nNode;AmplifyShaderEditor.RegisterLocalVarNode;112;-902.2792,-1076.682;Inherit;False;speedFlow;-1;True;1;0;FLOAT2;0,0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.DynamicAppendNode;17;-1315.333,1526.275;Inherit;False;FLOAT2;4;0;FLOAT;0;False;1;FLOAT;1;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.GetLocalVarNode;80;-1447.41,1002.27;Inherit;False;76;worldPos;1;0;OBJECT;;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.SimpleMultiplyOpNode;79;-1020.796,988.9459;Inherit;False;3;3;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;2;FLOAT2;0,0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.SimpleMultiplyOpNode;93;-707.2006,66.83132;Inherit;False;2;2;0;FLOAT3;0,0,0;False;1;FLOAT;0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.DynamicAppendNode;15;-1424.698,1248.08;Inherit;False;FLOAT2;4;0;FLOAT;0;False;1;FLOAT;1;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.GetLocalVarNode;36;-1973.791,1123.716;Inherit;False;35;nsign;1;0;OBJECT;;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.BreakToComponentsNode;13;-1739.684,1128.496;Inherit;False;FLOAT3;1;0;FLOAT3;0,0,0;False;16;FLOAT;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT;5;FLOAT;6;FLOAT;7;FLOAT;8;FLOAT;9;FLOAT;10;FLOAT;11;FLOAT;12;FLOAT;13;FLOAT;14;FLOAT;15\nNode;AmplifyShaderEditor.RangedFloatNode;111;-1771.743,1340.682;Inherit;False;Constant;_Float1;Float
    1;0;0;Create;True;0;0;False;0;False;1;0;0;0;0;1;FLOAT;0\nNode;AmplifyShaderEditor.GetLocalVarNode;78;-1312.061,891.1984;Inherit;False;77;tiling;1;0;OBJECT;;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.SwizzleNode;85;-988.6578,1312.133;Inherit;False;FLOAT2;0;2;2;3;1;0;FLOAT3;0,0,0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.SimpleMultiplyOpNode;19;-1379.8,1380.507;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;-1;False;1;FLOAT;0\nNode;AmplifyShaderEditor.SwizzleNode;89;-1004.781,1538.58;Inherit;False;FLOAT2;0;1;2;3;1;0;FLOAT3;0,0,0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.GetLocalVarNode;88;-1177.681,1504.78;Inherit;False;76;worldPos;1;0;OBJECT;;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.SimpleMultiplyOpNode;87;-937.1809,1408.58;Inherit;False;3;3;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;2;FLOAT2;0,0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.GetLocalVarNode;114;-794.7655,1223.036;Inherit;False;112;speedFlow;1;0;OBJECT;;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.GetLocalVarNode;84;-1203.839,1298.992;Inherit;False;76;worldPos;1;0;OBJECT;;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.GetLocalVarNode;82;-1258.044,1200.436;Inherit;False;77;tiling;1;0;OBJECT;;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.SimpleMultiplyOpNode;83;-904.8857,1175.797;Inherit;False;3;3;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;2;FLOAT2;0,0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.SimpleAddOpNode;110;-696.0282,1416.19;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.GetLocalVarNode;86;-1236.181,1418.98;Inherit;False;77;tiling;1;0;OBJECT;;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.RegisterLocalVarNode;39;-508.4004,1434.263;Inherit;False;uv3;-1;True;1;0;FLOAT2;0,0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.GetLocalVarNode;115;-792.7655,1507.036;Inherit;False;112;speedFlow;1;0;OBJECT;;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.SimpleAddOpNode;109;-641.8176,1149.306;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.RegisterLocalVarNode;38;-506.8525,1189.477;Inherit;False;uv2;-1;True;1;0;FLOAT2;0,0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.GetLocalVarNode;113;-857.3042,1074.665;Inherit;False;112;speedFlow;1;0;OBJECT;;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.FunctionOutput;0;-72.17307,254.7423;Inherit;False;True;-1;Output;0;False;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0\nWireConnection;69;0;66;0\nWireConnection;69;1;68;0\nWireConnection;68;0;67;0\nWireConnection;63;0;62;0\nWireConnection;74;0;72;0\nWireConnection;70;0;67;0\nWireConnection;75;0;74;0\nWireConnection;72;0;69;0\nWireConnection;72;2;70;0\nWireConnection;59;0;55;0\nWireConnection;59;2;60;0\nWireConnection;53;0;52;0\nWireConnection;53;1;54;0\nWireConnection;62;0;59;0\nWireConnection;60;0;56;0\nWireConnection;55;0;53;0\nWireConnection;55;1;57;0\nWireConnection;51;0;50;0\nWireConnection;25;0;27;0\nWireConnection;25;2;49;0\nWireConnection;27;0;24;0\nWireConnection;27;1;29;0\nWireConnection;50;0;25;0\nWireConnection;49;0;48;0\nWireConnection;66;0;64;0\nWireConnection;66;1;65;0\nWireConnection;23;0;20;0\nWireConnection;29;0;48;0\nWireConnection;92;0;91;0\nWireConnection;95;0;94;0\nWireConnection;95;1;92;1\nWireConnection;98;0;93;0\nWireConnection;98;1;95;0\nWireConnection;98;2;97;0\nWireConnection;99;0;98;0\nWireConnection;97;0;96;0\nWireConnection;97;1;92;2\nWireConnection;64;0;22;0\nWireConnection;52;0;21;0\nWireConnection;21;0;43;0\nWireConnection;21;1;44;0\nWireConnection;57;0;56;0\nWireConnection;24;0;23;0\nWireConnection;24;1;47;0\nWireConnection;37;0;100;0\nWireConnection;20;0;41;0\nWireConnection;20;1;42;0\nWireConnection;22;0;45;0\nWireConnection;22;1;46;0\nWireConnection;100;0;79;0\nWireConnection;100;1;113;0\nWireConnection;14;0;13;0\nWireConnection;14;1;111;0\nWireConnection;81;0;80;0\nWireConnection;101;0;107;0\nWireConnection;35;0;12;0\nWireConnection;12;0;31;0\nWireConnection;76;0;3;0\nWireConnection;30;0;4;0\nWireConnection;34;0;8;0\nWireConnection;107;0;103;0\nWireConnection;107;1;108;0\nWireConnection;8;0;7;0\nWireConnection;8;1;10;0\nWireConnection;9;0;7;0\nWireConnection;7;0;33;0\nWireConnection;40;0;1;0\nWireConnection;77;0;6;0\nWireConnection;106;0;104;0\nWireConnection;10;0;9;0\nWireConnection;10;1;9;1\nWireConnection;10;2;9;2\nWireConnection;10;3;11;0\nWireConnection;112;0;101;0\nWireConnection;17;0;19;0\nWireConnection;17;1;111;0\nWireConnection;79;0;78;0\nWireConnection;79;1;81;0\nWireConnection;79;2;14;0\nWireConnection;93;0;90;0\nWireConnection;93;1;92;0\nWireConnection;15;0;13;1\nWireConnection;15;1;111;0\nWireConnection;13;0;36;0\nWireConnection;85;0;84;0\nWireConnection;19;0;13;2\nWireConnection;89;0;88;0\nWireConnection;87;0;86;0\nWireConnection;87;1;89;0\nWireConnection;87;2;17;0\nWireConnection;83;0;82;0\nWireConnection;83;1;85;0\nWireConnection;83;2;15;0\nWireConnection;110;0;87;0\nWireConnection;110;1;115;0\nWireConnection;39;0;110;0\nWireConnection;109;0;83;0\nWireConnection;109;1;114;0\nWireConnection;38;0;109;0\nWireConnection;0;0;99;0\nASEEND*/\n//CHKSM=8097A46359FBC2AB608F3571266698FC82E76698"
  m_functionName: 
  m_description: 
  m_additionalIncludes:
    m_additionalIncludes: []
    m_outsideIncludes: []
  m_additionalPragmas:
    m_additionalPragmas: []
    m_outsidePragmas: []
  m_additionalDirectives:
    m_validData: 0
    m_isDirty: 0
    m_moduleName: ' Additional Directives'
    m_independentModule: 1
    m_additionalDirectives: []
    m_shaderFunctionDirectives: []
    m_nativeDirectives: []
    m_nativeDirectivesIndex: -1
    m_nativeDirectivesFoldout: 0
    m_directivesSaveItems: []
  m_nodeCategory: 3
  m_customNodeCategory: 
  m_previewPosition: 0
  m_hidden: 0

  然后配合着Matcap贴图,就能做出这个好像是粘稠液体在流动的效果:
在这里插入图片描述

  当然也可以用其他的Matcap贴图代替,会产生其他有趣的效果。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、颜色根据指定高度叠加

  接下来,需要混合液体效果和模型本身的贴图颜色。所以需要先做这样一个遮罩的效果:
在这里插入图片描述

  用ASE制作,大概是这样的:
在这里插入图片描述

  接下来,就是使用这个算出来的高度混合值,来叠加2种颜色了:
在这里插入图片描述

  这个很简单了,通过高度遮罩,就把两种颜色加起来:
在这里插入图片描述
在这里插入图片描述

3、计算顶点偏移

  这里和上面做颜色混合很像,也是做一个黑白的遮罩,但理论需要先理解一下:
  我们想达到的目的是,通过输入一个溶解的高度,当模型的实际顶点高度大于这个高度时,模型姿势不变,但所有顶点往下偏移溶解的高度。当模型的实际顶点高度小于指定高度时,这些顶点都会贴着地面。
大概的效果是这样的:
在这里插入图片描述

  实现了这一步之后,还有一个效果,如果人真的变成液体融化,那么应该在地面上会留下一滩水。为了实现这个效果,当刚才低于指定高度的点y轴往下移动之后,x和z两个轴,可以往法线方向,向往扩展一下:
在这里插入图片描述

连线的效果有点乱
在这里插入图片描述

  这样,整个效果就差不多了。最后,为了能让模型彻底的消失,再加了一个Alpha值来控制透明度:
在这里插入图片描述
在这里插入图片描述

  然后想做到视频里面的效果,可以通过自己k动画,把材质球里面的颜色混合高度值、溶解高度值和扩散值根据自己的需要的节奏k成动画。
最后给一下ASE生成的Shader代码,可以用ASE打开看看实际的连线:

// Made with Amplify Shader Editor
// Available at the Unity Asset Store - http://u3d.as/y3X 
Shader "azhao/DissolveModel"
{
    
    
	Properties
	{
    
    
		_mainTex("mainTex", 2D) = "white" {
    
    }
		_matcapTex("matcapTex", 2D) = "white" {
    
    }
		_normalTex("normalTex", 2D) = "white" {
    
    }
		_normalTiling("normalTiling", Vector) = (1,1,0,0)
		_speed("speed", Vector) = (0,0,0,0)
		_diffuseHeighVal("diffuseHeighVal", Float) = 0
		_mixMin("mixMin", Float) = 0
		_mixMax("mixMax", Float) = 1
		_dissolveHeight("dissolveHeight", Float) = 0
		_dissolveHeightOffset("dissolveHeightOffset", Float) = 0
		_dissolveScale("dissolveScale", Float) = 1
		_alpha("alpha", Range( 0 , 1)) = 0
		[HideInInspector] _texcoord( "", 2D ) = "white" {
    
    }
		[HideInInspector] __dirty( "", Int ) = 1
	}

	SubShader
	{
    
    
		Tags{
    
     "RenderType" = "Custom"  "Queue" = "Transparent+0" }
		Cull Back
		Blend SrcAlpha OneMinusSrcAlpha
		
		CGINCLUDE
		#include "UnityShaderVariables.cginc"
		#include "UnityPBSLighting.cginc"
		#include "Lighting.cginc"
		#pragma target 3.0
		#ifdef UNITY_PASS_SHADOWCASTER
			#undef INTERNAL_DATA
			#undef WorldReflectionVector
			#undef WorldNormalVector
			#define INTERNAL_DATA half3 internalSurfaceTtoW0; half3 internalSurfaceTtoW1; half3 internalSurfaceTtoW2;
			#define WorldReflectionVector(data,normal) reflect (data.worldRefl, half3(dot(data.internalSurfaceTtoW0,normal), dot(data.internalSurfaceTtoW1,normal), dot(data.internalSurfaceTtoW2,normal)))
			#define WorldNormalVector(data,normal) half3(dot(data.internalSurfaceTtoW0,normal), dot(data.internalSurfaceTtoW1,normal), dot(data.internalSurfaceTtoW2,normal))
		#endif
		struct Input
		{
    
    
			float2 uv_texcoord;
			float3 worldPos;
			float3 worldNormal;
			INTERNAL_DATA
		};

		uniform float _dissolveScale;
		uniform float _dissolveHeightOffset;
		uniform float _dissolveHeight;
		uniform sampler2D _mainTex;
		uniform float4 _mainTex_ST;
		uniform float _mixMin;
		uniform float _mixMax;
		uniform float _diffuseHeighVal;
		uniform sampler2D _matcapTex;
		uniform sampler2D _normalTex;
		uniform float2 _normalTiling;
		uniform float2 _speed;
		uniform float _alpha;

		void vertexDataFunc( inout appdata_full v, out Input o )
		{
    
    
			UNITY_INITIALIZE_OUTPUT( Input, o );
			float3 ase_vertex3Pos = v.vertex.xyz;
			float3 objToWorld140 = mul( unity_ObjectToWorld, float4( ase_vertex3Pos, 1 ) ).xyz;
			float3 ase_worldNormal = UnityObjectToWorldNormal( v.normal );
			float3 break167 = ( ase_worldNormal * _dissolveScale );
			float3 objToWorld141 = mul( unity_ObjectToWorld, float4( float3( 0,0,0 ), 1 ) ).xyz;
			float temp_output_142_0 = ( ( _dissolveHeightOffset + objToWorld140.y ) - objToWorld141.y );
			float4 appendResult164 = (float4(break167.x , -temp_output_142_0 , break167.z , 0.0));
			float temp_output_161_0 = step( ( temp_output_142_0 - _dissolveHeight ) , 0.0 );
			float3 appendResult162 = (float3(0.0 , -_dissolveHeight , 0.0));
			float3 appendResult148 = (float3(( ( appendResult164 * temp_output_161_0 ) + float4( ( ( 1.0 - temp_output_161_0 ) * appendResult162 ) , 0.0 ) ).xyz));
			float3 worldToObj153 = mul( unity_WorldToObject, float4( ( objToWorld140 + appendResult148 ), 1 ) ).xyz;
			float3 VertOffset170 = worldToObj153;
			v.vertex.xyz = VertOffset170;
			v.vertex.w = 1;
		}

		void surf( Input i , inout SurfaceOutputStandard o )
		{
    
    
			o.Normal = float3(0,0,1);
			float2 uv_mainTex = i.uv_texcoord * _mainTex_ST.xy + _mainTex_ST.zw;
			float4 mainTex3 = tex2D( _mainTex, uv_mainTex );
			float3 ase_worldPos = i.worldPos;
			float3 objToWorld45 = mul( unity_ObjectToWorld, float4( float3( 0,0,0 ), 1 ) ).xyz;
			float smoothstepResult59 = smoothstep( _mixMin , _mixMax , saturate( ( ( ase_worldPos.y - objToWorld45.y ) - _diffuseHeighVal ) ));
			float diffuseHeightVal51 = smoothstepResult59;
			float2 tiling77_g6 = _normalTiling;
			float3 worldPos76_g6 = ase_worldPos;
			float3 ase_worldNormal = WorldNormalVector( i, float3( 0, 0, 1 ) );
			float3 worldNormal30_g6 = ase_worldNormal;
			float3 nsign35_g6 = sign( worldNormal30_g6 );
			float3 break13_g6 = nsign35_g6;
			float2 appendResult14_g6 = (float2(break13_g6.x , 1.0));
			float2 speed106_g6 = _speed;
			float2 speedFlow112_g6 = frac( ( _Time.y * speed106_g6 ) );
			float2 uv137_g6 = ( ( tiling77_g6 * (worldPos76_g6).zy * appendResult14_g6 ) + speedFlow112_g6 );
			float3 appendResult25_g6 = (float3(( ( (UnpackNormal( tex2D( _normalTex, uv137_g6 ) )).xy * uv137_g6 ) + (worldNormal30_g6).zy ) , (worldNormal30_g6).x));
			float3 xNorm51_g6 = (appendResult25_g6).zyx;
			float3 temp_output_7_0_g6 = abs( worldNormal30_g6 );
			float3 break9_g6 = temp_output_7_0_g6;
			float3 projNormal34_g6 = ( temp_output_7_0_g6 / ( break9_g6.x + break9_g6.y + break9_g6.z + 1E-05 ) );
			float3 break92_g6 = projNormal34_g6;
			float2 appendResult15_g6 = (float2(break13_g6.y , 1.0));
			float2 uv238_g6 = ( ( tiling77_g6 * (worldPos76_g6).xz * appendResult15_g6 ) + speedFlow112_g6 );
			float3 appendResult59_g6 = (float3(( ( (UnpackNormal( tex2D( _normalTex, uv238_g6 ) )).xy * uv238_g6 ) + (worldNormal30_g6).xz ) , (worldNormal30_g6).y));
			float3 yNorm63_g6 = (appendResult59_g6).xzy;
			float2 appendResult17_g6 = (float2(( break13_g6.z * -1.0 ) , 1.0));
			float2 uv339_g6 = ( ( tiling77_g6 * (worldPos76_g6).xy * appendResult17_g6 ) + speedFlow112_g6 );
			float3 appendResult72_g6 = (float3(( ( (UnpackNormal( tex2D( _normalTex, uv339_g6 ) )).xy * uv339_g6 ) + (worldNormal30_g6).xy ) , (worldNormal30_g6).z));
			float3 zNorm75_g6 = (appendResult72_g6).xyz;
			float3 normalizeResult99_g6 = normalize( ( ( xNorm51_g6 * break92_g6.x ) + ( yNorm63_g6 * break92_g6.y ) + ( zNorm75_g6 * break92_g6.z ) ) );
			float3 normalTex26 = normalizeResult99_g6;
			float4 matcapVal10 = tex2D( _matcapTex, ( ( mul( UNITY_MATRIX_V, float4( (WorldNormalVector( i , normalTex26 )) , 0.0 ) ).xyz * 0.5 ) + 0.5 ).xy );
			float4 diffuseCol173 = ( ( mainTex3 * diffuseHeightVal51 ) + ( matcapVal10 * ( 1.0 - diffuseHeightVal51 ) ) );
			o.Albedo = diffuseCol173.rgb;
			o.Alpha = _alpha;
		}

		ENDCG
		CGPROGRAM
		#pragma surface surf Standard keepalpha fullforwardshadows vertex:vertexDataFunc 

		ENDCG
		Pass
		{
    
    
			Name "ShadowCaster"
			Tags{
    
     "LightMode" = "ShadowCaster" }
			ZWrite On
			CGPROGRAM
			#pragma vertex vert
			#pragma fragment frag
			#pragma target 3.0
			#pragma multi_compile_shadowcaster
			#pragma multi_compile UNITY_PASS_SHADOWCASTER
			#pragma skip_variants FOG_LINEAR FOG_EXP FOG_EXP2
			#include "HLSLSupport.cginc"
			#if ( SHADER_API_D3D11 || SHADER_API_GLCORE || SHADER_API_GLES || SHADER_API_GLES3 || SHADER_API_METAL || SHADER_API_VULKAN )
				#define CAN_SKIP_VPOS
			#endif
			#include "UnityCG.cginc"
			#include "Lighting.cginc"
			#include "UnityPBSLighting.cginc"
			sampler3D _DitherMaskLOD;
			struct v2f
			{
    
    
				V2F_SHADOW_CASTER;
				float2 customPack1 : TEXCOORD1;
				float4 tSpace0 : TEXCOORD2;
				float4 tSpace1 : TEXCOORD3;
				float4 tSpace2 : TEXCOORD4;
				UNITY_VERTEX_INPUT_INSTANCE_ID
				UNITY_VERTEX_OUTPUT_STEREO
			};
			v2f vert( appdata_full v )
			{
    
    
				v2f o;
				UNITY_SETUP_INSTANCE_ID( v );
				UNITY_INITIALIZE_OUTPUT( v2f, o );
				UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO( o );
				UNITY_TRANSFER_INSTANCE_ID( v, o );
				Input customInputData;
				vertexDataFunc( v, customInputData );
				float3 worldPos = mul( unity_ObjectToWorld, v.vertex ).xyz;
				half3 worldNormal = UnityObjectToWorldNormal( v.normal );
				half3 worldTangent = UnityObjectToWorldDir( v.tangent.xyz );
				half tangentSign = v.tangent.w * unity_WorldTransformParams.w;
				half3 worldBinormal = cross( worldNormal, worldTangent ) * tangentSign;
				o.tSpace0 = float4( worldTangent.x, worldBinormal.x, worldNormal.x, worldPos.x );
				o.tSpace1 = float4( worldTangent.y, worldBinormal.y, worldNormal.y, worldPos.y );
				o.tSpace2 = float4( worldTangent.z, worldBinormal.z, worldNormal.z, worldPos.z );
				o.customPack1.xy = customInputData.uv_texcoord;
				o.customPack1.xy = v.texcoord;
				TRANSFER_SHADOW_CASTER_NORMALOFFSET( o )
				return o;
			}
			half4 frag( v2f IN
			#if !defined( CAN_SKIP_VPOS )
			, UNITY_VPOS_TYPE vpos : VPOS
			#endif
			) : SV_Target
			{
    
    
				UNITY_SETUP_INSTANCE_ID( IN );
				Input surfIN;
				UNITY_INITIALIZE_OUTPUT( Input, surfIN );
				surfIN.uv_texcoord = IN.customPack1.xy;
				float3 worldPos = float3( IN.tSpace0.w, IN.tSpace1.w, IN.tSpace2.w );
				half3 worldViewDir = normalize( UnityWorldSpaceViewDir( worldPos ) );
				surfIN.worldPos = worldPos;
				surfIN.worldNormal = float3( IN.tSpace0.z, IN.tSpace1.z, IN.tSpace2.z );
				surfIN.internalSurfaceTtoW0 = IN.tSpace0.xyz;
				surfIN.internalSurfaceTtoW1 = IN.tSpace1.xyz;
				surfIN.internalSurfaceTtoW2 = IN.tSpace2.xyz;
				SurfaceOutputStandard o;
				UNITY_INITIALIZE_OUTPUT( SurfaceOutputStandard, o )
				surf( surfIN, o );
				#if defined( CAN_SKIP_VPOS )
				float2 vpos = IN.pos;
				#endif
				half alphaRef = tex3D( _DitherMaskLOD, float3( vpos.xy * 0.25, o.Alpha * 0.9375 ) ).a;
				clip( alphaRef - 0.01 );
				SHADOW_CASTER_FRAGMENT( IN )
			}
			ENDCG
		}
	}
	Fallback "Diffuse"
	CustomEditor "ASEMaterialInspector"
}
/*ASEBEGIN
Version=18500
0;0;1920;1019;3785.158;1675.204;3.073583;True;True
Node;AmplifyShaderEditor.CommentaryNode;42;-2377.211,-777.4595;Inherit;False;1032.628;569.8104;Comment;5;29;30;38;41;26;normalTex;1,1,1,1;0;0
Node;AmplifyShaderEditor.CommentaryNode;172;-2312.722,561.5933;Inherit;False;2211.799;690.3837;Comment;25;120;143;141;142;148;137;108;154;162;144;138;161;157;140;165;163;166;155;164;167;145;152;156;153;170;VertOffset;1,1,1,1;0;0
Node;AmplifyShaderEditor.TexturePropertyNode;29;-2247.761,-727.459;Inherit;True;Property;_normalTex;normalTex;3;0;Create;True;0;0;False;0;False;0a488bf3e20c0764d8608e1a38f8c4e3;0a488bf3e20c0764d8608e1a38f8c4e3;False;white;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1
Node;AmplifyShaderEditor.Vector2Node;30;-2327.209,-514.6487;Inherit;True;Property;_normalTiling;normalTiling;4;0;Create;True;0;0;False;0;False;1,1;3,3;0;3;FLOAT2;0;FLOAT;1;FLOAT;2
Node;AmplifyShaderEditor.Vector2Node;38;-2082.346,-414.1407;Inherit;False;Property;_speed;speed;5;0;Create;True;0;0;False;0;False;0,0;0,1;0;3;FLOAT2;0;FLOAT;1;FLOAT;2
Node;AmplifyShaderEditor.FunctionNode;41;-1882.972,-602.7961;Inherit;True;TriplanarFlow;-1;;6;e1c873795ceff3a4692bf3c6a93db8c6;0;3;1;SAMPLER2D;;False;6;FLOAT2;0,0;False;104;FLOAT2;0,0;False;1;FLOAT3;0
Node;AmplifyShaderEditor.PosVertexDataNode;137;-2262.723,616.6113;Inherit;False;0;0;5;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.CommentaryNode;43;-2439.397,-100.4705;Inherit;False;1510.998;410.4601;Comment;9;10;9;20;19;22;21;8;6;31;matcapVal;1,1,1,1;0;0
Node;AmplifyShaderEditor.TransformPositionNode;140;-2063.78,611.5933;Inherit;False;Object;World;False;Fast;True;1;0;FLOAT3;0,0,0;False;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3
Node;AmplifyShaderEditor.RangedFloatNode;120;-2111.325,803.6682;Inherit;False;Property;_dissolveHeightOffset;dissolveHeightOffset;10;0;Create;True;0;0;False;0;False;0;1.3;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.CommentaryNode;52;-1214.838,-1153.903;Inherit;False;1049.112;444.5828;Comment;10;61;60;51;59;50;48;49;47;45;46;diffuseHeightVal;1,1,1,1;0;0
Node;AmplifyShaderEditor.RegisterLocalVarNode;26;-1568.58,-559.6422;Inherit;False;normalTex;-1;True;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0
Node;AmplifyShaderEditor.SimpleAddOpNode;143;-1862.079,781.8023;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.TransformPositionNode;141;-2072.948,932.7065;Inherit;False;Object;World;False;Fast;True;1;0;FLOAT3;0,0,0;False;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3
Node;AmplifyShaderEditor.WorldPosInputsNode;46;-1148.839,-1103.903;Inherit;False;0;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3
Node;AmplifyShaderEditor.TransformPositionNode;45;-1149.691,-950.597;Inherit;False;Object;World;False;Fast;True;1;0;FLOAT3;0,0,0;False;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3
Node;AmplifyShaderEditor.GetLocalVarNode;31;-2389.397,83.32794;Inherit;False;26;normalTex;1;0;OBJECT;;False;1;FLOAT3;0
Node;AmplifyShaderEditor.SimpleSubtractOpNode;47;-939.9971,-1081.558;Inherit;False;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleSubtractOpNode;142;-1829.998,898.0645;Inherit;False;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.RangedFloatNode;165;-1625.351,927.3282;Inherit;False;Property;_dissolveScale;dissolveScale;11;0;Create;True;0;0;False;0;False;1;0.25;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.RangedFloatNode;108;-1870.071,1135.977;Inherit;False;Property;_dissolveHeight;dissolveHeight;9;0;Create;True;0;0;False;0;False;0;2;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.WorldNormalVector;6;-2144.5,103.3591;Inherit;False;False;1;0;FLOAT3;0,0,1;False;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3
Node;AmplifyShaderEditor.RangedFloatNode;49;-923.0186,-958.3903;Inherit;False;Property;_diffuseHeighVal;diffuseHeighVal;6;0;Create;True;0;0;False;0;False;0;0.14;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.ViewMatrixNode;21;-2130.97,7.539061;Inherit;False;0;1;FLOAT4x4;0
Node;AmplifyShaderEditor.WorldNormalVector;163;-1672.345,786.781;Inherit;False;False;1;0;FLOAT3;0,0,1;False;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3
Node;AmplifyShaderEditor.SimpleSubtractOpNode;48;-781.103,-1090.166;Inherit;False;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;8;-1950.794,66.99679;Inherit;False;2;2;0;FLOAT4x4;0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1;False;1;FLOAT3;0,0,0;False;1;FLOAT3;0
Node;AmplifyShaderEditor.RangedFloatNode;22;-1920.272,218.9157;Inherit;False;Constant;_Float0;Float 0;2;0;Create;True;0;0;False;0;False;0.5;0;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleSubtractOpNode;138;-1699.051,1002.605;Inherit;False;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;166;-1498.958,800.004;Inherit;False;2;2;0;FLOAT3;0,0,0;False;1;FLOAT;0;False;1;FLOAT3;0
Node;AmplifyShaderEditor.BreakToComponentsNode;167;-1365.969,783.1866;Inherit;False;FLOAT3;1;0;FLOAT3;0,0,0;False;16;FLOAT;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT;5;FLOAT;6;FLOAT;7;FLOAT;8;FLOAT;9;FLOAT;10;FLOAT;11;FLOAT;12;FLOAT;13;FLOAT;14;FLOAT;15
Node;AmplifyShaderEditor.SaturateNode;50;-637.3796,-1061.852;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.NegateNode;157;-1710.294,717.1193;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;19;-1792.795,68.69323;Inherit;False;2;2;0;FLOAT3;0,0,0;False;1;FLOAT;0.5;False;1;FLOAT3;0
Node;AmplifyShaderEditor.NegateNode;154;-1357.984,1100.612;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.RangedFloatNode;60;-725.4614,-924.9797;Inherit;False;Property;_mixMin;mixMin;7;0;Create;True;0;0;False;0;False;0;0;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.StepOpNode;161;-1399.481,982.7272;Inherit;False;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.RangedFloatNode;61;-715.8416,-814.1805;Inherit;False;Property;_mixMax;mixMax;8;0;Create;True;0;0;False;0;False;1;0.35;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.OneMinusNode;145;-1167.629,968.9145;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.DynamicAppendNode;164;-1136.987,714.1816;Inherit;False;FLOAT4;4;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT4;0
Node;AmplifyShaderEditor.SmoothstepOpNode;59;-541.8926,-925.6076;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;1;FLOAT;0
Node;AmplifyShaderEditor.CommentaryNode;44;-2374.764,-1169.762;Inherit;False;664.7621;280;Comment;2;1;3;mainTex;1,1,1,1;0;0
Node;AmplifyShaderEditor.DynamicAppendNode;162;-1154.305,1091.471;Inherit;False;FLOAT3;4;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT3;0
Node;AmplifyShaderEditor.SimpleAddOpNode;20;-1619.24,135.3327;Inherit;False;2;2;0;FLOAT3;0,0,0;False;1;FLOAT;0.5;False;1;FLOAT3;0
Node;AmplifyShaderEditor.RegisterLocalVarNode;51;-388.5057,-1001.969;Inherit;False;diffuseHeightVal;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.CommentaryNode;175;-949.2002,-470.9775;Inherit;False;999.6061;387.5603;Comment;8;53;55;4;11;54;56;57;173;diffuseCol;1,1,1,1;0;0
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;155;-996.6111,808.9663;Inherit;False;2;2;0;FLOAT4;0,0,0,0;False;1;FLOAT;0;False;1;FLOAT4;0
Node;AmplifyShaderEditor.SamplerNode;9;-1469.485,78.94892;Inherit;True;Property;_matcapTex;matcapTex;2;0;Create;True;0;0;False;0;False;-1;None;2d3c6062971503a40842af03c4b99408;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;144;-953.7468,998.0334;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT3;0,0,0;False;1;FLOAT3;0
Node;AmplifyShaderEditor.SamplerNode;1;-2324.764,-1119.762;Inherit;True;Property;_mainTex;mainTex;1;0;Create;True;0;0;False;0;False;-1;None;8293059b819fbd34983493640ff4b930;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.SimpleAddOpNode;156;-866.9971,831.1722;Inherit;False;2;2;0;FLOAT4;0,0,0,0;False;1;FLOAT3;0,0,0;False;1;FLOAT4;0
Node;AmplifyShaderEditor.RegisterLocalVarNode;3;-1934.002,-1078.238;Inherit;False;mainTex;-1;True;1;0;COLOR;0,0,0,0;False;1;COLOR;0
Node;AmplifyShaderEditor.GetLocalVarNode;53;-866.2,-310.417;Inherit;False;51;diffuseHeightVal;1;0;OBJECT;;False;1;FLOAT;0
Node;AmplifyShaderEditor.RegisterLocalVarNode;10;-1139.86,83.85332;Inherit;False;matcapVal;-1;True;1;0;COLOR;0,0,0,0;False;1;COLOR;0
Node;AmplifyShaderEditor.DynamicAppendNode;148;-749.2974,768.397;Inherit;False;FLOAT3;4;0;FLOAT3;0,0,0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT3;0
Node;AmplifyShaderEditor.GetLocalVarNode;11;-804.022,-208.3274;Inherit;False;10;matcapVal;1;0;OBJECT;;False;1;COLOR;0
Node;AmplifyShaderEditor.GetLocalVarNode;4;-772.384,-420.9773;Inherit;False;3;mainTex;1;0;OBJECT;;False;1;COLOR;0
Node;AmplifyShaderEditor.OneMinusNode;55;-628.2,-272.4169;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleAddOpNode;152;-729.2341,628.0349;Inherit;False;2;2;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;1;FLOAT3;0
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;54;-507.2004,-394.417;Inherit;False;2;2;0;COLOR;0,0,0,0;False;1;FLOAT;0;False;1;COLOR;0
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;56;-496.2006,-223.417;Inherit;False;2;2;0;COLOR;0,0,0,0;False;1;FLOAT;0;False;1;COLOR;0
Node;AmplifyShaderEditor.TransformPositionNode;153;-587.707,621.7188;Inherit;False;World;Object;False;Fast;True;1;0;FLOAT3;0,0,0;False;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3
Node;AmplifyShaderEditor.SimpleAddOpNode;57;-361.2006,-305.417;Inherit;False;2;2;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
Node;AmplifyShaderEditor.RegisterLocalVarNode;173;-207.5948,-296.1572;Inherit;False;diffuseCol;-1;True;1;0;COLOR;0,0,0,0;False;1;COLOR;0
Node;AmplifyShaderEditor.RegisterLocalVarNode;170;-324.9237,661.5059;Inherit;False;VertOffset;-1;True;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0
Node;AmplifyShaderEditor.GetLocalVarNode;171;235.7219,274.6499;Inherit;False;170;VertOffset;1;0;OBJECT;;False;1;FLOAT3;0
Node;AmplifyShaderEditor.GetLocalVarNode;174;266.88,-16.33123;Inherit;False;173;diffuseCol;1;0;OBJECT;;False;1;COLOR;0
Node;AmplifyShaderEditor.RangedFloatNode;168;145.1225,152.0756;Inherit;False;Property;_alpha;alpha;12;0;Create;True;0;0;False;0;False;0;1;0;1;0;1;FLOAT;0
Node;AmplifyShaderEditor.StandardSurfaceOutputNode;0;513.7097,-21.7596;Float;False;True;-1;2;ASEMaterialInspector;0;0;Standard;Ronghua;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;Back;0;False;-1;0;False;-1;False;0;False;-1;0;False;-1;False;0;Custom;0.5;True;True;0;True;Custom;;Transparent;All;14;all;True;True;True;True;0;False;-1;False;0;False;-1;255;False;-1;255;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;-1;False;2;15;10;25;False;0.5;True;2;5;False;-1;10;False;-1;0;0;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;0;0,0,0,0;VertexOffset;True;False;Cylindrical;False;Absolute;0;;0;-1;-1;-1;0;False;0;0;False;-1;-1;0;False;-1;0;0;0;False;0.1;False;-1;0;False;-1;False;16;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;2;FLOAT3;0,0,0;False;3;FLOAT;0;False;4;FLOAT;0;False;5;FLOAT;0;False;6;FLOAT3;0,0,0;False;7;FLOAT3;0,0,0;False;8;FLOAT;0;False;9;FLOAT;0;False;10;FLOAT;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
WireConnection;41;1;29;0
WireConnection;41;6;30;0
WireConnection;41;104;38;0
WireConnection;140;0;137;0
WireConnection;26;0;41;0
WireConnection;143;0;120;0
WireConnection;143;1;140;2
WireConnection;47;0;46;2
WireConnection;47;1;45;2
WireConnection;142;0;143;0
WireConnection;142;1;141;2
WireConnection;6;0;31;0
WireConnection;48;0;47;0
WireConnection;48;1;49;0
WireConnection;8;0;21;0
WireConnection;8;1;6;0
WireConnection;138;0;142;0
WireConnection;138;1;108;0
WireConnection;166;0;163;0
WireConnection;166;1;165;0
WireConnection;167;0;166;0
WireConnection;50;0;48;0
WireConnection;157;0;142;0
WireConnection;19;0;8;0
WireConnection;19;1;22;0
WireConnection;154;0;108;0
WireConnection;161;0;138;0
WireConnection;145;0;161;0
WireConnection;164;0;167;0
WireConnection;164;1;157;0
WireConnection;164;2;167;2
WireConnection;59;0;50;0
WireConnection;59;1;60;0
WireConnection;59;2;61;0
WireConnection;162;1;154;0
WireConnection;20;0;19;0
WireConnection;20;1;22;0
WireConnection;51;0;59;0
WireConnection;155;0;164;0
WireConnection;155;1;161;0
WireConnection;9;1;20;0
WireConnection;144;0;145;0
WireConnection;144;1;162;0
WireConnection;156;0;155;0
WireConnection;156;1;144;0
WireConnection;3;0;1;0
WireConnection;10;0;9;0
WireConnection;148;0;156;0
WireConnection;55;0;53;0
WireConnection;152;0;140;0
WireConnection;152;1;148;0
WireConnection;54;0;4;0
WireConnection;54;1;53;0
WireConnection;56;0;11;0
WireConnection;56;1;55;0
WireConnection;153;0;152;0
WireConnection;57;0;54;0
WireConnection;57;1;56;0
WireConnection;173;0;57;0
WireConnection;170;0;153;0
WireConnection;0;0;174;0
WireConnection;0;9;168;0
WireConnection;0;11;171;0
ASEEND*/
//CHKSM=291D7A3EDEBF73D7ECE95EE1236D1B9BA5C62945

猜你喜欢

转载自blog.csdn.net/liweizhao/article/details/134890755