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

Mel語(yǔ)言及其表達(dá)式在MAYA動(dòng)力學(xué)特效中的應(yīng)用研究

2022-08-19 06:18:26謝函邑
電子測(cè)試 2022年15期
關(guān)鍵詞:動(dòng)畫(huà)方向語(yǔ)言

謝函邑

(中國(guó)船舶第七一三研究所,河南鄭州,450000)

0 引言

三維動(dòng)畫(huà)現(xiàn)如今已經(jīng)得到各行各業(yè)的廣泛運(yùn)用,從傳統(tǒng)的電影特效、電視片頭、游戲等,到如今的教育教學(xué)、軍事、醫(yī)療、飛行模擬等各個(gè)方面。Maya 作為動(dòng)畫(huà)學(xué)界、業(yè)界的必備軟件,集中了最先進(jìn)的動(dòng)畫(huà)及數(shù)字效果技術(shù),成為電影級(jí)別的高端制作軟件代表。作為一個(gè)功能很強(qiáng)大的三維動(dòng)畫(huà)軟件,不僅為創(chuàng)作者提供了基本的屬性控制,還提供了高級(jí)控制方式—Mel語(yǔ)言(Maya Embedded Language)及表達(dá)式,使創(chuàng)作者可以通過(guò)Mel語(yǔ)言及表達(dá)式進(jìn)行Maya的基礎(chǔ)操作,如通過(guò)執(zhí)行一段Mel腳本創(chuàng)建一個(gè)球體模型,也可以完成更為復(fù)雜的效果,如通過(guò)表達(dá)式控制群體動(dòng)畫(huà)中個(gè)體之間的運(yùn)動(dòng)差異,還可以完成一系列基礎(chǔ)操作的快捷批量處理如通過(guò)Mel語(yǔ)言編寫(xiě)骨骼綁定插件。

1 MAYA動(dòng)力學(xué)中的MEL語(yǔ)言及其表達(dá)式

動(dòng)力學(xué)是理論力學(xué)的分支學(xué)科,研究作用于物體的力與物體運(yùn)動(dòng)的關(guān)系。Maya中的動(dòng)力學(xué)系統(tǒng)在Dynamics模塊中,該系統(tǒng)主要由粒子、流體、剛體、柔體、毛發(fā)、布料等模塊構(gòu)成。在三維動(dòng)畫(huà)制作的流程中,動(dòng)力學(xué)需要與動(dòng)畫(huà)、燈光、渲染合成等部門(mén)緊密的配合(見(jiàn)圖1),綜合運(yùn)用這些模塊才能制作出逼真的動(dòng)畫(huà)效果。粒子作為動(dòng)力學(xué)特效的最小單位,其顯示、動(dòng)畫(huà)處理、渲染都與常規(guī)的物體有所不同。粒子的出生是通過(guò)“發(fā)射”來(lái)實(shí)現(xiàn)的,所以粒子的動(dòng)畫(huà)制作離不開(kāi)粒子發(fā)射器的建立。粒子發(fā)射器通常用于創(chuàng)建將在粒子系統(tǒng)內(nèi)運(yùn)動(dòng)的粒子。Maya中可以將無(wú)數(shù)的粒子組合起來(lái)使其形成固定的形態(tài),再通過(guò)控制粒子顏色、數(shù)量、空間分布、運(yùn)動(dòng)狀態(tài)等屬性模擬現(xiàn)實(shí)中的一些自然現(xiàn)象或宏大的場(chǎng)景,如龍卷風(fēng)、下雪、爆炸、煙花、群組動(dòng)畫(huà)等。這些逼真的效果往往需要大量的粒子組成,通過(guò)改變粒子在時(shí)間與空間上的屬性形成。因此每個(gè)粒子都可以被賦予如質(zhì)量、位置、速度、受力、生命周期、顏色、形狀、空間大小等的各種屬性。

圖1 三維動(dòng)畫(huà)制作流程圖

很多常用的三維軟件都提供了內(nèi)嵌腳本語(yǔ)言,可以通過(guò)各種算法來(lái)實(shí)現(xiàn)復(fù)雜的動(dòng)畫(huà)效果。Mel語(yǔ)言,就是Maya的嵌入式語(yǔ)言,是Maya使用最方便和控制最靈活的編程接口。在場(chǎng)景中選擇一個(gè)物體或顯示一個(gè)對(duì)話框就是執(zhí)行Mel命令的直接結(jié)果。表達(dá)式,即使用Mel語(yǔ)句將屬性動(dòng)畫(huà)化的程序。通常通過(guò)創(chuàng)建一系列的關(guān)鍵幀,可以將任何屬性在Maya中做動(dòng)畫(huà)。表達(dá)式也可用于將一個(gè)屬性做動(dòng)畫(huà),但不是通過(guò)關(guān)鍵幀,而是通過(guò)Mel命令定義屬性的值實(shí)現(xiàn)。這些Mel命令在每一幀進(jìn)行求值,然后將結(jié)果存儲(chǔ)在表達(dá)式所分配到的屬性中。這種技術(shù)通常稱為過(guò)程式動(dòng)畫(huà),即由程序(Mel命令)而不是由關(guān)鍵幀來(lái)控制動(dòng)畫(huà)。表達(dá)式可用于創(chuàng)建復(fù)雜的動(dòng)畫(huà),而不涉及或很少涉及手動(dòng)操作。這是一種將屬性動(dòng)畫(huà)化的強(qiáng)大方法。通常情況下,任何屬性都可由語(yǔ)句進(jìn)行控制。簡(jiǎn)單來(lái)說(shuō),Mel與表達(dá)式的區(qū)別就是Mel是一種語(yǔ)言,基于這種語(yǔ)言,可以完成一件事情,而表達(dá)式是使用Mel語(yǔ)句編寫(xiě)的將屬性動(dòng)畫(huà)化的腳本程序,是根據(jù)時(shí)間的變化做一系列事情。因此,Mel語(yǔ)言及表達(dá)式作為一種高級(jí)粒子控制方式,對(duì)于關(guān)鍵幀很難做到的工作,可以輕松完成,通過(guò)編寫(xiě)程序,可以實(shí)現(xiàn)想要的效果。例如通過(guò)一個(gè)模型在三維空間中形成一個(gè)矩陣,傳統(tǒng)的復(fù)制效率低,速度慢。通過(guò)粒子形成矩陣,模型替換粒子的方法效率更高,速度更快。而這里所說(shuō)的粒子替代是以實(shí)體模型來(lái)替換粒子,適合做大規(guī)模的群體動(dòng)畫(huà),比如人群、鳥(niǎo)群、魚(yú)群等。被粒子替代的物體(即原始物體)稱為源物體,可以替換多種元素來(lái)實(shí)現(xiàn)不同的效果,它可以是一個(gè)單一的物體(有動(dòng)畫(huà)或沒(méi)有動(dòng)畫(huà)的都可以),也可以是不同位置和外形的一系列物體,例如一群幾乎相同的鳥(niǎo)在不同的位置拍動(dòng)翅膀。以下案例就是通過(guò)Mel語(yǔ)言及其表達(dá)式控制粒子替代,創(chuàng)造隨機(jī)性,來(lái)模擬亂箭齊發(fā)的真實(shí)景象。

2 Mel語(yǔ)言及其表達(dá)式控制粒子屬性案例分析

2.1 創(chuàng)建粒子替代

創(chuàng)建一個(gè)體積發(fā)射器,在Particles菜單下單擊Create Emitter后的屬性按鈕,設(shè)置發(fā)射器名稱為fx_base_emitter1,發(fā)射器類(lèi)型為Volume,比率為50,體積發(fā)射器形狀為Cube。將particle1更名為baseParticle1。調(diào)整Cube粒子發(fā)射器的形狀和角度,再將發(fā)射器fx_base_emitter1的遠(yuǎn)離中心調(diào)整為10。沿軸調(diào)整為100,使baseParticle1快速?gòu)捏w積發(fā)射器中向一個(gè)方向發(fā)射出去。

接下來(lái)進(jìn)行粒子實(shí)例替代,選擇要作為源物體的arrow再加選baseParticle1,在Particles菜單下選擇Instancer(Replacement)命令,使用默認(rèn)值即可。通過(guò)觀察可以發(fā)現(xiàn),替代物體arrow的尖頭處始終是指向×軸正方向的,那么現(xiàn)在就來(lái)調(diào)整一下它的尖頭處的指向。將替代物體arrow的X軸指向粒子的運(yùn)動(dòng)方向。選擇baseParticle1打開(kāi)它的屬性編輯性,為每粒子屬性添加一個(gè)directionPP屬性。為directionPP屬性寫(xiě)入表達(dá)式,directionPP=<<1,0,0>> ;因?yàn)橹恍枰锰娲矬w arrow 的×軸做為指向軸,所以Y軸和Z軸不做操作,值設(shè)置成0即可。打開(kāi)baseParticle1的Instancer(Gemerty Replacement)卷展欄,設(shè)置實(shí)例節(jié)點(diǎn)為instancer1,AimDirection(指向方向)為粒子的速度方向velocity,指向軸為directionPP,意思是用替代物體arrow的Y軸指向粒子的速度方向。(見(jiàn)圖2)

圖2 修改粒子替代

2.2 Mel語(yǔ)言及其表達(dá)式創(chuàng)建粒子隨機(jī)性

首先是箭打到墻上(物體上)掉落的隨機(jī)性。創(chuàng)建一個(gè)平面,調(diào)整形狀放到適當(dāng)位置做為墻面,重命名為wall(見(jiàn)圖3)。選擇baseParticle1和wall,執(zhí)行Make Collide命令,設(shè)置Resilience為0,Friction為1。發(fā)生碰撞后,箭成整齊的水平方向。這時(shí)就需要?jiǎng)?chuàng)建粒子碰撞事件,選擇粒子baseParticle1,執(zhí)行粒子碰撞事件編輯器命令,在這里什么設(shè)置也不做,只是要一個(gè)什么也沒(méi)發(fā)生的碰撞事件,以碰撞事件為條件判斷什么時(shí)候箭落下來(lái),什么時(shí)候亂箭釘上去。

圖3 創(chuàng)建一個(gè)Poly的Plane

選擇baseParticle1再加選wall,單擊Particles菜單下的Goal命令,由于粒子(箭)在碰撞前的飛行過(guò)程中是不用Goal到wall上的,所以在這里我們需要使用一個(gè)if-else語(yǔ)句來(lái)判斷goal值,先在Creation下為goalPP創(chuàng)建一個(gè)初始值baseParticleShape1.goalPP=0(意思是一開(kāi)始不受墻壁的吸引);在Runtime before dynamics 下寫(xiě)入:

意思是當(dāng)碰撞還沒(méi)產(chǎn)生時(shí)(即baseParticle-Shapel.event==0)粒子的goalPP為0,否則當(dāng)碰撞產(chǎn)生時(shí)粒子的goalPP為1。接下來(lái),為其添加新的屬性,選擇baseParticle1添 加 goalU、goalV、collisionU、collisionV四 個(gè) 屬性到每粒子屬性中。為goalU、goalV添加表達(dá)式,用collisionU、collisionV碰撞一瞬間的UV坐標(biāo)來(lái)指定粒子的goalU、goalV,在Runtime before dynamics 下寫(xiě)入:

baseParticleShapel.goalU = baseParticleShapel.collisionU;

baseParticleShapel.goalV = basePar-ticleShapel.collisionV;

這樣粒子(箭)就得到它的goalU和goalV值,baseParticleShapel.goalU = baseParticleShapel.collisionU; 和 baseParticleShapel.goalV =baseParticleShape1.collisionV;應(yīng)該寫(xiě)在碰撞之后的語(yǔ)句中,在碰撞產(chǎn)生時(shí)執(zhí)行。

其次,解決箭打到墻的角度的隨機(jī)性。為baseParticle1添加自定義的每粒子屬性aimD,用它作為一個(gè)粒子速度/速度方向的變量。為AimD寫(xiě)入表達(dá)式,將粒子還沒(méi)有產(chǎn)生碰撞時(shí)的速度/速度方向傳遞給Aim D,在Runtime before dynamics下寫(xiě)入表達(dá)式(見(jiàn)圖4)將baseParticleShape1.aimD= baseParticleShape1.velocity;寫(xiě)入沒(méi)有產(chǎn)生碰撞時(shí)的語(yǔ)句中,也就是在沒(méi)有碰撞之前目標(biāo)方向?yàn)榱W拥乃俣确较颍賹imDirection重新設(shè)置成aimD。

圖4 添加表達(dá)式

現(xiàn)在亂箭釘?shù)綁ι虾螅€在繼續(xù)旋轉(zhuǎn),這是因?yàn)闆](méi)有指定旋轉(zhuǎn)是在碰撞前還是在碰撞后,那么將語(yǔ)句最上方的自定義箭旋轉(zhuǎn)的表達(dá)式放入到還沒(méi)有碰撞時(shí)的語(yǔ)句中,讓它在沒(méi)有產(chǎn)生碰撞時(shí)執(zhí)行(見(jiàn)圖5)

圖5 改變表達(dá)式位置

最后需要讓某些箭打到墻上后掉落下去,未必非要指定必須哪個(gè)箭掉落,隨機(jī)便可,使用隨機(jī)還可以控制掉落的多少。為baseParticle1添加自定義的float型的每粒子屬性falIPP。為fallPP創(chuàng)建表達(dá)式,在Creation下寫(xiě)入:base ParticleShapel.fallPP=rand(0,1);之后會(huì)用這個(gè)隨機(jī)值做為一個(gè)判斷下落的條件。在Runtime before dynamics下寫(xiě)入表達(dá)式(見(jiàn)圖6)。這里的意思是, 如果產(chǎn)生碰撞并且fallPP的隨機(jī)時(shí)大于0.1時(shí),箭會(huì)釘在墻上,執(zhí)行之前的操作。否則替代物體箭的速度方向仍然是粒子的速度方向,再由于重力作用下落。再調(diào)整碰撞參數(shù),Resilience為0.3,Friction為0。將Friction設(shè)置為0可以讓亂箭有一種碰撞時(shí)抖動(dòng)的沖力感覺(jué),而調(diào)整Resilience是為了使箭彈得更遠(yuǎn)一些,也是為了表達(dá)箭的沖力。

圖6 添加表達(dá)式

3 結(jié)語(yǔ)

對(duì)基于動(dòng)力學(xué)和粒子系統(tǒng)模擬自然景象進(jìn)行了研究,總結(jié)出最大實(shí)現(xiàn)粒子的可控制性,既不是單純靠粒子發(fā)射器發(fā)射粒子,也不單純用場(chǎng)來(lái)干擾粒子,而是粒子系統(tǒng)與Mel表達(dá)式結(jié)合。通過(guò)Maya中的粒子系統(tǒng)和MEL表達(dá)式來(lái)模擬自然景象,不僅可以自主編程形成小插件直接利用,還可以后續(xù)升級(jí)迭代,更可以在多個(gè)客戶端多人同時(shí)進(jìn)行角色或場(chǎng)景的設(shè)計(jì)。MEL語(yǔ)言高效的通信和協(xié)同設(shè)計(jì)能顯著縮短動(dòng)畫(huà)作品的開(kāi)發(fā)周期,降低成本,增強(qiáng)動(dòng)畫(huà)作品的個(gè)性化、開(kāi)發(fā)的互動(dòng)性及共創(chuàng)性。

猜你喜歡
動(dòng)畫(huà)方向語(yǔ)言
2022年組稿方向
2021年組稿方向
做個(gè)動(dòng)畫(huà)給你看
2021年組稿方向
動(dòng)畫(huà)發(fā)展史
語(yǔ)言是刀
文苑(2020年4期)2020-05-30 12:35:30
我的動(dòng)畫(huà)夢(mèng)
文苑(2019年22期)2019-12-07 05:28:56
讓語(yǔ)言描寫(xiě)搖曳多姿
累積動(dòng)態(tài)分析下的同聲傳譯語(yǔ)言壓縮
我是動(dòng)畫(huà)迷
主站蜘蛛池模板: 97国产在线观看| 久久男人资源站| 日韩在线视频网站| 三上悠亚在线精品二区| 久久一色本道亚洲| 国产91丝袜| 天堂成人在线视频| 久久精品一品道久久精品| 中文字幕亚洲另类天堂| 国产福利2021最新在线观看| 91久久天天躁狠狠躁夜夜| 丁香婷婷综合激情| 免费无码AV片在线观看中文| 亚洲人成网站在线播放2019| 亚洲一区二区日韩欧美gif| 中文字幕人妻av一区二区| 亚洲免费黄色网| 国产在线无码一区二区三区| 午夜无码一区二区三区| 71pao成人国产永久免费视频| 亚洲无码37.| 亚洲精品无码专区在线观看| 国产91蝌蚪窝| 91精品久久久久久无码人妻| 国产成人盗摄精品| 欧美无遮挡国产欧美另类| 亚洲一区二区三区国产精品| 成人va亚洲va欧美天堂| 欧美a级在线| 波多野结衣一区二区三视频 | 国产白浆在线观看| 亚洲AV无码乱码在线观看裸奔| 成人无码一区二区三区视频在线观看 | 为你提供最新久久精品久久综合| 欧美无专区| 国产精品丝袜在线| 久久情精品国产品免费| 五月婷婷综合在线视频| 日韩精品亚洲一区中文字幕| 54pao国产成人免费视频| 麻豆精选在线| 毛片一级在线| 狠狠色香婷婷久久亚洲精品| 久久精品国产精品国产一区| 97人妻精品专区久久久久| 男女猛烈无遮挡午夜视频| 99热这里都是国产精品| 精品无码一区二区在线观看| 青青草原国产| 久久香蕉国产线看精品| 亚洲va欧美ⅴa国产va影院| 亚洲高清中文字幕| 人妻精品全国免费视频| 午夜性刺激在线观看免费| 国产精品hd在线播放| 58av国产精品| 伊人久热这里只有精品视频99| 国产欧美日韩18| 精品一區二區久久久久久久網站| 福利视频久久| 久久久久亚洲AV成人网站软件| 日韩a在线观看免费观看| 91青青草视频| 久久婷婷国产综合尤物精品| 高清久久精品亚洲日韩Av| 欧美国产综合色视频| 国产91丝袜在线观看| 色噜噜在线观看| 欧美综合激情| 亚洲天堂网在线视频| 无码AV高清毛片中国一级毛片| 色综合色国产热无码一| 为你提供最新久久精品久久综合| 中国一级特黄大片在线观看| 青青国产视频| 无码综合天天久久综合网| 99精品在线看| 国产精品无码在线看| 99re66精品视频在线观看| 狠狠久久综合伊人不卡| 欧美A级V片在线观看| 免费中文字幕一级毛片|