D日記

ゲーム開発者っぽい記事とか。生活の記事とか。

MENU

【MEL】ボックスコントローラーを作成し選択ノードに位置・回転を合わせる

こんにちは、最近 ゴッド・オブ・ウォー をやりすぎて妻にキレられたですぽんたです(^_^)

今回は、リギング作業時にあると便利なスクリプトを作ってみますた!

目的

リグを手動で組む時に、選択した骨の位置にコントローラーを配置するという作業がわりとあったりします。

私の場合は、


1.コントローラー作成(NurbsCurve)
    ↓
2.2重グループ化*1
    ↓
3.骨の位置にスナップ(場合によっては回転合わせをする)
    ↓
4.親子階層整理


といった順序でリグの配置を行うことが多いです。


ただ、これを毎回やるのは面倒くさいですよね(笑)
この面倒くさい手順をボタン一発で解決するのがこのスクリプトです。

機能

・nurbsCurve のボックスコントローラーを作成。
f:id:ponta565:20180513191638p:plain
・コントローラー名は、「rig_」+「選択オブジェクト名」となります。
f:id:ponta565:20180513210058p:plain
・コントローラーは2重グループ化されます。
f:id:ponta565:20180513205930p:plain
・作成したコントローラーを指定した親にペアレント。
 → 指定しない場合は、ルートに作成。
・コントローラーのサイズを決められる。

スクリプト

下記スクリプトをMayaのコマンドパネルにコピペしてEnter(たぁぁぁん!)

ボックスコントローラーを作成し選択ノードに位置・回転を合わせる


f:id:ponta565:20180513221014g:plain


おわり。

*1:2重グループ化をする理由は、コントローラーのトランスフォームを初期状態に保ちたいのと、オフセットノードを設けることで、リグのカスタマイズ性を上げる目的があります。例えばオフセットノードにノイズコントローラーを適用させたりとか。