2011年5月12日 星期四

[小程式] 在兩個物件中綁一條示意曲線


以下的小程式可以把一條曲線綁(constrain)在兩個物件的基準點之中,可用來當做視線或polevector方向的示意工具。

使用方法:先選兩個物件,然後執行以下的 MEL 或 pymel 程式。


MEL 版本 :
{
string $sel[] = `ls -sl`;
if(size($sel)>1)
{
string $startPoint = $sel[0];
string $endPoint = $sel[1];
string $distCurve = `curve -d 1 -p 0 0 1 -p 0 0 0`;
string $startCluster[]= `cluster -rel ($distCurve+".cv[0]")`;
string $endCluster[]= `cluster -rel ($distCurve+".cv[1]")`;

pointConstraint $startPoint $startCluster[1];
pointConstraint $endPoint $endCluster[1];
}
}


Pymel 版本 :
from pymel.core import *

sel = ls(sl=1)

if len(sel)>1:
startPoint = sel[0]
endPoint = sel[1]

distCurve = curve(d=1,p=[(0,0,1),(0,0,0)])
startCluster = rename(cluster(distCurve.cv[0],rel=1)[1])
endCluster = rename(cluster(distCurve.cv[1],rel=1)[1])

pointConstraint(startPoint,startCluster)
pointConstraint(endPoint,endCluster)




使用範例:

6 則留言:

  1. 前輩您好~~ 我對寫mel還滿有興趣的~前輩寫的mel 有好多都讓我在功作中節省很多時間 ~ 真是非常的厲害與嚮往~自己也有想投入這個領域~~所以想請教一下~是不是會寫mel 的待遇會好很多呢~可能會在多少K附近呢~真不好意思~經濟壓力真不小~~所以想請教一下~願前輩能夠解惑~~晚輩實在感激不盡~~你的網誌真的超讚的!!~

    回覆刪除
  2. Hi,
    我的看法是,3D 基本上是個以結果為導向的行業,所以如果你可以利用mel 來加速製作過程的話當然是個加分,但前提就是你先要有能力製作出很棒的成品。至於能反應多少K的待遇上,那就很難講了,要看面試你的人重不重視這種才能。經濟壓力如果不小的話,可能要考慮其他行業囉 XXD

    回覆刪除
  3. 哈~前輩~真是感謝您的回覆~換行其實也是想過ㄋㄟ~噗~但是好像就是不太想換吧~呵呵~我想我還是會繼續努力的!!~非常感謝您哦!~超讚的網誌!!~

    回覆刪除
  4. 前輩你好~我從網路上找不太到可以學習python pymel的資源~不知道前輩知不知道是不是有書推薦可以買來學習呢~~您又是如何學習的呢~~感謝您的解惑哦~~

    回覆刪除
  5. Hi 你好,
    Sorry 回的有點晚,我基本上是自學的,因為網路上的教學真的不多,尤其是中文教學。我覺得如果要學pymel 就是要從 python 基礎開始學,才會比較好懂.

    回覆刪除
  6. 喔!~^^~真是感謝您的指點~我也好不容易開始從python入門了~~真是有趣呢~~希望我也能寫出好用的工具!~^^~

    回覆刪除