Houdini 18.0 ダイナミクス

布とワイヤーフレームのシミュレーション

On this page

概要

Clothソルバはサーフェスの変形をシミュレーションします。Clothシミュレーションは布、ゴム、曲げられる金属やその他の材料をシミュレーションするのに使います。任意のSOPジオメトリをClothオブジェクトにすることができるので、三角化する必要はありません。

ワイヤーシミュレーションは長くて曲げられる何かをシミュレーションするのに使います。例えば、 草、柔毛、さらには足場にさえも使えます。ワイヤーオブジェクトを拘束すれば、ブランコのように揺れるロープや跳ね返るバンジージャンプの綱、凧の尻尾などをシミュレーションすることができます。

ClothWires シェルフタブのツールを使うと、布とワイヤーのオブジェクトを作成、操作することができます。

How to

To...Do this

ダイナミクスワイヤーに基づいてジオメトリを変形する

ワイヤーシミュレーションで制御するカーブを作成してモデルの変形を駆動します。例えば、蛇をモデリングして、それをダイナミクスワイヤーで制御することができます。

ダイナミクスワイヤーに基づいてジオメトリを変形すると、基本的にはカーブに基づいたジオメトリの変形と同じ問題があります。オブジェクトを変形するコントロールカーブを作成して、それをシェルフツールを使ってシミュレーションワイヤーにします。そのワイヤーには任意で拘束とフォースを加えることができます。

Wire Captureサーフェスノードを作成すれば、変形したいジオメトリをワイヤージオメトリにキャプチャーすることができます。Wire Captureノードのパラメータで、 Capture タブをクリックして、 Min/Max Weight をそれぞれ1、1に設定します。元のカーブをWire Deformノードの2番目("rest")の入力に接続、そしてDOP Importノード(このノードは自動的にシェルフツールによって作成されます。シミュレーションされるワイヤーの動きをカーブジオメトリに反映することができます)をWire Deformノードの3番目("deformed")の入力に接続します。

ワイヤーのフィールドを作成する

SOPレベルでカーブのフィールドを作成する1つの方法:

  1. Create シェルフタブのGridツールを使えば、平面を作成して、フィールド用に好きなスケールにサイズ変更することができます。

  2. ビューアの右側のツールバーからDisplay pointsを有効にします。

  3. グリッドのポイントをカーブの位置として利用すれば、カーブの縦横を整理することができ、またグリッド全体から任意の数のポイントを撒き散らすことができます。

    • カーブの縦横を整理したいのであれば、Gridノードの RowsColumns パラメータを使ってセットアップします。

    • グリッド全体にポイントを撒き散らすには、選択したグリッドオブジェクトに対して Model シェルフタブのScatterツールを使って、 Number of Points パラメータをフィールドで必要なカーブの数に設定します。

  4. 底から始まるカーブを作成します(つまり、フィールド平面上のポイント)。

  5. Modify シェルフタブのCopy to Pointsツールを使って、カーブを複数のポイントにコピーします。

  6. Wires シェルフタブのWire Objectツールを使って、カーブフィールドをシミュレーションワイヤーにします。

崩れそうな足場を作成する

  1. CurveまたはLineを使って足場を作成します。

  2. Wires シェルフタブのWire Objectツールを使って、カーブやラインをワイヤーオブジェクトに変換します。

  3. Wire Pin ConstraintまたはWire Spring Constraintを使って、足場の一部のポイントを拘束します。

  4. Wire Pin Constraintを使った場合、 Activation を0にするキーフレームを設定すれば、その拘束を切ることができます。

    Wire Spring Constraintを使った場合、 Activation を0にするキーフレームを設定して拘束を切るか、 Spring タブの Maximum Force または Maximum Length を設定します。もしスプリングがそのMaximum ForceまたはMaximum Lengthに達すると、拘束が切れます。

    Wire Spring Constraintのパラメータエディタの Spring タブの Maximum Force または Maximum Length で拘束が切れる設定ができます。しかし、Wire Pin Constraintには、そのようなパラメータはありません。

  5. 足場にぶつかるRigid Body Objectを作成します。

  6. シーンのオブジェクトにGravityを追加すれば、自然落下を表現することができます。

布とワイヤーの衝突

現在のRBDオブジェクトは布とワイヤーに衝突することができません。オブジェクトを硬いClothオブジェクトにすれば、他のClothオブジェクトと衝突させることができます。

便利なClothオブジェクトパラメータ

Stretch stiffness

引張抵抗。値が大きいほど布は伸びにくくなります。

Shear

切断抵抗(布の平面に沿った力。例えば、正方形を引っ張って平行四辺形にすると、フォースがそれを切断します)。これは布を角にかぶせたときにできる折り目に影響があります。

Bend stiffness

この値を増やすと、布がより滑らかになり、シワができにくくなります。

便利なワイヤーオブジェクトパラメータ

  • Physical タブでワイヤーの物理特性を設定します。DensityとWidthはワイヤー全体の質量を決めます。また、Widthは衝突に影響を与えます。ソースジオメトリ上のアトリビュートから、これらの値(ポイント毎の質量)を設定することもできます。

  • Linear Spring Constant は、ワイヤーの引張抵抗です。値を小さくするとワイヤーは伸びやすくなります。

  • Angular Spring Constant は、曲げ抵抗です。値を小さくするとワイヤーはより緩くなり、反対に大きくすれば、より堅くなります。

  • 完全に緩いワイヤー(ロープやスプリング)にするならば、 Angular Spring Constant を0に設定します。しかし、 Angular Spring Constant が0だと、 Angular Damping Constant を0にしてはいけません(例えば、0.001にしてください)。もし、 Angular Spring ConstantAngular Damping Constant がどちらも0だと、ワイヤーがおかしくなります。

ワイヤーオブジェクトアトリビュート

ワイヤーで使えるアトリビュートのリストは、Wire Objectのヘルプを参照してください。

Wireソルバはワイヤージオメトリ上にアトリビュートがあれば、その値を使います。そうでないなら、Wire Objectノードのパラメータで定義されたデフォルトを使います。

ワイヤーオブジェクト内部のスプリングは、 SOP Path で指定した形状の変化に抵抗します。 Use Deforming Geometry が有効であれば、シミュレーションは形状のアニメーションを組み込みます。 Initial PoseSOP Path と違っていたら、ソルバはワイヤーが変形を始めたとみなします。

Wireソルバは、自動的にポイントポジション、v(速度)Pointアトリビュート、angvel(角速度)アトリビュート、orient(方向クォータニオン)アトリビュートを最新の状態に保ちます。

Wireソルバは、線の端点におけるPointアトリビュートの値から線上の点の位置に沿って平均化していきます。WidthとMassのようなアトリビュートでは、線の端点における値が異なると、ソルバは、先細った円柱状のように、それらの値を処理します。

布の役立つ情報

  • アニメーションさせるジオメトリの形状を大雑把に近似化した単純なプロキシジオメトリ(代用ジオメトリ)を使ってシミュレーションする場合に、布を高解像度ジオメトリと衝突させるのは、通常はあまり良いやり方ではありません。なぜなら、布ソルバはアニメーションさせるジオメトリのポリゴンすべてに対して衝突検出しないからです。

  • ClothオブジェクトのDampingをStiffnessの1%よりも大きくすることは、通常ではおすすめしません。シミュレーションを落ち着かせる一番良い方法は、Dragフォースを追加することです。

  • アニメーションが速く動くのであれば、サブステップの値をもっと上げてシミュレーションしてください。

  • 別々の2つのClothオブジェクトが衝突する時、またはClothオブジェクト自身が自己衝突する時、衝突検出はとても遅いです。そのため、 可能な限りそれを避ける ためにシミュレーションを再構築するべきです。

  • Clothオブジェクトの 初期の位置 は、まったく 干渉していない状態 でなければならないことがとても重要です。Clothオブジェクトが衝突から始まると、ソルバはそれを修正することができません。

ダイナミクス

ダイナミクスの学習

衝突オブジェクト

シミュレーションタイプ

非DOPシミュレーション

次のステップ