Maya Advent Calendar 2018 12月23日の記事です。
明日24日分の投稿予約を済ませました!
時間もあるのでライトなリグのTipsを載せておきます。
曲げ回転を得る
三次元回転は分解ができます。
三次元回転をそのまま利用するといろいろ難しい問題が出てきます。
この辺を細かく解説する力量は私にはないので、
回転は曲げ/捻りに分解できるよ!ということだけにしておきます。
詳しくは、ryusas氏のmaya_rotationDriverが参考になります。
上記は高度なので一旦は回転から曲げ回転だけ抽出してみましょう。
シーン構築
利用するのは以下のノードのみです。
ノード名 | 説明 |
---|---|
src_joint | コントローラーとなるノード。自由な三次元回転。原点に作成。 |
src_jointEnd | src_jointの子供。TranslateXに5が入っています。 |
dst_jointBend | src_jointから曲げ回転だけ抽出したもの。同じく原点に作成。 |
src_jointBendEnd | src_jointBendの子供。TranslateXに5が入っています。 |
aimConstraintノードを作る
抽出するにはaimConstraintノードを利用します。
aimConstraintは目標物を追いかけるような挙動にしてくれるノードです。
aimConstraintの回転には捻りが含まれていないので、aimConstraintを使えばサクッと実現できます。
ちなみにMayaのメニューにあるaimConstraintコマンドは利用しません。
ノードエディターからtabキーでクリエイトして作ってコネクションしていきましょう。
作ったaimConstraintノードは「bendConstraint」という名前に変更しました。
コネクションの作成
SetAttr
bendConstraint.worldUpType.set(4)
bendConstraint.target[0].targetTranslate.set(1,0,0)
コネクション
src_joint.matrix >> bendConstraint.target[0].targetParentMatrix
bendConstraint.constraintRotate >> dst_jointBend.rotate
結果
わかりにくいですが…。
src_jointBendが一緒に動いています。
次のステップに向けて
曲げ回転を抽出できたので、捻り回転も取り出したいですよね。
捻りは「元の回転 - 曲げ回転 = 捻り回転」です。
次のAdventCalenderの時にでも…ってかなり先だー!
それでは!