2025年1月26日日曜日

ボーンモーフの伝達(モーフのお話の締めに入っていきたかっただけのお話)

ボーンモーフを外部親接続した子モデルに伝達する方法がありますよ?という、ちょっとだけ応用編です

これは外部親接続のお話にもなります


モデルの合成をしないでモデル同士をくっつける外部親接続は非常に便利な機能です

外部親接続が実装されるまでは、2個のモデルを特定のボーンでくっつけようとするとモデルをマージしてしまうくらいしか手がありませんでした

Xファイルのアクセサリとかだとくっつけるボーンの指定は出来るのですが、こちらは変形操作動が出来ないです


モデル同士を外部親で綺麗にくっつけられる条件は


■演算順序が親側のモデルが上位、子側のモデルが下位

 この順番が違うと、変形時にちょこっとフニャります


■接続ボーンは移動ボーン

 外部親接続の設定時にリストに出てこない場合はこれを見直してください


で、この外部親接続ですがかなり自由度が高く上の条件さえ整えられれば


●モデル内部のボーンでも親が切り替えられる

●複数の接続も可


なのです


今回は「複数の接続も可」の条件を使って「ボーンモーフの伝達」をしてみましょう


●接続する用の受け口のボーンセットを用意する

●親モデルにマージ

●外部親で必要なボーンの接続


これで親モデル側から接続された子モデルのボーンモーフの制御が可能になります

親モデルから子モデルに伝達出来る移動、回転は親子関係を結んだ通常のボーンの挙動と変わりはありません

親が回れば子はくっ付いているだけです


1対1で単純な移動、回転であれば、これで問題はありませんし、難しい仕掛けは必要ありません


ところが、回転や移動を複数のボーンで付与したい場合は何とかして子ボーン自体に回転してもらわねば付与が出来ません

そこで、IKを利用します

一見動いていないように見える仕掛けなのですが、親ボーンが回転したときに子ボーンはそれを打ち消すように回転することになります

接続された子ボーンは回転するので、その回転を複数のボーンに付与する事が可能になります

移動については、回転を取り出して尺取虫構造で伸縮させれは移動付与と似た結果が得られる理屈です

伝達出来るボーンモーフ(正逆可)は1種類につき1セット必要になりますから、複雑化すればするほどボーン数は増えます

そのあたりの事がありますので、あまり認知されていない使い方ではあります



シリーズもので同一の接続ボーンセットが利用出来る場合

接続の統一化を意識したセットアップが行える場合

VMDのキー数制限にひっかかるのでキーの大半は子モデルに受け入れてもらって変形制御だけ親モデルで行いたい

そんなときには使えるんじゃないでしょうか


外部親は単一モデル内部でも設定することが可能です

親指定していないボーンを手のダミーボーンに親として登録する、とかですね


一応サンプルモデルも用意はしてみました


親モデルさんを準備する(今回はぐーちゃん)


接続用ボーンをマージ(D&Dで追加する、同名ボーンをマージで行けるはず))


で、別名保存



こんな感じ









ここまでPMXEでの作業ですね

MMDに親モデル、子モデルの順で読み込む

順逆になってしまう場合はモデルの計算順序を入れ替える








モデルの説明に従って外部親接続を必要な数行う



これで親モデルに登録してあるモーフで変形出来る筈






えんじょい!


0 件のコメント:

コメントを投稿