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