【Unity基础知识】ASE制作燃烧溶解效果

发布 : Unity培训      来源:Unity干货资料

2021-09-08 13:45:43

大家好,我是优就业小优,又和大家见面了。今天我们来讲一下,如何用Amplify

Shader Editor插件制作一个燃烧溶解的效果。如下效果:

一、首先我们实现消融的效果

首先需要设置一下主节点的属性

渲染类型(Render Type)要选成透明切口(Transparent Cutout)

渲染队列(Render Queue) 要选成透明度测试(Alpha Test)

遮罩值(Mask Clip Value) 要选成0.5(可手动调节)

当主节点的属性设置成如上后,你会发现主节点的 opacity mask变得可选了。这个就

是透明度遮罩,如果这个值给的大于mask clip value(目前是0.5)那么这个像素就可显示,如果小于这个值(0.5)那么这个像素就不显示。我们知道,Alpha混合运算量是比较大的,但是在实际游戏效果中,有些物体的Alpha的值如果很小,在远处就是看不见的,好不容易运算出来,玩家又看不见,那还不如不算,直接裁剪掉。所以这时候就用上了Alpha Test.如果小于某个Alpha值就直接过滤。省去后面的运算。


这里加了一个遮罩图,是因为我们要实现一个溶解的效果,就是有些像素显示有些像素不显示,就要每个像素不同的opacity mask值,所以用一个噪声图来给每个像素不同的mask值。

接着我们给遮罩图(Dissolve Guide)一个可控的变量值 (Dissolve Amount),这个值的类型是Property,那么意味着我们可以在C#代码里控制它。它的值如果是0,那么我们希望物体有局部消融,如果是1那么我们希望物体全部消融。参数含义如下:

One Minus:节点就是一个翻转节点,在这里就是1-DissolveAmount。

Remap节点:将其输入上设置的值从(Min Old, Max Old)范围转换为由(Min New, Max New)定义的新值。这里我们想把1-DissolveAmount的值从---0的范围变

成-0.6—0.6的范围。

为什么要这样呢?因为我们原先遮罩贴图输出的颜色值的某一通道比如R通道,输出的值的范围是0--1,然后Dissolve Amoun 的值经过翻转后变成了-1--0。这两个相加的范围就是-1到1,但是我们这里opacity mask值需要的范围,0-1。那么我们就需要把DissolveAmount的范围调整为-0.6-0.6,这样和如果遮罩图的单一通道颜色值的是1,相加后是0.4也是小于0.5的。这样就能实现全部消融的效果。

二、消融的时候边缘会有燃烧的效果(自发光)

接着我们需要在消融的基础上加上消融的边缘有自发光的效果,看着好像是被火烧没了的那种感觉。这个效果的难点就是要找到没消融的边缘,然后给他的emission给一个火的颜色就可以了。如下图:

那么我们怎么找到溶解的边缘那?我们溶解的opacity Mask主要是来自噪波图如下:

噪波图的颜色值是比较均匀的,从白渐渐过度到黑,也是从1慢慢变道0,我们知道是颜色是黑的地方就是我们物体看不到的被溶解到的地方,那么噪波颜色是灰色的地方就是我们显示和不显示的边界。


把Opacity Mask值 Append上一个y,生成一个Vector2(opacity Mask,0)作为这个burn ramp的uv值,如果这个值是Vector2(0,0),那么就取的是黑色,如果是vector2(0.7,0)取的就是黄色。那么opacity mask 值为0.7的地方,就是溶解边缘的颜色,这时候它的emission就是黄色。就是燃烧的效果。

好了,今天的课程就到这里了,咱们下期再见

THE END  

声明:本站稿件版权均属中公教育优就业所有,未经许可不得擅自转载。

领取零基础自学IT资源

涉及方向有Java、Web前端、UI设计、软件测试、python等科目,内容包含学习路线、视频、源码等

点击申请领取资料

点击查看资料详情 

收起 


 相关推荐

问题解答专区
返回顶部