MAYA デフォーマーをNURBSコントローラーで制御させる方法。

20141210_maya_deformer_control_00

MAYAで形状を変更する為にデフォーマーを追加したら、それ単体でchannelから操作できますが、もっと直感的に操作したい場合は「コントローラー」が非常に便利で、これがなくてはアニメーターは素早くアニメーションを付ける事が出来なくなりますので「コントローラー」を使って制御する事は必須項目なんです!

今回は試しに長方形のジオメトリーに「Twistデフォーマー」を追加して、ねじる動作をコントローラーとするNURBSで制御させてみたいと思います。

polycubeからheight10、Subdivisions Height10にして長方形を作り、それを選択した状態でCreate deformersからNonlinear→Twistを選択します。色々なデフォーマーについてはまた今度記事にします。
20141210_maya_deformer_control_01

twistデフォーマーを選択して、channelboxを開くと、こんな感じのパラメーターがありますので、End Angleに数値をいれるとねじれます。今回はこの「ねじれ」を一々数値をいれないで「コントローラー」を作り著感的に操作出来るようにします。
20141210_maya_deformer_control_02

コントローラーはNURBSで作る。

制御するコントローラーはNURBSで作ります。NURBSのメリットとしてはレンダリングしても反映されないんです。なので、NURBS primitives→Circleで円を作ります。
20141210_maya_deformer_control_04

円のままでもいいけど、DegreeをLinerの直線的にして、Sectionsを4にして四角形を作ります。ここを調整すると三角形を作ったり多角形を作る事も出来ますよ。
20141210_maya_deformer_control_05

で、作ったのがこれです。
20141210_maya_deformer_control_06

ジオメトリーの真ん中よりも、上からねじってる感じなので、コントローラーを上に移動させます。
20141210_maya_deformer_control_07

コントローラーはフリーズをゼロに!ヒストリーを絶対削除する!

とっても大切な事!!これ絶対!!

コントローラーというのは、「常にその場所にあり続ける位置に置いとかないと行けません」今回はRotateさせてtwistさせるので、Rotate以外の数値は特に問題なく見えますが、TranslateのYに数値が入ってると、このコントローラーの基準となってる場所はどこなんだ?という事になります。本当だったら5.35上に上がった場所を原点としたいので、ここを0にする必要があるんです。

多分これはやってみないと分からない部分ですかね・・・。

なので、ModifyからFreeze Transformationsで全ての数値を0にする必要があるんです。
20141210_maya_deformer_control_08

コントローラーとデフォーマーを繋げる方法

現状あるのは、コントローラーとして作ったNURBS、twistデフォーマー、それにジオメトリーの3つがあります。

コントローラーとして作ったNURBSをY軸に回転させる事により、twistデフォーマーのEnd Angleにも数値が入り、長方形がねじれるという動作を作りたいんです。ではどうやって作るかというと、

window→Hypergraph:Connectionsを選択。
20141210_maya_deformer_control_09

するとこんな感じで複雑に接続されてるノードが表示されます。僕はこれが大の苦手・・・。何がなんだかサッパリですよね。
20141210_maya_deformer_control_10

しかしよく見ると、コントローラーとして先ほど作った、nurbsCircleと、twistノードがあるのが分かります。この二つをくっつけてやれば動作するようになるんです。
20141210_maya_deformer_control_11

Hypergraph:Connectionsでの繋げ方

まずは、nurbsCircle1の文字右側にマウスをもっていくと、変わった矢印マークになります。そこで右クリックからrotate→rotateYを選び、コントローラをY軸に回転させたらどうなるかという部分を作ります。
20141210_maya_deformer_control_12

Y軸を回転させたら、twistのendAngleに数値が入るようになりたいので、線を引っぱり、twist1の上で左クリックするとendAngleが表示されるのでそれを選択。
20141210_maya_deformer_control_13

すると、NURBSを動かすと、長方形の形状のendAngleにも数値が入り動く様になりました。
20141210_maya_deformer_control_14

しかし、NURBSを時計回転しても、オブジェクトは半時計回転で、思った方向に動かないのがアニメーションしづらい原因となり、とても使いづらい!!
20141210_maya_deformer_control_15

コントローラーとは反対に動く動作をMultiply Divideで正常にする!

反対に動く動作。このままでも動かせるには動かせるが、動かしづらいのでそれを直す方法があります。

現在どうなってるかというと、

NURBSを時計回転すると、オブジェクトは半時計回転。
NURBSをマイナス方向に回転させると、twistにもマイナスの数値が入る。
しかし、それでは進行方向と逆に回転してしまうので、このtwsitがマイナス方向じゃなくプラス方向に回転すると、進行方向通りになる。マイナスをプラスにするには、マイナスを掛ければプラスになる。それが出来るのが、Multiply Divideというノードです。

先ほど表示させてた、Hypergraph:Connectionsから何も無い所で右クリック→Rendering→Create Render Node…を選択、
20141210_maya_deformer_control_16

すると、見覚えのあるHypershadeの左側だけが表示されるので、そこから「Multiply Dvide」を選択。Multiply Dvideはかけ算や割り算をする事が出来るノード。これをコントローラーとtwistの間に挟めます。
20141210_maya_deformer_control_17

選択すると、こんな感じで追加されます。
20141210_maya_deformer_control_18

改めて、NURBSカーブを右クリック→rotateからrotateYを選択、
20141210_maya_deformer_control_19

線が延びるので、
20141210_maya_deformer_control_20

Multiply Dvide上で左クリック、input1→input1Yを選択、
20141210_maya_deformer_control_21

Multiply Dvide上で右クリック、output→outputYを選択、
20141210_maya_deformer_control_22

twist1にendAngleで接続。
20141210_maya_deformer_control_23

全部選択したのに線が繋がってない!という時でもちゃんと動作します。線が見えてないだけです。表示させたいなら、hypergraphのGraph→input and output connectionsを選べば線が表示されます。

マイナス数時を掛けてプラスにします。

Multiply Dvideを選択して、Multiply Dvideのアトリビュートを表示、Operationはかけ算のmultiply。input2の左からX・Y・ZのY部分の真ん中の数字を-1にします。すると、input1で入って来た数字をinput2で-1を掛ける事によりプラス方向に回転させる事が出来る様になるという訳です。
20141210_maya_deformer_control_24

こんな感じで正常になりました。
20141210_maya_deformer_control_25

Multiply Divideノードの応用

-1を掛ければ、プラスになるので、コントローラーを移動させた時に、デフォーマーで変形される数値を大きくしたい場合にもMultiply Divideは使えますよ!

たとえば、bendを設置した長方形。input2が1だとこの変形具合ですが、
20141210_maya_deformer_control_27

ここに20をいれると同じコントローラーの移動距離なのにbendの効果を大きくする事が出来ます。これは使えるねえ!!
20141210_maya_deformer_control_26

ちなみに現在この本を読んで勉強中ですが、リグ初心者でもとても分かりやすくておすすめの書籍。アマゾンレビューが好評価なのもうなずけます。
Mayaリギング -正しいキャラクターリグの作り方-

シェアする

  • このエントリーをはてなブックマークに追加

フォローする