在上期文章中,我們已經完成了單個爆破紋理的著色器設計,得到了一個隨噪波紋理W值不斷變化的火焰紋理,而且還利用空物體作為補償,實現了復制多個爆破紋理也不會出現火焰紋理重復的目的,接下來我們就需要利用這些特性,結合粒子系統的參數設置來模擬完整的爆破視覺效果。
首先新建一個棱角球,這是發散類粒子系統最好的源體,因為它的所有點、線、面都有不同的法向,且相對經緯球而言不存在點在兩極擠壓的問題,頂點數量也不多,對硬件系統要求較低,粒子發射效果也最好,所以有類似的粒子系統制作需求都可以選擇棱角球來作為源。
因為爆破的效果是從地面往上,所以我們只需要棱角球的上半部分就行,同時把棱角球沿Z軸向內縮放,并放在背景布上,最終獲得如圖1的效果。

然后我們為棱角球添加粒子效果,這一步需要對粒子系統的多項參數進行調整,才能達到滿意的效果。首先如圖2,我們要把發射數量從默認的1000個降低到50左右。注意,粒子系統的絕大多數參數,都可以在本教程設計的數值上進行自由浮動,大家可以自行尋找自己滿意的視覺效果。

然后我們要把起始幀和結束點都設置為1,因為火焰都是第一時間同時噴發出來的,生命周期則需要完整覆蓋整個時間軸,比如本教程是100幀,那么生命周期設置在100幀以上即可,當然你也可以給生命周期附加隨機性,但建議隨機性設置不要太高,否則效果可靠性會變差。
如果這時候播放視頻,你會發現粒子全都往下掉,不是往上噴發,這是因為力場權重里的重力在起作用,我們需要將重力值調整為0,這時候就能看到粒子沿法向進行正確的噴發了。
但此時新的問題又接踵而至:粒子會一直向上跑,而現實中的爆破效果,火焰會在跑一小段后停下來,并最終化成濃煙。所以這時候我們要需要在粒子系統的物理選項卡中,調整力場的“阻尼”值,這個值就是為停止粒子運動而設計的,可以設置為0.1,這時候再播放視頻就能看到粒子在噴發一段后緩慢停了下來。但粒子噴發的距離似乎太近了,別慌,我們回到粒子系統最頂端的速度選項卡,把法向速度調整到2m/s,粒子噴發的距離就會相應增大,此時只需要把阻尼和法向速度聯動調整,就能獲得如圖3的效果了,具體的粒子系統參數設置可以參考圖4。


然后我們把渲染選項卡里的“渲染為”設置成我們上期制作的火焰紋理,這時候記得勾選物體旋轉選項,再播放視頻,你會發現火焰紋理被粒子系統噴發出來,我們的第一步設計也就完成了。
目前我們的爆破視覺效果還存在幾個問題:粒子大小恒定;火焰紋理沒有變化;缺乏火花等細節。接下來我們就要逐步解決這些問題。
首先是粒子大小,爆破剛開始時,粒子尺寸應該很小,而完全爆炸后恢復到較大的尺寸,所以我們需要回到粒子系統,在第1幀給渲染縮放設置為0.01并打上關鍵幀,然后在第25幀改為1,再打上關鍵幀,此時播放視頻,火焰紋理的變化就明顯更合理了。
然后回到火焰紋理,我們要讓火焰紋理在剛開始爆破時呈現高亮,而在爆破中后段逐漸轉換為煙霧效果,這也正是我們上期為火焰紋理設置多個“映射范圍”的原因。找到如圖5所示的“映射范圍”模塊,在爆破剛開始時將“從最大值”設置為0.2,這時火焰紋理亮度很高,然后到第40幀左右設置為0.65,此時火焰紋理呈現正常的燃燒狀態,邊緣也開始浮現煙霧,再到最后一幀,設置為10,這時候就應該只剩下黑色的煙霧效果,設置完成后回放視頻,符合視覺邏輯的爆破效果就基本形成了。

這時候我們還需要添加爆破時產生的火花效果,基本邏輯還是和之前的粒子系統一樣,只是這次的渲染目標是一個低頂點數的棱角球,同時記得給這個棱角球設置類似火花的發光著色器。然后再給爆破源,也就是第一個棱角球新建一個粒子系統,以火花為目標,參照火焰紋理的設置來調整各項參數,以實現如圖6的效果,這一步就留給大家自由發揮吧。

Blender有很多真實物理模擬系統,比如流體系統可以模擬水流、火焰和煙霧,剛體系統可以模擬各類碰撞,織物系統則實現了衣物、紡織品、布料視覺效果,但這些效果最大的弊端就是對電腦硬件性能要求很高,而且是想要效果越真實,算力和消耗的時間就越長,有時候10秒的動畫就需要動輒兩三天才能渲染完成。因此,像本次教程這樣利用著色器來實現的效果,就成了Blender動畫設計的必備技能,不僅可以大幅減小系統開銷,增加工作效率,還能讓你對3D設計有更深層次的理解,可謂益處多多。