Houdini 18.0 ダイナミクス

シミュレーション用の粉砕オブジェクト

On this page

概要

リジッドボディシミュレーションにおいて、何かしらの衝撃やフォースによってソリッドオブジェクトを分解させたいことがよくあります。 例えば、地震によって家を破壊させる時に、コンクリートの壁を破壊したり、木材のドアを割ったり、ガラス窓を粉砕したいことがあります。 または、鉄球で壁を打ち抜きたいこともあるでしょう。

  • Houdiniのほとんどの粉砕ツールは、SOPsを使ってジオメトリを分解し、それらの破片を 接着拘束 を使って接合した状態の 事前粉砕 のワークフローに対応しています。 事前粉砕は、破壊のルックをアーティスト目線で完全に制御することができます(例えば、破片を大きなブロックにしたり、小さくギザギザにした破片にすることができます)。 フォースが接着強度を超えた時にオブジェクトが崩れたり、手動で接着の有効無効をアニメーションさせてオブジェクトを分解させることができます。

    ジオメトリを事前粉砕するハイレベルなツールこそがRBD Material Fracture SOPであり、色々なタイプの粉砕に対して豊富なコントロールが備わっています。 粉砕に対してもっとコントロールが必要であれば、ローレベルのSOPsがたくさん用意されています。

  • DOPシミュレーション中に 動的な粉砕 を行なうこともできます。詳細は、Make Breakableツールのヘルプを参照してください。

一般的なワークフロー

RBD Material Fracture

異なるマテリアル(コンクリート、木材、硝子)に関係付けられた分解パターンをシミュレーションします。

  • 複数レベルでの粉砕を繰り返すことができます。

  • 低解像度のプロキシジオメトリをシミュレーションして、その破片トランスフォームを高解像度ジオメトリにコピーすることができます。

  • 破片間に接着拘束を自動的にセットアップします。

  • 粉砕時に既存の拘束ジオメトリを更新します。

  • もっと複雑な後処理をしたいのであれば、粉砕に関する情報をグループやアトリビュートとして出力します。

  1. RBD Material Fractureノードを使用することで、SOPsでモデルを事前粉砕することができます。

  2. RBD Material Fractureは、粉砕した破片間に接着拘束を自動的に作成します。 Constraints タブの Primary Strength に、必要な初期接着強度を設定します。

    粉砕オブジェクトをRBDシミュレーションにインポートした後に(次のステップを参照)、RBD Material Fractureノードに戻って設定を編集し、その接着強度を編集することで、接着させる破片の数を制御することができます。

    この値は、破片のサイズとウェイト、表現したいエフェクトの種類に依存します。通常では、1の値はすぐに分解されます。

    他のRBDオブジェクトに当たるまでモデルを引っ付けたままにしたいのであれば、そのモデル自体がそのまま十分に維持できて、且つ、衝撃によって拘束が簡単には切れないほどのレベルの強さを接着強度で微調整する必要があります。

  3. オブジェクトレベルに戻って、粉砕オブジェクトを選択します。 Rigid Bodies シェルフタブの RBD Objectsツールをクリックして、そのオブジェクトをリジッドボディの破片としてDOPsに取り込みます。

利用可能なツールの情報は、この残りのページを参照してください。

Tips

  • Groupノードを使ってプリミティブのグループに名前を付けます。例えば、ドア、個々の窓、壁に対してグループを作成します。これによって、各グループをそれぞれ粉砕させることができます。

  • シミュレーションで破片が揺れてしまっていたら、POP DragノードやPOP Drag Spinノードを追加して、それらの破片をフリーズさせることができます。

  • RBD SOPsの Output for View メニューを使用することで、表示させたい出力を選択することができます。デフォルトでは、1番目の出力(Geometry)が表示されます。しかし、 Constraint GeometryProxy Geometry に切り替えることもできます。

  • RBD SOPsの出力上でクリックすると、それぞれの出力のデータが表示されます。さらに、入力上でクリックすると、その入力のジオメトリデータを辿ることができます。

RBD SOPの入力と出力

RBD Material Fractureノードといくつかの他のRBD SOPノードは、入力と出力の整合性を共有しています。 それによって、粉砕ジオメトリと並行して、ネットワークを通じて拘束ジオメトリとプロキシジオメトリを送信することができます。

拘束ネットワーク

RBD Material Fractureツールは、ジオメトリを粉砕させるだけでなく、それらの破片間に拘束を作成します。 もっと拘束を作成したいのであれば、その粉砕処理とは別に拘束を作成可能なSOPsが3つあります。 それらのSOPsは、3入力/3出力のRBDワークフローに準拠していて、拘束を構築するためのコントロールがたくさん備わっています。 これは、2つの異なるタイプの材質を粉砕させたい時や破片間に境界拘束を作成したい時に役立ちます。

RBD Constraints From Lines

このツールは、単にビューポート内で接続したい破片間をクリックして拘束を描画するだけで、非常に対話的にその拘束を構築することができます。 その拘束を描画したら、 Connection Type を選択して、その拘束のセットアップ方法を決定することができます。 詳細は、RBD Constraints From Linesのヘルプページを参照してください。

RBD Constraints From Curves

このツールは、ビューポート内にカーブを描画することができ、指定した検索半径内にある隣接破片のジオメトリのポイント間に拘束を作成します。 他にも、RBD Constraints from Curvesでは4番目の入力にカーブを指定することができるので、このノードをプロシージャルに使用することができます。 詳細は、RBD Constraints From Curvesのヘルプページを参照してください。

RBD Constraints From Rules

このツールは、ルールと条件のセットに基づいて拘束を作成することができるプロシージャルノードです。

これら3つの拘束ノードはどれもRest Length(自然長)アトリビュートが付いた単純なプリミティブを作成します。 後でRBD Constraint Properties SOPノードを使用することで、拘束グループを作成したり、拘束タイプ(例えば、接着拘束またはソフト拘束)をセットアップすることができます。 Constraint Network DOPのヘルプには、拘束ネットワークに関するより詳しい情報が載っています(Constraint Networkは、SOP拘束ジオメトリをそれと同等のDOP拘束に変換する役割を担ったローレベルのDOPノードです)。

接続のタイプ

これらの3つの拘束ノード(RBD Constraints From Lines, RBD Constraints From Curves, RBD Constraints From Rules)はどれも以下のタイプの接続を選択することができます。

デフォルトで作成される接続は Hinges です。このHingesは、破片間にヒンジのような拘束を作成します。これは拘束ライン上に白いドットで可視化することができます。

Surface Points 拘束を描画すると、破片上でマウスクリックした位置にその拘束を配置するためのアンカーポイントが作成されます。

Center of Mass 拘束は、拘束される破片の重心を計算して、その重心間に拘束を作成します。

低解像度プロキシジオメトリ

RBD Material Fractureノードは、高速な低解像度プロキシジオメトリでも動作します。 同じ名前の破片を持った高解像度ジオメトリと低解像度ジオメトリをセットアップする必要があります(例えば、高解像度ジオメトリを名前の付いた破片に分解してから、それをコピーしてポリゴン数を減らすことで、プロキシを作成することができます)。

クラスタ化

クラスタ化 とは、粉砕した破片を大きな塊にグループ化することを言います。主なクラスタ化のワークフローが2つあります:

  • 大量の破片を永久的に引っ付けたいだけであれば、それらの破片すべてに同じnameアトリビュートを設定します。破片に対して動作するノードは、それらの破片を1個の破片として扱います。

    これは、例えば、木材を割る時に、小さな割れを大きなギザギザの塊にしたい場合に役立ちます。

  • 特定の直接的な崩壊エフェクトでは、ショットで最初は大きな破片を扱って、ショットの最後にそれらを小さな破片に分解させたいことがよくあります。これは、接着拘束を階層化することで可能です。高レベルの拘束の無効化をアニメーションさせていくことで、大きな破片から小さな破片へと分解させることができます。

RBD Material Fractureノードは、 Material Type が"Wood"の時にクラスタ化コントロールを用意します。 RBD Clusterノードを使えば、手動でクラスタ化を行なうことができます。

粉砕オブジェクトをDOPsにインポートする

Rigid Bodies シェルフには、ジオメトリオブジェクトをDOPシミュレーションにインポートするためのツールがあります。

RBD Objects

このツールを使えば、粉砕オブジェクトをインポートすることができます 。これは、名前の付いた破片を自動的に別のBulletオブジェクトとして扱い、その拘束ネットワークジオメトリをBullet拘束に変換します。

他のリジッドボディシミュレーションツール:

RBD Hero object

これは、オブジェクトを単体の分解不可な要素としてインポートします。 粉砕ジオメトリのインポートでは、これを使用しないでください

RBD Glued Objects

このツールは、接着の緩い破片を含んだオブジェクトをインポートして、それらの破片間に接着を追加します。 RBD Material Fractureを使って作成した粉砕ジオメトリのインポートでは、これを使用しないでください 。その理由は、そのノードは既に接着拘束を自動で作成しているからです。

Make Breakable

シミュレーションの衝撃に反応して 動的に粉砕 するオブジェクトをセットアップします。

Debrisシェルフツール

崩れた破片のエッジからパーティクルを生成します。これらのパーティクルを使うことで、煙、埃、中礫などをセカンダリエフェクトとしてインスタンス化することができます。

RBD SOPサポートノード

以下のノードは、RBD Material Fractureノードを扱います。これらのノードすべてがRBD Material Fractureと同じ入力と出力を持っています。

RBD Paint

入力ジオメトリ上にアトリビュートをペイントして、粉砕の挙動を制御することができます。例えば、粉砕を多く発生させたい箇所をペイントすることができます。

  1. ネットワーク内のRBD Material Fractureノードの上流で、このノードを配置します。

  2. このノードを使用することで、粉砕を多く発生させたい箇所にdensityアトリビュートをペイントすることができます。

  3. そのノードの下流にあるRBD Material Fractureノードで、 Scatter From を"Attribute"に設定します。

RBD Constraint Properties

拘束ジオメトリを編集します。これは、RBD Material Fractureノードの Constraints タブのパラメータと同等の機能性を備えています。

これを便利なインターフェースとして使用することで、もっと複雑な独自拘束を作成したい場合に、その拘束ネットワークの値を編集することができます。

RBD Interior Detail

粉砕後に露呈した内側サーフェスにノイズを追加します。これは、RBD Material Fractureノードの Detail タブのパラメータと同等の機能性を備えています。

RBD Cluster

破片を大きな破片にグループ化します。これは、 Material Type が"Wood"の時のRBD Material Fractureノードの Cluster タブのパラメータと同等の機能性を備えています。

RBD Pack

3本のRBD SOP入力(Geometry入力、Constraint Geometry入力、Proxy Geometry入力)を1本の出力に結合します。

RBD Unpack

Geometry出力、Constraint Geometry出力、Proxy Geometry出力を、別のRBD SOP形式の出力に分割します。

RBD Constraints From Lines

ビューポート内でインタラクティブに描画したラインからリジッドボディ拘束ジオメトリを作成します。

RBD Constraints From Curves

ビューポート内でインタラクティブに描画したカーブからリジッドボディ拘束ジオメトリを作成します。

RBD Constraints From Rules

ルールと条件のセットからリジッドボディ拘束ジオメトリを作成します。

関連SOPs

RBD Material Fractureノードは、内部的に以下のローレベルノードを使用しています。必要に応じて、これらのノードを別々に使用することができます。

Boolean Fracture

Booleanノードの切断サーフェスの交差を使って、ジオメトリを破片に分割します。

Voronoi Fracture

ジオメトリ内のばら撒きポイントから細胞パターンを作成することで、ジオメトリを粉砕します。

Exploded View

(接続性またはnameアトリビュートに基づいて)お互いにジオメトリを引き離します。このノードは、破片の形状を可視化するのに役立ちます。

ローレベルSOPs

以下のSOPはローレベルノードであり、RBD Material Fracture SOP内部でたくさん使用して機能が実装されています。 独自の複雑な粉砕処理を行ないたいのであれば、それらのノードを調べると役立つことでしょう。

Connect Adjacent Pieces

接続性と近接度に基づいた拘束ジオメトリを作成します。これは、RBD Material Fractureに含まれている機能性を実装するためのローレベルノードです。

Assemble

接続性に基づいてnameアトリビュートを破片に割り当てます。

Voronoi Fracture Points

ボロノイ破壊用の非常にローレベルなノード。

Voronoi Split

ボロノイ破壊用の非常にローレベルなノード。

ダイナミクス

ダイナミクスの学習

衝突オブジェクト

シミュレーションタイプ

非DOPシミュレーション

次のステップ