Maya螺旋曲線MEL

2023-01-18 13:21:02 字數 2395 閱讀 6317

maya mel 教程之 mel 打造螺旋曲線

了解maya的人都知道maya本身不能夠建立螺旋曲線,這給我們在建模**線、彈簧等具有螺旋結構的模型時帶來了很多不便。那麼怎樣解決這個問題呢?就目前來看,主流的解決方法是採用外部外掛程式,但由於需要到國外**上**,普通中國使用者很難發掘到;而通過手動建立螺旋曲線的方法不僅方法笨拙,效率低下,而且在很多時候也很難滿足我們的工作要求。

今天小編就通過乙個簡單mel程式來達到我們的要求,也希望藉此拋磚引玉。

熟悉maya的人都知道,maya的任何一條命令都是乙個mel口令,例如我們在maya中建立一條樣條曲線,在maya的指令碼編輯器中就會顯示這樣的一條mel口令:「curve -d 3 -p -6.121508 0 6.

545092 -p -6.084318 0 -1.667924 -p -1.

898864 0 6.298442 -p 0.172602 0 -1.

310417 -p 2.51464 0 6.576429 -k 0 -k 0 -k 0 -k 1 -k 2 -k 2 -k 2 ;」而我們建立螺旋曲線的思路也正基於此。

首先看**:

string $command="curve -d 3";

for($i=1;$i<=100;$i++)

; eval $command;

解釋:第一行 —— maya的mel語言規定,變數前必須新增符號$。curve是mel命令,即建立曲線;-d定義曲線精度為3;該行的含義就是定義字串變數「$command」。

第二行 —— 執行for迴圈語句。定義整數$i,自增100次,其實就是表示有100個cv點。

第四行 —— 定義實數$x,並將5*sin($i)賦值給$x。而第五行、第六行的語法與第四行相同。在本例中,第四行、第五行、第六行是程式關鍵,其實這三行就是螺旋線的數學方程式。

第七行 —— 將字串合併,也就是獲得乙個建立曲線的完整表達方式,類似於:curve -d 3 -p -6.121508 0 6.

545092 -p -6.084318 0 -1.667924 -p -1.

898864 0 6.298442...

第九行 —— eval命令是求函式返回值,也就是將我們的程式計算結果輸出。這一步很重要,如果沒有這一步,使用者可能看不到你所建立的曲線。

總結:該mel程式的擴張性很強,使用者可通過修改螺旋線的引數,進而獲得其他形式的曲線。例如,當將螺旋線的半徑5修改為$i,則可以獲得圓錐螺旋線。

為方便大家以後的建模,現附上經過修改後的第三方外掛程式,源**:

global proc int helix_startsequence()

else

if($helpvar==1)

if($helpvar==2)

if($helpvar==3)

if($helpvar==4) helix_drawsphere($nm, $t, $r1, $prec);

if($helpvar!=4) helix_drawhelix($nm, $h, $t, $r1, $r2, $prec, $a, $k, $t0, $encs, $encr, $encp);

return 0;

} global proc int helix_checkname(string $name)

return $number;

} global proc int helix_drawsphere(string $name, float $turns, float $radius1, int $precision)

else curve -a -p $x $y $z $name;

} centerpivot;

move 0 $negradius1 0;

return 0;

} global proc int helix_drawhelix(string $name, float $height, float $turns, float $radius1, float $radius2, int $precision, float $amp, float $tms, float $ngl, int $encs, int $encr, int $encp)

else curve -a -p $x $y $z $name;

} return 0;

} global proc int helix_changestate(int $statnr)

if($statnr==2) }

if($statnr==0)

else }

return 0;

} global proc int helix_exitwindow()

global proc helix()

使用方法:

首先將該**拷貝到你的指令碼編輯器中,然後ctrl+回車鍵執行,最後在mel命令欄(maya視窗最下方)中輸入helix回車,即可得到下圖「建立螺旋曲線」視窗。

maya授課計畫

第1章初識maya 1.1 maya概述 1.1.1 maya工作流程 1.1.2 maya應用領域 1.1.3 專用術語簡介 1.2 maya工作環境 1.2.1 認識maya介面 1.2.2 檢視布局簡介 1.3 自定義工作環境 1.4 建立物件 1.5 編輯物件 1.5.1 選擇操作 1.5....

maya渲染設定

maya渲染設定性格本身沒有好壞,樂觀和悲觀對這個世界都有貢獻,前者發明了飛機,後者發明了降落傘。maya渲染設定1 render globals render globals 包括十三組引數 image file output 引數組指明渲染輸出檔名 檔案格式 渲染時間範圍 場景中被渲染的內容 使...

Maya實訓報告心得

經過乙個星期的努力,戰斧模型做成了。這段時間集中的練習maya,我感覺自己製作模型的水平有了一定的提高,但還存在著許多的不足。比如說,建模的速度比較慢,有些命令不會用,導致製作模型時個別細節達不到滿意的效果。後來經過老師和同學的幫助,也能做出來了。開始選擇製作模型時,我就想既然時間充足,我就要下功夫...