MMD聯(lián)動(dòng)Unity學(xué)習(xí)日志 Vol.13

前言
????這期我們繼續(xù)學(xué)習(xí)Visual Effect Graph,還是接著12期的內(nèi)容,再增加一些其它的效果。


具體操作????
????這次我們給VFX增加一些黑板參數(shù)。參數(shù)允許你制作一款對(duì)用戶更加友好的輸入界面,來(lái)替代節(jié)點(diǎn),文本和塊。我們可以在Inspector(檢查器)得到一些有序的色塊,滑動(dòng)條和空白。我們可以在檢查器改變這些參數(shù),當(dāng)你想要為自己或者和另一個(gè)開發(fā)合作暴露這些參數(shù),設(shè)置黑板真得幾乎不費(fèi)時(shí)間。
????將黑板沒(méi)有打開時(shí),我們可以點(diǎn)擊界面左上角的Blackboard來(lái)打開它。

????我們舉個(gè)例子,讓用戶設(shè)置每秒粒子的產(chǎn)出數(shù)量。

????首先我們需要找出我們想要的參數(shù)類型,輸出端口是一個(gè)單純的數(shù)值,它可能是int或者float類型的參數(shù),這里更符合int類型參數(shù)。我們?cè)诤诎迳闲陆ㄒ粋€(gè)int類型參數(shù),點(diǎn)擊黑板右上角加號(hào)圖標(biāo),選擇int創(chuàng)建一個(gè)參數(shù),重命名Number of Particles,勾選Exposed將參數(shù)暴露出去,再給默認(rèn)值設(shè)置為10000,在Tooltip里面寫上“每秒產(chǎn)出粒子的數(shù)量”。將參數(shù)拖出黑板,再將它與Spawn文本的Constant Spawn Rate塊連接起來(lái)。

????如果我們已經(jīng)勾選了AutoCompile(自動(dòng)編譯)按鈕,VFX會(huì)自動(dòng)保存。否則你就得手動(dòng)去點(diǎn)擊Compile來(lái)保存圖表。

????回到層級(jí)面板,點(diǎn)擊VFX物件,在檢查器可以在底部看到剛才我們?cè)诤诎鍎?chuàng)建的參數(shù)已經(jīng)暴露出來(lái),將我們把鼠標(biāo)懸停在參數(shù)上面,可以看到剛才輸入的提示。我們可以實(shí)時(shí)改變參數(shù)數(shù)值同時(shí)看到VFX在拖動(dòng)數(shù)值更新后的變化?;蛘呶覀冎苯虞斎?yún)?shù)。如果你想要將輸入框內(nèi)數(shù)值限制在一定范圍內(nèi),就得回到黑板里面將Range(范圍)勾選,為參數(shù)設(shè)置一個(gè)(Min)最小值和一個(gè)(Max)最大值。我們?cè)O(shè)置好范圍后,可以在上面看到一個(gè)滑動(dòng)條,可以控制我們的參數(shù)。當(dāng)然我們可以隨意實(shí)驗(yàn)性地在黑板定義符合我們意圖的較好的范圍。這樣主要是為了讓我們?cè)O(shè)置起來(lái)更容易,但我們能夠做得不只這些。我們將下面中的參數(shù)設(shè)置暴露出去。


????當(dāng)前每個(gè)粒子的顏色受ColorAndAlpha影響,在生命周期漸變。我們可以用int或者float參數(shù)更方便地制作一個(gè)漸變的參數(shù),可以讓我們?cè)跈z查器選擇漸變的方式。在黑板中點(diǎn)擊加號(hào),選擇Gradient(漸變)類型,命名為Color over Lifetime,勾選Exposed將它暴露出去。我之前已經(jīng)做好一個(gè)很不錯(cuò)的漸變,我們選中它。在Tooltip里面輸入“生命周期中顏色和透明度的改變”,我們將它拖出來(lái),把它和Color/Alpha over Life塊的Gradient參數(shù)連接起來(lái)?;氐綑z查器,我們可以看到參數(shù)已經(jīng)加到下面,默認(rèn)是關(guān)閉的,我們給它勾選后就可以看到效果了,我們可以在里面找到我們之前設(shè)置好的預(yù)置漸變效果。

????如果你還想再給粒子再加更多變化,我們可以改變每個(gè)粒子產(chǎn)出時(shí)的顏色。生命周期中的Alpha顏色漸變對(duì)我們很有幫助,但我們還要給Initialize(初始)文本設(shè)置Set Color(設(shè)置顏色)的塊,來(lái)增加一些額外迸發(fā)出來(lái)的顏色。我們給Initialize文本向上一點(diǎn)空間,來(lái)增加一個(gè)額外的塊。在空白處右擊,搜索Set Color,點(diǎn)擊添加設(shè)置顏色的塊。在Color左側(cè)的節(jié)點(diǎn)處向外拖動(dòng),會(huì)出現(xiàn)搜索節(jié)點(diǎn)的菜單,搜索Sample Gradient(樣本漸變),添加樣本漸變節(jié)點(diǎn)。樣本漸變節(jié)點(diǎn)可以讓你在上面選項(xiàng)輸入一整個(gè)漸變的顏色,然后在下面選項(xiàng)輸出一個(gè)單一顏色,Time參數(shù)滑動(dòng)條決定你從漸變色中取出的是哪個(gè)顏色,為0時(shí)它取得是最左面的顏色,為1時(shí)它取得最右面的顏色。當(dāng)你拖動(dòng)滑動(dòng)條時(shí)可以在Set Color塊中看到顏色的變化。

????打開黑板,我們?cè)冱c(diǎn)擊加號(hào)增加Gradient參數(shù),命名為Initial Color Cycle,勾選Exposed將其暴露出去,選中默認(rèn)輸出的漸變預(yù)置。別忘了在Tooltip里面輸入“產(chǎn)生粒子的顏色范圍”。將它拖出黑板,連接到Sample Gradient的節(jié)點(diǎn)上。我們?cè)赟ample Gradient節(jié)點(diǎn)上給Time增加一個(gè)節(jié)點(diǎn),讓Time參數(shù)在0和1之間循環(huán),這樣我們可以在特效運(yùn)行過(guò)程中,讓粒子產(chǎn)生的初始顏色變得稍微不同。這樣粒子在產(chǎn)生時(shí)的顏色始終是在變化的。

上一期我們?cè)佑|到Periodic Total Time這個(gè)節(jié)點(diǎn),下面是它的周期圖表。

????我們?cè)赩FX創(chuàng)建一個(gè)Periodic Total Time節(jié)點(diǎn),將它和Time連接起來(lái)。

????它可以讓參數(shù)值從0開始,隨時(shí)間向1變化,接著再次回到0再向1,這樣不斷循環(huán)。這里我們要注意的是,當(dāng)參數(shù)從1轉(zhuǎn)向0時(shí),我們需要將最左側(cè)和最右側(cè)的顏色和Alpha值設(shè)置相同,這樣才不會(huì)使用粒子的顏色突然變化。這個(gè)節(jié)點(diǎn)的循環(huán)速度取決于這里的周期上升速度,我們可以在黑板暴露另一個(gè)參數(shù),讓用戶控制循環(huán)速度到底多快。我們?cè)诤诎謇稂c(diǎn)擊加號(hào),創(chuàng)建一個(gè)float參數(shù),命名為Initial Color Cycle Duration,將值設(shè)為5,并將其暴露出去,提示輸入“初始顏色范圍間的循環(huán)時(shí)間”,我們把它拖出來(lái),將它和Periodic Total Time節(jié)點(diǎn)的Period連接。
我們回到VFX的檢查器,將所有參數(shù)激活(勾選)。設(shè)置適當(dāng)?shù)臄?shù)值,現(xiàn)在我們可以用不同的漸變和數(shù)值讓粒子效果變成自己獨(dú)有的效果,這已經(jīng)和我們最初的粒子效果相當(dāng)不同了。當(dāng)然,調(diào)整這些設(shè)置里的任意一項(xiàng)都會(huì)使效果變化,這是練習(xí)里最重要的一點(diǎn)。


????你可以使粒子非常漂亮,精巧,或者碩大,粗糙,明亮,想要什么樣的效果完全取決于你的程序,或是你想怎么應(yīng)用在游戲中。