あーー、このやろうーーー。
とにかく、階層がふかいんだよなーーー。
あと、リストコントローラーという、難敵がいるのもやだな。
こう、なんつーか、リストコントローラーの場合の
末端のコントローラーに簡単にアクセスできないものかな。
というグチしかでてこない、Maxのコントローラーのおもしろさというか、
やっかいさ。
mayaの場合は、リストコントローラーどころか、
めずらしいコントローラーは未だにお目にかかった事がない。
シンプルで直感的。
もしかしたら、特注のアトリビュートを用意して、
複雑にリンクすることをするのかもしれないが、見たことはない。
そもそも、ドリブンキーとエクスプレッションがあれば。
おおよそカタがつく。
コンストレイントも特定の軸だけって設定もできるし、
アトリビュートの数値は簡単に取得できるし。
ただ、シンプル過ぎかな。
突拍子もない複雑さは、Maxの方が面白いかも。
そうだ、こんどその辺りの比較をしてみるか・・・・。
そんなことより。
MaxのIK周りのコントローラーに、標準のコントローラーをあたえるテスト。
/*IKとかのキーとか*/
/*
MELの場合はsetKeyとか、copyKeyとかのコマンドつかうんだろうな
*//*HDIKの場合は、一端コントローラーを削除してから実行*/
/*削除はこれ→HDIKSys.RemoveChain $*//*
普通のコントローラーを割り当て
スプラインIK、HIIK、リムIK
*/
$.transform.controller.FK_Sub_Control.controller = prs ();/*こっちはIKゴールエフェクタ*/
$.transform.controller.IK_goal.controller = prs ();/*
それぞれ位置、回転、スケール各コントローラー、
スプラインIKの場合根本のオブジェクトはリストコントローラーになっているので注意
*/
$.transform.controller.FK_Sub_Control.controller.Pos.controller = Position_XYZ ();
$.transform.controller.FK_Sub_Control.controller.Rotation.controller = Euler_XYZ ();
$.transform.controller.FK_Sub_Control.controller.Scale.controller = bezier_scale ();/*スプラインの根本*/
$.transform.controller.FK_Sub_Control.controller.Pos.controller.Position_XYZ.controller = Position_XYZ ();
/*リスト無視なら*/
$.transform.controller.FK_Sub_Control.controller.Pos.controller = Position_XYZ
/*
ゴールエフェクタ
スプラインIKのゴールエフェクタの場合は、コンストレイントがかかっているので注意
*/
$.transform.controller.IK_goal.controller.Pos.controller = Position_XYZ ();
$.transform.controller.IK_goal.controller.Rotation.controller = Euler_XYZ ();
$.transform.controller.IK_goal.controller.Scale.controller = bezier_scale ();/*あーめんどくせぇーーー*/
といったところ。
こいつらをカスタマイズしても。。。。
特に意味がないので。
普段はイジらんほうがエエ。
値を取得する場合も、
コントローラーの値を取ってくるならば、
ほかのオブジェクトをアタッチしておいて、そいつの値を見た方がいい。
階層が多すぎるよ・・・・・。