宋瑋 黃學(xué)軍 陳志勛
摘 ?要: 為了改善特效制作效果,更好的利用MAYA制作動(dòng)畫(huà)特效。通過(guò),根據(jù)MAYA操作實(shí)際情況,以龍卷風(fēng)特效制作為例,介紹了如何運(yùn)用MAYA制作龍卷風(fēng)特效。通過(guò)MAYA能夠制作出逼真的動(dòng)畫(huà)特效。因此,可以在特效制作過(guò)程之中合理運(yùn)用MAYA,進(jìn)而作出精彩的特效。
關(guān)鍵詞: MAYA;龍卷風(fēng);特效
中圖分類(lèi)號(hào): TP391.41 ? ?文獻(xiàn)標(biāo)識(shí)碼: A ? ?DOI:10.3969/j.issn.1003-6970.2020.08.054
本文著錄格式:宋瑋,黃學(xué)軍,陳志勛. MAYA實(shí)現(xiàn)龍卷風(fēng)特效實(shí)踐[J]. 軟件,2020,41(08):200-204
【Abstract】: In order to improve the effect of special effects, better use Maya to make animation effects. Through, according to the actual situation of Maya operation, taking tornado special effect production as an example, this paper introduces how to use Maya to make tornado effect. Through Maya, we can make realistic animation effects. Therefore, we can use Maya reasonably in the process of special effects production, and then make wonderful special effects.
【Key words】: Maya; Tornado; Special effects
0 ?引言
MAYA軟件是Autodesk旗下的三維建模和動(dòng)畫(huà)軟件,也是現(xiàn)今最為流行三維動(dòng)畫(huà)軟件,在國(guó)外絕大多數(shù)的視覺(jué)設(shè)計(jì)領(lǐng)域都在使用maya,即使在國(guó)內(nèi)該軟件也是越來(lái)越普及,隨著計(jì)算機(jī)性能的不斷提升,越來(lái)越多的CG鏡頭被應(yīng)用到影視作品中,比如《指環(huán)王》、《蜘蛛俠》、《哈里波特》、《權(quán)力的游戲》等系列作品都出自MAYA。
為更好地制作龍卷風(fēng)特效,首先簡(jiǎn)單介紹龍卷風(fēng)的形成過(guò)程:在高溫高濕的不穩(wěn)定云團(tuán)中,地面與高空中的空氣溫差過(guò)大,使得熱空氣迅速上升,冷空氣急劇下降,上下層空氣對(duì)流速度過(guò)快形成許多小漩渦。當(dāng)漩渦逐漸擴(kuò)大再加上激烈震蕩就容易形成大漩渦,當(dāng)發(fā)展的渦旋到達(dá)地面高度時(shí),地面氣壓急劇下降,地面風(fēng)速急劇上升,形成龍卷風(fēng)。龍卷風(fēng)中心的風(fēng)速極快,破壞力極強(qiáng),常會(huì)拔起大樹(shù)、掀翻地面物體甚至摧毀建筑物等。
圖1是用Maya實(shí)現(xiàn)龍卷風(fēng)的最終合成圖,按制在介紹龍卷風(fēng)主體整個(gè)制作過(guò)程之前先簡(jiǎn)單介紹特效中需要用到的粒子、力場(chǎng)、流體、以及粒子表達(dá)式的相關(guān)屬性和知識(shí)點(diǎn)。
1 ?粒子系統(tǒng)
粒子系統(tǒng)主要是用來(lái)模擬用基礎(chǔ)幾何體無(wú)法表達(dá)的物理現(xiàn)象,比如煙霧、云霧、火焰、水流、爆炸、雷電等。主要用到幾個(gè)屬性。
發(fā)射類(lèi)型:Maya粒子有點(diǎn)發(fā)射、線發(fā)射、面發(fā)射、體積發(fā)射以及從物體發(fā)射等幾種。
發(fā)射速率:發(fā)射器在一秒內(nèi)發(fā)射粒子的數(shù)量。
生命周期:粒子的生存時(shí)間,可以永久,指定時(shí)間或者指定區(qū)間內(nèi)隨機(jī)生命值。
粒子可以通過(guò)Goal命令將粒子吸附到幾何表面的控制點(diǎn)。
2 ?Maya力場(chǎng)
Maya力場(chǎng)是動(dòng)力學(xué)模擬中不可缺少的一部分,為動(dòng)力學(xué)對(duì)象比如粒子、布料、幾何體等產(chǎn)生運(yùn)動(dòng)所需的力。包括獨(dú)立場(chǎng)(比如重力場(chǎng)、空氣場(chǎng)等)、對(duì)象場(chǎng)(由對(duì)象產(chǎn)生對(duì)對(duì)象自身或其他對(duì)象產(chǎn)生影響)、體積場(chǎng)(對(duì)封閉空間內(nèi)的動(dòng)力學(xué)對(duì)象產(chǎn)生影響)、體積軸場(chǎng)(用Nurbs曲線定義一個(gè)軸場(chǎng),影響該曲線軸場(chǎng)范圍內(nèi)的動(dòng)力學(xué)對(duì)象)。主要用到以下幾個(gè)屬性。
Along Axis:沿軸運(yùn)動(dòng)。
Around ?Axis:繞軸運(yùn)動(dòng)。
Away From Axis:遠(yuǎn)離軸運(yùn)動(dòng)。
Away From Center:遠(yuǎn)離中心運(yùn)動(dòng)
Away From Center:遠(yuǎn)離軸心運(yùn)動(dòng)。
Magnitude:場(chǎng)強(qiáng)幅度。
Turbulence:模擬隨時(shí)間變化的湍流風(fēng)的力的強(qiáng)度。
Turbulence Speed:湍流隨時(shí)間更改的速度。
Turbulence Frequency X、Y、Z:控制適用于發(fā)射器邊界體積內(nèi)部的湍流函數(shù)的重復(fù)次數(shù)。
Detail Turbulence:第一個(gè)湍流由于慣性衍生出的第二個(gè)湍流的相對(duì)于第一個(gè)湍流的強(qiáng)度。
3 ?Maya流體主
Maya流體主要用來(lái)模擬各種大氣、液體、爆破等效果[1]。包括動(dòng)力學(xué)流體和非動(dòng)力學(xué)流體兩種,動(dòng)力學(xué)流體指遵循流體動(dòng)力學(xué)的物理規(guī)律,Maya內(nèi)部在每一幀都會(huì)用相關(guān)方程和公式來(lái)解算動(dòng)力學(xué)流體。非動(dòng)力學(xué)流體實(shí)際上是通過(guò)對(duì)流體的外觀和紋理設(shè)置相關(guān)動(dòng)畫(huà)來(lái)模擬流體運(yùn)動(dòng),在運(yùn)行效率上遠(yuǎn)快于動(dòng)力學(xué)流體,但由于僅僅只能模擬流體的外觀和紋理,實(shí)際上運(yùn)用有限,幾乎只能用來(lái)模擬2D流體。本文中使用的是動(dòng)力學(xué)流體,主要用到以下幾個(gè)模塊。
3.1 ?容器特性
Base Resolution:基本分辨率,在保持流體的最小單位依然為正方體時(shí),同時(shí)調(diào)整容器的X、Y、Z三軸的分辨率??梢院?jiǎn)單的理解為一個(gè)單位立方體中包含流體數(shù)量的多少。
Size X、Y、Z:流體容器在X、Y、Z方向上的單位數(shù)量??s放流體容器大小并不會(huì)增加流體容器的單位數(shù)量。
Auto Resize:自動(dòng)調(diào)整大小,因?yàn)樵趧?dòng)力學(xué)模擬中流體密度有可能會(huì)消散,較小的模擬區(qū)域可以提高模擬速度。
Resize Closed Boundaries:調(diào)整閉合邊界大小,啟用之后流體將沿X、Y、Z方向的邊界屬性設(shè)定來(lái)自動(dòng)調(diào)整大小。本文中用自動(dòng)調(diào)整大小以及調(diào)整閉合邊界大小使龍卷風(fēng)特效中沿Y方向自動(dòng)調(diào)整大小以節(jié)省計(jì)算量。
3.2 ?動(dòng)力學(xué)模擬
Dynamic Simulation:動(dòng)力學(xué)模擬部分包括了重力、粘度、摩檫力、阻尼等物理現(xiàn)象以及解算方式等屬性。
Substeps:子步,指在一幀中執(zhí)行計(jì)算的次數(shù),對(duì)高密度以及高細(xì)節(jié)的流體的穩(wěn)定性和模擬結(jié)果非常有用。
Contents Details:主要包含密度、速度、湍流、溫度、燃料、顏色幾個(gè)部分,下面介紹本文中僅涉及密度、速度、湍流相關(guān)屬性。
密度Gradient Force:漸變力指沿密度變化方向上的力,正值使流體逐漸蓬松、負(fù)值使流體緊縮,效果類(lèi)似于Self Attraction and Repulsion(自吸引和排斥),但由于該屬性?xún)H對(duì)相鄰流體進(jìn)行解算,所以會(huì)降低不少的解算時(shí)間。
速度Swirl:可以在流體生成小比例的漩渦和渦流。
湍流屬性與動(dòng)力場(chǎng)的湍流完全相同。
3.3 ?流體著色
Shading屬性包括了流體的透明度、輝光、顏色、不透明度等著色屬性。
4 ?粒子表達(dá)式
粒子表達(dá)式是Maya的Mel語(yǔ)言與粒子本身屬性以及自定義屬性相結(jié)合的結(jié)果,可以編寫(xiě)表達(dá)式同時(shí)控制所有的粒子或者按不同的方式控制每個(gè)單一的粒子[2]。分為創(chuàng)建時(shí)表達(dá)式和運(yùn)行時(shí)表達(dá)式兩種,創(chuàng)建時(shí)表達(dá)式在發(fā)射粒子或運(yùn)行動(dòng)畫(huà)前時(shí)執(zhí)行,僅僅影響粒子運(yùn)動(dòng)的第一幀。運(yùn)動(dòng)時(shí)表達(dá)式在除發(fā)射粒子以外的每一幀都執(zhí)行??梢詫⒘W釉谶\(yùn)行時(shí)某一幀的狀態(tài)(包括位置、速度、旋轉(zhuǎn)、縮放等)初始化為粒子第一幀。
圖2是龍卷風(fēng)主體的制作流程圖,可以看到包括了一個(gè)由Nurbs曲線、圓環(huán)擠壓產(chǎn)生的Nurbs曲面,然后再由曲面重建UV后得到第一套粒子系統(tǒng)粒子1,粒子1的運(yùn)動(dòng)是連續(xù)并且一致的,產(chǎn)生的流體完全無(wú)法控制。為實(shí)現(xiàn)真實(shí)的龍卷風(fēng)效果,還需要由粒子1發(fā)射第二套粒子系統(tǒng)粒子2。為了得到龍卷風(fēng)外部的湍流運(yùn)動(dòng)細(xì)節(jié),再由Nurbs曲線創(chuàng)建一個(gè)volumeAxis?Fields體積軸場(chǎng)。用于控制粒子2和流體容器的運(yùn)動(dòng)細(xì)節(jié),粒子2緩存之后作為流體容器的發(fā)射器。流體容器產(chǎn)生的流體云,也就是最終形成的龍卷風(fēng),由流體自身的動(dòng)態(tài)模擬屬性、粒子2、以及volumeAxisFields體積軸場(chǎng)三個(gè)部分共同控制。
4.1 ?Nubrs曲面部分
Nubrs曲面由Nurbs曲線和圓環(huán)擠壓產(chǎn)生,然后通過(guò)調(diào)整曲面的控制點(diǎn)得到龍卷風(fēng)的外形,這里需要注意的是Nurbs曲面要?jiǎng)h除創(chuàng)建歷史,否則在通過(guò)Nurbs曲線創(chuàng)建volumeAxisFields體積軸場(chǎng)的時(shí)候如果需要調(diào)節(jié)Nurbs曲線會(huì)同樣影響到Nurbs曲面的形狀。而且為了方便以后的粒子計(jì)算,需要重建該柱面的UV的范圍為0到1[3-4]。該曲面的主要作用是將粒子1執(zhí)行Goal命令將粒子1吸附到曲面上。最后制作出的曲面如圖3所示。
4.2 ?粒子系統(tǒng)1部分
為模擬龍卷風(fēng)特效,粒子1需要粒子從上自下沿曲面V方向運(yùn)動(dòng),并且在曲面的U方向上順時(shí)針旋轉(zhuǎn)。
創(chuàng)建粒子發(fā)射器,把發(fā)射器放到Nurbs曲面的頂端附近。為方便以后計(jì)算以及后期合成,將MAYA的默認(rèn)幀率設(shè)置為25幀每秒,發(fā)射器的發(fā)射速率Rate設(shè)定在500左右。選擇發(fā)射器產(chǎn)生的粒子1與龍卷風(fēng)曲面執(zhí)行Goal命令,目標(biāo)權(quán)重設(shè)為1,可以將粒子吸附到龍卷風(fēng)曲面的控制點(diǎn)上。為了得到自上而下的螺旋線運(yùn)動(dòng),給粒子1添加GoalU、GoalV兩個(gè)屬性,在GoalV屬性上添加漸變貼圖,并調(diào)節(jié)漸變方向使粒子自上而下沿曲面U=0的參考線運(yùn)動(dòng)。粒子的運(yùn)動(dòng)速度由粒子壽命lifespan決定,即lifespan屬性值等于粒子從上至下運(yùn)動(dòng)所需的時(shí)間,這里設(shè)置為8秒。在給GoalU屬性添加Creation創(chuàng)建時(shí)表達(dá)式particleShape1.goalU= rand(1,0),可以得到粒子在Nurbs曲面上邊緣的隨機(jī)位置沿曲面自上而下運(yùn)動(dòng),類(lèi)似下雪的散射效果。在GoalU屬性添加Runtime before dynamic運(yùn)行表達(dá)式particleShape1.goalU+=0.015。這里的0.015就是粒子每幀沿U方向的位移增量。到這里已經(jīng)得到了沿曲面進(jìn)行自上而下的螺旋運(yùn)動(dòng)的粒子1。
4.3 ?粒子系統(tǒng)2部分
粒子系統(tǒng)2由粒子系統(tǒng)1創(chuàng)建,主要作用是完整的模擬出龍卷風(fēng)的運(yùn)動(dòng)軌跡以及外部的湍流細(xì)節(jié)。
選擇粒子1,執(zhí)行nParticles菜單下的Emit from Object,發(fā)射類(lèi)型設(shè)置為Omni,發(fā)射速率22左右。粒子2是在粒子1的基礎(chǔ)上發(fā)射粒子,生命周期需要設(shè)置得短一些,粒子2設(shè)置為隨機(jī)生命,Lifespan為0.25,Lifespan Random為0.125,粒子2的生命值在(0.125,0.375)這個(gè)區(qū)間中隨機(jī)取值。為模擬龍卷風(fēng)的效果,粒子2的運(yùn)動(dòng)速度相對(duì)粒子1更慢一些,把Conserve值設(shè)為0.75,該屬性表示粒子的相對(duì)速度值。這里得到的粒子2系統(tǒng)只是從粒子1系統(tǒng)直接發(fā)射出的散射效果,并沒(méi)有龍卷風(fēng)外形中的湍流效果。
接下來(lái)為粒子2添加Volume Curve曲線控制,選擇nurbs曲線,執(zhí)行Fields/Solvers菜單下的Volume Curve命令,可以得到一段和曲線形狀走勢(shì)相同的體積軸場(chǎng)volumeAxisFields,作用范圍就是在體積軸場(chǎng)的封裝范圍內(nèi),用這個(gè)場(chǎng)去控制粒子2的發(fā)射形態(tài)可以得到很好的龍卷風(fēng)外形[5-6]。設(shè)置volumeAxisFields的section Radius半徑值為8左右,添加Curve Radius的控制點(diǎn),使體積軸場(chǎng)的外形與開(kāi)始創(chuàng)建的NURBS柱面相似并且完全把柱面封裝在體積軸場(chǎng)以?xún)?nèi)。設(shè)置好體積軸場(chǎng)的外形之后選擇第二套粒子以及體積軸場(chǎng)執(zhí)行Fields/Solvers菜單下Assign to select命令使體積軸場(chǎng)與第二套粒子關(guān)聯(lián)。設(shè)置體積軸場(chǎng)的Along Axis、Away From Center值為0,這兩個(gè)值會(huì)影響第二套粒子偏離軸以及偏離中心的值,龍卷風(fēng)特效中并不需要粒子偏離軸以及偏離中心。現(xiàn)在的第二套粒子運(yùn)動(dòng)與添加體積軸場(chǎng)之前的運(yùn)動(dòng)并沒(méi)有太大區(qū)別,為了得到龍卷風(fēng)外外層那些類(lèi)似小溪湍流的形體效果,將體積軸場(chǎng)的Turbulence、Turbulence Speed、Detail Turbulence值設(shè)置為1,Turbulence Frequency X、Y、Z值設(shè)為0.75。現(xiàn)在得到的粒子運(yùn)動(dòng)與龍卷風(fēng)就很相似了,也可以細(xì)調(diào)之前的第二套粒子的生命周期區(qū)間,Turbulence相關(guān)的屬性值,直到符合效果為止。在調(diào)整結(jié)束之后必須要為粒子做緩存,否則因?yàn)殡S機(jī)值的存在粒子在每次播放的運(yùn)動(dòng)都不可能完全與上一次一致,這對(duì)后期的渲染合成來(lái)說(shuō)是致命的,因?yàn)橐坏┖铣尚枰{(diào)整某一幀畫(huà)面的時(shí)候,無(wú)法再通過(guò)渲染得到完全一致的畫(huà)面。緩存的目的就是把粒子的運(yùn)動(dòng)結(jié)果保存到磁盤(pán)上,保證每次粒子運(yùn)動(dòng)的一致性。選擇第二套粒子執(zhí)行nCache中的Crate Particle Disk Cache命令,設(shè)置緩存目錄以及緩存更新方式即可。接下來(lái)使用第二套粒子以及MAYA流體實(shí)現(xiàn)龍卷風(fēng)效果。
4.4 ?流體云部分
流體云部分是最后實(shí)際形成的龍卷風(fēng)主體,粒子2系統(tǒng)作為流體云的發(fā)射器負(fù)責(zé)流體的發(fā)射,體積軸場(chǎng)作為外部場(chǎng)對(duì)流體產(chǎn)生影響,流體自身的動(dòng)態(tài)模擬、著色等都在流體云部分進(jìn)行設(shè)置。
創(chuàng)建3D流體容器,并且在容器中不添加任何發(fā)射器。將容器的位置移動(dòng)到龍卷風(fēng)的頂端附近,將流體容器的分辨率設(shè)置為80左右,該分辨率只是在測(cè)試過(guò)程便于觀察的折中分辨率,設(shè)置過(guò)高影響測(cè)試速度,太低無(wú)法體現(xiàn)效果。
流體容器的X、Z方向的面積大小要足以包含第二套粒子,讓流體在擴(kuò)散的過(guò)程中不至于觸碰到容器。這里設(shè)置SizeX、Z屬性值為24。Y方向會(huì)用跟隨粒子的方式進(jìn)行自動(dòng)大小調(diào)節(jié),SizeY給一個(gè)初始值5,以避免在最開(kāi)始粒子運(yùn)動(dòng)的時(shí)候尺寸太小流體觸碰到容器。BoundaryX、Z設(shè)置為bothsides,BoundaryY設(shè)置為Yside。在Auto Resize選項(xiàng)里勾選Auto Resize選項(xiàng),取消勾選Resize Closed Boundaries選項(xiàng),這樣就指定自動(dòng)調(diào)整大小為Y方向。為保證自動(dòng)大小調(diào)節(jié)的過(guò)程中流體不會(huì)觸碰到容器壁,Auto Resize Margin值設(shè)置為3。
流體模擬龍卷風(fēng)特效中只需要流體的動(dòng)力學(xué)以及密度兩個(gè)屬性,首先設(shè)置流體的動(dòng)態(tài)模擬,Gravity重力設(shè)置9.8。由于龍卷風(fēng)特效中并不需要viscosity粘度以及Friction摩檫力,設(shè)置為0。Damp阻尼可以控制流體的矢量速度,該屬性的大小值很敏感,這里設(shè)置為0.03。High Detail Solve高質(zhì)量解算設(shè)置為All grids。由于流體是從粒子產(chǎn)生的,substeps設(shè)置為2或者更高一些,并且勾選Emit in substeps選項(xiàng),以避免隨機(jī)壽命很小的粒子不能發(fā)射出流體。Solver Quality解算質(zhì)量可以設(shè)置得高一些,比如200左右。這里的解算只是對(duì)流體的運(yùn)動(dòng)進(jìn)行解算。在Density面板下設(shè)置Dissipation耗散值為3左右,Gradient Force漸變力可以影響流體的膨脹,這里設(shè)置為45。在Velocity面板下設(shè)置Swirl旋流值為6左右,Noise噪聲值為0.25。Turbulence面板下設(shè)置Strength值為0.35,F(xiàn)requency、Speed值為0.5。最后選擇第二套粒子作為流體容器的發(fā)射器。
選擇fluidEmitter1,將發(fā)射類(lèi)型設(shè)置為Omni,為得到細(xì)膩的流體效果,Max Distance設(shè)置為0.1,這里的值是每個(gè)粒子發(fā)射的流體的寬度,0.1就是0.1個(gè)網(wǎng)格單位,默認(rèn)單位是厘米。Rate值設(shè)置為1200左右。流體的熱量和燃料通常用來(lái)模擬火焰、巖漿等,為節(jié)約計(jì)算資源,在Fluid Attributes面板下關(guān)閉發(fā)射Heat method、Fuel method。在之前制作的第二套粒子運(yùn)動(dòng)狀態(tài)已經(jīng)很好的模擬出龍卷風(fēng)效果,在Emissions Speed Attributes面板下設(shè)置Speed Method的方式為Replace,使粒子發(fā)射的流體繼承流體的速度,Inherit Velocity設(shè)置為1或者更高一些。到這里流體的動(dòng)力學(xué)部分就已經(jīng)設(shè)置完成,最后將流體與之前的體積軸場(chǎng)相關(guān)聯(lián)即可。
流體的著色,這個(gè)屬性與動(dòng)力學(xué)不同,這里的屬性在做了流體緩存之后依然可以根據(jù)緩存文件來(lái)進(jìn)行調(diào)整,并不需要重新緩存一次。主要是透明度、陰影、顏色等設(shè)置。在透明度面板下的Input Bias值可以很直觀的影響流體的厚度,Lighting面板下必須勾選Self Shadow自陰影選項(xiàng),否則流體看上去就是白糊糊一篇,沒(méi)有層次感。其他選項(xiàng)可根據(jù)審美需要調(diào)整。
流體的動(dòng)力學(xué)以及外觀屬性已經(jīng)設(shè)置完成,根據(jù)工作站的性能設(shè)置流體的基本分辨率,分辨率不宜低于150,否則會(huì)丟失很多細(xì)節(jié)甚至整個(gè)形態(tài)都會(huì)發(fā)生變化。也不宜過(guò)高,太高的分辨率在視覺(jué)上并沒(méi)有多少提升,但是計(jì)算量幾乎是以指數(shù)倍數(shù)增長(zhǎng)的。這里給出一個(gè)參考值,基礎(chǔ)分辨率設(shè)置200,3.4G的8線程Cpu計(jì)算完整的一次龍卷風(fēng)特效大約需要47小時(shí)左右。計(jì)算完成之后對(duì)流體進(jìn)行緩存,由于龍卷風(fēng)特效中并沒(méi)有使用流體的溫度、燃料、顏色以及紋理屬性,取消勾選這些選項(xiàng)可以提高緩存的速度。為方便后期管理緩存文件設(shè)置為指定時(shí)間范圍內(nèi)一個(gè)文件,由于緩存文件相對(duì)較大,本文中最后得到的緩存文件約為90G,所以緩存文件格式應(yīng)選擇mcx格式,該格式使用64位索引創(chuàng)建,大小可以超過(guò)2G,mcc使用32位索引創(chuàng)建,單個(gè)文件不能超過(guò)2G。
圖4為本文創(chuàng)建出的龍卷風(fēng)主體的動(dòng)畫(huà)截圖,可以看到外形基本和之前的Nurbs曲面保持一致,而且龍卷風(fēng)有自上而下逐漸產(chǎn)生的過(guò)程,在流體自身的動(dòng)力學(xué)屬性以及體積軸場(chǎng)的作用下,龍卷風(fēng)外部有很好的湍流以及消散細(xì)節(jié)。頂部積云以及底部龍卷風(fēng)兩個(gè)組成部分的創(chuàng)建過(guò)程與龍卷風(fēng)主體相同,僅僅是外形和細(xì)節(jié)上的區(qū)別,這里不再贅述。需要注意的是頂部積云與底部龍卷風(fēng)的速度與龍卷風(fēng)速度不同,頂部積云相對(duì)龍卷風(fēng)主體的旋轉(zhuǎn)速度要慢一些,底部龍卷風(fēng)的旋轉(zhuǎn)速度相對(duì)龍卷風(fēng)主體要稍快一些。在制作過(guò)程中流體旋轉(zhuǎn)速度就應(yīng)該相應(yīng)的設(shè)置得更慢或者更快一些。
4.5 ?地面塵埃
圖5是地面塵埃的創(chuàng)建流程圖,地面塵埃相對(duì)龍卷風(fēng)來(lái)說(shuō)要簡(jiǎn)單一些,僅僅需要一套粒子系統(tǒng)即可完成,基本思路是給粒子系統(tǒng)添加重力場(chǎng),使粒子與地平面發(fā)生碰撞,再給粒子添加體積場(chǎng),使粒子繞場(chǎng)中心旋轉(zhuǎn),緩存之后使用幾何體做粒子替代就可以渲染輸出了。這里簡(jiǎn)單介紹下粒子運(yùn)動(dòng)以及粒子替代的基本方法。
創(chuàng)建一套粒子系統(tǒng),將發(fā)射類(lèi)型設(shè)置為volume,發(fā)射速率為1500左右,即每秒發(fā)射1500個(gè)粒子。再將volume的類(lèi)型設(shè)置為Cube立方體,Cube的面積相比之前制作的龍卷風(fēng)相比要足夠大。發(fā)射器的Away From Center以及Away From Axis屬性設(shè)置為0。將時(shí)間線長(zhǎng)度設(shè)置為10秒,播放完動(dòng)畫(huà)可以得到約15000個(gè)粒子。盡管粒子的數(shù)量越高就顯得越真實(shí),但這里粒子的總數(shù)不宜過(guò)高,否則導(dǎo)入龍卷風(fēng)特效中會(huì)遮擋住大部分龍卷風(fēng),視覺(jué)效果并不好。然后對(duì)粒子進(jìn)行初始化,再將發(fā)射器的發(fā)射速率更改為0。創(chuàng)建一個(gè)地平面,面積至少要保證粒子不會(huì)掉到地平面以外。給粒子添加重力場(chǎng),對(duì)粒子和地平面執(zhí)行碰撞命令,resilience彈跳、Friction摩擦、offset偏移值保持默認(rèn)。
添加一個(gè)VolumeAxisField體積軸場(chǎng),將Volume Shape設(shè)置為球形。這里需要注意的是只用到體積軸場(chǎng)的上半球,將體積軸場(chǎng)的球心位置在地平面稍微往下一點(diǎn)的位置,由于粒子會(huì)與地平面碰撞不會(huì)掉落到地平面以下,也就保證了只有上半球影響到粒子。如果下半球也影響到粒子,將在調(diào)整粒子運(yùn)動(dòng)上帶來(lái)更多的步驟以及不可控因素。
體積軸場(chǎng)Around Axis屬性值的正負(fù)表示粒子圍繞圓心做順時(shí)針還是逆時(shí)針運(yùn)動(dòng),為了和龍卷風(fēng)的旋轉(zhuǎn)方向一致這里設(shè)置為–8,Magnitude值設(shè)為8,Turbulence湍流設(shè)置1,Turbulence Speed設(shè)置為0.125,Detail Turbulence設(shè)置為1。粒子的Conserve值設(shè)置為0.95。這里可以通過(guò)不斷調(diào)節(jié)屬性以及多次初始化粒子得到滿(mǎn)意的動(dòng)態(tài)效果,調(diào)節(jié)完畢之后為粒子創(chuàng)建緩存文件。
粒子替代在測(cè)試階段為了便于觀察僅需要基礎(chǔ)的立方體、球體、圓柱體、圓錐體即可,但這里需要注意的是所有替代幾何體的都需要做物體凍結(jié),即所有幾何體的位置、旋轉(zhuǎn)值為0,縮放為1。并且位于坐標(biāo)原點(diǎn)。否則在進(jìn)行替代的時(shí)候會(huì)出現(xiàn)偏移。為粒子添加每粒子自定義屬性,主要用于幾何體的隨機(jī)替代以及每粒子自轉(zhuǎn)、縮放、速度屬性。這里的表達(dá)式與之前龍卷風(fēng)主體粒子1系統(tǒng)的表達(dá)式類(lèi)似,給替代Id一個(gè)隨機(jī)值可以得到幾何體隨機(jī)替代的效果,給自轉(zhuǎn)、速度屬性一個(gè)初始的隨機(jī)值以及一個(gè)很小的每幀增量就可以得到每個(gè)幾何體相對(duì)運(yùn)動(dòng)的隨機(jī)效果。給縮放一個(gè)隨機(jī)值就可以由一個(gè)幾何體產(chǎn)生很多大小不同的幾何體??梢源蟠鬁p小替代幾何體的數(shù)量。需要注意的是這里所有的表達(dá)式需要在創(chuàng)建時(shí)運(yùn)行,但僅由于之前對(duì)粒子做了初始化處理,所以這里粒子的創(chuàng)建表達(dá)式并不會(huì)對(duì)所有粒子進(jìn)行取值。比如幾何體隨機(jī)替代,在創(chuàng)建時(shí)給出了隨機(jī)值,但實(shí)際上在第一幀并不會(huì)隨機(jī)替代幾何體,僅僅會(huì)把粒子替代為Id為0的幾何體。如果把隨機(jī)表達(dá)式寫(xiě)到運(yùn)行時(shí),則會(huì)發(fā)生每一幀幾何體都在不停的隨機(jī)變化,比如立方體在下一幀變?yōu)榍蝮w等。解決方法比較取巧也相對(duì)簡(jiǎn)單,將隨機(jī)表達(dá)式寫(xiě)到運(yùn)行時(shí),播放動(dòng)畫(huà),把效果滿(mǎn)意的一幀對(duì)粒子進(jìn)行初始化,再刪掉運(yùn)行時(shí)的隨機(jī)表達(dá)式,就可以得到隨機(jī)替代的幾何體。自轉(zhuǎn)、速度、縮放也可以用同樣的方法得到滿(mǎn)意的隨機(jī)值。對(duì)粒子替代的動(dòng)態(tài)效果滿(mǎn)意之后可以直接將所需替代的幾何體直接添加到替代節(jié)點(diǎn)并刪除之前的立方體、球體、圓柱體、圓錐體的測(cè)試替代幾何體即可。
最后再介紹下龍卷風(fēng)特效的渲染,Maya2017版本以來(lái)引入了新的Arnold渲染器,并且不再提供之前的MentalRay渲染器。Arnold渲染器相對(duì)于MentalRay渲染器更簡(jiǎn)單一些,不再像之前MentalRay渲染器需要進(jìn)行多次測(cè)試才能得到較好的渲染結(jié)果。在本文的龍卷風(fēng)特效中添加了用一張Hdr貼圖控制Sky-dome light,然后再給了一個(gè)平行光進(jìn)行補(bǔ)光就可以得到不錯(cuò)的渲染結(jié)果。在粒子替代方面為了節(jié)省渲染時(shí)間也僅僅使用了幾種樹(shù)葉作為替代。為了后期合成還必須要將各部分分層渲染以及渲染出不同的通道,例如AO、Shadow、reflection等。
圖6為最終渲染出的動(dòng)畫(huà)文件,流體部分已經(jīng)很好的模擬出龍卷風(fēng)的效果,與龍卷風(fēng)伴隨的雷電效果在合成軟件中完成相對(duì)更為方便。地面塵埃部分如果需要更好的效果可以使用幾套粒子共同完成,比如離龍卷風(fēng)距離較近的部分使用一套粒子,粒子替代可以用一些稍大的幾何體比如樹(shù)干、石塊等,旋轉(zhuǎn)速度可以稍快一些。較遠(yuǎn)的部分用樹(shù)葉等替代,旋轉(zhuǎn)速度也可以稍慢一些,使塵埃部分更有體積感和層次感。
5 ?結(jié)語(yǔ)
MAYA是當(dāng)前最為流行的一款三維動(dòng)畫(huà)軟件,其在視覺(jué)領(lǐng)域中有著非常廣泛的應(yīng)用。上文結(jié)合龍卷風(fēng)特效制作,對(duì)MAYA進(jìn)行了介紹。通過(guò)最終效果圖可以看到,利用MAYA制作出的龍卷風(fēng)特效效果逼真。因此,可以利用MAYA根據(jù)實(shí)際需求來(lái)制作出各種所需的動(dòng)畫(huà)特效。
參考文獻(xiàn)
[1] 陳建彬. 基于Maya的流體特效表示和轉(zhuǎn)化工具研發(fā)[D]. 山東大學(xué), 2019.
[2] 胡曉輝. MAYA粒子特效動(dòng)畫(huà)模塊研究[J]. 科技創(chuàng)新與應(yīng)用, 2018(5): 193-194+196.
[3] 胡曉輝, 肖新元. MAYA的UV和材質(zhì)渲染無(wú)損傳導(dǎo)研究[J]. 科技廣場(chǎng), 2017(10): 43-46.
[4] 周彥鵬. 基于Maya技術(shù)的數(shù)字游戲場(chǎng)景設(shè)計(jì)與制作[J]. 藝術(shù)科技, 2017, 30(3): 105.
[5] 劉永剛. Maya粒子表達(dá)式應(yīng)用——Crowded Bugs特效制作[J]. 影視制作, 2020, 26(1): 66-74.
[6] 李偉. Maya在影視動(dòng)漫產(chǎn)業(yè)中的應(yīng)用[J]. 信息與電腦(理論版), 2019(15): 155-156.