On this page

概要

Houdiniでオブジェクトを破壊する方法は主に2通りあります:

  • Voronoi Fracturing(ボロノイ破壊) はモデルを事前に破片に粉砕してから、それらの破片間にGlue(接着)拘束ネットワークを作成します。破片に十分な力が加わると、それらの破片が分離します。

  • ソリッドオブジェクト (有限要素法またはFEMとも呼ばれています)は、モデルを3Dの四面体で構成されたソリッドに変換します。FEMソルバはオブジェクトを“固体物質”としてシミュレーションします。これはつまり、物理パラメータに基づいて、オブジェクトを曲げたり、伸ばしたり、内部質量を変化させたり、欠けたり、崩れたり、粉砕することができます。

ソリッドオブジェクト は計算が遅いですが、精度が高いです。 ボロノイ破壊 はリアルさに欠けますが、計算が速いです。接近する“目立った”エフェクトに対してソリッドソルバを使い、背後にある目立たないエフェクトに対してボロノイ破壊を使うとよいでしょう。

Voronoi Fracturing(ボロノイ破壊)

  • RBDオブジェクトに対して Make Breakableシェルフツールを使います。Houdiniは自動的にオブジェクトを破壊して接着するノードリグを追加します。

Tip

最初の衝撃の時間により近く自動的に粉砕させるには、ソルバのサブステップの数を増やします。

  • もっとコントロールが必要であれば、SOP内で“手動で”ジオメトリを事前に破壊しておきます。

    1. ジオメトリネットワーク内にVoronoi Fractureノードを追加します。破壊したいジオメトリを1番目の入力に接続します。

    2. Voronoi Fractureノードの2番目の入力は、粉砕した破片の中心を意味するポイントクラウドを受け取ります。ジオメトリをIsoOffsetノードに接続してボリューム表現を作成し、そしてScatterを追加してボリューム内にポイントをばら撒き、そのScatterをVoronoi Fractureの2番目の入力に接続することで、簡単に中心点の数を変更することができます。

      他の方法でポイントを作成すれば、面白いエフェクトになります。例えば、Boxを使って通常のグリッドポイントを作成し、それを中心点として使えば、縦と横に規則的に破片を配置することができます。

    3. ネットワークエディタobj レベルで、ジオメトリオブジェクトを選択します。 Rigid Bodies シェルフタブのRBD Fractured Objectツールをクリックすれば、ジオメトリからRBDオブジェクトが作成されます。

    4. オブジェクトにRBD Glued Objectsツールを使えば、自動的に破片間にGlue Constraint Networkがセットアップされます。

以下のノードも、破壊ワークフローで役に立ちます。

  • Transform Pieces SOPはトランスフォームをパックプリミティブのPointアトリビュートにコピーします。シェルフツールがそのノードを使って、シミュレーションした破片のトランスフォーメーションをジオメトリネットワーク内のパックプリミティブにコピーします。シミュレーションした破片のトランスフォーメーションをディスクに書き出すワークフローでも同様に、Transform Pieces SOPを使ってレンダリング時にそのトランスフォーメーションを使ってポイントに重いジオメトリをインスタンス化することができます。

  • Exploded View SOPは、お互いに破片を引き離すことができます。これは破壊の結果の可視化やエフェクトで役に立ちます。

  • RBD Fractured Objectツールは、自動的にDOPネットワーク内のジオメトリをパック破片に変換することができます。しかし、ジオメトリネットワーク内の通常のジオメトリをパック破片に変換する必要があるなら、例えば、Assemble SOPを使います。

  • ボロノイ破壊で事前に破壊し、L字型のグループを取得していれば、Jitterの値を変更してみてください(例えば、デフォルトの0.80.25に変更)。

ソリッドオブジェクト(FEM)

役立つ情報

  • Debrisツールを使えば、粉砕した破片から別々にパーティクルを放出させることができます。これは、衝撃によって発生した埃と小さな破片をシミュレーションすることができます。

  • “大規模な”破片の作成にはボロノイ破壊を使い、あるフレームでジオメトリをソリッドオブジェクトに切り替えるといったハイブリッドなシミュレーションをセットアップすることができます。これをするための一番良い方法は、ボロノイ破壊をシミュレーションして、そのシミュレーションしたジオメトリをディスクにキャッシュ化し、キャッシュ化したジオメトリを使って、指定したフレームでソリッドオブジェクトに切り替えることです。

  • Alembic Procedural Shaderを使えば、低解像度のジオメトリをシミュレーションして、レンダリング時にそれを高解像度のジオメトリに置き換えることができます。Alembicプロキシジオメトリ(代用ジオメトリ)の使い方を参照してください。

ダイナミクス

ダイナミクスの学習

衝突オブジェクト

シミュレーションタイプ

次のステップ