首頁>軟件教程>maya教程>    教程內(nèi)容

研究Maya的表達(dá)式動畫后的經(jīng)驗分享

本文作者在研究了Maya的表達(dá)式動畫后,得出一些經(jīng)驗與大家分享。

作者:streetman

??前言
好久沒有發(fā)帖子了,最近一個多月來我一直潛心鉆研Maya的表達(dá)式動畫,目前總算從菩提樹上摘下了幾個果子,想和大家分享一下。
一提到表達(dá)式和MEL語言,不少網(wǎng)友總是嘆氣。似乎這一類的東西是我們,尤其是非編程者遙不可及的。其實我也沒有學(xué)過C++、Delphy語言,和不少學(xué)習(xí)文科的朋友一樣美術(shù)才是我的專業(yè),F(xiàn)在也是如此。我想只要具有高中程度的數(shù)學(xué)、英語和物理知識,學(xué)習(xí)表達(dá)式動畫就足以了。三維的世界像海洋一樣,堅持下來,我們每個人都是采珍珠的勇士。
一、Functions--函數(shù)
首先我們來分析一下一段含有Maya內(nèi)嵌函數(shù)的表達(dá)式語句
Object.translateY=sin(time)+6;
Object 當(dāng)前場景中要設(shè)表達(dá)式的物體
. 分隔符
translateY 屬性
= 指定運(yùn)算符
sin 函數(shù)
() 邏輯運(yùn)算符
time 變量
+ 數(shù)學(xué)運(yùn)算符
6 常量
; 終結(jié)符
目前要討論的范圍是以SIN為代表的函數(shù),它們的作用是將物體按一定的特殊規(guī)律運(yùn)動。上例中Object從世界坐標(biāo)軸的中心沿Y軸以SIN三角函數(shù)圖像運(yùn)動規(guī)律進(jìn)行往返運(yùn)動。這類的函數(shù)有很多我總結(jié)了一下如圖:

??二:Maya的內(nèi)嵌函數(shù)分類
MATH FUNCTIONS 數(shù)學(xué)函數(shù)28個這一類的函數(shù)最多也是最為常用的

??RANDOM FUNCTIONS 絮亂函數(shù)6個是產(chǎn)生物體類似于噪波運(yùn)動的效果

??VECTOR FUNCTIONS 矢量函數(shù)6個多用于粒子動畫

??CONVERSION FUNCTIONS 轉(zhuǎn)化函數(shù)4個多用于MAYA內(nèi)部函數(shù)之間的互相轉(zhuǎn)化作用

??我盡可能的將我所了解的內(nèi)容告訴大家,有不周全的地方請參考MAYA的聯(lián)機(jī)手冊,雖然它是英文的。哎!不學(xué)英文怎么活?!

??三. 數(shù)學(xué)函數(shù)的用法
了解這一部分的內(nèi)容最好能夠參考高中教本關(guān)于三角函數(shù)的章節(jié)。
ABS 是ABSOULTE的縮寫意思是取決對值。
例如:
int abs(int number)
float abs(float number)
vector abs(vector number)
函數(shù)名是abs,它將返回number 的絕對值。絕對值是沒有正負(fù)數(shù)之分的數(shù)值。
本例說明abs 函數(shù)有3 種格式。每種格式要求一個不同數(shù)據(jù)類型的參數(shù)并返回一個不同數(shù)據(jù)類型的值。
第一個格式說明用戶可以鍵入整數(shù)類型參數(shù),并且函數(shù)返回一個整數(shù)。比如,abs(-3) 返回數(shù)值3。
第二個格式說明用戶可以鍵入一個浮點類型參數(shù),并且函數(shù)返回一個浮點數(shù),比如,abs(-7.54)返回7.54。
第三個格式說明可以鍵入一個向量,而且函數(shù)返回一個向量。比如,abs(<<3, -6.3, -2>>返回<<3, 6.3, 2>>。

acos
返回的是一個數(shù)值的反余弦弧度值,其范圍是0~ pi。
float acos(float number)
number 是角的余弦值,其范圍是-1~1。
例如:
acos(1)
返回值是0。
acos(-0.5)
返回的是2.0944 弧度。

  acosd
返回的是一個數(shù)值的反余弦角度值,其范圍是0~180。
float acosd(float number)
number 是角的余弦值,范圍是-1~1。
例如:
acosd(1)
返回值是0 度。
acosd(-0.5)
返回值是120 度。
asin
返回值是一個數(shù)值的反正弦弧度值,其范圍是-pi/2 到pi/2。
f loat asin(float number)
number 是角的正弦值,其范圍是-1~1。
例如:
asin(0.5)
返回值是0.525 弧度。
asind
返回的是一個數(shù)值的反正弦度數(shù)值,其范圍是-90 到90。
float asind(float number)
number 是角的正弦值,范圍是-1~1。
例如:
asind(0.5)
返回的是30 度。
atan
返回的是一個數(shù)值的反正切弧度值,其范圍是-pi/2 到pi/2。
float atan(float number)
number 是角的正切值,可為任何值。
例如:
atan(1)
返回值是0.785。
atand
返回的是一個數(shù)值的反正切角度值,其范圍是-90~90 度。
float atand(float number)
number 是角的正切值,可為任何值。
例如:
atand(1)
返回的是45 度。
atan2
返回的是一個在X,Y 坐標(biāo)軸中指定的反正切弧度值。這個角是以X 軸為一邊,另一邊是由原點和坐標(biāo)系
中一點形成的直線構(gòu)成。返回的角以弧度為單位,范圍是-pi 到pi。
float atan2(float Y, float X)
X 是點的X 坐標(biāo)。
Y 是點的Y 坐標(biāo)。
例如:
atan2(1,1)
返回的是0.785 弧度。
今天就寫到這,已經(jīng)很晚了,歡迎與我共同討論
to be continue

  今天加上MATH FUNCTIONS的最后一部分,來結(jié)素這個話題。其他的函數(shù)由于他們比較好理解,就不做說明了。畢竟一個人的能力是有限的。有點對不住大家了。
atan2d
返回的是一個在X,Y 坐標(biāo)系中指定的反正切角度值。返回的角以度為單位,范圍是-180 到180 度。
float atan2d(float Y, float X)
X 是點的X 坐標(biāo)。
Y 是點的Y 坐標(biāo)。
例如:
atan2d(1,1)
返回45 度。
hypot
返回的是從原點到在X, Y 坐標(biāo)系點的二維向量值.

  angle
返回向量間的弧度角.
float angle(vector vector1, vector vector2)
vector1 是一個向量。
vector2 是另一個向量。
返回角是兩個向量所夾角中的最小角,它通常小于180 度。
例如:
angle(<<2,-1,1>>,<<1,1,2>>
返回1.0472 弧度,它等于60 度。
cross
返回由兩個向量定義的叉乘值。
對于兩個向量,叉乘值是由兩個向量定義而成的面的法線,
vector cross(vector vector1, vector vector2)
若叉乘值是0,那么可能是兩個向量平行或在同一條直線上。若一個或兩個向量是<<0,0,0>>,那么叉乘
值返回<<0,0,0>>。
vector1 是一個向量。
vector2 是另一個向量。
例如:
cross(<<1,2,-2>>,<<3,0,1>>
返回值是<<2, -7, -6>>。
dot
返回兩個向量的浮點點積。點積把兩個向量作為自變量并返回一個標(biāo)量值。
float dot(vector vector1, vector vector2)
如果點積返回0,那么兩個向量是垂直的。
vector1 是一個向量。
vector2 是另一個向量。
例如:
dot(<<1,2,-2>>,<<3,0,1>>
返回1,這個例如的點積是(1 * 3) + (2*0) + (-2*1),它等于1。
mag
返回向量的值,它是向量的長度,float mag(vector vector)
vector 是所要得到數(shù)值的向量。
Mag 函數(shù)使用下列公式把向量轉(zhuǎn)換為一個浮點數(shù)。
例如:
mag(<<7,8,9>>
返回值13.928。

  rot   
返回一個向量,它代表以指定軸旋轉(zhuǎn)一定弧度后點的位置。
vector rot(vector point, vector axis, float angle)
point 是在世界坐標(biāo)系中點的位置。
Axis 是點圍繞之旋轉(zhuǎn)的軸。這個軸是一條經(jīng)過原點的有指定方向的線。
angle 是點所旋轉(zhuǎn)的弧度。
例如:
rot(<<3,3,0>>,<<1,0,0>>,0.5)
返回值為<<3, 2.633, 1.438>>。這是一個向量,它是沿<<1,0,0>> 的軸旋轉(zhuǎn)0.5 弧度后點的位置在<<3,3,0>>
的向量。
例如:
particleShape1.position = rot(position,<<0,1,0>>,0.1);
假定在場景中有一個單粒子物體,它的位置是<<4,6,0>>,并為它的粒子形節(jié)點寫了上面的runtime 表達(dá)
式。播放動畫時,粒子將沿Y 軸旋轉(zhuǎn)成一個圓形圖案。
在每幀中,粒子旋轉(zhuǎn)0.1 弧度,約為5.7 度,

  unit
返回一個和向量相應(yīng)的unit 向量。
unit 向量具有和指定向量相同的方向,但是它的數(shù)量是1。
vector unit(vector vector)
vector 是和unit 向量相應(yīng)的向量,
例如:
unit(<<1,1,1>>
返回<<0.577, 0.577, 0.577>>。

學(xué)習(xí) · 提示

  • 打開ps,跟著教程做一遍,做完的圖要到這里交作業(yè):提交作業(yè)
  • 教程有看不懂的地方,可以到論壇發(fā)帖提問:ps新手求助
  • 加官方微信,隨時隨地,想學(xué)就能學(xué):ps_bbs,或掃右側(cè)二維碼!
  • 關(guān)注我們微博:@photoshop教程論壇
  • 想學(xué)更多的同學(xué),可以關(guān)注我們小程序,每天都有新教程:點我用微信掃一下
PS教程自學(xué)網(wǎng) 歡迎投稿教程:http://i.16xx8.com

收藏到:
5159人學(xué)習(xí)過

  網(wǎng)友求助,請回答!