最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

用ShaderGraph實現(xiàn)塞爾達的導(dǎo)師消失特效

2020-08-13 23:27 作者:皮皮關(guān)做游戲  | 我要投稿

作者:Yumir

哈嘍大家好我是yumir。

為了實現(xiàn)一個小小的效果接觸了ShaderGraph之后,我又想起了塞爾達神廟里面導(dǎo)師消失的特效:

通關(guān)神廟的時候這段特效我都是不跳過的,太好看了。我試著在Unity里面模仿了一下,其實就是”溶解"+“自發(fā)光“+"粒子系統(tǒng)”的結(jié)合體,效果如下:

最終效果

一、準(zhǔn)備工作

準(zhǔn)備好一個2019.1以上版本的Unity,新建一個URP項目:

新建一個PBR Shader Graph用于制作溶解特效,新建一個Unlit Shader Graph用于制作發(fā)光的粒子效果。


二、在Shader Graph中實現(xiàn)溶解效果

這是一個非常簡單且實用的效果,Unity提供了三種不同的噪聲節(jié)點(Procedural>Noise)可以用來實現(xiàn)很多看似復(fù)雜的特效比如現(xiàn)在使用的溶解效果和水流效果,建議進一步了解。

在PBR Master點擊右上角的小齒輪,將屬性Surface選為Opaque模式,就可以利用AlphaClipThreshold進行透明度過濾,該模式下所有大于AlphaClipThreshold值的透明度都為1,否則為0。

利用這個節(jié)點以及PBRMaster上的這一特性,只需要額外兩個節(jié)點(另外兩個是貼圖節(jié)點不算)就可以實現(xiàn)一個溶解的效果。


三、在Shader Graph中實現(xiàn)邊緣發(fā)光

在上一步的基礎(chǔ)上,對滑動條輸入的數(shù)值加(Add)一個偏移量,并利用Step(In>=Edge In=1,In<Edge In=0)進行過濾,得到我們需要發(fā)光的范圍。

為了讓這個區(qū)域發(fā)光需要加上一個Color節(jié)點,將節(jié)點的Mode設(shè)置為HDR,并調(diào)整圖中框選位置的數(shù)值;

新建一個Multiply節(jié)點,將Color節(jié)點的輸出值和Step節(jié)點的輸出值分別連接到Multiply節(jié)點,再將Multiply節(jié)點的輸出值連接到PBRMaster的Emission(自發(fā)光),效果如下:


四、制作發(fā)光的粒子

顯然我們只需要引入一個HDR類型的Color屬性就可以制作出一個讓粒子發(fā)光的材質(zhì)球了,作為一個材質(zhì)球他還需要有一個貼圖屬性,將我們的HDR類型的Color與Vertex Color(粒子Inspector上設(shè)置的Color)相乘使粒子可以進行透明度的變化,內(nèi)容如下:

將材質(zhì)球拖拽到粒子上就可以得到一個發(fā)光的粒子特效,用dotween寫一個插值動畫,并在Update更新對應(yīng)的數(shù)值:

??? void Start()

??? {

??????? material = go.GetComponent<MeshRenderer>().material;

??????? dissolve = 0;

???????

??????? DOTween.To(() => dissolve, X => dissolve = X, 1.0f, 10);

??? }

??? private void Update()

??? {

??????? material.SetFloat("_Dissolve", dissolve);

??? }

?

在適當(dāng)?shù)奈恢梅胖昧W犹匦?,調(diào)整數(shù)值(底部粒子先播放、越往上延時越長),為了效果更好一點我做了一個螺旋的粒子:

就是文章前面效果圖里的效果啦,詳細數(shù)值可以下載項目查看,下次見~

鏈接:https://pan.baidu.com/share/init?surl=PaYEqw_DjloM45TuZfvRYA

提取碼:48y5



歡迎加入游戲開發(fā)群歡樂攪基:1082025059

對游戲開發(fā)感興趣的童鞋可戳這里進一步了解:levelpp.com/

用ShaderGraph實現(xiàn)塞爾達的導(dǎo)師消失特效的評論 (共 條)

分享到微博請遵守國家法律
宁乡县| 监利县| 类乌齐县| 衡南县| 灵台县| 乌鲁木齐县| 罗定市| 镇原县| 泸州市| 巴南区| 罗源县| 多伦县| 湾仔区| 荔浦县| 成都市| 漳浦县| 昌平区| 琼结县| 安义县| 裕民县| 平邑县| 南靖县| 喀喇| 汉川市| 获嘉县| 利津县| 广河县| 莱州市| 瑞丽市| 海林市| 崇州市| 江孜县| 凌源市| 通山县| 额尔古纳市| 永川市| 贵南县| 射阳县| 龙口市| 清徐县| 新昌县|