IK関連 IKのコントローラーについて


あーー、このやろうーーー。
とにかく、階層がふかいんだよなーーー。
あと、リストコントローラーという、難敵がいるのもやだな。
こう、なんつーか、リストコントローラーの場合の
末端のコントローラーに簡単にアクセスできないものかな。

というグチしかでてこない、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 ();

/*あーめんどくせぇーーー*/

といったところ。

こいつらをカスタマイズしても。。。。
特に意味がないので。

普段はイジらんほうがエエ。

値を取得する場合も、
コントローラーの値を取ってくるならば、
ほかのオブジェクトをアタッチしておいて、そいつの値を見た方がいい。

階層が多すぎるよ・・・・・。

■■ダウンロード■■
IKのコントローラーをアレに変える

Leave a comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください