【blender】クロスとボーンを使ったスカートのアニメーション
※この記事は筆者の備忘録です。なにか間違いがありましたら指摘してくれると助かります。
使用ソフト:blender2.79
動機
スカートの物理シミュレーションをボーンにベイクして、アニメーションとして出力したい!(Mayaにもっていきたかった)
そこでいろいろ試してみたのですが、
MMD→剛体の設定は非常に簡単だが他の面で思い通りのことができない、、リグが組めない、、
blenderで剛体+ジョイント→うまく横ジョイントが組めず貫通を防げなかったため挫折、、
必要なオブジェクトの設置
今回スカートのシミュレーションを行うモデルです。
(キラッとプリ☆チャンより歩堂デヴィ)
すでにスカート以外にはボーンが入っています。
このスカートに物理シミュレーションを設定していきます。
まず、ベースになるクロスと、衝突用オブジェクトを用意します。
衝突用オブジェクトには、プロパティウィンドウの物理演算タブから、[コリジョン]を設定してあります。また[ソフトボディとクロス]の[外側]は0に設定しておきます。
クロスの方は、クロスシミュレーションをONにし、下の写真のように設定した頂点グループ[pin]を[クロス>ピン止め]に設定しておきます。また、こちらも[チャイルド]コンストレイトを使用し、キャラクタのボーンに追従するように設定しています。
また、クロス用のオブジェクトの縦向きの辺の数はボーンの数と一致します。ですので、程よいポリゴン数でオブジェクトを作成しましょう。
その他の設定は、後から行います。
アドオンを用いたボーンの設置
次に、クロスに追従するボーンを作成します。
今回、こちらのアドオンの助けを借りることにしましょう。(ありがとうございます!)
こちらにある、GitHubへのリンクからアドオンを入手し、有効化します。
クロス用のオブジェクトを選択した状態で、3Dビューのツールタブ内の[ツール>Setup skirt bones]の[Setup skirt bones]をクリックすると、ボーンが作成されます。この時点で、アニメーションをスタートすると、ボーンも一緒に動いてくれるはずです。
この際、[ctrl+a]でクロス用オブジェクトの[位置,回転,拡大縮小]を[適用]してからボーンを設置しないと、おかしなことになります
作成したボーンを、[ctrl+j]でキャラクタのメインアーマチュアと結合し、スカートボーンの一番上にあるボーンの親をhipボーンなどに設定します。
ここで、タイムライン[0]からアニメーションを開始すると、キャラクタのアニメーションに合わせてスカートが動きます。
クロスのパラメータ設定
最後に、クロスのパラメータを設定していきます。
今回は、下のように設定してみました。
衝突用オブジェクトと、クロスのみを表示し、動きに合わせてプロパティウィンドウ>物理演算タブの値を変更していきます。(このセットアップは、クロスプリセット:Leatherをベースに作っています。)
また、スカートの下の方に行くほど、柔らかい動きをしてほしいので、左のように頂点グループ[pin2]を作成し、これをクロス剛性スケーリングに適用しています。
このように設定し、アニメーションを行うと以下のようにシミュレーションされます。
まだ少しメッシュがおかしくなってしまっていたり、動きがいまいちな部分もありますが、とりあえずは動いてくれました!必要に応じて衝突用オブジェクトを増やしたり、設定を変えたりして、狙った動きになるようにします。
これをボーンアニメーションとして出力すれば、ほかのCGソフトやUnity などにスカートの動きも含めたアニメーションを出力できるはずです!
また、現在は
クロスシミュ→IK→ボーン→ウエイト→スカート
という構造ですが、
クロスシミュ→IK→ボーン→ウエイト→スカートを覆えるサイズのダミーオブジェクト→メッシュ変形→スカート
とすることで、さらに綺麗に変形することができるかと思います。