iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 23
0

約2012年那時Unity 3.x版出來時,最重要的一個變革就是導入了手裡劍(Shuriken)粒子特效系統,用來取代更早之前的Particle Emitter,世代交替持續了幾年的時間,如今Unity的開發者多數已忘記在手裡劍之前的粒子特效系統為何,手裡劍成為了Unity中的首選,而不少的擴充,像是Particle Playground等都是建構在手裡劍之上而進行功能沿續。

如今,隨著Render Pipeline的導入愈加成熟,Shader Graph圖像式編輯的方式簡化開發竹心日戈複雜,如今另一波世代交替的戲碼又開始上演了,而這次手裡劍成了被更換的對象,取而代之的則是Visual Effect Graph

為了要適應Unity快速前進的生態,加上官方強勢的推廣Visual Effect Graph(VEG),若要在Unity生態中持續進行開發,就算自身不是美術設計人員,花時間了解VEG也是必要的,接下來這幾天就來參考一些教學影片和文章,並記錄下來。

VEG的 背景知識像是HWRP等不急著在這裡解釋,開門見山的切入怎麼使用,有什麼可以使用為今天的重點。

這段學影片介紹了VEG的基礎,但全程日文解說,開了中大字幕也有些地方不太了解,不過從中抽了幾個節點講解的部份再搭配其它教學,彌補了語言上不通的限制。

Yes

用右鍵選單選了Visual Effect Graph產生的Asset檔,可直接拖曳到場景上,就像是將2D 圖檔拖到場景上時,會自動產生Sprite Renderer的物件概念相同,將VEG的Asset檔拖上去時也會產生一個對應的VisualEffect的物件。

預設就有四個節點,看連接的順序也可知道是從上到下有相依性的

  1. Spawn
  2. Initialize Particle
  3. Update Particle
  4. Quad Output

但在各自的節點中不難看到有In和Out接口的節點,所以第一時間想的就是這些節點其實是所謂的複合式節點,而它們要不就是有固定的子節點配置,要不就是可以擴充。

稍微調整了一下數值後,才看到多個”空”特效符號在場景上被噴出來。

FlatIcon網站上找到了一組心情符號換上去後就變得比較像是特效。

既然今天就是要從基本的VEG面著手,那就順勢玩它的變化形態。並看看能不能如手裡劍般,由某些事件觸發後秀出特效。

本來以為預設就是在沒有燈光的環境中,但將Quad改成Cube,做方塊模型粒子時,總覺得不是沒有設定好,就是顯卡有問題,不可能一直都這麼黑黑的。

用Unity官方最具代表的精靈特效來進行展示也將Unity版本降回到2019.2,特效本身還可以顯示,但背景燈光依舊沒有出來,看樣子手邊的顯示卡應該不支援(!?)

但列在官方部落格中的這個特效畫面應該是比較接近

暫時撇開燈光的問題,在調整一些參數後,進行產生特效的程式碼撰寫。可以利用SendEvent函式當做起始(似乎現今的節點式都是以事件觸發為主,Bolt就是一例)

IEnumerator SimulateStartStop(VisualEffect ve)
{
    yield return new WaitForSeconds(3.0f);
    ve.SendEvent("OnPlay");
    yield return new WaitForSeconds(7.0f);
    ve.SendEvent("OnStop");
}

在圖的設定上要額外加入二個事件,一個為開始,一個為結束。

在多方的嘗試下,接受了是手邊電腦顯卡的問題。看樣子VEG的時代之將來臨,但手邊的電腦卻還是活在手裡劍的年代。

今日測試用的專案放罝在Git Repo中的visual-effect-intro目錄裡,在顯示卡支援的情況下呈現應是正常的。


上一篇
表單仍是視覺化工具的典範
下一篇
來做煙霧特效
系列文
探索Unity中的視覺化製作工具30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言