Visual Effect Graph 筆記(煙霧)

教學來源: https://www.youtube.com/watch?v=R6D1b7zZHHA

Visual Effect Graph 是Unity新出的粒子系統,是透過GPU運算來產生粒子,相較以往的particle system,可以運算大量的粒子,因此可以做出高質感的特效,但參數相當多,難度也頗高。

這個系統必須使用HDRP渲染,並限制在Unity 2018.3以上版本才能作用,在使用VG時跟SG(Shader graph)一樣,確認package manager,HDRP與Visual Effect 版本一致並且相同,不然很容易有奇怪的錯誤。

當我們打開VG,就會有基本上有必要的4大區塊,Spawn / Initialize / Update / Output

Spawn
粒子生產器,預設是每固定時間噴發N顆粒子,每個區塊空白處按右鍵可Create Block,新添增其他屬性。

Initialize
起始屬性,Capacity是總粒子量,預設還有 “Set Velocity Random(擾動亂數)" 跟 “Set Lifetime Random(粒子生命)" ,這些都可以右鍵移除或添增,這是VG源頭的例子設定,所有源頭參數都跟initalize有關連,包括 顏色 速度 生命 顏色 …等。

Update
跟C#的update一樣,他可以不一定必要,但如果每frame需要判斷他的顏色 速度等各種屬性,就需要在裡面添加Block內容。

Output
所有最終要畫出來的東西,要從這欄設定,,Output種類也非常多元,有Quad Output/ Lit/ Line/ Point….等形式,依照想要的噴發型式來自定義匯出方式。

—————————————————————————————————————————-

接下來用VG練習一個基本的煙霧噴發。

spawn噴發率 100


initiialize
capacity總量設500
為了讓每顆粒子面對攝影機角度,添加一個 Set Angle.Z Random,並讓他只針對Z軸做旋轉亂數

沒有設長這樣

沒設 Set angle Z Random

有設定 Set angle Z Random則是這樣,Z軸會亂數旋轉。

有設 Set angle Z Random

這個功能滿重要,尤其對於製作舊版,particle,想要讓粒子亂數就需要靠添加 Set angle Z Random 在 initiialize 。


因為想要讓粒子能夠受光影響,再來我先把output從預設的Quad output 改成 Lit Quad output

因為要使用連續貼圖撥放動態影像,在Uv Mode選項裡,把設定從Simple改成FlipbookBlend,就可以在下方設定貼圖的序列。

設定連續貼圖

除了貼上一般的Base color Map,還需要一張Normal,我們先點選output,然後看Inspector,裡面有很多屬性內容可開關,常用包括 Use Base color map 看是要用哪種疊加模式,預設是Alpha;在這邊我們要用Noamal,所以把Use Normal map打勾,並且Material Type 從standard 改成Translucent。

output inspector

再來我筆記剩下幾項output參數
Orient: Face Camera Position(面相攝影機): 就是billboard的功能
Set size over life : 隨粒子生命影響大小,這邊我要讓他漸變大
Add color over life : 隨生命的顏色變化
Multiply Color: 色彩增值在原本的輸出顏色上

output添加其他屬性


回到Udate,Update會每偵格更新粒子效果,這邊給他加上兩個外力Force Turbulance

Force : 簡單的作用力影響,可以控制XYZ方向
Turbulence : 亂流,主要控制Intensity

update

補充,如果要在一個定值中加上兩個亂數,EX: X值是1,但希望0-1之間亂數,可透過外部的參數連結,這邊將Random Number連上Force的 X Y,這樣X Y的外力就是亂數控制了。

Random Number

最後我們打一盞Point Light,應該就可以看到受光影響的基本噴發煙霧了。

basic smoke

發表留言