薛山
熟悉動畫制作的朋友們應(yīng)該都知道,高精度模型因?yàn)轫旤c(diǎn)數(shù)量龐大,無論是物理效果模擬還是動畫綁定與制作都需要花費(fèi)大量的時間,所以在很多時候我們都不得不選擇“曲線救國”的道路,利用其他方法來實(shí)現(xiàn)近似的效果。比如制作一個復(fù)雜的管道或鎖鏈模型搖擺效果,如果直接用剛體系統(tǒng)來模擬,不僅需要準(zhǔn)確設(shè)置物體碰撞模式,還要花費(fèi)不少的時間來進(jìn)行調(diào)參,反復(fù)試錯后或許才能達(dá)到滿意的效果,但如果結(jié)合布料系統(tǒng)和正確的修改器,其實(shí)可以很容易地完成這一效果。
既然是模擬金屬鏈條(比如挎包的金屬肩帶)自然垂擺的效果,它的運(yùn)動軌跡其實(shí)完全可以用布料系統(tǒng)來替代,通過模擬線段的布料物理效果,然后把這個效果加載到高精度模型,不就解決問題了?所以咱們首先需要新建一條線段,Blender預(yù)設(shè)網(wǎng)格模型里沒有線段,我們一則可以先新建平面,然后刪掉其中2個頂點(diǎn)的方式來讓它的一條邊成為線段,二則也可以新建一個路徑曲線并轉(zhuǎn)換為網(wǎng)格模型來實(shí)現(xiàn)。無論使用哪種方法,都需要注意讓線段的頂點(diǎn)數(shù)盡量多一點(diǎn),這樣才能讓模擬效果更加真實(shí)。
接下來我們需要在線段的兩端,如圖1所示分別通過“Ctrl+H”來鉤掛一個新的空物體,這個空物體其實(shí)就是咱們控制線段運(yùn)動的控制器,你就把它們想象成是捏著線段兩頭的雙手吧,接下來再把兩端的兩個頂點(diǎn)設(shè)置分配一個單獨(dú)的頂點(diǎn)組,這樣做的目的是為了讓兩端能夠在布料系統(tǒng)中不受重力影響,固定在我們想要的位置并跟隨兩個空物體移動,完成后的修改器界面如圖2。
接下來我們?yōu)榫€段添加布料系統(tǒng),記得在“形狀”里將釘固頂點(diǎn)組選擇為我們剛剛新建的頂點(diǎn)組,這時候播放視頻就能看到線段如我們所想的那樣向下垂擺了,但因?yàn)槲覀兪菫槲矬w碰撞做的效果,所以還需要先利用蒙皮修改器來為線段添加面,這樣才能實(shí)現(xiàn)我們想要的碰撞效果,但注意,蒙皮的厚度也決定了咱們后續(xù)要做的鏈條的直徑,因此在調(diào)整時需要稍微注意一點(diǎn)。
如圖3 所示,結(jié)合碰撞物體并烘焙布料系統(tǒng)數(shù)據(jù)之后,我們就能得到一個比較滿意的效果了,接下來的工作就是用高精度的鏈條模型來進(jìn)行替換。
為了方便演示,我們使用圓環(huán)和“陣列”修改器做了一個鎖鏈鏈條,但記住這個鎖鏈鏈條的長寬高必須限制在咱們線段的蒙皮范圍之內(nèi),超出則無法實(shí)現(xiàn)正確的形變效果,具體可參考圖4。
設(shè)計(jì)完成后應(yīng)用“陣列”修改器,當(dāng)然也可以復(fù)制一個作為備份,方便后續(xù)可能需要的調(diào)整。接下來就是為咱們的鏈條添加“表面形變”修改器,將目標(biāo)設(shè)定為第一步已經(jīng)做好的線段,然后點(diǎn)擊“綁定”,完成后再播放視頻你會發(fā)現(xiàn)它已經(jīng)正確綁定我們想要的效果,鏈條如圖5所示,跟隨“挎包”的邊緣緩慢滑落,結(jié)合運(yùn)動效果則可以更自然地反饋,關(guān)鍵是這種設(shè)計(jì)思路可以大幅節(jié)約計(jì)算資源,省去了做高精度模型物理效果的時間。
也正因這種設(shè)計(jì)思路可以節(jié)約大量時間和資源,所以在游戲和動畫設(shè)計(jì)領(lǐng)域也是非常常用的技巧,比如服裝和頭發(fā)效果,可以先用一個低精度模型來制作物理模擬效果,然后高精度模型再通過“表面形變”或類似的功能來進(jìn)行綁定,比如圖6,就是一個約1000萬個頂點(diǎn)的衣服模型,套用在了一個3000多個頂點(diǎn)的衣服模型布料效果上,大家有機(jī)會可以自己嘗試一下直接烘焙有千萬頂點(diǎn)級別的布料系統(tǒng),看看100幀到底會花多少時間。
對于動畫設(shè)計(jì),尤其是3D電影和游戲角色動畫設(shè)計(jì)來說,“表面形變”修改器幾乎是必備技能,在角色設(shè)計(jì)時有時候也會出現(xiàn)因?yàn)榈途饶P偷膭赢嬓Ч旤c(diǎn)數(shù)量不足,導(dǎo)致高精度模型套用后穿模的情況下,解決方案其實(shí)也很簡單粗暴,直接把被服裝遮蓋的角色人體部分遮罩就完了,這也是為什么很多游戲角色建模只有裸露在外的部分才有皮膚,被衣服遮住的地方就沒有模型的原因,人體的模型只是為了制作碰撞效果而已,得到碰撞數(shù)據(jù)后就反而成了隱患,所以干脆就遮罩掉讓玩家無法看到啦。