メインコンテンツへスキップ
見出し画像

文系の blender 4.0 クロスシミュレーション 基本動作まとめ

    布のモデリングに便利なクロスシミュレーションですが、あくまで物理シミュレーションであることにはかわりなく、設定もやや複雑で多岐に渡り、思うような結果が出にくい面もあります。

    ここでは、そんなクロスシミュレーションを動作別に、比較的失敗のない方法を整理してみました。


    環境 Blender 4.0.2 , Mac Mini M1 OS 14.2



    初期設定


    ほぼどのシミュレーションにも共通の初期設定を下記に記述する。必ずしも必須ではなく、設定値も場合によって正しい値は異なるが、よい結果を得るためには、とくにコリジョンの設定は必要。


    物理演算


    通常、平面オブジェクトを30程度に細分化し、物理演算プロパティで「クロス」を選択、下記のように設定する。

    画像
    ここでは 1 m の平面を、辺 >  細分化 で 30 ほど細分化

    プリセットは「絹」(必須ではない)、クロスおよびコリジョンの品質、コリジョンの距離、セルフコリジョンの摩擦と距離、を変更している。

    画像
    コリジョン(Collision)は物理演算プロパティの中段下


    モディファイア


    作成された クロスモディファイアの下に、生成 >  ソリッド化(幅は 0.002m)、および、サブディビジョンサーフェスを適用。

    画像
    クロスモディファイアは一番上に設定する


    シミュレーション


    デフォルトでは、スペースバーを押し、クロスシミュレーションを開始する。停止も同じ。再度シミュレーションを始める場合は、最初のフレームまで巻き戻すのを忘れないこと。

    画像
    画面下部 タイムラインエディターの各ボタンで巻き戻し等ができる

    動画で基本の操作を確認したい場合は、文末の参考YouTubeサイトを参照してください。



    落とす


    クロスシミュレーションの基本動作。

    画像

    立方体など衝突させるオブジェクトには、物理演算プロパティの「コリジョン( Collision )」を適用し、クロスが滑り落ちるのを防ぐため、「ソフトボディとクロス」 > 摩擦( Friction ) を50 など大きめに設定する。

    画像
    画像
    ソフトボディとクロス項目はプロパティの最下部


    たたむ


    モデリングでもできないこともないが、比較的リアルな雰囲気で幾重に畳む際などに便利。

    画像
    画像

    コリジョンに設定する棒は、上同様に「摩擦」を 50 など大きくする。

    画像

    いちど畳んだ後また畳む場合は、いったんクロスモディファイアを「適用」し、ふたたび物理演算のクロスを適用する。文末に記した自動スクリプトが便利。


    つるす


    クロスの一部をピン留めする。

    画像
    画像
    画像
    ピン留めする頂点を選択し、データプロパティで + を押し、「割り当て」をクリックする。グループ名は任意。
    画像
    物理演算プロパティ シェイプ > 固定グループに、作成した頂点グループを設定


    つかむ


    フックを使い、ピン留めエリアを移動させる。フックの適用以外は上と同じ。

    画像
    画像
    • つかみたい点を選択し、頂点グループに登録。

    • メニュー「頂点」 > フック > 「新規オブジェクトにフック」を選択。

    • 頂点グループを固定グループに指定しシミュレーション開始後、フックオブジェクト(エンプティ)を動かす。

    画像
    フックモディファイアは必ずクロスモディファイアの上に配置する

    やや動作がトリッキーだが、ゆっくりフックを動かすのがコツ。インテリアシーンのベッドの端の整形などに便利。


    寄せる


    カーテンのモデリングなどによくあるテクニック。

    画像


    頂点グループの登録とフックの適用は上と同じ。シミュレーション開始後、フックオブジェクトのスケールを下の場合Y軸に縮める。

    画像
    画像
    適度の間隔で頂点グループを作成


    まとめる


    トーラスを使って、クロスをまとめる。通常のモデリングでもできるだろうが、いくぶんリアルに仕上がる。

    画像
    画像
    • カーテン上部をピン留めするか、物理演算プロパティの最下部で、Gravity(重力)をゼロにする。

    • トーラスを追加配置し、コリジョンを適用。摩擦は 50 など。

    • シミュレーションを開始し、ゆっくりとトーラスを縮小。

    これもやや慣れないと動作がトリッキー。とにかくゆっくりがコツ。


    吹かれる


    フォースフィールドで風をおくる。これもモデリングした場合との違いは微妙だが、比較的手順は簡単。

    画像
    画像
    • 上同様に、カーテンは上部をピン留め。

    • エンプティ > 十字 オブジェクトを追加し、物理演算プロパティから「フォースフィールド」を選択。

    • 「乱流」「風」いずれか、あるいは両方を設置し、強さはここでは 400〜500 とした。

    画像


    膨らませる


    プレッシャーをかける。クッションなどを作るのに便利な古典的テクニック。

    画像


    画像
    形状をやや不均一にしたほうがランダムなシワが出やすい

    この場合は、コリジョンやセルフコリジョンの設定、ソリッド化モディファイアも必要ない。左のように細分化したオブジェクトを作成し、物理演算プロパティの「圧力 ( Pressure )」をここでは 5 とし、シミュレーションを開始する。

    画像


    参考


    当記事では手順を細かく記述していないので、基本操作をビデオで確認したい場合はこちら。英語ですこし長いが、33分あたりからをみるだけで十分。下はカーテン関連。



    初期設定の自動化


    クロスシミュレーションのたびに設定するのはすこし面倒なので、自動化のためのスクリプトを下に書いた。

    • いずれかのウィンドウを「テキストエディタ」画面に変更。

    • 「新規」ボタンを押し、下のスクリプトをコピー・ペースト。

    • 布オブジェクトを選択し、▷ の実行ボタンを押す。

    画像
    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
    

    クロスシミュレーションの適用と各設定、ソリッド化およびサブディビジョンサーフェスの適用を自動で行える。
    なんどもクロスシミュレーションを続ける際に便利。

    いちどシミュレーションを行ったオブジェクトに再度シミュレーションをかける場合など、ソリッド化あるいはサブディビジョンサーフェスが残っていることがある。そのまま上のスクリプトをかけると各モディファイが2重にかかるので、あらかじめすでに設定されているモディファイアは削除する必要がある。


    まとめ


    クロスシミュレーションは、急にくしゃりと縮んだり、ふいにどこかの果てに飛んでいったりと、すこし動作がトリッキーなところが多く、わたしもあまり積極的に活用はしていませんでしたが、あらかじめ適正な設定をかけておくことで、トラブルの多くは未然に防ぐことができそうです。

    上手に使いこなすことができれば、布関連のモデリングにはやはり便利な機能です。参考になれば幸いです。


    あなたへのおすすめ