時鐘作為生活中常用的一種計時器,人們通過它來記錄時間,記錄著萬事萬物存在和運動的持續性和順序性,記錄著過去、現在和未來……
蘇聯作家高爾基《時鐘》一文曾這樣描述:
滴答,滴答!
夜闌人靜,獨自一人諦聽著鐘擺在冷漠地、不停地擺動,不禁毛骨聳然:這簡單而精確的聲音總是一成不變地表明一點:生命在不息地運動。
黑夜與睡夢籠罩著大地,萬籟倶寂,只有時鐘在冷冷地、響亮地計量著那逝去的分分秒秒……
鐘擺滴滴答答地響著,每響一聲,生命就縮短一秒,即我們每個人所擁有的時間中的一個微小部分,而逝去的這一秒就不再回到我們手中……
在三維動畫軟體Maya中,可以利用動畫編程製作一個鐘錶動畫效果,致敬永恆的時間!
要想實現一個寫實的鐘表動畫效果,首先要對時間單位和鐘錶的工作原理有一定的了解。因為這方面相關的知識眾多,我們只對Maya平臺下實現寫實鐘錶動畫效果涉及到的知識簡單說明一下。
眾所周知,鐘錶作為計時裝置,經常用到的時間單位就是時、分、秒。這些時間單位之間的換算採用六十進位,即1小時=60分鐘,1分=60秒。
鐘錶一般由錶盤和指針構成。錶盤多為圓形,在圓周上有刻度。一般將圓周均分為12大格,每1大格再均分為5小格。圓周上共60小格。這一大格表示1小時,而一小格表示1分鐘或1秒鐘。
指針多為長條針狀造型,分別是時針、分針和秒針。有的鐘表上,有時針、分針和秒針,而有的鐘表上,只有時針和分針,沒有秒針。當然,這是人所共知的知識,也是日常生活的常識。
我們可以根據以上知識,結合Maya動畫編程來實現一個寫實鐘錶動畫效果。接下來,我們將以視頻教學的形式來講解該案例動畫效果的製作與實現。
首先,在Maya平臺下,製作鐘錶秒針的動畫效果。
其次,在鐘錶秒針動畫效果的基礎上,製作鐘錶分針和時針的動畫效果。
最後,為鐘錶動畫設置初始時刻,將動畫效果做成一般通用性動畫。
至此,我們在Maya平臺下,利用Maya動畫編程實現了一個寫實鐘錶動畫效果,並且將該動畫效果開發成一般通用性動畫,具有普遍適用性,可用於不同動畫場景中。
本教程中涉及的表達式(Maya程序)如下所示。
其中符號「//」為程序注釋符號,用於對程序語句解釋說明。
在運行程序時,符號「//」後的語句不起作用。
在Maya表達式編輯器中編寫程序時,符號「//」及之後的語句可以不用寫入。英文輸入法書寫,不是中文輸入法書寫。輸入法不一樣,標點符號不一樣。
int $h=2,$m=25,$s=40;
//定義三個整數類型的變量,用來設置鐘錶動畫的初始時刻
//用來給定初始時刻的時、分、秒,即初始時刻為2:25:40
int $t=60*(60*$h+$m)+$s;
//定義一個整數類型的變量,用來保存按秒計算的初始時刻
//將初始時刻的時、分、秒都轉換成秒數,並累加成總秒數
a.rotateZ=-6*floor(time+$t);
//控制模型a(秒針)的動畫效果
//函數floor()為向下取整函數,將連續變化轉變成階躍變化
//用來模擬一秒發出一個脈衝信號,秒針一秒向前跳躍一格
b.rotateZ=a.rotateZ/60.0;
//控制模型b(分針)的動畫效果。秒針轉一圈,走60小格,分針前進1小格
//因此分針與秒針的旋轉速率之比為1:60,即1/60
c.rotateZ=b.rotateZ/12.0;
//控制模型c(時針)的動畫效果。分針轉一圈,走60小格,時針前進1大格
//1大格是5小格,因此時針與分針的旋轉速率之比為1:(5/60),即1/12
完美動力教育——中國CG行業的領導品牌!作為培養中國影視動漫遊戲製作人才的「黃埔軍校」,始終專注CG教育領域,名師授課,高薪就業!對CG感興趣或者想要學習的小夥伴,可以給我留言「姓名+聯繫方式」!風裡雨裡,我們在這裡等你!