本教程介紹如何用Maya軟件中的hairSystem渲染器製作人物頭發,頭發的製作一般做法有以下四種:1,2是傳統做法,網上教程已經很多了,方法3需要根據需要看插件的help文件,本教程隻討論第4種做法,即使用maya默認渲染器和pe進行渲染製作三維人物頭發的方法和步驟。
1.麵片+貼圖.
2.長發用pfx--先用curves 編製發型,再將stroke粘貼到引導曲線上生成頭發;短發用fur.
3.插件.
4.maya 6以後增加的hairSystem渲染器.
下麵先總結一下使用maya hairSystem製作發毛的一般流程,也就是maya help裏麵建議的一般流程:
1.製作一個具有良好uv分布的麵片以生成毛發。
2.在該麵片上生成hairSystem。
3.編輯hairSystem的start curves,rest curves,使hair定型。
4.製作constraint,進行動力學解算。
5.動畫。
理論上這個流程是可行的,但實際製作是卻非常麻煩,主要原因是第3步,用正常的方法編輯start curves生成需要的發型是比較困難的。
下麵我介紹一種用nurbs麵片生成頭發的引導曲線製作發型的方法,然後再用一個具體例子說明hairSystem在製作,運動,渲染時一些要注意的地方。
1.用任意方法製作一塊nurbs麵片,注意uv的起始位置在頭發的根部(畫黃線的地方)
2.選取多個isoparm,然後duplicat surface curves
3.不要刪除曆史,選擇這些curves,然後Hair-Make select curves dynmic
4.選擇生成的follicle,在屬性裏把point lock改成Base(默認是鎖定2端) 。
5.現在你移動時間軸,可以看到這些curve可以運動了。
6.選中生成hairSystem,然後Hair-Assign paint effect brush to hair.這樣做的結果是我們得到一個pfxhair作為renderHairs,但同時會生成一個連接到pfxhair上的brush,這個我們不需要的brush會影響pfx的形態(具體可參看maya help 裏的assign paint effect brush to hair);在hypergraph或outliner中把它刪掉。
[page]
7.調節hairSystem的參數,可以看到現在已經生成正常的毛發了。從nurbs麵片上複製出的曲線成為該hairSystem的start curves(你可以用set rest postion to start postion生成rest curves),調節nurbs surface,可以看到毛發形態也發生改變,這對調節發型來說非常方便。
好,下麵我用一個具體例子說明使用hairSystem的流程。
1.打開你的角色模型,用nurbs麵片製作你想要得發型(這應該不成問題吧?)我的這發型是臨時做的,真要做的時候你們千萬表這麼隨意阿~ >_<
需要注意的地方:
(1):沿頭發生長發方向的麵片段數不能太少,而且要分布均勻(注意畫黃線的地方),這是會影響生成頭發的動力**算的!
(2):注意畫紅線的地方,頭發分開處要留有間距。因為發束是有厚度的,如果麵片太接近2邊發束會疊在一起!
(3):非常重要的一點!要作動畫的角色,千萬不能用這麼少的麵片,多的麵片使發型更具可變性。另外,要做多層毛發,也就是在麵片之下還有麵片,這才能保證角色頭發劇烈運動的時候仍然能保持層次感。下麵舉例時我會具體說明這個問題。
2.好,按照剛才的做法。duplicate curves,我建議這裏複製的曲線是宜多不宜少(多的可以刪,少了你還要做曲線生成新的hairSystem再合並)
3.生成hairSystem,選中一部分follicle把它的simulation method變成passive以節約運算時間。
4.調節hairSystem的參數,渲染看看效果。hairSystem參數很多,你可以慢慢調直到滿意為止。這是我臨時調的,用比較淺的發色大家可以清楚地看到頭發生長脈絡,你們仔細調的話效果可以比這個好得多。
[page]
下麵我們看hairSystem進行動力學解算時的一些問題。
1.由於我們沒有按一般做法提供頭發生長的麵片,所以我們把hairSystemFollicles綁在頭骨上。需要注意的是:很多人可能會把一開始那些nurbs麵片也綁在頭骨上,而因為留有曆史紀錄的start curve在hairSystemFollicles裏,這可能會造成double transform.如果你真要這麼做的話可以unparent那些start curve
2.按照一般做法,我們用圓球constraint來模擬頭發跟身體的碰撞。但這是不夠的。在人物進行運動的時候我們希望在一定限度上保持人物的發型。所以我在給hairSystem使用transform constraint,把 改成u parameter,再調節u parameter,這樣就從根部鎖定了發型,通過constraint的stiffness可以調節鎖定的強度。
3.根據發型特征和人物運動特性繼續添加constraint。我這裏用了8個。你可能需要更多。
4.讓我們看看現在頭發的運動結果: (如果隻能看到靜止的gif請把它存到硬盤上再觀看就正常了)
需要注意的地方:
(1):大家可以看到這個頭發彈性很大,這是讓他運動比較明顯,實際上這麼大彈性的頭發是很危險的。你需要調節hairSystem的damp,stiff等選項,降低頭發的彈性。
(2):可以用燈光,鏡頭焦距,運動模糊等掩蓋傳幫的地方。
5.下麵我們看看運動時的渲染效果:
(1):注意黃線的地方,由於頭發隻有一層,所以運動起來這些地方就空了!這就是為什麼我在前麵強調要做多層麵片原因:
(2):紅框處,頭發密度不夠,雖然可以調節multi streaks等進行掩蓋,但最好的方法還是多做一層頭發或多做幾條引導曲線。