やりたいこと→nclothの動きをリグに移したい
nClothシミュレーションで得た動きを、リグにベイクしたい
これが出来たら、
大まかな動きはシミュレーション
シミュレーションでは再現できない、細かいニュアンスは手付け
見たいな使い分けが出来るのではないかと考えた。
nClothの実験結果【90%くらいは再現可能】
左がシミュレーション結果
右がシミュレーションの動きを、別のプレーンで再現したもの。
90%くらいは再現できました。
今回はここまでの結果を、いったんまとめてます。
今回の仮説
シミュレーションされたモデルの、頂点の動きを再現できればいけるかも?
そう考えたので、
頂点の動きをジョイントへ移す。
そのジョイントを、シミュレーションされたモデルのコピーにバインドしたら、再現出来るのでは?
と考え実行。
シミュレーションの動きをリグにベイクする方法(実験中)
今回私が考えた手順は以上です。
順番に解説していきます。
①シミュレーションしたプレーンの各頂点にジョイントをコンスト
ポリゴン上のポイント、っていうコンスト
これやると、ジオメトリーの頂点にコンスト可能
これで、頂点のポジションを持ってくるようにする
②.①で作ったジョイントと同じポジションにIKスプライン用のジョイントを作る
スプライン用のジョイントを作ります。
スプライン用のカーブは、ジョイントと同じ場所にCVを設置する
スプラインで動きを制御する以上、CV数と場所は、ジョイントの数と場所を同じにする必要があります。
③CVをクラスタ化する
スプラインで使ってるカーブのCVを、クラスタ化します。
④.①のジョイントと③のクラスタをポイントコンスト
①でシミュレーションの動きに追従させたジョイントと、③で作ったクラスタをポイントコンストします。
これで、①のジョイントが動けば、②のIKスプラインが動くっていう仕組みができました。
⑤.シミュレーションしたプレーンをコピーし、②で作ったジョイントとバインドさせる
シミュレーションさせたモデルをコピーして、動き再現用のモデルを作ります。
コピーしたモデルを、②で作ったスプライン用のジョイントとバインドします。
ウェイト値が同じなら、大体同じ動きをするはずです。
⑥.③のクラスタをベイクし動きを焼き付ける
最後はクラスタをベイクして、動きを焼き付けます。
シミュレーションの動きを、クラスタに持ってくることができました。
しかし、まだまだ課題は山積みですね…
これからの課題【リグへの移し方】
などなど…
実用化までは、もう少し先かな…
引き続き、検証します…