ついに会社の人に、このブログの存在がばれてしまった。。。
別に隠していたわけではないけども、恥ずかしいものです。。。(汗
こっぱずかしいので、名前もニックネーム表示に変更!でい!
…まあ、それはそれとして、本題です。
表題の件。
会社で割と要望が多い「コンストレイント逆転mel」です。
難しい処理ではないですが、せっかくなので、簡単に作ったソースをUPしておきます。
--------------------
使い方・挙動について
①melを立ち上げます。
②コンストレイントでつながっているノードを選択
③ボタンを押します。
④コンストレイントが逆転します。
・pointConstraint、orientConstraint、scaleConstraintそれぞれの元ソースのノードに
コンストレイントがつなぎなおされます。
・オフセット設定です。
近いうち、オプション設定を作って、ウインドウ上でオフセット設定や、
対象のコンストレイントの選択など、行えるようにしようと思います。
とりあえず、、、な感じですが、上げておきます。
----------------------
proc REVERSE_CONSTRAINT(){
string $NODE_LIST[] = `ls -sl`;
string $NODE_NAME;
if(size($NODE_LIST)>0){
for($NODE_NAME in $NODE_LIST){
string $pointConstraint_LIST[] = `pointConstraint -q -tl`;
string $orientConstraint_LIST[] = `orientConstraint -q -tl`;
string $scaleConstraint_LIST[] = `scaleConstraint -q -tl`;
string $TAGET_NODE;
//pointConstraint
if(size($pointConstraint_LIST)>0){
delete `pointConstraint -q -n`;
for($TARGET_NODE in $pointConstraint_LIST){
pointConstraint -mo $NODE_NAME $TARGET_NODE;
}
}
//orientConstraint;
if(size($orientConstraint_LIST)>0){
delete `orientConstraint -q -n`;
for($TARGET_NODE in $orientConstraint_LIST){
orientConstraint -mo $NODE_NAME $TARGET_NODE;
}
}
//scaleConstraint;
if(size($scaleConstraint_LIST)>0){
delete `scaleConstraint -q -n`;
for($TARGET_NODE in $scaleConstraint_LIST){
scaleConstraint -mo $NODE_NAME $TARGET_NODE;
}
}
}
}
}
if(`window -q -exists REVERCE_CONSTRAINT`)deleteUI REVERCE_CONSTRAINT;
window -s 0 REVERCE_CONSTRAINT;
columnLayout -adj 1 ;
text -l "Select Constrainted Node,and press Button."
separator;
button -l "Reverce Constraint" -c REVERSE_CONSTRAINT;
setParent..;
showWindow REVERCE_CONSTRAINT;
0 件のコメント:
コメントを投稿