On this page |
概要 ¶
ワイヤーシミュレーションは長くて曲げられる何かをシミュレーションするのに使います。例えば、 草、柔毛、さらには足場にさえも使えます。ワイヤーオブジェクトを拘束すれば、ブランコのように揺れるロープや跳ね返るバンジージャンプの綱、凧の尻尾などをシミュレーションすることができます。さらに崩壊する梁の構造のようなエフェクトもできます。
Houdiniのワイヤーソルバは非常に高速です。ワイヤーソルバを使えば曲げることができたり、弾力があるオブジェクトのエフェクトを高速に生成することができるので、そのワイヤーソルバを使う方法を考えるのは価値があります。
How to ¶
To... | Do this | ||||||||
---|---|---|---|---|---|---|---|---|---|
ワイヤーとして使うカーブのフィールドを作成する |
ワイヤーのフィールドを作成するというのは、実際にはジオメトリ(SOP)レベルで カーブ のフィールドを作成して、そのジオメトリをWire Objectノードと一緒にダイナミクスネットワークにインポートすることです。 SOPレベルでカーブのフィールドを作成する1つの方法:
|
||||||||
オブジェクトをワイヤーに変換する |
以下のワイヤーの設定を参照してください。 |
||||||||
ワイヤーポイントを拘束する |
Wires シェルフタブのツールはワイヤーポイントの位置の拘束をセットアップします。 空間内の位置をピン留めするために、Wire Pin ConstraintまたはWire Spring Constraintを使います。 |
||||||||
ワイヤーをシミュレーションするオブジェクトにピン留めする |
(ツールの詳細は、Attach Wire to Surfaceを参照してください。) |
||||||||
ワイヤーをサーフェスにピン留めする |
ワイヤーポイントをソースジオメトリの位置にピン留めして、 ワイヤーソースジオメトリネットワークで、ルートポイントを含むグループを作成し、AttribCreateノードを使ってアトリビュートを作成します。以下の設定を利用してください:
|
||||||||
ダイナミクスワイヤーに基づいてジオメトリを変形する |
ワイヤーシミュレーションで制御するカーブを作成してモデルの変形を駆動します。例えば、蛇をモデリングして、それをダイナミクスワイヤーで制御することができます。 ダイナミクスワイヤーに基づいてジオメトリを変形すると、基本的にはカーブに基づいたジオメトリの変形と同じ問題があります。オブジェクトを変形するコントロールカーブを作成して、それをシェルフツールを使ってシミュレーションワイヤーにします。そのワイヤーには任意で拘束とフォースを加えることができます。 Wire Captureサーフェスノードを作成すれば、変形したいジオメトリをワイヤージオメトリにキャプチャーすることができます。Wire Captureノードのパラメータで、 Capture タブをクリックして、 Min/Max weight を それぞれ1と1に設定します。元のカーブをWire Deformノードの2番目(“rest”)の入力に接続、そしてDOP Importノード(このノードは自動的にシェルフツールによって作成されます。シミュレーションされるワイヤーの動きをカーブジオメトリに反映すること ができます)をWire Deformノードの3番目(“deformed”)の入力に接続します。 |
ワイヤーネットワーク ¶
TBD.
ワイヤーの設定 ¶
-
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 Constant と Angular Damping Constant がどちらも0
だとワイヤーがおかしくなります。 -
“太い”ワイヤーを設定するには、 ワイヤーオブジェクトの Physical タブから Width を変更します。これはワイヤーの質量( Density で乗算)に影響を与えます。さらに他のオブジェクトとの衝突にも影響を与えます。ワイヤーオブジェクトの Visualization タブから Width をオンにすることでワイヤーの幅を表示することができます。これはビューポートにチューブとしてワイヤーを表示します。
-
ポイント毎に物理特性を設定するには、ソースジオメトリーに対してPointアトリビュートを使います(以下参照)。
-
ワイヤーオブジェクトを自己衝突させるには、ワイヤーオブジェクトの Collisions タブの Self Collisions をオンにします。これをオンにするとシミュレーションが遅くなりますが、極端に遅くなるわけではあります。高速に移動するワイヤーが貫通してしまうのであれば、Wire Solver DOPの Minimum Substeps パラメータを上げます。
便利なPointアトリビュート ¶
ワイヤーのPointアトリビュートを使って、ワイヤーオブジェクトでセットアップされたデフォルトのプロパティを上書きしたり、スケール(アトリビュートによっては)することができます。ワイヤーで使えるアトリビュートのリストは、Wire Objectのヘルプを参照してください。
Wireソルバはワイヤージオメトリ上にアトリビュートがあれば、その値を使います。そうでないなら、Wire Objectのパラメータで定義されたデフォルトを使います。
pintoanimation
これをポイント上に1
に設定するとWireソルバがポイントの位置を動かさないようにします。つまり、ソースジオメトリをその位置を固定してアニメーションさせることができます。
オブジェクトの支点にそれを設定すれば、オブジェクトがそれを基準にしてアニメーションできるので便利です。
gluetoanimation
pintoanimation
と同様ですが、位置だけでなく、ソースジオメトリのポイントの法線を使ってワイヤーの向きを設定することができます。
Wireソルバは、自動的にポイントポジション、v
(Velocity)Pointアトリビュート、angvel
(角速度)アトリビュート、orient
(方向クォータニオン)アトリビュートを最新の状態に保ちます。
サンプル:崩れそうな足場 ¶
-
Wires シェルフタブのWire Objectツールを使って、カーブやラインをワイヤーオブジェクトに変換します。
-
Wire Pin ConstraintまたはWire Spring Constraintを使って、足場の一部のポイントを拘束します。
-
Wire Pin Constraintを使った場合、 Activation を0にするキーフレームを設定すれば、その拘束を切ることができます。
Wire Spring Constraintを使った場合、 Activation を0にするキーフレームを設定して拘束を切るか、 Spring タブの Maximum Force または Maximum Length を設定します。もしスプリングがそのMaximum ForceまたはMaximum Lengthに達すると、拘束が切れます。
Note
Wire Spring Constraintのパラメータエディタの Spring タブの Maximum Force または Maximum Length で拘束が切れる設定ができます。しかし、Wire Pin Constraintには、そのようなパラメータはありません。
-
足場にぶつかるRigid Body Objectを作成します。
-
シーンのオブジェクトにGravityを追加すれば、自然落下を表現することができます。