在上期文章中,我們已經(jīng)完成了單個(gè)爆破紋理的著色器設(shè)計(jì),得到了一個(gè)隨噪波紋理W值不斷變化的火焰紋理,而且還利用空物體作為補(bǔ)償,實(shí)現(xiàn)了復(fù)制多個(gè)爆破紋理也不會(huì)出現(xiàn)火焰紋理重復(fù)的目的,接下來(lái)我們就需要利用這些特性,結(jié)合粒子系統(tǒng)的參數(shù)設(shè)置來(lái)模擬完整的爆破視覺(jué)效果。
首先新建一個(gè)棱角球,這是發(fā)散類粒子系統(tǒng)最好的源體,因?yàn)樗乃悬c(diǎn)、線、面都有不同的法向,且相對(duì)經(jīng)緯球而言不存在點(diǎn)在兩極擠壓的問(wèn)題,頂點(diǎn)數(shù)量也不多,對(duì)硬件系統(tǒng)要求較低,粒子發(fā)射效果也最好,所以有類似的粒子系統(tǒng)制作需求都可以選擇棱角球來(lái)作為源。
因?yàn)楸频男Ч菑牡孛嫱?,所以我們只需要棱角球的上半部分就行,同時(shí)把棱角球沿Z軸向內(nèi)縮放,并放在背景布上,最終獲得如圖1的效果。
然后我們?yōu)槔饨乔蛱砑恿W有Ч?,這一步需要對(duì)粒子系統(tǒng)的多項(xiàng)參數(shù)進(jìn)行調(diào)整,才能達(dá)到滿意的效果。首先如圖2,我們要把發(fā)射數(shù)量從默認(rèn)的1000個(gè)降低到50左右。注意,粒子系統(tǒng)的絕大多數(shù)參數(shù),都可以在本教程設(shè)計(jì)的數(shù)值上進(jìn)行自由浮動(dòng),大家可以自行尋找自己滿意的視覺(jué)效果。
然后我們要把起始幀和結(jié)束點(diǎn)都設(shè)置為1,因?yàn)榛鹧娑际堑谝粫r(shí)間同時(shí)噴發(fā)出來(lái)的,生命周期則需要完整覆蓋整個(gè)時(shí)間軸,比如本教程是100幀,那么生命周期設(shè)置在100幀以上即可,當(dāng)然你也可以給生命周期附加隨機(jī)性,但建議隨機(jī)性設(shè)置不要太高,否則效果可靠性會(huì)變差。
如果這時(shí)候播放視頻,你會(huì)發(fā)現(xiàn)粒子全都往下掉,不是往上噴發(fā),這是因?yàn)榱?chǎng)權(quán)重里的重力在起作用,我們需要將重力值調(diào)整為0,這時(shí)候就能看到粒子沿法向進(jìn)行正確的噴發(fā)了。
但此時(shí)新的問(wèn)題又接踵而至:粒子會(huì)一直向上跑,而現(xiàn)實(shí)中的爆破效果,火焰會(huì)在跑一小段后停下來(lái),并最終化成濃煙。所以這時(shí)候我們要需要在粒子系統(tǒng)的物理選項(xiàng)卡中,調(diào)整力場(chǎng)的“阻尼”值,這個(gè)值就是為停止粒子運(yùn)動(dòng)而設(shè)計(jì)的,可以設(shè)置為0.1,這時(shí)候再播放視頻就能看到粒子在噴發(fā)一段后緩慢停了下來(lái)。但粒子噴發(fā)的距離似乎太近了,別慌,我們回到粒子系統(tǒng)最頂端的速度選項(xiàng)卡,把法向速度調(diào)整到2m/s,粒子噴發(fā)的距離就會(huì)相應(yīng)增大,此時(shí)只需要把阻尼和法向速度聯(lián)動(dòng)調(diào)整,就能獲得如圖3的效果了,具體的粒子系統(tǒng)參數(shù)設(shè)置可以參考圖4。
然后我們把渲染選項(xiàng)卡里的“渲染為”設(shè)置成我們上期制作的火焰紋理,這時(shí)候記得勾選物體旋轉(zhuǎn)選項(xiàng),再播放視頻,你會(huì)發(fā)現(xiàn)火焰紋理被粒子系統(tǒng)噴發(fā)出來(lái),我們的第一步設(shè)計(jì)也就完成了。
目前我們的爆破視覺(jué)效果還存在幾個(gè)問(wèn)題:粒子大小恒定;火焰紋理沒(méi)有變化;缺乏火花等細(xì)節(jié)。接下來(lái)我們就要逐步解決這些問(wèn)題。
首先是粒子大小,爆破剛開(kāi)始時(shí),粒子尺寸應(yīng)該很小,而完全爆炸后恢復(fù)到較大的尺寸,所以我們需要回到粒子系統(tǒng),在第1幀給渲染縮放設(shè)置為0.01并打上關(guān)鍵幀,然后在第25幀改為1,再打上關(guān)鍵幀,此時(shí)播放視頻,火焰紋理的變化就明顯更合理了。
然后回到火焰紋理,我們要讓火焰紋理在剛開(kāi)始爆破時(shí)呈現(xiàn)高亮,而在爆破中后段逐漸轉(zhuǎn)換為煙霧效果,這也正是我們上期為火焰紋理設(shè)置多個(gè)“映射范圍”的原因。找到如圖5所示的“映射范圍”模塊,在爆破剛開(kāi)始時(shí)將“從最大值”設(shè)置為0.2,這時(shí)火焰紋理亮度很高,然后到第40幀左右設(shè)置為0.65,此時(shí)火焰紋理呈現(xiàn)正常的燃燒狀態(tài),邊緣也開(kāi)始浮現(xiàn)煙霧,再到最后一幀,設(shè)置為10,這時(shí)候就應(yīng)該只剩下黑色的煙霧效果,設(shè)置完成后回放視頻,符合視覺(jué)邏輯的爆破效果就基本形成了。
這時(shí)候我們還需要添加爆破時(shí)產(chǎn)生的火花效果,基本邏輯還是和之前的粒子系統(tǒng)一樣,只是這次的渲染目標(biāo)是一個(gè)低頂點(diǎn)數(shù)的棱角球,同時(shí)記得給這個(gè)棱角球設(shè)置類似火花的發(fā)光著色器。然后再給爆破源,也就是第一個(gè)棱角球新建一個(gè)粒子系統(tǒng),以火花為目標(biāo),參照火焰紋理的設(shè)置來(lái)調(diào)整各項(xiàng)參數(shù),以實(shí)現(xiàn)如圖6的效果,這一步就留給大家自由發(fā)揮吧。
Blender有很多真實(shí)物理模擬系統(tǒng),比如流體系統(tǒng)可以模擬水流、火焰和煙霧,剛體系統(tǒng)可以模擬各類碰撞,織物系統(tǒng)則實(shí)現(xiàn)了衣物、紡織品、布料視覺(jué)效果,但這些效果最大的弊端就是對(duì)電腦硬件性能要求很高,而且是想要效果越真實(shí),算力和消耗的時(shí)間就越長(zhǎng),有時(shí)候10秒的動(dòng)畫就需要?jiǎng)虞m兩三天才能渲染完成。因此,像本次教程這樣利用著色器來(lái)實(shí)現(xiàn)的效果,就成了Blender動(dòng)畫設(shè)計(jì)的必備技能,不僅可以大幅減小系統(tǒng)開(kāi)銷,增加工作效率,還能讓你對(duì)3D設(shè)計(jì)有更深層次的理解,可謂益處多多。