對象屬性表達(dá)式_第1頁
對象屬性表達(dá)式_第2頁
對象屬性表達(dá)式_第3頁
對象屬性表達(dá)式_第4頁
對象屬性表達(dá)式_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、藝術(shù)與傳媒學(xué)院藝術(shù)與傳媒學(xué)院第第八八章章 對象屬性表達(dá)式對象屬性表達(dá)式 唐俊唐俊v 第一節(jié)第一節(jié) 表達(dá)式表達(dá)式 第一節(jié)第一節(jié) 表達(dá)式表達(dá)式 v (1)表達(dá)式的定義v 在Maya中,表達(dá)式是計(jì)算場景中一個(gè)或多個(gè)屬性值的腳本。v 我們知道,通過創(chuàng)建一系列的關(guān)鍵幀,可以將任何屬性在Maya中動(dòng)畫化。表達(dá)式也可以用于將屬性動(dòng)畫化,但不是通過設(shè)置關(guān)鍵幀,而是通過MEL命令來定義屬性的值而實(shí)現(xiàn)的。表達(dá)式可用于創(chuàng)建復(fù)雜的動(dòng)畫,而不涉及或很少涉及手動(dòng)操作。第一節(jié)第一節(jié) 表達(dá)式表達(dá)式 v (2)表達(dá)式的分類v 共有兩種類型的表達(dá)式:v 控制單個(gè)對象屬性(per-object attributes)的對象屬對象屬

2、性表達(dá)式性表達(dá)式(object attribute expressions);v 控制粒子對象中的單個(gè)粒子屬性(per-particle attributes)的粒子表達(dá)式粒子表達(dá)式(particle expressions)。第一節(jié)第一節(jié) 表達(dá)式表達(dá)式 v 雖然表面上這兩種表達(dá)式十分類似,但是這兩種表達(dá)式的創(chuàng)建和使用卻有很大的區(qū)別。本章著重學(xué)習(xí)對象屬性表達(dá)式(object attribute expressions)。v 第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表達(dá)式第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表達(dá)式 v 舉例舉例1:nurbs球體勻速穿過球體勻速穿過X軸軸v 用結(jié)構(gòu)化的程序設(shè)計(jì)方法用結(jié)

3、構(gòu)化的程序設(shè)計(jì)方法“自頂向下、逐步求精自頂向下、逐步求精”來分來分析問題:析問題:v 第一步,創(chuàng)建一個(gè)nurbs球體;v 第二步,讓球體勻速穿過X軸。第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表達(dá)式 v進(jìn)一步細(xì)化:進(jìn)一步細(xì)化:v 第一步,創(chuàng)建一個(gè)nurbs球體;手動(dòng)創(chuàng)建即可,可以實(shí)現(xiàn)。v 第二步,讓球體勻速穿過X軸讓球體的translateX屬性和時(shí)間聯(lián)系起來。 第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表達(dá)式 v “第二步第二步”再一次細(xì)化:再一次細(xì)化:v 在表達(dá)式中,需要獲取當(dāng)前的時(shí)間。Maya提供了兩種預(yù)定義的函數(shù):time和frame。v time函數(shù)存儲(chǔ)當(dāng)前時(shí)間(以秒為單位)。v frame函數(shù)

4、存儲(chǔ)當(dāng)前幀。v “第二步”可以實(shí)現(xiàn)為:v 球體的translateX屬性= time函數(shù)或frame函數(shù);第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表達(dá)式 v 舉例舉例2:創(chuàng)建一個(gè)帶有屬性:創(chuàng)建一個(gè)帶有屬性revolutions的球體。當(dāng)?shù)那蝮w。當(dāng)revolutions屬性從屬性從0變化到變化到1時(shí),球體繞時(shí),球體繞Y軸旋轉(zhuǎn)一周。軸旋轉(zhuǎn)一周。v 用結(jié)構(gòu)化的程序設(shè)計(jì)方法用結(jié)構(gòu)化的程序設(shè)計(jì)方法“自頂向下、逐步求精自頂向下、逐步求精”來分來分析問題:析問題:v 第一步,創(chuàng)建球體v 第二步 ,增加屬性revolutionsv 第三步,用revolutions屬性來控制球體繞Y軸的旋轉(zhuǎn)第二節(jié)第二節(jié) 對象屬性表

5、達(dá)式對象屬性表達(dá)式 v 進(jìn)一步細(xì)化:進(jìn)一步細(xì)化:v 第一步,創(chuàng)建球體手動(dòng)創(chuàng)建即可,可以實(shí)現(xiàn)。v 第二步,增加屬性revolutions打開屬性編輯器,手動(dòng)增加即可,可以實(shí)現(xiàn)。v 第三步,用revolutions屬性來控制球體繞Y軸的旋轉(zhuǎn)用revolutions屬性來控制球體的rotateY屬性。第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表達(dá)式 v“第三步第三步”再一次細(xì)化:再一次細(xì)化:v 用revolutions屬性01的變化控制球體的rotateY屬性0360變化。v球體的rotateY屬性=revolutions屬性*360第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表達(dá)式 v 舉例舉例3:兩個(gè)球體,都

6、繞:兩個(gè)球體,都繞Y軸旋轉(zhuǎn),球體軸旋轉(zhuǎn),球體1滯后于球體滯后于球體2 45。v 用結(jié)構(gòu)化的程序設(shè)計(jì)方法用結(jié)構(gòu)化的程序設(shè)計(jì)方法“自頂向下、逐步求精自頂向下、逐步求精”來分來分析問題:析問題:v 第一步,創(chuàng)建兩個(gè)球體v 第二步,控制球體1繞Y軸的旋轉(zhuǎn)滯后于球體2 45第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表達(dá)式 v 進(jìn)一步細(xì)化:進(jìn)一步細(xì)化:v 第一步,創(chuàng)建兩個(gè)球體手動(dòng)創(chuàng)建即可,可以實(shí)現(xiàn)。v 第二步,控制球體1繞Y軸的旋轉(zhuǎn)滯后于球體2 45球體1的rotateY屬性滯后于球體2的rotateY屬性45。第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表達(dá)式 v “第二步第二步”再一次細(xì)化:再一次細(xì)化:v 球體2的

7、rotateY屬性=球體1的rotateY屬性-45v 補(bǔ)充:補(bǔ)充:v 可以用球體1的rotateY屬性來控制球體2的rotateY屬性;反之,不行。第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表達(dá)式 v 舉例舉例4:在場景中橫向移動(dòng)的球體上下擺動(dòng)。:在場景中橫向移動(dòng)的球體上下擺動(dòng)。v 用結(jié)構(gòu)化的程序設(shè)計(jì)方法“自頂向下、逐步求精”來分析問題:v 第一步,創(chuàng)建球體v 第二步,控制球體橫向移動(dòng)v 第三步,控制球體的上下擺動(dòng)第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表達(dá)式 v 進(jìn)一步細(xì)化:進(jìn)一步細(xì)化:v 第一步第一步,創(chuàng)建球體手動(dòng)創(chuàng)建即可,可以實(shí)現(xiàn)。v 第二步第二步,控制球體橫向移動(dòng)兩種辦法v 第一種辦法,關(guān)鍵幀

8、動(dòng)畫v 第二種辦法,讓球體勻速穿過X軸讓球體的translateX屬性和時(shí)間聯(lián)系起來。球體的translateX屬性= time函數(shù)或frame函數(shù);v 第三步第三步,控制球體的上下擺動(dòng)控制球體的translateY屬性,讓它的值上下波動(dòng)。第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表達(dá)式 v “第三步第三步”再一次細(xì)化:再一次細(xì)化:v 控制球體的translateY屬性,讓它的值上下波動(dòng)v 能否直接用time函數(shù)或frame函數(shù)來控制?第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表達(dá)式 v 對于沒有規(guī)律的隨機(jī)行為, Maya提供了兩種常用的隨機(jī)函數(shù):v rand函數(shù)rand(1,2)生成1和2之間的隨機(jī)數(shù)字

9、。每次調(diào)用的結(jié)果都不一樣。v noise函數(shù)noise(自變量)生成一個(gè)隨機(jī)數(shù)字,有兩個(gè)特征:v 函數(shù)的自變量相同時(shí),計(jì)算結(jié)果也相同;v 大小相近的自變量,計(jì)算結(jié)果也相近。第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表達(dá)式 v能否用能否用rand函數(shù)來控制?函數(shù)來控制?vnurbsSphere1.translateY=rand(0,1);v運(yùn)動(dòng)毫無規(guī)律,每次播放到相同的幀,都會(huì)生成不同數(shù)字,球體的translateY屬性值也就不同。第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表達(dá)式 v能否用能否用noise函數(shù)來控制?函數(shù)來控制?vnurbsSphere1.translateY=noise(nurbsSphe

10、re1.translateX); 第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表達(dá)式 v 球體運(yùn)動(dòng)不像以前那樣亂,現(xiàn)在希望它的運(yùn)動(dòng)稍微平穩(wěn)一些v nurbsSphere1.translateY=noise(nurbsSphere1.translateX/2);v noise函數(shù),輸入值變化速度小了,輸出的值變化速度也相應(yīng)的變小。第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表達(dá)式 v希望波動(dòng)的幅度大一些vnurbsSphere1.translateY=5*noise(nurbsSphere1.translateX); 第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表達(dá)式 v 如果希望有規(guī)律的波動(dòng)如果希望有規(guī)律的波動(dòng)sin

11、函數(shù)函數(shù) vy=sin(x)x0y1-12232第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表達(dá)式 v用sin函數(shù)來控制vnurbsSphere1.translateY=sin(輸入);第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表達(dá)式 v輸入可以是v1、輸入是位移的變化:、輸入是位移的變化:v輸入輸入nurbsSphere1.translateXvnurbsSphere1.translateY=sin(nurbsSphere1.translateX);第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表達(dá)式 v希望波動(dòng)的快一些希望波動(dòng)的快一些vnurbsSphere1.translateY=sin(nurbsSphere

12、1.translateX*5);v希望波動(dòng)的幅度大一些希望波動(dòng)的幅度大一些vnurbsSphere1.translateY=5*sin(nurbsSphere1.translateX*5);第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表達(dá)式 v2、輸入是時(shí)間的變化:、輸入是時(shí)間的變化:v輸入time函數(shù)或frame函數(shù)vnurbsSphere1.translateY= sin(time);第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表達(dá)式 v希望波動(dòng)的快一些希望波動(dòng)的快一些vnurbsSphere1.translateY=sin(time*5);v希望波動(dòng)的幅度大一些希望波動(dòng)的幅度大一些vnurbsSpher

13、e1.translateY=5*sin(time);第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表達(dá)式 v 或者用或者用frame函數(shù)函數(shù)v nurbsSphere1.translateY= sin(frame);v 希望波動(dòng)的慢一些希望波動(dòng)的慢一些v nurbsSphere1.translateY=sin(frame/5);v 希望波動(dòng)的幅度大一些希望波動(dòng)的幅度大一些v nurbsSphere1.translateY=5*sin(frame);第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表達(dá)式 v隨時(shí)間和位移的變化的區(qū)別在于如果位移不變,則球體不上下波動(dòng)。而時(shí)間則不會(huì)。第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表

14、達(dá)式 v 舉例舉例5:要使一個(gè)球體在移動(dòng)中自動(dòng)地時(shí)隱時(shí)現(xiàn)。:要使一個(gè)球體在移動(dòng)中自動(dòng)地時(shí)隱時(shí)現(xiàn)。v 用結(jié)構(gòu)化的程序設(shè)計(jì)方法“自頂向下、逐步求精”來分析問題:v 第一步,創(chuàng)建球體v 第二步,控制球體移動(dòng)v 第三步,使球體時(shí)隱時(shí)現(xiàn)第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表達(dá)式 v 進(jìn)一步細(xì)化:進(jìn)一步細(xì)化:v 第一步第一步,創(chuàng)建球體手動(dòng)創(chuàng)建即可,可以實(shí)現(xiàn)。v 第二步第二步,控制球體移動(dòng)有多種辦法v 第一種辦法,關(guān)鍵幀動(dòng)畫v 第二種辦法,讓球體的translateX、translateY、translateZ屬性和時(shí)間聯(lián)系起來。v 第三種辦法,使用路徑動(dòng)畫,我們使用此方法手動(dòng)創(chuàng)建即可,可以實(shí)現(xiàn)。第二節(jié)第二

15、節(jié) 對象屬性表達(dá)式對象屬性表達(dá)式 v第三步第三步,使球體時(shí)隱時(shí)現(xiàn)控制球體的材質(zhì)的R、G、B屬性,隨時(shí)間或者位移的變化而在01之間變化。 第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表達(dá)式 v“第三步第三步”再一次細(xì)化:再一次細(xì)化:v控制球體的材質(zhì)的R、G、B屬性在01之間變化想到了使用sin函數(shù),sin函數(shù)在-11之間變化,只需做一些修改。v材質(zhì)的R、G、B屬性=( sin(輸入)+1)/2;v只需要確定輸入第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表達(dá)式 v 1、輸入是位移的變化:、輸入是位移的變化:v 材質(zhì)的R、G、B屬性=( sin(輸入)+1)/2;v 輸入球體離原點(diǎn)(0,0,0)的距離v Maya

16、提供了mag(當(dāng)前坐標(biāo))函數(shù)來計(jì)算當(dāng)前坐標(biāo)離原點(diǎn)的距離。第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表達(dá)式 v 2、輸入是時(shí)間的變化:、輸入是時(shí)間的變化:v 材質(zhì)的R、G、B屬性=( sin(時(shí)間函數(shù))+1)/2v 材質(zhì)的R、G、B屬性=( sin(frame)+1)/2v 如果希望顏色變化的慢一些,需要控制如果希望顏色變化的慢一些,需要控制sin( )函數(shù)的輸入函數(shù)的輸入v 材質(zhì)的R、G、B屬性=(sin(frame/20)+1)/2;第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表達(dá)式 v 用用time函數(shù)函數(shù)v 材質(zhì)的R、G、B屬性=( sin(time)+1)/2v 如果希望顏色變化的快一些,需要控制如

17、果希望顏色變化的快一些,需要控制sin( )函數(shù)的輸入函數(shù)的輸入v 材質(zhì)的R、G、B屬性=( sin(time*5)+1)/2第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表達(dá)式 v 舉例舉例6:創(chuàng)建一個(gè)磁體對象,在給定的距離內(nèi)會(huì)吸引另一:創(chuàng)建一個(gè)磁體對象,在給定的距離內(nèi)會(huì)吸引另一個(gè)磁體個(gè)磁體磁體表達(dá)式。磁體表達(dá)式。v 用結(jié)構(gòu)化的程序設(shè)計(jì)方法“自頂向下、逐步求精”來分析問題:v 第一步第一步,創(chuàng)建一個(gè)球體作為磁鐵,并控制球體移動(dòng)v 第二步第二步,創(chuàng)建一個(gè)圓柱體,在第一幀的時(shí)候,移動(dòng)到指定位置,作為被吸引的對象v 第三步第三步,控制球體吸引圓柱體第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表達(dá)式 v 進(jìn)一步細(xì)化:

18、進(jìn)一步細(xì)化:v 第一步第一步,創(chuàng)建一個(gè)球體作為磁鐵,并控制球體移動(dòng)手動(dòng)創(chuàng)建即可,可以實(shí)現(xiàn)。v 第二步第二步,創(chuàng)建一個(gè)圓柱體,在第一幀的時(shí)候,移動(dòng)到指定位置,作為被吸引的對象手動(dòng)創(chuàng)建圓柱體,v if (第一幀)v 圓柱體移動(dòng)到指定的位置第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表達(dá)式 v 第三步第三步,控制球體吸引圓柱體v 計(jì)算球體和圓柱體之間的距離用mag()函數(shù)v if (距離 5)v 球體吸引圓柱體v elsev 圓柱體位置不變第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表達(dá)式 v 這個(gè)效果有個(gè)缺陷:一旦球體吸引了圓柱體,球體和圓柱體位置重合,而不是貼在表面。v 需要進(jìn)行修改v if (距離 5)v 球體吸引圓柱體需要進(jìn)行修改v 我們希望在X方向進(jìn)行吸引,吸引后,球體和圓柱體貼在表面,而不是位置重合。 第二節(jié)第二節(jié) 對象屬性表達(dá)式對象屬性表

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論