maya2009教程:maya nparticles制作煙霧特效
在maya 2009中這是一套全新的粒子系統(tǒng),我們稱之為 maya® nparticles. nparticles 使用 maya® nucleus™系統(tǒng) , 這套系統(tǒng)與我們之前接觸過的ncloth系統(tǒng)極為相似。 nucleus 系統(tǒng)的最大特點在于,粒子不但可以和ncloth布料進行碰撞,而且支持粒子碰撞與粒子堆積效果。 你可以使用基于nucleus系統(tǒng)的 nparticles 進行nconstraints(新的動力學(xué)約束系統(tǒng))來創(chuàng)造出更多的粒子特效,這和以前的粒子系統(tǒng)大相徑庭。就好比其他nucleus物體, nparticle 可以被分配到一個系統(tǒng)進行迭代方式求解。
圖1
此外,基于nucleus的動力學(xué)系統(tǒng), nparticles 同樣可以以maya 經(jīng)典粒子系統(tǒng)進行g(shù)oal運算, 幾何體替代, 以及精靈替代特效. nparticles也可以操縱外部非nucleus力場,例如風(fēng)場與重力場等。
圖2
nparticle 碰撞
當(dāng)nparticles創(chuàng)建時,它們能夠自動撞擊ncloth布料,被動的對象,和其他nparticle粒子. 當(dāng)nparticles 與ncloth進行碰撞時, 你可以對nparticles進行立場添加以驅(qū)使ncloth進行形變. 例如, 你可以創(chuàng)建一個 nparticle 制作的雨滴特效濺在一個由ncloth 制作的雨傘上,來模擬雨中前行特效. nparticles 同樣支持自碰撞, 也就是說, nparticles可以與來自同一發(fā)射器的nparticle對象產(chǎn)生碰撞和互動. nparticle 同樣也只能在 nparticles 與 ncloth 或被動物體之間進行碰撞。 ( 當(dāng)然也必須是在同一maya nucleus 系統(tǒng)下)
nparticle 約束
你可以使用 nconstraints 去約束與控制nparticles的運動路徑 以及 nparticle 與其它的nucleus 系統(tǒng)影響物. 例如,您可以約束nparticles 到一個有動畫的ncloth或一個nmesh被動物,使粒子產(chǎn)生噴濺、燃燒以及模擬煙霧的效果。. nparticles同樣可以被transform(位置), component to component(元素間), point to surface(店面), slide on surface(面滑行), 以及force field(強制場)等約束。
圖3
每粒子屬性的內(nèi)部漸變
nparticles 都會有一個每粒子屬性內(nèi)部漸變在nparticleshape 節(jié)點上. 內(nèi)部漸變可以控制每個粒子的半徑、質(zhì)量、顏色、不透明度以及自發(fā)光屬性. nparticle 的工作原理類似于 maya 的ramp紋理, 但是可以為變化范圍與輸入極值以及隨機乘數(shù)輸出極值提供額外的控制。
當(dāng)你想用表達式進行控制時,每粒子屬性的內(nèi)部漸變節(jié)點同樣可以被刪除。
nparticles與強制場
nparticles 提供強制場。 強制場屬性可以讓你的粒子與ncloth物體產(chǎn)生吸附或排斥。 npartice 強制場以 場強決定影響范圍。當(dāng)然,前提是這個場的影響物必須是激活狀態(tài)。
圖4
nparticles的流體解算
nparticles 提供流體結(jié)算屬性,用來模擬水流、巖漿等流體效果. 用來控制流體效果的屬性有很多,比如 viscosity(粘稠度), 這樣你既可以創(chuàng)建出湍急的瀑布,也可以制造出滾燙粘稠的熔巖。
圖5
nparticle 轉(zhuǎn)換多邊形
當(dāng)一個nparticles形成一個形態(tài),并且當(dāng)我們想把這個靜止的融合形態(tài)轉(zhuǎn)換成為一個多邊形物體時,maya 2009支持nparticle向多邊形轉(zhuǎn)換。 nparticle 轉(zhuǎn)換的多邊形網(wǎng)格和一般多邊形一樣可以編輯與命令操作. 在轉(zhuǎn)換操作前,你可以對精度進行控制. nparticle 輸出網(wǎng)格同樣可以模擬類似realflow的mesh輸出。
案例準(zhǔn)備
為了保證工作流程順利穩(wěn)定的進行,請按下列操作進行準(zhǔn)備:
請自備一個maya場景,這里我使用已經(jīng)制作好的場景,該場景文件包含了已經(jīng)賦予材質(zhì)的模型,包括桌子、煙灰缸、香煙以及所有多邊形網(wǎng)格。
圖6
創(chuàng)建nparticle與發(fā)射物體
1. 選擇 nparticles > create nparticles, 并且勾選 cloud云方式創(chuàng)建。
圖7
勾選 cloud 模式時預(yù)設(shè)了很多 nparticle的形狀節(jié)點屬性用來創(chuàng)建例如沿、沙塵以及霧等效果的參數(shù)。
2. 創(chuàng)建一個nparticle 發(fā)射物體, 選擇 nparticles > create nparticles > create emitter >
emitter options (create) 窗口出現(xiàn)。
圖8
3. 在emitter options (create) 窗口中, 選擇edit > reset settings重置設(shè)置。
4. 在 emitter name 框中, 輸入 emitter_smoke. 當(dāng)你在outliner中想選擇物體發(fā)射器的屬性并調(diào)整時,發(fā)射器的命名就顯得尤為重要了。
5. 在solver 列表中, 選擇 create new solver創(chuàng)建新的解算器. 這項操作可以為你的nparticle系統(tǒng)創(chuàng)建一個從屬關(guān)系的核心解算器。
6. 在emitter type列表中,選擇 volume體積類型. 當(dāng)您嘗試從一個特定區(qū)域均勻噴出粒子,體積類型發(fā)射非常適合模擬從香煙頂部發(fā)射的效果。
7. 設(shè)置rate (particle/sec) 發(fā)射率為100. 這個參數(shù)設(shè)置的數(shù)目表示粒子排放的速率而不是速度。這直接影響場景中粒子發(fā)射的密度。rate值越高,排放的煙霧就會越濃密。
8. 在distance/direction attributes (距離、方向?qū)傩裕┚碚箼谥? 做以下調(diào)整:
• 設(shè)置directionx 為 0.
• 設(shè)置 directiony 為 1.
direction 表示發(fā)射器發(fā)射的粒子與發(fā)射器之間的相對位置與方向. 當(dāng) directiony 設(shè)置為 1時, nparticle 將會沿著y軸進行發(fā)射粒子,用來模擬煙霧在空氣中飄的方向。
9. 在basic emission speed attributes卷展欄中, 設(shè)置speed random 為 5. 當(dāng)速度隨機值設(shè)置為一個值時,發(fā)射產(chǎn)生的隨機速度將會影響每個nparticle 系統(tǒng)。
圖9
10. 在volume emitter attributes卷展欄中, 做如下操作設(shè)置:
• 在volume shape 列表中, 選擇 sphere.
• 設(shè)置 volume sweep 為 180.
此設(shè)置將會創(chuàng)建一個半球形發(fā)射,用來模擬香煙頂部的形狀。
11. 在volume speed attributes 卷展欄中, 做以下操作:
• 設(shè)置along axis 為 1.
• 設(shè)置random direction為 0.1.
這將創(chuàng)建一些方向上的噪波隨機值發(fā)射出的n粒子并且促使它們可以形成一個錐狀發(fā)射。
• 設(shè)置directional speed 為 10.
這個設(shè)置將會添加一個方向上的速度,它對xyz三個軸以及所有類型的體積發(fā)射器都有效。
12. 點擊create創(chuàng)建發(fā)射器.
產(chǎn)生一個 emitter_smoke1, nparticleshape1, 以及一個nucleus1 節(jié)點出現(xiàn)在屬性編輯器中 。
圖10
nparticle 發(fā)射器的移動
當(dāng)你開始進行動力學(xué)解算的時候, 你將會發(fā)現(xiàn)nparticles正在原點開始噴射,這時你需要把發(fā)射器移動到香煙的頂部。
移動nparticle 發(fā)射器
1. 在outliner大綱視圖中, 選擇emitter_smoke1。
2. 選擇display > ui elements > channel box/layer editor 以顯示the channel box通道欄。
3. 在channel box通道欄中輸入以下數(shù)值:
• translate x: 49.3
• translate y: 120
• translate z: -27.3
• rotate y: -90
• scale z: 1.5
4. 在場景視圖中, 推拉搖移你的視圖以便更近的觀察香煙頂部?,F(xiàn)在nparticle發(fā)射器已經(jīng)被移動到香煙的頂部了。
5. 進行動力學(xué)解算。
nparticles現(xiàn)在已經(jīng)從香煙的頂部噴射出煙霧了. 但是其大小和顏色都是默認(rèn)值. 在下一節(jié)中您將會設(shè)定nparticle的大小,使粒子的外觀更像煙。
圖11
編輯生命值與粒子半徑
你開始播放解算動力學(xué)運算時, 你將會發(fā)現(xiàn)nparticles 并沒有在升到空中時消散掉. 這是因為nparticles壽命還沒有被指定. 使用nparticle lifespan attributes(生命周期屬性) 你就可以調(diào)節(jié)nparticle 何時死亡。 你同樣可以設(shè)置nparticle 的粒子半徑以及粒子半徑隨生命值的變化而如何變化。
設(shè)置nparticle 的生命周期
1. 打開outliner大綱窗口, 選擇nparticle1。
2. 打開attribute editor屬性編輯器, 點擊nparticleshape1選項卡。
3. 在lifespan中, 在lifespan mode中選擇 random range。
4. 進行動力學(xué)解算。
nparticles 現(xiàn)在發(fā)射出來以后很快就消亡了. nparticle lifespan是一個以秒為單位的數(shù)據(jù), 這就意味著如果lifespan 為1.0時, nparticles將會在1秒鐘之后消亡。
圖12
5. 設(shè)置lifespan 為 10。
6. 講時間滑條退回第一幀,并且從新進行動力學(xué)解算. nparticles 將會在其噴射出10秒鐘后消亡. 在本教學(xué)案例中,我們設(shè)置lifespan 為 20。
7. 讓我們給nparticle’s 的生命周期加入一些隨機值,這樣我們設(shè)置lifespan random為15。
8. 將時間滑條退回第一幀并從新播放解算。
nparticle的死亡已經(jīng)隨機了,但是 nparticle 并不像煙一樣濃密. 你可以使你的 nparticle 變得更密集一點,這樣我可以增大nparticle 的radius。
圖13
為了使效果更像一個煙霧的效果, nparticles 必須在它們升到空氣中時逐漸的散開。你可以使用radius scale ramp這個值去增加每粒子半徑, 直到他們看起來像是在空中消散的效果。
設(shè)置nparticle尺寸
1. 在particle size中,設(shè)置radius為1.0。
2. 在radius scale中, 點擊一個位置,這樣可以增加一個可調(diào)節(jié)的點。
圖14
創(chuàng)建一個新的標(biāo)記點,這樣你就可以調(diào)節(jié)它的位置與大小. 舉例來說,每個選定的價值指定一個尺度值為nparticle對象的radius屬性。默認(rèn)情況下ramp規(guī)定一個值為1, 也就是說只有一個值標(biāo)記在ramp上的時候,這個值全部取1. 再設(shè)置一個標(biāo)記點為0.5那么每個粒子隨著時間的變化,半徑會從1降低到0.5進行類似消散的漸變動畫。
3. 選擇第一個標(biāo)記點設(shè)置 selected position 為 0, 并且selected value為0.50。
4. 點擊第二個標(biāo)記點. 設(shè)置selected position為1, 并且selected value為1.5。
圖15
5. 讓nparticles的半徑沿自身壽命而變化, 設(shè)置radius scale input為normalized age. 當(dāng)normalized age被使用時, 每粒子半徑就會隨著nparticle的生命周期變化而變化。
6. 設(shè)置interpolation為smooth。
7. 進行動力學(xué)解算. 你可以繼續(xù)調(diào)整曲線,直到效果滿意為止。
圖16
8. 對每粒子半徑添加隨機值, 設(shè)置 radius scale randomize為 0.25。
設(shè)置nparticle 材質(zhì)屬性
為了將nparticles調(diào)節(jié)的更像煙霧,你可以調(diào)節(jié)不透明度以達到更類似于在空氣中消散的效果,這就好比我們調(diào)節(jié)粒子壽命時那樣進行調(diào)節(jié)。
如nparticle半徑屬性, nparticle的顏色與不透明度同樣可以在每粒子屬性中進行設(shè)置。使用nparticle 的 shading ramps, 就可以調(diào)節(jié)每粒子顏色與不透明度。
設(shè)置nparticle顏色屬性
1. 在outliner大綱窗口中, 選擇nparticle1.
2. 打開attribute editor, 點擊nparticleshape1卷展欄.
3. 在shading選項卡中, 打開 color 欄.
4. 設(shè)置其最左側(cè)的標(biāo)記為白色.
圖17
5. 設(shè)置中間色為灰色, 或者調(diào)整色彩模式為hsv (hue-saturation-value):
• h: 0
• s: 0
• v: 0.5
播放解算你的粒子,這樣你會發(fā)現(xiàn)它更像一個煙霧的效果.
圖38
6. 點擊顏色曲線中最右側(cè)的標(biāo)記點,并且打開顏色選擇器.
7. 在顏色選擇器中選擇一個更深的灰色,或者調(diào)整hsv (hue-saturation-value) 為:
• h: 0
• s: 0
• v: 0.25
8. 設(shè)置color input為normalized age. 當(dāng)每個nparticle在其發(fā)射后, 它的顏色會像之前調(diào)節(jié)的顏色曲線一樣從白色變?yōu)樯罨疑?。
9. 為了將nparticles的顏色像它們的壽命一樣融合的更好,我們需要做以下操作:
• 設(shè)置interpolation為smooth(每個標(biāo)記點都要做).
• 設(shè)置color randomize 為0.75.
當(dāng)你進行動力學(xué)解算時, 會發(fā)現(xiàn)煙霧好像有點過于密集和厚實. 為了把它變得更薄更透一些, 我們就可以調(diào)整nparticle的不透明度.
圖39
設(shè)置nparticle的不透明度
1. 在opacity scale 選項中, 點擊漸變曲線圖, 并且設(shè)置opacity曲線圖上的三個標(biāo)記點:
• position: 0, value: 1
• position: 0.63, value: 0.22
• position: 1, value: 0
2. 設(shè)置interpolation為smooth(每個標(biāo)記點都要做).
3. 設(shè)置opacity scale input 為 normalized age.
圖40
4. 播放并進行動力學(xué)解算.
在本案例中, 你可以使用nucleus系統(tǒng)的風(fēng)去影響煙霧以便它在上升的時候有青煙飄渺的效果. 無論哪個nucleus影響物體(ncloth物體或者其他nparticle物體) t被賦予同樣的nucleus結(jié)算系統(tǒng)都同時被強制場(風(fēng)場)所影響.
設(shè)置nucleus wind風(fēng)到你的場景中.
1. 打開attribute editor,點擊nucleus1 選項卡.
2. 在gravity and wind欄中, 設(shè)置wind speed 為2.0. wind speed 決定了風(fēng)的強度與大小. 值越大表示風(fēng)速越強.
3. 設(shè)置風(fēng)的方向, 需要做以下設(shè)置:
• 設(shè)置wind direction 為 1 (x axis).
• 設(shè)置wind direction 為0 in(y axis).
• 設(shè)置wind direction為 -1 (z axis).
4. 設(shè)置wind noise為3.0. 這個操作是為了增加風(fēng)的隨機效果.
5. 播放并解算動力學(xué).
圖41
現(xiàn)在我們的煙霧已經(jīng)在空氣中自由的擴散了.
你同樣可以調(diào)整煙霧的解算設(shè)置, 比如提高nparticle發(fā)射速率(rate)為150 或者調(diào)節(jié)radius scale的變化曲線圖, 顏色、不透明度的變化曲線圖等.
本3d教程完。
- Tags:Maya
-
分享到:
全部評論:0條