介紹有關(guān)平滑的多邊形模型的一些知識
各位好。以下是一片翻譯教程,這雖然不是叫你一步一步制作的教程,單是是一片非常好的教程。
概要
I. 簡介
II. 什么是平滑的多邊形模型
III. 為什么使用平滑的多邊形模型
優(yōu)點
簡易性
直觀的界面操作
高速的生產(chǎn)效率
內(nèi)嵌多層次的細(xì)節(jié)級別
一張紋理貼圖可適用于整個角色
紋理貼圖的所有區(qū)域互成比例
缺點
需要在模型上布置UV坐標(biāo)
在使用colorLayout以后,不能夠添加或去除多邊形邊界
在某些情況下,模型分辨率可能不夠高
相對于其他形式的模型表面, 在鑲嵌細(xì)分時,缺少控制
與Maya的Fur模塊結(jié)合得不太好
紋理接縫問題
IV. 與平滑多邊形模型相關(guān)的技術(shù)問題。 以及如何使用歷史節(jié)點和MEL腳本解決這些問題。
問題1
在平滑以后,蒙皮時要處理過多的多邊形表面頂點
解決辦法1
先蒙皮低分辨率的多邊形網(wǎng)格, 在蒙皮簇skinCluste下添加polySmoothFace節(jié)點, 所有融合變形須加在skinCluste 之前。
問題2
大于4個頂點的多邊形面, 在平滑后可能產(chǎn)生不好的結(jié)果。
解決辦法2
建模時使用四邊或者是三角形面片
問題3
在添加了polySmoothFace節(jié)點后, 會發(fā)生UV坐標(biāo)扭曲的現(xiàn)象。
解決辦法3
在polySmoothFace節(jié)點下,使用投影節(jié)點。 并把UV坐標(biāo)布置在參考物體上?墒褂萌缦翸EL腳本,加快你的工作進(jìn)程。 autoColor, autoProject, and autoShellAssign。
V. 如何把你的模型提交給角色設(shè)置動畫師
1 產(chǎn)品生產(chǎn)流水線
2 如何合并相關(guān)的UV參考文件及設(shè)置文件。
3 隱藏和鎖定UV參考文件。
創(chuàng)建高分辨率多邊型模型
I. 概述
本教程關(guān)注的是如何在Maya4。5中, 使用平滑的多邊形幾何體創(chuàng)建高精度的模型。 我們要討論的是: 對比與其他類型的表面,多邊形這種模型表面的優(yōu)缺點。我們還要討論與平滑多邊形模型相關(guān)的技術(shù)難點。我們將使用自己編制的MEL腳本和歷史來克服這些技術(shù)難點。最后我們將討論如何將這種類型的模型應(yīng)用于產(chǎn)品的生產(chǎn)線中。 同時將提供一些技巧,展示如何與角色設(shè)置藝術(shù)家協(xié)同工作,把模型及紋理貼圖很好的合并到一個組織嚴(yán)密的角色文件中去。
II. 什么是平滑的多邊形模型
我們這里所指的平滑多邊形模型是在它的歷史記錄中,具有可調(diào)polySmoothFace節(jié)點的低分辨率的多邊形網(wǎng)格。在Maya的建模模塊的主菜單上,通過選擇Polygons>Smooth命令,即可創(chuàng)建平滑的多邊形。為了能用低分辨率的多邊形網(wǎng)格控制高分辨率的網(wǎng)格,通常我們使用的技術(shù)是連接此倆多邊形網(wǎng)格的形狀節(jié)點并且平滑作為目標(biāo)的多邊形網(wǎng)格。此外,有一些免費的MEL腳本也可做同樣的工作。例如: Dirk Bialluch 寫的connectPolyShape (CPS)。 或者可以直接編輯低分辨率網(wǎng)格,然后添加polySmoothFace節(jié)點,當(dāng)需要重新編輯低分辨率網(wǎng)格時, 使用deleteInput MEL腳本刪除平滑后的多邊形網(wǎng)格。
這里所說的目標(biāo)網(wǎng)格,也就是平滑后的網(wǎng)格仍然是多邊形網(wǎng)格。在使用平滑(Smooth)命令以后,會有一個polySmoothFace節(jié)點存在于此物體的歷史記錄中,同時網(wǎng)格的密度會變密。通過控制polySmoothFace這個節(jié)點, 我們可以獲得各種細(xì)節(jié)級別的模型, 而不需用手工去添加。 但是,執(zhí)行了平滑命令以后, 不要在原始模型上刪除任何控制頂點, 否則會產(chǎn)生意想不到的結(jié)果。
需要知道的是,在Maya 4。5中, 目前有基于兩種不同的算法機制的平滑算法。 我在這要使用的是指數(shù)性的平滑算法, 因為這種算法能夠很好地與我們將要用到的一些MEL腳本相兼容。 所以,在我的Maya的平滑命令設(shè)之中, 我選擇指數(shù)算法(exponential)。
III. 為什么使用平滑的多邊形模型
優(yōu)點:
簡易性
在三維圖形領(lǐng)域, 多變型是一種最古老的模型表面。 所見既所的是他的一大長處。 不需要額外的鑲嵌細(xì)分和參數(shù)劃設(shè)置。 并且, 相對于Nurbs等類型的模型, 他只需要較少的計算量。
直觀的界面操作
絕大多數(shù)的三位藝術(shù)家都可在幾天之內(nèi)完成一個多邊形模型。 因為對于多邊形模型來說, 不存在面片連續(xù)性的問題, 不需要縫合表面。在建模過程中, 可很方便,很容易地添加邊, 面等。 通常來說,在建模時,先從一個基本的幾何模型開始,再逐步添加細(xì)節(jié),是提倡采用的方法。但是對于多邊形模型來說,對這種建模的順序的要求可相對松一些,也不至于導(dǎo)致不可預(yù)想的結(jié)果。而Nurbs模型,則對此要求較嚴(yán),必須經(jīng)過大量的實踐和高度的操作技巧來張握這種正確的建模順序。所以多邊型建模更直觀容易。
高速的生產(chǎn)效率
使用平滑多邊形建模的方法相對于Nurbs面片的建模方法來說要快速。絕大多數(shù)模型在一至兩天內(nèi)即可完成。
內(nèi)嵌多層次的細(xì)節(jié)級別
在Maya中,polySmoothFace節(jié)點的細(xì)劃分屬性可在任何需要的時候調(diào)解。這個內(nèi)嵌的多層次的可調(diào)節(jié)細(xì)節(jié)級別的屬性,可使我們根據(jù)攝影機到模型距離的不同需要,任意調(diào)節(jié)模型的分辨率。
一張紋理貼圖可適用于整個角色
多邊形模型允許使用一張紋理貼圖覆蓋整個多邊型角色,這樣, 在使用PhotoShop這樣的軟件處理紋理貼圖的時候要方便和容易得多。而不用象Nurbs面片模型,需要處理多張紋理貼圖。
紋理貼圖的所有區(qū)域互成比例
使用我們自己編織編制的MEL腳本autoProject,可以在Maya的UV紋理編輯器中, 保證每一塊UV坐標(biāo)分塊互成比例。這使得整張紋理貼圖的縮放,在整個模型表面保持連續(xù)。
缺點
需要在模型上布置UV坐標(biāo)
Nurbs面片模型的UV坐標(biāo)是內(nèi)置于Nurbs幾何體的,一旦建模完畢,可直接提供給貼圖藝術(shù)家使用。但是多邊形模型必須在它貼圖之前,被人工分配UV坐標(biāo)系統(tǒng)。這個手工分配UV坐標(biāo)的過程,有時會使整個生產(chǎn)進(jìn)度增加數(shù)小時甚至是數(shù)天不等。
在某些情況下,模型分辨率可能不夠高
盡管我們作了很大的努力,把UV紋理編輯器緊密集成,我們還可以多次使用一張紋理圖的某些區(qū)域,但是多邊形模型幾乎總是不能充分使用所有的紋理空間,總會有一些紋理區(qū)域沒有被用到,這將導(dǎo)致用于平滑多邊形的貼圖要大于在同樣情況下用于Nurbs的貼圖。如果要想達(dá)到同樣的分辨率水平。
在平滑等級2的情況下,多邊形數(shù)太高
相比Nurbs模型,使用平滑多邊形模型會導(dǎo)致失去和多控制。在平滑等級1的時候,模型看上去有些面片的痕跡。但到平滑等級2時,多邊形數(shù)以指數(shù)形式增加,造成多變性面過多,甚至超過我們的實際需要。
與Maya的Fur模塊結(jié)合得不太好
多變形這種形式的模型與Maya的Fur模塊結(jié)合得不好。極大的限制了在此種模型上直接繪制各種中皮毛筆刷的能力。在這一點上,Nurbs模型要好得多。
IV. 與平滑多邊形模型相關(guān)的技術(shù)問題,以及如何使用歷史節(jié)點和MEL腳本解決這些問題。
范例文件:CylinderSkinExample_01.mb
問題一:在平滑以后,蒙皮時要處理過多的多邊形表面頂點
一旦對多變形網(wǎng)格施加了平滑命令并且刪除了歷史節(jié)點,要想綁定這個幾何體到骨骼上將會非常困難。盡管在技術(shù)上有這種可能性,可對所有的多變形表面定點設(shè)置權(quán)重,但這可是一項非常艱巨和效率低下的任務(wù)。
解決辦法1
先蒙皮低分辨率的多邊形網(wǎng)格,在蒙皮簇skinCluste下添加polySmoothFace節(jié)點,所有融合變形須加在skinCluste 之前。
解決辦法是在執(zhí)行平滑命令前,先綁定低分辨率的多邊網(wǎng)格。這樣,可以只處理低分辨率模型的權(quán)重問題,然后再執(zhí)行平滑命令。但要注意,如果需要為模型添加一些融合變形,此變形節(jié)點一定要加在蒙皮權(quán)重的skinCluster之前。
問題2
大于4個頂點的多邊形面,在平滑后可能產(chǎn)生不好的結(jié)果。
在執(zhí)行平滑命令時,大于四邊形的面片,會產(chǎn)生不可預(yù)想的結(jié)果。更糟的是,在動畫模型時,模型網(wǎng)格會產(chǎn)生“爆裂”的現(xiàn)象。
解決辦法2
建模時使用四邊或者是三角形面片;谝陨显,建模時應(yīng)優(yōu)先考慮使用四邊或三角形面片,盡可能不用N邊形面片,一點要避免在變形厲害的區(qū)域,如,嘴,肩和膝蓋等區(qū)域使用。在此我們提供了一個Mel腳本,可以根據(jù)多變形面片的邊數(shù)來用顏色區(qū)分不同邊數(shù)的多變性面片,四邊形為綠,三角形為蘭,其他為紅顏色。
問題3
在添加了polySmoothFace節(jié)點后,會發(fā)生UV坐標(biāo)扭曲的現(xiàn)象。
添加了polySmoothFace節(jié)點后(執(zhí)行平滑命令后),在UV編輯器中,如果你仔細(xì)觀察,你會注意到原有UVs坐標(biāo)仍保持在原來位置。但是由于同時發(fā)生了UV坐標(biāo)的細(xì)劃分,所以會創(chuàng)建出新的UV邊界,這正是問題所在。此時的UV坐標(biāo),與其應(yīng)該達(dá)到的理想情況相比會顯得混亂。如果你再仔細(xì)地觀察一下,你會發(fā)現(xiàn),此時的UV坐標(biāo)并不準(zhǔn)確地符合現(xiàn)在的多邊形網(wǎng)格。你現(xiàn)在的多邊形模型的網(wǎng)格是平滑彎曲的,而現(xiàn)在的UV坐標(biāo)仍然保持直線的,正是這個原因,引起了UV坐標(biāo)的扭曲。這個扭曲的程度,會根據(jù)你的原始模型的不同,從很輕微甚至到很嚴(yán)重。
解決辦法3
布置UV時,在polySmoothFace節(jié)點后應(yīng)用投影坐標(biāo)節(jié)點。同時可使用我們提供的Mel腳本:autoColor, autoProject, and autoShellAssign來加快整個工作進(jìn)程。
在polySmoothFace節(jié)點后面使用多邊形投影坐標(biāo),將減少這種UV坐標(biāo)的扭曲。因為,在歷史紀(jì)錄里,由于投影節(jié)點是在平滑節(jié)點后面的,所以它將根據(jù)多邊形平滑級別的不同而自動更新,所以會精確符合我們的模型網(wǎng)格。所創(chuàng)建出的UV坐標(biāo),也會隨著平滑級別的不同而自動更新。
如果我們需要進(jìn)行貼圖工作的的模型完全是平面的,這個工作會比較容易完成。只需要做一次投影就可以了。但是,我們更多處理的是那些曲面模型,它上面的面片分別指向不同的法線方向。當(dāng)面片的法線方向與我們坐標(biāo)的投影方向有很大偏離時,如何處理避免貼圖紋理的拉伸?
在這種情況下,我們需要用來自不同方向的多個UV坐標(biāo)投影,來克服紋理的拉伸問題。就是說,不同的面片需要從對他們來說相對最有利的投影方向來獲得UV坐標(biāo)。例如,一組面片的法線方向向下指向Z軸的負(fù)方向,我們需要用朝向Z軸的正方向的投影。同理,指向X軸的負(fù)方向的一組面片,需要用朝向X軸正方向的投影。
但是,接下來的問題是,如何把一些面片包括在這個投影中,把另外一些面片包括在另一個投中。在比較復(fù)雜的多邊形模型中,我們需要一個辦法,來選擇這些面片,并且告訴Maya從哪個方向上對他們進(jìn)行投影。通常,大家的做法是:先平滑這個多邊形模型,然后在這個平滑后的高密度多邊形網(wǎng)格上選擇出一組面片,然后進(jìn)行投影。但是,要想在一個很高密度的多邊形網(wǎng)格上進(jìn)行選擇,是一件較困難的事情,。另外,此時創(chuàng)建的UV坐標(biāo),也只適用于這個平滑后的多邊形網(wǎng)格,這樣的話,在添加polySmoothFace節(jié)點后,我們反而失去了對模型不同細(xì)分界別的控制。
我們給出的解決辦法是:在添加polySmoothFace節(jié)點之前(執(zhí)行平滑命令之前),先在低分辯率的多邊形網(wǎng)格上創(chuàng)建‘選擇組“(selection sets)。首先在低分辨率的模型上,劃分出若干個區(qū)域,并為他們建立不同的選擇組。對不同的區(qū)域我們將在以后使用不同的坐標(biāo)投影。然后對模型加載polySmoothFace節(jié)點,把它變成平滑模型。在平滑以后的模型上,我們先前做的選擇組內(nèi),將會同時也把因為執(zhí)行了平滑命令而產(chǎn)生的新的面片包括進(jìn)來。所以這就給我們提供了方便,我們只需要在低精度的模型上進(jìn)行選擇的工作,而我們所創(chuàng)建的選擇組,將根據(jù)模型的不同精度自動地更新。這樣,我們可以在polySmoothFace節(jié)點上,同時也保留的對不同精度的控制。
在建立‘選擇組’時,使用常規(guī)的方法并不是很方便。因為在你若想把面片包含在你的選擇組中,你就必須先選擇它。所以這不是一個快捷的方法。因此,在這里我們將使用一種特殊形式的組,來簡化我們建立‘選擇組’的工作。這個特殊的‘組’,我們暫且稱其為‘材質(zhì)組’(Shader Group)。使用這種材質(zhì)組的好處是:由于它是與材質(zhì)的濾光器節(jié)點相聯(lián)系的,我們就可以改變這個材質(zhì)的顏色,使模型在陰影顯示模式下,給我們一個更好的視覺展示。就是說屬于不同‘組’的表面,我們可以分配給它不同的顏色。當(dāng)我們分配給某一些表面一個材質(zhì)的時候,就自動地迫使它們進(jìn)入相應(yīng)材質(zhì)的“材質(zhì)組”。而且,任意面片只能屬于某一個‘材質(zhì)組’,要是分配給它另外一個材質(zhì),它將被當(dāng)前的材質(zhì)組清除,進(jìn)入著另外的材質(zhì)所屬的材質(zhì)組。所以,在我們劃分選擇組,并為它們設(shè)置投影坐標(biāo)時,這的確是一個非常好的方法。
手工地在整個在平滑的多邊形模型上,建立‘材質(zhì)選擇組’,布置UV坐標(biāo)的操作過程
1 在低精度的多邊形網(wǎng)格上,根據(jù)多邊形面片的法線方向為它們分配不同顏色的材質(zhì)。
2 然后對此模型,添加polySmoothFace節(jié)點,使其細(xì)分級別為2。
3 選擇某一個‘材質(zhì)選擇組’,中的所有面片,并根據(jù)它們的最有利的法線方向,為其分配投影坐標(biāo)。這樣一次一組地為所有的面片分配好UV坐標(biāo)。
4 在模型的polySmoothFace節(jié)點屬性上,把細(xì)分級別設(shè)回到0。
5 在紋理編輯器窗口中,每次選擇一個投影的UV坐標(biāo),依次地把所有的投影的UV坐標(biāo)分布開來。此時,應(yīng)注意讓所有的UV坐標(biāo)殼體既相互分割開來,又盡可能地相互靠近。
6 現(xiàn)在,就可以為整個模型分配一個材質(zhì)。
7 刪除沒用的節(jié)點。
盡管以上的手工方法,對于我們的高精度多邊形角色的布置UV坐標(biāo)的工作是可行的。但是,手工地為每一多邊形面片分配材質(zhì)、著實是一件高強度的,枯燥的體力勞動。同樣,為每一個面片分配材質(zhì)的工作也是一個即慢而又非常重復(fù)性的工作。所以,我們給出以下的Mel腳本來幫助我們完成這個工作。使我們能省出更多的時間來進(jìn)行紋理繪制的工作。這就是我們下面介紹的自動化的工作方法。先介紹我們要使用的Mel腳本。
1 autoColor:
這個腳本會自動創(chuàng)建6個不同顏色的材質(zhì),分別叫作: Xpositive, XNegative, Ypositive, Ynegative, Zpositive, 和 Znegative。同時自動評估多邊形模型上每一個面片的法線方向。根據(jù)評估結(jié)果,自動分配以上6個材質(zhì)中的一個給相應(yīng)的多邊形面片。
autoShellAssign:
這個腳本可以把上一個腳本autoColor所創(chuàng)建的材質(zhì)劃分開,并為每一塊劃分開的殼再自動分配一個材質(zhì)。同時保留相應(yīng)的顏色信息。這些顏色的信息可以用來指導(dǎo)以下的autoProjection腳本創(chuàng)建UV坐標(biāo)投影。
autoProjection:
根據(jù)以上腳本所分配的顏色信息所指示的方向,自動為autoColor腳本所創(chuàng)建的,屬于不同‘材質(zhì)組’的模型面片投影UV坐標(biāo)。例如,屬于Xpositive‘材質(zhì)組’的面片,將會從X軸的正方向上獲得一個UV投影坐標(biāo)。
GraphFaceMaterials:
此腳本將把一個多邊形面片的表面材質(zhì)標(biāo)識出來。因為盡管你只選擇了模型上的以一個面片,但是Maya自帶的標(biāo)識材質(zhì)的功能會把整個模型表面上的所有材質(zhì)標(biāo)繪出來。使用這個腳本,可以使你只標(biāo)識出所選擇的面片上的材質(zhì)。
scrollUp:
在模型的建造歷史中,選擇下一個UV投影節(jié)點。
scrollDown:
在模型的建造歷史中,選擇上一個UV投影節(jié)點。
selectProjection:
此腳本用來選擇某一個面片所屬的UV坐標(biāo)投影,這個UV坐標(biāo)投影是上述的腳本所自動創(chuàng)建的。
在整個在平滑的多邊形模型上,使用自制的Mel腳本自動地建立‘材質(zhì)選擇組’,布置UV坐標(biāo)的操作過程。
1在低精度的多邊形網(wǎng)格上,運行autoColor腳本
這一步的目的是,把事先已經(jīng)分配好顏色的6個材質(zhì)分配給我們的多邊形物體。每一種顏色,代表一個坐標(biāo)投影。而顏色也表示這個坐標(biāo)投影是從哪一個方向上來的。例如,Zpositive材質(zhì)為淺藍(lán)色,通過在現(xiàn)在的模型上進(jìn)行觀察,我們可非常容易地說出,那些具有淺藍(lán)色的模型面片是從
模型的前面獲得坐標(biāo)投影的。
2對上面一步中分配好材質(zhì)的面片進(jìn)行編輯,優(yōu)化
進(jìn)行到這一步,你應(yīng)該停下來,仔細(xì)觀察一下多邊形的面片上的顏色。要保證每一個面片都獲得了來自你所希望的方向上的投影。如果有哪一塊面片,你認(rèn)為用其他方向的投影更合適的話,選擇這個面片,并為它分配相應(yīng)的材質(zhì),在進(jìn)行這一步調(diào)整的時候,應(yīng)該盡量減少材質(zhì)接縫的出現(xiàn)。要知道autoColor腳本只是用來做一個開始的準(zhǔn)備工作,而最終的結(jié)果,需要你自己根據(jù)模型面片的方向來調(diào)整。
3運行autoShellAssign腳本,為上述的每一個分割好的UV坐標(biāo)殼體。再做一次劃分,并分配相應(yīng)的材質(zhì)。
如果你操作完第二步以后,就馬上平滑你的多邊形網(wǎng)格,并使用autoProjection來投影UV坐標(biāo),你會觀察到,此時會創(chuàng)建6個坐標(biāo)投影,盡管你也可以得到精確的UV坐標(biāo),甚至是極小的紋理拉伸,但是,你會觀察到,在模型的某些部分,會出現(xiàn)UV坐標(biāo)的交疊。這將導(dǎo)致你將來的得貼于出現(xiàn)重復(fù)。如果你是有意識地使你的紋理貼圖產(chǎn)生重復(fù),使用這些交疊的Uv坐標(biāo)可以使你重復(fù)利用紋理貼圖的某些區(qū)域。這不是件壞事情。所以到此為止這也不是什么問題。但是,如果你不希望產(chǎn)生這些交疊,你希望能夠在將來移動某些獨立的UV坐標(biāo)殼體,以避免這些交疊,就要進(jìn)行這一步,使用autoShellAssign腳本。
這個腳本是用來為我們已經(jīng)分配了材質(zhì)的6個材質(zhì)組再進(jìn)行一次細(xì)劃分,同時為這些更細(xì)的劃分分配不同的材質(zhì)。因為這次細(xì)劃分所分配的不同材質(zhì),會在將來使用了autoProjection腳本后,也最終變成不同的投影坐標(biāo)。這樣,我們就可以把通過只有6個材質(zhì)的劃分所產(chǎn)生的UV坐標(biāo)殼體,根據(jù)這次的細(xì)劃分的結(jié)果,細(xì)分為更小的UV坐標(biāo)殼體。從而防止UV坐標(biāo)交疊的產(chǎn)生。盡管,這也許還不能防止所有的UV坐標(biāo)交疊的發(fā)生,但是,它已經(jīng)能夠解決絕大部分的UV坐標(biāo)的交疊問題了。
4把所有即能夠使用同一個坐標(biāo)投影,又不至于產(chǎn)生UV坐標(biāo)交疊的殼體的‘材質(zhì)組’結(jié)合起來。使用graphFaceMaterials腳本,可以使我們通過相應(yīng)的材質(zhì)來找到找到單個殼體。
盡管autoShellAssign腳本可以使我們盡可能地防止UV坐標(biāo)交疊的發(fā)生,但是這個腳本所作的工作有些過分的傾向。因為,并不是我們的多邊形物體上的所有UV坐標(biāo)殼都需要有自己的單獨的坐標(biāo)投影,如果是這樣,會使我們的多邊形模型有太多的歷史紀(jì)錄,從而導(dǎo)致我們的工作提前完蛋。所以在這一步中,我們要通過使用這個graphFaceMaterials腳本,來發(fā)現(xiàn)那些材質(zhì)是屬于哪一些殼體的,并且盡可能地合并一些殼體,盡可能地減少所使用的材質(zhì)的數(shù)量。
5為多邊形模型使用polySmoothFace 節(jié)點,即使用平滑多邊形命令,設(shè)置平滑級別為2
在執(zhí)行平滑多變性的命令時,一定要保證使用指數(shù)型平滑算法。因為,在這里介紹的投影坐標(biāo)方法,不能保證使用線性平滑算法而得到的模型,在平滑以后也能夠正確地自動地更新UV坐標(biāo)。另外要注意的是,在執(zhí)行平滑命令時,要考慮到將來你實際需要的最大平滑等級。在投影坐標(biāo)之前,使用這個最大的平滑等級來平滑你的模型。通常,等級2組可滿足需要。
6根據(jù)以上步驟創(chuàng)建出的‘材質(zhì)組’,運行autoProject腳本來投影UV坐標(biāo)
這個腳本在執(zhí)行過程中,將依次選擇屬于不同‘材質(zhì)組’中的多邊形面片,并根據(jù)此‘材質(zhì)組’的名稱,為它們創(chuàng)建一個投影坐標(biāo)。例如,Z negative‘材質(zhì)組’將會從Z軸的負(fù)方向上進(jìn)行投影,要注意的是,因為此腳本是基于‘材質(zhì)組’的名稱進(jìn)行工作的,所以不要修改者個材質(zhì)組的名稱,否責(zé)會導(dǎo)致工作失敗。
7將模型的polySmoothFace節(jié)點的細(xì)分屬性,設(shè)置回0級別
通常,模型在細(xì)分級別為2得情況下,會非常‘重’,在這里把細(xì)分級別設(shè)置回到0,會使今后的工作變得容易得多。
8使用scrollUp,scrollDown和selectProjection腳本,選擇單個的投影坐標(biāo),將他們分割開來,使它們不再有交疊。同時應(yīng)用projection size屬性,調(diào)節(jié)各個UV坐標(biāo)殼體,使他們盡量相互靠近在一起。
依據(jù)你模型的復(fù)雜性的不同,和在上述第4步中,你所做的結(jié)合‘材質(zhì)組’的工作的不同,現(xiàn)在在你的模型的歷史記錄中,會出現(xiàn)相當(dāng)數(shù)量的坐標(biāo)投影節(jié)點。但要注意的是,要保證在歷史記錄中,polySmoothFace節(jié)點在先,其他的投影節(jié)點在后。
如果你現(xiàn)在在UV紋理編輯器中觀察,你可以看到,你的模型上已經(jīng)有了UV坐標(biāo)。但是,因為所有這些坐標(biāo)投影圖形的坐標(biāo)中心的X、Y值都是0.5,所以它們都堆在一起,相互覆蓋。所以需要在這一步的工作中,把這些UV坐標(biāo)的殼體相互分開。另外,觀察每一塊UV坐標(biāo)殼體,你還發(fā)現(xiàn)有的太大,有的太小,所以現(xiàn)在也是一個好的機會,調(diào)整它們的尺寸,使它們能夠均勻分布于整個紋理空間,充分利用紋理空間。
如果你現(xiàn)在選擇你的模型,同時觀察通道欄屬性,你會發(fā)現(xiàn)在通道欄的visibility屬性下面有多加了一個projection size屬性。這個屬性是我們在使用autoProjection腳本是添加的。我們可以調(diào)節(jié)這個屬性,使我們模型的UV坐標(biāo)適合紋理空間。如果你選擇所有的UV坐標(biāo)投影一起調(diào)整,會使它們成比例縮放,這回保證你的紋理貼圖在整個模型表面上保持一致。同時也會有助于你減少紋理接縫。
如果你現(xiàn)在選擇第一個坐標(biāo)投影,同時按下T健,你會看到,在UV紋理編輯器中,會顯示出投影坐標(biāo)的選擇手柄。你可以使用這個選擇手柄把不同的UV坐標(biāo)殼體相互分開,使它們不再交疊。由于這個手柄是作用于整個UV坐標(biāo)殼體的,所以我們移動它后,不會象移動單個UV點那樣,對將來不同的平滑級別的模型的UV坐標(biāo)產(chǎn)生不良影響。所以要注意,不要移動單個的UV坐標(biāo)。
要盡量把UV坐標(biāo)的各個殼體相互靠近,以充分利用整個文理空間,這樣才能保證有足夠的貼圖分辨率。
不要選擇單個的UV坐標(biāo)點,并移動他們。不要縫合邊界。不要使用Layout UVs.命令。否則的話,你在執(zhí)行了多邊形平滑命令以后,UV坐標(biāo)的分布會變得奇形怪狀。
一旦你選擇了某一個坐標(biāo)的投影之后,你可使用scrollUp 和scrollDown腳本,在歷史記錄中快速選擇下一個或者上一個UV坐標(biāo)投影。我個人為這兩個腳本分配了快捷健,這樣我可以通過Alt+1選擇上一個,Alt+2選擇下一個。
你還可以使用selectProjection來弄清楚那些面片是屬于哪一個坐標(biāo)投影的。如果你要移動某一塊UV坐標(biāo)殼體,先選擇它上面的一個面片,然后執(zhí)行selectProjection,這將使你自動地選擇到那個坐標(biāo)投影。然后進(jìn)行調(diào)解。所以,我也為它分配了快捷健Alt+3,,非常方便。
9為整個模型分配一個最終材質(zhì)
到此為止,我們應(yīng)經(jīng)不需要哪些作為’材質(zhì)組’的材質(zhì)節(jié)點了。你最好保存一份那個原始文件的備份,以備將來修改之用。然后,創(chuàng)建一個新的材質(zhì),并把它分配給你的整個模型。在超圖(hypershade)中,應(yīng)用Edit>Delete命令,刪除所有使用autoColor腳本所創(chuàng)建的材質(zhì)。
此外,要知道的是:selectProjection腳本只有在autoColor腳本所創(chuàng)建的材質(zhì)還存在的時候才起作用,所以,如果你已刪除了這些材質(zhì),你只能手工地選擇每一個單獨的坐標(biāo)投影,或者使用scrollUp 和scrollDown腳本進(jìn)行選擇。
10刪除沒用的節(jié)點
下面,我將總結(jié)一下使用autoColor腳本進(jìn)行Uv坐標(biāo)投影的優(yōu)缺點:
優(yōu)點:
1 所創(chuàng)建的UV坐標(biāo)可以隨著你的模型的平滑級別,自動地更新。
2 在觀察坐標(biāo)投影的最后效果時,可以給我們一個具有顏色信息的良好的視覺指示。
3可以在創(chuàng)建UV的工作中,節(jié)省出大量的時間,讓我們可以有充分的會址紋理的時間。
4可以為我們的3維模型創(chuàng)建出一個精確的2維顯示參考。
缺點
1不能選擇或者編輯單個的UV坐標(biāo)點。
2 不能用縫合UV殼體的方法來減少紋理接縫。
3 需要使用3維繪圖軟件來完全解決問題。
V. 把你的模型提交給角色設(shè)置動畫師
產(chǎn)品生產(chǎn)流程,遵循產(chǎn)品生產(chǎn)流程的規(guī)律能夠使你節(jié)省時間,加快生產(chǎn)進(jìn)度以及提高產(chǎn)品質(zhì)量。
上圖是一個通用的產(chǎn)品生產(chǎn)流程圖。其目的在于,盡量使盡可能多的工作者同時在一起協(xié)同工作,盡量減少時間的浪費。
注意上圖中,建模人員、紋理貼圖繪制者和角色裝配動畫師是在同時協(xié)同工作的。甚至在有些時候,還允許角色裝配動畫師同時將裝配好的低精度的多邊形模型也提供給角色動畫師,這樣就使角色動畫師也可以在同時參加進(jìn)來,而角色配置動畫師還可在同時在高精度模型上進(jìn)行他的繪畫權(quán)重等工作。
要記住一定要清理你的場景文件,為所有節(jié)點命名以及把他們分成適當(dāng)?shù)慕M別,使你的場景文件有一個組織良好的結(jié)構(gòu)。刪除一切不需要的層和沒用的節(jié)點。良好的組織結(jié)構(gòu)將使你付出最小的代價。
把UV參考文件合并到你的角色設(shè)置文件中去。
在我們介紹的產(chǎn)品生產(chǎn)流程中,你會發(fā)現(xiàn):建模師、紋理描繪師和角色裝配師會在幾乎同時完成各自的工作。那么接下來的工作就是,要把包含有UV坐標(biāo)信息和紋理貼圖信息的場景文件與包含有角色裝配和蒙皮信息的場景文件合并起來。這個最終的場景文件應(yīng)該是一個清理過的、組織結(jié)構(gòu)良好的文件,以備角色動畫師用來工作。
1 清理你的包含有UV坐標(biāo)參考物體的文件,把所有UV坐標(biāo)參考物體分別命名、成組;刪除沒用的層,和沒有的物體。
2 優(yōu)化場景文件的尺寸。
3把這個UV坐標(biāo)參考文件輸入到角色配置文件中去。
4 把文件中的UV坐標(biāo)參考物體移向一側(cè)。
5 把每一個UV坐標(biāo)參考物體上的UV坐標(biāo)傳遞到相應(yīng)的裝配好的角色上。要知道,一個UV坐標(biāo)參考物體可以傳遞到多個相應(yīng)的目標(biāo)上。例如:右手和左手可以使用同一個UV坐標(biāo)參考物體。保證表面的法線方向正確。
6 把所有多邊形幾何體連接到一個控制對象上,通常使用一個縮放了的立方體,然后把smoothOperator腳本連接到所有多邊形物體上。要使你的工作不出現(xiàn)錯誤,要注意你的UV坐標(biāo)參考物體和它相應(yīng)的角色裝配物體要有一樣的平滑等級。當(dāng)smoothOperator腳本改變你的角色的平滑等級時,UV參考物體的平滑等級將相應(yīng)發(fā)生改變。這就保證了你的角色的平滑等級變化時,所傳遞的UV坐標(biāo)也會正確地發(fā)生更新。
在使用smoothOperator腳本時,要保證你的角色上的所有多邊形幾何體都有olySmoothFace歷史節(jié)點存在。選擇角色上的所有多邊形幾何體、所有的UV參考物體以及所有要進(jìn)行平滑的多邊形物體,我通常使用一個縮放了的立方體作為控制對象。點擊上圖中的link按鈕,通常,你最后選擇的物體就成為平滑整個多邊形角色的控制物體,F(xiàn)在,只選擇你的控制物體,在smoothOperator腳本的窗口中選擇不同的數(shù)字,就可以使你的多邊形角色具有不同程度的平滑等級。
隱藏并鎖定UV坐標(biāo)參考物體
這一點非常重要,盡可能地隱藏并鎖定你的工作成果。如果你不想你的同事不小心刪除了某些對象,或者對一些對象設(shè)置了動畫關(guān)鍵幀,你最好關(guān)掉這些物體的可視性屬性,并且鎖定所有屬性通道欄中的可動畫屬性。把所有的節(jié)點放到一個組織良好的結(jié)構(gòu)中。對于某一個角色,最好將它的所有節(jié)點都放到一組之中,去除多余的層。這樣做的好處是:使你能夠比較容易地在一個具有多個角色的場景中游刃有余。
要知道,如果什么人意外地刪除了你場景中的物體,或者在不應(yīng)有的地方設(shè)置了動畫。你自己也是有一部分責(zé)任的。因為是你的失誤,才使他們能夠訪問到這些物體。
1 關(guān)掉UV坐標(biāo)參考物體及其組的可視性屬性,隱藏它們。
2 鎖定所有的通道欄屬性。
3讓所有的通道欄屬性都不可設(shè)置關(guān)鍵幀(non keyable)。
4 把你的UV坐標(biāo)參考物體組放到一個不可刪除的組中去。
5使用display>show all命令,在一次確認(rèn),所有的物體都不能顯示。