Unity-ShaderGraph制作2D动画精灵发光

  • 项目设置
  • 准备素材
  • 编写ShaderGraph
  • 总结


项目设置

普通的2D工程,在PackManager上下载Universal RP这样能安装URP的所有包。

由于是2D项目,没有设置管线渲染素材所以我们要告诉Unity使用URP渲染2D图形。

Create->Rendering->URP->pipeline asset这样会创建两个素材

一个是管线默认的渲染器如下图:

unity 动态环境光 unity灯光动画_项目设置


RendererList中默认的是渲染3D图形的我们要把他改成渲染2D图形的render所以

Create->Rendering->URP->2D Renderer

把创建出来的2D Renderer拖到RendererList中

Edit->ProjectSettings 把新建的pipeline asset拖入这里

unity 动态环境光 unity灯光动画_unity_02

准备素材

为了添加发光特效需要使用Bloom,为了能看到效果首先需要在摄像机上启用他
找到我们场景中Camera Rendering 勾选post processing
为了确保可以使用HDR值来告诉Bloom要处理什么所以我们创建的pipeline asset 中HDR勾选上
然后在场景中创建一个Global Volume在他上面添加一个Bloom

需要在玩家身上添加一个2D点光源 为了和bloom后期处理效果符合得到发光效果

unity 动态环境光 unity灯光动画_unity_03


使用的大概是这样的素材

unity 动态环境光 unity灯光动画_贴图_04


所以我们需要一张自发光贴图去让素材的一些部分发光 所以使用PhotoShop制作下自发光贴图

把攻击和项链设置成不同的透明度加以区分

unity 动态环境光 unity灯光动画_unity 动态环境光_05


注意导入的时候要把这个纹理贴图的类型改成Default

接着到SpriteEditor中为这个图集添加上面的纹理

unity 动态环境光 unity灯光动画_项目设置_06

编写ShaderGraph

创建一个Unit ShaderGraph 创建材质 添加到游戏中的玩家身上

unity 动态环境光 unity灯光动画_unity_07

这样的效果能适应图集上有的所有动画,非常神奇

unity 动态环境光 unity灯光动画_点光源_08

总结

制作一张需要发光部分的次级纹理,与一个颜色节点相乘后相加到原来的图集上,使用点光源 配合Bloom实现发光的效果。