Houdini 20.5 Vellum

Wrinkle Deformer

On this page

Wrinkle Deformer SOPは、シミュレーションなしで変形ジオメトリに皺を追加することができる高速なOpenCLベースのSOPです。

これを使用することで、布や皮膚などの柔らかい表面上、さらには、タイヤなどの硬いオブジェクト上の皺を模倣することができます。 このデフォーマは完全に準静的なので、タイムラインを前後に動かすことなくキャラクタにポーズを付けながら皺の更新を確認することができます。

皺を生成するには、静止ジオメトリと変形ジオメトリが必要です。 Rest Geometry(静止ジオメトリ) は、オブジェクトの静止状態での見た目を決定し、内部ソルバで使用される距離拘束を生成するのに使用されます。 Geometry to Deform(変形ジオメトリ) は、何かしらの変形を受けた後のジオメトリで、このノードによって皺が適用されます。

また、オプションで Collision Geometry を指定することもできます。 これを有効にすると、皺が他のオブジェクトに貫通しないようにそのオブジェクトと衝突させながら皺が生成されます。 Wrinkle Deformerは、この変形によって発生した自己干渉を検知も解決もしません。

Note

Wrinkle Deformer SOPはトポロジー依存なので、メッシュの解像度によってルックが異なります。 メッシュが細かいほど、皺が小さくなります。

Note

ボリュームをコライダーとして使用する場合、それはSDFのVDBボリュームでなければなりません。 VDB from Polygonsを使用してSDFのVDBボリュームに変換した後に、それをWrinkle Deformerの3番目の入力に接続してください。

How to

To...Do this

皺のディテールを上げる

Constraint Iterations を上げます。 これによって、ディテールが細かくなりますが、パフォーマンスが遅くなります。 このパラメータは、皺の効果の強さを制御します。 値が低いほど、元のメッシュに近い結果が得られ、値が高いほど、完全にディテールが細かいメッシュに近い結果が得られます。

厚い皺を生成する

Topology パラメータを Surface Struts に設定し、 Neighbor Distance パラメータを上げてください。 これによって、もっと離れたところのメッシュの部分にもっと拘束が作成されるので、変形が大きいほどもっと柔らかい効果が生成されます。 ただし、この値を上げると、遅くなります。

これは、皺が薄くて/狭い綿や絹などのマテリアルとは対照的に、皺が厚くて/広い革などのマテリアルで役に立ちます。

もっと皺を増やす

Wrinkle Deformerはトポロジー依存なので、メッシュを細かくすると、皺が増えます。 皺は、メッシュ内のポリゴンと同じ薄さにしかできないので、皺の数を増やすには、高解像度メッシュで作業する必要があります。

皺が強く出現する箇所を制御する

  1. Rest Length Scale パラメータの右側にあるドロップダウンメニューを No Scaling から Scale by Attribute に変更します。

  2. Attribute Paint SOPを追加して、その入力を静止ジオメトリに、その出力をWrinkle Deform SOPの2番目の入力(Rest Geometry)に接続します。

  3. そのAttribute Paint SOPの Attributes タブにある Attribute Name パラメータをscaleに変更し、 Attribute Type パラメータが Float になっていることを確認します。

  4. そのAttribute Paint SOPの Brush タブの FG Float パラメータを2に上げて、ビューポート内でEnterを押してペイントステートに入り、皺を大きくしたい箇所をペイントします。これは極端な例で、皺が元の位置の2倍にスケールされます。

別の方法としては、Wrinkle Deform SOPの Compression Stiffness パラメータの右側にあるドロップダウンメニューを Scale by Attribute に変更することで、似たような効果を実現することができます。

強い皺と静止ジオメトリ間の遷移を滑らかにする

  1. Attribute Paint SOPを使用して、滑らかにしたい領域をペイントします。

  2. Wrinkle Scale パラメータの右側にあるドロップダウンメニューを Scale by Attribute に変更して、その塗ったアトリビュートを使って滑らかな領域と皺の領域の間をブレンドします。

鋭いエッジを滑らかにする

Output セクションの Delta Smooth Iterations 値を上げます。 これは、低解像度メッシュで非常に役に立ち、より有機的なルックが得られ、ギザギザ感を取り除きます。 この値を上げると、皺が重なり始める箇所の自己衝突にも役立ちます。

特定の領域が皺にならないようにする

Pin Points パラメータを使用して、元の位置にピン留めするポイントを選択します。

布がコライダーメッシュに貫通しないようにする

VDB from Polygons SOPを使用してコライダージオメトリをSDFのVDBボリュームに変換し、それをWrinkle Deformer SOPの3番目の入力に接続します。 これは、鎧、ロープ、鞍などのオブジェクトに役立ち、布がそのようなオブジェクトと交差しないようにその布の皺の付き方に影響を与えることができます。

制限事項

  • Wrinkle Deformerは、自己衝突を処理しません。ただし、 Delta Smooth Iterations の値を上げることで、皺が重なり始める箇所の自己衝突を解決するのに役立ちます。

  • コライダーには、VDBまたはHeight Fieldを指定しなければなりません。 これは、VDB from Polygons SOPを使用してコライダージオメトリをSDFのVDBに変換し、それをWrinkle Deformerの3番目の入力に接続すると良いでしょう。

  • Wrinkle Deformerは準静的であるため、過去データを保存しません。そのため、実際のシミュレーションを走らせた時には発生しないような問題に遭遇する場合があります。 しかし、この方がはるかに高速です。

  • Wrinkle Deformerは、柔らかいサーフェス上の皺を模倣するように設計されており、実際にシミュレーションされたものでないので、極端なアニメーション(メッシュを押しすぎる)だと法線がクリップされてしまう可能性があります。このような場合、物理を考慮したVellumシミュレーションと組み合わせるのがベストです。

Vellum

ソフトボディ

流体

拘束

Grains

コリジョン

その他

上級