SideFX Labs Simple Rope Wrap SOP


こちらの記事では、Labs Simple Rope Wrap SOPノードについて解説いたします。

今回の流れとしては、前半にパラメータの解説をした後、後半で簡単な使用例についてご紹介いたします。

▼ こちらの記事では、サンプルファイルを配布しています ▼
サンプルファイルは、下記のリンクからダウンロードすることができます。


※本記事では、Houdini19.0.383、SideFXLabs19.0を使用しています。

1-Labs Simple Rope Wrap SOPノードとは

Labs Simple Rope Wrap SOPノードは、第1入力に接続されたジオメトリに基づき、第2入力に接続されたオブジェクトの周りに輪っか状のロープのようなオブジェクトを生成します。また、パラメータを変更することによって、ロープの形状を三つ打ちへ変更する事やその捻り具合を調整することができます。

シミュレーション機能も備えており、パラメータからVellumシミュレーションを実行させることによって、ロープが緩んだかのような状態にすることができます。このノードを使用することで、素早く自然な見た目のロープオブジェクトを簡単に作成することができます。


各入出力の項目については以下の通りです。


作成するロープオブジェクトの位置や向きを設定するための入力です。Gridなどのポリゴン平面を入力します。


コリジョンとなるオブジェクトの入力です。①で入力された平面の位置に対して、②で入力されたオブジェクトの周囲にロープオブジェクトを作成します。


後述する [4.Style] パラメータがCustomの際に、こちらに入力されたオブジェクトの形状でロープオブジェクトを作成します。


生成されたロープオブジェクトのジオメトリを出力します。


生成されたロープオブジェクトのポリラインを出力します。

2-各パラメーターについて

Curve

この項目では、ロープオブジェクトの基になるカーブの解像度や、そのカーブに対してシミュレーションを使用するかどうかを設定します。

1.Resolution
カーブの解像度を変更します。値が小さいほど分割数が多くなり、値が大きいほど分割数が少なくなります。

2.Optimize Curves – Tolerance
Tolerance項目で許容値を指定し、チェック項目を有効にすると許容値に基づいて不必要なポイントを削除します。許容値が低いほど繊細な形状を維持します。
尚、後述する [6.Degrees Twist per Unit] の値が0以外の場合はこの機能が無効になります。

3.Simulated – Frames
チェック項目を有効にすると生成されたカーブにVellumシミュレーションが適用されます。Frames項目で何フレーム分シミュレーションを実行するかを制御することができます。

Geometry

この項目では、オブジェクトの形状そのものについて変更を加えます。

4.Style
断面の形状を変更することができます。Circleは輪ゴムのようなシンプルな形状に、Ropeは後述する [6.Degrees Twist per Unit] と併用することで三つ打ちロープのような形状に、Customは第三入力につながれたオブジェクトの形状を基にカーブを生成します。

5.Diameter
ロープの太さを変更します。

6.Degrees Twist per Unit
ロープの捻じり具合を調整します。

7.Rows
断面分割数を制御します。前述した [4.Style] がCustomの場合、この機能が無効になります。

8.Cusp Angle
頂点の法線を計算する際に使用される角度を設定します。

UV

この項目では、生成されたオブジェクトのUVについて設定します。

9.UV Scale
設定された値に応じて、生成されたUVのスケールを変更します。

10.UV Rotation
設定された値に応じて、生成されたUVを回転します。

Optimization

この項目では、オブジェクトのポリゴンやポイントの削減について設定します。

11.Optimize Surface
チェック項目を有効にすると、後述する [12.Percent To Keep] と [Tolerance] の設定を基に生成されたメッシュのポリゴン数を削減します。

12.Percent To Keep
ポリゴン数を削減する際、維持するポリゴンの割合を制御します。

13.Tolerance
曲線の形状を最適にする際にポイントを削除するかどうかを決める為の許容値を設定します。許容値が低いほど、繊細な形状を維持します。

Simulation Settings

この項目では、Vellumシミュレーション時の挙動に変更を加えます。

14.Mass
ロープ全体の質量を設定します。この項目はVellumシミュレーションの実行時に適用されます。

15.Rest Length Scale
Vellumシミュレーション実行時のロープの長さを変更します。値が1未満の時はオブジェクトがしっかり巻き付いた輪ゴムのような結果に、1より大きい値ではロープがだらけて垂れるようになります。この項目はVellumシミュレーションの実行時に適用されます。

16.Stretch Stiffness
Vellumシミュレーションを行う際、ロープがどれほど引っ張って伸びるかを制御します。

17.Bend Stiffness
Vellumシミュレーションを行う際、ロープがどれほど曲がるか(ロープの硬さ)を制御します。


3-Simple Rope Wrap SOPノードの使用方法

ここからはSimple Rope Wrap SOPノードの使用例についてご紹介します。

Simple Rope Wrap SOPノードの第1入力にロープを巻く場所の基準となるポリゴンサーフェスを接続し、第2入力にコリジョンとなるオブジェクトを接続します。

第1入力に接続されたGridをコリジョンオブジェクトに対して交差させるように配置した後、Simple Rope Wrap SOPノードのディスプレイフラグを点灯させると、ロープオブジェクトが生成されていることが分かります。

4-Vellumシミュレーションを適用したアニメーション作成例

Simple Rope Wrap SOPノードを使用した簡単なVellumシミュレーションの使用例をご紹介します。

  1. [3-Simple Rope Wrap SOPノードの使用方法]で解説したように、コリジョンオブジェクトに対してロープを作成します。
  1. パラメータのSimulatedにチェックを入れてシミュレーションを有効化し、Framesに「$F」とパラメータエクスプレッションを記述します。

Simulation Settingsタブを開き、Rest Length Scaleを1.5に変更します。

  1. Simulation Settingsタブを開き、Rest Length Scaleを1.5に変更します。

また、少し設定を変更することでゴムのように伸びるアニメーションも作成することができます。

  1. Simulation SettingsタブのRest Length Scaleを0.9に戻し、Stretch Stiffnessを0.00000001Bend Stiffnessを0に変更します。

今回作成したシーンでは、Stiffnessのデフォルトの値が大きすぎるため、とても小さい値に変更しています。
尚、0.00000001と入力した後は数字が1e-08と表記されることがありますが、違いはございません。

  1. 再生ボタンを押すとロープがゴムの用に伸びるアニメーションが作成できます。

5-Simple Rope Wrap SOPノードの使用例

最後に、Simple Rope Wrap SOPノードを使用例を簡単にご紹介いたします。

こちらのシーンは以下のようにコリジョンオブジェクトを配置し、シミュレーションを適用しているロープと適用していないロープの2種類を用意して作成しています。

コリジョンオブジェクトを非表示にし、シェルフからSmall Oceanとカメラ、ライトを設定したら完成です。
詳しくは、Hipファイルをご参照ください。
▼下記のリンクからダウンロードできます。

これでSimple Rope Wrap SOPノードについての解説は以上となります。
制作のご参考にしていただけますと幸いです。