MMD聯(lián)動Unity學習筆記 Vol.8 使用Shader Graph實現(xiàn)人體溶解效果

前言
????上回我們共同學習了ShaderGraph的基礎知識,這回我們再繼續(xù)研究它的應用。下面我們共同完成ShaderGraph的實際案例。

教程的詳細步驟請觀看下面的視頻(生肉),啃不動就看我這篇吧。

項目的下載地址? https://github.com/Brackeys/Shader-Graph-Tutorials
下載后解壓項目文件,找到項目文件位置,打開項目。

在資源文件里鼠標右鍵單擊,新建一個PBR Graph著色器,并命名為Dissolve。

雙擊著色器文件或者右鍵單擊選擇打開Shader Graph編輯窗口。

打開Shader Graph編輯窗口,點擊右上角方塊按鈕最大化。

打開Albedo左側的色塊打開顏色編輯窗口,選取一個稍深的顏色。

右鍵單擊空白區(qū)域,選擇Create Node(新建節(jié)點),這時出現(xiàn)搜索框,輸入simple,選擇Simple Noise(簡單噪聲)。將Scale的x值設為30。

然后將簡單噪聲的out節(jié)點連接到主節(jié)點的Alpha節(jié)點,點擊主節(jié)點齒輪,將Surface的參數(shù)改為Transparent(透明的),可以看到噪聲在材質(zhì)產(chǎn)生的變化。在右下角材質(zhì)球中可以點擊拖動球體角度觀察變化。

先將Surface的參數(shù)改回Opaque(不透明)。再創(chuàng)建一個新的節(jié)點Vector 1,將其out與主節(jié)點的AlphaClipThreshold(alpha剪輯閾值)連接起來。這時我們改變Vector 1的x的值,可以發(fā)現(xiàn)材質(zhì)的變化。這里注釋一下,AlphaClipThreshold的值大于0.7時,Alpha所對應的像素點就會不可見。所以Vector 1的x值的實際取值范圍只有0~0.7。

我們可以把這個參數(shù)暴露出來,在材質(zhì)球里面調(diào)節(jié)。右擊此節(jié)點,選擇Convert To Property(轉換為屬性)。這里我們用Time參數(shù)取代手動調(diào)節(jié),讓它自動變化。點選此節(jié)點,按Delete鍵刪除節(jié)點。
右擊創(chuàng)建節(jié)點,打開搜索框,輸入time,新建Time節(jié)點。再右擊創(chuàng)建節(jié)點,輸入remap(重新映射),新建Remap。將Time節(jié)點的out連接到Remap節(jié)點的In,再將Remap節(jié)點的out連接到AlphaClipThreshold。這樣可以看到材質(zhì)球在自動變化。

將簡單噪聲的Out節(jié)點向外拖動,延伸出一個新的節(jié)點,出現(xiàn)搜索框,輸入step,將Out節(jié)點連接到主節(jié)點的Emission上。再從Remap的Out向外延伸一個新的節(jié)點,輸入add,將左側A值設為0.01,Out節(jié)點連接到Step的In節(jié)點。

這時可以看到材質(zhì)變化的部分多出一圈發(fā)光的邊緣。我們可以調(diào)節(jié)Add節(jié)點的x值,讓發(fā)光邊緣變得更薄或者更厚。
接著我們將Step節(jié)點的Out向外拖出一個新的節(jié)點,輸入Multiply(相乘),選擇Multiply:B(4),再將Multiply節(jié)點的A點向外拖出一個新節(jié)點,輸入Color,將Mode改為HDR,將顏色改為天藍色,同時將Intensity(強度)提高為4。

然后將Multiply節(jié)點的Out連接到主節(jié)點的Emission上,這樣可以看到發(fā)光邊緣的顏色變成了剛才賦予的顏色??吹叫Ч€不賴。
下面我們將幾個參數(shù)暴露出去,選擇Color節(jié)點右擊選擇轉換為屬性,并改名為Edge Color。點擊屬性右上角的加號,增加一個Vector 1,命名為Edge Width,將默認值設為0.01。將其與Add節(jié)點的A相連接。再增加一個Vector 1,命名為Noise Scale,將默認值設為30,將其與Simple Noise節(jié)點的Scale相連接。

完成后點擊左上角的Save Asset按鈕保存著色器,然后退出。
選擇項目的猴頭,將著色器類型改為Dissolve,立即可以看到效果。


播放場景后可以看到動態(tài)消融的效果。我們還可以調(diào)節(jié)暴露出來的屬性,比如顏色。

????用上面的方法,把模型換成人形就可以實際炫酷的人體溶解效果。我們不用一行代碼,就可以實現(xiàn)這么贊的效果,Shader Graph非常值得研究。