Blenderにはクロスシミュレーターも実装されているので、当たり前に布の表現が可能になっているのですが、コレを応用して別の用途で使うこともあります。この機能ですが、【 クロス縫合スプリング 】と言う機能を用いるとオブジェクトを包み込むように布がよっていく特性があるのでソレを用いると衣装などを設定しやすくなります。
まず、ダイナミクスですが、リッジドボディーの属性を入れる場合だと、
のような指定になりますが、この中に、クロスの項目もあります。この中の
が特殊な挙動をします。まず、
な感じの形状を
のように縮小し、新規に
のようなCUBEを追加します。その後、周辺の辺を削除して細分化を行い
のように分割した上下の面の変に存在する頂点同士をつないでいきます。というか、面を分割して押し出した後に、CUBEの側面の面のみを削除しても同じことになります。
とりあえず、この側面の部分のみを選択して(というか、辺の選択にしてCキーで範囲選択で側面の辺だけを選んだほうが速いかもしれません。)【 CTRL 】+【 G 】でグループ化します。
とりあえず、
のようにソフトとコリジョンの指定を行って、その上で、
のように先程選択したグループを追加して
のようにグループを指定しておきます。そして、
のように鑑賞させるためのオブジェクトを用意して
のように地面も追加したら、
のようにしておき、地面はパッシブで、CUBEはアクティブに設定し、
な感じでCutmul-Clarkで丸めておきます。この状態で
でダイナミクスのBAKEを行うと
のようになります。干渉する対象のサイズを変更すると、BAKEした演算結果も変わるので、その都度BAKEの必要が出てきます。とりあえず、包含されるCUBEのサイズを変えると
のように挙動も変わります。また、
のような形状でも適応が可能です。とりあえず、
のような感じにして実行すると
のようになります、。コレはサイズが大きすぎる場合に発生するのですが、サイズを
くらいまで小さくすると
な感じになります。
次に、
のような塊ですが、物体が柔らかい場合、潰れてしまうので、演算結果は
となり、厚みはなくなってしまいます。しかし、この時のプレビュー速度は遅延がなく行えるレベルのものになっていますし、BAKEの時間も先程の演算と同じレベルで行えていました。しかし、コレを
にした場合、BAKEの時間が長くなり、プレビューがいきなり重くなったのですが、
のように厚みが残り硬い表現が可能になります。こうした処理が重たいので、厚みのある布の場合、ダイナミクスの挙動をリグで継承させてそれを厚みのあるオブジェクトに適応するような流れで使うほうが演算も軽くBAKEの時間も伸びずに済むのですが、デフォルトの設定だと厚みっが残らないような質感になるので、物理演算でもう少し柔らかく、厚みが残るような材質を作ろうとすると演算が重くなります。その為、完全な物理演算による挙動を得たい場合は別ですが、疑似的なもので、同様の挙動に見えるものを得る場合には、シミュレーション結果を別のオブジェクトに適応して動かすような選択をシたほうがレンダリングやプレビュー時の負荷を減らすことが出来ます。