摘要:三維動畫特效是指使用電腦軟件制作出立體的虛擬的特殊效果。特效一般包括聲音特效和視覺特效。三維動畫特效的融入增強了影片的視覺沖擊力,引起觀眾共鳴,所以三維動畫特效對于影片來說是至關重要的,鑒于此,本文基于Maya技術進行三維粒子特效的設計與實現。
關鍵詞:校園漫游系統、Unity 3d技術
三維動畫特效不僅可以制作動畫電影,還能夠完成實拍不能解決的影視鏡頭,不會受到天氣季節等因素影響,且可修改性較強,質量要求也更易受到控制,能夠對所表現的故事與產品起到前所未有的視聽沖擊作用,本文采用Maya中的粒子技術進行魔幻彩虹特效動畫和噴泉特效動畫實現。
1.魔幻彩虹動畫實現
使用Maya的Mel語言和表達式、粒子生命設置魔幻彩虹動畫。
(1)彩虹的基本形態
選擇Caihong為其color通道添加Ramp貼圖,Ramp過渡顏色右下向上依次為紅橙黃綠青藍紫,選擇Caihong為其創建物體發射器,發射器命名為fx_Caihong_Emitter1,粒子命名為fx_Caihong_particle1,發射器類型選擇surface表面發射,勾選Need parent UV,發射器速度為0,其他保持默認。播放動畫,粒子數量較少,可以對粒子發射數量rate(100.0)做動畫,300幀之前為1500,301幀為0,選擇Caihong,Ctrl+H將其隱藏,播放觀看動畫效果。(2)彩虹顏色設定
將Caihong的Ramp貼圖賦予粒子發射器的顏色通道,并為粒子添加RGB PP每粒子屬性為<-arrayMapper4.outColorPP。將粒子fx_Caihong_particle1的渲染類型改為MultiPoint,將Multi Count調整為50,Multi Radius調整為1,其他保持不變。播放動畫,按6鍵顯示材質,觀看效果。
打開粒子發射器的屬性窗口,為其Texture Rate添加Ramp,并勾選應用貼圖發射屬性,調整Ramp類型為U Ramp,調整顏色的過渡為Exponential UP,調整Ramp顏色由下向上黑白漸變,并對selected Position制作關鍵幀動畫,黑色位置的關鍵幀動畫為1~150幀,selected Position數值過渡為1~0,白色位置的關鍵幀動畫為51~200幀,selected Position數值過渡為1~0.001,播放動畫,觀看效果,彩虹逐漸出現。301幀后右側的粒子數量要比左側的多,因為發射器是依據貼圖的U方向,從右向左發射的。
(3)控制粒子生命
利用表達式控制每粒子生命lifespanPP,在控制lifespanPP之前需要將粒子的生命類型調整為lifespanPP only在每粒子屬性窗口中右鍵單擊Creation鍵在運行中寫入表達式 "fx_caihong_particleShape1.lifespanPP=fx_caihong_particleShape1.lifespanPP"、 "fx_caihong_particleShape1.lifespanPP=time;",為了在視圖中顯示粒子的生命數值,先將粒子發射器的每秒發射率在曲線編輯器中修改為100,然后將粒子的渲染類型改為Numeric,并在Attribute name中輸入lifespanPP(也可以輸入position、velocity等每粒子屬性,此處默認每粒子屬性為particleld),播放動畫觀看效果,粒子在沒受到擾動場的影響時生命隨時間運動,一旦受到擾動場粒子生命將不再改變。
在表達式中可以省略粒子的名稱,只寫每粒子的屬性即可,當每粒子的速度等于0時,每粒子的生命將會隨著時間的改變而改變。Else{lifespanPP= lifespanPP;}是說每粒子速度一旦不為0,也就是受到擾動場影響的時候,粒子的生命數值為此時的時間,不會再隨時間改變而改變現在播放動畫發現粒子在場景中存活的時間較長,如果想讓粒子在沒有受到擾動場影響時一直生存,一旦受到擾動場影響便開始隨機死亡,讓粒子在沒有速度的時候等于時間,一旦粒子有了速度,讓它的生命在每幀的基礎上乘以0.98~0、99之間的隨機數,粒子生命效果控制完成,如果個人感覺粒子生命短的話,可以在If(velocity==0)的情況下讓lifespanPP乘以更大的數值;如果lifespanPP=time的情況下感覺粒子生命長的話,可以在else語句中讓lifespanPP乘以更小的數值。
(4)控制彩虹兩端的透明效果
對粒子兩側的透明進行控制,選擇粒子彩虹,打開其屬性窗口,為其添加每粒子透明屬性OpacityPP,接著為其添加Ramp貼圖,Ramp貼圖的InputU不做任何調整,InputV依據ParentU,調整好后創建Ramp貼圖。
編輯OpacityPP中的Ramp,將Ramp上下兩端調整為黑色,中間為灰色,其明度數值約為0.3,最后將Ramp的Interpolation過渡類型調整為Smooth光滑,調整完成后觀看粒子彩虹左右兩端的透明過渡。
(5)制作彩虹飄散效果
選擇粒子彩虹,為其添加Turbulance擾動場,打開屬性,修改Turbulance field name為fx_caihong_tur調整Magnitude為50,Attenuation為0,Frequency為0.8,將Volume shape為Cube體積類型。
選擇擾動場,將擾動場的縮放Scale X調整為6,Scale Y調整為16,Scale Z調整為34,將Translate Y調整為-7,并對Translate X做位移動畫,動畫時間為300~500幀,過渡數值為40~-30,播放動畫到400幀,觀看粒子彩虹飄散效果。想讓粒子在場景中消完后死亡消失,首先嘗試控制粒子死亡的方法。將粒子的生命類型Lifespan Mode調整為Constant模式,然后調整Lifespan為5,隨機生命Lifespan Random為2,播放觀看效果。endprint
2.噴泉動畫實現
使用Maya中的粒子制作噴泉場景動畫。
(1)方向粒子發射器:在場景中創建Directional方向粒子發射器,在Emitter發射屬性編輯面板中調整方向的x、y、z軸參數值為(0,1,0),并調整擴散參數值為0.2,這樣粒子將沿Y軸進行發射并產生一定程度的擴散效果。
(2)粒子下落:單擊場Fields下的重力Gravity命令,粒子受到重力作用產生下落效果。在大綱視圖下,選擇粒子particle1并在emitter屬性中調整Speed速度值為15。
(3)多流線型粒子:粒子渲染類型為多流線型。設置當前渲染類型并調整多重數量為4和多重半徑0.8、拖尾尺寸參數為2,開啟顏色疊加產生亮度疊加效果。
(4)粒子碰撞:創建平面對象并置于粒子下方,選擇粒子并按下Shift鍵加選地面對象,制造碰撞,使粒子與平面產生碰撞效果。選擇粒子,在其Geoconnector節點屬性面板中設置阻力為0.5和摩擦力參數為0.2。
選擇粒子并打開粒子碰撞事件編輯器窗口,在事件類型中調整為Split分裂方式,在事件類型中調整分裂出來的子粒子數量為6和擴散值為1以及繼承速度0.6,創建碰撞事件產生分裂效果。
選擇產生的粒子2并調節粒子渲染類型為多流線類型,調整多重數量10、多重半徑0.5、拖尾尺寸1.5,開啟顏色疊加。
(5)動力學關系:打開窗口,在關系編輯器中的動力學關系窗口中選擇產生的particle2粒子節點,在右側選擇Gravity Field節點,這樣將在二者之間建立起連接關系。從而使在碰撞之后產生的粒子受到重力作用將以較低的高度彈起。對粒子動畫效果進行預覽效果如圖所示。
粒子顏色設置圖
參考文獻:
[1]張明明.基于Unity3d虛擬校園漫游的研究與實現[D].云南:云南大學,2014:53-61.
[2]蔡翊.基于Unity3d的金絲峽地質公園虛擬旅游系統的研究與實現[D].西安:西安科技大學,2013:77-85.
作者簡介:
趙艷 198204山東費縣 女 漢 山東濟南 研究方向 影視動畫、數字媒體技術 本科 山東協和學院 副教授endprint