跑步如何调整呼吸
unity脚本控制逐渐消失_Unityshader消融特效——(1)逻辑
节点篇
在游戏⾥我们经常会看到:怪物死亡之后通常不是瞬间消失,⽽是从模型的某⼀位置开始消失,最后蔓延⾄全⾝,有点类似于燃烧,这种现象叫做消融(Dissolve)。
本篇主要讲解消融特效的实现逻辑。使⽤Unity的Amplify Shader Editor进⾏节点连接。⽽下⼀篇会将逻辑写成真正的shader代码。
下⾯先展⽰⼀下⼤概的预览效果:效果预览
简单逻辑
消融的效果主要利⽤了shader⾥的裁切(Clip)功能,在Amplify⾥叫做Opacity Mask。⽐如裁切值为0,那么只有当数值⼤于0,像素才会被渲染出来,否则会被剔除。
⼀张灰度图的像素值在0~255之间,转换到程序⾥也就是0~1之间。0是⿊⾊,1是⽩⾊。
假如有⼀张Noi灰度贴图,最开始我加上⼀个数值v=1,那么所有像素值都是⽩⾊。如果我逐渐把v减
少,像素的数值也会逐渐减少。当v=0的时候,贴图恢复到原始样貌。我继续减少数值v,当v=-1的时候,贴图所有像素都变为⿊⾊。把这个变化的过程传递给shader做裁切计算,就可以实现模型逐渐消融的效果。
美术资源准备
除了模型本⾝需要的贴图之外,还需要两张控制消融效果的贴图。
在PS⾥⽣成⼀张云彩的Noi纹理,然后点击图像菜单下的“⾃动颜⾊”命令,使图像的像素值完全占⽤满0~255的范围,这样才不⾄于
有空⽩的区间产⽣。Noi贴图
使⽤PS的渐变⼯具制作⼀张左侧⿊,中间红,右侧黄,最右侧⽩的渐变贴图,作为消融过程中的⾃发光采样颜⾊。渐变贴图
注意:渐变贴图导⼊unity之后,⼀定要把Wrap Mode设置为Clamp,否则采样的时候,纹理坐标为0的位置会采样到纯⽩的颜⾊。渐变纹
理设置按摩阴道
运动会广播稿
Shader设置
为了正常开启shader的Opacity Mask通道,对shader做⼀下设置渲染类型为:Transparent Cutout
微信公众账号登录
渲染顺序为:Alpha Test
PBR Specular节点PBR贴图
本次shader是按照unity的Specular⼯作流设计的,使⽤了Albedo、Normal、Specular、Smoothness、和AO贴图,其中Smoothness存于Specular贴图的Alpha通道⾥。然后把它们分别连接到对应的通道。
Opacity Mask节点
创建⼀个名为Dissolve的变量,范围设置为0~1,0表⽰没有消融,1表⽰完全消融。
然后通过Remap节点把数值范围重新映射到-1~1之间,对应我们最开始讲的数值v。
Noi纹理减去这个数值,经过Saturate节点,把范围裁切到0~1,然后连接到Opacity Mask通道。
这个时候就可以通过控制材质⾯板的Dissolve变量控制模型的消融了。
以下是到⽬前为⽌的效果:
工行面试Emission节点
为了使效果更加酷炫,我们在消融的位置添加⾃发光的效果。
把Opacity Mask再次重新映射成-4~4的范围,为了使⿊⾊的范围稍微扩⼤,并且⽩⾊部分数值变⼤。
光棍节祝福语然后使⽤Saturate节点把范围裁切⾄0~1,反相之后⽤于对渐变纹理进⾏采样。从⽽使消融的边缘⾃发光从⽩⾊逐渐过渡到黄⾊、红⾊,⽽未开始消融的部分⾃发光依然是⿊⾊。
谭延闿书法再乘以⼀个变量Emissive,⽤于控制⾃发光强度,最后连接到Emission通道上。
戏曲家最终
材质⾯板所有开放的变量材质⾯板
添加了Unity的后期处理Bloom效果之后,⾃发光有了光晕的效果。
⼜添加了⼀个C#脚本,⿏标指上去之后开始消融,离开之后恢复原始效果。