一、前言
這篇文章將會(huì)講述 Unity Visual Effect Graph 的系統(tǒng)簡(jiǎn)介,並且簡(jiǎn)單介紹這項(xiàng)系統(tǒng)主線(xiàn)上的四個(gè)核心組件。
二、Visual Effect Graph
Unity Visual Effect Graph(VFX Graph)是Unity中的一個(gè)強(qiáng)大的視覺(jué)效果工具,它允許開(kāi)發(fā)人員創(chuàng)建高度可定制的粒子效果和視覺(jué)特效。VFX Graph基於節(jié)點(diǎn)圖的編輯器,使你能夠以直觀的方式設(shè)計(jì)和控制複雜的視覺(jué)效果。
1. 粒子特效與圖形特效
我在之前有研究粒子特效,相關(guān)影片與內(nèi)容放置在 Youtube 與 Instergram上面,有興趣可以看看;粒子特效是使用 CPU 運(yùn)作的特效,而 VFX Graph 是使用 GPU 運(yùn)作的特效。
粒子特效可以用程式碼去控制粒子效果,而 VFX Graph 僅能控制少量粒子特效,它們最值觀的差異在於粒子特效只有幾千個(gè)粒子,VFX Graph 屬於百萬(wàn)數(shù)量的粒子特效。
2. 視覺(jué)化特效設(shè)計(jì)
節(jié)點(diǎn)式的視覺(jué)化編輯方式是 VFX Graph 的一大特色,在特效設(shè)計(jì)的時(shí)候提供實(shí)時(shí)預(yù)覽,能夠即時(shí)查看效果的變化,並且能通過(guò)調(diào)整節(jié)點(diǎn)的屬性和連接來(lái)進(jìn)行實(shí)時(shí)的調(diào)整和測(cè)試。
我之前不太確定剛打開(kāi)視窗時(shí)的那個(gè)黑色面板,但它是一個(gè)自定義變速與參數(shù)的面板,有很高的靈活性,依照我的 Unity 經(jīng)驗(yàn),這應(yīng)該是可以用 Script 進(jìn)行實(shí)時(shí)控制的變數(shù),它也能拉近 VFX Graph 的編輯器。
3. 主線(xiàn)與支線(xiàn)設(shè)計(jì)
編輯 VFX Graph 可以分為主線(xiàn)跟支線(xiàn),也就是從產(chǎn)生粒子特效到最後輸出粒子特效的過(guò)程中,你隨時(shí)可以插入新的核心組件,並從組件延伸出去形成支線(xiàn),由架構(gòu)到執(zhí)行細(xì)節(jié)。
主線(xiàn)規(guī)定了粒子特效的大方向,例如生命週期與位置;支線(xiàn)負(fù)責(zé)實(shí)行細(xì)節(jié)與調(diào)味,例如波浪轉(zhuǎn)換、時(shí)間曲線(xiàn)等等,雖然我還沒(méi)有詳細(xì)研究,但我認(rèn)為在粒子特效(Particle System)中有的功能它應(yīng)該都有。
三、系統(tǒng)簡(jiǎn)介
當(dāng)你打開(kāi) VFX Graph 的系統(tǒng)後,由上而下會(huì)有:
產(chǎn)生粒子
(Spawn)
↓
初始化粒子
(Initialize Particle)
↓
更新粒子
(Update Particle)
↓
輸出
(Output Particle Quad)
同時(shí)在畫(huà)面中,應(yīng)該會(huì)有一個(gè)大大黑色面板擋住你的視線(xiàn),那個(gè)是自定義變數(shù)面板,你可以設(shè)定參數(shù)後拖曳到 VFX Graph 中形成參數(shù)區(qū)塊,不過(guò)這功能現(xiàn)在還用不上。
1. 產(chǎn)生粒子(Spawn)
在「Spawn」部分,你可以決定整份粒子特效的一些設(shè)定,例如整個(gè)粒子特效會(huì)間隔幾秒執(zhí)行一次,並且有著開(kāi)始跟結(jié)束的支線(xiàn)連接點(diǎn),可以點(diǎn)擊右鍵生成更多區(qū)塊(Block),這些區(qū)塊我試驗(yàn)過(guò),看起來(lái)都跟整體架構(gòu)有關(guān)。
2. 初始化粒子(Initialize Particle)
在初始化階段,這邊大多數(shù)都跟設(shè)定有關(guān),例如為粒子系統(tǒng)設(shè)定初速度或幫他們?cè)O(shè)定生命週期,你可以看到在每一個(gè)區(qū)塊(Block)的左邊都有一個(gè)帶有顏色的圈圈,這些是支線(xiàn)連接點(diǎn)。
你可以點(diǎn)擊右鍵新增一個(gè)區(qū)塊,並從支線(xiàn)連接點(diǎn)連接到區(qū)塊上,這些區(qū)塊有些是單純的數(shù)值控制、有些是項(xiàng)目的修飾,無(wú)論如何,主線(xiàn)區(qū)塊負(fù)責(zé)規(guī)定比較基礎(chǔ)的數(shù)值,而支線(xiàn)區(qū)塊負(fù)責(zé)這些數(shù)值的加工。
3. 更新粒子(Update Particle)
在更新粒子的階段,可以放一些持續(xù)更新的區(qū)塊組件,譬如說(shuō)施力,讓粒子固定往某個(gè)方向施力、碰撞體、翻轉(zhuǎn)等等,讓粒子存在的每一個(gè)影格都持續(xù)施加某種效果。
4. 輸出(Output Particle Quad)
在輸出階段,通常會(huì)對(duì)粒子結(jié)束有關(guān)係,例如隨著生命週期改變顏色或隨著生命週期改變大小,這裡應(yīng)該跟粒子特效最後的渲染方式相同,可以從後期改變特效的效果。
四、後記
這篇文章是我正式進(jìn)入暑假的第一篇文章,希望之後可以寫(xiě)得更好,並寫(xiě)掌握更多寫(xiě)作的平臺(tái)。