欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MAYA制作中山艦的海洋部分教程

  發(fā)布時(shí)間:2015-01-27 15:02:23   作者:佚名   我要評論
這篇教程是向腳本之家的朋友介紹利用MAYA制作中山艦的海洋部分,教程介紹地比較詳細(xì),也很實(shí)用,推薦到腳本之家,喜歡的朋友一起來學(xué)習(xí)吧

本教程向朋友們介紹MAYA制作MAYA制作中山艦的海洋部分教程,介紹的還是很詳細(xì)的,其他部分的教程請朋友們細(xì)細(xì)查看。

MAYA制作中山艦 海洋篇 腳本之家 MAYA建模教程

 具體的操作步驟如下:

1.創(chuàng)建海洋。

從Maya的Visor庫中拖入一個(gè)流體海洋的實(shí)例。這個(gè)實(shí)例包含了海洋動態(tài)和海面大氣效果,是很好的范本,可以在它的基礎(chǔ)上更改設(shè)置。

MAYA制作中山艦 海洋篇 腳本之家 MAYA建模教程

2.匹配場景單位比例。對整個(gè)海洋相關(guān)的元素成組,然后scale增大為10倍;而海洋材質(zhì)的Scale數(shù)值設(shè)定為0.1。

MAYA制作中山艦 海洋篇 腳本之家 MAYA建模教程

接著增加一些海浪泡沫,根據(jù)需要的效果微調(diào)一些渲染細(xì)節(jié)。為了得到較為真實(shí)的效果,可以找一些照片進(jìn)行參考。
海洋材質(zhì)是基于世界空間的UV坐標(biāo),因此波浪大小和其他海洋參數(shù)不會受到幾何體的縮放的影響。對NURBS平面可以進(jìn)行任意的縮放。

MAYA制作中山艦 海洋篇 腳本之家 MAYA建模教程

3.制作航船和海洋的相交線。

(1) 創(chuàng)建同步海洋運(yùn)動的NURBS曲面。

創(chuàng)建海洋時(shí)默認(rèn)生成的PreviewPlane只是用于交互式預(yù)覽,它既不能被渲染也不能發(fā)生動力學(xué)碰撞,因此我們需要?jiǎng)?chuàng)建一個(gè)特別的NURBS表面來彌補(bǔ)這些不足(默認(rèn)的圓形NURBS表面與渲染形態(tài)不一樣,所以不能用來做動力學(xué)碰撞)。

在時(shí)間欄下方的命令輸入欄中,輸入“oceanNurbsPreviewPlane 50 50 oceanShader1”,然后按Enter回車鍵執(zhí)行命令,稍等一會就可以得到一個(gè)新的NURBS預(yù)覽表面,它的行為和之前的oceanPreviewPlane是一樣的,但它可被渲染并能應(yīng)用于通常的幾何體動力學(xué)。因?yàn)樾枰似矫婧痛装l(fā)生相交,因此將Nurbs放大至和航船長度差不多。

oceanNurbsPreviewPlane 是Maya內(nèi)置腳本庫中的一個(gè)MEL腳本,目前還沒有界面化,是個(gè)隱藏命令。【oceanNurbsPreviewPlane 50 50 oceanShader1】:“50 50”是NURBS曲面的分辨率,一旦創(chuàng)建便不能更改;“oceanShader1”是場景中海洋材質(zhì)的名稱。如果海洋較為平靜,使用20以下分辨率即可。

MAYA制作中山艦 海洋篇 腳本之家 MAYA建模教程

(2) 創(chuàng)建船體和海洋NURBS曲面的相交線。

創(chuàng)建一個(gè)和船殼差不多的NURBS模型。我使用建模時(shí)保留下來的NURBS曲線放樣而成,多數(shù)情況下,我們也可使用一個(gè)NURBS球體變形而成。

MAYA制作中山艦 海洋篇 腳本之家 MAYA建模教程

選擇NURBS曲面,shift加選NURBS船模型,執(zhí)行EditNURBS->IntersectSurfaces,設(shè)置如圖。

MAYA制作中山艦 海洋篇 腳本之家 MAYA建模教程

得到兩個(gè)NURBS幾何體之間的相交線,然后在outliner中選擇這根相交線,執(zhí)行EditCurves->DuplicateCurves,保留所有操作歷史。因?yàn)槟P洼^為復(fù)雜,因此會生成了不少NURBS曲線。在播放動畫的時(shí)候,由于歷史節(jié)點(diǎn)的緣故,NURBS曲線會隨著模型位置的改變而變化,但同時(shí)Maya的執(zhí)行會很緩慢。Maya的腳本庫中有一個(gè)用于烘焙曲線動畫的MEL,但這只有在場景動畫不需要再進(jìn)行修改的時(shí)候才使用,后面會提到。

*復(fù)制相交線并保留歷史記錄,是為了稍后進(jìn)行曲線動畫烘焙而作的準(zhǔn)備;如果不需要烘焙曲線動畫,那么可以省略DuplicateCurves這個(gè)步驟。

MAYA制作中山艦 海洋篇 腳本之家 MAYA建模教程

4.綁定航船和海洋的運(yùn)動。

將NURBS船殼和多邊形航船成組,執(zhí)行FluidEffects->Ocean->MakeMotorBoats。

因?yàn)閳鼍爸挥幸粋€(gè)海洋,所以Maya會自動選擇oceanShader1。

MAYA制作中山艦 海洋篇 腳本之家 MAYA建模教程

選擇生成的locator定位器,在它的形節(jié)點(diǎn)的ExtraAttributes區(qū)塊下,設(shè)置相關(guān)浮動參數(shù)。首先將StartY設(shè)置合適的數(shù)值,讓航船剛好懸浮至船的吃水線處。多次測試之后,最終參數(shù)設(shè)置如下。

MAYA制作中山艦 海洋篇 腳本之家 MAYA建模教程

特別需要說明的是,因?yàn)榭紤]到綁定了流體,柔體,布料這些動力學(xué)系統(tǒng),物體運(yùn)行需要一段解算過程,因此不能直接在起始幀就讓航船突然下沉。所以浮動參數(shù)開始起作用的StartFrame我設(shè)置為100,StarY分別在第1幀和第99幀設(shè)置了動畫關(guān)鍵幀:高度0到-40的位移動畫。SceneScale是匹配海洋尺寸的,數(shù)值應(yīng)該和海洋材質(zhì)的Scale值相等,所以設(shè)置為0.1。

Throttle(油門)和Rudder(轉(zhuǎn)舵)是兩個(gè)有趣的參數(shù),它們控制著航船的行進(jìn)和轉(zhuǎn)彎; WaterDamping(水阻尼)會對行進(jìn)速度有很大影響。ThrottlePitch(行駛傾斜)是開啟Throttle之后航船前后傾斜的程度,TurnRoll則是Rudder啟用時(shí),航船在轉(zhuǎn)彎時(shí)的側(cè)斜程度。

Throttle在SceneScale匹配的時(shí)候,可以近似的理解為千米/小時(shí)的航速。

【注意】使用Maya內(nèi)的任何“Boat”工具,BoatLength,Width和Height都會自動從所選小船的包裹盒尺寸獲取。這些工具將最長長度的坐標(biāo)軸作為前方,所以當(dāng)使用一個(gè)奇怪的外形(寬度大于長度),模型的轉(zhuǎn)向和速度調(diào)節(jié)可能發(fā)生錯(cuò)誤。在應(yīng)用船體工具前,你可以暫時(shí)改變物體的縮放值,在使用工具后再恢復(fù)原狀(此時(shí)Maya會按應(yīng)用工具前的形狀定位方向軸)。

5. 創(chuàng)建航船尾流。

尾流發(fā)射器有兩種,一種是單純的制造波浪,另一種除了波浪還產(chǎn)生泡沫foam(盡管可以設(shè)置只產(chǎn)生泡沫不產(chǎn)生波浪,但這不太現(xiàn)實(shí)):前者用于航船的前部和中部,后者則放置于船尾。選擇海洋,執(zhí)行Ocean->CreateWake。

MAYA制作中山艦 海洋篇 腳本之家 MAYA建模教程

Maya的海洋尾流是通過流體紋理控制海洋材質(zhì)的waveHeightOffect屬性而實(shí)現(xiàn)的,尾流發(fā)射器的密度發(fā)射比率是控制尾流強(qiáng)弱的重要參數(shù)。創(chuàng)建了尾流之后,場景會生成一個(gè)3D流體容器,選擇物體并shift加選流體容器,執(zhí)行FluidEffects->MakeCollide。

Maya2011新增了流體AutoResize的功能之后,只要將流體發(fā)射器作為運(yùn)動物體的子級即可,但因?yàn)閣ake是SpringMesh的流體發(fā)射形式,不能使用AutoResize,只有發(fā)射foam泡沫的時(shí)候可以用。

MAYA制作中山艦 海洋篇 腳本之家 MAYA建模教程

制作螺旋槳式的航船時(shí),除了尾流,還要加入適當(dāng)?shù)呐菽H绻趧?chuàng)建尾流時(shí)候沒有在選項(xiàng)中設(shè)置一定的FoamCreation(泡沫產(chǎn)生)數(shù)值,那么只產(chǎn)生一個(gè)用于模擬尾流的3D流體容器;設(shè)置FoamCreation數(shù)值大于0,則會增加一個(gè)用于產(chǎn)生泡沫細(xì)節(jié)的3D流體容器。當(dāng)然,用戶也可以手動將一個(gè)流體紋理連接到海洋材質(zhì)的FoamOffset制作泡沫。要注意的是,尾流強(qiáng)度由流體密度的發(fā)射比率決定,而泡沫量則是熱量密度的發(fā)射比率決定,并且泡沫的流體節(jié)點(diǎn)會開啟TextureOpacity。

一般來說,制作流體特效時(shí)盡量不要對流體容器進(jìn)行縮放;不過當(dāng)場景發(fā)生了比例關(guān)系的變化,為了減少計(jì)算量,則應(yīng)將流體容器匹配場景比例進(jìn)行縮放。

MAYA制作中山艦 海洋篇 腳本之家 MAYA建模教程

 6. 飛濺水花。航船在水面急速運(yùn)行時(shí),會產(chǎn)生撞擊飄散的浪花。

首先,為了提高計(jì)算速度,需要先將航船和海面的相交線烘焙成點(diǎn)動畫。在outliner中選擇NURBS曲線,在命令輸入欄中輸入并執(zhí)行命令:bakeSoft 1 200 1【格式:bakeSoft (起始幀) (結(jié)束幀) (間隔幀)】。完成之后,可以將NURBS預(yù)覽海面(包括相交線)和NURBS船底刪除,只保留烘焙后生成的曲線。當(dāng)然,在這操作之 前你必須完成所有動畫參數(shù)的調(diào)節(jié),尤其是航船的運(yùn)動和海面的狀況。

MAYA制作中山艦 海洋篇 腳本之家 MAYA建模教程

bakeSoft和之前提到的oceanNurbsPreviewPlane命令一樣,是maya內(nèi)置的未界面化的隱藏腳本。bakeSoft可將曲線動畫烘焙到CV點(diǎn)上,轉(zhuǎn)為關(guān)鍵幀動畫。注意:該命令一次只能用于一條NURBS曲線,并且計(jì)算過程中不能停止。

MAYA制作中山艦 海洋篇 腳本之家 MAYA建模教程
 

選擇烘焙后的新曲線,執(zhí)行Dynamics>Particles>EmitFromObject,設(shè)置如下:

EmitterType:Curve
Rate:3000
Speed:9
SpeedRandom:0

對產(chǎn)生的粒子設(shè)置重力場和擾亂場(Magnitude:33,Attenuation:0,F(xiàn)requency:0.5),并把粒子的conserve設(shè)置為0.9降低粒子的擴(kuò)散行為。

MAYA制作中山艦 海洋篇 腳本之家 MAYA建模教程

粒子將隨著海面曲線的變化而在不同的方位發(fā)射。不過為了更細(xì)致的表現(xiàn)出飛濺水花落到海面的效果,還需要設(shè)置表達(dá)式來使粒子吸附到海面。

MAYA制作中山艦 海洋篇 腳本之家 MAYA建模教程

前面使用到的海洋浮動系統(tǒng),其實(shí)是通過colorAtPoint的MEL控制物體的高度變化的;而在表達(dá)式中使用MEL語句,是不會自動更新表達(dá)式引用的名稱的。如
float $hei[] = `colorAtPoint -u $u -v $v oceanShader1`;
locator1.translateY = $hei[0];

ceanshader1和locator1的名稱都不能在設(shè)置了表達(dá)式后再修改,除非同時(shí)更新MEL中的命名。也就是說,一旦使用了海洋中的“Boat”功能,不要輕易修改受控物體的名稱。

粒子表達(dá)式有兩種:creation和runtime(又分動力學(xué)前后執(zhí)行)。Creation只在動畫開始時(shí)執(zhí)行一次,而runtime則會在動畫每幀中執(zhí)行。 本例中語句如下:

MAYA制作中山艦 海洋篇 腳本之家 MAYA建模教程

【Creation】

particleShape1.lifespanPP=rand(4,5);//設(shè)置粒子隨機(jī)的生命周期
【Runtime】
vector $foamP=particleShape1.position; //獲取粒子當(dāng)前的位置
float $foamU=$foamP.x;//將粒子位置的x坐標(biāo)賦予變量foamU
float $foamY=$foamP.y;//將粒子位置的y坐標(biāo)(高度)賦予變量foamY
float $foamV=$foamP.z;//將粒子位置的z坐標(biāo)賦予變量foamV
vector $foamColor[]=`colorAtPoint -o RGBA -u $foamU -v $foamV oceanShader1`;
//通過colorAtPoint的MEL命令獲取海洋材質(zhì)的相應(yīng)色彩和透明度信息
float $foamHeight=$foamColor[3];//定義一個(gè)變量foamHeight,將colrAtPoint所獲取的材質(zhì)透明度信息賦予它。
if($foamY<$foamHeight)
particleShape1.position=<<$foamU,$foamHeight,$foamV>>; //當(dāng)粒子高度低于泡沫高度,將被吸附到海洋表面

以上完成了船底和海面接觸時(shí)飛濺的水花,船尾部還缺少螺旋槳噴出的水花,只要再增加一個(gè)體積型的粒子發(fā)射器即可。

MAYA制作中山艦 海洋篇 腳本之家 MAYA建模教程

浪花粒子在海面漂浮一段時(shí)間后,逐漸消失。這里我使用一個(gè)噪波紋理控制粒子誕生的不透明度,并設(shè)置漸變過渡,在粒子消亡時(shí)不透明度為0。

*需要更為細(xì)致的特效,可以對粒子的速度設(shè)置runtime表達(dá)式,增加速度,透明度和生命周期之間的關(guān)系。如果粒子量大,表達(dá)式越復(fù)雜,計(jì)算速度就越慢。

MAYA制作中山艦 海洋篇 腳本之家 MAYA建模教程

7.生成各種動力學(xué)緩存。
n布料執(zhí)行:nDynamics->nCache->CreateNewCache。
流體執(zhí)行:Dynamics->FluidEffects->CreateNewCache。
粒子執(zhí)行:Dynamics->Solvers->CreateParticleDiskCache。
柔體IK,則直接烘焙為骨骼動畫。

MAYA制作中山艦 海洋篇 腳本之家 MAYA建模教程

教程結(jié)束,以上就是MAYA制作中山艦的海洋部分教程,希望對大家有所幫助!

相關(guān)文章

最新評論