包含38節(jié)視頻教程
關(guān)注53.6萬次
當一個軟件有新版本的時候你會想到:朱峰社區(qū)!當你不知道新版本的新功能的時候:朱峰社區(qū)!當你遇到問題不好解決的時候:朱峰社區(qū)!沒錯!新功能!朱峰社區(qū)!
1.創(chuàng)建頭發(fā)生長區(qū)域。
2.創(chuàng)建頭發(fā)系統(tǒng)。
3.創(chuàng)建頭發(fā)初始態(tài)。
4.設(shè)置頭發(fā)初始態(tài)。
5.制作發(fā)型。
6.頭發(fā)初末狀態(tài)的重要性。
7.頭發(fā)碰撞。
8.頭發(fā)動力學參數(shù)的設(shè)置。
9.頭發(fā)渲染細節(jié)的設(shè)置。
使用maya制作動力學頭發(fā)通?墒褂靡韵聨追N方法:
1.手動繪制nurbs曲線,將它轉(zhuǎn)為頭發(fā)動力學曲線,再賦予pe筆刷進行毛發(fā)渲染。
2.直接在nurbs幾何體(或uv平展的多邊形幾何體)上生成大量均勻分布的頭發(fā)曲線,然后通過頭發(fā)約束來制作發(fā)型。
3.通過nurbs曲線生成nurbs曲面,然后賦予貼圖;最后通過頭發(fā)動力學曲線控制骨骼的方法,使nurbs曲面受到骨骼蒙皮的影響。因為貼圖渲染速度比pe頭發(fā)快很多,所以在制作一些短發(fā)效果時也常用此方法進行,盡管動力學精度不高。
4.通過nurbs曲線生成nurbs曲面,然后在nurbs曲面上提取更多的曲線,利用模型歷史以曲面控制曲線完成發(fā)型。這種方法不適合制作復雜的發(fā)型。
其實方法1和方法2是差不多的,不同點在于:方法1是先定發(fā)型,后設(shè)置動力學屬性;方法2則反過來。相對而言,方法1可有效的利用資源,但缺點就是調(diào)節(jié)曲線繁瑣,且細節(jié)上可能很難滿足鏡頭特寫,尤其在制作飄逸的長發(fā)效果時。
本例中采用的是方法2。
【hair系統(tǒng)的組成】
hair系統(tǒng)由頭發(fā)動力學節(jié)點(hairsystem),毛囊節(jié)點(follicle),動力學輸出曲線(hairsystemoutputcurves)構(gòu)成,如果算上渲染部分,則還包含筆刷特效節(jié)點(pfxhair)。
hairsystem節(jié)點是頭發(fā)行為的總控制節(jié)點,除了頭發(fā)的各種行為參數(shù),包括新增力場也是以該節(jié)點作為對象進行。
follicle毛囊,顧名思義,是頭發(fā)生長的基部,除了可對單條動力學曲線進行額外控制,還記錄著頭發(fā)受到的約束或碰撞情況。
hairsystemoutputcurves節(jié)點是動力學解算后的最終曲線形態(tài),盡管maya的hair系統(tǒng)可以不包含初始態(tài)或結(jié)束態(tài)的曲線,但是我們應(yīng)按規(guī)范至少完成初始態(tài)的建立,讓輸出曲線和follicle毛囊節(jié)點進行關(guān)聯(lián),方便控制。
pfxhair是通過筆刷特效節(jié)點來完成頭發(fā)的渲染,是maya特有的筆刷系統(tǒng)的一部分(painteffect筆刷特效包含:植物筆刷,卡通線條,頭發(fā)筆刷,生長筆刷,特效筆刷等),可通過調(diào)節(jié)特定功能下的筆觸參數(shù),實現(xiàn)豐富的效果渲染。
hair操作規(guī)則:增加力場影響時,是選擇頭發(fā)的動力學解算節(jié)點進行;而創(chuàng)建約束,則是選擇頭發(fā)動力學曲線或者毛囊節(jié)點進行。
1.創(chuàng)建頭發(fā)生長區(qū)域
將人物頭部復制一份,圓滑后刪除多余的部分,只留下頭皮部分作為頭發(fā)生成的區(qū)域;然后對提取的模型進行uv重展,確保它的uv無拉伸,并盡量利用uv坐標系的空間。
使用幾何體生成頭發(fā)系統(tǒng),需要注意:毛囊的分布和幾何體的uv信息有關(guān)。因為nurbs的uv始終是0到1的方形(如果不是則對曲面uv進行重建),所以通常使用nurbs半球體生成毛發(fā)曲線是較為理想的。但問題也就在于nurbs編輯形體沒多邊形那么靈活,因此我選擇多邊形進行。
2.創(chuàng)建頭發(fā)系統(tǒng)
選擇模型執(zhí)行:hair->createhair(選項:output:nurbscurves;u vcount20;length:4;passive fill:0。其他保持默認。)
maya中屬性的數(shù)值和單位及比例都有密切的聯(lián)系,默認的5表示頭發(fā)長度5厘米,但那是1:1的“模型:實物”的比例;我這里使用的是1:10的比例,因此默認的5將表示50厘米的頭發(fā)長度。因此,根據(jù)個人需要,我打算使用長度為40厘米以下的頭發(fā),所以修改為4。
提示:
創(chuàng)建大量頭發(fā)時,應(yīng)選擇painteffect的創(chuàng)建方式,因為它在場景中顯示的速度是nurbs曲線的10倍。當確實需要對頭發(fā)動力學曲線進行一些額外的操作,例如在曲線上吸附物體隨頭發(fā)進行運動或者模擬濕潤頭發(fā)滴水的時候,則選擇后兩種。
3.創(chuàng)建頭發(fā)初始態(tài)
剛創(chuàng)建的頭發(fā)默認是向四面八方伸展的,因此首先使用一個牛頓場,將大片頭發(fā)吸引至后上方:選擇毛發(fā)動力學節(jié)點,執(zhí)行fields->newton。
4.設(shè)置頭發(fā)初始態(tài) 全選頭發(fā)曲線,執(zhí)行hair->setstartposition->fromcurrent。
如果是以painteffect的方式創(chuàng)建頭發(fā),則在outliner中選擇毛囊組,然后執(zhí)行hair->setstartposition->fromcurrent。
5.制作發(fā)型
雖然沒有頭發(fā)插件shaveandhair那樣的梳子工具,不過配合力場,maya提供的動力學約束功能在設(shè)置發(fā)型上功能也是很強大的,用的熟練的話并不比插件差多少。
transform變形約束是制作發(fā)型時最常用的約束方式,它除了可以將頭發(fā)曲線進行位移,通過自身的旋轉(zhuǎn)縮放還能影響頭發(fā)的聚攏和發(fā)散。在制作動畫時,該約束也常用于制作頭 發(fā)受到物體作用的效果,如用手撥開頭發(fā)。
rubberband是一種橡膠效果的約束:當控制器遠離頭發(fā),頭發(fā)就受到很強的拉力;控制器靠近頭發(fā),拉力就降低至零。通常這個約束很適合用來梳理頭發(fā)制作平滑的發(fā)型,但在動力學效果中并不常用,因為它的拉力影響過于“柔順平滑”(制作洗發(fā)露廣告倒是不錯……)。
stick效果和rubberband類似,所不同的是它會在一定的距離內(nèi)產(chǎn)生作用:當頭發(fā)和約束控制器的距離大于初始距離,頭發(fā)將被控制器吸引;當距離小于初始距離,頭發(fā)將被控制器推開。制作發(fā)型時,可用它來打亂頭發(fā)的聚攏。
以上三種約束與頭發(fā)曲線發(fā)生距離變化時,都會產(chǎn)生明顯的拉力變化;而以下兩種約束只在起始幀時定位曲線上約束點的位置,不會產(chǎn)生任何拉力。
hair to hair用于頭發(fā)之間的相互吸引,它的作用較為微弱,常用于頭發(fā)塊的定型,例如頭發(fā)束使用絲帶固定。
hairbunch用于模擬頭發(fā)間的自碰撞效果,計算速度要快于啟用頭發(fā)的自碰撞功能。并且,該功能可以在起始幀的時候推開疊加在一起的頭發(fā),這是其他約束沒有的。
無論是哪種約束,頭發(fā)的初始態(tài)對它都是極其重要的,因為約束參數(shù)中有三種不同的點計算方式:nearest是計算控制器到曲線的相對距離,曲線上的約束點位置會隨著運動而不斷變化;uparameter是忽略控制器方位,通過0到1的曲線u向方位來定位約束點;udistance和uparameter差不多,它計算世界空間中曲線上點到約束之間的距離,可進行自定義(ud和up最大的不同在于當對多條曲線進行控制點定位時,ud能在不同位置的曲線上產(chǎn)生不同的約束點,而up會使所有曲線的cv點位于相同的距離比),同樣的,這個方式是忽略控制器的方位的。但無論是哪個方式,曲線上的約束點都和cv點有關(guān),只能在cv點上進行控制,并且計算只在起始幀時執(zhí)行(除了hairbunch),動畫開始后不會發(fā)生改變(即使對up或ud設(shè)置動畫幀也是沒效果的,約束無法在動畫開始后改變位置)。
約束控制器用于定制發(fā)型并不是很復雜,你可以把自己想象為一個真正的發(fā)型美容師:通過一堆夾子,發(fā)卷,橡皮筋等工具(constraint),吹風筒(newtonfield),來固定頭發(fā)樣式(setstartposition),最后再加些發(fā)膠定型(setrestposition)。maya是個藝術(shù)軟件,很多東西是結(jié)合現(xiàn)實來進行的,所以我們不用太懼怕那些條條框框。6.頭發(fā)初末狀態(tài)的重要性
頭發(fā)制作過程中,初末狀態(tài)的設(shè)置十分重要。 setstartposition(設(shè)置起始位置)一般用于定發(fā)型前的不斷嘗試,最后都會和結(jié)束態(tài)保持一致;setrestposition(設(shè)置結(jié)束位置)則是發(fā)型靜止時的形態(tài)參考。很多時候,由于各種運動和動力學影響,頭發(fā)會處于運動狀態(tài)中,結(jié)束態(tài)對頭發(fā)行為的影響較為微弱。頭發(fā)(hair)系統(tǒng)的這個原理和maya柔體(softbody)很像:柔體是通過粒子對幾何體的goal目標權(quán)重來實現(xiàn)結(jié)束態(tài)的維持,而hair則是通過動力學曲線參考結(jié)束態(tài)曲線的方式進行,相當于柔體的一個分支功能。在使用約束進行發(fā)型制作時,必須要在交互式動畫播放的情況下進行,當達到所需效果,應(yīng)立即停止動畫,然后在當前狀態(tài)setstartposition,否則hair的狀態(tài)將在第一幀時還原。同時,發(fā)生位移變化的約束將從當前位置開始,必須再次調(diào)整初始位置才能繼續(xù)進行。
我們可以使用hair菜單下的一些工具對頭發(fā)曲線進行調(diào)整。例如:scaletool可以調(diào)整頭發(fā)的長度,但是要注意的是,一定要在起始幀的時候進行;如果是在解算過程中,可能會出現(xiàn)異常。
另外,可以通過手動調(diào)節(jié)曲線的cv點,并使用surfaces菜單下的editcurves對頭發(fā)的初始或末態(tài)曲線進行各種編輯;還可以使用變形器對大量頭發(fā)進行定型,但要注意此時不能鎖定曲線的長度(locklength),否則將在去除變形器歷史后曲線形態(tài)發(fā)生異常。
如果需要對局部頭發(fā)進行刪除或者屬性改變,還可以通過painthairfollicles(繪制頭發(fā)毛囊)工具來完成。
7.頭發(fā)碰撞
選擇頭發(fā)動力學曲線,執(zhí)行hair->createconstraint->collidesphere,創(chuàng)建一個頭發(fā)系統(tǒng)專用的碰撞球,模擬人物頭部輪廓。此外,還需要多個碰撞球放置于角色的肩膀,胸部一帶。要注意:雖然頭發(fā)可以通過geoconnector節(jié)點和幾何體進行直接碰撞(makecollide),但是很容易發(fā)生異,F(xiàn)象,所以要盡量使用colllidesphere或者collidecube來實現(xiàn)碰撞效果。stiffness是碰撞球和碰撞方體最重要的設(shè)置參數(shù),通常0.2至0.3左右即可(數(shù)值為0則不產(chǎn)生碰撞),過高數(shù)值會使頭發(fā)發(fā)生一些異常的抖動。
碰撞球可作為最初的頭發(fā)定型用,雖然在細節(jié)上不夠精確,但對于完成大體輪廓還是很有幫助的,所以制作發(fā)型時除了頭發(fā)的各種約束,碰撞球和碰撞方體也是很重要的輔助工具。
毛發(fā)對幾何體的直接碰撞正如柔體曲線對剛體的碰撞,其反彈效果很難控制。
8.頭發(fā)動力學參數(shù)的設(shè)置
此時再次涉及到場景比例和單位的問題。這點我除了有專門文章說明,在柔體,剛體以及布料系統(tǒng)的技術(shù)文章中也多次提到,由此可見,了解這些對maya的所有動力學特效是十分重要的。根據(jù)我自己慣用的標準比例1:10,這里要將頭發(fā)系統(tǒng)節(jié)點forces區(qū)塊下的gravity設(shè)置為9.8(默認的0.98是指在1:1的比例下的值),可直接得到較為真實的效果。當然,這是普遍的效果所用的參數(shù)值,某些特殊情況需要另作變更,當所處的環(huán)境是宇宙,水底,可根據(jù)表現(xiàn)效果的需要而變更。另外,頭發(fā)的動力學行為,和曲線的段數(shù)也有很大的關(guān)系:段數(shù)越高,頭發(fā)的運動就越柔順,但這除了增加解算時間,效果上也不一定合理,因此要謹慎使用過高的頭發(fā)段數(shù)。
9.頭發(fā)渲染細節(jié)的設(shè)置
更改了力場,接著是頭發(fā)筆刷的大小。人的頭發(fā)絲在0.1mm左右(0.05mm-0.15mm),雖然maya不一定能按實際標準來完成這種精度的頭發(fā)絲,但稍微研究下參數(shù)還是能得到很好的方案的。brush節(jié)點是用于頭發(fā)的渲染,但是頭發(fā)的直徑是由頭發(fā)系統(tǒng)節(jié)點的hairwidth所控制。hairwidth默認值為0.01(厘米),也就是0.1mm,那么根據(jù)我的場景比例1:10,將hairwidth設(shè)為0.001即可。不過,這個數(shù)值達到了軟件文本框可輸入的最小值,無法再進行降低,因此我的做法是:保持hairwidth的默認值0.01不變,然后將brush節(jié)點下的globalscale(全局縮放)參數(shù)設(shè)為原來的十分之一(將默認的5改為0.5)。于是,一個軟件單位的頭發(fā)絲誕生了。如果覺得還不夠細,可以繼續(xù)降低hairwidth的數(shù)值,但不應(yīng)低于0.005(再低就是納米纖維了)。
displacements區(qū)塊下的subclumping會生成很多聚攏的發(fā)簇,常用于制作頭發(fā)淋濕的效果,但對通常頭發(fā)并沒有太大的作用,反而會減少頭發(fā)細節(jié)。
multistreaks(子頭發(fā))是在原有頭發(fā)的基礎(chǔ)上增加頭發(fā)渲染的總數(shù)量。當設(shè)置為9,雖然數(shù)量上相當于hairperclump數(shù)值為原來的10倍。不過因為multistreaks是在頭發(fā)簇寬度的基礎(chǔ)上生成,發(fā)絲的散布范圍可超出clumpwidth,細節(jié)更豐富;而hairperclump是在clumpwidth范圍內(nèi)的,如果頭發(fā)寬度hairwidth*hairperclump大于clumpwidth,那就沒什么意義了。因此,一般在設(shè)定好頭發(fā)寬度和簇數(shù)量后,如需要增加頭發(fā)密度,應(yīng)該增加multistreaks的數(shù)值;而且相對而言,增加multistreaks的數(shù)量比增加hairperclump渲染速度要快。當然,有時也需要適當?shù)男薷膍ultistreakspread1(頭發(fā)寬度最大偏移)和multistreakspread2(頭發(fā)末梢最大偏移),因為當頭發(fā)數(shù)量乘以頭發(fā)寬度大于發(fā)簇寬度時,就沒意義。
開啟lighteachhair后渲染效果會好很多,尤其在子頭發(fā)數(shù)量很多,頭發(fā)運動時影響到頭發(fā)自身陰影效果的時候。不過同樣的,渲染時間也就增加不少。
盡管multistreaks在頭發(fā)細節(jié)上不錯,但是因為是簡單的通過復制頭發(fā)簇來完成,渲染效果并不盡如人意,因此一般都采用比較低的數(shù)值,如1。過多的話將造成頭發(fā)高光效果的錯亂。
因此為了更好的表現(xiàn)頭發(fā)質(zhì)感,適當?shù)目刂苃airperclump和clumpwidth才是最佳的方案。
將筆刷brush添加到頭發(fā)進行渲染,可以得到更為豐富的效果。要注意,brush節(jié)點連接到pfx節(jié)點時,并不是所有的參數(shù)都有效,如筆刷的寬度和顏色,將被頭發(fā)系統(tǒng)節(jié)點的頭發(fā)寬度和發(fā)色所替換。而筆刷的高光屬性則替代頭發(fā)系統(tǒng)的高光設(shè)置(mentalray會忽略),同時,頭發(fā)系統(tǒng)節(jié)點下的multistreaks功能失效。
10.painteffect和brush的關(guān)系
創(chuàng)建頭發(fā)時選擇painteffect的方式,和選擇頭發(fā)系統(tǒng)節(jié)點執(zhí)行hair->assignpainteffectbrush to hair,效果上是不同的。前者僅僅是將曲線以筆刷的形式進行渲染,而后者則在頭發(fā)系統(tǒng)中加入一個brush筆觸節(jié)點,提供了更為豐富的渲染效果(如果手動刪除brush節(jié)點,那么和創(chuàng)建頭發(fā)時選擇painteffect的方式是同樣的效果)。
mayasoftware渲染pe特效時,是作為后期渲染的,只支持深度貼圖陰影,無法渲染頭發(fā)的反射;mentalray渲染pe頭發(fā)可支持反射和光線追蹤成影,并且在使用光線追蹤時效率很高,但mr渲染的頭發(fā)相對較亮,且在頭發(fā)細節(jié)上稍遜于software。使用mayasoftware渲染時,開啟brush下的illumination功能(默認是關(guān)閉的,mr渲染不需要開啟,sw則需要),頭發(fā)將得到高光照明的效果。關(guān)閉reallight可以使用內(nèi)置燈光照明,提高解算速度;而specular參數(shù)對頭發(fā)高光的渲染效果沒任何影響,取決定作用的仍然是頭發(fā)系統(tǒng)節(jié)點下的specular。而且要注意的是,mentalray將忽略illumination區(qū)塊下的所有功能。
以下是不同設(shè)置的效果對比。
【總結(jié)】
本質(zhì)上,hair就是粒子動力學系統(tǒng)。它和柔體系統(tǒng)、內(nèi)核布料系統(tǒng)有很多共通點,例如初始模型的保留,約束模擬碰撞,作用力的單位設(shè)置等。因此,要學習maya各個動力學模塊,我們要了解的不是那些大量的固定參數(shù),而是認識它們之間的共通點。maya是個為藝術(shù)家而準備的軟件,對此我是十分贊同的。
朱峰社區(qū)網(wǎng)頁版(手機掃描-分享-添加到屏幕)
朱峰社區(qū)微信公眾號(微信掃一掃-關(guān)注)
未知用戶
未知用戶
贊1
踩0
16年3月8日
未知用戶
贊1
踩0
16年3月8日
2005-2025 朱峰社區(qū) 版權(quán)所有 遼ICP備2021001865號-1
2005-2025 ZhuFeng Community All Rights Reserved
VIP