999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于3ds max的腳本語言對多個同類對象進行動畫設計

2009-04-29 00:00:00閆亞軍
電腦知識與技術 2009年27期

摘要:3ds max是最流行、應用最廣泛的三維動畫設計軟件,然而全面掌握該軟件交互操作技術的人很少,更是少有人涉足其深層次的腳本語言。雖然手工交互操作技術功能很強大,但實際應用時,時常出現用于手工交互操作的工具功能不夠的問題,從而造成用戶無從下手、難以制作。使用腳本語言的程序設計方法能進行復雜的圖形圖像處理,能延伸與擴展手工交互操作工具的功能。通過“眾志成城”與“動態奧運五環”這兩個案例,并用3ds max腳本語言進行多個同類對象的動畫設計,來解決手工交互操作工具的功能缺陷,并使這兩種技術的結合,讓動畫設計能力得到極大的提高。

關鍵詞:腳本語言;交互操作;對象;動畫設計

中圖分類號:TP37文獻標識碼:A文章編號:1009-3044(2009)27-7769-04

Carries on the Animation Design Based on the 3ds Max Script Language to many Objects of the same Kind

YAN Ya-jun

(Anhui Broadcast Movie and Television Professional Technology Institute, Hefei 230022, China)

Abstract: 3ds max is the most popular thing, applied for the most widespread three dimensional animation design software,The person who comprehensively grasp this software handwork operating alternative technology is very fewer, the person who steps in its deep level of the script language is fewer. Although manual operating technical function is very alternately formidable , When practical application is applying, the tools' function insufficient problem which uses in handwork operating alternately often creates the users' starting problem and the difficulty that the users don't understand where to begin. The using script language programming method can carry on the complex graph imagery processing and that way is another method that is about the comprehensive soluting animation system.Through the two examples of \"Zhong Zhi Cheng Cheng\"and the \"Dynamic Five Circles of the Olympic Games\",we can design various objects of the same kind by using 3Ds Max Script Language.We can also solve the problem the disadvantage of the manual operating alternative tools' foundation and mix these two technology, making the capability of cartoon designing improved at a high speed.

Key words: script language; operates alternately; object; animation design

3ds max是當今應用最廣泛的三維動畫設計軟件,人們常應用它進行工業造型、建筑、室內外裝潢、游戲、影視片頭與影視欄目包裝、影視特技特效、影視廣告等等的制作與設計,它的功能十分強大。在進行動畫設計與制作時,絕大多數用戶采用該軟件的手工交互操作技術進行動畫作品設計,如今這種手工交互操作技術的功能已經非常強大,要能全面清楚的掌握和應用這種技術,都不是易事,至于其深層次的腳本語言程序設計,更是少有人涉足。雖然手工交互操作技術功能很強大,但在實際應用時,還是時常出現手工交互的工具功能不夠的問題,例如物體復制建模,如果克隆物體很多,且物體的屬性參數有一個定量的改變或隨機改變等,此時用手工交互操作技術進行制作就顯得力不從心了;再如很多個空間里的同類型物體如果需要在空間內進行移動等變形動畫時,用手工交互操作設置也將會非常麻煩,甚至無從下手,等等。對這些同類對象使用手工交互操作技術難以制作的問題,我們可以使用3ds max內置的Maxscript腳本語言,進行程序設計加以解決。

1 Maxscript腳本語言及多個同類對象的產生

腳本語言往往是多媒體軟件內置的語言體系,它是程序設計的平臺。這種語言一般涵蓋了多媒體軟件所有手工交互操作技術的功能,同時對交互操作技術的功能進一步延伸和擴展。在當今流行且功能強大的多媒體處理技術軟件中,大多會內置腳本語言,如Flash、After Effects等,它能夠解決更加復雜的圖形圖像處理問題。3ds max是應用最廣泛的多媒體處理技術軟件,Maxscript腳本語言內置其中,與其它高級語言如C語言、VB、JAVA等程序設計語言有很多相似的地方,能進行運算、具有數據結構、函數、一定的語句、類、文件處理等等,但它是一個獨立的語言體系,有其自身的設計要求和規則,“它是基于表達式的語言設計,每一種語言點的結構都是以表達式的形式出現的,這種結構是其它程序設計語言中的段”[1]。是面向對象的程序設計。這種技術,被動畫設計的高端用戶所應用,是另類全面解決動畫體系的方法,程序設計技術使得手工交互操作技術的功能得到延伸與擴展,兩者相互結合,讓動畫設計的能力得到極大的提高。

3ds max的同類對象是指類型一致的對象,如都是球體、同是泛光燈等。多個同類對象的創建與應用是3ds max常用的創作技術之一,如中央電視臺二套的很多小紅球在跳動的片頭設計。實現多個同類對象的創建在3ds max中有很多方法,如用創建工具一個個的創建對象、對對象進行陣列工具復制、變形工具進行對象的變形復制、還有間隔復制工具、快照復制工具、粒子發射器等等,雖然它們都可以制作出多個同類對象,但還是存在著一定的功能缺陷,Maxscript腳本語言的程序設計也是創建多個同類對象的方法,它能很好的對其功能進行延伸與擴充。

動畫設計,它是在不同時間內讓對象的屬性或視角發生變化,如位置、大小、角度、顏色、攝影機鏡頭等等發生變化,在動畫軟件里,這些變化往往以關鍵幀的形式進行記錄。3ds max的動畫設置方法非常豐富,其中改變對象屬性參數與對象變換是常用的動畫設置方法之一。

2 基于3ds max的腳本語言對多個同類對象進行動畫設計

在3ds max中,如果需要創建的同類對象非常多,每個對象的屬性參數需要隨機的改變,甚至每個對象在空間有一定的變形與屬性動畫效果,顯然此時用人們習慣使用的手工交互操作技術是難以制作的。腳本語言的程序設計則能很好的解決這些問題。基于3ds max腳本語言在進行程序設計時,一般借助手工交互操作技術進行作品的部分操作,應用宏記錄將操作過程記錄下來,由系統自動轉換成語句,然后在程序編輯器中,將這些轉換的語句,按語言的設計要求和規則,進行修改、調整、編排等編輯工作,執行調試、編輯直到滿足要求。在實際作品創作時,我們常使用手工交互操作技術與程序設計技術結合起來使用,用程序設計對手工交互操作進行功能的延伸與擴充,使得作品設計在兩者技術的結合下,變得更加容易、更加豐富。

下面我們以“眾志成城”與“動態奧運五環”這兩個案例,來研究與解決基于腳本語言是如何實現多個同類對象的動畫設計的。

案例1,悼念08.5.12汶川特大地震遇難的人,眾志成城。此案例采取手工交互操作技術與腳本語言程序設計相結合的技術。

案例動畫的表現過程:如圖1至4,充滿視圖,大小不一,位置零亂的2008個白色光點,向內匯聚成“512”型,“5”、“1”與“2”同時顯現,如圖2,停頓片刻,由“512”光點再繞成心型,在心型內隱現出黃色“2008”字樣,停頓片刻,最后,“2008”字樣消失,心型又逐漸擴散并充滿視圖的亮點。

案例的創作過程以及程序設計:首先在3ds max環境下使用手工交互操作進行設置:1、將場景時間設置為PAL制式,250幀;2、在頂視圖繪制或導入二維圖形,心型,改名為“xinxing”,縮放至合適大小;3、在頂視圖心型內創建“2008”文本,勾選可渲染性可選項,調節粗細至合適,設置顏色為白色;4、對2008年的可見性設置動畫,120幀至140幀逐漸顯現出來,200至220幀逐漸淡出。

接著在當前場景下進行程序設計,選擇工具new script命令進入腳本編輯(腳本偵測器)對話框,編寫的程序如下:

myshape=converttosplineshape(text text:\"512\" renderable:1) —-創建默認屬性的文本“512”,可渲染性為假,賦給變量myshape

myshape1=converttosplineshape(text text:\"512\" renderable:1)—-在同位置創建同樣的文本“512”

myshape2=converttosplineshape(text text:\"512\" renderable:1)

myge1=Dummy isSelected:on--建立虛擬物體并選中,賦給變量myge1

myge1.Position.Controller=path path:myshape--將myge1路徑約束到myshape即“512”上,這里以“512”中的第一個字符“5”為路徑

myge1.pos.controller.follow = on--設定路徑跟隨

kk=67-250

inserttime myge1.position.Controller 250 kk

--將myge1關鍵幀第250幀前移kk個單位即第67幀

setfirstspline myshape1 2–-設置二維圖形myshape1中的第二條樣條線即“1”為第一條樣條線

myge2=Dummy isSelected:on

myge2.Position.Controller=path path:myshape1--將myge2路徑約束到myshape1即“512”上,這里以“512”中的第二個字符“1”為路徑

myge2.pos.controller.follow = on

selectkeys myge2.position.Controller 250–-選擇myge2第250幀處的關鍵幀

movekeys myge2.position.Controller kk #selection--將myge2選中的關鍵幀前移到67幀

setfirstspline myshape2 3

myge3=Dummy isSelected:on

myge3.Position.Controller=path path:myshape2

myge3.pos.controller.follow = on

selectkeys myge3.position.Controller 250

movekeys myge3.position.Controller kk #selection;myge4=Dummy isSelected:on

myge4.Position.Controller=path path:$xinxing--myge4路徑約束到在場景中創建的心型上

myge4.pos.controller.follow = on

selectkeys myge4.position.Controller 250

movekeys myge4.position.Controller -189.76 #selection--將myge4選中的關鍵幀前移189.76幀

selectkeys myge4.position.Controller 0

movekeys myge4.position.Controller 100 #selection

--下面是自定義函數,設置count個球的數組,賦給全局變量bb,每個球的半徑為0.05至1之間的隨機數,球的位置在空間以f與t間的隨機數,球的物體通道號為2

fn qiustar count extent:[400,400,400] pos:[0,0,0]=

(f=pos-extent/2;t=pos+extent/2

global bb=for i=1 to count collect sphere radius:(random 0.05 1) segs:5 wirecolor:white position:(random f t) gbufferchannel:2)

qiustar 2008--調用上述的自定義函數,數量2008個

lens=lens_effects size:2 name:\"len1\"--設置鏡頭特效,尺寸2

addeffect lens--將鏡頭特效增加到場景中

le.addglow lens--增加光暈鏡頭特效

glo=lens.glow;glo.name=\"sss\"

glo.size=1--光暈鏡頭特效尺寸設為1

glo.objectid=2--光暈鏡頭特效的對象通道ID號設為2

glo.applyimage=true--將效果指定到渲染輸出的圖像上

glo.sourceobjectid=true--設置效果應用于ID的特定對象

glo.source_color=100--設置光暈顏色使用場景中的對象顏色

j=0.1;jj=0

for cc in bb do--對象在數組bb中做

(jj=jj+1

if jj==1 then (animate on at time j (zz1=myge1.pos;cc.pos=zz1)--在j幀處設置CC的位置等于此時的myge1的位置的關鍵幀

movekeys cc.pos.controller (random 1 10) --將cc的所有關鍵幀向后隨機移動1至10幀

animate on at time 87 cc.pos=zz1) --在87幀追加位置的關鍵幀

else (if jj==2 then (animate on at time j (zz2=myge2.pos;cc.pos=zz2) --在j幀處設置CC位置等于此時的myge2位置的關鍵幀

movekeys cc.pos.controller (random 1 10)

animate on at time 87 cc.pos=zz2 )

else(animate on at time j (zz3=myge3.pos;cc.pos=zz3)

movekeys cc.pos.controller (random 1 10)

animate on at time 87 cc.pos=zz3

jj=0;j=J+0.1)));j=100

for cc in bb do (animate on at time j (zz=myge4.pos

cc.pos=zz)

selectkey cc.pos.controller 3--選擇cc關鍵幀號為3的關鍵幀

selectkey cc.pos.controller 4

movekeys cc.pos.controller (random 1 10) #selection

animate on at time 190 (cc.pos=zz)

j=j+0.03012)

for cc in bb do (animate on at time 240 (

cc.pos=[(random -300 300),(random -300 300),(random -300 300)]))--在240幀設置關鍵幀,將所有的球體位置隨機移到空間-300至300之間

將程序保存,在當前場景下運行該程序,對透視圖進行調整,移動時間快速渲染看看,如不滿意進行調試以及改變視角,最后利用渲染工具對場景輸出保存最終視頻作品。

案例分析:2008個大小不一位置零亂的亮點,如果用手工交互技術制作非常的麻煩,這些點隨時間的改變匯聚成文字并變換成心型,這些點的移動動畫同樣使用手工交互技術是不能實現的。而程序設計則完全實現了這種同類對象的制作及動畫。

案例2,“動態奧運五環”。這是一個場景的基本設置與最終渲染工具交互操作輸出外,完全用程序設計的基于3ds max腳本語言對多個同類對象進行動畫設計的案例,如圖5。

案例動畫的表現過程:圖中五個環均由半徑5的100個圓柱圍成、高度以5為起始逐個增加2個單位,且隨時間一個一個的顯示出來。藍環顯示完,黑色環逐漸顯示出來,接著紅色環、黃色環和綠色環按序逐個顯示出來。

案例的創作過程以及程序設計:首先在3ds max環境下使用手工交互操作進行設置:使用默認的場景,或將場景設置為PAL制式,100幀。接著進行程序設計其程序如下:

myshape=Circle radius:100 name:\"shape1\" pos:[0,0,0]—-創建半徑100、名shape1、位置在(0,0,0)的圓,并送給變量myshape

mycopysh=for i=1 to 5 collect (copy myshape)—-將myshape復制5個給數組mycopysh

move mycopysh[2] [(myshape.pos.x+220),0,0]—-將數組中第二個圓位置在X方向移動220個單位

move mycopysh[3] [(myshape.pos.x+440),0,0]

move mycopysh[4] [(myshape.pos.x+110),-120,0]

move mycopysh[5] [(myshape.pos.x+330),-120,0]

delete myshape--刪除myshape圓

for j=1 to 5 do-- j從1到5的循環

(myge=Cylinder smooth:on heightsegs:1 sides:18 height:5 radius:5 visibility:0--創建高度5、半徑5、高度線段數1的圓柱,不可見,賦給變量名myge

myge.Position.Controller=path path:mycopysh[j] --對圓柱設置位置控制器是mycopysh數組中第j個圓作為路徑的路徑約束動畫

myge.pos.controller.follow = on

k1=1.00/5 –-設置一個縮放比例0.2,并賦值于變量K1

scaletime myge.pos.controller 0 100 k1--將myge動畫0至100幀間的兩個關鍵幀縮放k1倍,第二個關鍵幀前移

k2=20*(j-1);movekeys myge.position.Controller k2--將myge所有關鍵幀向后移k2單位

k3=0;for i=k2 to (k2+20) by 0.25 do--變量i從0到100的循環語句

(k3=k3+1;at time i (zz=copy myge --在時間i幀處執行括號內語句體 -–復制myge賦給變量zz

zz.pos=myge.pos--在時間i幀處zz的位置與myge的位置重合

zz.height=myge.height+2*k3 --zz的高度為myge增加2k3倍即逐漸增加2個單位

deletekeys zz.Position.Controller #allkeys--刪除zz圓柱所有的關鍵幀

animate on –-打開動畫記錄

at time i zz.visibility=on –-在i幀處設置圓柱可見

animate off–-取消動畫記錄

if i>0 then (zz.visibility.controller.keys[2].inTangentType = #step

zz.visibility.controller.keys[2].outTangentType = #step) –-當i>0時的所有圓柱可見性動畫的第二個關鍵幀的動畫入點與出點為跳躍變化

case of--選擇語句

((j==1):zz.wirecolor=blue–-當j等于1時,zz圓柱為藍色

(j==2):zz.wirecolor=black

(j==3):zz.wirecolor=red

(j==4):zz.wirecolor=yellow

(j==5):zz.wirecolor=green)))

delete myge) --刪除myge圓柱

將程序保存,在當前場景下運行該程序,調試滿意后渲染輸出。

案例分析:每環中的100個圓柱高度逐次增加2個單位,并逐次顯示出來,很顯然這一動畫與手工交互操作的陣列復制很相象,但陣列復制對圓柱高度只能使用等百分比高度的縮放量進行高度的控制,而這里的圓柱高度是定數量的逐次改變,如果應用陣列進行該動畫設計,那我們需要對每環100個圓柱的高度進行修改,手工操作100次,5個環則要操作500次,這顯然很麻煩。當我們對每環由100個圓柱改成200個或更多時呢,手工交互操作對這些同類對象的動畫設計顯得功能太弱、力不從心了,而使用腳本語言的程序設計則很容易實現這500個高度有定量改變的圓柱這種同類對象的動畫設計。它是對陣列工具的一種功能補充,也可以說是陣列工具功能的延伸與擴展。

程序說明:上述兩案例的程序語句中“--”后的文字為語句注釋。程序在英文3ds max7、8、9、2009版本軟件中調試運行。

4 結束語

通過上述案例,我們發現在進行動畫設計時,對多個同類對象的動畫設計,如果使用手工交互操作技術進行制作,有時其操作過程相當繁瑣,就案例中2008個球且半徑與位置不定,100個高度逐次增加2個單位的這種復制建模,手工交互操作技術就非常難以實現,更何況還要對它們進行位置等的動畫設置呢,而使用腳本語言的程序設計,只需用幾條程序語句就能輕松搞定。因此,3ds max腳本語言的程序設計能很方便的對多個同類對象進行動畫設計,對手工交互操作的功能進行了延伸與擴展,極大的提高了動畫設計能力。

參考文獻:

[1] 王琦.3ds max 5白金手冊(下)[M].北京:北京科海電子出版社,2003:457.

[2] 王琦.3ds max 5白金手冊(上、中、下)[M].北京:北京科海電子出版社,2003.

[3] 黃峻.3ds max 6白金手冊(升級版)[M].北京:兵器工業出版社,2004.

[4] 黃心淵.3ds max高級編程[M].北京:清華大學出版社,2004.8.

[5] 王華.3ds MaxScript腳本語言完全學習手冊[M].北京:器工業出版社,2006.

主站蜘蛛池模板: 日韩欧美中文亚洲高清在线| 久久久精品国产亚洲AV日韩| 久久精品无码一区二区日韩免费| 伊人天堂网| 中文字幕永久视频| 日本国产精品| 不卡午夜视频| 久久人搡人人玩人妻精品| 色噜噜在线观看| 91网红精品在线观看| 国产色伊人| 精品成人一区二区三区电影| 激情综合网激情综合| 欧美色丁香| 久久青草视频| 国产97色在线| 国产伦精品一区二区三区视频优播| 午夜国产理论| 亚洲不卡无码av中文字幕| 麻豆精品国产自产在线| 婷婷丁香色| 国产凹凸一区在线观看视频| 成人免费黄色小视频| 国产成人精品一区二区不卡 | 91精品国产丝袜| 久久香蕉国产线看精品| 91区国产福利在线观看午夜| 久久视精品| 无码高潮喷水专区久久| 毛片网站观看| 欧美日韩导航| 色婷婷在线影院| 国内嫩模私拍精品视频| 午夜欧美理论2019理论| 高清无码手机在线观看| 国产一二视频| 欧美激情视频一区二区三区免费| 日韩a级毛片| 欧美一区二区福利视频| 丝袜美女被出水视频一区| 亚洲精品自在线拍| 国内丰满少妇猛烈精品播| 国产精品lululu在线观看| 亚洲国产欧美目韩成人综合| 看国产毛片| 国产成人精品第一区二区| 在线亚洲精品自拍| 美女国内精品自产拍在线播放| 精品免费在线视频| 中国黄色一级视频| 国产在线91在线电影| 国产成人综合欧美精品久久| 亚洲一区二区无码视频| 天天爽免费视频| 好久久免费视频高清| 亚洲国产精品一区二区高清无码久久| 亚洲欧美另类专区| 亚洲人成电影在线播放| 国产自在线播放| 国产成人精品一区二区秒拍1o| 99在线国产| 蜜桃臀无码内射一区二区三区| 中文无码日韩精品| 久久综合亚洲色一区二区三区| 97精品伊人久久大香线蕉| 91福利免费| 国产在线视频二区| 日韩欧美中文| 青青草原偷拍视频| 2021国产精品自拍| 特黄日韩免费一区二区三区| swag国产精品| 久久国产乱子| 九九视频免费看| 亚洲不卡网| 91福利在线观看视频| 91无码人妻精品一区二区蜜桃| 九九热精品在线视频| 91青青在线视频| 波多野吉衣一区二区三区av| 亚洲va在线∨a天堂va欧美va| 青草娱乐极品免费视频|