文系の blender 4.0 クロスシミュレーション 基本動作まとめ
布のモデリングに便利なクロスシミュレーションですが、あくまで物理シミュレーションであることにはかわりなく、設定もやや複雑で多岐に渡り、思うような結果が出にくい面もあります。
ここでは、そんなクロスシミュレーションを動作別に、比較的失敗のない方法を整理してみました。
環境 Blender 4.0.2 , Mac Mini M1 OS 14.2
初期設定
ほぼどのシミュレーションにも共通の初期設定を下記に記述する。必ずしも必須ではなく、設定値も場合によって正しい値は異なるが、よい結果を得るためには、とくにコリジョンの設定は必要。
物理演算
通常、平面オブジェクトを30程度に細分化し、物理演算プロパティで「クロス」を選択、下記のように設定する。
モディファイア
作成された クロスモディファイアの下に、生成 > ソリッド化(幅は 0.002m)、および、サブディビジョンサーフェスを適用。
シミュレーション
デフォルトでは、スペースバーを押し、クロスシミュレーションを開始する。停止も同じ。再度シミュレーションを始める場合は、最初のフレームまで巻き戻すのを忘れないこと。
落とす
クロスシミュレーションの基本動作。
立方体など衝突させるオブジェクトには、物理演算プロパティの「コリジョン( Collision )」を適用し、クロスが滑り落ちるのを防ぐため、「ソフトボディとクロス」 > 摩擦( Friction ) を50 など大きめに設定する。
たたむ
モデリングでもできないこともないが、比較的リアルな雰囲気で幾重に畳む際などに便利。
つるす
クロスの一部をピン留めする。
つかむ
フックを使い、ピン留めエリアを移動させる。フックの適用以外は上と同じ。
つかみたい点を選択し、頂点グループに登録。
メニュー「頂点」 > フック > 「新規オブジェクトにフック」を選択。
頂点グループを固定グループに指定しシミュレーション開始後、フックオブジェクト(エンプティ)を動かす。
寄せる
カーテンのモデリングなどによくあるテクニック。
頂点グループの登録とフックの適用は上と同じ。シミュレーション開始後、フックオブジェクトのスケールを下の場合Y軸に縮める。
まとめる
トーラスを使って、クロスをまとめる。通常のモデリングでもできるだろうが、いくぶんリアルに仕上がる。
カーテン上部をピン留めするか、物理演算プロパティの最下部で、Gravity(重力)をゼロにする。
トーラスを追加配置し、コリジョンを適用。摩擦は 50 など。
シミュレーションを開始し、ゆっくりとトーラスを縮小。
吹かれる
フォースフィールドで風をおくる。これもモデリングした場合との違いは微妙だが、比較的手順は簡単。
上同様に、カーテンは上部をピン留め。
エンプティ > 十字 オブジェクトを追加し、物理演算プロパティから「フォースフィールド」を選択。
「乱流」「風」いずれか、あるいは両方を設置し、強さはここでは 400〜500 とした。
膨らませる
プレッシャーをかける。クッションなどを作るのに便利な古典的テクニック。
この場合は、コリジョンやセルフコリジョンの設定、ソリッド化モディファイルも必要ない。左のように細分化したオブジェクトを作成し、物理演算プロパティの「圧力 ( Pressure )」をここでは 5 とし、シミュレーションを開始する。
参考
当記事では手順を細かく記述していないので、基本操作をビデオで確認したい場合はこちら。英語ですこし長いが、33分あたりからをみるだけで十分。下はカーテン関連。
Cloth Physics for Beginners (YouTube)
Quick & Easy Curtains/Cloth in Blender (YouTube)
初期設定の自動化
クロスシミュレーションのたびに設定するのはすこし面倒なので、自動化のためのスクリプトを下に書いた。
いずれかのウィンドウを「テキストエディタ」画面に変更。
「新規」ボタンを押し、下のスクリプトをコピー・ペースト。
布オブジェクトを選択し、▷ の実行ボタンを押す。
import bpy
bpy.ops.object.modifier_add(type='CLOTH')
bpy.context.object.modifiers["Cloth"].settings.quality = 8
bpy.context.object.modifiers["Cloth"].collision_settings.collision_quality = 10
bpy.context.object.modifiers["Cloth"].collision_settings.distance_min = 0.005
bpy.context.object.modifiers["Cloth"].collision_settings.use_self_collision = True
bpy.context.object.modifiers["Cloth"].collision_settings.self_friction = 80
bpy.context.object.modifiers["Cloth"].collision_settings.self_distance_min = 0.005
bpy.ops.object.modifier_add(type='SOLIDIFY')
bpy.context.object.modifiers["Solidify"].thickness = 0.002
bpy.ops.object.modifier_add(type='SUBSURF')
bpy.context.object.modifiers["Subdivision"].levels = 2
クロスシミュレーションの適用と各設定、ソリッド化およびサブディビジョンサーフェスの適用を自動で行える。
なんどもクロスシミュレーションを続ける際に便利。
まとめ
クロスシミュレーションは、急にくしゃりと縮んだり、ふいにどこかの果てに飛んでいったりと、すこし動作がトリッキーなところが多く、わたしもあまり積極的に活用はしていませんでしたが、あらかじめ適正な設定をかけておくことで、トラブルの多くは未然に防ぐことができそうです。
上手に使いこなすことができれば、布関連のモデリングにはやはり便利な機能です。参考になれば幸いです。
この記事が気に入ったらサポートをしてみませんか?