【blender】クロスとボーンを使ったスカートのアニメーション

※この記事は筆者の備忘録です。なにか間違いがありましたら指摘してくれると助かります。

使用ソフト:blender2.79

動機

スカートの物理シミュレーションをボーンにベイクして、アニメーションとして出力したい!(Mayaにもっていきたかった)

そこでいろいろ試してみたのですが、

MMD→剛体の設定は非常に簡単だが他の面で思い通りのことができない、、リグが組めない、、

blenderで剛体+ジョイント→うまく横ジョイントが組めず貫通を防げなかったため挫折、、

 

必要なオブジェクトの設置

今回スカートのシミュレーションを行うモデルです。

(キラッとプリ☆チャンより歩堂デヴィ)

すでにスカート以外にはボーンが入っています。

f:id:aobayu:20190320002634p:plain

このスカートに物理シミュレーションを設定していきます。

まず、ベースになるクロスと、衝突用オブジェクトを用意します。

f:id:aobayu:20190320095512p:plain

スカート内部と、太ももの衝突用オブジェクトです。これらのオブジェクトは、オブジェクトコンストレイント[チャイルド]を用いてボーンに追従させています。

f:id:aobayu:20190320003128p:plain

ベースになるクロス用オブジェクトです。プロパティウィンドウのオブジェクトタブから、最高描画タイプをワイヤーフレームにしてあります。

 衝突用オブジェクトには、プロパティウィンドウの物理演算タブから、[コリジョン]を設定してあります。また[ソフトボディとクロス]の[外側]は0に設定しておきます。

 クロスの方は、クロスシミュレーションをONにし、下の写真のように設定した頂点グループ[pin]を[クロス>ピン止め]に設定しておきます。また、こちらも[チャイルド]コンストレイトを使用し、キャラクタのボーンに追従するように設定しています。

 また、クロス用のオブジェクトの縦向きの辺の数はボーンの数と一致します。ですので、程よいポリゴン数でオブジェクトを作成しましょう。

f:id:aobayu:20190320003825p:plain

 その他の設定は、後から行います。

 

アドオンを用いたボーンの設置

次に、クロスに追従するボーンを作成します。

今回、こちらのアドオンの助けを借りることにしましょう。(ありがとうございます!)

dskjal.com

こちらにある、GitHubへのリンクからアドオンを入手し、有効化します。

 

クロス用のオブジェクトを選択した状態で、3Dビューのツールタブ内の[ツール>Setup skirt bones]の[Setup skirt bones]をクリックすると、ボーンが作成されます。この時点で、アニメーションをスタートすると、ボーンも一緒に動いてくれるはずです。

f:id:aobayu:20190320004821p:plain

この際、[ctrl+a]でクロス用オブジェクトの[位置,回転,拡大縮小]を[適用]してからボーンを設置しないと、おかしなことになります

 作成したボーンを、[ctrl+j]でキャラクタのメインアーマチュアと結合し、スカートボーンの一番上にあるボーンの親をhipボーンなどに設定します。

ここで、タイムライン[0]からアニメーションを開始すると、キャラクタのアニメーションに合わせてスカートが動きます。

f:id:aobayu:20190320005830p:plain

ctrl+zを押したりすることで、このようにボーンがおかしくなることが多々ありました。タイムラインの0にしたり、その状態で←キーを押したりすると元に戻ります。

 

クロスのパラメータ設定

最後に、クロスのパラメータを設定していきます。

今回は、下のように設定してみました。

f:id:aobayu:20190320104915p:plain

 衝突用オブジェクトと、クロスのみを表示し、動きに合わせてプロパティウィンドウ>物理演算タブの値を変更していきます。(このセットアップは、クロスプリセット:Leatherをベースに作っています。)

 また、スカートの下の方に行くほど、柔らかい動きをしてほしいので、左のように頂点グループ[pin2]を作成し、これをクロス剛性スケーリングに適用しています。

 

このように設定し、アニメーションを行うと以下のようにシミュレーションされます。

f:id:aobayu:20190320105841g:plain

 まだ少しメッシュがおかしくなってしまっていたり、動きがいまいちな部分もありますが、とりあえずは動いてくれました!必要に応じて衝突用オブジェクトを増やしたり、設定を変えたりして、狙った動きになるようにします。

 これをボーンアニメーションとして出力すれば、ほかのCGソフトやUnity などにスカートの動きも含めたアニメーションを出力できるはずです!

 

 また、現在は

クロスシミュ→IK→ボーン→ウエイト→スカート

という構造ですが、

クロスシミュ→IK→ボーン→ウエイト→スカートを覆えるサイズのダミーオブジェクト→メッシュ変形→スカート

とすることで、さらに綺麗に変形することができるかと思います。