首先我們使用maya的動力學模塊創建一個粒子發射器開始,選擇Particles>Create Emitter. 使用 directional emitter這種發射形式,通過使用這種發射形式,你可以控制粒子的發射方向,並且能使他們以一種錐形的發射,設置方向direction為 0,1,0,這樣粒子將沿著y軸向上運動,spread這個屬性掌管著錐形發射的張開寬度,設置為0.2,這樣的發射形狀將是很尖的一個圓錐,有些像一個噴射的水龍頭定義這噴射的寬度,設置為0,粒子將沿著直線向上發射。 emission rate 和 speed 使用了默認的設置 100,emission rate代表單位時間從粒子發射器發射的粒子的數目,(在這個例子中是每秒24幀),speed這個值可以一直調試直到合適為止,這個屬性控制粒子發射的有多快。
經過多次嘗試,設置speed為0.3,speed radom為0.5,speed radom使得一些粒子的有一些不同的速度,這是個很有用的選項。好了,現在粒子的速度有了些不同(不像以前那麼一致了)但他們還是基本上沿著相同的方向直線向上。(見下圖)
通過給粒子添加一個擾動場turbulence field,可以使這些粒子有些隨機的運動,“場”在maya裡面是一個能夠幫助已發射的粒子做規則運動的一種物體,給這些粒子添加一個場來制作一小束被運動的空氣作用的煙,用這個場來模擬真實世界的自然力,選擇粒子再選擇Fields>Turbulence。
先選擇粒子,再選擇場,場將自動連接到粒子。也可以先簡單創建一個場,再使用動力學關系編輯器Dynamic Relationships Editor把場連接給物體或者粒子。不管怎樣,一個場應該連接到一個粒子物體或動力學物體上以產生作用。
現在對擾動場的設置項進行動畫來產生最好的效果,把時間范圍調整到360幀長,在開始幀,在turbulence field 的 magnitude屬性上設置為5,點右鍵key selected。同樣的辦法在80幀設置為4,110幀設置6,160幀設置3,210幀設置5。
把時間打到第一幀,(這是為了更自然的動力學模擬效果,清空剛才的動畫),開始播放,可以看到粒子被吹到顯示器的邊緣外了,如下圖。
很明顯,粒子需要向上慢慢升起,就像真實的從香煙裡冒出來的煙一樣,為了達到這個效果我們還需要另外的一個場,來退或者拉使得粒子向上運動,選擇創建一個Radial Field,這個場可以把粒子向中心拖動,相反的話也可以把粒子向外推。 實現這些需要設置他的magnitude值,正值試向外推,負值是向中心拉。gravity field重力場也可以實現把粒子向上推(把magnitude值設置為負),但是Radial Field把粒子拖向一個特定的位置,使得粒子保持一個很好的流態,(就像限制著他們主要向上運動)
選擇Fields>Radial創建一個新的場,向上提一些,放到粒子發射器z軸向稍微靠做的位置,這樣的話,擾動場把粒子推向右邊,而Radial Field把粒子又吸回到左邊,產生一個很好的弧形運動。
使用和上面擾動場設置magnitude屬性關鍵幀的辦法一樣,設置Radial Field的magnitude屬性。在100幀-0.5,145幀-0.3,260幀-0.5,360幀-0.3。
播放動畫,可能這個新的場沒有對粒子產生作用,檢查一下他們之間的連接, Window>Relationship Editors>Dynamic Relationship 打開動力學關系編輯器(Dynamic Relationships Window )。
可以通過打開場的Use Max Distance這個屬性,把Max Distance設定一個合適的值,只影響半徑范圍內的值,通過這種辦法可以不使用體積型的場這種情況,但是使用體積型的場更簡單一些,更具有可視化。
把這個正方體的擾動場放到球形的拖動場上面,大約交叉三分之一吧。這個場將把煙的頂部消散一些。
現在粒子的運動已經像煙了,我們需要他更像,選擇粒子打開屬性編輯器,第一個操作就是改變粒子的渲染類型,這裡使用硬件渲染,所以就不選cloud, blobby surfaces,和 tubes這些類型了,我們Particle Render Type(粒子渲染類型)裡面選擇multi-point ,這種方式將增加渲染粒子的數目,增加的方式是在每個粒子的一定半徑范圍內增加一些小點,這種方式很好因為每個額外增加的小點不是新粒子,因此它不會降低系統的速度,這種辦法可以不通過增加額外的粒子就可以表現比一般得規則得小點好很多的現象。
一旦選擇了multi-point這種渲染方式,按下Add Attributes For…Current Render Type.這個按鈕,這樣將創建multi-point這種渲染方式的一些相關的屬性,例如MultiCount, MultiRadius 和 Color Accum,MultiCount掌管著每個粒子能渲染出幾個“小點”,而MultiRadius這個屬性每個粒子再多大的半徑范圍內增加額外的“小點”,設置MultiCount為18,設置MultiRadius為0.9,把Color Accum 選像打開,這將允許當粒子堆積的很厚的時候顏色可以重疊,累積。這將使得粒子有更多的體積。
說到粒子的顏色,需要為粒子增加一個顏色,為了增加顏色,先給粒子物體增加一個顏色屬性,在粒子屬性變機器裡面的Add Dynamic Attributes這個項目下面,點擊“Colour”這個按鈕,出現一個小的窗口,選擇Add Per Object Attribute , 按下Add Attribute。這樣就給整個粒子物體添加了一個顏色屬性(還可以為每個粒子添加不同的顏色)。
在Render Attributes下面多出了3個屬性,Color Red, Color Green, Color Blue,每一個都代表了單獨的粒子的RGB顏色的一個通道值,給粒子設置一個灰暗的值,R, G,B都是0.6。下一個設置的屬性是Lifespan,選擇一個簡單的模式來把個Lifespan Mode ( 在ifespan Attributes” 下面) 設置成一種隨機的形式,把Lifespan設置成20, 把Lifespan Random設置成15,這樣每個粒子的生命值將是20秒,並增加隨機的15秒。
下面再增加一個粒子的透明度的屬性,在Add Dynamic Attributes下面點擊Opacity,出現對話框,點擊Add Per Particle Attribute,這樣使得每個粒子有區別的消失,消散(實際是變透明)以此創建更加光滑,更加自然的煙霧消散。
新的屬性出現在Per Particle (Array) Attributes的下面,在opacityPP這一欄的後面,右鍵單擊,出現一個對話框,選擇Create Ramp and the text,在opacityPP這一欄的後面會出現<- arrayMapper1.outValuePP,在這上面右鍵單擊,選擇Edit Ramp,出現了ramp的屬性編輯筐。
在這兒我們創建一個很薄的煙,當他們堆積起來的時候就顯得很厚了,創建一個通體是黑暗的ramp就很必要了。在ramp中,顏色越黑,粒子就越透明,白色代表粒子完全不透明。黑色代表粒子是完全透明的。
把ramp設置成這樣(如圖):Position 0.035 Value 0.016;Position 0.075 Value 0.074;Position 0.185 Value 0.050;Position 0.400 Value 0.025。
剩下的就是渲染的問題了,由於使用了硬件渲染的粒子,我們只能使用硬件渲染的辦法,打開Window>Rendering Editors>Hardware Render Buffer,這就打開了maya的硬件渲染窗口,一般除了這些粒子,別的物體也可以使用硬件渲染,就是硬件渲染不能表現很細致的燈光效果和材致貼圖,好在這個場景中別的的物體,就使用硬件渲染了。
打開硬件渲染窗口,默認的是透視圖窗口,稍微移動旋轉一下攝像機,選擇一個好的角度,這時硬件渲染窗口會實時的變化。
硬件渲染窗口,打開Render>Attributes,這裡屬性可以控制圖像的分辨率,文件名,幀范圍等一些參數。在Multi-Pass Render Options下面,打開Multi-Pass Rendering,選擇高一的數值,選擇最高的36,Edge Smoothing Value為20,Motion Blur為6,不打開Multi-Pass Rendering,粒子將被渲染成簡單的小點。打開之後,輸入以上的值,會創建很好的效果。
打開Render>Render Sequence將會按照屬性編輯器設定的時間范圍進行渲染,點擊硬件渲染框下部中間的按鈕進行渲染。
如果硬件渲染沒有正確的渲染(一片黑,什麼都沒有)就打開Solvers>Create Particle Disk Cache,這將運行粒子的動力學模擬,並以文件的形式保存到硬盤,這有助於解決在硬件渲染器中的怪異的問題。
另外在新的maya5.0中,硬件渲染已經和其他的渲染方式整合到一起,都可以通過Render Global Settiing對話框設置。