ブーツ上部を自動で足首の回転に追従させる
閉じる
閉じる

ブーツ上部を自動で足首の回転に追従させる

2014-03-01 18:59
  • 4
足首(足IK)を回転させた時、靴がブーツの場合。


自動で出来るようにしました↓


動画は左足IK、左つま先IK、左足首、センター(上下のみ)で動かしてます。足首Dボーンも大丈夫です。



ということで、ブーツ上部自動追従回転構造です。

(変形階層バグ修正前の)MMDver8.11以前だとカクつくかもしれません。カクつく条件をよく分かってません。
ただver7.39.で普通にモーション流し込んだだけだとよく分からなかったので、多分分からないと思います。
(140302追記)確かめたところ、ver8.11以前だとブーツの動きが1フレ遅れるようです。ver8.12以降は普通に動きます。

■構造■
足首の捩り以外の回転を取り出すIKボーン(XZの回転のみ取り出す)
→そこから更にIKの角度制限でグローバルY回転のみ取り出すIKボーン
→それを回転付与で受けるウェイトの乗ったブーツ上部ボーン



■作り方■

面倒&確かめてないので足Dボーン系列がない場合の構造は説明してません。
足Dボーン系列はそぼろさんの「準標準ボーン追加プラグイン(PMX)」で足先EXを追加する際についでに追加出来ます。
そぼろさんのプラグイン配布場所(2014年2月から配布場所が変わってます)→https://onedrive.live.com/?cid=ef581c37a4524eda&id=EF581C37A4524EDA%21107


【ボーンの複製と位置決め】
足首Dを3つ複製(回転付与はオフ、変形階層を増やす)
→「ブーツXZIK」「ブーツXZ」「ブーツXZ先」ボーンとなる。
ブーツXZIK・ブーツXZ先ボーンのYの位置を下げる。

足首Dを1つ複製(回転付与はオフ、変形階層を増やす)
→「ブーツG_Y」ボーンとなる。
つま先を2つ複製(ブーツG_Yと同じ変形階層にする)
→「ブーツG_YIK」「ブーツG_Y先」ボーンとなる。

ブーツ上部のウェイトが塗ってある「ブーツ上部」ボーンも用意する。
(ブーツの材質のひざDウェイトをブーツ上部ボーンに移しかえるだけ。そぼろさんのWeightTargetReplaceプラグインが便利です)
ブーツG_Yと同じ変形階層にする。
(軸制限をX0,Y1,Z0でONにしておくといいかも)
ボーン位置は捩った時にブーツが綺麗に足の回りを回転する位置で。


【IKの設定】
ブーツXZIK
  IKターゲット:ブーツXZ先
  IKリンク:ブーツXZ
  Loopと単位角は適当

ブーツG_YIK
  IKターゲット:ブーツG_Y先
  IKリンク:ブーツG_Y(角度制限ONでYのみ-90~90くらいお好みで)
  Loopと単位角は適当

(今回、Loopと単位角はどちらも足IKと同じにしました)


【ボーンの親子関係とindex順上から
表記:親>子
(足D>ひざD>足首D)

足首D>「ブーツXZIK
足首D>「ブーツG_YIK
ひざD>「ブーツXZ」>「ブーツXZ先
ブーツXZ>「ブーツG_Y」>「ブーツG_Y先
ひざD>「ブーツ上部」(回転付与親ブーツG_Y、付与率は0.7~1くらいお好みで)


私の場合こんな感じです。


ちなみに最初XZIK無しで、G_YIKのみでやろうとしたら失敗しました(必ずしも綺麗に追従回転されなかった)。
G_YIKのみ(ブーツG_Yの親はひざD)の場合の例を画像で追記してみました(140302追記)


(足IKを回転させた後、センターのZ軸を後ろに移動させた状態)
検証用の別画像↓



これでブーツのぐねりも安心!
お疲れ様でした。
広告
×
こんばんは。確かに堅そうなブーツで足首部分だけ捩じれるのは避けたいですね。
この構造だと、最終的に取り出しているのはひざボーンに対する足首捩じり回転ではなくグローバルY軸回転なので、ブーツXZIK系列なしで、ブーツG_YIK系列のみ(ブーツG_Yボーンの親はひざD)でも動作するように思いますがどうでしょうか?

(というか、IK影響下ボーンに別のIK系列を横枝でつなぐのってどうでしたっけ…
これまでは直接つなげられないので、最初のIK系列の回転を足D系列などの回転連動系列にコピーしてから、足D系列に足先EXなどの横枝ボーンを接続してたと思いましたが、MMDの変形階層バグの修正でその辺できるようになったのでしょうか…??
 ご存知でしたら教えていただけるとありがたいです )
85ヶ月前
×
>>1
私も最初そう思いブーツG_YIK系列のみで作ろうとしたのですが、動きによっては足首DとG_YIKのボーンのズレ(記事最後の追記画像参照)が出てきてしまったので、どうにかしようとした結果この構造になりました。
どうもG_YIKのみだとつま先IKの角度を取得せず(追記画像2つ目参照)、そこからズレが発生するようです。
(追記画像1つ目のつま先IKは画面外にあります)
そこでXZIKで、Y回転以外の足首の回転を全て取得したら出来るか?と思い追加し、その回転からグローバルY回転だけ取り出せば…と無理やり繋いでみたら出来た、といった経緯です。

そして無理やり繋いだので何故まともに動いてるのか分かってません…。
ちなみにver8.11だとブーツの動きが1フレ遅れ(動くには動く)、ver8.12だと普通に動くので変形階層のバグ修正の影響はあるようです。
85ヶ月前
×
>>3
なるほどー。つま先IKのことをすっかり失念していました。
足首Dはつま先IKの動きも反映してそうなんですが、そこをG_YIKの親にしてもずれてしまうんですね。この辺のIK関係の挙動は難しいです。
何にせよ最終的にきちんと動くのが大切ですね。
めんどくさい質問に丁寧なご回答ありがとうございました!
85ヶ月前
×
>>4
こちらこそ(なんかズレる)程度の認識から、つま先IKに関する問題だと検証出来たのでスッキリしました!
コメントありがとうございました。
85ヶ月前
コメントを書く
コメントをするには、
ログインして下さい。