【Mayaあるある】ジョイントの方向付け(Orient Joint)の設定がいまいちわからない

ジョイントの軸は子を向いていることが理想なので、その設定をするための ジョイントの方向付け(Orient Joint) 。
少々設定がわかりにくく、特に補助軸(Secondary Axis) ってあいまいだったりしませんか?
そのあたりの解説です。
ジョイントの方向付け(Orient Joint)の場所
ジョイントの方向付け(Orient Joint) は、
メニューセットを リギング(Rigging) に切り替えたメニューの、
スケルトン > ジョイントの方向付け (Skeleton > Orient Joint) にあり、


右の□アイコンで、メニューが開きます。


主軸(Primary Axis)
主軸(Primary Axis)は、何軸を子のジョイントに向けるかを設定します。
ジョイントをワールドへ方向付け(Orient Joint to World) を OFF にし、
主軸(Primary Axis) を X にして、
適用(Apply) ボタンを押すと、
選択したジョイントのローカルX軸が子の方向を向きます。

だいたい場合、X軸を子に向けることが多いと思います。
※プロジェクト等の仕様に従ってください。
補助軸(Secondary Axis)
補助軸(Secondary Axis)は、補助軸のワールド方向(Secondary Axis World Orientation) とセットで考え、
主軸の向きは保ったまま何軸を何軸に向けるかを設定します。

下記は、デフォルト設定で実行した状態です。
ワールド空間の軸にも注目してください。

例えば、
補助軸(Secondary Axis) を Y、
補助軸のワールド方向(Secondary Axis World Orientation) を Z + にして、
適用すると、
Y軸がワールド空間のZ+方向を向きます。
(主軸のX軸が固定されているので完全には向きませんが、可動域内で向きます。)

試しに、
補助軸のワールド方向(Secondary Axis World Orientation) を - に変更して、
適用すると、
Y軸がワールド空間のZ-方向を向きます。

また、
補助軸(Secondary Axis) を Z、
補助軸のワールド方向(Secondary Axis World Orientation) を Y - にして、
適用すると、
Z軸がワールド空間のY-方向を向く、

といった結果になります。
補助軸(Secondary Axis) を なし に設定した場合、
ジョイントの折れ曲がった方向が常にZ軸を回転させることで曲がる状態になるようです。

軸の向きではなく回転方向に注目。
主軸Xの時はZですが、主軸が変わると回転軸も変わります。
MEL紹介
通常上記のような設定で方向を調整していくのですが、
実際のところ、「よく曲げる軸はY軸回転で統一させたいんだけどなぁ・・・」のように
ジョイントの向きよりも、何軸で回転させたいかが重要なことが多いと思います。
そこでスクリプトを作成しました。

折れ曲がったジョイント方向を何軸で回転させたい、というアプローチでジョイントの方向付けができます。
こちらのページからダウンロードできます。
【MEL】折れ曲がっている方向にジョイントの方向付け
先端の方向
エンドボーンなどとも呼ばれる先端のジョイント方向は、フリーズを行うことで設定できます。
修正 > トランスフォームのフリーズ (Modify > Freeze Transformations) のオプションを開き、
ジョイントの方向(Joint orient) が ON の状態で、
エンドボーンに対してフリーズを行うと、親の方向と同じ向きに設定されます。

tag : Maya, ジョイント, スケルトン, AriJointBendOrient,
スポンサーリンク