包含30節(jié)視頻教程
當一個軟件有新版本的時候你會想到:朱峰社區(qū)!當你不知道新版本的新功能的時候:朱峰社區(qū)!當你遇到問題不好解決的時候:朱峰社區(qū)!沒錯!新功能!朱峰社區(qū)!
![]()
|
![]() 一提到表達式和 mel 語言,不少網(wǎng)友總是嘆氣。似乎這一類的東西是我們,尤其是非編程者遙不可及的。其實我也沒有學過 c++ 、 delphy 語言,和不少學習文科的朋友一樣美術才是我的專業(yè),F(xiàn)在也是如此。我想只要具有高中程度的數(shù)學、英語和物理知識,學習表達式動畫就足以了。三維的世界像海洋一樣,堅持下來,我們每個人都是采珍珠的勇士。 一functions-- 函數(shù) 首先我們來分析一下一段含有 maya 內(nèi)嵌函數(shù)的表達式語句 object.translatey=sin(time)+6; object 當前場景中要設表達式的物體 . 分隔符 translatey 屬性 = 指定運算符 sin 函數(shù) () 邏輯運算符 time 變量 + 數(shù)學運算符 6 常量 ; 終結符 目前要討論的范圍是以 sin 為代表的函數(shù),它們的作用是將物體按一定的特殊規(guī)律運動。上例中 object 從世界坐標軸的中心沿 y 軸以 sin 三角函數(shù)圖像運動規(guī)律進行往返運動。 二數(shù)學函數(shù)的用法 了解這一部分的內(nèi)容最好能夠參考高中教本關于三角函數(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(<<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 坐標軸中指定的反正切弧度值。這個角是以 x 軸為一邊,另一邊是由原點和坐標系 中一點形成的直線構成。返回的角以弧度為單位,范圍是 -pi 到 pi 。 float atan2(float y, float x) x 是點的 x 坐標。 y 是點的 y 坐標。 例如: atan2(1,1) 返回的是 0.785 弧度。 今天就寫到這,已經(jīng)很晚了,歡迎與我共同討論 to be continue 今天加上 math functions 的最后一部分,來結素這個話題。其他的函數(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(<<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 返回兩個向量的浮點點積。點積把兩個向量作為自變量并返回一個標量值。 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ù)使用下列公式把向量轉換為一個浮點數(shù)。 例如: mag(<<7,8,9>> 返回值 13.928 。 rot 返回一個向量,它代表以指定軸旋轉一定弧度后點的位置。 vector rot(vector point, vector axis, float angle) point 是在世界坐標系中點的位置。 axis 是點圍繞之旋轉的軸。這個軸是一條經(jīng)過原點的有指定方向的線。 angle 是點所旋轉的弧度。 例如: rot(<<3,3,0>>,<<1,0,0>>,0.5) 返回值為 <<3, 2.633, 1.438>> 。這是一個向量,它是沿 <<1,0,0>> 的軸旋轉 0.5 弧度后點的位置在 <<3,3,0>> 的向量。 例如: particleshape1.position = rot(position,<<0,1,0>>,0.1); 假定在場景中有一個單粒子物體,它的位置是 <<4,6,0>> ,并為它的粒子形節(jié)點寫了上面的 runtime 表達 式。播放動畫時,粒子將沿 y 軸旋轉成一個圓形圖案。 在每幀中,粒子旋轉 0.1 弧度,約為 5.7 度, unit 返回一個和向量相應的 unit 向量。 unit 向量具有和指定向量相同的方向,但是它的數(shù)量是 1 。 vector unit(vector vector) vector 是和 unit 向量相應的向量, 例如: unit(<<1,1,1>> 返回 <<0.577, 0.577, 0.577>> 。 贊3 踩3 |
![]()
|
![]() 好東西呀 不過好亂 贊5 踩5 |
未知用戶
2005-2025 朱峰社區(qū) 版權所有 遼ICP備2021001865號-1
2005-2025 ZhuFeng Community All Rights Reserved
VIP