數碼資源網

文章頻道 軟件下載 安卓下載 蘋果下載

當前位置:首頁文章中心建模專欄Maya → MAYA教程-從NURBS,Polygons到Subdiv

MAYA教程-從NURBS,Polygons到Subdiv

時間:2005-03-23 14:28:59人氣:451作者:網友整理
Autodesk mayav1.4
Autodesk mayav1.4 for Android
  • 類型:安卓其他大小:88.36M語言:簡體中文 評分:4.9
  • AutodeskMaya是一款世界知名的三維動畫特技模型建模軟件,廣泛應用於電影...
立即下載
Polygonsv1.7.7
Polygonsv1.7.7 for Android
  • 類型:飛行射擊大小:58.98M語言: 評分:4.2
  • Polygons是一款第一人稱射擊遊戲,作為一款以虛幻4引擎打造的遊戲,為各位玩...
立即下載
polygons安卓版(polygons手機版) v1.1.3 最新版
polygons安卓版(polygons手機版) v1.1.3 最新版 for Android
  • 類型:飛行射擊大小:40.23M語言:簡體中文 評分:3.0
  • 天啊!來看看這個遊戲的截圖吧,這已經不能用“變態”來形容這款遊戲了。polygo...
立即下載

這篇教程的對象是那些已經對Maya有了一些了解,但還不太熟悉細分表麵建模、以及如何通過多邊形模型生成細分表麵模型的Maya用戶。其中1至5部分討論一些理論問題,使你對Maya的技術知識有一些更深入地了解;而6至10部分則專門討論一下各種建模方法的優劣。


這不是一篇初級教程,所以不準備教你一步一步地如何製作一個特定模型;但是我要介紹一些更深入的理論和技術,使你能夠將它們應用到建模工作之中。所以,對於教程中所有出現的模型,我隻對一些關鍵的概念進行重點地說明。


在教程中,我使用了一些術語,有必要先在這裏說明一下。


1:基礎模型(base cage):基礎模型是多邊形模型,隨後它將被轉化成細分表麵模型。這個轉化工作可以是在RenderMan中進行的(如果你使用RenderMan的話),也可以使用Maya的Convert Poly to Subdivision Surface命令來完成。


2:細分表麵模型:細分表麵模型的英文簡寫是Sub-d,我這裏所指的細分表麵模型是由基礎模型轉化而來的細分表麵模型。


圖中從左至右為:基礎模型、帶線框顯示的細分表麵模型、不帶線框顯示的細分表麵模型

多邊形建模技術的優點


 

不管你使用那種建模技術,NURBs、多邊形還是細分表麵,它們都各有優缺點。但是,如果要製作一個複雜的生物體模型,細分表麵技術比NURBs技術要有優勢。


 

首先,細分表麵技術既可以讓我們以多邊形建模的方式進行工作,又可以得到象NURBs模型一樣的平滑表麵,而無需象NURBs模型那樣,需要進行複雜的編輯工作,才能維持各個麵片之間的連續性。


圖1:左圖的基礎模型(多邊形)上有5條邊框線彙聚到一起, 右圖是由基礎模型轉化而來的平滑的細分表麵模型。


 

其次,使用細分表麵技術可讓整個模型保持為單一模型表麵的同時,仍然擁有非常複雜的細節。這可以大大簡化隨後的角色裝配和貼圖繪製工作(當然,如果需要,也可以把模型分成若幹個部分)。比如,可以使用一張UV貼圖覆蓋整個模型表麵。而不象NURBs模型那樣,要為每個模型麵片分配UV貼圖。


圖2:為整個頭部模型分配一張貼圖

圖3:頭部模型上的UV坐標和為其分配的方格紋理貼圖


 

在細分表麵模型上,既可以任意地布置網格線的拓撲結構,也可以專門定製它們,使得整個模型得到最大的優化,而不象NURBs模型那樣比較難於控製。這種優化的直接結果就是,模型比較簡潔。在這裏,簡潔的含義就是這個模型的數據量比較小。經過特別設計的模型網格拓撲結構還可以使模型表麵產生比較平滑的變形結果,而不象NURBs模型那樣需要很密集的模型麵片。


 

最後,由於細分表麵模型是由多邊形模型轉化而來,這意味著既可以使用基礎模型(多邊形模型)構建大致形狀,又可以通過較高的細分層級修改細節。而不象NURBs模型那樣任何對細節的修改,都會影響到整體的形狀和網格線拓撲結構。


建模過程中的四邊形策略


 

盡管許多軟件都能夠對具有3邊或者5邊多邊形麵片構成的模型進行渲染,但是盡量使用4邊多邊形仍然不失為一種最好的選擇,有時甚至是必需的。因為在進行計算時,大多數的軟件都使用Catmul-Clark算法,但是對於具有3邊或者5邊多邊形麵片構成的模型,計算結果並不完美。對於Maya軟件來說,盡管它可以對具有3條邊以上的麵片構成的細分表麵模型進行計算,但截止到目前為止(2003年11月),Mental Ray渲染器還隻能對基礎網格(細分層級為1)為4邊形麵片的細分表麵模型進行渲染(Mental Ray渲染器已經是Maya的內嵌渲染器)。


 

使用這種帶有奇數邊的多邊形表麵所帶來的第一個問題就是表麵的平滑問題,在生物模型或者一些需要圓滑表麵的模型上,三角形麵片(三邊多邊形)會引起褶皺,而5邊麵片會稍好一些,但也不是很完美,如圖1。


圖1:上麵是隻由4變形麵片組成的基礎模型和由它轉化而來的細分表麵模型;下麵的基礎模型上既有3角形麵片又有5邊麵片,由此轉化而來的細分表麵模型看上去不是很平滑。


 

明白了上麵存在的問題後,就可以對其加以利用,使最終結果盡量好一些。現在,我們將基礎模型轉換成細分表麵模型,然後在此細分表麵模型的細分層級1上,分析一下會有什麼樣的結果。如圖2所示,假設圖中的模型代表人體上臂中的一段,上麵一段表示鼓起的二頭肌;它下麵的平坦區域表示二頭肌下麵向內凹陷的區域,在此區域分別放置了一個3角形麵片和一個5邊形麵片。從圖中可以看到,在基礎模型上不論是使用3角形麵片還是5邊形麵片,轉化成的細分表麵模型在細分級別1上都具有相同拓撲結構,隻不過位置有所不同。通過這樣的分析,我想會對你有所幫助,因為從上麵的分析看,在製作基礎模型時,我們隻需考慮到細分級別1上的麵片分布和拓撲結構就足夠了`如果需要修正模型上的褶皺和異常,可在更高的細分級別上進行。需要提醒的是,如果在製作過程中需要修改基礎模型的話,將細分表麵模型轉換回基礎的多邊形模型會丟掉所有在較高細分級別上所作的編輯。


圖2:上麵是存在有5邊形麵片的基礎模型和轉化成的細分級別為1的細分表麵模型,下圖是存在有3角形麵片的基礎模型和轉化成的細分級別為1的細分表麵模型。


所以在基礎模型上,盡量不要讓三角形麵片出現。要想去除三角形麵片,我這裏提供一種方法,我們知道,在一個對稱分布的幾何體上,不論上麵有什麼形狀的麵片,它們的總數總是偶數。假設上麵有2個三角形麵片並列放置,可以通過編輯工作讓它們共享同一條邊,然後刪除共享邊而得到4邊形麵片。理論上說,隻要三角形麵片的數目是偶數,我們就可以通過這種將它們放置到一起的辦法來處理。但是在實際工作中,情況並不那麼簡單,如果在一個模型上,2個三角形麵片相隔的很遠,要想將它們最終放置到一起,你可能需要大量的編輯工作,甚至還會改變整個模型的拓撲結構。遇到這種情況時,要想到最終轉換成細分表麵模型時,使用不同形狀的的麵片仍然可以產生同樣的拓撲結構。如圖2和圖3所示。

圖3:將3角形麵片合並成4邊形麵片

另外一種避免產生3角形麵片的方法是:盡量不要讓它們在開始階段出現。比如可以使用擠壓命令來創建初始模型(我將在以後詳細介紹這種方法)。用一個立方體作為開始,使用擠壓(Extrude)命令逐步添加細節,就可避免三角形麵片的出現。


 

隻要使用上麵的方法,就可保證由基礎模型轉化而來的細分表麵模型可以用於Mental Ray渲染器。


 

最後,我還要提醒大家注意模型上的極點問題。所謂極點,就是模型上三條邊彙聚在一起的那些控製點。圖4中上麵顯示的是一個帶有極點和5邊形麵片的基礎模型和由它轉化而來的細分表麵模型,可以看到,最終的細分表麵模型上仍然存在著極點。圖4中下麵顯示的是沒有極點的基礎模型由它轉化而來的細分表麵模型,可以看到,最終的細分表麵模型上沒有極點,我推薦使用這種拓撲結構,因為變形模型表麵時,它可以得到更滿意的結果。


模型的邊框線回路(Edge Loops)問題


 

模型的邊框線回路實際上就是模型的拓撲結構,它用來組織生物體模型上的肌肉結構。一個具有良好拓撲結構的模型在轉化成細分表麵模型時會得到平滑的結果,同時良好的拓撲結構也可以加快工作的進度。所謂邊框線回路(Edge Loops)就是模型上由多邊形的邊相互連接組成的一條條封閉的回路,它圍繞在肌肉結構或其它元素的周圍,描述出模型上肌肉等元素的拓撲結構。比如在一個人體模型的眼睛、嘴、或者肩部肌肉群周圍出現的多邊形邊框線,它們可以被認為是一條連續的封閉回路線。


 

在建模時首先要考慮的問題就是模型的拓撲結構問題,要通過細致的思考來布置模型的拓撲結構,使得邊框線回路的布置能夠反映出肌肉的結構和褶皺的形狀。關於這一點,我還要在“建模過程中要考慮到變形問題”這篇文章中深入探討。比如,在模型的眼睛部位精心布置邊框線回路,使他們呈現出一種同心環形回路的形式,就可以讓我們很容易地為這個部位添加細節,這可以通過擠壓(Extrude)命令來實現,另外,我們還可以使用一些腳本工具,象MJPolytools這樣的工具來幫助我們進行邊框線回路的編輯工作。比如MJPolytools允許我們對一圈多邊形麵片進行切割,這對更精致地構建眼部模型非常有利。此外,Maya本身也有很多工具非常有效,比如我們可以在Maya中對一整條邊框線回路進行選擇。


左圖黃色的線表示邊框線回路,右圖是轉化而來的最終模型


 

總之,由於生物體模型通常都含有很多大的圓滑肌肉塊體,所以精心地布置邊框線回路會使我們準確地描繪出它們的形狀,特別有利於刻畫出它們的細節。


建模過程中要考慮到變形問題


 

從靜態的角度上說,不管一個模型製作得多麼好,在進行動畫時都有可能出現可怕的錯誤。製作模型時,首先要使它盡可能地簡潔,但同時,必須要有足夠的細節來描述它的幾何形狀,因為我們還要在製作動畫時,為這個模型設置一些較極端的姿勢。比如在膝蓋關節,我通常最多為它布置5圈以內的邊框線回路(沿著腿的軸向),如果沒有特殊的細節需要,決不讓它超過6圈。


 

製作出的模型既要簡潔又要容易裝配。這句話的意思就是說,模型上不應該出現一些相互交疊的麵片,這為將來繪製關節的權重以及控製變形的範圍會帶來很大的困難。出現相互交疊的麵片會導致這樣幾個問題:1:為分配UV坐標及貼圖工作帶來困難。2:為將來添加一些變形控製器時帶來困難。3:會導致一些意想不到的變形效果。


 

設想你想讓一個臉部的模型成比例地產生變形來模擬一個微笑的表情,如果在基礎模型上的控製頂點(CVs)相互交疊在一起,在變形時,距離較近的點就會受到較大的影響,而不是像我們需要的那樣進行變形。


 

如果為角色使用融合變形器,在出現相互交疊麵片的區域,會導致變形很不平滑。這些相互交疊的幾何體,如果在製作融合變形器時不將它們展開的話,它們會相互交*甚至收縮到一起,而且變形的過程也不是以線性的速度進行。所以要盡量避免這種情況的出現,除非它們出現在不需要變形的區域。


 

在布置一個模型的拓撲結構時,要特別小心那些出現褶皺的區域,要使模型上的拓撲結構盡量沿著肌肉的自然輪廓以及褶皺的自然走向,避免拓撲結構的走向橫切那些變形時要出現褶皺的區域。例如,製作一個微笑的臉部變形動畫時,要使拓撲結構符合臉上主要皺紋的走向,這樣在轉換成細分表麵模型時,結果才會平滑。而橫切這些皺紋的自然走向,會產生出一些很細的類似鑽石形狀的幾何體,將它們轉化成細分表麵模型後,這些形狀會依然存在,這就導致了模型的不精確及尖角的出現。


第1排:基礎模型,第2排:轉化而來的細分表麵模型,第3排:變形效果。第1列:糟糕的拓撲結構,第2列:自然的拓撲結構。


 

圖2和圖3中展示了人體臉部的通用拓撲結構走向。注意圖3中的模型是如何根據圖2中女人和男人的臉部皺紋布置拓撲結構走向的,這些圖片說明了一個思考的過程,盡管這不是一個非常完美的拓撲結構。實際上,沒有任何兩個藝術家製作出的模型具有完全相同的拓撲結構,但是整體上卻都驚人地相似。

麵部上通常被關注的區域。

麵部的拓撲走向,這不是唯一的選擇,不同的藝術家會有自己不同的考慮。

建模過程中的方法論


 

俗話說:“條條大路通羅馬”,如果這個“羅馬”就是模型上的拓撲結構的話,那麼“條條大路”就是建模過程中的所使用的各種方法。最重要的是最終結果,但是結果的產生則要依*藝術家的才能和使用各種方法的熟練程度。不同的軟件都有其各自的優勢,這要根據它們的所提供的工具和用戶界麵而定。


 

Maya提供了非常強大的建模工具,甚至還可以使用它提供的變形工具來幫助建模工作。至於每個個人,你可以隻使用最有限的工具來完成工作、也可以依*一些非常強大的工具、還可以平衡使用各種各樣的建模工具。在學習Maya的建模工具時,我的建議是先熟悉老的工具,在學習新的工具,循序漸進,一點一點地增加你的知識。其實,隻使用很少量的一套工具,就可以非常有效地完成建模工作。


 

我要介紹的第一種建模方法是逐一地創建多邊形麵片,從而構建出一個整體模型的方法。盡管這種方法不是最快速的但卻是非常有效的。使用這種方法時,先用Create Polygon Tool創建一個多邊形麵片,然後可以使用extrude edges命令添加多邊型麵片,使用Append Polygons命令等填補空洞等。還可以使用extrude face命令、split polygon命令等等。再結合使用移動工具、旋轉工具和縮放工具、duplicate命令、combine和merge vertices命令以及所有你需要的工具。我就是使用這樣的方法進行建模工作的。但是,非常重要的一點就是你必須從一開始就仔細考慮好模型的拓撲結構。事先計劃好一些事情會節省你大量的時間。


第一種建模方法

第二種方法是擠壓法,或者叫方盒建模法。這種方法也不需要使用太多的工具。首先創建一個多邊形立方體,使用extrude face命令擠壓相應的麵片,用移動或縮放工具沿X軸的正、負方向編輯、修改,直到滿意為止。這種方法的特點是快速,並且能保證所有的麵片都是4變形麵片,所用到的工具也很少。此外還有一個非常有用的腳本工具"spinfaces.mel"可以給你很大幫助。這個工具可以讓你選擇一些具有共享邊界的多邊形麵片,旋轉共享邊界的方向,幫你修改編輯模型的拓撲結構。當然你也可以隻使用Maya提供的工具,刪除共享邊界,用split polygon tool重畫邊界來達到同樣的目的,隻不過稍微麻煩一些。


第二種建模方法

第三種方法叫做自適應式建模法。如果你對Maya的工具有比較全麵深入的了解,這種方法的限製性最小。你可選擇你最適合完成工作的工具來操作。建模的質量和速度則根據你對各種工具掌握的熟練程度和事先對模型拓撲結構的計劃而定。唯一的限製是你對各種工具的熟練程度還有編寫、開發Mel腳本工具的能力。


 

還有一種方法是使用Nurbs曲線作為開始,然後使用放樣工具(Lofting)構建初始模型,這是一種非常有效的方法。如果你最終的目的是將它轉換成細分表麵模型,你就不必過多地考慮Nurbs模型的連續性問題,隻把注意力集中在拓撲結構上。你甚至可以在這種模型上留下一些空洞區域,這在將來轉換成多邊形模型或者細分表麵模型後很容易修補。還可以將原始的Nurbs曲線保存起來,為以後構建類似的其他模型作參考。但是這種方法的一個問題是,在模型的某些區域上會有過於密集的網格線,而實際上卻並不需要如此,對於Nurbs模型來說,這是一個經常要碰到的問題,因為在Nurbs模型上,在某些區域經常需要較多的等參線才能維持表麵的連續性。這樣製作出來的模型並不是在拓撲結構上最優化的模型,但優點是可以使模型表麵的麵片總數較少。

多邊形模型與細分表麵模型的轉換


 

在Maya中,直接用多邊形建模要比用細分表麵建模來得容易,你可以借助Maya中強大的多邊形工具進行建模和分配UV坐標等工作,而且,也比較容易地觀察到控製頂點的準確位置,操作界麵的交互性也更好。此外,還可迅速地顯示模型在高分辨率下的整體外觀,最後,將它轉換成細分表麵模型也非常容易。


圖中顯示的是多邊形模型上的控製頂點和細分表麵模型上的控製頂點。


 

如果想將細分表麵模型轉換回原始的多邊形模型,隻需執行Undo操作,如果已經為細分表麵模型作了一些修改、編輯工作,也可以在轉換命令的控製選項窗口中將轉換方法(method)設置成vertices,細分級別(level)設置成0,從而很容易地得到原始模型,如下圖。


注:將細分表麵模型轉換成多邊形模型時,在較高的細分級別上所作的的編輯工作將會丟失。


 

為了進行這樣的相互轉換工作,我們還可以在互聯網上找到一個稱為zzToggleSubdee.mel的腳本工具,它專門用來在細分表麵模型和原始的多邊形模型之間相互切換,我建議為他分配一個快捷健以方便使用,我所使用的快捷健是“\”。


 

注:使用這個腳本工具時,它會刪除創建曆史和無用的節點。不論是向細分表麵模型進行轉換還是向多變性模型轉換,它都會打斷已經建立好的與各種變形器之間的連接,所以如果你一定要保留創建曆史,或者在構建模型時使用了一些變形器(比如晶格變形—Lattice),使用這個腳本工具時一定要多加小心。


 

Maya中多邊形模型的UV坐標編輯工具也要比細分表麵的要好很多,所以,應盡量在多邊形模型上進行UV坐標的編輯工作,然後再轉換成細分表麵模型。


圖中顯示的是Maya4.5中多邊形模型的UV編輯工具和細分表麵模型的UV編輯工具

注:如果再細分表麵模型上進行了一些更高細分級別的UV編輯工作,當它轉換成多邊形模型時會丟失,所以我建議在模型最終完成時,再進行這些UV的編輯工作。


從NURBs模型向細分表麵模型的轉換

Maya中的Nurbs工具是非常強大的,它甚至提供了多邊形建模工具所不具備的功能,所以可以使用這些工具作為多邊形或者細分表麵建模的有力補充。比如在Nurbs模型上增添等參線提高網格線的密度並不會使模型的表麵的形狀發生改變。因為我們最終的目的並不是要得到一個Nurbs模型,所以在建模過程中,我們所關注的問題隻是如何借助Nurbs技術來幫助我們構建出最終的多邊形模型或者細分表麵模型。因為這個原因,最終的細分表麵模型上的拓撲結構不需要與Nurbs模型完全相同,見下圖。


耳朵模型:1-基礎模型,2-細分表麵模型,3-細分級別為1的細分表麵模型,4-Nurbs模型


 

還要知道的是,如果將Nurbs模型轉化成細分表麵模型,轉化前後的模型在位置上並不完全重合,也就是說細分表麵模型上的一些麵片會沉到原始的Nurbs模型下麵,這是因為以下這樣幾個原因造成的:


 

1:為了能夠得到平滑的細分表麵模型,在進行細分的內插計算時會使模型表麵發生收縮現象,如下圖。


Nurbs模型(1)轉化成多邊形模型(2)然後轉換成細分表麵模型(3)

 

2:如果將原始的Nurbs模型直接轉換成細分表麵模型,也同樣會使模型表麵產生收縮,如下圖。


白色的網格線代表細分表麵模型,與Nurbs模型並不完全重合,有一些收縮。

3:將原始的Nurbs模型直接轉換成細分表麵模型時,通常情況下細分表麵模型上的網格線會過於密集,因此需要簡化。由於簡化工作會導致模型網格上控製頂點的減少,內插計算的結果也將導致最終模型產生收縮。


將Nurbs模型(1)轉換成細分表麵模型(2)和簡化以後的細分表麵模型(3)。


 

4:如果原始的Nurbs模型是有多個麵片縫合在一起構成的,由於麵片間連續性的需要,會在這些縫合的邊緣附近有更多的控製點,將它轉換成細分表麵模型後,需要結合多邊形麵片,結合控製頂點和結合邊等操作,這也會導致最終模型表麵產生收縮。


 

所以,如果最終目的是要轉換成細分表麵模型,可以在原始的Nurbs模型上留一些“洞”或者不連續的區域,因為這些問題可以很容易地在轉換後的細分表麵模型上加以解決,比如用添加多邊形工具填補它們。


 

正是因為在細分表麵模型上不存在麵片間的連續性問題, 所以我建議不必在原始Nurbs模型上保持麵片間的連續,將它轉換成細分表麵以後,通過適當的編輯工作就可很容易地解決這個問題。此外,還有一個腳本命令—nurb2subdCage.mel用來解決這個問題,這個腳本命令是在製作電影《蜘蛛人》時由Dan Kramer開發的,這是我見過的最好的腳本之一,可以使最終的細分表麵模型非常接近原始的Nurbs模型,而又省去繁重的手工操作麻煩。

擠壓建模法—或者稱為方盒建模法

擠壓建模法(也稱為方盒建模法)是一種非常快速的建模方法。大多數沒有太多經驗的初學者會認為這種方法比較容易上手。但是,一旦深入進去以後,還是會涉及到很多技術問題, 學習的進度也會相應的放慢。


圖1:擠壓建模法,或者叫方盒建模法示意圖


 

要使用這種方法建模,首先要做以下一些設置工作:


 

1:確認Maya中的Polygons>Tool Options>Keep Faces Together菜單選項為勾選狀態。


 

2:為方便使用,將Edit>Paint Selection Tool菜單命令放置到工具架上。(選擇菜單命令Edit>Paint Selection Tool,然後再屏幕左側的工具欄的最下麵,選擇這個命令的的圖標,用鼠標中健將它拖拽到工具架上)


 

3:要養成使用快捷健的習慣。在建模過程中,會經常用到F8、F9、F10和F11這幾個快捷健,它們分別代表切換到物體選擇模式、控製點選擇模式、邊選擇模式和麵片選擇模式。


 

4:為spinFaces腳本命令分配一個快捷健(我使用Ctrl+\)。如果需要下載這個腳本命令,可以在http://www.highend3d.com/網站上找到,也可點擊這裏下載:spinFaces.mel,然後將它放置在本機的scripts目錄之中即可。


 

5:為zzToggleSubDee腳本命令分配一個快捷健(我使用\)。如果需要下載這個腳本命令,可以在http://www.highend3d.com/網站上找到,也可點擊這裏下載:zzToggleSubDee.mel,然後將它放置在本機的scripts目錄之中即可。


 

6:將工作界麵上透視視圖攝像機的焦距—Focal Length設置到150以上。


 

除去以上設置以外,也可以創建自定義的工具架,將一些常用的多邊形建模工具、選擇工具和命令放置在上麵。如圖2所示。在我的設置中,我還安裝了一個非常有用的多邊形建模腳本MJPolytools,我將其中的loopSplit腳本命令(圖中上排圖標5)也放置到自動義的工具架上。



圖2:自定義工具架


 

擠壓建模法簡介:從它的名稱就可分析出這種建模法的大致要領,首先從一個最簡單的多邊形立方體、或者一個在Y方向的分段數為3的多邊形立方體開始,在這個階段,盡量不要使模型有中心分界線。接下來主要使用擠壓麵命令逐步為模型添加多邊形麵片,以達到增加細節的目的。在擠壓多邊形麵片時,一定要確保勾選了主菜單上的Edit>Paint Selection Tool>Keep Faces Together選項。這個過程有點象製作傳統雕刻作品時,逐步添加一個個的粘土塊來構建大致的形狀。在建模時也要逐步擠壓多邊形麵片,然後調整模型的形狀,得到一個粗略的模型;再擠壓出新的麵片,一步步地將模型精細化。如圖1所示。與此同時,一定要時刻關注模型上邊框線回路的走向,特別是在眼睛周圍或者嘴的周圍,要布置上一圈圈環狀分布的邊框線回路,而擠壓麵片工具特別適合創建這些環狀分布的幾何體。得到了眼睛及嘴的大致形狀以後,還可以使用loopSplit腳本命令工具進一步細分那些環狀分布的幾何體麵片,並由此構建出眼簾等其他細節部分,如圖3。


圖3:3.1:使用loopSplit腳本命令添加細節。3.2:調節點的位置。 3.3:選擇中心的麵片。3.4:使用擠壓命令拉出眼睛的縱深。3.5:重複進行上述操作,得到的最終結果。

在除去眼睛和嘴以外的區域,邊框線回路的拓撲結構也需要經常進行調整。除去使用調整編輯點的位置以外,有時還需要重新排列兩個相鄰麵片的共享邊界來完成這個工作,這通常有兩種方法:


 

第一種方法是先將兩個麵片之間的共享邊界刪除,然後使用Maya中的分割多邊形工具—Split Polygon Tool,在刪除了共享邊界後所形成的六邊多邊形麵片上重新繪製多邊形邊界,這樣可以得到邊界走向完全不同的兩個四邊多邊形麵片。通過這樣的方法,實現對邊框線回路拓撲結構的調整。這種方法稍微有些麻煩,但好處是隻使用Maya自己提供的工具,不需要添加任何額外的腳本工具,對初學者熟悉Maya很有好處,執行步驟如下:


 

1:首先選擇模型體,按F10健切換到邊選擇狀態


 

2:選擇共享邊界


 

3:按Delete健刪除共享邊界


 

4:選擇Edit Polygons>Split Polygon Tool


 

5: 重新劃分刪除了共享邊界後所形成的六邊多邊形麵片,形成兩個新的四邊多邊形麵片。


 

操作步驟如圖4。

圖4:改變拓撲結構的走向


 

另外一種方法是使用Mel腳本命令—spinFaces來完成同樣的工作,我已為它分配了一個快捷健Ctrl+\。這和命令使用起來非常方便,可以節省工作量。操作步驟如下:


 

1:按F11健切換到麵片選擇模式


 

2:打開繪畫選擇工具—Paint Selection tool(你可以將它放置在工具架上以方便使用)


 

3:用繪畫選擇工具選擇兩個需要調整的具有共享邊界的麵片


 

4:執行spinFaces.mel腳本命令(Ctrl+\)


 

此時,會自動重新繪製多邊形邊界,形成兩個新的四邊多邊形麵片。最後執行邊界時,會出現三種情況,如果執行一次spinFaces.mel腳本命令達不到所需要求的話,可以重複執行此命令,直到滿意為止。要想充分利用這個工具,最好為它分配快捷健或者將它放置在工具架上。另外,這個腳本還在進一步開發之中,在將來的spModeling Tool腳本命令上,這個命令甚至還可以直接應用到多邊形的邊上,省去了選擇相鄰麵片的麻煩。

圖5:spinFaces.mel腳本命令的使用情形

我們最最經常使用的策略就是,通過使用以上的方法,在建模的開始階段完成絕大多數拓撲結構的構建工作,而其餘的時間則用來精細調節模型的準確形狀。一旦完成了基礎的拓撲結構和形狀比例,就可進入到添加和調整細節的步驟當中,此時應該首先保存基礎模型,以便隨時回到模型的初始狀態。此外要隨時保存好已經調整好的低分辯率模型(使用Smooth命令或者轉化成細分表麵模型之前),以後,我們可以使用這些低分辨率的模型作為設置動畫、綁定等工作的代理,甚至還可以根據低分辨率的模型與高分辨率模型間差別製作出次級別的置換貼圖,這樣就可避免在將來使用高分辨率模型進行角色的設置工作。


圖6:添加細節

自適應式建模法


 

自適應建模法是最具個性化、也是最靈活的一種建模方法。在Maya中我們可以使用很多種工具實施自適應式的建模,因而也就可也衍生出很多種不同的方法。一旦對你所要製作的模型的拓撲結構心中有數,你可以有很多不同的途徑來完成最終的模型。因此,最有價值的方法就是你應該知道哪種途徑對你是最適合的。對於自適應建模法來說,我很難準確地告訴你該如何建模,因為每個人的方法都是不同的。但是我可以告訴你一些思路,這也許會對你有所幫助。


 

首先,在使用自適應法創建模型時。,盡管每次總還是嚐試一些不同的途徑來解決問題,但是我也會較固定地經常使用幾種比較順手的工具加快工作的進度。比如擠壓麵片命令和擠壓邊命令可以使我快速地構建出模型的大致形狀。假設我從一個頭部的額骨輪廓線開始,隻需使用若幹次擠壓邊命令,就可以得到整個頭蓋、後腦直至脛部的模型麵片,如圖1所示。此外,象前麵所介紹的,還可以使用擠壓麵片命令快速地構建出具有環狀肌肉分布的區域,比如眼睛周圍和嘴周圍的區域。然後我使用添加多邊形工具(Append to Polygon Tool),這個工具可以用任意邊數的多邊形麵片填補模型上留下的‘洞’,最後我使用切割多邊形工具(Split Polygon Tool)將這些任意邊數的多邊形麵片切割成四邊形麵片,如圖3所示。

圖1:使用擠壓邊命令和添加多邊形工具構建出大致形狀

圖2:使用切割多邊形工具切分多邊形麵片


 

接下來,我經常借助另外一種強大的工具—變形器來進行建模工作。盡管變形器是一種動畫工具,但是在建模過程中也可以使用它們。比如晶格變形器(Lattice)可以幫助我們快速地調整模型的整體比例,然後,通過刪除構建曆史的操作,我們就可以保留修改後的形狀並且同時刪除掉變形器,如圖3所示。

圖3:建模過程中使用晶格變形器

另外,還可以使用成比例調整工具(Proportional Modification tool)來調整模型上某些部分的總體形狀和比例,這個工具上帶有衰減範圍屬性(Falloff),可以定義調整時的影響範圍,如圖4所示。通常情況下,此工具隱含在Maya的Modefy>Transformation Tool菜單之中。

圖4:使用成比例調整工具進行局部形狀的調整


 

還可以使用融合變形器(Blend Shapes Deformer)和包裹變形器(Wrap Deformer)進行鏡像的調整,如果所製作的模型具有對稱的結構,使用這種鏡像調整方法可以使我們簡化一半的建模和調整工作,我們隻需在模型的一側進行調整,所作的調整工作會自動地鏡像複製到模型的另一側之上,如圖5所示。這種鏡像調整的一大優點是,如果兩個包裹變形器同時嚐試移動模型上的同一個點時,最終的結果是相減而不是相加。比如當我們移動一個頭部模型上中心線上的點時,由於兩個包裹變形器的最終作用是相減,所以不會引起這些被移動的點產生雙倍移動的結果。這種方法還同時保證了兩個形狀能夠很自然地融合成另外一個形狀。


圖5:從左至右為,融合變形模型,目標模型和修改後的模型

使用融合變形器(Blend Shapes Deformer)和包裹變形器(Wrap Deformer)進行鏡像的調整的操作步驟如下:


 

1:將基礎模型複製3份,分別命名為X_neg(X代表基礎模型的名稱,neg表示坐標軸的負方向),X_pos(pos坐標軸的正方向),和X_morph(morph表示融合變形),並將X_neg置於左側、X_morph置於中間、X_pos置於右側。


 

2:在需要鏡像操作的方向上(比如X坐標方向),將X_neg模型的縮放屬性(Scale)設為-1,


 

3:在X_morph模型上先做一些形狀上的調整,這些調整將來會反映到它兩側的模型之上。


 

4:將X_morph模型作為融合變形器添加到X_neg和X_pos模型之上。


 

5:將X_neg和X_pos模型作為包裹變形器添加到基礎模型之上。


 

6:最後,在作為融合變形器的X_morph模型上進行相關的調整工作,就會在基礎模型上看到鏡像的調整結果,達到滿意的效果後,複製最終的基礎模型,保留所作的鏡像調整。

  

最後,將場景中的某一模型物體激活(Make Live)然後根據這個激活的物體進行模型形狀的調整工作,也是一個非常有用的方法。比如,當我們需要以一個眼球物體為參考物體,調整一個頭部模型的眼簾部位時,就可以將這個眼球球體先激活(Make Live)然後調整眼簾模型上的控製點,使這些控製點被捕捉到激活的眼球模型之上。這樣就可以使眼簾的形狀準確地符合眼球的形狀,如圖6所示。當一個物體被激活以後,它在場景中以綠色的線框顯示。當然,你也可使用Maya中的一些雕刻變形工具進行這個調整工作,但是結果欠精確。


圖6:使用激活的物體進行建模工作


 

總之,自適應建模法是一種非常個性化的建模方法,可以選擇使用的建模途徑要遠比可以使用的工具多,如果你有使用Mel腳本的能力,還可以開發自己的解決方案,那將會給你提供更多的選擇。所以唯一的限製是你的創造力和時間。

細分表麵模型的細劃分


 

有幾種不同的方法來細分最終的模型。象前麵章節討論過的一樣,可以使用擠壓麵的方法模型添加細節,然後通過刪除和重新繪製邊界,或者使用spinFaces Mel腳本命令來調節模型的拓撲結構。還可以使用成比例調整工具(Proportional Modification Tool),通過設置合適的衰減屬性值(Fall Off)來調整模型的上的扭曲與變形。甚至還可以使用切割多變性工具(Split Face Tool)來分割多變性麵片,達到細分多變性麵片的目的。如果你的軟件支持細分表麵模型,還可以使用Subdivision Surfaces>Refine Selected Compoents命令來細劃分細分表麵模型,為模型添加細節。


 

在模型接近完成時,它上麵的拓撲結構也應基本布置完畢。最終的步驟是對模型上的拓撲結構作一些改進,構建出模型上的皺紋和折痕。此時就需要對模型進行一些細劃分。


 

首先要做的工作是清理一下模型上的拓撲結構;然後在需要的地方添加細節以滿足各種各樣的變形的需要。拿一個頭部模型來說,如果將來需要進行表情動畫,嘴的周圍以及眉毛部分就發生很多的變形,因此要為這些部位將創建很多皺紋,使這些部位有足夠多的細節,也就是有足夠多的幾何體來支持將要產生的變形,而且這些變形看上去要符合邏輯。因此,我們應該仔細觀察參考圖像,必要時還可以對著鏡子觀察自己的表情,搞清楚臉部肌肉的變形情況。要使你模型幾何體上的拓撲結構即能夠遵循皺紋的走向,又能夠反映肌肉塊的形狀。所以在精細調整模型的拓撲結構時,要仔細思考它的邊框線回路和底層肌肉的結構。隻有在這個階段注意到了這些問題,才可以使你避免將來在變形和扭曲模型表麵時遇到許多麻煩。因此為了保證將來模型變形的自然流暢,你需要在此階段做大量的工作。


 

至於模型上的皺紋等細節,你可以通過修改模型來實現,也可以通過置換貼圖來實現。不論使用那種方法,最好都要使模型上包括一些具有代表性的拓撲結構,因為這將幫助你能夠更好地控製這些區域的拉伸與壓縮變形,否則的話,將會影響到將來模型的變形,特別是貼圖變形時的效率。


 

如果需要將來在模型上使用一些變形工具,比如融合變形器、骨骼係統、線變形器等,就需要使模型上有相應的幾何體來形成皺紋等細節。但是在模型上添加這些幾何體來形成細節會影響到模型的結構,盡管具有較高密度幾何體的區域當然會比低密度的區域更能準確地反映模型的真實形狀。但在添加了細節的區域,你仍然需要修改一些周圍的幾何體來更好地反映模型在添加細節以前的形狀,圖1顯示的是添加皺紋等細節後的模型。


圖1:在模型的拓撲結構上切割出皺紋等細節


 

很多時候,模型上需要傷疤、裂痕等設計元素,如圖2所示。在添加這些元素時,使用的方法與製作皺紋基本相似。當然這些傷疤、裂痕可能並不需要非常自然地符合生物體上的自然走向,有時甚至會有比較尖銳的邊緣。但是要想在模型上添加這些傷疤、裂痕俄等細節,同樣需要在模型上添加一些幾何體來形成這些細節,這樣才能保證他們平滑地融合到幾何體密度較低的區域,這需要大量的調節工作,不幸的是,目前為止,並沒有一種固定的方法來進行這些精細的調整工作。


圖2:在生物體模型上添加一些機械性的邊界

相關文章

  • 用Maya 進行NURBS快艇設計

    大家好,首先,通常……很抱歉我的英文不是太好.好了..這是又一個初學教程,在這個教程裏我們將學習和了...
  • Maya建模-NURBS製作三管相接

    學習maya的NURBS一段時間後的一些成果,願與大家一同分享。這個練習是我從其他的工業設計論壇上看...

感謝速聯科技、八度網絡、九九數據、億恩科技、群英網絡讚助部分帶寬!

關於本站 | 聯係方式 | 版權聲明 | 下載幫助(?) | 網站地圖

Copyright 2002-2020 95262.com 【數碼資源網】 版權所有 粵ICP備2020128507號-1

本站所有軟件來自互聯網,版權歸原著所有。如有侵權,敬請來信告知 ,我們將及時撤銷。