想起小時候的玩具,一把手槍,扣扳機的時候,槍口的小拳頭就會隨著伸縮器的伸展打出去,挺有趣的。現在用MAYA在做一個,原本想用驅動關鍵偵的,後來想想,用表達式應該會簡單一些。閒話少說,開始吧!1.首先創建一個多邊形立方體,取名B1,區分大小寫(取名很重要,之後的表達式是否容易看清就看名字了),作為第一條桿,長、寬、高分別為0.4、 10.1、0.2。把它從Z軸旋轉一點角度。
2.再建一多邊形圓柱體取名pin,區分大小寫,就放在原點,並旋轉、縮放調整成如圖:
3.然後復制B1立方體,取名B2。現在開始表達式了,選擇B2,打開 window->AnimationEditors->ExpressionEditor表達式編輯器,在表達式區鍵入 B2.rotateZ=B1.rotateZ*-1點擊Create按鈕。這條語句表示B2的Z軸角度是B1的角度乘以負1,兩個立方體成為一個剪刀的原理。現在試試沿B1的Z軸旋轉,會發現B2也會向著B1的相反方向旋轉。
4.選擇B1、B2和pin,按CTRL+D一起復制這三個物體,並向右移動一些距離。多與少不要緊,等會輸入的表達式會幫助修正的。MAYA會自動取名的,如不對請改為如圖所示,否則會與下面的表達式不符。
5.選擇pin1,在表達式編輯器中鍵入pin1.translateX=cosd(90-B1.rotateZ)*52-0.2這條語句用來控制 pin1隨著B1的Z軸旋轉而沿著X軸平移。具體我也不知道怎麼說,看圖應該會明白吧!“*5”是立方體高度的一半,最後的“-0.2”是因為cosd函數是按立方體的頂點來算的,如不減0.2,在運動時兩條桿的末尾會因分開距離太大而不接觸,這是不真實的,所以要-0.2使距離小一些。
5-2
5-3
6.接下來控制B3、B4的移動,選擇B3,在表達式編輯器中鍵入B3.translateX=pin1.translateX此句將B3的X軸位置設為pin1的X軸位置。B4同樣:B4.translateX=pin1.translateX。控制旋轉:B3立方體:B3.rotateZ=B1.rotateZB4立方體:B4.rotateZ=B1.rotateZ*-1如果同一個物體的表達式要連續輸入兩條以上,要在兩條之間加分號“;”如:B3.translateX=pin1.translateX;B3.rotateZ=B1.rotateZ現在可以旋轉B1的Z軸來看一看效果了。
7.再來復制多一組,分別取名B5、B6、pin2。選擇pin2,在表達式編輯器中鍵入pin2.translateX=cosd(90- B1.rotateZ)*54-0.2這條語句用來控制pin2隨著B1的Z軸旋轉而沿著X軸平移。這次是乘以4,每復制多一組,就要在前一組數值的基礎上加“2”,在第三組時就是“6”。道理不用說了吧。控制B5的移動和旋轉:B5.translateX=pin2.translateX; B5.rotateZ=B1.rotateZB6的移動和旋轉:B6.translateX=pin2.translateX; B6.rotateZ=B1.rotateZ*-1如此類推。