MMD聯(lián)動Unity學習日志 Vol.11

前言
????這次我們繼續(xù)深入學習Visual Effect Graph。在這一期中,讓我們構建我們的第一個簡單的視覺效果圖。這將應用我們在上一期中學到的內容,并使我們的Context,Block(塊)和Node(節(jié)點)協(xié)同工作,以創(chuàng)建一個簡單但視覺上有趣的粒子系統(tǒng)。
????我們從stock發(fā)射器開始,調整粒子的大小和比例,然后調整它們的渲染設置,使每個粒子成為發(fā)光條紋。 將粒子初始化為像圓環(huán)這樣的簡單形體,創(chuàng)建一個漂亮的火環(huán)。?

具體操作
????首先我們創(chuàng)建一個HDRP的項目,根據(jù)前面一期的經(jīng)驗,先導入High-Definition RP,Visual Effect Graph兩個安裝包。截圖中項目對項目進行了一些預處理,也是比較簡單的,使用了之前介紹過的插件包Post Processing,對天空盒進行了一些設置,這些設置只是為了使場景更加精美,用它來獲得漸變天空的背景。

????在項目中創(chuàng)建一個新的視覺效果圖,在項目中右擊選擇Create>Visual Effects>Visual Effect Graph,命名為FlareVFX。

????我們將FlareVFX拖到場景中,這樣我們可以在場景中直觀看到粒子的效果。把它拖入場景后可以用移動工具對其進行拖動,這和操作其它對象一樣。

????要對其進行編輯,只需要雙擊VFX文件,或者點選Window>Visual Effects>Visual Effect Graph打開。默認的粒子效果看起來像一個噴泉。

????看一下圖表來回顧上一次專欄的內容,圖表主要包括Spawn,Initialize,Update,Quad Output四個部分。它們是用從上至下的流程來運作的,所以我們通常從最上面開始進行設置。
???

?Spawn部分,這時的設置是使系統(tǒng)在每秒內產(chǎn)生10個粒子,如果將參數(shù)修改為100,你會發(fā)現(xiàn)沒有太多變化,因為目前已初始化的容量限制在32,這意味著我們不會有更多的粒子。

????現(xiàn)在我們將容量值設為1000,粒子就會看起來像煙霧顆?;驓馀?,因為我們已經(jīng)有了更多數(shù)量的粒子。

????但是我們不希望它們輸出時看起來像圖標。這就要到下面的Quad Output,任何粒子在屏幕呈現(xiàn)的樣子都取決于我們在輸出這個部分的設置。主紋理目前是一個精靈,這是Unity用于默認粒子。我們是從VFX包得到的,我們還可以得到一些其它比較好的紋理。我們可以嘗試將主紋理換成Sphere精靈,或者有點接近真實的煙霧的粒子,或者為我們使用最終效果的Sparkle紋理。

????當前粒子面向攝像機使用Orient(方向)模塊,這里有一些選項,多數(shù)粒子只是單一幾何體,我們可以控制它們面向的方式取決于我們想要的效果。在這里我們想選擇一個更快的速度,它使用粒子多邊形面朝著它們向上或在自身的Y軸方向移動。
????

????當前我們設置整個粒子的大小和XYZ比例動畫都取決于它們整個生命周期。點擊曲線縮略圖可以看到更多細節(jié)。左邊的關鍵幀代表粒子產(chǎn)生的時間,可以看到開始是一個非常小的數(shù)值,然后它的大小和XYZ持續(xù)增長直到到達它生命周期的末尾,這個使用默認設置的過程持續(xù)了1-3秒。粒子成長在XY和Z三個所有軸上。如果我們想做得看起來更好一點,我們只在Y軸為粒子設置動畫,而不對X軸產(chǎn)生影響。
????這樣我們需要用幾個不同的模塊替換它。確保你已經(jīng)打開了自動編譯,當你修改時,我們希望這樣做在編輯器中顯示 。我們先關閉Set Size over Life的勾選,實際上也可以直接刪除。我們可以更換一些其他模塊來替代它做類似的事情,還可以給我們更多的具體控制。

????我們先創(chuàng)建一個默認設置大小的模塊,這不需要隨著時間推移做動畫,只是一個恒定的模塊。在標題欄或空白區(qū)域,點擊右鍵創(chuàng)建模塊,或者你也可以按下空格鍵來獲得相同的菜單。尋找一個模塊來改變粒子屬性,輸入Size,你可以找到非常多的模塊,如果知道模塊的具體名稱,直接輸入名稱可以馬上找到我們想要的模塊。這里我們輸入Set Size,這個模塊可以設置我們默認基本大小,這個參數(shù)會影響所有軸,所有方向上粒子大小都是一樣的,現(xiàn)在讓它的參數(shù)保持為1。

????我們再增加一個模塊讓X軸變得更小,添加模塊輸入Set Scale,我們可以獨立控制XYZ軸比例,如果我只想縮放X軸,那我們在Channels這個選項就選中X,我們要把它變細變小,就在下面的Scale中設為0.05。

????下面我們再給Y軸增加一個模塊,我們希望這個模塊可以隨著時間推移做出變化,那添加模塊輸入Set Scale over Life,我們在這個模塊將Channels設為Y,我想要它在產(chǎn)生時非常小,然后拉伸到合適的尺寸保持一段時間,然后在它結束生命周期時,它會再交收縮幾乎像一個灰燼。

????我可以重設默認的平滑曲線關鍵幀,我想要將曲線描繪成類似梯形的形狀。我們先選擇直線的形狀,分別在0.1和0.9的位置增加兩個關鍵幀,將左右兩側的關鍵幀拉到0的位置,再將中間兩個關鍵幀拉到0.2的位置,這樣我想要的曲線就出來了?,F(xiàn)在我們的粒子像彈出一個個小點。

????我們再將Blend Mode切換為Additive,這樣粒子會變得像發(fā)光的塵埃。

????我們可以修改Color/Alpha over Life來使粒子比較突出一點,默認只是普通的白色,我們可以添加一些HDR中間的顏色來讓它們發(fā)光。這個漸變的底部可以單擊添加新的顏色,可以選擇更多不同的色調。我們讓粒子從白色變成一個非常明亮的HDR黃色,然后在他們在冷卻之前到紅橙色。它們在頂部漸變的熄滅代表Alpha值或透明度,我們想要粒子以Alpha為零開始不可見,然后讓它們完全可見并持續(xù)一段時間,最后才會淡出。我們可以實驗性的在編輯顏色內容來觀察游戲窗口中的粒子的反應??梢允褂肞resets(預設)中保存漸變的New按鈕。這種你可以嘗試各種不同顏色和Alpha參數(shù)的設置。

????此時粒子還只是向上噴出如同火星的樣子,如果定義初始邊界粒子效應會產(chǎn)生更大的影響。這時我們還只是從空間某一個點生產(chǎn)出粒子,我們可以使用Position模塊來初始化使粒子產(chǎn)生出自3D形體,而不只是從一個點創(chuàng)建。添加Block>Position,你可以看到這里有一些3D形體的Position選項,這里我們選擇Torus。

這時我們可以看到粒子像圣誕花環(huán)一樣,接著我們讓粒子數(shù)量增加到2000,容量提高到10000,現(xiàn)在圓環(huán)形狀就變得更加明顯了。

????

好了,效果是不是很贊啊,小伙伴們心動了嗎,馬上來動手實踐一下吧!