之前UWA已經(jīng)完整介紹了Unreal 4引擎中渲染模塊和動畫模塊,現(xiàn)在我們將介紹粒子系統(tǒng)的相關功能。本文將分兩部分介紹Unreal 4引擎的粒子系統(tǒng),其中包括:粒子系統(tǒng)的創(chuàng)建、類型和特殊功能。通過本系列文章,UWA希望讀者能學習到以下知識點:
Unreal 4引擎中粒子系統(tǒng)如何使用
Unreal 4引擎中粒子系統(tǒng)所能達到的視覺效果
Unreal 4引擎中粒子系統(tǒng)的LOD、向量場等功能使用
Unreal 4.18新推出的Niagara粒子系統(tǒng)功能使用
在此,特別感謝Unreal中國團隊對于本篇文章中Unreal引擎相關內(nèi)容的審核,并在UWA團隊學習其引擎的道路上提供的大力支持。
基礎功能
本節(jié)將介紹Unreal 4引擎中粒子系統(tǒng)的基礎功能,主要分為兩個部分,其中包括:粒子系統(tǒng)的結(jié)構(gòu)和使用以及不同類型模塊的介紹。
1.1 粒子系統(tǒng)結(jié)構(gòu)和使用
Unreal 4引擎的粒子系統(tǒng)一共包含了4個層次結(jié)構(gòu):Emitter Actor、Particle System(資源)、Emitter以及Module。
Emitter Actor是場景中擺放的粒子系統(tǒng)對象。它默認具有粒子系統(tǒng)組件,在該組件中的Template參數(shù)中可以引用創(chuàng)建好的Particle System資源進行渲染,如下圖所示:
其中,上圖黃色框顯示了場景中的Emitter Actor對象以及其組件,紅色框顯示了其粒子系統(tǒng)組件Template參數(shù)中引用的Particle System資源,綠色框顯示了已創(chuàng)建好的Particle System資源。編輯場景時,只需將Particle System資源拖入場景,引擎便會自動創(chuàng)建對應的Emitter Actor對象。
Emitter和Module分別是Particle System資源中包含的兩種結(jié)構(gòu)。其中,一個Particle System資源可以包含多個Emitter,一個Emitter中可以包含多個不同的Module。它們與Unity引擎中的ParticleSystem和Module的結(jié)構(gòu)和概念相似。下圖顯示了Unreal4和Unity引擎中粒子系統(tǒng)編輯器的截圖:
Unreal 4引擎中的粒子系統(tǒng)編輯器截圖
Unity引擎中的粒子系統(tǒng)編輯器截圖
在Unreal 4引擎中的粒子系統(tǒng)編輯器截圖中,紅色框顯示了粒子系統(tǒng)資源中一個Emitter,綠色框顯示了Emitter中的一個Module。下圖顯示了Unity引擎中粒子系統(tǒng)編輯器截圖,紅色框顯示了粒子系統(tǒng)中的一個Particle System,綠色框顯示了Particle System中的一個Module。在Unreal 4引擎粒子系統(tǒng)中有一個比較特殊的Module—Required。這個Module是每個Emitter默認包含并且無法關閉的,它類似于Unity引擎粒子系統(tǒng)中自帶的參數(shù)設置,如上圖中黃色框顯示的部分。
Unreal 4引擎粒子系統(tǒng)中的Module計算順序是從上至下,Module對于最終效果的影響也是在已執(zhí)行的Module基礎上進行累加。因此,在編輯Emitter時可以將重要的Module放在優(yōu)先級更靠前的位置。Module前后順序可以在Emitter界面通過鼠標拖拽進行調(diào)整。對于Module中參數(shù)的修改,Unity引擎是直接在Module的下拉列表中進行設置,Unreal 4引擎則是選中需要修改的Module,在編輯器的Details面板中進行設置,如下圖所示:
其中,左圖紅框顯示了Unity引擎粒子系統(tǒng)中Module參數(shù)的設置界面,右圖紅框顯示了Unreal 4引擎粒子系統(tǒng)中Module參數(shù)的設置界面。
Unity與Unreal 4引擎粒子系統(tǒng)結(jié)構(gòu)并不完全相同。其不同點在于,在Unity引擎中只有粒子系統(tǒng)組件,而沒有粒子系統(tǒng)資源。因此,在Unity引擎中創(chuàng)建粒子系統(tǒng)需要先創(chuàng)建Game Object并添加粒子系統(tǒng)組件后才可將其保存成Prefab資源。
1.2 Module
Unreal 4引擎粒子系統(tǒng)支持多種不同類型的Module。在編輯粒子系統(tǒng)的發(fā)射器時可以任意添加和刪除Module,從而開啟和關閉Module中的功能。不同的Module組合和參數(shù)設置能夠?qū)崿F(xiàn)豐富的粒子特效,例如:修改粒子的數(shù)量、速度、旋轉(zhuǎn)、顏色以及生命周期等。在接下來的內(nèi)容中,本節(jié)將介紹幾種比較特殊的Module。
1.2.1 Type Data
Type DataModule實現(xiàn)了不同類型的粒子系統(tǒng)。其類型主要包括:
- Sprite
- GPU Sprite
- Mesh
- Beam
- Ribbon
- AnimTrail
在創(chuàng)建粒子系統(tǒng)時,默認情況下使用的是Sprite類型。該類型為CPU計算模擬粒子運動,并使用Billboard面片渲染的粒子。下圖顯示了該種類型粒子實現(xiàn)的煙霧效果:
上圖中的左圖顯示了該粒子系統(tǒng)渲染時所使用的面片可視化信息,中圖顯示了渲染結(jié)果,右圖顯示了Emitter的設置。該種類型的粒子系統(tǒng)是最普通也使用最多的一種,它可用于模擬各種煙霧、火焰以及火花粒子等效果。
GPU Sprite類型的粒子與Sprite類型效果類似,只是將模擬粒子運動的計算放在GPU端執(zhí)行。相比CPU端模擬粒子運動,它的優(yōu)勢是減少了CPU端的開銷,借助GPU的高性能并行計算,能夠支持更多的粒子數(shù)目。其添加方式是在Emitter上點擊右鍵,在Type Data菜單中選擇New GPU Sprite即可,如下圖所示:
其中,上圖紅框顯示了Smoke和Sparks兩個Emitter中使用了GPU Sprite,其主要原因是這兩個Emitter中的粒子數(shù)目較多。GPU Sprite目前在PC端都支持,在中高端Mobile機型中也同樣支持,即只要設備支持MRT功能即可。
Mesh類型支持了使用網(wǎng)格來渲染粒子。其添加方式與其他類型一樣,Mesh模型的設置是在Mesh Module的Details面板中。Unity引擎中也同樣支持類似功能,設置方式是在Render Module中,如下圖所示:
左圖是Unreal 4引擎中Mesh粒子的設置界面,右圖是Unity引擎中Mesh粒子的設置界面。其中,Mesh設置為Chair模型,下圖顯示了該粒子系統(tǒng)的渲染結(jié)果:
Beam類型粒子是一種可實現(xiàn)在兩個物體之間連線的粒子,并且可隨著兩物體之間距離變化進行拉伸或縮短,其效果類似于連接友軍的靈魂鏈,或是帶跟蹤的激光束。Unity引擎也同樣支持該效果,但是實現(xiàn)并不在粒子系統(tǒng)中,而是單獨作為一種渲染效果,叫做LineRenderer,如下圖所示:
其中,左圖顯示了Unreal 4引擎的Beam類型粒子特效設置界面,右圖顯示了Unity引擎中Line Renderer的設置界面。其渲染效果如下圖所示:
上圖效果是采用固定長度渲染的Beam粒子特效,如果需要將Beam粒子兩端分別掛接到兩個Actor上,則還需添加Source和TargetModule,并做相應設置,如下圖所示:
上圖中,左圖紅色方框顯示了在Emitter中添加Source和TargetModule,中圖綠色方框顯示了將Beam Data Module中Beam Method修改為Target以便掛接到物體上,右圖顯示了在Source Module中修改Source Method和Source Name參數(shù)為設置掛接點使用。下圖顯示了渲染效果:
其中,EmitterActor的Details界面中紅色方框顯示了將Beam Source和Beam Target掛接點分別設置到Cube和Sphere物體上。
Ribbon類型粒子可以用于實現(xiàn)飄帶的效果,其原理是將粒子之間用飄帶連接起來。Unity引擎也支持類似效果,但是實現(xiàn)并不在粒子系統(tǒng)中,而是單獨作為一種渲染效果,叫做TrailRenderer,如下圖所示:
左圖顯示了Unreal 4引擎中Ribbon粒子設置界面,右圖顯示了Unity引擎中Trail Renderer的設置界面。下圖顯示了Ribbon粒子渲染結(jié)果:
其中,在場景移動該粒子時,粒子飄帶會跟隨著軌跡飄動并逐漸消失。
AnimTrail類型粒子也是模擬拖尾效果。它可以掛接到角色動畫的骨骼上,跟隨掛接骨骼的運動軌跡形成拖尾效果。下圖顯示了AnimTrail類型粒子的設置界面:
通過在骨骼動畫的Notifies Timeline上添加Trail Notify,并設置好PSTemplate和掛接骨骼即可看到動畫播放過程中骨骼上的拖尾特效,如下圖所示:
上圖紅色框顯示了在Walk動畫中添加了Trail Notify。Trail Notify的長度表示了Trail粒子播放的時間。綠色框顯示了將PSTemplate參數(shù)設置為創(chuàng)建好的粒子系統(tǒng)PS_AnimTrail,以及將掛接骨骼設置為calf_l和foot_l,即左腿。View視圖中白色拖尾即為腿部運動過程中的AnimTrail特效。
小結(jié)
以上,則為Unreal 4引擎粒子系統(tǒng)學習系列中的第一部分,重點介紹了Unreal 4引擎中粒子系統(tǒng)的使用和操作。下周,我們就Unreal 4引擎中粒子系統(tǒng)的更多功能進行更為詳細的講解。
聯(lián)系客服