欢迎光临散文网 会员登陆 & 注册

MMD联动Unity学习笔记 Vol.22 ShaderGraph光剑范例

2019-06-07 11:06 作者:NXL2  | 我要投稿

前言

    本期继续ShaderGraph主题。这次的笔记内容来自狗子大神的视频。《光剑不稳定波动效果》。如果笔记上不太明白的地方可以直接看视频。

光剑不稳定波动效果

着色器图表

    下面我们开始制作一个光剑的效果,它包含了光剑收缩,放出的效果以及光剑它的那种不稳定的效果,类似电弧的感觉,实际上如果加上粒子特效它的效果会更好。

    这里创建一个新的Shader。这个场景效果,体积雾可以参考之前的笔记。把Shader命名为Sword。

    我们开始编辑它的ShaderGraph,然后首先做光剑的收放效果,它是用光剑的位置position, 将它的座标空间改为就是物体自身。

    那下面我们要分离出来一个它的y的坐标,沿着原来的y轴进行收缩。它的原来空间也是根据这个模型来说,我们让它沿着y轴方向进行收缩。下面把这个Output就传到Split这里了。

    然后下面我们要用一个step来做它的收放动画,然后加一个属性来控制收缩动画的进度,desolve。

    这样的话就完成了一个动画。看下效果,放到AlphaClipThreshold这里,然后改一下Alpha的值。

    等它为0的时候可以看到这个物体,只渲染这一半。但是它不会渲染反面,只会渲染正面,我们打开Two Sided勾选。开启之后就可以看到另一面了。

    这就是我们想要的一个动画效果,这一部分就完成了。我们先把上面的节点拖放到一边。

先将这一部分拖到一边

    下面我们要做的就是让它有波动的效果。就是剑体的不稳定效果,这里我们需要用它的顶点函数来做顶点偏移函数,然后这里的话让它修改Position的值,看一下这里是它的y轴,y轴是不会动的,然后在它的x轴和z轴这两个方向上,让它的顶点上下波动,然后实现这个效果。

    首先必须有一张贴图,可以让它动起来,然后我们这里加一张噪音贴图,Tilling And Offset节点,然后下面我们需要用时间来关联它,因为那个值和我们自己控制和实现效果是一样的,所以没那么麻烦。这里需要传入一个二维变量Vector2,我们可以看一下效果。下面这张图动起来,但是这时候它是只动Y轴的,也是我们想要的一个效果,就让它在Y轴移动,而不是这种斜的移动。所以我们把这个值设为0就好。

    下面我们要做的事情就是它这个噪音贴图,和它的位置信息混合起来,Normal Vector,和它的法线的向量,然后这里也是设置成自身模式,然后点小箭头图标可以缩放预览,一般收起来比较节省空间的。有些地方没必要收,有些地方收起来比较节省空间,因为当你做的节点比较多的话,就会显得很乱。

将不需要的节点收缩起来

    那下面我们要把这两个东西混合一下。然后我们再给它添加一个变量来控制它的Scale。

    控制这里的scale以及控制这里的大小。 Noisescale,然后再加一个变量控制它的大小,OutSide。

NoiseScale

    点击小箭头图标可以把他们收回来,NoiseScale,给他一个合适的值,方便我们预览,然后Outside在这里是控制它的大小,你在这里选一个Multiply,然后将它和一个值在混合和一下,Outside这里先选1, 不是2的话。

    可以看到效果,然后我们先设置它为1,下面我们要把这个东西,分离出来的x和z,因为我们想要改变的是x和z而不是y,就是改变它的x方向和z方向,这两个方向的顶点的位置。

    让我们加一个Split节点.,然后在这里我们分离出来一个Vector3,然后对应的x, 对应的z, 然后Y取0,下面我们将他和一个位置信息叠加。

    将上面这个position拖下来,和Vector3叠加到Add节点,最后我们将它连接到position这个节点。

    可以看到它的侧面就这样不规则的炸裂开,但是它上面不会有影响,光剑还需要一个发光的效果,发光的效果就不需要Fresnel了,直接一个HDR,然后加到自发光那里就可以了。这个反而是最简单的,然后这里改HDR。

    因为我要让它中间体现出来白光的效果,中间白两边是发出剑光的颜色,所以中间是一个高光部分,所以用HDR比较合适,保存一下。然后我们在这里给它附了一个基础的材质,所以我们把这个材质呢就改为Sword的了。

    就是这样一个效果,不规则的波动,稍微有一点电弧的感觉。

    我给它增加了一个post process的bloom特效, 所以看起来会有这种边缘高光的效果。

    它在play时是看不到效果的, 但是我们在运行的游戏的时候更改这个材质,会保存起来的,所以我们就可以在运行的时候修改,然后调节一个我们想要的参数。

    我们调节desolve参数,可以看到这是它消失的效果,但是目前它的效果似乎反了。NoiseScale,这个是修改噪音的地方,Outside这里就有一个边的粗细,可以看到不同的数值出现不同的效果。

调节Outside时的效果

    这里需要的是一个不太大的值,让他有那种不规则的波动就可以了。我们把这个看起来的不太正确的动画修改一下,就是剑刃出现和收缩的。这里我们加一个Inverse Colors节点,我们将这个Output的值传到这里,勾选Red这个选项,可以看到颜色就反过来了。

添加Inverse Colors节点

    我们改desolve值话,改为0可以看到这完全就是反过来了,然后把他拉到AlphaClipTheshold。我顺便看一下效果,现在更改这个的desolve值。就是一个光剑出现的效果。

    如果想用代码或者使用时间函数来控制的话,在这里面简单的调试修改一下就行。

MMD联动Unity学习笔记 Vol.22 ShaderGraph光剑范例的评论 (共 条)

分享到微博请遵守国家法律