最近Unity已經放出了Visual Effect Graph的測試版。相信不少人已經裝好玩上了。

當然在這過程中應該不少人會對Vector Field Force節點所使用的Vector Field紋理如何得到感覺到疑惑。

Unity關於Visual Effect Graph的官方文檔裡面,關於工具的推薦之類的頁面目前看起來也就只是個擺設,或者只是告訴你了一個名字,比如看到了大名鼎鼎的Houdini什麼的。目前看起來總的來說還是不夠親切。

經過筆者幾天的努力,終於找到了一個免費開源的解決方案。(當然並非以尋找免費方案為目的,只是剛好找齊全了就是免費開源的)

那麼廢話不多說馬上入正題。

零、事前準備

首先交代一下這次需要用到的工具。

1、Unity 2018.3.0b6以上的版本。我用的是b9。因為這個時間點上已經裝不到b6了。

2、Blender。

我使用的是2.79b版本,後面會使用到Blender的插件進行製作和導出對應的文件。Blender的版本使用選擇2.79或更高即可。不要選2.8。2.8暫時還沒好先別想太多。

可以到官網下載,巡例還是貼一下下載地址好了。

Download — blender.org?

www.blender.org圖標

3、Blender插件【Blender - UE4 - FGA Vector Field Editor】。同樣貼上Github下載地址。

isathar/Blender_UE4_VectorFieldEditor?

github.com
圖標

4、Unity插件【FGAImporter】。貼一下Github下載地址。

https://github.com/the40san/FGAImporter?

github.com

下載好之後,需要的工具就算下載完成。

一、插件安裝

雖然已經默認看文章的人其實都已經全部搞定了插件的安裝,不過我還是貼一個比較簡單而自動化的插件安裝過程,以及解除一下會出現的bug吧。讓大家更簡單的能玩上VFX。

Unity VFX插件安裝:

這個的步驟比較麻煩,但是幸好找到了一個相對簡單的做法。在此分享給大家。

打開以下的Github地址並下載解壓該項目。

peeweek/VisualEffectGraph-EasySetup?

github.com
圖標

下載完成後得到一個zip壓縮包:

解壓後可以得到如圖所示的文件和文件夾,可以看得出來是一個Unity的項目文件夾。

2、自動獲取Visual Effect Graph

直接運行FirstTimeSetup.bat文件。

如果彈出警告無視並且運行即可,因為bat文件總會被人警告。

然後你將會見到彈出一個命令行窗口,並且開始了從Github倉庫下載項目。

【注意!使用此bat腳本首先需要系統已經安裝好Git for Windows,否則腳本將無法正常下載項目。如果沒有安裝的可以點擊鏈接進去下載安裝】

下載完成時:

只需等待項目下載完成,即可用Unity打開此項目。

此時你會發現該項目下出現了一個Github文件夾。

此時打開這個項目:

3、除錯

當然,因為是預覽版,第一次啟動的時候100%會有一行報錯。解決方法也很簡單:

根據報錯,按照路徑找到該文件,從文本編輯軟體打開,我使用的是VSCode,你喜歡可以用別的。

你說文件夾在哪裡?其實就是剛才下載的那個Github文件夾裡面,按照路徑找就對了。

當然也可以直接在Unity裡面找到:

直接展開Packages文件夾,在下面根據路徑找到該文件,點右鍵,選擇Show in Explorer

即可直接打開文件夾,選中該文件。

找到報錯的74行,並且把目標SettingsScope.User改成SettingsScopes.User即可

他少了一個s。

切回Unity。等右下角菊花轉完,報錯消失。至此,Visual Effect Graph就安裝好了。

插件的安裝也簡單的講解一下。

Blender插件的安裝:

1、關於Blender - UE4 - FGA Vector Field Editor的安裝。

作者並沒有放出releases版本,所以點擊Github頁面上的

Clone or download - Download ZIP 下載壓縮包。

下載完成後你會發現,壓縮包內的文件如下

這個壓縮包並非一般blender的zip插件安裝包,這個壓縮包並不可以直接安裝。

所以

1、解壓他。解壓後會得到如圖所示的一個文件夾和README.md文件。

2、在FGA_VectorFields文件夾上點 右鍵 - 發送到 - 壓縮(zipped)文件夾

在這裡直接用Windows默認的zip打包功能就好了,不要搞太多的麻煩事和軟體。

3、在Blender安裝插件。選中剛才打包的插件文件夾。安裝後激活Object:FGA Vectro Field Tools即可。

此時你會見到Blender的3DViewer界面的T工具欄出現了一個新的選項卡【FGA Tools】

Unity插件的安裝:

1、如圖所示,點擊打開FGAImporter.unitypackage

在打開的頁面點擊Download下載

即可下載到插件包。

2、導入Unity

導入成功後可以見到出現菜單選項 Window - Visual Effects - FGAImporter

至此,插件的安裝就已經完成。

貳、正式動手製作FGA文件。

這裡,我們並非直接製作需要的Texture3D格式的紋理。而是藉助一個叫fga的格式進行數據交換。好處,其實沒什麼好處,只是剛好確立下來的方案需要這樣做而已。而且fga格式也可以由包括Blender,Houdini,Maya等DCC軟體製作生成。是一種相對通用的方案。

至於FGA是什麼格式,數據結構是怎麼樣的,我就不班門弄斧了。在這裡只要能用就行。

好了不廢話,進入在正題:

0、插件簡介:

插件的官方文檔可以從下面的鏈接獲得,我在此就只進行簡單的介紹一下就好,詳細的信息,有興趣的可以到官方文檔詳細了解,這裡不作贅述。

isathar/Blender_UE4_VectorFieldEditor?

github.com
圖標

首先我們可以見到,插件界面就四個卷展欄,如果你使用中文的Blender界面可以發現這四個卷展欄也已經用中文顯示:

創建,顧名思義就是創建一個域,用於計算生成向量場。

編輯,這個名稱多少有點莫名,實際上是設置如何計算向量場的一系列參數的。

顯示,就是顯示計算向量場的結果。只有一個按鈕簡單易懂

工具、輔助工具形式的東西,也是只有一個按鈕。對這次的操作沒啥影響,先不管他好了。

1、創建域

打開【創建】卷展欄

解析度表示需要製作的向量場的長寬高到底有多少個採樣點,比例就是比例尺寸了,16x16x16的解析度其實已經足夠,所以解析度和比例兩個參數可以不去管它。保持默認即可。

同時因為不希望重力影響向量場,所以打開No gravity,使得域不受到重力影響。

然後點擊生成,即可在場景見到生成了一個16x16x16的向量場,此時他們都只是一些原地不動的粒子而已。

大家可能已經看出來了,這個其實就是生成了一個Blender的粒子系統。

2、創建力場

根據自己的喜歡隨便創建一些力場吧,讓粒子動起來。

參數就不詳細貼了,各人按照自己喜歡的弄就好。簡單的拖動一下時間軸看看效果。

3、計算

設置好力場,獲得想要的效果後,就需要將力場計算輸出了。如圖所示:

然後移動一下時間線,因為在0幀這個粒子還沒運動的時間點上,是計算不出東西來的。

假如把時間線移動到10,觀察界面可以發現粒子移動了。

並且打開【顯示】面板,點擊【show】激活顯示。然後展開【編輯】面板,根據需要設置一下計算的類型,在這裡我選擇保持默認參數。然後點擊【計算】。

可以見到,頂點此時的速度已經被計算出來,並且用綠色線繪製。

計算就已經完成。

4、導出

選擇 文件 - 導出 - UE4 Vector Field(.fga) 選項

然後選擇一個地方保存你的fga文件。

這裡我選擇保存在了Unity的項目文件夾裡面。大家按自己喜歡就好。

導出參數什麼的保持默認就好,有需要的可以自己去看fga導出器的文檔詳細了解,此處不再贅述。

創建fga文件的流程至此結束。

附:

其實你可以嘗試用VSCode等軟體打開導出的fga文件看看裡面長什麼樣

叄、導入Unity

說實話,導入Unity怕是最簡單的步驟了。為了讓這一段看起來具有一定的長度,我把步驟分得更細一點。

1、打開FGAImporter插件

2、點擊Import FGA Texture

3、選擇FGA文件

4、設置保存地址

5、完

肆、使用Vector Field

已經創建好了Vector Field文件,當然就是拿來用的。

為了使用他,所以我們先簡單的製作一個VFX對象。

1、創建VFX

首先在場景創建一個Visual Effect組件

創建完成後,可以見到場景上出現了一個神燈的圖標。

2、創建Visual Effect Graph

使用VisualEffectGraph-EasySetup這個項目,會發現作者已經在項目的VFX文件夾裡面創建好了三個Visual Effect Graph,不過這次我們不使用他做好的。

如圖所示在Project視口,打開VFX文件夾,點擊右鍵,創建新的Visual Effect Graph

在這裡,我創建了一個名叫TestFGA的。

3、在場景中選擇剛剛創建的VisualEffect組件,也就是那個神燈。

設置Asset Template為剛才所創建的TestFAG。

4、編輯節點組。

1)修改生成節點

點擊Asset Template旁邊的Edit按鈕。打開節點編輯界面。可以見到如圖所示的界面。具體界面什麼是什麼,有什麼用,不在此贅述,請各自參閱官方文檔了解。

我們放大視口,移動並選中到Initialize節點。並且按下空格鍵

在彈出的窗口輸出box,點擊Position(AABox)(Position)創建該block

選中AABox的Block,對應場景,可以見到

場景上出現了一個白色的方塊

此時,粒子將會從方塊的表面生成

2)創建力場節點

把視口移動並選擇到Update節點

同樣按下空格鍵

輸入搜索Force

選擇Vector Field Force(Force)創建向量場節點

把剛剛導入的TesfFGA向量場文件拖入到Vector Field內

並且設置Date Encoding為Signed

把Intensity和Drag Coeffcient設置為1

這時候可以見到粒子的運動已經不是純粹的向上了。

3)設置粒子數量

移動到Spawn節點,設置Constant Spawn Rate的Rate參數為1000

設置Initialize的Capacity參數為10000,或者你喜歡的數字就好。

此時可以看到已經發射了大量的粒子到場景。

4)修改粒子為線條

選擇並刪除Quad Output節點,此節點是默認的生成四邊面粒子的。雖然很常用,但是在此並不需要,所以刪掉換成別的。

不要選擇任何節點,按空格,搜索line

創建Line Output

並且把Update的節點出口連到LineOutput節點上

現在輸出的東西已經變成了一段段的白線了,但是效果有點單調,所以我們來豐富一下他

5)效果提升。

選中LineOutput節點,並按空格鍵,創建以下的block

然後不選擇任何節點,在空白處創建Get Attribute:position

然後把Attribute:position的position出口連接給SetColor的Color入口

再在LineOutput節點添加Set Size:

然後不選擇任何節點,在空白處創建如下節點:

然後調整曲線,當然具體數據根據項目自己喜歡就好:

然後把Sample Curve的出口s鏈接給Set Size的Size入口,一個是float型的數據,一個是vector3,但是不需要擔心,看鏈接線的顏色從藍色變成了黃色,就可以理解到,系統已經自動完成了數據轉換。

6)基本完成(發GIF不知道為啥失敗了,就看個靜態好了)

這個時候他已經動起來了,而且能按照向量場運動。當然,選中Vector Field Force這個Block,你就可以直接在場景上操作這個向量場,像是操作一個GameObject一樣,非常方便。

伍、結束

至此,簡單的Vector Field創建使用的流程已經結束。這個並非唯一解,在此僅作拋磚引玉。

以後我也會繼續嘗試在Unity內編寫直接生成Vector Field的插件,比如從模型轉到Vector Field等功能。

陸、參考來源

[1] peeweek/VisualEffectGraph-EasySetup

[2] 【Unity】UnityへFGAをインポートしてVisual Effect GraphのVectorFieldとして使う方法 - fortyのブログ

[3] [TOOL] Blender Vector Field Editor


推薦閱讀:
相关文章