mayaでアニメーションしていて、「リグの形を変えたいなー」って時がありませんか?
私はあります。
てかリグを作ってる段階から、別の形に置き換えたいー
ってことは頻繁に発生します。
今回はそういった、
『リグの形を簡単に変えられるMELスクリプト』を作ってみました。
結論は以上です。
この『parent』コマンドを使うことで、リグを入れ替えることができます。
詳しく解説していきます。
【MEL】parentコマンドを使ってリグを入れ替えるやり方
四角い形を丸の形に変えたいと思います。
手順①シェイプノードを選択できるようにする
『ウィンドウ>アウトライナ>ディスプレイ>シェイプ』のチェックを入れる。
これでリグのシェイプノードが選択できるようになりました。
手順②各ノードを選択
1番目に『newRig』のシェイプノードを選択
2番目に『oldRig』のトランスフォームノードを選択
手順③MELを書いて実行
ウィンドウ>一般エディタ>スクリプトエディタでスクリプトエディタを開く
スクリプトエディタのMEL画面で、『parent -r -s』と入力し、MELを実行
oldRigのトランスフォームノードの下に、newRigのシェイプノードが来たら成功です。
最後にいらなくなった『oldRig』のシェイプノード、『newRig』のトランスフォームノードを削除すれば、リグの入れ替えは完了です。
簡単ですね!
【MELの解説】parentコマンドとは
このペアレントって操作に機能を追加したのが、『parent -r -s』ってことです。
【relativeとshape】フラグの説明
-rとは『relative』の略で、日本語に訳すと『相対的』です。
このフラグを立てることで、シェイプノードをペアレント化した時、親と同じ場所(相対キョリが0)に来てくれます。
relativeフラグを立てないとワールド空間でペアレント化されちゃうので、シェイプノードが親の場所に来てくれません。
シェイプノードを親と同じ場所に持ってきたかったら、relativeのフラグを立てましょう。
-sとは『shape』の略で、シェイプノードをペアレント化したいときは、このフラグを立てないとペアレント化できません。
面倒なのでMELを作った【ソース公開中】
上のやり方でリグを入れ替えることは出来ますが、入れ替えたいリグがたくさんある場合だと、かなり手間です。
面倒なことはスクリプトにまかせましょう。
※使用は自己責任でお願いします。
mayaでシェイプを入れ替えるMEL
//シェイプを入れ替えるMEL
proc KK_ChangeShape(){
$selObj = `ls -sl`;
$selShp = `listRelatives -f -typ nurbsCurve`;//シェイプノードを取得
parent -r -s $selShp[0] $selObj[1];
//---不要なトランスフォームノードとシェイプノードを削除--//
delete $selObj[0];
delete $selShp[1];
}
KK_ChangeShape()
シェイプ入れ替えツールの使用方法
シェイプ入れ替えツールの注意点
リグを入れ替えても、シェイプノードの名前は変わらないので注意してください。
現場によってはシェイプノードの名前にも、命名規則があったりするので、気になる人は各々でリネームしてください。
まぁ、最初からリネーム機能も実装しとけよって話ですが…
この辺の機能は随時追加予定です…
まとめ:【parent -r -s】でシェイプを入れ替えよう
このMELコマンドさえ覚えてたら、上記のスクリプトが無くてもシェイプを統合することは可能です。
汎用性の高いMELコマンドなので、覚えておいて損はないと思います。
ぜひ活用してください!
このような悩みを解決します。