Blender で剛体 + ボーンで髪のアニメーション(2.79 以前のみ)
この記事で解説する、エンプティを使わない剛体コンストレイントは 2.79 以前のバージョンでしか使えない。Blender 2.80 以降の新しい Dependency Graph では以下のやり方は依存エラーが出る。2.80 での設定方法はリジッドボディ + ボーンで髪のアニメーションを参照。
コリジョンの設定
例えば以下のようなメッシュを用意する。
![setup](../images/blender-rigidbody-hair-setup.jpg)
ただしアニメーションさせる剛体の最初と最後のボックスにはボーンを設定しない。これらのボックスはボーンの位置をきめるのに使う。
アニメーションさせる剛体の原点の位置をボックスの上面に設定しておく。
![set origin](../images/blender-rigidbody-hair-set-origin.jpg)
剛体の設定
まず体のコリジョンを設定する。剛体を以下のように設定する。
![body setting](../images/blender-rigidbody-hair-body-setting.jpg)
つぎにアニメーションさせる剛体を設定する。それぞれのボックスを以下のように設定する。
![first](../images/blender-rigidbody-hair-first-box.jpg)
![other box](../images/blender-rigidbody-hair-other-box.jpg)
剛体コンストレイントのオブジェクト1は自分自身を設定し、オブジェクト2はひとつ前のオブジェクトを設定する。
設定が成功していれば、アニメーションさせながら最初のアニメーションさせる剛体を移動すると以下のように動く。
![demo](../images/blender-rigidbody-hair-rigidbody-setup-demo.gif)
ボーンの設定
後はボックスの位置にボーンを配置し、位置コピーと IK を設定するだけだ。
このときボックスの X 軸とボーンの X 軸を一致させておくといい。ボーンのロールはプロパティシェルフ(N)のロールで設定できる。
![set axis](../images/blender-rigidbody-hair-set-axis.jpg)
![roll](../images/blender-rigidbody-hair-set-roll.jpg)
![constraint](../images/blender-rigidbody-hair-constraint.jpg)
体や頭のボーンを親としてアニメーションさせる剛体の最初のボックスを親子付けすると以下のようになる。
![demo](../images/blender-rigidbody-hair-comp-demo.gif)
設定
動作速度が遅い場合はシーンの速度を変更する。
![speed](../images/blender-rigidbody-hair-speed.jpg)
剛体の揺れを抑える時は剛体力学の減衰やばねの減衰を大きくする。
![damping](../images/blender-rigidbody-hair-damping.jpg)
凸包の注意点
凸包はへこみを表現できない。実際に凸のような形に凸包を適用すると以下のようになる。
![convex](../images/blender-rigidbody-hair-convex-collision.jpg)
このような場合はコリジョンメッシュを分割してへこみをなくすようにする。
Blenderで簡単にRigid Body(剛体)とConstraint(ジョイント)を設定できるaddon