自動で動かすときに使えるかも。
Jiggleを使う手もあるけど
今回はとりあえずHairが使いたい!
ということで。
あと、よく適当っていう言葉を使いますが
何でもいいって意味じゃなくて
適した、ほどよいって意味で使ってます。
では以下、実作業。
と言ってもMayaのOnlineHelpに載ってるんですが・・・
トンボの尾を使って描いたダイナミックなスプライン IK チェーン
まず、適当なカーブを作って動きの確認をします。
Hair > Make Selected Curves Dynamic
設定はデフォルトで(下図参照)
![]() |
色々とノードができますが
follicles1 を選択して
FollicleShape1 → Follicle Attributes → Point LockをBaseに変更
(この設定で、カーブのどこを固定するかを決めることができるようです)
(下図参照)

この状態で
hairSystem1Follicles または follicle1 を
アニメーションさせれば
そのアニメーションに対して のこしをつけたような動きになります。
そのままだと全体的に揺れていますが
先端に行くにつれて揺れる感じにしたい、と思ったので
hairSystem1のアトリビュートを調整します。
調整するのは
IIterations,Stiffness,Stiffness Scale
です。
これらを軽く調整するとそれなりに思った動きになりました(下図参照)
(ムービーはまだ録り方分からないのでありません。。)

これができたところで
jointを配置して、IKsplineを仕込みます。
実際に髪の毛に使うとして
このjointより上に階層が続くので
それを考慮したjointを配置します。
下図のjoint1~joint5までが髪の毛部分
joint6がそれより上の階層と見立てています(原点の左下にあるのがjoint6)

IK SplineはOptionのチェックを図のようにチェックを外して
joint1 → joint5 → curve2 の順に選択すれば作成されます。
さらに hairSystem1Follicles をjoint6の子供にします。
(この記事の最初の方でアニメーションを入れていたら削除しておく)
joint6をアニメーションさせれば
先ほどのカーブの動きがIK Spline に反映されます。
最後にOffset機能を持たせたいと思います。
ちょっと考えてみたけど
普通にcurve2のControl Vertexにcluster(Relativeにチェックを入れる)をつけて
それらをgroupに入れてjoint6の子供にすれば完了です。

実作業ではclusterはコントローラーをつける。
できればjointの動きに合わせてコントローラーの位置が変わって欲しいけど
自分の知識内だと
// Warning: Cycle on 'joint2.matrix' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
のエラー?が回避できない。
clusterをコントローラーでconstrainして
その位置をjointから拾うと2重計算になるから?と思ってます。
(curveに位置情報をもらって動いているjointとcurveの位置を制御するcluster)
骨の位置の数字だけを取ることができればできないか?
なんて考えてます。
getAttrとか使ってできないんかな。これも同じか。
0 件のコメント:
コメントを投稿