2016/02/15

mayaのスケーリングについて

mayaでのスケールは複雑怪奇。
あまりスケールにキーを打つことはありませんが
キャラクターにスケールをかけるときがあると、末端の挙動が
おかしくなることが良くあります。というか大抵予測通りに行かない。
なので、少し調べてみました。

mayaで、AとB両方からCにスケールコンストをしたときのブレンドの式を答えなさい。
こちら分かりますか?

結論から言うとこうなります。

C = √(A * B)

画像を見ても分かるかと思いますが、線形ではありません。
FKとIKのスケールを平均でブレンドするなら、エクスプレッションや
ノードエディターで工夫しないといけません。




pairBlendノードを使って

C = (A + B) / 2

をしました。
こちらは、意図した結果になります。
使い方のポイントとしては、pairBlendのTranslateにScaleを突っ込みます。


次の構造は、良く見る階層です。
手に武器用のロケーターが付いたものです。
武器と仮定した外にあるロケータに、parentとscaleのコンストをかけました。




この階層で、rootのtransformノードに、Xスケールをかけてみます。

すると、武器ロケーターのスケーリングの挙動がおかしくなります。
scaleコンストは、shearには興味が無いようです。

この場合は、shearの値を接続してあげればOKです。
グローバルの値をダイレクトに入れます。


ノードエディタを使用して、shearのみ接続します。
武器骨のWorld Matrixから、decomposeMatrixノードに繋ぎ
Output Shearから、武器のShearに接続します。

ノードエディタで、decomposeMatrixノードの出し方は

1.) TABを押す
2.) decと入力
3.) TABを2回押す

と楽に出ます。

IKとFKのブレンドは、こちら画像の接続をするとうまく行くかと思います。
Matrixのブレンドは、wtAddMatrixノードを使用します。
wtAddMatrixノードは、出したままですと、入力を受け付けません。
ですので、一度ノード上で右長押しから、Show All Attributeを選択すると、接続が出来るようになります。

真ん中辺りのmultMatrixノードは、武器の構造が階層だった場合
親の逆Matrixをかけて、ローカルへ変換しています。

このやり方は、pivotを動かしているノードを絡める場合、pivotも考慮
してあげる必要があります。
Rigですと、普通にpivotを動かしていますよね。
このケースは次回ということで(実は良く分かっていません・・・笑)

では。

Perforce: 複数のワークスペースを更新するバッチ

batを叩けば全部更新。 @echo off set P4PORT=x.x.x.x:xxxx set P4USER=user set P4PASSWD=password echo %P4PORT% echo %P4USER% echo %P4PASSWD% echo %P4PAS...