2025年2月23日日曜日

モデルさんをモミモミしてみる(ボーンの順序を整える)

 実際のモデルさんで解説したかったんだけど条件が合いそうなモデルさんが見つかりませんでした

仕方がありませんので、例を挙げる形でボーン整理のお話を進めていこうかと思います

ここから先は私の好みの部分もありますので、違う並びが好きというのは有りです

要は「ユーザー(自分)が後で困らないように、よりシンプルに整理、並び替え」が出来てればよいのです


計算順序を考慮して並び替えてあげることで、スタンダードなスケルトンは全て階層0にすることが出来ます

そうすることで、PMXEプラグインでのボーン追加や、オリジナルの構造を組み込むときの見通しが良くなります

ちょっとしたボーン改造する場合でも意識されると良い事あるかもしれません


階層指定設定のあるモデルさんが失敗しているという訳ではありません、正解ですけどちょっと無駄があるというだけです

何故配布モデルに階層付けをされているモデルがあるかの理由は


”出力アプリの配慮”

”MMDのバージョンアップに伴う追加ボーンの不具合修正”

の為に起こった仕方のない事だったと思います



実際の並び替えの作業

基礎の大本のボーンに”センター”が一番最初になるでしょう

順標準ボーンでセンターの上位に「全ての親」とかの便利ボーンを置く場合ももありますが、スタンダードなスケルトンなら「センター」から始まります

私の場合は


センター

上半身

両目

右目(両目ボーンから付与を受ける)

左目(両目ボーンから付与を受ける)

下半身


と体幹と両目を並べます

今でも散見されるの例ですが


頭(階層指定無)

右目(階層2、両目ボーンから付与を受ける)

左目(階層2、両目ボーンから付与を受ける)

(いくつか飛んで)

両目(階層指定無)


のような並びと階層指定になっているパターンがあります

階層指定を特にしていない場合は階層指定は”0”になっています


意図的に階層指定して動くようにしてしまう場合もあるかもしれませんが

モデル制作時にデーター出力時に絶対動くようにアプリがそういう風に指定してしまう事があるからみたいです


ボーン処理順序としては

頭→右目を読んで見たけど階層2だから飛ばして→左目を読んで見たけど階層2だから飛ばして→…→両目をこれだけ動かして

階層0の処理が終わったから次の階層の処理に進んで

階層2の処理に進んだ

右目に両目のボーンの角度を付与させる

左目に両目のボーンの角度を付与させる


という処理になります

どの位置に両目ボーンがあってもちゃんと動く動く、けどちょっと回りくどい

そんな設定になっちゃってますよね

ボーンの順序が両目が下位になっている事で、視線回りの追加ボーンをプラグインで追加出来なかったりする事例もあったり

基準のボーンが視線になっていて、その先にある両目ボーンとの間に割り込む格好で追加しようとして失敗してたりしました


なので

両目

右目

左目

のような並びにして、階層指定の必要が無いシンプルな順番にしてあげましょう


あと、体幹関係でチェックした方が良いのがX座標の数値です

中央に走るのが基本なのでX座標は0なのですが「-6.960701E-11」みたいな指数表示になっている事がありませんか?

これボーン座標が自動設定される時ほとんど0だけど微妙にずれている時に自動で入力される数字になります

実際の数字は「0.0000000000696070」のようなほぼ0ですから、こういうの数値を見つけたら「0」と修正してあげましょう

他の自動入力の場合もこういう数値が入ることがあります

本当に小さな事ですが処理軽減になりますので気が付いたら修正してあげると良いでしょう



体幹の次に

左右の肩~指(指先&ダミーボーン)

を並べます

このあたりで差異が出ることは殆どありませんね

ちょっと特殊な捻りや肩回り、鎖骨なんがを実装しているモデルさんもありますので、そのへんもこのあたりに纏めておきます

握りや拡散ボーンを追加している場合、私は体幹と左右肩の間に置くことが多いかな?


そして足周りを並べます


足   (linkなので黄色)

ひざ  (linkなので黄色)

足首  (ターゲットなのでピンクになりそうだけど、つま先IKのLinkの黄色が優先になってる)

つま先 (ターゲットでピンク)

足IK (をLinkに「足、ひざ」、Targetに「足首」、PMXモデルの場合は0.1~-180°くらいで「ひざ」に角度制限がかかる)

つま先IK(足IKの流れの末端、Linkに「足首」、Targetに「つま先」)


IKは、この「Link黄色TargetピンクIK赤」の順に並べるのが基本になると思います

最近のPMXモデルの足IK周りはちゃんとこんな感じになっているモデルがほとんどですね

足IK親なんてボーンもありますが、そういう感じのボーンはIKのリンクの中には置くと混乱する原因になりかねませんので、私はIK並びの上位に置くようにしています

MMDモデルは現在PMXモデルが主流になっていると思いますが、PMXモデル黎明期のPMDモデルのスケルトンを参考にしたモデルに散見されたパターンがあります


足IK(階層指定2

つま先IK(階層指定2

ひざ

つま先


このパターンです

これも、先に挙げた「両目、左右目」と同じような感じで順番を階層指定して遅らせているのでちゃんと動きます

が、スマートで無いのもあるのですが付与で足、ひざ、足首の回転を取り出すときにちょっと面倒な事がおきます

足、ひざ、足首の階層は指定されていませんから、付与を受けるボーンは普通にそれらのボーンの下位に置けば良いのですが、IKの処理は階層2なのでおかしなことになります

バージョンによっては動かなかったり、MMDエンジン化したりしますし、何かしらの追加ボーンを仕込む時に混乱しかねません


足Dのとかを追加する場合

足Dはデフォルトで階層1のようですから、IKの階層が1ならそのままで行けると思いますが、IKが階層指定2だとNGになります

というわけで足D等を追加したりする可能性も含め、先に説明した、足、ひさ、足首、つま先。足IK、つま先IK(全て階層指定無し)の順に並べるのがお勧めです


※追記として

古いモデルに”つま先”を親にして、付与率0の付与ボーンの形でつま先EXを追加しているモデルがありました

これ、MMDのバージョンアップで追随しなくなったので、そうそう見ないと思います

もし見かけたら足Dの流れを追加してつま先EXを処理してあげましょう

その時に上手く動かない場合は階層指定やボーン順序をチェックすると良いです


膝枕ボーンやORZ79D等では追加構造を物理演算後にしないと目に見えるくらいのズレがおきていました

通常の変形処理が終わった後に足IKに大き目の補正がかかっていたのが原因だろうと思います

比較的新しいバージョンのMMDで足Dと足IKの差異を確認してみましたがほぼ合致していましたので修正がかかったのかな?とも思います

足IKから付与等で回転を取り出した時に気になるズレが起こったなら”物理演算後”に指定するといいかも?

という感じで頭の片隅に置いておくといいかもしれません


足IK周りの次に物理演算ボーンたちを置きます


IKと物理の両方の設定がされるボーンの流れ

ネクタイIK、髪IKとかがそれです

MMDで物理演算がONであれば物理演算が優先されますので、静止画制作時にIKを設定してあげるのも良いと思います


物理演算のみのボーンの流れ

特殊な設定でもなければ、普通に揺れ物全般ですね


その後に表示されるその他のボーン

非表示ボーン(~~先等のボーン)

と置いていきます

非表示の~~先ボーンについては、解りやすさ優先で親ボーンの近くに置いておいても良いと思います

このあたりは好みですよね


こんな感じでボーンの順番を整理していくと

基本のスケルトンは階層指定をしなくても良いシンプルな状態に出来ます

その後の順標準ボーン等の追加もしやすく、追加されたボーンも理解しやすく配置出来ると思います


そんなこんなで今回の作業でボーン改造の下地が整いました(という事で進めていきましょう)

0 件のコメント:

コメントを投稿