On this page

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

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

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

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

    Image credit: Artem Smirnov

  • 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. SOPsを使ったシミュレーションをするならRBD Bullet Solverノードを使用し、DOPsにリジッドボディピースとして粉砕オブジェクトを取り込むなら Rigid Bodies シェルフの RBD Objectsツールを使用します。

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

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

クラスタ化

クラスタ化 とは、粉砕した破片を大きな塊にグループ化することを言います。主なクラスタ化のワークフローが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 Bullet Solver

SOPレベルで単純なBulletシミュレーションを作成することができます。 Houdini FXライセンスを所有しているなら、このソルバの中に入って、カスタムDOPフォースを使ってそのサブネットを編集することができます。 ライセンスを所有していないのであれば、SOPレベルのままで、このノード上に露出されたパラメータを使用することができます。

RBD Configure SOP

RBDオブジェクト別にそれぞれプロパティをセットアップすることができます。 さらに、入力ジオメトリとプロキシジオメトリがアンパックされていなければ、それをパックして、シミュレーションジオメトリ上にアトリビュートを作成します。

RBD Constraint Properties

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

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

RBD Interior Detail

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

RBD Cluster

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

RBD Exploded View

選択したジオメトリを中心から外に押し出して、粉砕ジオメトリがどのように分解されて拘束されているのかをうまく視覚化することができます。

RBD Convert Constraints

既存の拘束を受け取って、それらの拘束を異なるタイプの拘束(Center of Mass、Surface Points、Faces)に変換することができます。

RBD Connected Faces

粉砕ジオメトリの内側フェースのプリミティブ番号と反対側のフェースまでの距離を記録します。 この情報を使用することで、分解されていない破片の内側フェースを削除するかどうか決めることができます。

RBD Disconnected Faces

繋がっていたフェースが分離されたかどうかを判断し、その結果をアトリビュートとして格納、または、繋がっていた/繋がっていなかったフェースを削除します。

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

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

Enumerate

選択したポイント/プリミティブ上のアトリビュートに連番の数値または文字列を設定します。 これによって、Wrangle SOPを使用しなくても、簡単に破片の名前に接頭辞を付けることができます。

破壊

材質別のRBD粉砕

次のステップ

材質ベースの破壊の紹介

  • はじめよう

    ソースシーンを読み込んで、それについて見ていきましょう。

  • チュートリアル

    ステップバイステップで学ぶ材質ベースの破壊入門。