約束可將某個對象的位置、方向或比例約束到其他對象。另外,利用約束可以在對象上施加特定限制并使動畫過程自動進(jìn)行。
例如,如果要快速設(shè)置一個雪橇從崎嶇小山上滑下的動畫,那么首先可能要使用幾何體約束將雪橇約束到曲面。然后,可使用法線約束將雪橇平置于曲面上。創(chuàng)建這些約束后,在山頂和山腳為雪橇的位置設(shè)置關(guān)鍵幀。然后動畫就完成了。
針對角色設(shè)置和動畫,Maya 包括了以下約束:
- 點(diǎn)約束
- 目標(biāo)約束
- 方向約束
- 縮放約束
- 父約束
- 幾何體約束
- 法線約束
- 切線約束
- 多邊形上的點(diǎn)約束
- 最近點(diǎn)約束
- 極向量約束
受約束對象和目標(biāo)對象
受約束對象是位置、方向等由最近曲面位置、目標(biāo)向量方向或一個或多個目標(biāo)對象位置驅(qū)動的對象。將一個或多個目標(biāo)對象的位置稱為目標(biāo)點(diǎn)。將一個或多個目標(biāo)對象的方向稱為目標(biāo)方向。
目標(biāo)點(diǎn)
目標(biāo)點(diǎn)是目標(biāo)對象旋轉(zhuǎn)樞軸的位置。如果存在多個目標(biāo)對象,那么所有目標(biāo)對象旋轉(zhuǎn)樞軸的平均位置就是目標(biāo)點(diǎn)。如果使用多個目標(biāo)對象,則可以改變每個目標(biāo)對象對目標(biāo)點(diǎn)計(jì)算的影響。目標(biāo)點(diǎn)可以是目標(biāo)對象位置的加權(quán)平均,但某些目標(biāo)對象會對目標(biāo)點(diǎn)產(chǎn)生更大的影響。目標(biāo)對象對加權(quán)平均的影響由目標(biāo)對象的權(quán)重指定。通過移動每個目標(biāo)對象的旋轉(zhuǎn)樞軸,可以更改目標(biāo)點(diǎn)。
目標(biāo)方向
目標(biāo)方向就是目標(biāo)對象的方向(“旋轉(zhuǎn) X”(Rotate X)、“旋轉(zhuǎn) Y”(Rotate Y)和“旋轉(zhuǎn) Z”(Rotate Z)屬性)。如果存在多個目標(biāo)對象,那么所有目標(biāo)對象的平均方向就是目標(biāo)方向。但是,如果使用多個目標(biāo)對象,則可以改變每個目標(biāo)對象對目標(biāo)方向計(jì)算的影響。目標(biāo)方向可以是目標(biāo)對象方向的加權(quán)平均,但某些目標(biāo)對象會對目標(biāo)方向產(chǎn)生更大的影響。目標(biāo)對象對加權(quán)平均的影響由目標(biāo)對象的權(quán)重指定。
目標(biāo)縮放
目標(biāo)縮放就是目標(biāo)對象的縮放(“縮放 X”(Scale X)、“縮放 Y”(Scale Y)和“縮放 Z”(Scale Z)屬性)。如果存在多個目標(biāo)對象,那么所有目標(biāo)對象的平均縮放就是目標(biāo)縮放。但是,如果使用多個目標(biāo)對象,則可以改變每個目標(biāo)對象對目標(biāo)縮放計(jì)算的影響。目標(biāo)縮放可以是目標(biāo)對象縮放的加權(quán)平均,但某些目標(biāo)對象會對目標(biāo)縮放產(chǎn)生更大的影響。目標(biāo)對象對加權(quán)平均的影響由目標(biāo)對象的權(quán)重指定。
目標(biāo)向量
目標(biāo)向量或加權(quán)平均向量表示在受約束對象位置上的法線向量。Maya 會將目標(biāo)向量計(jì)算為曲面或網(wǎng)格上相鄰法線向量的加權(quán)平均。
目標(biāo)對象權(quán)重
可以為每個目標(biāo)對象指定目標(biāo)對象權(quán)重,用于控制對象對目標(biāo)點(diǎn)、目標(biāo)方向、目標(biāo)縮放、目標(biāo)向量等計(jì)算的影響。生成的加權(quán)平均將驅(qū)動受約束對象的位置、方向等。當(dāng)目標(biāo)對象的權(quán)重為 0 時,目標(biāo)不會對受約束對象產(chǎn)生影響。當(dāng)目標(biāo)對象的權(quán)重為 1 時,目標(biāo)會充分發(fā)揮對受約束對象的影響。
注意
- 約束權(quán)重僅適用于存在多個目標(biāo)對象時。
- 如果僅存在一個目標(biāo)對象,那么任何大于 0 的權(quán)重都將解釋為 1。因此,系統(tǒng)將這一單個目標(biāo)解釋為對受約束對象有百分百的影響。
受約束對象的位置
受約束對象的位置由目標(biāo)點(diǎn)驅(qū)動。但是,可以從目標(biāo)點(diǎn)偏移受約束對象的位置。從目標(biāo)點(diǎn)偏移受約束對象的位置適用于不希望受約束對象的局部軸與目標(biāo)點(diǎn)完全重合的情況。例如,如果要將一個球約束到角色手中的關(guān)節(jié),從而讓手拿著球,就需要從關(guān)節(jié)偏移球。通過偏移,可以讓球位于手掌中,而不是在手的內(nèi)部居中。
受約束對象的方向
受約束對象的方向由目標(biāo)方向驅(qū)動。
受約束對象的縮放
受約束對象的縮放由目標(biāo)縮放驅(qū)動。
工作流程摘要
創(chuàng)建約束與選擇要約束對象一樣簡單,只需選擇要約束的對象,然后從“約束”(Constrain)菜單中選擇相應(yīng)的約束。當(dāng)您的要求超出約束默認(rèn)選項(xiàng)時,約束的使用就會變得更加復(fù)雜。
有些約束將鎖定某些受約束對象的通道。例如,目標(biāo)約束將鎖定其受約束對象的方向通道(“旋轉(zhuǎn) X”(Rotate X)、“旋轉(zhuǎn) Y”(Rotate Y)和“旋轉(zhuǎn) Z”(Rotate Z))。哪一個通道處于鎖定狀態(tài)將指示您如何能在對象上使用多個約束。對于給定對象,可以使用目標(biāo)約束、法線約束、切線約束中的任一種,因?yàn)檫@些約束中的每一個約束都將鎖定受約束對象的方向通道。
約束鎖定的屬性也可以阻止這些屬性上表達(dá)式的使用。如果已鎖定屬性位于關(guān)節(jié)上,那么這些已鎖定屬性可以防止骨架返回到其綁定姿勢。