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