用Maya PaintEffects 製作逼真的頭髮教程
教程介紹利用Maya PaintEffects 製作頭髮,教程難度不大,希望對朋友們有所幫助!
作者: Yinako Minako
前言:在 3D 中製作頭髮效果至今仍是個難點,最常用的方法就是使用面片加上頭髮的紋理貼圖。但這種方法難以控制紋理貼圖和擺放面片物體。 Maya 給我們提供了很好的解決方法,這就是 Paint Effects :不用紋理貼圖,設定簡單,渲染快速,佔用更少的記憶體。
1. 準備
首先要想好一個髮型並準備一個多邊形的角色頭部,然後選擇頭部,執行 Modify-Make Live , Create-CV curve tool 。如圖從頭的中後方向前繪製一條曲線,這條曲線決定頭髮從哪裡開始分縫。執行 EditCurves-Rebuild curve , Number of spans =9 , degree =3 ,顯示曲線的 CV 點,將曲線命名為 hair_split_curve01 。
複製這條曲線,將第二條曲線命名為 hair_split_curve02 ,並如左下圖所示與第一條曲線分開一點。如右下圖所示在這兩條曲線前端之間橫向繪製一條短曲線,命名為 front_hair_split_curve ,不用太精確, spans 為 2 。將這 3 條曲線調整降低到頭皮的下方。
2. 頭髮控制曲線
我們將繪製一系列的曲線粗略的表示頭髮的生長方向。選擇頭部, Make Live , CV 曲線工具,從捕捉 hair_split_curve01 前端的第一個點開始,向左繪製大約 4-6 個 CVs 。 CV 點要保證足夠的數量來控制一會兒生成的頭髮的形狀(你可以在開始的時候多建幾個點,然後再刪除掉多餘的)。繼續捕捉 hair_split_curve01 上其它的點來繪製曲線。
最終根據你的 spans 數(本篇教程為 9 )你會得到 9-11 條 hair_control_curve (頭髮控制曲線),選擇 hair_control_curve ,調整它們的 CV 點以避免不要和頭部相交,並作出髮型的形狀出來(這需要一定的耐心,大約要調 30 分鐘左右)。效果如下圖所示。將曲線群組並複製到另一邊,再做一些形狀上的調整。現在根據 front_hair_split_curve 繪製頭髮簾的控制曲線,繪製 3 條就行(注意這三條曲線的形狀與左右的曲線形狀要保持連續平滑的'過渡)。
3.Paint Effects
下面我們將新增一些頭髮,執行 Paint Effects-Get Brush 進入 Visor ,開啟 brushes/hair/ 資料夾,選擇 hairRed1.mel (或其它你喜歡的樣式)。選擇 hair_control_curve01 , PaintEffects-Curve Utilities-Attach Brush to Curves ,這樣會為 hair_split_curve01 建立一個粗糙的毛髮效果。在 outliner 中將新建的這個 stroke 命名為 hair_side_stroke01 ,新的筆刷命名為 hair_side_brush 。
在 outliner 中雙擊 stroke 開啟屬性面板,在筆刷頁中,首先調整 Global Scale 值,這個值的大小取決於你的頭部模型的大小,我的角色總共 8cm 高,在這裡將值設為 0.150 。如果你的角色高度為 160cm 的話,值應為 3 。開啟 Brush Profiles 找到 Brush Width ,這個值控制從曲線長出的頭髮的寬度,將值設為 0.8 (不要將它設的太低,這樣會使你的頭髮看上去非常薄)。其他的屬性保持為預設。
現在在 outliner 中再次選擇 hair_side_stroke01 ,並透過 shift 同時選中所有位於頭部一側的 hair_control_curve (左側或右側),執行 Paint Effects-Curve Utilities-Set Stroke Control Curves ,開啟 hair_side_brush 屬性面板, tubes/Behavior/forces 中,將 CurveFollow 設為 1 ,這樣可使頭髮沿 hair_control_curve 生長。進入 hair_side_stroke01 ,將顯示質量設為 10 左右(加速顯示更新速度)。
4. 調整 Paint Effects
我們還是從頭髮的一側開始。在調整時因為檢視觀察並不準確,所以你將需要大量的渲染測試,我建議你將渲染解析度調到 320x240 ,並隱藏除了 hair strokes 之外的所有物體來加快渲染速度。
開啟 hair_side_brush 設定面板,將 Tubes Per Step 設為 25 左右(控制頭髮的數量,不用很精確)。 Length Min=7 , Length Max=10 。 Tube Width1=0.3 , Tube Width2=0.1 (控制頭髮的粗細,如果你將頭髮設細,還要適當的增加 Tubes Per Step 的值,來保持頭髮的豐滿)。 Segment=64 (控制頭髮的圓滑度,這個值會影響渲染時間)。
5. 材質
選擇 hair_side_brush ,開啟 Shading/tube shading ,將 color1 設為你頭髮根部的顏色, color2 為髮梢的顏色。我將其保持為預設值。將 transparency2 設為灰色。 Tip Fade =0.2 (值越高頭髮越柔和)。
在 texture 中,選中 map color , Texcolorscale=0 (使用紋理貼圖的顏色)。 Texture type = File , Map method = tube3D ,將 Tex Color1 和 TexColor2 設為白色。然後選擇一張圖作為紋理(如下圖),圖案月不規則越好(製作方法為 hairRed1.mel 筆刷在 2D 畫布檢視中繪製直線,匯入到 Photoshop 中縮放塗抹)。
6. 完成
現在我們將 stroke 效果新增到另一側和前端的曲線。
選擇 hair_split_curve02, PaintEffects-Curve Utilities-Attach Brush to Strokes ,當新的 stroke 選中後, shift 選擇所有這一側的 control_curve , PaintEffects-Curve Utilities- set Stroke Control Curves 。然後選擇新的 stroke 並 shift 選擇 hair_side_stroke01 , PaintEffects-share One Brush (使兩側的頭髮共享同一個筆刷)。
選擇 front_hair_split_curve , PaintEffects-Curve Utilities-Attach Brush to Strokes ,將新建的 stroke 命名為 hair_front_stoke 。選擇 hair_side_stroke01, PaintEffects-Get Setting from selected stroke ,然後選擇 hair_front_stroke ,執行 PaintEffects- apply setting to selected strokes 。現在, hair_front_stroke 的筆刷和 hair_side_brush 相同。下圖為它們在 hypergraph 檢視中的關係。另外你還可以為頭髮簾賦予一個不同的頭髮紋理。
7. 最佳化頭髮
現在頭髮的效果還不甚理想,我們將最佳化頭髮的兩個筆刷使其不僅能夠加快渲染速度,還能使頭髮更有立體感而不用透過提高 tubes per step 的值來增加頭髮的厚度。
選擇 hair_front_brush ,開啟屬性面板,將 tubesPerStep=10 調低一些,提高寬度值,降低 segments 到 24 。開啟 Behavior|forces 面板, curveAttract = -0.041 (使頭髮與控制曲線的位置有一些偏離,而不是很多頭髮緊緊粘在一根控制曲線上)。選擇 hair_side_brush ,將 curveAttract 設為 -0.050 。現在你的頭髮看起來更自然了。另外在 stroke 調整 seed 值,在 brush/tubes/creation 調整 tube Rand 值,為頭髮增添更多的隨機變化。
因為我們會理髮,所以頭髮的分佈並不均勻(比如前面薄後面厚)。所以我們需要一個 pressure curve 告訴 Paintfx 我們需要在哪裡增加頭髮。選擇 hair_side_stroke01 , PaintEffects-CurveUtilities-makePressureCurves/ 選項盒, control points=10 , offset scale=0.05 。如果 Pressure curve 離的太遠或太近,你需要設定一個不同的 offset Scale 。要刪除它,開啟 stroke 的 pressure Mapping 面板,右鍵點選 pressureMin3 ,刪除表示式,然後刪除 pressure curve 本身。
如果你得到了一條位於 hair_side_stroke01 附近的合適的 pressure curve ,那麼開啟 pressreMapping 面板, pressureMapping1=tubes Per Step , pressure min1=0.1 , pressureMax1=1 。關閉其它的 pressureMapping 。現在你需要調整 pressureCurve 的 CVs ,提高中間的點增加 hair_side_stroke01 側頭髮的厚度,降級兩端的點減少頭髮前後的厚度(如果變化不明顯則需調整 pressureMin1 )。
調整滿意後,對 hair_side_stroke02 作同樣的處理。渲染效果如下圖所示。
以上就是Maya PaintEffects 製作逼真的頭髮教程,希望能對大家有所幫助!