
こちらの記事では、Labs Cable Generator2.0 SOPノードについて解説いたします。
▼記事で紹介している内容
- Labs Cable Generator2.0 SOPノードについて
- Labs Cable Generator2.0 SOPノードのパラメータ解説
- Labs Cable Generator2.0 SOPノードの使用方法
- Labs Cable Generator2.0 SOPノードを使用したシーン例
▼サンプルファイルについて
こちらの記事では、サンプルファイルを配布しています。ファイルは、下記のリンクからダウンロードすることができます。
https://houdinifx.jp/trdata/Labs_Cable_Generator.zip
※本記事では、Houdini19.0.531、SideFXLabs19.0.531を使用しています。
Labs Cable Generator2.0 SOP
最初に、Labs Cable Generator2.0 SOPノードの概要や各パラメータについて、紹介します。
1.Labs Cable Generator2.0 SOPノード について

Labs Cable Generator2.0 SOPノードは、入力されたカーブやサーフェスに基づいてケーブルを生成します。このツールを使用することで簡単にケーブルの形状を作成でき、尚且つ重力やコリジョンを考慮したシミュレーション機能を備えています。
各入出力の項目については以下の通りです。
①入力1
カーブやサーフェスを入力します。
②入力2
サーフェスなどのコリジョンを入力します。こちらを入力することで、ワイヤーシミュレーションを行う際にコリジョンを考慮することができます。
③出力
生成したケーブルジオメトリを出力します。
2. Labs Cable Generator2.0 SOPノードのパラメータ解説
こちらのノードでは、パラメータのInput Typeを変更することで、入力するジオメトリの種類を変更することができます。
Input Typeには「Curve」「Connect Surfaces」「Through Geometry」の三種類が存在し、一部表示されるパラメータがそれぞれ異なります。そのため、それぞれの項目に分けて解説をしていきます。
Input Type「Curve」

①Input Type
入力するジオメトリの種類を「Curve」「Connect Surfaces」「Through Geometry」の三種類から選択します。
Input Type「Curve」では、入力されたカーブやポリゴンのカーブを参照することでケーブルを生成します。
Main Curve Settings
こちらでは、入力された情報を基にメッシュを生成するための設定を行います。
②Number of Main Cables
メインとして生成するケーブルの本数を制御します。
③Treat Polygons As
メッシュを生成する際に使用するカーブの種類を変更することができます。
「Straight Edges」では、入力されたカーブをそのまま参照します。「Subdivision Curves」では、入力されたカーブ(ポリライン)に対してサブディビジョンを適用したような形状に再サンプリングされます。「Interpolating Curves」では、入力されたポリゴン内の全てのポイントを通過しつつ、滑らかな曲線を描くように再サンプリングされます。
④Spacing
生成するケーブル同士の離れ具合を制御します。
⑤Spacing Variation
生成するケーブル同士の離れ具合を制御します。[⑥Spacing Offset Seed]と併用することで、ランダムなバリエーションを生成することができます。
⑥Spacing Offset Seed
ランダムなシードを生成します。[⑤Spacing Variation]と併用することで、ケーブル同士の離れ具合をランダムに生成することができます。
Input Type「Connect Surfaces」

①Input Type
入力するジオメトリの種類を「Curve」「Connect Surfaces」「Through Geometry」の三種類から選択します。
Input Type「Connect Surfaces」では、Sphereなどのサーフェスを持つジオメトリを複数入力した際に、それぞれのジオメトリ間を結ぶようにケーブルを生成します。
Surface Settings
こちらでは、入力された情報を基にメッシュを生成するための設定を行います。
②Connection Distance
ケーブルを生成するために、接続を行う最大距離を指定します。
③Cable Density
生成されるケーブルの密度を変更します。値が大きくなるほど、生成されるケーブルの本数が多くなります。
④Merge Cable Ends
値が大きくなるほど、生成された複数のケーブルの端を一点に向かってまとめます。
Input Type「Through Geometry」

①Input Type
入力するジオメトリの種類を「Curve」「Connect Surfaces」「Through Geometry」の三種類から選択します。
Input Type「Through Geometry」では、Sphereなどのサーフェスを持つジオメトリを複数入力した際に、全てのジオメトリを通るようにケーブルを生成します。
Through Geometry
こちらでは、入力された情報を基にメッシュを生成するための設定を行います。
②Number of Main Cables
メインとして生成するケーブルの本数を制御します。
③Treat Curves As
メッシュを生成する際に使用するカーブの種類を変更することができます。「Straight Edges」では、入力されたカーブをそのまま参照します。「Subdivision Curves」では、入力されたカーブに対してサブディビジョンを適用したような形状に再サンプリングされます。
「Interpolating Curves」では、入力されたポリゴン内の全てのポイントを通過しつつ、滑らかな曲線を描くように再サンプリングされます。
Input Typeごとに異なるパラメータは以上です。ここからは、全てのInput Typeで共通するパラメータをご紹介します。

Main Cable Settings
この項目では、メインとして生成するケーブルの設定を行います。
①Main Radius
メインケーブルの基本となる半径を設定します。
②Random Scale
チェック項目を有効にすると、複数のメインケーブルの半径をランダムに変化させます。
③Min Scale
メインケーブルの最小半径を設定します。
④Max Scale
メインケーブルの最大半径を設定します。
⑤Seed
メインケーブルの半径をランダムに変化させるシードを生成します。
⑥Resolution
メインケーブルの行解像度を制御します。
⑦Columns
メインケーブルの列解像度を制御します。
⑧Add Ends
チェック項目を有効にすると、メインケーブルの端にキャップのような形状を追加します。

Simulation
この項目では、シミュレーションに関する設定を行います。
①Simlation Type
プルダウンメニューを変更することで、シミュレーションの方法を変更することができます。
「None」はシミュレーションを行いません。
「Psuedo Gravity」では、ケーブルに対して疑似的でランダムな重力効果を適用します。
「Wire Simulation」ではVellumソルバーを使用してケーブルにシミュレーション効果を適用します。
Simulation Type「Psuedo Gravity」

Psuedo Gravity
この項目では、疑似的な重力に関する設定を行います。
①Min
ケーブルにかかる重力の最小値を設定します。
②Max
ケーブルにかかる重力の最大値を設定します。
③Seed
ケーブルにかかる重力のランダムなシードを生成します。
④Gravity Multiplier
重力の倍率を設定します。
Simulation Type「Wire Simulation」

Wire Simulation
この項目では、Vellumソルバーを使用したワイヤーシミュレーションの設定を行います。
①Reset Simulation
こちらをクリックするとシミュレーションをリセットします。
例えば、シミュレーションの設定を変更した際、その変更を反映させるため、再度、ケーブルのシミュレーションを実行させる場合があります。そのような時に「Reset Simulation」を使用します。
②Simulate Main Cable
チェック項目を有効にすると、メインケーブルとサブケーブルの両方をシミュレーションさせることができます。
サブケーブルのみをシミュレーションさせる場合にはチェック項目を無効にします。
③Frame
シミュレーションを実行するフレーム数を制御します。
④Cable Stretch
ケーブルの伸縮性を制御します。値が大きくなるほどケーブルが長くなります。
⑤Add Random Stretch
内部的にVellum Constraints SOPのDamping Ratio(Strech)の値と乗算され、ランダムな伸縮性を与えます。
⑥Substeps
各フレームをこの値に分割してシミュレーションを計算します。この値が大きいほど、より正確なシミュレーション結果を得ることができます。
⑦Friction
ケーブルの摩擦を制御します。

Sub Cables
この項目では、メインケーブル以外に生成されるサブケーブルの設定を行います。サブケーブルはメインケーブルと分けて設定を行うことができます。
①Enable
チェック項目を有効にすると、メインケーブルの周囲にサブケーブルが生成されます。
②Number of Sub Cables
生成されるサブケーブルの本数を制御します。
③Sub Radius
サブケーブルの基本となる半径を設定します。

①Random Scale
チェック項目を有効にすると、複数のサブケーブルの半径をランダムに変化させます。
②Min Scale
サブケーブルの最小半径を設定します。
③Max Scale
サブケーブルの最大半径を設定します。
④Seed
サブケーブルの半径をランダムに変化させるシードを生成します。
⑤Range
メインケーブル位置からサブケーブルをどの程度離すかを決めるスケール値(Cross-Section)を制御します。
⑥Twist
サブケーブルがメインケーブルの周囲でねじれる度合いを制御します。
⑦Resolution
サブケーブルの行解像度を制御します。
⑧Columns
サブケーブルの列解像度を制御します。

①Treat Polygons As
メッシュを生成する際に使用するカーブの種類を変更することができます。「Straight Edges」では、入力されたカーブをそのまま参照します。「Subdivision Curves」では、入力されたカーブに対してサブディビジョンを適用したような形状に再サンプリングされます。
「Interpolating Curves」では、入力されたポリゴン内の全てのポイントを通過しつつ、滑らかな曲線を描くように再サンプリングされます。
②Add Pre Simulation
チェック項目を有効にすると、シミュレーションを行う前にサブケーブルを生成します。この項目を有効にしたことで生成されたサブケーブルは、シミュレーションの影響を受けます。
③Add Post Simulation
チェック項目を有効にすると、シミュレーションが行われた後にサブケーブルを生成します。この項目を有効にしたことで生成されたサブケーブルは、シミュレーションの影響を受けません。

Detangle
この項目では、生成されたケーブルのもつれを解くための設定を行います。
①Enable
チェック項目を有効にすると、ケーブルのもつれを解くための処理が有効になります。
②Resolve Collision Clipping
[①Enable]を有効にした際に、ケーブルがコリジョンオブジェクトの境界を超えてしまう場合があります。これを防ぐため、コリジョンオブジェクトの表面とカーブ上のポイント間で投影を行い、境界を超えないように設定します。
③Detangle Options
プルダウンメニューを変更することで、Detangle処理を適用するケーブルの種類を変更することができます。
「Main and Sub Cables」では全てのケーブルに処理を適用します。
「Sub Cables Only」ではサブケーブルのみに処理を適用します。
④Iterations
Detangle処理を何回繰り返し適用するか制御します。
⑤Smooth Amount
Detangle処理の適用後、ケーブルの平滑化を行う量を制御します。

Color
この項目では、頂点カラーアトリビュートについての設定を行います。
①Enable Vertex Color
チェック項目を有効にすると、頂点のCdアトリビュートに値を格納します。Cd.rアトリビュートにはランダムな値が格納されます。
Cd.gアトリビュートにはシェーディングやマスキングのためのカーブの曲がり具合を表す値(Weight)を格納します。
Cd.bアトリビュートにはアンビエントオクルージョンの情報が格納されます。

UV
この項目では、UVに関する設定を行います。
①Scale
生成されたケーブルのUVスケールを制御します。
②Offset
生成されたケーブルのUVオフセットを制御します。
3.Labs Cable Generator2.0 SOPノードの使用方法
ここからはLabs Cable Generator2.0 SOPノードの使用方法についてご紹介します。
まずは、Curve SOPノードやDraw Curve SOPノードなどを使用してカーブを作成します。
今回は 、 Draw Curve SOPノードを使用します。

Draw Curve SOPノードの出力をLabs Cable Generator2.0 SOPノードの第一入力に接続することで、ケーブルを生成することができます。
「2.各パラメータについて」を参照しながら好みのケーブルジオメトリになるようパラメータを変更します。

コリジョンを使用したシミュレーションを行う場合には、コリジョンとなるオブジェクトをLabs Cable Generator2.0 SOPノードの第二入力に接続します。
今回は、Grid SOPノードを使用しています。
生成したケーブルオブジェクトと一緒にコリジョンオブジェクトも出力する場合は、Merge SOPノードを使用します。

シミュレーションを適用するためにLabs Cable Generator2.0 SOPノードのパラメータを変更します。
SimlationタブにあるSimulation Typeを「Wire Simulation」に変更し、Simulate Main Cableにチェックを入れて有効にすることで、メインケーブルにコリジョンオブジェクトを考慮したシミュレーションが適用されます。

Labs Cable Generator2.0 SOPノードの使用方法については以上です。
4.Labs Cable Generator2.0 SOPノードを使用したシーン例
最後に、Labs Cable Generator2.0 SOPノードの使用例を簡単に、ご紹介いたします。
今回は、Sphereオブジェクトを使用してケーブルを作成していきます。
まず、Sphere SOPノードを作成し、Transform SOPノードとMerge SOPノードを使用してSphereを横一列三か所に配置します。
この時、Sphereの形状を変更させることで、複数のケーブルを生成した際のケーブルのまとまり具合を調整することができます。

Labs Cable Generator2.0 SOPノードを作成し、Merge SOPノードの出力をLabs Cable Generator2.0 SOPノードの第一入力に接続します。

Labs Cable Generator2.0 SOPノードのInput TypeをThrough Geometryに変更すると、先ほどの三つのSphereを通るようにケーブルオブジェクトが作成されます。

Labs Cable Generator2.0 SOPノードのパラメータを変更し、ケーブルをお好みの形状に変更します。こちらの細かいパラメータについてはHipファイルをご参照ください。

先ほどのSphereの位置を変更することで、ケーブルの位置や形状も変更することができます。
この時、Labs Cable Generator2.0 SOPノードにディスプレイフラグ、Transform SOPノードにはテンプレートフラグをオンにすると、調整が行いやすいかと思います。

このようにLabs Cable Generator2.0 SOPノードを使用することで、ケーブルオブジェクトを簡単に作成することができます。
今回は、先程の方法で以下のような電柱のシーンを作成しました。

こちらのHipファイルは、下記のリンクからダウンロードすることができます。詳しくは、こちらをご参照ください。
https://houdinifx.jp/trdata/Labs_Cable_Generator.zip
これでLabs Cable Generator2.0 SOPノードについての解説は以上です。
今後の学習や制作のご参考にしていただけますと幸いです。