頭發(fā)綁定篇之Maya卡通角色制作
本節(jié)匯寶盆為大家?guī)淼氖牵侯^發(fā)綁定篇之Maya卡通角色制作
以下只是制作流程的簡要介紹,不作為完整的教程使用,因?yàn)樯婕安襟E較多。盡管如此,文章中我所提供的一些技術(shù)點(diǎn)介紹,相信會(huì)對很多人有幫助。
教程思路
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ā)動(dòng)力學(xué)參數(shù)的設(shè)置。
9.頭發(fā)渲染細(xì)節(jié)的設(shè)置。
使用maya制作動(dòng)力學(xué)頭發(fā)通??墒褂靡韵聨追N方法:
1.手動(dòng)繪制NURBS曲線,將它轉(zhuǎn)為頭發(fā)動(dòng)力學(xué)曲線,再賦予PE筆刷進(jìn)行毛發(fā)渲染。
2.直接在NURBS幾何體(或UV平展的多邊形幾何體)上生成大量均勻分布的頭發(fā)曲線,然后通過頭發(fā)約束來制作發(fā)型。
3.通過NURBS曲線生成NURBS曲面,然后賦予貼圖;最后通過頭發(fā)動(dòng)力學(xué)曲線控制骨骼的方法,使NURBS曲面受到骨骼蒙皮的影響。因?yàn)橘N圖渲染速度比PE頭發(fā)快很多,所以在制作一些短發(fā)效果時(shí)也常用此方法進(jìn)行,盡管動(dòng)力學(xué)精度不高。
4.通過NURBS曲線生成NURBS曲面,然后在NURBS曲面上提取更多的曲線,利用模型歷史以曲面控制曲線完成發(fā)型。這種方法不適合制作復(fù)雜的發(fā)型。
其實(shí)方法1和方法2是差不多的,不同點(diǎn)在于:方法1是先定發(fā)型,后設(shè)置動(dòng)力學(xué)屬性;方法2則反過來。相對而言,方法1可有效的利用資源,但缺點(diǎn)就是調(diào)節(jié)曲線繁瑣,且細(xì)節(jié)上可能很難滿足鏡頭特寫,尤其在制作飄逸的長發(fā)效果時(shí)。
本例中采用的是方法2。
【Hair系統(tǒng)的組成】
Hair系統(tǒng)由頭發(fā)動(dòng)力學(xué)節(jié)點(diǎn)(hairSystem),毛囊節(jié)點(diǎn)(follicle),動(dòng)力學(xué)輸出曲線(hairSystemOutputCurves)構(gòu)成,如果算上渲染部分,則還包含筆刷特效節(jié)點(diǎn)(pfxHair)。
hairSystem節(jié)點(diǎn)是頭發(fā)行為的總控制節(jié)點(diǎn),除了頭發(fā)的各種行為參數(shù),包括新增力場也是以該節(jié)點(diǎn)作為對象進(jìn)行。
follicle毛囊,顧名思義,是頭發(fā)生長的基部,除了可對單條動(dòng)力學(xué)曲線進(jìn)行額外控制,還記錄著頭發(fā)受到的約束或碰撞情況。
hairSystemOutputCurves節(jié)點(diǎn)是動(dòng)力學(xué)解算后的最終曲線形態(tài),盡管maya的hair系統(tǒng)可以不包含初始態(tài)或結(jié)束態(tài)的曲線,但是我們應(yīng)按規(guī)范至少完成初始態(tài)的建立,讓輸出曲線和follicle毛囊節(jié)點(diǎn)進(jìn)行關(guān)聯(lián),方便控制。
pfxHair是通過筆刷特效節(jié)點(diǎn)來完成頭發(fā)的渲染,是maya特有的筆刷系統(tǒng)的一部分(paintEffect筆刷特效包含:植物筆刷,卡通線條,頭發(fā)筆刷,生長筆刷,特效筆刷等),可通過調(diào)節(jié)特定功能下的筆觸參數(shù),實(shí)現(xiàn)豐富的效果渲染。
hair操作規(guī)則:增加力場影響時(shí),是選擇頭發(fā)的動(dòng)力學(xué)解算節(jié)點(diǎn)進(jìn)行;而創(chuàng)建約束,則是選擇頭發(fā)動(dòng)力學(xué)曲線或者毛囊節(jié)點(diǎn)進(jìn)行。
【Hair綁定步驟】
1.創(chuàng)建頭發(fā)生長區(qū)域
將人物頭部復(fù)制一份,圓滑后刪除多余的部分,只留下頭皮部分作為頭發(fā)生成的區(qū)域;然后對提取的模型進(jìn)行UV重展,確保它的UV無拉伸,并盡量利用UV坐標(biāo)系的空間。
使用幾何體生成頭發(fā)系統(tǒng),需要注意:毛囊的分布和幾何體的UV信息有關(guān)。因?yàn)镹URBS的UV始終是0到1的方形(如果不是則對曲面UV進(jìn)行重建),所以通常使用NURBS半球體生成毛發(fā)曲線是較為理想的。但問題也就在于NURBS編輯形體沒多邊形那么靈活,因此我選擇多邊形進(jìn)行。
2.創(chuàng)建頭發(fā)系統(tǒng)
選擇模型執(zhí)行:hair->CreateHair(選項(xiàng):Output:NURBScurves;U Vcount20;Length:4;Passive fill:0。其他保持默認(rèn)。)
Maya中屬性的數(shù)值和單位及比例都有密切的聯(lián)系,默認(rèn)的5表示頭發(fā)長度5厘米,但那是1:1的“模型:實(shí)物”的比例;我這里使用的是1:10的比例,因此默認(rèn)的5將表示50厘米的頭發(fā)長度。因此,根據(jù)個(gè)人需要,我打算使用長度為40厘米以下的頭發(fā),所以修改為4。
提示:
創(chuàng)建大量頭發(fā)時(shí),應(yīng)選擇paintEffect的創(chuàng)建方式,因?yàn)樗趫鼍爸酗@示的速度是NURBS曲線的10倍。當(dāng)確實(shí)需要對頭發(fā)動(dòng)力學(xué)曲線進(jìn)行一些額外的操作,例如在曲線上吸附物體隨頭發(fā)進(jìn)行運(yùn)動(dòng)或者模擬濕潤頭發(fā)滴水的時(shí)候,則選擇后兩種。
3.創(chuàng)建頭發(fā)初始態(tài)
剛創(chuàng)建的頭發(fā)默認(rèn)是向四面八方伸展的,因此首先使用一個(gè)牛頓場,將大片頭發(fā)吸引至后上方:選擇毛發(fā)動(dòng)力學(xué)節(jié)點(diǎn),執(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提供的動(dòng)力學(xué)約束功能在設(shè)置發(fā)型上功能也是很強(qiáng)大的,用的熟練的話并不比插件差多少。
Transform變形約束是制作發(fā)型時(shí)最常用的約束方式,它除了可以將頭發(fā)曲線進(jìn)行位移,通過自身的旋轉(zhuǎn)縮放還能影響頭發(fā)的聚攏和發(fā)散。在制作動(dòng)畫時(shí),該約束也常用于制作頭 發(fā)受到物體作用的效果,如用手撥開頭發(fā)。
RubberBand是一種橡膠效果的約束:當(dāng)控制器遠(yuǎn)離頭發(fā),頭發(fā)就受到很強(qiáng)的拉力;控制器靠近頭發(fā),拉力就降低至零。通常這個(gè)約束很適合用來梳理頭發(fā)制作平滑的發(fā)型,但在動(dòng)力學(xué)效果中并不常用,因?yàn)樗睦τ绊戇^于“柔順平滑”(制作洗發(fā)露廣告倒是不錯(cuò)……)。
Stick效果和RubberBand類似,所不同的是它會(huì)在一定的距離內(nèi)產(chǎn)生作用:當(dāng)頭發(fā)和約束控制器的距離大于初始距離,頭發(fā)將被控制器吸引;當(dāng)距離小于初始距離,頭發(fā)將被控制器推開。制作發(fā)型時(shí),可用它來打亂頭發(fā)的聚攏。
以上三種約束與頭發(fā)曲線發(fā)生距離變化時(shí),都會(huì)產(chǎn)生明顯的拉力變化;而以下兩種約束只在起始幀時(shí)定位曲線上約束點(diǎn)的位置,不會(huì)產(chǎn)生任何拉力。
Hair to Hair用于頭發(fā)之間的相互吸引,它的作用較為微弱,常用于頭發(fā)塊的定型,例如頭發(fā)束使用絲帶固定。
HairBunch用于模擬頭發(fā)間的自碰撞效果,計(jì)算速度要快于啟用頭發(fā)的自碰撞功能。并且,該功能可以在起始幀的時(shí)候推開疊加在一起的頭發(fā),這是其他約束沒有的。
無論是哪種約束,頭發(fā)的初始態(tài)對它都是極其重要的,因?yàn)榧s束參數(shù)中有三種不同的點(diǎn)計(jì)算方式:Nearest是計(jì)算控制器到曲線的相對距離,曲線上的約束點(diǎn)位置會(huì)隨著運(yùn)動(dòng)而不斷變化;UParameter是忽略控制器方位,通過0到1的曲線U向方位來定位約束點(diǎn);UDistance和UParameter差不多,它計(jì)算世界空間中曲線上點(diǎn)到約束之間的距離,可進(jìn)行自定義(UD和UP最大的不同在于當(dāng)對多條曲線進(jìn)行控制點(diǎn)定位時(shí),UD能在不同位置的曲線上產(chǎn)生不同的約束點(diǎn),而UP會(huì)使所有曲線的CV點(diǎn)位于相同的距離比),同樣的,這個(gè)方式是忽略控制器的方位的。但無論是哪個(gè)方式,曲線上的約束點(diǎn)都和CV點(diǎn)有關(guān),只能在CV點(diǎn)上進(jìn)行控制,并且計(jì)算只在起始幀時(shí)執(zhí)行(除了HairBunch),動(dòng)畫開始后不會(huì)發(fā)生改變(即使對UP或UD設(shè)置動(dòng)畫幀也是沒效果的,約束無法在動(dòng)畫開始后改變位置)。
約束控制器用于定制發(fā)型并不是很復(fù)雜,你可以把自己想象為一個(gè)真正的發(fā)型美容師:通過一堆夾子,發(fā)卷,橡皮筋等工具(constraint),吹風(fēng)筒(NewtonField),來固定頭發(fā)樣式(setStartPosition),最后再加些發(fā)膠定型(setRestPosition)。Maya是個(gè)藝術(shù)軟件,很多東西是結(jié)合現(xiàn)實(shí)來進(jìn)行的,所以我們不用太懼怕那些條條框框。
6.頭發(fā)初末狀態(tài)的重要性
頭發(fā)制作過程中,初末狀態(tài)的設(shè)置十分重要。 setStartPosition(設(shè)置起始位置)一般用于定發(fā)型前的不斷嘗試,最后都會(huì)和結(jié)束態(tài)保持一致;setRestPosition(設(shè)置結(jié)束位置)則是發(fā)型靜止時(shí)的形態(tài)參考。很多時(shí)候,由于各種運(yùn)動(dòng)和動(dòng)力學(xué)影響,頭發(fā)會(huì)處于運(yùn)動(dòng)狀態(tài)中,結(jié)束態(tài)對頭發(fā)行為的影響較為微弱。頭發(fā)(hair)系統(tǒng)的這個(gè)原理和maya柔體(softbody)很像:柔體是通過粒子對幾何體的goal目標(biāo)權(quán)重來實(shí)現(xiàn)結(jié)束態(tài)的維持,而hair則是通過動(dòng)力學(xué)曲線參考結(jié)束態(tài)曲線的方式進(jìn)行,相當(dāng)于柔體的一個(gè)分支功能。在使用約束進(jìn)行發(fā)型制作時(shí),必須要在交互式動(dòng)畫播放的情況下進(jìn)行,當(dāng)達(dá)到所需效果,應(yīng)立即停止動(dòng)畫,然后在當(dāng)前狀態(tài)setStartPosition,否則hair的狀態(tài)將在第一幀時(shí)還原。同時(shí),發(fā)生位移變化的約束將從當(dāng)前位置開始,必須再次調(diào)整初始位置才能繼續(xù)進(jìn)行。
我們可以使用Hair菜單下的一些工具對頭發(fā)曲線進(jìn)行調(diào)整。例如:ScaleTool可以調(diào)整頭發(fā)的長度,但是要注意的是,一定要在起始幀的時(shí)候進(jìn)行;如果是在解算過程中,可能會(huì)出現(xiàn)異常。
另外,可以通過手動(dòng)調(diào)節(jié)曲線的cv點(diǎn),并使用Surfaces菜單下的EditCurves對頭發(fā)的初始或末態(tài)曲線進(jìn)行各種編輯;還可以使用變形器對大量頭發(fā)進(jìn)行定型,但要注意此時(shí)不能鎖定曲線的長度(LockLength),否則將在去除變形器歷史后曲線形態(tài)發(fā)生異常。
如果需要對局部頭發(fā)進(jìn)行刪除或者屬性改變,還可以通過PaintHairFollicles(繪制頭發(fā)毛囊)工具來完成。
7.頭發(fā)碰撞
選擇頭發(fā)動(dòng)力學(xué)曲線,執(zhí)行Hair->CreateConstraint->CollideSphere,創(chuàng)建一個(gè)頭發(fā)系統(tǒng)專用的碰撞球,模擬人物頭部輪廓。此外,還需要多個(gè)碰撞球放置于角色的肩膀,胸部一帶。要注意:雖然頭發(fā)可以通過geoConnector節(jié)點(diǎn)和幾何體進(jìn)行直接碰撞(MakeCollide),但是很容易發(fā)生異?,F(xiàn)象,所以要盡量使用ColllideSphere或者CollideCube來實(shí)現(xiàn)碰撞效果。Stiffness是碰撞球和碰撞方體最重要的設(shè)置參數(shù),通常0.2至0.3左右即可(數(shù)值為0則不產(chǎn)生碰撞),過高數(shù)值會(huì)使頭發(fā)發(fā)生一些異常的抖動(dòng)。
碰撞球可作為最初的頭發(fā)定型用,雖然在細(xì)節(jié)上不夠精確,但對于完成大體輪廓還是很有幫助的,所以制作發(fā)型時(shí)除了頭發(fā)的各種約束,碰撞球和碰撞方體也是很重要的輔助工具。
毛發(fā)對幾何體的直接碰撞正如柔體曲線對剛體的碰撞,其反彈效果很難控制。
8.頭發(fā)動(dòng)力學(xué)參數(shù)的設(shè)置
此時(shí)再次涉及到場景比例和單位的問題。這點(diǎn)我除了有專門文章說明,在柔體,剛體以及布料系統(tǒng)的技術(shù)文章中也多次提到,由此可見,了解這些對maya的所有動(dòng)力學(xué)特效是十分重要的。根據(jù)我自己慣用的標(biāo)準(zhǔn)比例1:10,這里要將頭發(fā)系統(tǒng)節(jié)點(diǎn)Forces區(qū)塊下的Gravity設(shè)置為9.8(默認(rèn)的0.98是指在1:1的比例下的值),可直接得到較為真實(shí)的效果。當(dāng)然,這是普遍的效果所用的參數(shù)值,某些特殊情況需要另作變更,當(dāng)所處的環(huán)境是宇宙,水底,可根據(jù)表現(xiàn)效果的需要而變更。另外,頭發(fā)的動(dòng)力學(xué)行為,和曲線的段數(shù)也有很大的關(guān)系:段數(shù)越高,頭發(fā)的運(yùn)動(dòng)就越柔順,但這除了增加解算時(shí)間,效果上也不一定合理,因此要謹(jǐn)慎使用過高的頭發(fā)段數(shù)。
9.頭發(fā)渲染細(xì)節(jié)的設(shè)置
更改了力場,接著是頭發(fā)筆刷的大小。人的頭發(fā)絲在0.1mm左右(0.05mm-0.15mm),雖然maya不一定能按實(shí)際標(biāo)準(zhǔn)來完成這種精度的頭發(fā)絲,但稍微研究下參數(shù)還是能得到很好的方案的。Brush節(jié)點(diǎn)是用于頭發(fā)的渲染,但是頭發(fā)的直徑是由頭發(fā)系統(tǒng)節(jié)點(diǎn)的HairWidth所控制。HairWidth默認(rèn)值為0.01(厘米),也就是0.1mm,那么根據(jù)我的場景比例1:10,將HairWidth設(shè)為0.001即可。不過,這個(gè)數(shù)值達(dá)到了軟件文本框可輸入的最小值,無法再進(jìn)行降低,因此我的做法是:保持HairWidth的默認(rèn)值0.01不變,然后將Brush節(jié)點(diǎn)下的GlobalScale(全局縮放)參數(shù)設(shè)為原來的十分之一(將默認(rèn)的5改為0.5)。于是,一個(gè)軟件單位的頭發(fā)絲誕生了。如果覺得還不夠細(xì),可以繼續(xù)降低HairWidth的數(shù)值,但不應(yīng)低于0.005(再低就是納米纖維了)。
Displacements區(qū)塊下的SubClumping會(huì)生成很多聚攏的發(fā)簇,常用于制作頭發(fā)淋濕的效果,但對通常頭發(fā)并沒有太大的作用,反而會(huì)減少頭發(fā)細(xì)節(jié)。
MultiStreaks(子頭發(fā))是在原有頭發(fā)的基礎(chǔ)上增加頭發(fā)渲染的總數(shù)量。當(dāng)設(shè)置為9,雖然數(shù)量上相當(dāng)于HairPerClump數(shù)值為原來的10倍。不過因?yàn)镸ultiStreaks是在頭發(fā)簇寬度的基礎(chǔ)上生成,發(fā)絲的散布范圍可超出ClumpWidth,細(xì)節(jié)更豐富;而HairPerClump是在ClumpWidth范圍內(nèi)的,如果頭發(fā)寬度HairWidth*HairPerClump大于ClumpWidth,那就沒什么意義了。因此,一般在設(shè)定好頭發(fā)寬度和簇?cái)?shù)量后,如需要增加頭發(fā)密度,應(yīng)該增加MultiStreaks的數(shù)值;而且相對而言,增加MultiStreaks的數(shù)量比增加HairPerClump渲染速度要快。當(dāng)然,有時(shí)也需要適當(dāng)?shù)男薷腗ultiStreakSpread1(頭發(fā)寬度最大偏移)和MultiStreakSpread2(頭發(fā)末梢最大偏移),因?yàn)楫?dāng)頭發(fā)數(shù)量乘以頭發(fā)寬度大于發(fā)簇寬度時(shí),就沒意義。
開啟LightEachHair后渲染效果會(huì)好很多,尤其在子頭發(fā)數(shù)量很多,頭發(fā)運(yùn)動(dòng)時(shí)影響到頭發(fā)自身陰影效果的時(shí)候。不過同樣的,渲染時(shí)間也就增加不少。
盡管MultiStreaks在頭發(fā)細(xì)節(jié)上不錯(cuò),但是因?yàn)槭呛唵蔚耐ㄟ^復(fù)制頭發(fā)簇來完成,渲染效果并不盡如人意,因此一般都采用比較低的數(shù)值,如1。過多的話將造成頭發(fā)高光效果的錯(cuò)亂。
因此為了更好的表現(xiàn)頭發(fā)質(zhì)感,適當(dāng)?shù)目刂苃airPerClump和ClumpWidth才是最佳的方案。
將筆刷Brush添加到頭發(fā)進(jìn)行渲染,可以得到更為豐富的效果。要注意,brush節(jié)點(diǎn)連接到pfx節(jié)點(diǎn)時(shí),并不是所有的參數(shù)都有效,如筆刷的寬度和顏色,將被頭發(fā)系統(tǒng)節(jié)點(diǎn)的頭發(fā)寬度和發(fā)色所替換。而筆刷的高光屬性則替代頭發(fā)系統(tǒng)的高光設(shè)置(mentalRay會(huì)忽略),同時(shí),頭發(fā)系統(tǒng)節(jié)點(diǎn)下的MultiStreaks功能失效。
10.PaintEffect和Brush的關(guān)系
創(chuàng)建頭發(fā)時(shí)選擇PaintEffect的方式,和選擇頭發(fā)系統(tǒng)節(jié)點(diǎn)執(zhí)行Hair->AssignPaintEffectBrush to Hair,效果上是不同的。前者僅僅是將曲線以筆刷的形式進(jìn)行渲染,而后者則在頭發(fā)系統(tǒng)中加入一個(gè)Brush筆觸節(jié)點(diǎn),提供了更為豐富的渲染效果(如果手動(dòng)刪除Brush節(jié)點(diǎn),那么和創(chuàng)建頭發(fā)時(shí)選擇PaintEffect的方式是同樣的效果)。
MayaSoftWare渲染PE特效時(shí),是作為后期渲染的,只支持深度貼圖陰影,無法渲染頭發(fā)的反射;MentalRay渲染PE頭發(fā)可支持反射和光線追蹤成影,并且在使用光線追蹤時(shí)效率很高,但MR渲染的頭發(fā)相對較亮,且在頭發(fā)細(xì)節(jié)上稍遜于software。使用MayaSoftware渲染時(shí),開啟Brush下的Illumination功能(默認(rèn)是關(guān)閉的,MR渲染不需要開啟,SW則需要),頭發(fā)將得到高光照明的效果。關(guān)閉RealLight可以使用內(nèi)置燈光照明,提高解算速度;而specular參數(shù)對頭發(fā)高光的渲染效果沒任何影響,取決定作用的仍然是頭發(fā)系統(tǒng)節(jié)點(diǎn)下的specular。而且要注意的是,mentalRay將忽略Illumination區(qū)塊下的所有功能。
以下是不同設(shè)置的效果對比。
【總結(jié)】
本質(zhì)上,hair就是粒子動(dòng)力學(xué)系統(tǒng)。它和柔體系統(tǒng)、內(nèi)核布料系統(tǒng)有很多共通點(diǎn),例如初始模型的保留,約束模擬碰撞,作用力的單位設(shè)置等。因此,要學(xué)習(xí)maya各個(gè)動(dòng)力學(xué)模塊,我們要了解的不是那些大量的固定參數(shù),而是認(rèn)識(shí)它們之間的共通點(diǎn)。Maya是個(gè)為藝術(shù)家而準(zhǔn)備的軟件,對此我是十分贊同的。
下一篇將介紹表情、蒙皮和燈光篇之Maya卡通角色制作,敬請期待……
相關(guān)教程:
-
分享到:
您需要登錄后才可以發(fā)帖 登錄 | 立即注冊
- 用戶名:
- 密 碼:
- 驗(yàn)證碼: 看不清? 點(diǎn)擊更換
- 忘記密碼?
全部評(píng)論:0條