On this page |
概要 ¶
リジッドボディシミュレーションにおいて、何かしらの衝撃やフォースによってソリッドオブジェクトを分解させたいことがよくあります。 例えば、地震によって家を破壊させる時に、コンクリートの壁を破壊したり、木材のドアを割ったり、ガラス窓を粉砕したいことがあります。 または、鉄球で壁を打ち抜きたいこともあるでしょう。
-
Houdiniのほとんどの粉砕ツールは、SOPsを使ってジオメトリを分解し、それらの破片を 接着拘束 を使って接合した状態の 事前粉砕 のワークフローに対応しています。 事前粉砕は、破壊のルックをアーティスト目線で完全に制御することができます(例えば、破片を大きなブロックにしたり、小さくギザギザにした破片にすることができます)。 フォースが接着強度を超えた時にオブジェクトが崩れたり、手動で接着の有効無効をアニメーションさせてオブジェクトを分解させることができます。
ジオメトリを事前粉砕するハイレベルなツールこそがRBD Material Fracture SOPであり、色々なタイプの粉砕に対して豊富なコントロールが備わっています。 粉砕に対してもっとコントロールが必要であれば、ローレベルのSOPsがたくさん用意されています。
-
DOPシミュレーション中に 動的な粉砕 を行なうこともできます。詳細は、Make Breakableツールのヘルプを参照してください。
一般的なワークフロー ¶
|
異なるマテリアル(コンクリート、木材、硝子)に関係付けられた分解パターンをシミュレーションします。
|
-
RBD Material Fractureノードを使用することで、SOPsでモデルを事前粉砕することができます。
-
RBD Material Fractureは、粉砕した破片間に接着拘束を自動的に作成します。 Constraints タブの Primary Strength に、必要な初期接着強度を設定します。
粉砕オブジェクトをRBDシミュレーションにインポートした後に(次のステップを参照)、RBD Material Fractureノードに戻って設定を編集し、その接着強度を編集することで、接着させる破片の数を制御することができます。
この値は、破片のサイズとウェイト、表現したいエフェクトの種類に依存します。通常では、
1
の値はすぐに分解されます。他のRBDオブジェクトに当たるまでモデルを引っ付けたままにしたいのであれば、そのモデル自体がそのまま十分に維持できて、且つ、衝撃によって拘束が簡単には切れないほどのレベルの強さを接着強度で微調整する必要があります。
-
オブジェクトレベルに戻って、粉砕オブジェクトを選択します。 Rigid Bodies シェルフタブの RBD Objectsツールをクリックして、そのオブジェクトをリジッドボディの破片としてDOPsに取り込みます。
利用可能なツールの情報は、この残りのページを参照してください。
Tips ¶
-
Groupノードを使ってプリミティブのグループに名前を付けます。例えば、ドア、個々の窓、壁に対してグループを作成します。これによって、各グループをそれぞれ粉砕させることができます。
-
シミュレーションで破片が揺れてしまっていたら、POP DragノードやPOP Drag Spinノードを追加して、それらの破片をフリーズさせることができます。
-
RBD SOPsの Output for View メニューを使用することで、表示させたい出力を選択することができます。デフォルトでは、1番目の出力(Geometry)が表示されます。しかし、 Constraint Geometry や Proxy Geometry に切り替えることもできます。
-
RBD SOPsの出力上でクリックすると、それぞれの出力のデータが表示されます。さらに、入力上でクリックすると、その入力のジオメトリデータを辿ることができます。
RBD SOPの入力と出力 ¶
RBD Material Fractureノードといくつかの他のRBD SOPノードは、入力と出力の整合性を共有しています。 それによって、粉砕ジオメトリと並行して、ネットワークを通じて拘束ジオメトリとプロキシジオメトリを送信することができます。
-
1番目の入力/出力は、高解像度表示ジオメトリです。
-
2番目の色付きの入力/出力は、拘束ネットワークジオメトリです。
-
3番目の入力/出力は、低解像度プロキシジオメトリです。
拘束ネットワーク ¶
RBD Material Fractureツールは、ジオメトリを粉砕させるだけでなく、それらの破片間に拘束を作成します。 もっと拘束を作成したいのであれば、その粉砕処理とは別に拘束を作成可能なSOPsが3つあります。 それらのSOPsは、3入力/3出力のRBDワークフローに準拠していて、拘束を構築するためのコントロールがたくさん備わっています。 これは、2つの異なるタイプの材質を粉砕させたい時や破片間に境界拘束を作成したい時に役立ちます。
このツールは、単にビューポート内で接続したい破片間をクリックして拘束を描画するだけで、非常に対話的にその拘束を構築することができます。 その拘束を描画したら、 Connection Type を選択して、その拘束のセットアップ方法を決定することができます。 詳細は、RBD Constraints From Linesのヘルプページを参照してください。
このツールは、ビューポート内にカーブを描画することができ、指定した検索半径内にある隣接破片のジオメトリのポイント間に拘束を作成します。 他にも、RBD Constraints from Curvesでは4番目の入力にカーブを指定することができるので、このノードをプロシージャルに使用することができます。 詳細は、RBD Constraints From Curvesのヘルプページを参照してください。
このツールは、ルールと条件のセットに基づいて拘束を作成することができるプロシージャルノードです。
これら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 拘束は、拘束される破片の重心を計算して、その重心間に拘束を作成します。 |
拘束ネットワークを理解する ¶
Houdiniは、 拘束ジオメトリ を使ってSOPsで拘束をセットアップすることができます。 この拘束ジオメトリは、ジオメトリ破片間の拘束の関係性を示したアトリビュート付きのポリラインセットです。 この拘束ジオメトリは、DOPネットワークに取り込まれた時に、それに該当するDOP拘束に変換されます。 これによって、ジオメトリとアトリビュートの編集に特化した多くのSOPノードを使って、拘束をセットアップ、編集、可視化するのが簡単になっています。
-
各拘束は、2点間ポリラインで表現されています。
-
各ポリラインは、拘束タイプを指定した
constraint_type
Primitiveアトリビュートを持っています。よく使用する2つのRBD拘束タイプは、glue
とsoft
の拘束です。Glue 拘束は、フォースの量が 接着強度 を超えない限り、2個の破片間の接着を維持します。
Soft 拘束は、スプリングと同様ですが、伸縮ではなく割れるまで屈曲します。
-
ポリラインには、拘束に関係のあるPrimitiveアトリビュートを追加することができます。例えば、接着拘束なら
strength
、ソフト拘束ならstiffness
とdampening
があります。 -
2個の端点にはそれぞれ、その端点が表現する破片の名前を指定した
name
アトリビュートが付いています。 -
この端点の位置は、例えばアンカーポイントとして別の拘束に使用することができます。
破片の事前拘束 ¶
複数の繋がった破片を色々な方法で粉砕させたい場合、RBD Material Fractureを使って分解させる前に、 オプションで RBD Constraints From Rulesノードを使用することができます。
例えば、家を破壊する場合、ドアと窓をそれらが組まれている壁に拘束して開始することができます。
RBD Material Fractureノードは、個々のオブジェクトを分解する時に、知的に既存の拘束の更新を試みます。 そのため、例えば、1枚の窓ガラスがそれを囲んだ窓枠に取り付けられている場合、RBD Material Fractureがその窓ガラスを粉砕しても、外側の破片はその窓枠に取り付けられた状態を維持します。
低解像度プロキシジオメトリ ¶
RBD Material Fractureノードは、高速な低解像度プロキシジオメトリでも動作します。 同じ名前の破片を持った高解像度ジオメトリと低解像度ジオメトリをセットアップする必要があります(例えば、高解像度ジオメトリを名前の付いた破片に分解してから、それをコピーしてポリゴン数を減らすことで、プロキシを作成することができます)。
クラスタ化 ¶
クラスタ化 とは、粉砕した破片を大きな塊にグループ化することを言います。主なクラスタ化のワークフローが2つあります:
-
大量の破片を永久的に引っ付けたいだけであれば、それらの破片すべてに同じ
name
アトリビュートを設定します。破片に対して動作するノードは、それらの破片を1個の破片として扱います。これは、例えば、木材を割る時に、小さな割れを大きなギザギザの塊にしたい場合に役立ちます。
-
特定の直接的な崩壊エフェクトでは、ショットで最初は大きな破片を扱って、ショットの最後にそれらを小さな破片に分解させたいことがよくあります。これは、接着拘束を階層化することで可能です。高レベルの拘束の無効化をアニメーションさせていくことで、大きな破片から小さな破片へと分解させることができます。
RBD Material Fractureノードは、 Material Type が“Wood”の時にクラスタ化コントロールを用意します。 RBD Clusterノードを使えば、手動でクラスタ化を行なうことができます。
粉砕オブジェクトをDOPsにインポートする ¶
Rigid Bodies シェルフには、ジオメトリオブジェクトをDOPシミュレーションにインポートするためのツールがあります。
|
このツールを使えば、粉砕オブジェクトをインポートすることができます 。これは、名前の付いた破片を自動的に別のBulletオブジェクトとして扱い、その拘束ネットワークジオメトリをBullet拘束に変換します。 |
他のリジッドボディシミュレーションツール:
|
これは、オブジェクトを単体の分解不可な要素としてインポートします。 粉砕ジオメトリのインポートでは、これを使用しないでください 。 |
|
|
このツールは、接着の緩い破片を含んだオブジェクトをインポートして、それらの破片間に接着を追加します。 RBD Material Fractureを使って作成した粉砕ジオメトリのインポートでは、これを使用しないでください 。その理由は、そのノードは既に接着拘束を自動で作成しているからです。 |
|
|
シミュレーションの衝撃に反応して 動的に粉砕 するオブジェクトをセットアップします。 |
|
|
崩れた破片のエッジからパーティクルを生成します。これらのパーティクルを使うことで、煙、埃、中礫などをセカンダリエフェクトとしてインスタンス化することができます。 |
RBD SOPサポートノード ¶
以下のノードは、RBD Material Fractureノードを扱います。これらのノードすべてがRBD Material Fractureと同じ入力と出力を持っています。
|
入力ジオメトリ上にアトリビュートをペイントして、粉砕の挙動を制御することができます。例えば、粉砕を多く発生させたい箇所をペイントすることができます。
|
|
|
拘束ジオメトリを編集します。これは、RBD Material Fractureノードの Constraints タブのパラメータと同等の機能性を備えています。 これを便利なインターフェースとして使用することで、もっと複雑な独自拘束を作成したい場合に、その拘束ネットワークの値を編集することができます。 |
|
|
粉砕後に露呈した内側サーフェスにノイズを追加します。これは、RBD Material Fractureノードの Detail タブのパラメータと同等の機能性を備えています。 |
|
|
破片を大きな破片にグループ化します。これは、 Material Type が“Wood”の時のRBD Material Fractureノードの Cluster タブのパラメータと同等の機能性を備えています。 |
|
|
3本のRBD SOP入力(Geometry入力、Constraint Geometry入力、Proxy Geometry入力)を1本の出力に結合します。 |
|
|
Geometry出力、Constraint Geometry出力、Proxy Geometry出力を、別のRBD SOP形式の出力に分割します。 |
|
|
ビューポート内でインタラクティブに描画したラインからリジッドボディ拘束ジオメトリを作成します。 |
|
|
ビューポート内でインタラクティブに描画したカーブからリジッドボディ拘束ジオメトリを作成します。 |
|
|
ルールと条件のセットからリジッドボディ拘束ジオメトリを作成します。 |
関連SOPs ¶
RBD Material Fractureノードは、内部的に以下のローレベルノードを使用しています。必要に応じて、これらのノードを別々に使用することができます。
|
Booleanノードの切断サーフェスの交差を使って、ジオメトリを破片に分割します。 |
|
|
ジオメトリ内のばら撒きポイントから細胞パターンを作成することで、ジオメトリを粉砕します。 |
|
|
(接続性または |
ローレベルSOPs ¶
以下のSOPはローレベルノードであり、RBD Material Fracture SOP内部でたくさん使用して機能が実装されています。 独自の複雑な粉砕処理を行ないたいのであれば、それらのノードを調べると役立つことでしょう。
|
接続性と近接度に基づいた拘束ジオメトリを作成します。これは、RBD Material Fractureに含まれている機能性を実装するためのローレベルノードです。 |
|
|
接続性に基づいて |
|
|
ボロノイ破壊用の非常にローレベルなノード。 |
|
|
ボロノイ破壊用の非常にローレベルなノード。 |