On this page |
概要
Clothソルバはサーフェスの変形をシミュレーションします。Clothシミュレーションは布、ゴム、曲げられる金属やその他の材料をシミュレーションするのに使います。任意のSOPジオメトリをClothオブジェクトにすることができるので、三角化する必要はありません。
ワイヤーシミュレーションは長くて曲げられる何かをシミュレーションするのに使います。例えば、 草、柔毛、さらには足場にさえも使えます。ワイヤーオブジェクトを拘束すれば、ブランコのように揺れるロープや跳ね返るバンジージャンプの綱、凧の尻尾などをシミュレーションすることができます。
Cloth と Wires シェルフタブのツールを使うと、布とワイヤーのオブジェクトを作成、操作することができます。
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つの方法:
|
崩れそうな足場を作成する |
|
布とワイヤーの衝突
現在の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 Constant と Angular Damping Constant がどちらも0
だと、ワイヤーがおかしくなります。
ワイヤーオブジェクトアトリビュート
ワイヤーで使えるアトリビュートのリストは、Wire Objectのヘルプを参照してください。
Wireソルバはワイヤージオメトリ上にアトリビュートがあれば、その値を使います。そうでないなら、Wire Objectノードのパラメータで定義されたデフォルトを使います。
ワイヤーオブジェクト内部のスプリングは、 SOP Path で指定した形状の変化に抵抗します。 Use Deforming Geometry が有効であれば、シミュレーションは形状のアニメーションを組み込みます。 Initial Pose が SOP Path と違っていたら、ソルバはワイヤーが変形を始めたとみなします。
Wireソルバは、自動的にポイントポジション、v
(速度)Pointアトリビュート、angvel
(角速度)アトリビュート、orient
(方向クォータニオン)アトリビュートを最新の状態に保ちます。
Wireソルバは、線の端点におけるPointアトリビュートの値から線上の点の位置に沿って平均化していきます。WidthとMassのようなアトリビュートでは、線の端点における値が異なると、ソルバは、先細った円柱状のように、それらの値を処理します。
布の役立つ情報
-
アニメーションさせるジオメトリの形状を大雑把に近似化した単純なプロキシジオメトリ(代用ジオメトリ)を使ってシミュレーションする場合に、布を高解像度ジオメトリと衝突させるのは、通常はあまり良いやり方ではありません。なぜなら、布ソルバはアニメーションさせるジオメトリのポリゴンすべてに対して衝突検出しないからです。
-
ClothオブジェクトのDampingをStiffnessの1%よりも大きくすることは、通常ではおすすめしません。シミュレーションを落ち着かせる一番良い方法は、Dragフォースを追加することです。
-
アニメーションが速く動くのであれば、サブステップの値をもっと上げてシミュレーションしてください。
-
別々の2つのClothオブジェクトが衝突する時、またはClothオブジェクト自身が自己衝突する時、衝突検出はとても遅いです。そのため、 可能な限りそれを避ける ためにシミュレーションを再構築するべきです。
-
Clothオブジェクトの 初期の位置 は、まったく 干渉していない状態 でなければならないことがとても重要です。Clothオブジェクトが衝突から始まると、ソルバはそれを修正することができません。