欧美中文字幕在线播放_人妻无码免费的_中文日韩欧美州_无码av中文系列久久免费

當前位置: 首頁 > 設計資訊 > 設計教程 > 正文

用MAYA表達式制作鐘表的動畫

2006-07-20 19108 0

用MAYA表達式制作鐘表的動畫
   這個教程內(nèi)容是使用 MAYA 的表達式制作一個時鐘的動畫,動畫的內(nèi)容包括:
1 秒針,分針,時針的運動。
2 用發(fā)條控制秒針,分針,時針的運動,以改變當前時間。
3 動畫一個時碼

1 制作前先分析場景中需要的模型,分別是,秒針,分針,時針,表盤,時間刻度,發(fā)條和用來顯示時碼的數(shù)字,根據(jù)個人喜好開始建模,比我這個模型好點就行。
2 模型做好,將秒針,分針,時針,表盤的變換中心統(tǒng)一。時碼數(shù)字包括個位和十位,個位是 0-9 ,十位是 0-6 ,放到合適的地方。然后命名,由于 MAYA 不支持中文名,所以我用漢語拼音代替。


(圖片較大 請放大查看)

3 開始動畫秒針,分析秒針轉一周用的時間是 60 秒,那么 1 秒時間,秒針將轉 6 度(角度), 2 秒轉 12 度, 3 秒 ----- ,由此可見
秒針轉過角度數(shù)(單位:角度) = 時間(單位:秒) *6 (單位:角度 / 秒)
打開表達式編輯器方法(以后不再重復)之一是在通道框找到 miaozhen.rotateY 這個屬性,右鍵選擇 Expressions ,輸入 miaozhen.rotateY=time*6, 播放一下動畫,發(fā)現(xiàn)有錯誤,秒針方向走反了,應該是順時針方向才對,該成 miaozhen.rotateY=trunc(time)*(-6) ,盡管寫成
miaozhen.rotateY=trunc(time)*-6 或 miaozhen.rotateY=-time*6 的結果也正確,但還是符合自己的邏輯為好。播放一下動畫正確,但還不夠理想,一般鐘表的秒針很少是勻速旋轉的,都是 6 度一跳,該成 miaozhen.rotateY=floor(time)*(-6), floor 中文是地板的意思,可以聯(lián)想一幢樓,每層是 1 米高,每層地板的高度就是 0 米, 1 米, 2 米 ---- , floor 函數(shù)就是將每層高度統(tǒng)一變成地板的高度,除去了小數(shù),只有整數(shù)。 這樣執(zhí)行 floor ( time ), 0<time<1 時, floor ( time ) =0 , 1<time<2 時, floor ( time ) =1 , 最后的表達式是 miaozhen.rotateY=floor(time)*(-6) , 或者執(zhí)行 miaozhen.rotateY=trunc(time)*(-6) 。 trunc 就是取一個數(shù)的整數(shù)部分,含義不同但好象執(zhí)行的結果完全相同,但自變量小于 0 的時候 floor 和 trunc 就不同了,這時候 trunt 和 ceil 執(zhí)行的結果就相同了, ceil 是天花板的意思,與 floor 是一對。 總結這一步驟, 1 最后表達式為 miaozhen.rotateY=floor(time)*(-6) 或 miaozhen.rotateY=trunc(time)*(-6)
2 記住 3 個函數(shù): floor , ceil , trunc


 

4 制作分針動畫,有了秒針的經(jīng)驗,分針就容易了,表達式為 fenzhen.rotateY=(time*(-6))/60 ,手表的發(fā)條是用來對時間的,它控制著分針,加入發(fā)條的控制分針的動畫 fenzhen.rotateY=(time*(-6))/60+fatiao.rotateX ,現(xiàn)在轉動發(fā)條,觀察時針的變化。

5 制作時針動畫,同理 shizhen.rotateY=fenzhen.rotateY/60

6 制作時碼的動畫,時碼個位是 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 十位是 0 , 1 , 2 , 3 , 4 , 5 // 先分析個位上的 0 ,控制它顯示的是 visibility 屬性,在 0 秒, 10 秒, 20 秒, 30 秒, 40 秒, 50 秒 ---- ,這些時間里 0 是可視的,它們有個共同規(guī)律就是頭能被 10 整除,其它時間里 0 是不可視的,在 visibility 屬性里輸入表達式: if (trunc(time)%10==0) gewei|Trim_Char_0_1_1.visibility=1; else gewei|Trim_Char_0_1_1.visibility=0 ; 意思就是 如果 時間取整數(shù)除以 10 的余數(shù)為 0 個位數(shù)字 0 的可視性就等于 1 否則 個位數(shù)字 0 的可視性就等于 0////% 是除法取余數(shù) .// // 然后個位上的 1 ,與個位上的 0 不同的是余數(shù)為 1 ,輸入 if (trunc(time)%10==1) gewei|Trim_Char_1_1_1.visibility=1; else gewei|Trim_Char_1_1_1.visibility=0; 依此類推,最后 if (trunc(time)%10==9)
Trim_Char_9_1_1.visibility=1; else Trim_Char_9_1_1.visibility=0 十位與個位同理,只不過加了一個范圍,十位上的 0 表達式為: if (time%60>=0 && time%60<10) shiwei|Trim_Char_0_1_1.visibility=1; else shiwei|Trim_Char_0_1_1.visibility=0 例如十位上的 0 ,在余數(shù)大于等于 0 并且小于 10 的時候可視,否則不可視。 依次類推最后一個是 if (time%60>=50 && time%60<60) shiwei|Trim_Char_5_1_1.visibility=1; else shiwei|Trim_Char_5_1_1.visibility=0 還可以再加幾位數(shù)字,制作一個標準的 時:分:秒: frame 時碼,這就和 after effect 濾鏡的效果一樣,最后把時間線拉的長一些,把時間放到任意時刻播放動畫, 或是再轉轉發(fā)條,感覺一下,完。


 


213
評論區(qū)(0)
正在加載評論...
相關推薦