高达光之翼&月光蝶效果制作

demo视频
玩高达破坏者的时候看到多款高达有光之翼或者近似的效果,例如月光蝶,或者OOR的高浓度粒子扩散,于是我也做了这么一个效果:
这里写图片描述
常规的光之翼,比如命运、V2之类的,除了这个透明的效果,关键是里面的纹理是会扩散着动的,具体效果可以看看优酷的视频。(高达破坏者居然没有V系列的机体……OO系的高达也少得可怜),由于手上没有装备光之翼的高达机体模型,所以这里随便拿了个RX78,阿赵我让元祖也享受一下光之翼。
这里写图片描述
光之翼扩散,诸如命运的爆种之类,如果再拉大点,然后在透明通道上面控制一下形状,就变成月光蝶的效果了。
这里写图片描述
光之翼的颜色可以在材质里面随意更改,所以很容易可以配出GN粒子之类的效果,我就随便调了一个颜色。

下面说说制作的思路:

1、在3D软件里面准备好这样的面片。具体的形状根据自己的需要。可以做成这样的扩散型,也可以做成长条形的喷射状。
需要注意的两点,第一点是必须控制好物体的中心点,这关系到假如你放进引擎之后需要变换大小时的效果
这里写图片描述
第二点是UV的问题,由于我们需要做扩散流动的效果,我这里是用UV动画做的,所以就必须把UV朝向一个方向,比如这里是统一朝向右边。
这里写图片描述

2、准备这样的贴图:
控制透明通道的遮罩贴图:
这里写图片描述
作为显示纹理的贴图,可以是各种喜欢的形状,比如我这里就随便在ps里面做了一个分层云彩
这里写图片描述
准备好贴图之后,我们可以先在3Dmax里面检查一下UV的流动效果,打关键帧,然后给材质的漫反射通道做uv偏移动画,如果动画的效果合符自己的预想,就可以了。

3、把准备好的素材都放进unity3d里面。然后写一个脚本控制UV动画(material.SetTextureOffset),再写一个shader控制光翼的效果。或者直接把控制uv动画这一步写在shader里面也可以。
这里写图片描述

shader的分析:
我这里是用了脚本来控制uv动画的,所以用到了offset偏移。如果想直接在shader里面控制,可以在片段程序里面分别获取uv的坐标,然后将u坐标根据时间来累加偏移就可以。
这里写图片描述
写2个贴图通道分别是纹理和遮罩,再写两个颜色,一个是控制主颜色一个是控制发光颜色。
_MainTex (“Base (RGB)”, 2D) = “white” {}
_AphlaTex (“Base (RGB)”, 2D) = “white” {}
_Color (“Main Color”, Color) = (1,1,1,0)
_Emission (“Emmisive Color”, Color) = (1,1,1,1)
为什么要控制发光颜色呢?因为你有可能会根据场景的情况去条件环境光,一般的自发光只要把Emission 变成纯白就可以了,但这个光翼效果对颜色的强度很敏感,如果直接纯白会出现色块,所以用一个自定义环境光乘以计算出来的漫反射颜色,控制光翼的具体效果。而为了让光翼能在最开始的一个范围是纯亮颜色,在边缘的范围才有纹理流动的效果,我在漫反射里面让主纹理颜色乘以主颜色之后,再加了一个增幅相乘的透明度。

思路就是这样,具体用哪一种写法就自己决定了,用顶点片段程序也可以,用surface也可以。我这里是用surface的:
half4 c = tex2D (_MainTex, IN.uv_MainTex);
half4 d = tex2D (_AphlaTex, IN.uv_AphlaTex);
o.Alpha = d.rgb;
o.Albedo = c.rgb*_Color.xyz+d.rgb*d.rgb;
o.Emission = o.Albedo*_Emission;

现在玩游戏,有种以前搞乐队时候听歌的痛苦了。以前玩乐队时,没听一首歌,都不是听到歌手在唱什么,而是听到了鼓点是怎样打的,听到了吉他是怎样弹的。现在玩游戏,玩到的不是游戏的剧情或者玩法,而是每看到一种比较有趣的效果,都想做做看。这估计也算是职业病的一种吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值