MAYA表達式動畫之Functions基礎(chǔ)教程

本教程向朋友們介紹MAYA表達式動畫之functions,教程介紹的比較詳細,希望對朋友們有所幫助!
前言
好久沒有發(fā)帖子了,最近一個多月來我一直潛心鉆研 maya 的表達式動畫,目前總算從菩提樹上摘下了幾個果子,想和大家分享一下。
一提到表達式和 mel 語言,不少網(wǎng)友總是嘆氣。似乎這一類的東西是我們,尤其是非編程者遙不可及的。其實我也沒有學過 c++ 、 delphy語言,和不少學習文科吶笥巖謊?朗醪攀俏業(yè)淖ㄒ?。现哉洸蕛S绱?。蜗伱劵?哂懈咧諧潭鵲氖??、英愉澩五d碇?叮??氨澩鍤蕉??妥鬩粵?。??氖瀾縵窈Q笠謊??岢窒呂矗?頤敲扛鋈碩際遣燒渲櫚撓率俊?br
一、 functions-- 函數(shù)
首先我們來分析一下一段含有 maya 內(nèi)嵌函數(shù)的表達式語句
object.translatey=sin(time)+6;
object 當前場景中要設(shè)表達式的物體
. 分隔符
translatey 屬性
= 指定運算符
sin 函數(shù)
() 邏輯運算符
time 變量
+ 數(shù)學運算符
6 常量
??; 終結(jié)符
目前要討論的范圍是以 sin 為代表的函數(shù),它們的作用是將物體按一定的特殊規(guī)律運動。上例中 object 從世界坐標軸的中心沿 y 軸以 sin 三角函數(shù)圖像運動規(guī)律進行往返運動。
二: maya 的內(nèi)嵌函數(shù)分類
math functions 數(shù)學函數(shù) 28 個這一類的函數(shù)最多也是最為常用的 .
random functions 絮亂函數(shù) 6 個是產(chǎn)生物體類似于噪波運動的效果
vector functions 矢量函數(shù) 6 個多用于粒子動畫
conversion functions 轉(zhuǎn)化函數(shù) 4 個多用于 maya 內(nèi)部函數(shù)之間的互相轉(zhuǎn)化作用.
array functions 陣列函數(shù) 3 個用于粒子和類粒子物體的運動
curve functions 曲線函數(shù) 4 個控制物體的路徑運動
我盡可能的將我所了解的內(nèi)容告訴大家,有不周全的地方請參考 maya 的聯(lián)機手冊,雖然它是英文的。哎!不學英文怎么活?!
表達式動畫之functions
三 數(shù)學函數(shù)的用法
了解這一部分的內(nèi)容最好能夠參考高中教本關(guān)于三角函數(shù)的章節(jié)。
abs 是 absoulte 的縮寫意思是取決對值。
例如:
int abs(int number)
float abs(float number)
vector abs(vector number)
函數(shù)名是 abs, 它將返回 number 的絕對值。絕對值是沒有正負數(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(%26lt3, -6.3, -2 返回 %26lt3, 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 坐標軸中指定的反正切弧度值。這個角是以 x 軸為一邊,另一邊是由原點和坐標系
中一點形成的直線構(gòu)成。返回的角以弧度為單位,范圍是 -pi 到 pi 。
float atan2(float y, float x)
x 是點的 x 坐標。
y 是點的 y 坐標。
例如:
atan2(1,1)
返回的是 0.785 弧度。
今天就寫到這,已經(jīng)很晚了,歡迎與我共同討論
to be continue
今天加上 math functions 的最后一部分,來結(jié)素這個話題。其他的函數(shù)由于他們比較好理解,就不做說明了。畢竟一個人的能力是有限的。有點對不住大家了。
atan2d
返回的是一個在 x,y 坐標系中指定的反正切角度值。返回的角以度為單位,范圍是 -180 到 180 度。
float atan2d(float y, float x)
x 是點的 x 坐標。
y 是點的 y 坐標。
例如:
atan2d(1,1)
返回 45 度。
hypot
返回的是從原點到在 x, y 坐標系點的二維向量值 .
angle
返回向量間的弧度角 .
float angle(vector vector1, vector vector2)
vector1 是一個向量。
vector2 是另一個向量。
返回角是兩個向量所夾角中的最小角,它通常小于 180 度。
例如:
angle(%26lt2,-1,1,%26lt1,1,2
返回 1.0472 弧度,它等于 60 度。
cross
返回由兩個向量定義的叉乘值。
對于兩個向量,叉乘值是由兩個向量定義而成的面的法線,
vector cross(vector vector1, vector vector2)
若叉乘值是 0 ,那么可能是兩個向量平行或在同一條直線上。若一個或兩個向量是 %26lt0,0,0 ,那么叉乘
值返回 %26lt0,0,0 。
vector1 是一個向量。
vector2 是另一個向量。
例如:
cross(%26lt1,2,-2,%26lt3,0,1
返回值是 %26lt2, -7, -6 。
dot
返回兩個向量的浮點點積。點積把兩個向量作為自變量并返回一個標量值。
float dot(vector vector1, vector vector2)
如果點積返回 0 ,那么兩個向量是垂直的。
vector1 是一個向量。
vector2 是另一個向量。
例如:
dot(%26lt1,2,-2,%26lt3,0,1
返回 1 ,這個例如的點積是 (1 * 3) + (2*0) + (-2*1), 它等于 1 。
mag
返回向量的值,它是向量的長度, float mag(vector vector)
vector 是所要得到數(shù)值的向量。
mag 函數(shù)使用下列公式把向量轉(zhuǎn)換為一個浮點數(shù)。
例如:
mag(%26lt7,8,9
返回值 13.928 。
rot
返回一個向量,它代表以指定軸旋轉(zhuǎn)一定弧度后點的位置。
vector rot(vector point, vector axis, float angle)
point 是在世界坐標系中點的位置。
axis 是點圍繞之旋轉(zhuǎn)的軸。這個軸是一條經(jīng)過原點的有指定方向的線。
angle 是點所旋轉(zhuǎn)的弧度。
例如:
rot(%26lt3,3,0,%26lt1,0,0,0.5)
返回值為 %26lt3, 2.633, 1.438 。這是一個向量,它是沿 %26lt1,0,0 的軸旋轉(zhuǎn) 0.5 弧度后點的位置在 %26lt3,3,0
的向量。
例如:
particleshape1.position = rot(position,%26lt0,1,0,0.1);
假定在場景中有一個單粒子物體,它的位置是 %26lt4,6,0 ,并為它的粒子形節(jié)點寫了上面的 runtime 表達
式。播放動畫時,粒子將沿 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(%26lt1,1,1
返回 %26lt0.577, 0.577, 0.577 。(完)
相關(guān)文章
如何將Maya首選項重置為默認值? 重置Maya首選項的技巧
Maya首選項是Maya軟件中的一組用戶可配置的選項,可以讓用戶根據(jù)自己的需要調(diào)整軟件的默認設(shè)置,下面我們就來看看重置Maya首選項的技巧2024-02-18- 啟動Maya軟件的時候,提醒:停止并顯示以下錯誤,然后軟件崩潰了,該怎么結(jié)解決呢?下面我們就來看看Maya崩潰的原因分析和解決辦法2024-02-18
maya控制手柄怎么創(chuàng)建IK? maya的IK表達式拉伸效果的設(shè)置方法
maya控制手柄怎么創(chuàng)建IK?maya建模的是偶,使用IK控制柄工具創(chuàng)建IK該怎么添加表達式做拉伸效果呢?下面我們就來看看maya的IK表達式拉伸的設(shè)置方法2023-02-28maya打不開fbx文件提示Unrecognized file type錯誤怎么辦?
maya打不開fbx文件提示Unrecognized file type錯誤怎么辦?maya導入fbx文件失敗,提示無法識別的文件類型錯誤,該怎么辦呢?下面我們就來看看詳細的解決辦法2021-10-29- maya一款專為游戲開發(fā)者和制片人專門設(shè)計。適合視效藝術(shù)家、建模和動畫師,今天小編就來教給大家一個簡單的教程,使用maya制作立體曲面2021-09-09
maya怎么創(chuàng)建絢麗多彩的煙花? maya煙花的制作方法
maya怎么創(chuàng)建絢麗多彩的煙花?maya中想要創(chuàng)建漂亮的煙花,該怎么制作這個效果呢?下面我們就來看看詳細的教程,需要的朋友可以參考下2021-01-08- maya怎么用phoenixfd插件制作逼真的火焰動畫?maya中想要制作逼真的火焰動畫,該怎么制作這個動畫效果呢?下面我們就來看看詳細的教程,需要的朋友可以參考下2020-12-08
maya模型上的數(shù)字怎么關(guān)掉? maya模型不顯示數(shù)字的技巧
maya模型上的數(shù)字怎么關(guān)掉?maya中的模型顯示數(shù)據(jù),想要關(guān)閉顯示數(shù)據(jù),該怎么操作呢?下面我們就來看看maya模型不顯示數(shù)字的技巧,需要的朋友可以參考下2020-11-02- maya怎么重建曲面?maya中想要重建曲面,讓模型更加圓滑,該怎么操作呢?下面我們就來看看maya重建曲面的方法,需要的朋友可以參考下2020-10-10
- maya骨骼不顯示怎么辦?maya文件打開以后發(fā)現(xiàn)骨骼隱藏了,我們找不到,骨骼被隱藏無非三種情況,自己被隱藏,父對象被隱藏,繪制樣式選擇了無,下面我們就來看看maya顯示骨2020-08-10