CG系

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

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

nClothシミュレーションで得た動きを、リグにベイクしたい

これが出来たら、

大まかな動きはシミュレーション

シミュレーションでは再現できない、細かいニュアンスは手付け

 

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

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

左がシミュレーション結果

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

 

90%くらいは再現できました。

今回はここまでの結果を、いったんまとめてます。

今回の仮説

シミュレーションされたモデルの、頂点の動きを再現できればいけるかも?

そう考えたので、

頂点の動きをジョイントへ移す。

そのジョイントを、シミュレーションされたモデルのコピーにバインドしたら、再現出来るのでは?

と考え実行。

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

  1. シミュレーションしたプレーンの各頂点にジョイントをコンスト
  2. 1で作ったジョイントと同じポジションにIKスプライン用のジョイントを作る
  3. CVをクラスタ化する
  4. 1のジョイントと3のクラスタをポイントコンスト
  5. シミュレーションしたプレーンをコピーし、2で作ったジョイントとバインドさせる

    今回私が考えた手順は以上です。

    順番に解説していきます。

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

    ポリゴン上のポイント、っていうコンスト

    これやると、ジオメトリーの頂点にコンスト可能

    これで、頂点のポジションを持ってくるようにする

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

    スプライン用のジョイントを作ります。

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

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

    ③CVをクラスタ化する

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

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

    ①でシミュレーションの動きに追従させたジョイントと、③で作ったクラスタをポイントコンストします。

    これで、①のジョイントが動けば、②のIKスプラインが動くっていう仕組みができました。

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

    シミュレーションさせたモデルをコピーして、動き再現用のモデルを作ります。

    コピーしたモデルを、②で作ったスプライン用のジョイントとバインドします。

     

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

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

    最後はクラスタをベイクして、動きを焼き付けます。

    シミュレーションの動きを、クラスタに持ってくることができました。

     

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

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

    • クラスタに動きを持ってくることはできたが、どうやって制御するか
    • 制御用のリグをどう作るか
    • ベイク後にシミュレーションしなおそうとしたら、別シーンでやらないといけない

      などなど…

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

       

      引き続き、検証します…

      ABOUT ME
      みっつ
      CGアニメーター/リガー テクニカルアーティスト(TA)目指して精進中です 渋谷でゲーム作ってました。 6月からは品川の現場に移ります。