Unity Shader Graph 3D 实例 - 一个简单的高亮能量Buff

目录
创建一个Shader Graph文件
构造Shader Graph节点
前言
在Unity Shader Graph中,实现高亮的能量Buff效果可以为游戏增添动态的视觉冲击力。通过结合物体坐标和Shader Graph的强大功能,我们可以为角色或物体创建炫酷的高亮效果,突出显示能量状态或特殊Buff效果。本篇博客将带领大家实现一个基于物体坐标的能量高亮Buff,介绍如何在Shader Graph中利用节点控制物体的高亮效果,帮助开发者提升游戏视觉效果和玩家体验。
创建一个Shader Graph文件
在Project视图里点击鼠标右键,选择Shader Graph/URP/Lit Shader Graph,创建第一个Shader Graph文件,命名为Buff。

创建一个对应的材质球命名为M_Buff,使用Buff的Shader。


构造Shader Graph节点
我们的目标是实现一个从模型的脚部到全身填充的一个高亮能量Buff,那么我们需要用到的数据可以提前在脑袋里面构思一下。从下往上,会用到的是Y轴的坐标,又因为是基于模型的,那么这个坐标则应该是游戏物体坐标,这里就会用到一个Position的节点,并设置其坐标空间为Object即游戏物体。

然后需要用到的是Y轴的坐标,因此可以将这个Position输出的值做一个拆分,使用Split节点,然后取G值(对应的Y值)。

创建一个float类型的变量命名为FillAmount,将其Remap一下(最小值最大值做一个区间变换,从0到1变换到-0.5到1.2,可以理解为坐标分正负),然后接入到一个Step节点(筛选节点,输入的值比Edge小为1,比Edge大为0)。这就有了最基础的从小往上的填充效果。

新建一个Color变量命名为BuffColor,将填充效果的数据与其相乘就可以获得带颜色的填充效果,因为需要一个高亮效果,因此可以将颜色的模式设置为HDR,通过后期效果增加光晕效果。将带颜色的填充效果数据叠加到原来的贴图数据上,将叠加后的数据给到Fragment节点的Base Color。这样就可以获得有Buff填充的效果了。

将材质球给到我们的模型上,然后先动态调整FillAmount这个值,就可以看到有一个初步的填充效果了。

给颜色调整下Intensity来获得具备能量感的高亮的效果。
当然我们还可以随意的调整Buff的颜色,来获得我们所需要的目标,例如不同颜色的Buff有不同的作用。
