Unity-ShaderGraph制作2D动画精灵发光
- 项目设置
- 准备素材
- 编写ShaderGraph
- 总结
项目设置
普通的2D工程,在PackManager上下载Universal RP这样能安装URP的所有包。
由于是2D项目,没有设置管线渲染素材所以我们要告诉Unity使用URP渲染2D图形。
Create->Rendering->URP->pipeline asset这样会创建两个素材
一个是管线默认的渲染器如下图:
RendererList中默认的是渲染3D图形的我们要把他改成渲染2D图形的render所以
Create->Rendering->URP->2D Renderer
把创建出来的2D Renderer拖到RendererList中
Edit->ProjectSettings 把新建的pipeline asset拖入这里
准备素材
为了添加发光特效需要使用Bloom,为了能看到效果首先需要在摄像机上启用他
找到我们场景中Camera Rendering 勾选post processing
为了确保可以使用HDR值来告诉Bloom要处理什么所以我们创建的pipeline asset 中HDR勾选上
然后在场景中创建一个Global Volume在他上面添加一个Bloom
需要在玩家身上添加一个2D点光源 为了和bloom后期处理效果符合得到发光效果
使用的大概是这样的素材
所以我们需要一张自发光贴图去让素材的一些部分发光 所以使用PhotoShop制作下自发光贴图
把攻击和项链设置成不同的透明度加以区分
注意导入的时候要把这个纹理贴图的类型改成Default
接着到SpriteEditor中为这个图集添加上面的纹理
编写ShaderGraph
创建一个Unit ShaderGraph 创建材质 添加到游戏中的玩家身上
这样的效果能适应图集上有的所有动画,非常神奇
总结
制作一张需要发光部分的次级纹理,与一个颜色节点相乘后相加到原来的图集上,使用点光源 配合Bloom实现发光的效果。