朱峰社區(qū)首頁(yè) 朱峰社區(qū)

搜索資源 注冊(cè)|登陸

等待

返回 展開(kāi)菜單

煙花效果制作步驟詳解

3dMAX動(dòng)畫(huà) 觀看預(yù)覽

3dMAX動(dòng)畫(huà)

包含4節(jié)視頻教程
關(guān)注14.7萬(wàn)

3dmax動(dòng)畫(huà)包括曲線編輯、動(dòng)畫(huà)調(diào)節(jié)基礎(chǔ)、各種控制器的掌握、表情動(dòng)畫(huà)等,讓你輕輕松松學(xué)動(dòng)畫(huà),做動(dòng)畫(huà)。

關(guān)閉

導(dǎo)言:
本教程主要介紹如何Maya硬件粒子來(lái)模擬煙花的絢爛效果,里面涉及較高級(jí)的Maya粒子表達(dá)方式的使用方法,其中包括如何用速度控制粒子的生命,如何通過(guò)ParentId粒子的子父粒子屬性繼承其父粒子的顏色等等!

按F5快捷鍵,切換到動(dòng)力學(xué)模塊,選擇Particles->Create Emitter(粒子->創(chuàng)建發(fā)射器),創(chuàng)建一個(gè)獨(dú)立的粒子發(fā)射器,設(shè)置參數(shù),體積發(fā)射器,方形,發(fā)射數(shù)量為2,方向?yàn)閅軸向上,隨機(jī)方向?yàn)?,隨機(jī)速度為3,方向速度為10,其它速度為0 。確定發(fā)射器是在世界坐標(biāo)原點(diǎn)的位置,調(diào)整方形放射器的大小為(2,0.1,2)。這樣可以使粒子都從地面發(fā)射出來(lái)(也可以使用面發(fā)射器)。調(diào)整時(shí)間劃條為1至500。播放動(dòng)畫(huà),因?yàn)榱W影l(fā)射數(shù)量很少,所以在視圖里只能看到很少的粒子。(圖01)

圖01

命名發(fā)射器為baseEmitter,命名粒子為mainPart(后面會(huì)有多個(gè)粒子出現(xiàn),明確地命名可以防止混淆物體)。選擇粒子mainPart,選擇Fields->Gravity(場(chǎng)->重力場(chǎng)),為其創(chuàng)建重力場(chǎng),命名剛創(chuàng)建的重力場(chǎng)為mainGravity,設(shè)置重力場(chǎng)mainGravity的參數(shù):強(qiáng)度為2,衰減為0,方向?yàn)閅軸向下。(圖02)

圖02

選擇粒子mainPart設(shè)置它的生命類型為每粒子,粒子的最大數(shù)量為1,lifespanMode為lifespanPPonly,maxCount為1。為粒子mainPart的每粒子生命寫(xiě)表達(dá)方式。在粒子的屬性編輯器里找到每粒子屬性卷展欄(perParticle(Array)Atrributes)。在屬性lifespanPP右邊的長(zhǎng)方框里點(diǎn)右鍵,在出現(xiàn)的菜單中選擇Creation Expression(創(chuàng)建時(shí)表達(dá)方式)打開(kāi)表達(dá)方式編輯窗口。(圖03)

圖03

為粒子mainPart的每粒子生命寫(xiě)創(chuàng)建時(shí)表達(dá)方式:

lifespanPP=20;

注意這句表達(dá)方式后面的分號(hào),它代表這句表達(dá)方式的結(jié)束。這句表達(dá)方式是給每個(gè)粒子在它出生時(shí)定義了一個(gè)生命值,這個(gè)生命值的大小不是特別重要,我們還要在運(yùn)行時(shí)的表達(dá)方式里來(lái)改變它的生命值,這里只要給它一個(gè)生命,讓它不活就行了。(寫(xiě)表達(dá)方式時(shí)要注意字母的大小寫(xiě))。輸入完表達(dá)方式,點(diǎn)擊下邊的Create創(chuàng)建按鈕,創(chuàng)建表達(dá)方式(創(chuàng)建按鈕在創(chuàng)建成功時(shí)會(huì)變成Edit編輯)。(圖04)

圖04

小技巧:在表達(dá)方式編輯窗口里按住Ctrl鍵,然后滑動(dòng)鼠標(biāo)中鍵可以放大編輯的字母。

為粒子mainPart的每粒子生命寫(xiě)運(yùn)行時(shí)表達(dá)方式,播放可以看出粒子出生時(shí)向上升起,在達(dá)到一定高度時(shí),因?yàn)槭苤亓Φ淖饔镁蜁?huì)往下落,這里主要控制的是只要粒子往下落,就讓粒子活亡。在表達(dá)方式編輯窗口中,把粒子表達(dá)方式點(diǎn)到運(yùn)行時(shí)的編輯窗口中,在窗口中間有一個(gè)Particle粒子表達(dá)方式大體上是分兩種:第一種是在粒子的創(chuàng)建時(shí)表達(dá)方式,是在粒子出生的那一幀為粒子計(jì)算一次,也就是說(shuō),創(chuàng)建時(shí)表達(dá)方式只計(jì)算一次。第二種是運(yùn)行時(shí)表達(dá)方式,運(yùn)行時(shí)表達(dá)方式是在粒子出生之后的每一幀為粒子計(jì)算一次。而運(yùn)行時(shí)表達(dá)方式又細(xì)分為兩種:一種是動(dòng)力場(chǎng)之前計(jì)算,另一種是動(dòng)力場(chǎng)之后計(jì)算。Particle后邊的三個(gè)單選按鈕就是這三種表達(dá)方式:

Runtime before dynamics、Runtime after dynamics和Creatio,分別是運(yùn)行時(shí)場(chǎng)前表達(dá)方式、運(yùn)行時(shí)場(chǎng)后表達(dá)方式和創(chuàng)建時(shí)表達(dá)方式。

選擇運(yùn)行時(shí)場(chǎng)后表達(dá)方式,為粒子mainPart的每粒子生命寫(xiě)運(yùn)行時(shí)表達(dá)方式:

Vector $vel=velocity;
If($vel.y<0) lifespanPP=0;(圖05)

圖05

完成每粒子生命表達(dá)方式,播放時(shí)會(huì)發(fā)現(xiàn)粒子在上升時(shí)不會(huì)活亡,而只有粒子在往下落時(shí)就會(huì)活亡。接下來(lái)設(shè)置粒子的渲染類型,在粒子的屬性編輯器中,找到Render Attributes渲染屬性。在Particle Render Type后邊的下拉菜單中選擇multiStreak多條紋渲染類型。然后點(diǎn)擊Add Attributes For后邊的Current Render Type添加當(dāng)前渲染類型的渲染屬性按鈕,(如果看不見(jiàn)屬性,就點(diǎn)擊屬性編輯器下邊的Load Attributes載入屬性按鈕)。(圖06)

圖06

修改粒子多條紋的數(shù)量屬性Multi Count為30,多條紋半徑Multi Radius的數(shù)值為0.15,尾部的透明TailFade為-1。為粒子mainPart添加顏色和透明。在屬性編輯器中找到Add Dynamic Attributes卷展欄。(圖07)

圖07

先點(diǎn)擊Color添加顏色按鈕,打開(kāi)添加顏色窗口,在打開(kāi)的窗口中選擇Add Per Particle Attribute。點(diǎn)擊Add Attribute按鈕,添加每粒子顏色屬性。這時(shí)在每粒子屬性卷展欄里會(huì)看到RGB PP屬性。(圖08)

圖08

用同樣的方法添加每粒子透明屬性,點(diǎn)擊Opacity按鈕,打開(kāi)添加透明屬性的窗口。在打開(kāi)的窗口中選擇Add Per Particle Attribute。點(diǎn)擊Add Attribute按鈕,添加每粒子透明屬性。在每粒子屬性卷展欄里會(huì)看到Opcity PP屬性。(圖09)

圖09

在每粒子透明屬性O(shè)pacity PP右邊的欄里點(diǎn)右鍵,在出現(xiàn)的菜單中選擇Create Ramp為屬性添加一個(gè)斜面紋理。然后再在已添加斜面紋理的每粒子透明屬性O(shè)pacity PP右邊的欄里點(diǎn)右鍵,在出現(xiàn)的菜單中選擇Array Maper1.out ValuePP->Edit Ramp打開(kāi)斜面紋理屬性窗口。修改斜面紋理的顏色塊的位置和V值。(圖10)

圖10

返回到粒子屬性窗口,為rgbPP每粒子顏色添加另一個(gè)斜面紋理,方法與透明不同,需要在出現(xiàn)的右鍵菜單中選擇Create Ramp后面的小方塊,打開(kāi)斜面紋理創(chuàng)建窗口。在斜面紋理創(chuàng)建窗口中把Input V項(xiàng)改成rgbVPP。(圖11)

圖11

點(diǎn)擊OK按鈕,為每粒子顏色屬性創(chuàng)建斜面紋理,但同時(shí)也創(chuàng)建了一個(gè)新屬性,rgbVPP,可以在每粒子屬性卷展欄里看見(jiàn)它。打開(kāi)表達(dá)方式編輯窗口,為rgbVPP寫(xiě)創(chuàng)建時(shí)表達(dá)方式:

rgbVPP=rand(1);(圖12)

圖12

注意:之前寫(xiě)的創(chuàng)建時(shí)表達(dá)方式不可以刪除掉,粒子mainPart的所有創(chuàng)建時(shí)表達(dá)方式都存在與這個(gè)窗口中。

點(diǎn)擊Edit編輯按鈕。這時(shí)可以按Alt+B快捷鍵,將視圖的背景眼色改為黑色,播放動(dòng)畫(huà),能清楚的看到粒子的顏色是五顏六色的(也可以修改rgbPP每粒子顏色的斜面紋理,給它一個(gè)特定的色相)。(圖13)

圖13

接下來(lái),創(chuàng)建一個(gè)新粒子,模擬煙花在高空咋開(kāi)的效果。這個(gè)新粒子要從第一個(gè)粒子mainPart身上發(fā)射出來(lái),而且是在mainPart要活亡時(shí)才發(fā)射出來(lái),才是這里想要的效果。所以,選擇粒子mainPart,選擇Particles->Emit From Object(粒子->從物體發(fā)射后邊的小方塊,打開(kāi)創(chuàng)建從物體發(fā)射選項(xiàng)窗口,設(shè)置發(fā)射器的參數(shù),點(diǎn)發(fā)射器,速度為6,隨機(jī)速度為4。點(diǎn)擊Create創(chuàng)建按鈕,創(chuàng)建第二個(gè)粒子,命名粒子為sparkPart。(圖14)

圖14

選擇粒子mainPart(第一創(chuàng)建的粒子),選擇Particles Per->Point Emission Rates(粒子->每粒子發(fā)射數(shù)量,為粒子mainPart添加每粒子發(fā)射數(shù)量屬性emitter1RatePP,在粒子mainPart的屬性編輯器中找到該屬性)。(圖15)

圖15

每粒子發(fā)射數(shù)量屬性emitter1RatePP,是控制粒子mainPart發(fā)射粒子sparkPart多少個(gè)的屬性,給該屬性添加一個(gè)斜面紋理,與添加透明斜面紋理時(shí)相同,編輯該紋理,將Interpolation插值改為none,刪除一個(gè)顏色,只留下兩個(gè),下邊的是純黑色,上邊顏色的位置在0.95,顏色是白色,但V值要設(shè)置的很高,這里可以是2400,也可以或多或少,但太少會(huì)看不到粒子出現(xiàn)。(圖16)

圖16

選擇粒子sparkPart,選擇Fields->Gravity(場(chǎng)->重力場(chǎng)),創(chuàng)為其創(chuàng)建重力場(chǎng),命名重力場(chǎng)為 sparkGravity,設(shè)置重力場(chǎng)sparkGravity的強(qiáng)度為3。(圖17)

圖17

選擇粒子sparkPart,修改它的conserve繼承屬性為0.97,生命類型為randomRange隨機(jī)范圍lifespan生命范圍為2,lifespanRandom隨機(jī)范圍為1。為粒子sparkPart添加每粒子顏色rgbPP和每粒子透明opacityPP,與第一個(gè)粒子mainPart的添加方法相同。在粒子sparkPart的屬性編輯器中找到新添加的每粒子顏色rgbPP和每粒子透明opacityPP屬性。為粒子sparkPart的透明opacityPP添加一個(gè)斜面紋理,方法與粒子mainPart的方法相同。(圖18)

圖18

給粒子sparkPart添加顏色的方法很多,這里介紹一種可以繼承它的父粒子顏色的方法,就是發(fā)射它的粒子mainPart是什么顏色,就給它也定義成什么顏色。所以要添加一個(gè)新屬性parentId,這個(gè)屬性記錄了它的父粒子的ID號(hào)。在粒子sparkPart的屬性編輯器里,點(diǎn)擊Add Dynamic Attributes添加動(dòng)態(tài)屬性卷展欄里,添加每粒子顏色左邊的general按鈕,打開(kāi)添加粒子動(dòng)態(tài)屬性窗口。(圖19)

圖19

在添加粒子動(dòng)態(tài)屬性窗口中,默認(rèn)是new標(biāo)簽,點(diǎn)擊中間的particle標(biāo)簽,在下邊的列表中找到parentId屬性。點(diǎn)擊OK按鈕,添加屬性,屬性會(huì)出現(xiàn)在每粒子屬性欄里。(圖20)

圖20

為粒子sparkPart的rgbPP每粒子顏色寫(xiě)創(chuàng)建時(shí)表達(dá)方式:

Int $pid=parentId;
Float $rgb[]=`getParticleAttr –at rgbPP mainPart.pt[$pid]`;
rgbPP=<<($rgb[0]),($rgb[1]),($rgb[2])>>;(圖21)

圖21

修改粒子sparkPart的渲染類型為multiStreak多條紋,設(shè)置參數(shù),勾選顏色疊加,設(shè)置多條紋的數(shù)量為24,多條紋的半徑為0.1,尾巴的透明為-1。(圖22)

圖22

給兩個(gè)粒子分別添加拖尾效果。先給粒子mainPart添加拖尾,選擇粒子mainPart,選擇Particles->Emit From Obects后邊的小方塊,打開(kāi)物體發(fā)射選項(xiàng)窗口,設(shè)置發(fā)射器的速度為0。點(diǎn)Create創(chuàng)建按鈕,創(chuàng)建第三個(gè)新粒子,命名為mainTailPart,選擇新粒子mainTailPart,選擇Fields->VolumeAxis(場(chǎng)->體積軸場(chǎng)),為其創(chuàng)建體積軸場(chǎng),命名體積軸場(chǎng)為mainVolumeAxis,調(diào)整場(chǎng)的縮放為(50,50,50),設(shè)置體積軸場(chǎng)mainVolumeAxis的參數(shù)。(圖23)

圖23

修改粒子mainTailPart的生命類型為隨機(jī)范圍。修改粒子mainTailPart的渲染類型為multiPoint多點(diǎn)。(圖24)

圖24

為粒子mainTailPart添加每粒子顏色rgbPP,每粒子透明opacityPP,和父粒子ID號(hào)屬性parentId。(圖25)

圖25

為粒子mainTailPart的每粒子透明屬性opacityPP添加一個(gè)斜面紋理,方法與前面相同,修改斜面紋理的屬性。(圖26)

圖26

為粒子mainTailPart的每粒子顏色屬性rgbPP寫(xiě)創(chuàng)建時(shí)表達(dá)方式:

int $pid=parentId;
float $rgb[]=`getParticleAttr -at rgbPP mainPart.pt[$pid]`;
rgbPP=<<($rgb[0]),($rgb[1]),($rgb[2])>>;(圖27)

圖27

這時(shí)會(huì)發(fā)現(xiàn)拖尾的粒子太實(shí)了,需要它再透明一些,可以在每粒子透明的屬性opacityPP上點(diǎn)右鍵,在出現(xiàn)的菜單中,選擇Array Maper1.out ValuePP->Edit Array Maper打開(kāi)斜面紋理巨陣編輯窗口,設(shè)置MaxValue為0.08。(圖28)

圖28

為粒子sparkPart添加一個(gè)拖尾粒子。方法與第一個(gè)拖尾相同,不同的地方,要注意這拖尾粒子是從sparkPart上發(fā)射出來(lái)的,它繼承的顏色也是sparkPart的顏色,還有就是它不需要體積軸場(chǎng)。命名新拖尾粒子的名字為sparkTailPart。表達(dá)式為:

Int $pid=parented;
Float $rgb[]=`getParticleAttr –at rgbPP sparkPart.pt[$pid]`;
rgbPP=<<($rgb[0]),($rgb[1]),($rgb[2])>>;(圖29)

圖29

這時(shí)發(fā)現(xiàn)粒子sparkTailPart后邊有點(diǎn)太細(xì)了,適當(dāng)給它的發(fā)生器一點(diǎn)速度數(shù)值,可以使它向外散開(kāi)一點(diǎn),調(diào)整發(fā)射器屬性,調(diào)整速度和隨機(jī)速度為0.1。(圖30)

圖30

然后創(chuàng)建最后一個(gè)粒子,為粒子mainPart添加另一個(gè)拖尾效果,選擇粒子mainPart,選擇Particles->Emit From Obects后邊的小方塊,打開(kāi)物體發(fā)射選項(xiàng)窗口,設(shè)置發(fā)射器的類型為點(diǎn)發(fā)射器,速度和隨機(jī)速度都為1 。命名剛創(chuàng)建出來(lái)的粒子為mainTailPart1。(圖31)

圖31

修改粒子mainTailPart1的生命類型為隨機(jī)范圍,生命值為1,隨機(jī)生命為0.5,修改粒子mainTailPart1的渲染類型為多點(diǎn),勾選顏色疊加,多點(diǎn)數(shù)量為10,多點(diǎn)半徑為0.05,點(diǎn)的大小為1。為粒子mainTailPart1添加每粒子顏色rgbPP,每粒子透明opacityPP。分別為粒子mainTailPart1的rgbPP和opacityPP添加兩個(gè)默認(rèn)的斜面紋理,適當(dāng)修改兩個(gè)紋理的V值和顏色。(圖32)

圖32

調(diào)整基本色調(diào),這里的顏色控制,主要在粒子mainPart上,它的顏色決定了后面所有粒子的顏色,現(xiàn)在來(lái)調(diào)整一下煙花的色調(diào)。選擇粒子mainPart,在屬性編輯器里編輯它的rgbPP的斜面紋理的顏色。(圖33)

圖33

在Outliner中,將所有的物體選擇,這里只選擇最上層的物體。(圖34)

圖34

按Ctrl+G快捷鍵,打組,名命新組為yanhuaGrp。到此為一組顏色偏暖的煙花效果,保存文件,命名文件為yanhua。另存文件,命名文件yanhua_ok。選擇File->Import導(dǎo)入窗口中選擇yanhua文件,點(diǎn)擊Import按鈕,導(dǎo)入同樣的煙花粒子。(圖35)

圖35

調(diào)整新導(dǎo)入的煙花粒子發(fā)射器的位置,在Y軸旋轉(zhuǎn)45度。選擇新導(dǎo)入的粒子yanhua:mainPartShape,調(diào)整它發(fā)射器的隨機(jī)屬性。(圖36)

圖36

調(diào)整新導(dǎo)入的粒子yanhua:mainPartShape的每粒子顏色屬性,使其與前邊的顏色不同。(圖37)

圖37

修改導(dǎo)入粒子的表達(dá)方式,這步很重要。選擇粒子yanhua:sparkPart,打開(kāi)創(chuàng)建時(shí)表達(dá)方式編輯窗口,看一下修改前的。(圖38)

圖38

本來(lái)表達(dá)式是可以自動(dòng)修改物體名的。但因?yàn)檫@里的表達(dá)式里使用了MEL命令,物體的名字在這里沒(méi)有自動(dòng)更新,所以要手動(dòng)修改表達(dá)式,修改之后的表達(dá)式。(圖39)

圖39

粒子yanhua:mainTailPart,yanhua:sparkTailPart的表達(dá)方式做同樣的修改。(圖40)

圖40

注:這里為了得到更隨機(jī)的效果,很多東西都可以調(diào)整,比如場(chǎng)的參數(shù),粒子的各個(gè)參數(shù)等等。

重復(fù)前五步,導(dǎo)入第三組粒子,完成最終效果。(圖41、42)

圖41


朱峰社區(qū)三維動(dòng)畫(huà)出爐 朱峰社區(qū)三維動(dòng)畫(huà)出爐

朱峰社區(qū)網(wǎng)頁(yè)版
朱峰社區(qū)網(wǎng)頁(yè)版(手機(jī)掃描-分享-添加到屏幕)


朱峰社區(qū)公眾號(hào)
朱峰社區(qū)微信公眾號(hào)(微信掃一掃-關(guān)注)

資源說(shuō)明圖文教程無(wú)法下載,只能觀看圖片和文字。
版權(quán)規(guī)則本站圖文皆來(lái)自互聯(lián)網(wǎng)共享資源,如涉及到版權(quán)請(qǐng)查看版權(quán)規(guī)則。本平臺(tái)提供圖文僅可用于個(gè)人學(xué)習(xí),如用于商業(yè)請(qǐng)購(gòu)買正版。您必須遵守的版權(quán)規(guī)則

未知用戶

未知用戶

2005-2025 朱峰社區(qū) 版權(quán)所有 遼ICP備2021001865號(hào)-1
2005-2025 ZhuFeng Community All Rights Reserved

VIP

朱峰社區(qū)微信公眾號(hào)

回頂部

1.復(fù)制文本發(fā)給您的QQ好友或群、微信等;好友點(diǎn)擊鏈接以后,轉(zhuǎn)發(fā)就成功了。 2.如朋友點(diǎn)擊您的鏈接,您需要需刷新一下才行;同一個(gè)好友僅能點(diǎn)擊一次。
購(gòu)買VIP,觀看所有收費(fèi)教程!