摘要
在本教程中,您將學(xué)習(xí)在 VFX Graph 中創(chuàng)建基于粒子驅(qū)動(dòng)特效的基礎(chǔ)知識(shí),然后學(xué)習(xí)創(chuàng)建特效。
1. 簡(jiǎn)介
本教程基于Unity2021.1.16f1c1版本。內(nèi)置了 Visual Effect Graph 。
Visual Effect Graph (VFX Graph) 是一個(gè)基于節(jié)點(diǎn)的編輯器,用于實(shí)時(shí)創(chuàng)建令人驚嘆的視覺效果。 利用圖形處理單元 (GPU) 和計(jì)算著色器的強(qiáng)大功能,VFX Graph 可以同時(shí)創(chuàng)作由數(shù)百萬(wàn)個(gè)粒子組成的效果。 這種能力也是它最大的地方——使用 VFX Graph 創(chuàng)建的粒子系統(tǒng)不受場(chǎng)景中物理的影響,因?yàn)樗鼈兪窃?GPU 上計(jì)算的,而 Unity 中的物理是在中央處理單元 (CPU) 上計(jì)算的。
2. 項(xiàng)目準(zhǔn)備
VFX Graph 與 Unity 2018.3 版中引入的高清渲染管線 (HDRP) 打包在一起。 因此在開始之前,我們必須確保我們的項(xiàng)目已設(shè)置為 HDRP。
- 導(dǎo)航到 Window > Package Manager 并搜索 High Definition RP。
- 在右下角,安裝最新版本的高清渲染管線版本。
-
在 Assets 文件夾下右擊并找到 Create > Visual Effects > Visual Effect Graph。 將其命名為 Snow 或類似名稱。 創(chuàng)建一個(gè)新的 GameObject,并定位到它的 Inspector 視圖。 從那里,將您創(chuàng)建的vfx圖形拖到檢查器中。 或者,您可以將圖形拖到Hierarchy視圖中,然后將在您的場(chǎng)景中自動(dòng)創(chuàng)建一個(gè)包含該效果的游戲?qū)ο蟆,F(xiàn)在您可以在場(chǎng)景中看到您的效果回放。 雙擊圖形以在 VFX Graph 編輯器中打開它(圖 02)。
圖02:一個(gè)空的VFX Graph
3. 變量、節(jié)點(diǎn)、塊和上下文
乍一看,VFX Graph 與 Shader Graph 非常相似。 如果您熟悉 Shader Graph,那么 VFX Graph 中的一些概念可能也很熟悉。 在開始創(chuàng)建效果之前,讓我們探索 VFX Graph 的基本組件:變量、節(jié)點(diǎn)、塊和上下文。
上下文表示處理粒子的操作順序,并與 C# MonoBehaviour 腳本共享類似的結(jié)構(gòu):
- Spawn(類似于 Awake() 調(diào)用)
- Initialize(Start() 調(diào)用)
- Update(Update() 調(diào)用)
- Output(定義生成的粒子應(yīng)該如何渲染到屏幕上)
塊是添加到每個(gè)上下文的操作(類似于在 Start() 或 Update() 調(diào)用中調(diào)用函數(shù))。 可以通過在上下文中按空格鍵或在上下文中右鍵單擊并選擇創(chuàng)建塊來(lái)添加它們。
在上面的例子中,粒子被初始化為隨機(jī)速度和隨機(jī)壽命。
下圖解釋了每個(gè)上下文的目的(圖 03)。

變量存在于黑板上,用于驅(qū)動(dòng)各種塊和節(jié)點(diǎn)的屬性(圖 04)。

要?jiǎng)?chuàng)建新變量,請(qǐng)單擊黑板右上角的 + 符號(hào)并選擇變量的數(shù)據(jù)類型。 從那里,只需將變量拖到要驅(qū)動(dòng)的屬性旁邊,然后將變量的輸出拖到屬性的輸入(圖 05)。


當(dāng)一個(gè)變量的 Exposed 屬性被選中時(shí),它可以通過 VFX Graph 編輯器外部的 Inspector 進(jìn)行修改。
節(jié)點(diǎn)執(zhí)行單獨(dú)的操作并鏈接在一起以執(zhí)行大型計(jì)算,就像它們?cè)?Shader Graph 中的使用方式一樣。 它們可以代替變量來(lái)驅(qū)動(dòng)塊的屬性(圖 06)。

4. 下一步
通過對(duì) VFX Graph 基本概念的介紹,您現(xiàn)在可以利用 GPU 的強(qiáng)大功能實(shí)時(shí)模擬數(shù)百萬(wàn)個(gè)粒子。 在下一個(gè)教程中,我們將介紹使用 VFX Graph 來(lái)模擬天氣效果,例如雨或雪。
