if $cmdNameField>54321 || $cmdNameField<12345; Warning(\你输入出错了\
text -l \
string $win=`showWindow compleleWin`;
int $a1,$b2,$c3,$d4,$e5,$all,$inputbox; string $t1,$t2,$t3,$t4,$t5;
string $B[]={\朋友\事业\家庭\性\金钱\ $a1=$all/10000;
$b2=($all-$a1*10000)/1000;
$c3=($all-($a1*10000+$b2*1000))/100;
$d4=($all-($a1*10000+$b2*1000+$c3*100))/10;
$e5=($all-($a1*10000+$b2*1000+$c3*100+$d4*10); switch ($a1) {
case 1:
$t1=$B[1]. case 2:
$t1=$B[2]. case 3:
$t3=$B[3]. case 4:
$t4=$B[4]. case 5:
$t5=$B[5]. break; }
switch ($a2) {
case 1:
$t1=$B[1]. case 2:
$t1=$B[2]. case 3:
$t3=$B[3]. case 4:
$t4=$B[4]. case 5:
$t5=$B[5]. break; }
switch ($a3) {
case 1:
36
$t1=$B[1]. case 2:
$t1=$B[2]. case 3:
$t3=$B[3]. case 4:
$t4=$B[4]. case 5:
$t5=$B[5]. break; }
switch ($a4) {
case 1:
$t1=$B[1]. case 2:
$t1=$B[2]. case 3:
$t3=$B[3]. case 4:
$t4=$B[4]. case 5:
$t5=$B[5]. break; }
switch ($a5) {
case 1:
$t1=$B[1]. case 2:
$t1=$B[2]. case 3:
$t3=$B[3]. case 4:
$t4=$B[4]. case 5:
$t5=$B[5]. break; }
string $win1=`window -t \心理测试\columnLayout;
text -l \你对待金钱,事业,朋友,家庭,性的次序为:\text -l \showWindow $win1;
37
if $inputbox>54321 || $inputbox<12345; Warning(\你输入出错了\
if(`window -ex testWin`) deleteUI testWin; window -t \心理测试\
columnLayout;
text -l \?假如你遇到这几件一起发生,你会如何处理呢?? \\n\text -l \把你处理这件事的次序填入方框内按开始测试即可.如:15324。\\n\ text -l \门铃响了。 \\n \ text -l \电话铃也响了。 \\n\ text -l \孩子哭了。 \\n\ text -l \下雨了,外面的衣服没收。 \\n\ text -l \水池的水涨出来了。 \\n\
textField -w 200 -h 20 -tx \
button -l \开始测试\showWindow testWin;
expression 教學 (一)
記得曾在一本雜誌上看到一篇文章, 它上面是寫一對未來動畫人員的看法跟分析. 然後我看到了一段得它寫的很有道理. 它上面指出, 一個好的動畫師不是只是key 調的漂亮, model 建的好而已. 未來要的是能夠讓自己更有效率的去做這些事. 而這些要如何去達成哩? 就是去靠程式去控制. 而且是自去設定的程式.
Maya 它是一套非常強大的軟體. 因為它有很開放的程式開發功能. 所以能力夠強的話, 要去修改整套軟體並不是不可能的.
expression 它是一個在maya 應用非常廣泛的東西. 不論是對animation, particle, blean shaple,link. .... 等都能夠去接觸到.
而expression 的進階則是mel 了. 因為expression是用來控制單一或多數屬性(attribute). 而mel 則以當做是一個plug-in 來用. 簡單的mel 可以把它當maya 的\批次檔\例如說關閉檔案然後在新開一個檔案, 然後在座標0,0,0 的位置create 一個light...等一連串的動作就可以設一個mel 來解決.
因為expression 是比較基本而且常用的. 所以我先 由expression 來講起.
一. attribute:
因為expression 它是對attribute 去下控制. 所以我們要先瞭解attribute 的意思. 例1: 我們先在場景中建立一個nurbs 的球. 以下是這個球的一個attribute.
nurbsSphere1.translateX
nurbsSphere1 = 這顆nurbs 球的名子. translateX = 座標軸\
而那一個\可以把它稱為\的\意思.
所以整個意思為\這的名叫nurbsSphere1的座標軸X\
所以它的格式為\的單一屬性\
可以理解嗎?
二.setup attribute:
假如我們現在想告訴maya 說這顆球的位置軸\為\的話, 該要如何做哩? 以下是為語法: nurbsSphere1.translateX = 3;
因為Maya 的語法跟c 語言很相似. 所以當下完一行述之後, 就要加個\來代表結束.
38
因為是要指定nurbsSphere1的translateX為3, 所以用個\來指定. 就跟數學很像吧? 所以整句兜起來念就是為 \的translateX等於\這一行就到此結束\還可以理解吧?
expression 教學 (二)
序: expression 跟c 語言一樣, 當一句描述式描述完了之後, 就要加一個\以來表示. 當假如一段描述式描述完之後忘了 打上分號的話, 就會出現Error: Syntax error 的錯誤訊息. 1. if
if 的中文意思即為\假如\之意, 它的描述方式是: if (condition) // if (條件) statement; // 做何事!! (自掰的) 範例 1: int $a = 10; if ($a > 5)
print (\
解釋: 定義一個整數的變數, 當變數大於5 的話, 就秀出字 串show me the money. (+\即為換行之義) 範例 2: int $a = 10; if ($a > 5) {
print (\ print (\ }
解釋: 意思如同上, 但最大的差異為因為有兩行 \做何事\ 所以if 的判斷式之後要加\表示是多個這個判斷式 假如成立的話, 是要執行多個\做何事\範例 3: int $a = 1; if ($a > 5)
print (\ else
print (\
解釋: 這裡多了一個else 的附加判斷式. 而else 的意義為 當假如if 這一條件不成立的話, 就會執行到else 裡的描述啦! 可把else 叫\要不然\
結論: if 是寫程式之中最常用到的function . 而它最主要的是 用來判斷一些的條件. 例如: 1.
if (time >2 ) a.tx = 10;
其意思為假如時間超過2 秒的時候的話, a的物件之x 軸就會變成 10.
39
2.
if (time >5 && time <10 ) a.tx = 10;
其意義為當時間大於5. 以及(&& = and) time 小於10 的話, (即 為5 到10 秒之內, a的物件之x 軸才會變成10.
注意: 在if 的條件裡千萬不能用到 = 的運算符號. 因為= 之意為
給予定義之意. 而if 它所需要的是判斷. 而不是給予. 請看下面的例子. int $a = 10; if ( $a = 5 ) a.tx = 10;
如此一來, 這判斷都將是成立的. 因為它沒有比較的條件. 所以不管 如何, 都會執行到\做何事\其更正的方式如下: int $a = 10; if ( $a == 5 ) a.tx = 10;
\才是一個比較的判斷. 2. switch
switch 的意思為依照數值而去執行某一個\事情\其語法為:
switch (control-value) {
case value1: statement; statement; ... break; case value2: statement; statement; ... break; case value3: statement; statement; ... break; ... default: statement; statement; ... break; }
解釋: 當control-valut 滿足case 的條件時,就會跑到那個case \事情\去執行.
40