element3ds.com
原创TA-Shader [Unity] 尝试用Niagara复现劈砍类型刀光(一)
发布于
2021-10-2
2252
7
原创TA/Shader
Shader信息:
Shader类型: 特效 
工程信息: 仅展示 
使用的版本管线: -

您需要 登录 才可以下载或查看,没有账号?注册

x
这是我的一个学习记录贴,我现在把它给搬运到微元素,希望个位大佬不吝指教。
整个刀光分为三部分,刀光主体,火星,火焰

刀光主体
  • 材质
材质的话分为三部分,Dissolve(溶解),Emissive(自发光)以及一个Mask,这三部分的主体 都差不多。
1.Dissolve的制作
v2-2c57e56a6e5d0a7cd8435e769dc959fe_720w.jpg
2.Emissive的制作
v2-ec467ce1ed49ce3975dbe18b838bcffe_720w.jpg
3.Mask的制作

4.整合
这里说一下上图中的两个lerp,两个lerp都是为了发光图服务的,Emissive后面的lerp是为了让发光图黑白过渡更柔和,Mask后的lerp是为了保证流光往刀光边缘流动。
母材质我们这里完成了,现在就需要初步调整优化下实例材质。
PS:关于特效的基本材质,网上的教程其实很多了,材质模板就那些,当然,特效好不好看,还是需要看贴图和模型UV搞得好不好,因为我现在是学习阶段,所以贴图这些我基本还是用的素材,所以平时多收集素材也是很有用的(特别是在做项目中),素材还是需要会自己做最好。
材质这里我们基本搞定了,那么接下来就直接创Niagara。

  • Niagara
一般来说,我们做刀光主体最基本都需要两层,及暗与亮,需要一层做暗底,一层做主体亮。
我们先做暗底
先上做好的









先创建一个Empty Emitter
这里需要把Sprite Renderer换成Mesh Renderer,把材质和模型搞进去
模型就是标准的刀光模型

我们需要先把这个EmptyEmitter默认的属性给调整下,有哪些属性需要调整了?
Emitter State(发射器的状态),Initialize Particle(初始化粒子),Particle State(粒子状态)
Emitter State(发射器的状态)
PS:这里贴一下state的属性翻译
Initialize Particle(初始化粒子)
这个就不去翻译了
Particle State(粒子状态),这个默认就是。

默认的状态属性设置完毕,现在需要让刀光显示出来,就需要在EmitterUpdata添加
SpawnBurstInstantaneous(瞬间爆发),因为刀光是一个,所以我们数量就直接输1就行了。









但是现在刀光的显示还是那么生硬,我们需要让它的出现与消失更顺滑,所以就需要在ParticleUpdata加ScaleColor,改下ScaleAlpha。
现在看起来刀光暗底出现与消失就比较平滑了。那么我们就来着最后一步,让刀光动起来。这就需要我们用到材质里面的动态参数。
这里我们就直接去ParticleUpdata添加一个DynamicMaterialParamerters
这里我们需要调节一个溶解属性,一个mask在U方向的偏移就行了。
那么这个暗底的效果就出来了。









刀光的暗底出来后,我们做亮的部分就比较容易了。还是先从材质入手,我们现在需要添加一组扭曲贴图进去。
先看下我们需要实现的刀光亮的效果
我们并不是把亮体现在边缘,因为本身我们这个刀光比较粗狂,放在边缘也体现不出来锋利的效果,所以就让这个光亮在周身流动。

材质添加了一个Distortion(扭曲效果),正常的扭曲材质
然后在这里加了一个用Emissive贴图的一个通道做Alpha
这里需要做一个反向,我们现在不需要边缘亮,让刀光中心区域亮。
然后看下实例材质
实例材质就主要把Emissiv贴图换成这种类似水波焦散的贴图。
那么现在的材质的效果就应该是这样的,
现在大体都有效果了。
我们把暗底Emitter复制一份,把材质给替换掉,其他的不变,按自己需要调整Dynamic中Distortion和Dissolve。
到此我们已经把这个刀光主体给复现了。

这里总结一下,其实整个主体刀光的材质,Niagara系统里的调整都比较少,最主要还是贴图效果好。


刀光自身火星制作
我们现在把刀光主体给弄好了,现在就需要进行一些点缀,那现在就来讲讲火星的做法。

材质这里就不多说了,就是普通的火星材质。
这里火星应该是沿着刀光轨迹喷射出去,这里需要两层,表现效果应该是轨迹过后类似被烧掉的纸屑飘动,然后还有一层向外直接喷射的火星,表现的力道更大。
我们这里直接复制前面刀光主体的Emitter,把Render模型改为Sprite,添加火星材质,删除掉动态材质模块,把spawnburst改为spawnrate(比率)
因为火星不是一颗两颗,他是有许多的,所以我们把SpawnRate改为RandomRangeFloat(随机范围浮动)
然后对于InitializeParticle进行一个初始设置
然后我们需要在ParticleSpawn添加一个ToursLocation。
然后得到的效果就是这样的
PS:这里说一下TorusLocation这个参数,他有三种形态,圆环,环面,环形螺旋。参数可以去试试,有许多意想不到的效果。

这里我们需要把前面刀光主体显示,方便火星匹配刀光。
这里看到火星太大了,所以我们需要添加ScaleSpriteSize来改变粒子大小适配刀光。
现在这个大小应该比较合适了。
现在我们需要对刀光周围的火星粒子添加一个速递,但是在添加速度前,我们需要应用一个初始的力,ApplyInitialForces,默认属性就行。
现在我们需要在ParticaleUpdate中添加SolveForcesAndVelocity。那么速度和力的先决条件都已经满足了,我们就可以让粒子像火星那样动起来了。
PS:只有在ParticleSpawn添加了ApplyInitialForce才能添加其他的速度。只有在ParticleUpdate中添加SolveForcesAndVelocity才能添加其他力。

那么现在我们可以在ParticaleSpawn添加一个AddVelocityFromPoint,速度的强度稍微给小一点。









这就是火星的一个雏形,当然火星还有变化了,那么就等下一趴了吧。
还有,好的特效都是多次迭代打磨出来的,但是当能力不够时,多花的时间在不会的效果表现上,不仅会打击自己,还浪费时间,所以还是要懂得多充电,先抄作业、要总结,然后总结形成自己的体系,多看别人怎么做,看多了,提升审美。这就是我现在走的路,也相信自己一定会走上特效这个职位的。

本帖被以下画板推荐:

还没有设置签名!您可以在此展示你的链接,或者个人主页!

使用道具 举报 登录

回复 <
Teny  发表于 2021-10-2 23:42:21  
2#
谢谢楼主分享!!!
回复 收起回复
使用道具
水木神川  发表于 2021-10-3 00:57:32  
3#
谢谢楼主分享
回复 收起回复
使用道具
giantpanda  发表于 2021-10-3 21:46:45  
4#
感谢楼主分享!
回复 收起回复
使用道具
神佛之上  发表于 2022-11-22 23:45:21  
5#
给力!元素有你更精彩
回复 收起回复
使用道具

快来发表你宝贵的意见吧!

一只秋田 实名

通过了实名认证的内容创造者

  

主题
2
精华
1
超神
0
扩散
0
微金
913
智慧
49
余额
0
在线时间
1231 小时

彗星钛晶矿 短杖 学徒法袍 无色原始矿 绿母翠晶矿 长枪 阿尔法晶矿 长剑 怀特紫星矿 火元素

快速回复 返回顶部 返回列表