萬盛學電腦網

 萬盛學電腦網 >> 圖文處理 >> MAYA教程 >> MAYA制作中山艦的海洋部分教程

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

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

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

  具體的操作步驟如下:

  1.創建海洋。

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

MAYA制作中山艦 海洋篇 網管之家 MAYA建模教程

  2.匹配場景單位比例。對整個海洋相關的元素成組,然後scale增大為10倍;而海洋材質的Scale數值設定為0.1。

MAYA制作中山艦 海洋篇 網管之家 MAYA建模教程

  接著增加一些海浪泡沫,根據需要的效果微調一些渲染細節。為了得到較為真實的效果,可以找一些照片進行參考。

  海洋材質是基於世界空間的UV坐標,因此波浪大小和其他海洋參數不會受到幾何體的縮放的影響。對NURBS平面可以進行任意的縮放。

MAYA制作中山艦 海洋篇 網管之家 MAYA建模教程

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

  (1) 創建同步海洋運動的NURBS曲面。

  創建海洋時默認生成的PreviewPlane只是用於交互式預覽,它既不能被渲染也不能發生動力學碰撞,因此我們需要創建一個特別的NURBS表面來彌補這些不足(默認的圓形NURBS表面與渲染形態不一樣,所以不能用來做動力學碰撞)。

  在時間欄下方的命令輸入欄中,輸入“oceanNurbsPreviewPlane 50 50 oceanShader1”,然後按Enter回車鍵執行命令,稍等一會就可以得到一個新的NURBS預覽表面,它的行為和之前的oceanPreviewPlane是一樣的,但它可被渲染並能應用於通常的幾何體動力學。因為需要此平面和船底發生相交,因此將Nurbs放大至和航船長度差不多。

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

MAYA制作中山艦 海洋篇 網管之家 MAYA建模教程

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

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

MAYA制作中山艦 海洋篇 網管之家 MAYA建模教程

  選擇NURBS曲面,shift加選NURBS船模型,執行EditNURBS->IntersectSurfaces,設置如圖。

MAYA制作中山艦 海洋篇 網管之家 MAYA建模教程

  得到兩個NURBS幾何體之間的相交線,然後在outliner中選擇這根相交線,執行EditCurves->DuplicateCurves,保留所有操作歷史。因為模型較為復雜,因此會生成了不少NURBS曲線。在播放動畫的時候,由於歷史節點的緣故,NURBS曲線會隨著模型位置的改變而變化,但同時Maya的執行會很緩慢。Maya的腳本庫中有一個用於烘焙曲線動畫的MEL,但這只有在場景動畫不需要再進行修改的時候才使用,後面會提到。

  *復制相交線並保留歷史記錄,是為了稍後進行曲線動畫烘焙而作的准備;如果不需要烘焙曲線動畫,那麼可以省略DuplicateCurves這個步驟。

MAYA制作中山艦 海洋篇 網管之家 MAYA建模教程

  4.綁定航船和海洋的運動。

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

  因為場景只有一個海洋,所以Maya會自動選擇oceanShader1。

MAYA制作中山艦 海洋篇 網管之家 MAYA建模教程

  選擇生成的locator定位器,在它的形節點的ExtraAttributes區塊下,設置相關浮動參數。首先將StartY設置合適的數值,讓航船剛好懸浮至船的吃水線處。多次測試之後,最終參數設置如下。

MAYA制作中山艦 海洋篇 網管之家 MAYA建模教程

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

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

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

  【注意】使用Maya內的任何“Boat”工具,BoatLength,Width和Height都會自動從所選小船的包裹盒尺寸獲取。這些工具將最長長度的坐標軸作為前方,所以當使用一個奇怪的外形(寬度大於長度),模型的轉向和速度調節可能發生錯誤。在應用船體工具前,你可以暫時改變物體的縮放值,在使用工具後再恢復原狀(此時Maya會按應用工具前的形狀定位方向軸)。

  5. 創建航船尾流。

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

MAYA制作中山艦 海洋篇 網管之家 MAYA建模教程

  Maya的海洋尾流是通過流體紋理控制海洋材質的waveHeightOffect屬性而實現的,尾流發射器的密度發射比率是控制尾流強弱的重要參數。創建了尾流之後,場景會生成一個3D流體容器,選擇物體並shift加選流體容器,執行FluidEffects->MakeCollide。

  Maya2011新增了流體AutoResize的功能之後,只要將流體發射器作為運動物體的子級即可,但因為wake是SpringMesh的流體發射形式,不能使用AutoResize,只有發射foam泡沫的時候可以用。

MAYA制作中山艦 海洋篇 網管之家 MAYA建模教程

  制作螺旋槳式的航船時,除了尾流,還要加入適當的泡沫。如果在創建尾流時候沒有在選項中設置一定的FoamCreation(泡沫產生)數值,那麼只產生一個用於模擬尾流的3D流體容器;設置FoamCreation數值大於0,則會增加一個用於產生泡沫細節的3D流體容器。當然,用戶也可以手動將一個流體紋理連接到海洋材質的FoamOffset制作泡沫。要注意的是,尾流強度由流體密度的發射比率決定,而泡沫量則是熱量密度的發射比率決定,並且泡沫的流體節點會開啟TextureOpacity。

  一般來說,制作流體特效時盡量不要對流體容器進行縮放;不過當場景發生了比例關系的變化,為了減少計算量,則應將流體容器匹配場景比例進行縮放。

MAYA制作中山艦 海洋篇 網管之家 MAYA建模教程

  6. 飛濺水花。航船在水面急速運行時,會產生撞擊飄散的浪花。

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

MAYA制作中山艦 海洋篇 網管之家 MAYA建模教程

  bakeSoft和之前提到的oceanNurbsPreviewPlane命令一樣,是maya內置的未界

copyright © 萬盛學電腦網 all rights reserved