李 瑩,王 哲
(1.陜西工業(yè)職業(yè)技術(shù)學(xué)院信息工程學(xué)院,陜西 咸陽,712000;2.陜西工業(yè)職業(yè)技術(shù)學(xué)院,陜西 咸陽,712000)
三維動(dòng)畫是當(dāng)前動(dòng)畫藝術(shù)領(lǐng)域中的熱點(diǎn),3DS Max 軟件的開發(fā)降低了CG 制作的門檻,為三維動(dòng)畫的制作提供了便捷的實(shí)現(xiàn)途徑。建筑動(dòng)畫制作是三維動(dòng)畫制作中一個(gè)重要的組成部分。但是由于建筑動(dòng)畫場景制作十分復(fù)雜,3DS Max 中一些關(guān)鍵的技術(shù)較難掌握,同時(shí)這一軟件在場景漫游實(shí)現(xiàn)、繪制速度等方面也存在著一些的不足之處,因此,分析基于3DS Max的建筑動(dòng)畫制作的關(guān)鍵技術(shù),提高建筑動(dòng)畫制作的效率十分必要。
MAXScript 是3DS Max 內(nèi)置的腳本語言,在3DS Max2.0版本及以后版本中均有此項(xiàng)功能,它是專門為3DS Max 而設(shè)計(jì)的,主要是提供3DS Max 的大多數(shù)功能的調(diào)用及功能重寫,采用的是開放式的界面來自定義和編寫3DS Max 腳本,用戶利用其可以輕松地?cái)U(kuò)展用戶界面,通過自動(dòng)化操作實(shí)現(xiàn)批處理,是編程語言中較自由的一種腳本開發(fā)操作環(huán)境,功能十分強(qiáng)大。同時(shí)它還為用戶提供建模、材質(zhì)、燈光、渲染、動(dòng)畫等一些常用功能,在建筑動(dòng)畫場景設(shè)計(jì)制作中,這一功能有著顯著的現(xiàn)實(shí)意義。
在利用3DS Max 進(jìn)行建筑動(dòng)畫設(shè)計(jì)制作時(shí)多數(shù)用戶采用的是軟件的人工交互操作技術(shù),目前該軟件的這一功能已十分強(qiáng)大,但由于其腳本程序語言設(shè)計(jì)層次較深,技術(shù)難以掌握,加之建筑動(dòng)畫場景設(shè)計(jì)制作復(fù)雜,一個(gè)場景中可能有上百棟的建筑和大量的樹木等其他周邊物體,這時(shí)手工交互操作就出現(xiàn)了工具功能不夠的問題,如果仍采用手工方式,建造好后一樣擺放數(shù)量眾多的建筑物、周邊物體等就需要花費(fèi)大量的時(shí)間,影響動(dòng)畫制作的效率。MAXScript 可執(zhí)行的批處理能很好地解決這一問題,而同時(shí)MAXScript 還可以用于Autodesk VIZ、Plasma 等其他與3DS Max 相關(guān)的建模、動(dòng)畫、渲染等軟件編寫中,利用其進(jìn)行二次開發(fā),將其他的相關(guān)軟件的優(yōu)秀功能集成于3DS Max 中,提高建筑動(dòng)畫場景設(shè)計(jì)制作的速度和效率。
在建筑動(dòng)畫的設(shè)計(jì)和制作中,最基礎(chǔ)的部分為三維模型的制作,三維建模中存在著類型一致的對(duì)象,即是同類對(duì)象,利用3DS Max 創(chuàng)建同類對(duì)象有利用創(chuàng)建工具創(chuàng)建一個(gè)對(duì)象,對(duì)對(duì)象進(jìn)行復(fù)制、變形復(fù)制,利用間隔復(fù)制工具、粒子發(fā)射器等多種方法,這些方法均可實(shí)現(xiàn)同類對(duì)象的創(chuàng)建,但存在著一定的不足,而利用MAXScript 腳本語言的程序設(shè)計(jì)能對(duì)其功能進(jìn)行延伸和擴(kuò)展,如在“建筑房屋生成器中”可以將當(dāng)前所選物體定為中心,通過編寫程序定義樓的高度、中心與原來的正負(fù)位置疊加、定義樓體高度和屋檐高度,然后在程序中定義For i=1 to 20 do,來實(shí)現(xiàn)多個(gè)同類對(duì)象的生成,執(zhí)行操作后,在創(chuàng)建的一個(gè)Dummy 物體周圍就會(huì)生成20個(gè)形狀、高度不同的小房子。
建筑動(dòng)畫場景制作中為了增強(qiáng)動(dòng)畫逼真效果,增強(qiáng)動(dòng)畫的表現(xiàn)力還須對(duì)燈光、材質(zhì)貼圖等進(jìn)行調(diào)整,通過不斷地渲染查看效果,不斷地調(diào)整燈光、材質(zhì)貼圖等,如當(dāng)前場景的燈光較暗,就對(duì)其進(jìn)行整體加亮,改變燈光的顏色、角度等來使建筑動(dòng)畫更貼近實(shí)際場景,從而使動(dòng)畫更為逼真。
在對(duì)對(duì)象屬性進(jìn)行修改時(shí),一般是在Exclude 或Include中對(duì)需要修改的物體進(jìn)行選擇,此種方法不僅速度較慢,還需要記住每個(gè)物體的名字,十分麻煩,而利用MAXScript 則可以方便地進(jìn)行批處理,如需要對(duì)燈光調(diào)亮?xí)r,可以在場景中選擇幾個(gè)燈光,運(yùn)行相應(yīng)的script 即可完成,例如需將場景中原本的燈光調(diào)亮3 倍,則可以運(yùn)行以下的script:
在動(dòng)畫設(shè)計(jì)中,對(duì)象位置、大小、顏色等的變化是通過軟件中關(guān)鍵幀的形式來記錄和實(shí)現(xiàn)的,應(yīng)用MAXScript 也可以設(shè)置動(dòng)畫效果,如通過運(yùn)行:
For i $sphere* do
--選擇場景中名稱以sphere 開頭的所有物體
(For j in 1 to 3 do
--為所有名稱以sphere 開頭的物體設(shè)置3個(gè)關(guān)鍵幀
(at time ((j 20)+random -10 10) i.position=(random 7 50)
--在第20、40、60 幀設(shè)置關(guān)鍵幀,并且在關(guān)鍵幀時(shí)在Z 軸上移動(dòng)7-50 之間的隨機(jī)值
at time ((j* 20)+random -10 10)rotate I(eulerangles (random -3 3) (random -3 3) (random-20 20)
--在第20、40、60 幀設(shè)置關(guān)鍵幀,并在關(guān)鍵幀時(shí)以X軸為軸心旋轉(zhuǎn)最多3 度,以Y 軸為軸心旋轉(zhuǎn)最多3 度,以Z 軸為軸心旋轉(zhuǎn)最多20 度)
即可實(shí)現(xiàn)場景中所有名稱以sphere 開頭的對(duì)象的動(dòng)畫效果。
MAXScript 的菜單的Macro Recorder 能夠在繪制圖形時(shí),將每一步操作自動(dòng)轉(zhuǎn)化為腳本語言,打開統(tǒng)一菜單下的MAXScript Listener 即可對(duì)每一步的命令形式進(jìn)行查看,利用其能夠簡化編程步驟,從而更好地提高建筑動(dòng)畫制作效率。以一個(gè)球體的運(yùn)行為例,通過調(diào)用簡單動(dòng)作的腳本命令,即可實(shí)現(xiàn)復(fù)雜動(dòng)畫的編寫,其部分的腳本語言如下:
1.line transform:(matrix3[1,0,0][0,0,1][0,-1,0][442850,-1.45167e-007,3.32103])isSelected:on Sphere radius:13.0567 smooth:on segs:32 chop:0 slice:off sliceFrom:0 slice To:0 transform:(matrix3[1,0,0][0,0,1][0,-1,0][86.7159,-3.25819e-006,74.5387]) isSelected:on--在任意窗口劃一直線和一個(gè)球體。
2.select $ Sphere01
$.pos.controller=path ()
$.pos.controller.path=$ Line01
--為球體制定位置控制器為路徑,選擇直線作為運(yùn)動(dòng)路徑。
3.max tool animmode
set animate on
sliderTime=150f
select $Sphere01
--打開動(dòng)畫記錄按鈕,將時(shí)間調(diào)到150 幀。
4.$.pos.controller.percent=80
max tool animmode
set animate off
--將球體在路徑中位置調(diào)到80(%Along Path),關(guān)閉動(dòng)畫記錄按鈕。
3DS Max 等軟件的開發(fā)為三維動(dòng)畫的制作提供了十分便捷的途徑,極大地推動(dòng)了動(dòng)畫的發(fā)展,運(yùn)用MAXScript 進(jìn)行三維動(dòng)畫中建筑動(dòng)畫場景的設(shè)計(jì)能夠方便地實(shí)現(xiàn)建筑動(dòng)畫制作中多個(gè)同類對(duì)象的模型創(chuàng)建、多對(duì)象屬性的修改及場景動(dòng)畫效果的設(shè)置等,改變了傳統(tǒng)動(dòng)畫創(chuàng)作手工制作的方式,極大地提高了動(dòng)畫的質(zhì)量和制作效率。
[1]陸麗芳.基于3DS Max 的小區(qū)模型制作方法[J].計(jì)算機(jī)時(shí)代,2007,(11).
[2]杜潔,張磊.基于3DS Max 的節(jié)能建筑動(dòng)畫研究[J].建筑節(jié)能,2012,(12).
[3]陜晉軍.MAXScript 在建筑虛擬場景設(shè)計(jì)中的應(yīng)用[J].電腦編程技巧與維護(hù),2010,(22).