見出し画像

プロシージャル編み籠

Houdiniでプロシージャルにシルエットを変更できる編み籠を作成しました。

こちらは以下の動画をもとに作成したものです。
一部読み取れなかった部分があるのですが、ほぼこの動画通りの結果になったと思います。

Sweepで断面を作成する

今回の作成で学んだことの一つはSweepSOPの使いこなしです。
縦方向のLineを分割し、Sweepする際に断面の変化の値をScaleRampでコントロールします。あまり普段はやらないのですが非常にお手軽で良いです。

Sweep内のRampは便利。使っていこう

ポイントに円の円周方向に向くNを与えます。
ジグザクにしたいのでNを順方向と逆方向に交互に向かせます。
ポイントナンバーが偶数のものだけを逆方向にしたいので以下のVEXを書きます。

if(@ptnum%2)@N = -@N;

PeskSOPで法線方向に動かしジグザクにしたら、Polypathでカーブに変換し、Resampleとアトリビュートブラーでなめらかにします。

ジグザクをぼかしてなめらかにする

Group By Rangeで一個おきに選択し、Tramsformで交互になるように回転させてカーブに厚みを付けます。

交互になることで間に縦方向の編み込みを通せる

縦方向の網を作る

横方向の編みの中心を通る縦方向の編みを作ります。
SweepSOPを参照付きで複製して、SurfaceTypeをColumsに変更します。法線などを整え、再度SweepSOPで二本線にします。

SweepのSurfaceTypeで縦横の切り替えが作れる

持ち手と縁の作成

縁は一番上の断面を複製して複製しました。
PolyPath、Resample、Fuseで繋がったラインに変換し、SweepのRotationで二本線を絡ませ、更にSweepのRotationを加えて二本線に巻き付かせています。

二重のSweepで複雑な編込みを作る

持ち手はLineから作成しています。
VEXでRampパラメーターで孤の字状に変形し、Sweepで絡まった4本のラインにします。GroupByRengeで2つのラインに分け、VEXでグループごとにRampの正の向きと負の向きに変形させて根本の分岐を作りました。

V
if(@group_group1 == 0)m = 1;

float ramp_shape = ch("multiply") * chramp("shape",@curveu);
@P.z += ramp_shape*m;
このへんは動画で省略されていたのでオリジナル

続きはまた今度!

この記事が気に入ったらサポートをしてみませんか?