Unity學(xué)習(xí)筆記 Vol.72 使用 Visual Effects Graph 渲染粒子
摘要

????在本節(jié)中,我們將介紹在Unity中使用Visual Effects Graph渲染粒子的一些基礎(chǔ)知識。我們將學(xué)習(xí)什么是Visual Effect Graph(VFX Graph)工具,以及它如何使用,能制作出什么內(nèi)容,我們還將了解在Unity中入門視覺特效制作時,需要知道的基礎(chǔ)概念。如果你是名特效藝術(shù)家,想要在Unity中制作高性能視覺特效,或者你是名老用戶,希望明確VFX Graph與舊版工具,如現(xiàn)有粒子系統(tǒng)的不同,關(guān)注我就對了。詳細教程及項目下載鏈接請參考官方視頻。

教程
????在討論Unity的視覺特效時,我們一般討論的是一個在2D、3D空間生成像素點的系統(tǒng),這些點又稱作"粒子“。我們可以修改系統(tǒng)的屬性,確定粒子的生成數(shù)量,移動方式和渲染方式。

????粒子系統(tǒng)可以為游戲制作各式視覺特效,比如煙霧、火焰、雨水或爆炸,你見到的許多游戲視覺特效,都是用粒子系統(tǒng)制作的。

????要在Unity中制作視覺特效,我們可以使用內(nèi)置的粒子系統(tǒng),或者VFX Graph。

????VFX Graph是一個節(jié)點式工具,具備強大、易用的使用方法,用以制作實時視覺特效。

????VFX Graph將許多計算轉(zhuǎn)移到了GPU,允許制作上百萬個粒子,模擬巨大、復(fù)雜又耗能極高的特效,VFX Graph即能用于高清渲染管線和通用渲染管線,VFX Graph作為高清渲染管線的一部分已經(jīng)預(yù)裝在了管線中,但在通用渲染管線里,需要先用Package Manager安裝。

????選擇Window > Package Manager,選擇VFX Graph點擊Install將其添加到項目中。

????我們將使用Visual Effect Spaceship Demo場景,Spaceship Demo展示了許多種可用VFX Graph制作的效果。
?

???我們可在Project窗口新建視覺特效,選擇Create > Visual Effects > Visual Effect Graph。

????每個VFX Graph將作為一個視覺特效資源儲存在項目中,方便重復(fù)使用、指定到項目中,不用在場景中選中特效便能編輯效果。

????選中資源時,我們能在檢視器中查看特效的預(yù)覽,能看到在創(chuàng)建新的VFX Graph時,系統(tǒng)會生成一個默認效果。

????我們可在GameObject上添加Visual Effect組件,將特效添加到場景中。

????或者選擇創(chuàng)建菜單中的Visual Effects > Visual Effect。

????在檢視器中將VFX資源指定到組件內(nèi)。

????也能直接將VFX資源拖到層級或場景視圖中,系統(tǒng)會自動創(chuàng)建起帶有組件的對象,創(chuàng)建好特效后,再來看看如何在VFX Graph中制作特效。

????雙擊VFX Graph資源打開圖表,能看到圖中已經(jīng)有渲染視覺特效所需的文本框、功能塊,但是為了學(xué)習(xí),我們刪去這部分,從零開始制作視覺特效。

????在VFX Graph中制作粒子特效需要四種文本框,一個Spawn文本框。

????一個Initialize文本框。


????Update文本框和Output文本框。
????首先講Spawn文本框,Spawn文本框決定了特效的 初始化方法,控制系統(tǒng)的啟動時間與方式,按下空格鍵。

????在Spawn框內(nèi)加入功能塊,來控制粒子系統(tǒng)的運行時間,我們希望效果能每過幾秒生成個粒子,那添加個Periodic Burst功能塊,將Count設(shè)為1,Delay為2。

????設(shè)置完后,新建Initialize文本框,設(shè)定粒子的初始屬性,一開始先使用簡單的Set Velocity功能塊,讓粒子隨時間向上運動。

????接著創(chuàng)建Update文本框,Update文本框?qū)⒂糜诳刂泼繋系牧W颖憩F(xiàn),目前不必更改。

????最后,我們需要使用Output文本框來渲染粒子,Output文本框確定了粒子的 類別、朝向及使用的著色器類型,在新建的Output文本框中設(shè)定將粒子渲染成Quad(四邊形)。

????再看到場景,我們現(xiàn)在每隔幾秒會生成一個向上運動的粒子,目前Output文本框使用了臨時的粒子圖像作為紋理。

????我們暫時把它改為另一種粒子紋理,粒子還有點小。

????在Initialize文本框新加Set Size功能塊,稍微放大點大小。

????這下粒子更加明顯了。

????但一移動相機,粒子就會變扁,這是因為粒子默認會在Transform的前方向上被渲染。

????我希望粒子能一直正對攝像機,那在Output文本框中新加一個 Face Camera Position功能塊。

????這下不論攝像機從哪看,粒子會一直面朝著攝像機,這是種常用的粒子技術(shù),渲染紋理的四邊形會一直面對攝像機,便能制作出一種高性能的3D對象效果,VFX Graph工作流有一個優(yōu)點,同個資源可制作出不同的特效,部分屬性可顯露在檢視器中。

????在圖表中,為黑板新建一個屬性,稱為Velocity,設(shè)定其為Exposed,把它拖入圖表,連接到Velocity功能塊上,接著新加Set Color功能塊,在黑板中新建對應(yīng)屬性。

????這下我們就能在檢視器中調(diào)整屬性、修改特效的外觀了,因為暴露出的屬性會覆寫VFX Graph的屬性。

????我們可用同個特效資源創(chuàng)建新實例,制作出同個特效的變體。

????最后,我們來讓粒子能在生命周期中淡入淡出,在Initialize文本框中新加Set Lifetime功能塊。

????要想在生命周期間的每幀上修改alpha,需要在Update文本框中添加Set Alpha Life功能塊。

????這下所有粒子都會淡入淡出了,在短短幾分鐘內(nèi),我們就使用這些資源制作出一個基本的視覺特效,希望你了解了使用VFX Graph是多么簡單,在Unity中設(shè)計、制作視覺特效有多么輕松。在學(xué)習(xí)了本節(jié)里的技術(shù)后,再多多嘗試不同的功能塊,你應(yīng)該就能在自己的項目中制作出帥氣的視覺特效了。