2009年12月06日

地面にめり込まない足リグ

いつだったか足を地面にめり込まないようにするやり方書くとか言ってて放置してたら
検索ワードに「XSI 足 めり込まない」とかあってなんだか罪悪感が生まれたのでやってみます。

かなり絞り込んでいるとはいえ検索の2番目に出てくるとかマジでビビりました。


・・・と言って始めてみたら前に作ったのと違うものができましたw

ちなみに書いてある文章も作った時の手順とは全く違います。

説明しやすいように順番整えてるので、もしできなかったらコメントとか下さい。

修正するかもしれません。



※始める前に

MAX関数とかたぶんモーション研究所 様での予習が必要です。
ココを真似して作りましたのでw

初心者 XSI Expression 【MAX関数】
http://gamemotion.blog87.fc2.com/blog-entry-19.html
初心者 XSI Expression 【MAX関数】 応用編
http://gamemotion.blog87.fc2.com/blog-entry-20.html

ヌルとか狭い範囲で複数使うので自分のわかりやすいようにサイズ、色、形を整えながら作って下さい。
書いてあることを一気にやってハイ完成ではなく、作業途中で動かしてみたりして
なぜそうして、なぜそうなるのか考えて理解しながらやるのが良いと思います。

偉そうでごめんなさい。
こんなこと言っといて書いてること間違ってたらモニタの前で土下座します。

文章だと凄く長いですが、やってみればそんなに時間かからないしとても簡単です。

文章読むのが嫌だって方はステップ1だけは読んで最後の動画でチェックでも良いと思います。



そんなこんなで足リグ作りましょうそうしましょう。

下準備と仕込みの2ステップです。

ステップ1 下準備

とりあえずオブジェクトがあった方がわかりやすいのでXSI男を取り出して、足だけ切り落としてちょこっと形整えます。

まぁ整える必要はないんですが。


2Dチェインで足のboneを作ります。
足首側とつま先側は別々に作成。

足首側のエフェクタのYポジションを0に。

それにつま先側のrootに位置合わせ。

それぞれに名前をつけます。rootとかはそのままで頭文字に付け加えます。
今回は足首側に「Foot」つま先側に「Toes」


新しくヌルを作成、Foot_effに位置合わせ名前を「Foot_ahead」

Foot_aheadFoot_rootの親にする

ヌル作成、名前を「Heel」に。

Heelをオブジェクトのかかと部分に移動。

HeelFoot_aheadToes_rootの親にする。

ヌル作成、名前を「Foot_out」に>足オブジェクトの外側に配置

Foot_outを複製、名前を「Foot_in」に>足オブジェクトの内側に配置。

ヌル4つ作成、全てFoot_rootに位置合わせ名前をそれぞれ「Foot_Rig」「Pos_Ctrl」「Roll_Ctrl」「Rool_Free」にする。

親子付け Foot_Rigの子にPos_CtrlとRoll_Ctrl

Pos_Ctrl>Rool_Free>Foot_in>Foot_out>Heelと親子付け。


さてここまでで下準備は完了。

こんな感じ
足リグ.jpg


ここからエクスプレッションコンストレイン使ってセットアップです。


ステップ2 仕込み


ツリーの一番下から行きましょうかね。

Toes_rootFoot_aheadポジションコンストレイン

Foot_ahead選択してCtrl+Kでローカルトランスフォーム開きます。んでそのウインドウをロック。

Roll_Ctrl選択してCtrl+K、そのウインドウもロック。

Roll_Ctrlの回転XをFoot_aheadの回転Xにドラッグ&ドロップ(以下D&D)

すると自動的にエクスプレッションエディタが出てきます。

そこへMAX( 0, Roll_Ctrl.kine.local.rotx )と入力。そして適用。

Roll_Ctrlのローカルトランスフォーム以外を閉じる。

次はHeel選択してCtrl+Kでローカルトランスフォーム開く。ウインドウをロック。

Roll_Ctrlの回転XをHeelの回転XにD&D

エクスプレッションエディタMIN( 0, Roll_Ctrl.kine.local.rotx )と入力。適用。

次はFoot_out選択してCtrl+Kでローカルトランスフォーム開く。ウインドウをロック。

Roll_Ctrlの回転ZをFoot_outの回転ZにD&D

エクスプレッションエディタにMIN( 0, Roll_Ctrl.kine.local.rotz )と入力。適用。

次はFoot_in選択してCtrl+Kでローカルトランスフォーム開く。ウインドウをロック。

Roll_Ctrlの回転ZをFoot_inの回転ZにD&D

エクスプレッションエディタにMAX( 0, Roll_Ctrl.kine.local.rotz )と入力。適用。

Rool_freeには何もしません。

次はPos_Ctrl選択してCtrl+Kでローカルトランスフォーム開く。

回転X,Y,Zそれぞれのキーで右クリック>エクスプレッションの設定>何もせずウインドウ閉じる。

これでPos_Ctrlの回転値を0に固定してPos_Ctrlが回転しないようにしました。他にも方法はあります。


次にRoll_CtrlPos_Ctrlポジションコンストレイン

最後に不要なものを非表示にしておしまい


Pos_Ctrlで移動 

Roll_Ctrlでめり込まないように回転

Rool_Freeで自由に回転
(注:記事下部の追記参照)

って感じですが、Rool_Freeはなくてもいいしもっと便利にも組めると思います。

完全な独学ですので確実にこれより簡単で便利な組み方はあると思います。

作る度にどこかしら作り方変わってますもの(;・∀・)テヘ


一応上記の下準備以降のやり方を動画にしてみました。
1080でのアップロードのテストも兼ねてます。




スペック足りない場合はダウンロードして見ながらやれば良いと思われます。

ちなみに午前9時13分現在、まだ処理中なので画質悪いです。
処理が終わったら画質向上する…はずです。

※追記

Y回転のことすっかりわすれてましたwごめんなさい。

書きなおすのメンドイので追記で応急処置。

Roll_CtrlRool_Freeのローカルトランスフォーム開く

Roll_Ctrlの回転YをRool_Freeの回転Yへドラッグして拘束。

Rool_FreeのX,Z回転は0固定して

Rool_Freeを非表示。

Rool_Freeが全然Freeじゃなくなったので

Rool_Yにでも名前を変える。

これで勘弁してください(´;ω;`)




posted by shocker at 09:23 | Comment(0) | CGのお勉強 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。