On this page |
拘束ネットワーク ¶
RBD Material Fractureツールは、ジオメトリを粉砕させるだけでなく、それらの破片間に拘束を作成します。 もっと拘束を作成したいのであれば、その粉砕処理とは別に拘束を作成可能なSOPsが3つあります。 それらのSOPsは、3入力/3出力のRBDワークフローに準拠していて、拘束を構築するためのコントロールがたくさん備わっています。 これは、2つの異なるタイプの材質を粉砕させたい時や破片間に境界拘束を作成したい時に役立ちます。
Tip
拘束系ノードには、破片間に拘束を作成する方法に関するショートカットと情報を表示するHUDが備わっています。 ビューポート内でEnterを押すと、Draw/Editモードが有効になります。次に、⇧ Shift + F1を押すとHUDが表示されます。
Tip
破片がオブジェクトの内側にあって他の破片で遮られていることが原因でその破片にアクセスできない場合があります。 そのような遮られた破片にアクセスするには、 Geometry Culling を有効にすると良いです。 次に、マウスをビューポート上に移動させて5を押すと、カスタマイズ可能な境界ボックスが表示されます。 その境界ボックスより外にあるすべてのものが非表示になります。
このノードはビューポート内で破片間に拘束を作成したり編集することができます。 繋げたい破片間でインタラクティブに拘束を描画することができます。 その拘束を描画したら、 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 拘束は、拘束される破片の重心を計算して、その重心間に拘束を作成します。 |
RBD拘束の変換 ¶
RBD Convert Constraints SOPは、既存の拘束を受け取って、別のタイプの拘束に簡単に変換することができます。 Constraint Type ドロップダウンメニューで、変換先の拘束タイプを Center of Mass 、 Surface Points 、 Faces から選択することができます。
Tip
RBD Exploded View SOPを使用することで、拘束がどのように破片を接続しているのかうまく視覚化することができます。
Center of Mass
Surface Points
Faces
詳細は、RBD Convert Constraints SOPのヘルプのページを参照してください。
円錐ツイスト拘束プロパティ ¶
RBD Cone Twist Constraint Properties SOPは、そのノード自体のグローバルパラメータを直接編集したり、または、拘束アトリビュートを個別に編集することで、ビューポート内でインタラクティブに拘束を編集することができます。 このノードには、回転制限、捻り軸、移動範囲などの指定ができる高度なオプションがたくさん用意されています。
主軸の捻り許容量の角度範囲、さらには、円錐内の回転制限を設定することができます。 これらの軸は、たいていの場合に同じになるため、拘束されるオブジェクトとゴールオブジェクトに対して整列します。 ビューポート内で個々の拘束を手動で編集したり、複数選択してすべて同じ編集を適用することができます。
水色の線は、拘束されるオブジェクトの捻り軸を示していて、濃い青い円錐(回転境界)内ならどの方向にも揺らすことができます。 黄色い境界は、その捻り軸で許容される捻り量を示しています。
To... | Do this |
---|---|
オブジェクトが円錐の端に当たる境界を和らげる。 |
Angular Limit Stiffness パラメータを下げることで、オブジェクトは跳ね返り前にもっと自由に揺れることができます。 |
他にも、 Translation Limits を設定することで、設定された制限内でピースをお互いに引き離すことができます。
デフォルトでは、この Translation Limits は0
に設定されていますが、制限を設定すると、ビューポートにはその制限が視覚的に表示されます。
例えば、捻り軸沿いの移動を有効にすると、ビューポートには、アンカーポイントがお互いを引き離すことができる距離を示した2つの正方形が表示されます。
これは、車のピストンやサスペンションシステムのシミュレーションなどの機械的なセットアップに役立ちます。
移動は、3軸すべてに沿って可能です。 2軸を設定すると、ビューポートではそれが平面的な表示になり、3軸すべてを設定すると、拘束が移動可能な範囲のボックスが表示されます。
Tip
拘束されるオブジェクトのペアが非常に近い場合、 Disable Collisions をオンにすることで、それらのオブジェクト間のコリジョンを無効にすることができます。 これによって、そのコリジョンが回転拘束や移動拘束の妨げにならなくなるので、より広い動きが得られるようになります。 さらには、微震の挙動を軽減することができます。
To... | Do this |
---|---|
オブジェクトが移動境界の端に当たる境界を和らげる。 |
Position Limit Stiffness パラメータを下げることで、境界が和らぎ、オブジェクトがもっと弾むようになります。 |
Motor パラメータには、オブジェクトが到達しようとする特定のターゲット回転とターゲット位置を設定するオプションが用意されています。 この Motor はビューポートでは緑で表現され、拘束が引っ張っていく先を意味します。
Tip
Target Current Pose オプションを使用すると、常に現行位置が新しいrestステートとなるので、可塑性を表現するのに役立ちます。 このオプションは、オブジェクトをすべてのフレームで現行の向きに留まらせようとします。 また、オブジェクトが跳ね返ろうとするのも防止します。
To... | Do this |
---|---|
すべての拘束を選択する。 |
ビューポート内で⌃ Ctrl + Aを押します。 |
ビューポート内でハンドルを使用して、パラメータエディタの値を調整し、それらの値をすべての拘束に適用する。 |
ツールバーの Edit Parms チェックボックスを有効にします。 これは、手動による編集がないすべての拘束に変更を適用します。 ビューポート内でPを押すことでも、これを有効にすることができます。 |
手動によるすべての編集をクリアする。 |
ツールバーまたはパラメータエディタの Clear Edits ボタンをクリックします。 |
現在編集している拘束をデフォルト値にリセットする。 |
ビューポート内でUを押します。 これは“undo”オプションのように動作します。 |
現在編集しているモーターをデフォルト値にリセットする。 |
ビューポート内でIを押します。 これは“undo”オプションのように動作します。 |
拘束制限をコピーアンドペーストする。 |
|
Motorパラメータをアクティブにする。 |
ビューポート内でOを押すと、Motorパラメータが有効になります。 これは、パラメータエディタで Motor チェックボックスを有効にすることと同じです。 |
軸をロックする。 |
ビューポート内でLを押します。 デフォルトでは、回転範囲が対称になっていて、回転制限を編集すると、その変更はその軸の両側に加えられます。 Axis Lock を有効にすると、その制限の片側がフリーズされ、もう片側のみが変更されます。 また、軸は角度の中心にくるように移動します。 |
制限の端の方に向かって動きを弱める。 |
Softness パラメータは、回転制限に到達する前に動きに影響を与え始めるため、回転範囲内にいる間はその動きを弱めることができます。 回転制限を超えた後に効果を適用して回転範囲内の動きを減衰させない Angular Limit Stiffness とは挙動が異なります。 |
拘束の挙動の制御 ¶
RBD Bullet Solverノードの Constraints タブには、拘束の挙動を制御するためのパラメータがあります。 Breaking Thresholds サブタブでは、拘束が切断されるタイミングを決めることができます。 例えば、 Distance Threshold パラメータを使用することで、拘束が切断されるアンカーポイント間の距離を設定することができ、 Force Threshold を使用することで、拘束が切断される強度を設定することができます。
Note
Visualize タブの False Color Mode ドロップダウンメニューを使用することで、使用する切断閾値を判断することができ、さらにはデバッグにも役立ちます。
RBD Constraint Propertiesノードは、RBD Material Fractureノードの Constraints タブのパラメータと同等の機能性を備えています。 もっと複雑な独自拘束を構築したい場合には、このノードを拘束ネットワークの値を編集するための便利インターフェースとして使用することができます。 伸縮性の観点では、可塑性を制御するためのパラメータが用意されていて、可塑性の効果が出始める2つのオブジェクト間の角度を度で制御することもできます。 これは、形状を曲げて維持したい箇所で屈曲と折損のエフェクトを表現するのに役に立ちます。 詳細は、屈曲と折損を参照してください。
Tip
RBD Material Fracture SOPの Use Tags パラメータは、プリミティブグループの使用の代わりとして、拘束プリミティブ上にconstraint_tag
文字列アトリビュートを作成します。
これによって、より柔軟にVellum拘束とマッチさせることができます。
また、RBD Constraint Properties SOPの Constraint Group パラメータにタグを使用することで、簡単に特定の拘束を修正することができます。
Constraint Browserペイン ¶
Constraint Browserは、既存のRBD拘束やVellum拘束のアトリビュートを視覚化、管理することができます。 詳細は、Constraint Browserのヘルプページを参照してください。
拘束ネットワークを理解する ¶
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がその窓ガラスを粉砕しても、外側の破片はその窓枠に取り付けられた状態を維持します。