Mayaでコントローラー作成

コントローラー作成MayaでRigging

Mayaを長年使ってきて疑問に思うことがあります。それは「なぜこんな(簡単な、技術的に難しいわけでもない)ことが標準機能として搭載されていないのか?」ということです。その筆頭格といえるのがリグのコントローラーを作成する機能です。このことこそがMayaでRiggingの敷居を高くしている最たるものだと思います。softimage(XSI)ではNull(MayaでいうLocatorのようなもの)のシェイプを立方体や球、矢印などいくつかの形状に変更することが出来ました。いずれMayaにも‥と期待していた時期もありましたが、もう諦めました(笑)。ネットで探せばコントローラーを作成するスクリプトを見つけることが出来るので問題ないと言えば問題ありません。また、Mayaとしては「Empty Groupというtransform nodeだけのものを用意してあるので、そこにユーザーで作ったshape nodeを使えるようにしてありますよ」という言い分なのは今となっては理解できなくもないですが、面倒で使い勝手が悪いことには変わりはありません。

スポンサーリンク

shape nodeをまとめる方法

リグのコントローラーにはNURBS Curveを使います。Create > NURBS Primitive > Circle で作成される一本のカーブで作成されたものは問題なくそのままコントローラーとして使用できます。しかし、 Create > NURBS Primitive > Square で作成されたものは4本のカーブをグループにまとめたものが作成されるのでこのままでは利用できません(カーブを選択しても1辺しか選択されません)。そこで1辺を選択してもひとつのNURBS Curveとして選択されるようにしなければなりません。つまり、ひとつのTransform nodeに複数のShape nodeをまとめなければなりません。

OutlinerでShape nodeを表示できるようにする

OutlinerのDisplayメニューでShapeにチェックを入れます。これでTransform nodeとShape nodeが表示されるようになります。

コントローラーのもとになるカーブを作成

今回はnurbs sphereを作成(Create > NURBS Primitive > Sphere)してそれをコントローラーにします。出来たnuurbs sphereを選択してコントローラーになるNURBSカーブを複製します( (menuをModelingに切り替えて) Curves > Duplicate Surface Curves) 。

そしてnurbs sphereは必要なくなったので消します。

カーブをまとめるためのEmpty Groupを作成

Create > EmptyGroupでnull(空グループ)を作成します。

melコマンドでnullにカーブをまとめます

念の為すべてのカーブのTransform nodeにModify > Freeze Transformationをかけておきます。

上の画像のようにコントローラーにしたいカーブのシェイプノードだけを選択し、最後にまとめるためのnull(トランスフォームノード)を選択します。

以下のmelコマンドを左下のMELという欄に入力して実行します。-rはrelative、-sはshapeです。詳しくは公式のヘルプを御覧ください。

parent -r -s

mel版よりも記述する文字数は多いですが、「今更melは‥」という方はPython(maya.cmds)版をご利用ください。 コマンド入力欄がPythonになっていることを確認して以下のよう入力してください。

maya.cmds.parent(r=True, s=True)

上の画像のように残ったゴミは消します。

完成です

ひとつのTransform nodeに複数のカーブのShape nodeがあるのがわかります。

ここまで書いておいて言うのもあれですが、シェイプノードだけを選択する場合はHypergraphのほうが楽でした。Hypergraph HierarchyのOption > DisplayからShape Nodesにチェックを入れてください。

これでどのようなコントローラーも作成できるようになりました。テキストを使ったものなどいろいろ作ってみてください。

ボックスコントローラーを作成する場合

上に書いたShape nodeをまとめる方法でどのようなコントローラーも作成可能ですが、よく使うボックス型のコントローラーを作成する場合にはもう少しスマート(というほどのことではありませんが)な方法があります。

上のShape nodeをまとめる方法(Create > NURBS Primitives > Cube で作成したnurbsCubeのShapeをまとめた場合)だと上の画像で赤字で囲ったようにShapeの数が多すぎになってしまいます。見た目としてとても美しくないものが出来上がってしまいました。

しかし、polygon cubeを作成してその頂点にEPカーブ(1 Linear)をcubeの頂点にスナップさせて一筆書きでカーブを作成すれば当然のことながらShapeは1つで済みます。

このようにcubeを一筆書きすると同じところを通らなければなりません。もしかしたら、線(nurbsカーブ)が太くなったり、2本になったりしないかと心配する人がいるかもしれませんが、その心配はありません。

そんなことをしなくても‥

非常にタイムリーなことに、そのような面倒なことをしなくても3D人さんのブログに無料スクリプトが紹介されていました。これを使えば万事解決ですが、Transform nodeとShape nodeなど、Mayaを使う上で重要な仕組みを理解できるので一度は自分自身で作成することをおすすめします。

ShapeMerge for Autodesk Maya - リグコントローラー作成に使える!カーブをサクッと結合するための無料ツール!
テクニカルアーティストOrkhan Ashrafov氏による、複数カーブを手軽に結合できるMaya用ツール「ShapeMerge for Autodesk Maya」!無料です。

実作業では

実作業ではコントローラーをいちいち作っていては手間がかかってしまうので、コントローラーを作成するスクリプトを利用することをおすすめします。

mocoさんが「rig101 Wire Controllers(MEL SCRIPTSの「rig101 Wire Controllers」をダウンロードしてください。)」を紹介されています。

Maya-コントローラー用シェイププリセット!フリースクリプト「rig101 Wire Controllers」
この記事ではコントローラー用シェイプのプリセットスクリプトrig101 Wire Controllersとそのスクリプトを配布しているRigging101をご紹介します。 リグ制作やアニメーションで

コントローラーを作成するスクリプトは他にもいろいろあるので探してみると面白いかもしれません。

追記(2020/04/22)

「海外のサイトだと英語が‥」という方も多いかと思います。「やはり国産のもののほうが安心」という方はAmaterasuというMayaのプラグインがおすすめです。

Create Controller | KIWAMIDEN
概要 リグに必要なコントローラーの作成をサポートするツールです。 使い方 作りたいシェイプをクリックします。 必要に応じて設定し、作成します。 オプション Method 作成モード(Signの場合はプラグインを使用します) Naming 作成する名前。 Radius シェイプの大きさ Color シェイプの色 Pare...

Amaterasuは以前はBorndigitalさんでサブスクリプション契約をしていないと使用できなかったのですが、今は無料で公開されています(すばらしい!!)。

Amaterasuはコントローラーを作成する機能以外にも無料とは思えないほどの機能が盛りだくさんです。使い方ももちろん日本語で書かれているので安心です。

Amaterasu | KIWAMIDEN
Amaterasuは、「ツール」「プラグイン」をまとめたMaya向けのツールパッケージです。 Mayaは高機能な3DCGソフトですが、作業をしていると色々な不満な点がでてしまいます。 あー!まじこの作業めんどくさい! この機能微妙!ホントヤダッ! プログラムでこんなの作れない? こういった現場の声をもとに、少しでもMa...

Amaterasuのような高機能プラグインの紹介の後に書くのもあれですが、スクリプトの勉強をしている人はコントローラーを作るツールを作ると勉強になると思います。Windowの作り方や、ボタンを押したときにコントローラーが作成されるようにするなど、勉強になる要素ばかりです。向学心のある方はぜひ。

Follow me!

コメント

PAGE TOP
タイトルとURLをコピーしました