【nCloth研究①】シミュレーション結果をリグにベイク(実験中)【maya】

やりたいこと→nclothの動きをリグに移したい

nClothシミュレーションで得た動きを、リグにベイクしたい これが出来たら、 大まかな動きはシミュレーション シミュレーションでは再現できない、細かいニュアンスは手付け

見たいな使い分けが出来るのではないかと考えた。

nClothの実験結果【90%くらいは再現可能】

左がシミュレーション結果 右がシミュレーションの動きを、別のプレーンで再現したもの。

90%くらいは再現できました。 今回はここまでの結果を、いったんまとめてます。

今回の仮説

シミュレーションされたモデルの、頂点の動きを再現できればいけるかも? そう考えたので、 頂点の動きをジョイントへ移す。 そのジョイントを、シミュレーションされたモデルのコピーにバインドしたら、再現出来るのでは? と考え実行。

シミュレーションの動きをリグにベイクする方法(実験中)

  1. シミュレーションしたプレーンの各頂点にジョイントをコンスト

  2. 1で作ったジョイントと同じポジションにIKスプライン用のジョイントを作る

  3. CVをクラスタ化する

  4. 1のジョイントと3のクラスタをポイントコンスト

  5. シミュレーションしたプレーンをコピーし、2で作ったジョイントとバインドさせる

今回私が考えた手順は以上です。 順番に解説していきます。

①シミュレーションしたプレーンの各頂点にジョイントをコンスト

ポリゴン上のポイント、っていうコンスト これやると、ジオメトリーの頂点にコンスト可能 これで、頂点のポジションを持ってくるようにする

②.①で作ったジョイントと同じポジションにIKスプライン用のジョイントを作る

スプライン用のジョイントを作ります。 スプライン用のカーブは、ジョイントと同じ場所にCVを設置する

スプラインで動きを制御する以上、CV数と場所は、ジョイントの数と場所を同じにする必要があります。

③CVをクラスタ化する

スプラインで使ってるカーブのCVを、クラスタ化します。

④.①のジョイントと③のクラスタをポイントコンスト

①でシミュレーションの動きに追従させたジョイントと、③で作ったクラスタをポイントコンストします。 これで、①のジョイントが動けば、②のIKスプラインが動くっていう仕組みができました。

⑤.シミュレーションしたプレーンをコピーし、②で作ったジョイントとバインドさせる

シミュレーションさせたモデルをコピーして、動き再現用のモデルを作ります。 コピーしたモデルを、②で作ったスプライン用のジョイントとバインドします。

ウェイト値が同じなら、大体同じ動きをするはずです。

⑥.③のクラスタをベイクし動きを焼き付ける

最後はクラスタをベイクして、動きを焼き付けます。 シミュレーションの動きを、クラスタに持ってくることができました。

しかし、まだまだ課題は山積みですね...

これからの課題【リグへの移し方】

  • クラスタに動きを持ってくることはできたが、どうやって制御するか

  • 制御用のリグをどう作るか

  • ベイク後にシミュレーションしなおそうとしたら、別シーンでやらないといけない

などなど... 実用化までは、もう少し先かな...

引き続き、検証します...

← ブログへ戻る