包含33節(jié)視頻教程
關(guān)注29.5萬(wàn)次
社區(qū)推出高端女性角色的基礎(chǔ)上,打造具有中國(guó)風(fēng)十足的古式女性盔甲戰(zhàn)士系列教程。主要使用maya建模、ps和mari材質(zhì),vray渲染等,本項(xiàng)目技術(shù)可用在次世代和影視級(jí)角色的制作上,采用4k高解析度。內(nèi)容涵蓋完整的制作流程和豐富的老師經(jīng)驗(yàn)談,創(chuàng)作思路和創(chuàng)作技巧融于其中,其細(xì)致程度和老師的專(zhuān)業(yè)性是不可或缺的。
動(dòng)畫(huà)角色的快速裝配
i、 整體概念
這里介紹的概念是一個(gè)指導(dǎo)你裝配動(dòng)畫(huà)角色的好的規(guī)則。其主要目的是盡可能保持所有東西能夠?yàn)閯?dòng)畫(huà)制作者容易理解。精簡(jiǎn)制作者所需的控制。
動(dòng)畫(huà)制作者能夠也將選擇場(chǎng)景里每一個(gè)能被選擇的東西。你能夠想象能被選擇的東西制作者肯定會(huì)有意無(wú)意的選中它的。最好的避免出現(xiàn)這種情況辦法是把所有控制放在一個(gè)特別的層里。對(duì)你不想碰的東西所在的層都設(shè)置為reference模式。這樣作了以后這個(gè)層里的東西在三維場(chǎng)景里就無(wú)法被選中了。同時(shí)參考層里的物體呈黑色,制作者會(huì)知道這些黑色的控制無(wú)法選擇,然后他們會(huì)去找不是黑色的控制來(lái)操作。
精簡(jiǎn)可以被設(shè)置的關(guān)鍵幀數(shù)目,另外一個(gè)重要的的是精簡(jiǎn)可以被設(shè)置為關(guān)鍵幀的屬性,計(jì)算機(jī)對(duì)每一個(gè)動(dòng)畫(huà)曲線及其代表的屬性在每一幀進(jìn)行計(jì)算,如果一個(gè)關(guān)節(jié)只在 x軸旋轉(zhuǎn)那就沒(méi)必要去給移動(dòng),縮放屬性等設(shè)置關(guān)鍵幀。
使每個(gè)控制能夠容易被確定是干什么的,動(dòng)畫(huà)制作者應(yīng)該能夠很容易認(rèn)出每個(gè)控制的用途。通過(guò)使用nurbs curves 來(lái)制作不同形狀的控制,能使我們輕易的認(rèn)出每個(gè)控制是用來(lái)控制什么的,這可以節(jié)省很多時(shí)間,see file: 2. variousanimationctrls.ma。
使用適當(dāng)?shù)膔otation order。沒(méi)有什么能比當(dāng)一個(gè)動(dòng)畫(huà)制作者準(zhǔn)備旋轉(zhuǎn)什么東西的時(shí)候,卻發(fā)現(xiàn)他沒(méi)辦法按設(shè)計(jì)的方向來(lái)旋轉(zhuǎn)物體更糟糕的了,這幾乎常常是由于rotation order沒(méi)有被正確設(shè)置而導(dǎo)致 ( gimbal lock).。幾乎沒(méi)辦法消除 gimbal lock,但可以在設(shè)置正確的rotation order來(lái)避免。
另一個(gè)讓人沮喪的事情,是打開(kāi)場(chǎng)景后,無(wú)法確定哪個(gè)物體是干什么的,joint1, joint2,和 joint3 對(duì)制作者來(lái)說(shuō)是什么?你能看出來(lái)joint1, joint2, and joint3是上臂,胳膊和手腕關(guān)節(jié)么?當(dāng)然不能,正確的命名對(duì)下一個(gè)工序的制作者和你自己來(lái)說(shuō)都是避免頭痛的一個(gè)好辦法。
保持場(chǎng)景整齊。你應(yīng)該把每樣?xùn)|西打成組,為每一類(lèi)組件分類(lèi),不要把控制器和模型放在一起比較好,當(dāng)作單一角色動(dòng)畫(huà)還可以,但當(dāng)幾個(gè)或者二十幾個(gè)角色在場(chǎng)景里時(shí),試者移動(dòng)一個(gè)東西,你將不得不在outliner 或者h(yuǎn)ypergraph中幾百個(gè)結(jié)點(diǎn)中找你要的東西, 把所有東西歸進(jìn)不同的組,去除對(duì)角色控制結(jié)構(gòu)沒(méi)用的形狀,可見(jiàn),設(shè)置等等一切東西。
ii. 腿部控制
我們先來(lái)看看腳部控制,腳部控制基于通過(guò)把控制集中在一個(gè)地方來(lái)保持控制的簡(jiǎn)單性。我們用ikhandles來(lái)代替關(guān)節(jié)來(lái)進(jìn)行控制。
1.創(chuàng)建 ikhandles。首先建立ik,從臀部到腳踝,然后腳踝到腳掌,最后腳掌到腳尖。load the file 3. legcontrol.ma.
從臀部到腳踝為ikrpsolver.skeleton > ik handle tool > option box,設(shè)置current solver 為 ikrpsolver,點(diǎn) up_leg 到 foot to create the ikhandle.改ikhandle名字為 footikhanlde。
操作如圖。
操作如圖。
選擇 skeleton > ik handle tool,腳踝到腳掌ikhandle,改名字為 ballikhandle。skeleton > ik handle tool,腳掌到腳尖 ikhandle改名字為 toeikhandle。
2. 創(chuàng)建腿部控制。為了控制腿部,我們要建立兩個(gè)控制,一個(gè)控制腿,一個(gè)控制膝蓋。最好的辦法是使用nurbs curves
?import 3a. footxform.ma,import 3b. kneexform.ma,移動(dòng) footctrl 和kneectrl到如下圖的位置。
進(jìn)入attribute editor 改變footctr 的rotation order 為zxy (如果它的默認(rèn)參數(shù)不是這個(gè)的話)。
3. 建立腿部層級(jí)。下面我們將所有的ikhandles 成組到不同的層級(jí)。因?yàn)橥炔啃枰_跟和腳掌支撐腿部本身的能力(在腳掌處控制重心平衡),我們需要建立三個(gè)運(yùn)動(dòng)來(lái)進(jìn)行控制。兩個(gè)在腳掌一個(gè)在腳尖。最簡(jiǎn)單的辦法就是復(fù)制 footctrl 然后刪除這個(gè)結(jié)點(diǎn)下的shape。這樣可以保留主控制的方向。注:通過(guò)使用這個(gè)mel ( jscopycontrol.), 可以迅速完成這一操作。選擇 footctrl 并復(fù)制,按向下鍵來(lái)選擇footctrlshape。刪除 footctrlshape。改名字為 balllift。復(fù)制 balllift 改名字toelift。
操作如圖。
操作如圖。
操作如圖。
操作如圖。
操作如圖。
操作如圖。
現(xiàn)在把這些結(jié)點(diǎn)放到正確的位置,我們需要把他們放進(jìn)一個(gè)正確的層級(jí)。由于balllift 和toewiggle控制將同時(shí)被toelift影響(如果用腳尖走路,腳掌…),它們同時(shí)成為toelift結(jié)點(diǎn)的子物體。
footctrl is是腳部動(dòng)作的主控制,所以toelift是它的子結(jié)點(diǎn),設(shè)toelift 為footctrl的子物體。
4. parent ikhandles,F(xiàn)在的層級(jí)結(jié)構(gòu)比較合理,我們需要把ik handles 放在正確的結(jié)點(diǎn)下面。balllift 需要把腳踝從地面上提起,所以把footikhandle和ballikhandle設(shè)為balllift 的子結(jié)點(diǎn)。
5. 連接腳部層級(jí)到主控制。雖然你可以控制目前的這些接點(diǎn)來(lái)做腳部動(dòng)作,但一個(gè)一個(gè)選擇并操作會(huì)很累,最好的辦法是給foot結(jié)點(diǎn)自己建立一系列屬性,并連接到下面層級(jí)中不同的旋轉(zhuǎn)控制上,選擇footctrl 并給其添加控制屬性,modify > add attributes。
增加5個(gè)屬性(balllift, toewiggle, toelift, toetwist, footlean).
設(shè)置make attribute keyable 為 on
設(shè)置 data type 為 float
設(shè)置 attribute name 為 balllift
點(diǎn)擊 add
設(shè)置 attribute name 為 toewiggle
點(diǎn)擊add
設(shè)置 attribute name 為 toelift
點(diǎn)擊 add
設(shè)置 attribute name 為 toetwist
點(diǎn)擊 add
設(shè)置 attribute name 為 footlean
點(diǎn)擊 add
屬性增加好了以后,我們用connection editor來(lái)連接它們。window > general editors > connection editor,選擇 footctrl,然后點(diǎn)擊reload left,選擇 balllift然后點(diǎn)擊 reload right,連接 footctrl.balllift 到 balllift.rotatex,選擇 toelift 然后點(diǎn)擊 reload right,連接 footctrl.toelift 到 toelift.rotatex,連接 footctrl.toetwist 到 toelift.rotatey,選擇 toewiggle然后點(diǎn)擊 reload right。連接 footctrl.toewiggle 到 toewiggle.rotatex,連接 footctrl.footlean 到balllift.rotatez。
6. 增加膝蓋控制,F(xiàn)在我們使用極約束( polevectorconstraint)來(lái)建立膝蓋控制。這可以讓我們將腿部ik對(duì)準(zhǔn) kneectrl 結(jié)點(diǎn)。它將控制膝蓋一直對(duì)準(zhǔn) kneectrl,使得做動(dòng)畫(huà)我們能有更好的控制。選擇 kneectrl and footikhandle,constrain > pole vector constraint。
另外一個(gè)選擇, 限制膝蓋只繼承translation和rotate y,當(dāng)設(shè)置膝蓋為腳部控制的子結(jié)點(diǎn)時(shí)有很大的彈性, 當(dāng)腳部沿z 或 x 軸旋轉(zhuǎn)時(shí)膝蓋控制經(jīng)常會(huì)動(dòng)。當(dāng)把膝蓋的動(dòng)作限制到只有腳部移動(dòng)和旋轉(zhuǎn),起影響作用的時(shí)候會(huì)更穩(wěn)定,解除 kneectrl 和 footctrl的父子關(guān)系。復(fù)制 footctrl 然后刪除所有子結(jié)點(diǎn),改名字為 kneegrp。
point constrain(建立點(diǎn)約束) kneegrp 到 footctrl,選擇 footctrl 和 kneegrp,選擇 constrain > point,設(shè) kneectrl 為 kneegrp子物體。
設(shè)置如圖。
設(shè)置如圖。
現(xiàn)在我們旋轉(zhuǎn)腳部,可以看到膝蓋不亂動(dòng)了。
7. 刪除多余的屬性并清理。設(shè)置foot control 的最后一步是刪除多余的屬性并隱藏ikhandles。打開(kāi)channel control, 設(shè)置footctrl 的scale and visibility屬性為unkeyable and locked。隱藏toelift并鎖定visibility,translation,和scale。
設(shè)置完畢的foot control,一個(gè)很干凈的場(chǎng)景易于使用這些控制。
腿的這部分結(jié)束了,后面是上半身的控制,應(yīng)用到了約束。
iii. 獨(dú)立的動(dòng)作
獨(dú)立動(dòng)作的概念是指在每個(gè)控制除了彼此必然影響的地方,其他運(yùn)動(dòng)屬性保持獨(dú)立。一個(gè)很好的例子就是角色的眼球,我們都知道眼球是頭部的子物體,并且無(wú)論頭怎么運(yùn)動(dòng)都會(huì)跟隨著,當(dāng)你把頭轉(zhuǎn)向一邊,你的眼也會(huì)跟隨到那一邊。可是,我們也可以將眼睛鎖定到一個(gè)特殊的目標(biāo)。而且他們會(huì)有獨(dú)立于頭部的動(dòng)作。(當(dāng)然眼球仍然隨頭部移動(dòng),但它們的旋轉(zhuǎn)卻是單獨(dú)的)如果我們裝配模型不考慮到這些功能 (移動(dòng)頭部但眼睛卻盯著一個(gè)地方),那么每次我們做一個(gè)頭部轉(zhuǎn)動(dòng)的動(dòng)畫(huà)時(shí)將不得不為眼球再設(shè)置一次動(dòng)畫(huà),轉(zhuǎn)一下頭,轉(zhuǎn)一下眼睛,再轉(zhuǎn)一下頭,再轉(zhuǎn)一下眼睛…增加無(wú)數(shù)的工作量,直到讓人瘋掉為止。因此獨(dú)立動(dòng)作對(duì)身體上有很多部分是很有用的, 例如:眼睛、頭部、向前動(dòng)力學(xué)控制的胳膊。在maya中有不同的技術(shù)可以在裝配骨骼時(shí)實(shí)現(xiàn)獨(dú)立動(dòng)作。
頭部的獨(dú)立動(dòng)作。如果我們將狒狒的頭部運(yùn)動(dòng)獨(dú)立于軀干那么頭部的做動(dòng)畫(huà)時(shí)會(huì)更容易。
1. 頭部和脖子的控制準(zhǔn)備。打開(kāi)場(chǎng)景.solateheadmotion.ma。
把頭部和脖子控制放置在容易選取的位置,有個(gè)容易的方法,將neck control設(shè)定為neck joint的子物體,然后將移動(dòng)和旋轉(zhuǎn)屬性歸0,解除父子關(guān)系。
2. 建立脖子的約束。復(fù)制 neckjoint 然后刪除下面的子物體。改名字為 neckconst。選擇 necktconst 和 neck并且建立一個(gè) orientconstraint。最后neckconst 設(shè)為 neck_ctrl 子物體然后隱藏。注意:圖中復(fù)制后的 neck joint,子物體全部刪除掉了。
改名字為 neckconst。
方向約束,如圖。
neckconst設(shè)為neckctrl的子物體并隱藏。
3.成將neck_ctrl自成一組。
選擇 neck_ctrl,捕捉到 neck joint。
將組改名為neckcontrolgrp,設(shè) neckcontrolgrp 為 torsoctr子物體。
4.為頭部建立constraints。重復(fù)脖子的那一套操作,復(fù)制 headjoint 刪除下面的子物體,改名字為 headjointconst,
?選擇headjointconst 和 headjoint 創(chuàng)建orientconstraint,設(shè)head_const 為 head_ctrl 子物體并隱藏。
5. 將headcontrol 成組。選擇 head_ctrl,ctrl-g 為自己成一個(gè)組。捕捉到headjoint,改名為 headcontrolgrp。
注意:這里我們沒(méi)有設(shè) headcontrolgrp為 neck的子物體,我們將建立另外一個(gè)結(jié)點(diǎn),并且pointconstrain headcontrolgrp 到新建的結(jié)點(diǎn)上,然后在設(shè)為neck的子物體,這樣headcontrol 將隨脖子移動(dòng)但有自己獨(dú)立旋轉(zhuǎn)。
6. constrain headcontrolgrp (約束頭部控制組)。選擇headcontrolgrp,復(fù)制 headcontrolgrp,并且刪除所有子物體。
將復(fù)制出來(lái)的 headcontrolgrp1 改名字為headcontrolgrpconst,選擇 headcontrolgrpconst 和 headcontrolgrp 建立一個(gè)pointconstraint,constraints > point。
設(shè)headcontrolgrpconst 為neck子物體。
現(xiàn)在當(dāng)你旋轉(zhuǎn)身體,你會(huì)注意到脖子隨著旋轉(zhuǎn)但頭沒(méi)有。非常重要的一點(diǎn)rotation order是正確的,另外gimbal lock的情況不會(huì)出現(xiàn)。(注意下圖:猴子身體旋轉(zhuǎn)了,但頭部朝向不變。)
朱峰社區(qū)網(wǎng)頁(yè)版(手機(jī)掃描-分享-添加到屏幕)
朱峰社區(qū)微信公眾號(hào)(微信掃一掃-關(guān)注)
未知用戶
2005-2025 朱峰社區(qū) 版權(quán)所有 遼ICP備2021001865號(hào)-1
2005-2025 ZhuFeng Community All Rights Reserved
VIP