Unity学习笔记 vol.93 VFX Graph 武器特效
https://www.youtube.com/watch?v=H5QZhChfa1I
创建项目,在Package Manager中添加Shader Graph和Visual Effect Graph,在Preferences的Visual Effects中勾选 Experimental Operators/Blocks,

在AssetStore下载武器包sciFantasySwordPack,创建PBR Graph,命名为MeshEffectTut_PBR,打开它

在MainPreview中选择模型,RB_Gladius

添加两个参数,一个HDR的颜色,选择白色,一个Texture 2D,素材选择武器

照下图连接起来

再创建两个参数,一个Vector1,给个0.5,一个Texture2D,Texture2D的纹理选择武器的Metallic纹理。

还可以增加一个Smoothness的参数,选择0.5。然后将它们设置为一个组。

接下来,给武器的外表增加一层变化。
添加三个变量,一个HDR颜色,设置为紫色,增加亮度,命名为GradientNoiseColor,两个Vector1,命名为GradientNoiseScale和GradientNoisePower,设置为15和5。

再从左到右,添加GradientNoise,Clamp,Power,Multiply,Add按上图相连,将add的输入到Emission节点。
再增加GradientNoiseSpeed的Vector2的参数,设置为(0,0.2),增加Time,Multiply,add节点,按下图相连。

我们不想将流动的变动应用到整个武器,需要设置一层Mask,增加Texture2D参数和一个Sample Texture2D的节点,连接到Multiply节点上

再添加NoiseSpeed和NoiseScale两个参数,连接按下图

最后再添加Fresnel节点,增加FresnelPower和FresnelColor两个参数,连接按下图

保存下图,在PS中将白色和边框删除掉,保存为Smoke.png,保留Alpha通道

在项目中创建VFX,命名为SwordVFX_tut,将其拖到武器层级下


按下图设置,将RealisticSmoke02_6x6设置为主纹理,6x6大小,uv mode设置为Flipbook Blend

设置为Set Size的属性,将Random设置为Uniform

设置A和B分别为0.4和0.8,再增加Add Text Index over Life,

调整曲线,设置value为35

再增加一个color参数SmokeColor和一个块Multiply Color over Life,将块的属性Composition设置为Multiply,SmokeColor的颜色就会显现出来

Multiply Color over Life的颜色设置如下图

删除下图这个块

增加Set Position块,设置Size和Center,这个参数是灵活,根据自已项目需要。

设置Rate和Capatity按下图

增加Set Angle.XYZ,设置 Random为Uniform

按下图设置

将整个模块复制一份

将UVmode设置为Default,将MainTexture设置为默认粒子,增加一个粒子颜色,将它替换原来的烟颜色,修改Set Size Random的参数

在复制的UpdateParticle增加SetPosition块,再在外面增加三个节点,按下图设置

再修改InitializeParticle,增加Set Velocity,将Random设置为Uniform,适当修改下面参数

增加Trigger Event Rate,设置Rate为20

再在右侧添加节点Simple Heads & Trails

将下图红框中的块删除

按下面连接起来

按下图,给新的InitializeParticleStrip添加三个块,删除UpdateParticleStrip中的块

按下图设置

再适当修改一下参数



看看能不能达到你想要的效果
