以下の内容はhttps://godofsuama.hatenablog.com/entry/2019/12/30/203000より取得しました。


Particle Along Surface (SOPのみ)

前々からSOPのみでParticle Along Surfaceの処理を作っていたところ、以下のツイートを参考に簡略化できそうだったのでまとめてみた

hipncファイルはこちら (Houdini Apprentice 18.0.287)

完成するとこんな感じ

f:id:godofsuama:20191230182141g:plain


Particle Along Surface (SOPのみ)

手順

1.GridをXYZ3軸が0-1空間内に収まるように作る
2.Velocityを設定する
3.ScatterでPointを散布する
4.idを作成する (サンプルではEnumrateを使用)
5.以下のWrangleでPointを動かす
@P += @v * @Time;
@P %= 1;
6.Trail, Add(by id), Resampleで適切なポイント数のラインを作成する
7.Measureで各ラインの長さを測り、Attribute Promoteで平均の長さをDetailへ格納する
8.Deleteと以下のExpressionで平均以上の長さのラインを削除する
@perimeter>detail(0, "aveMeter", 0)

こうすることで、手順5の処理により1frameで一気に移動してしまったポイントを削除できる

9.Input0にPointを、Input1に這わせたいGeometryを接続し以下のWrangleを記述する

Input1にはUVが必須 (UVの向きにPointが流れる)ので注意

//Particle Along Surface(Poly)
vector uv = @P;
vector input1_N = uvsample(1,"N","uv",uv);
vector input1_P = uvsample(1,"P","uv",uv);

@P = input1_P + input1_N * @P.z;
@N = uvsample(1,"N","uv",uv);
@uv = uvsample(1,"uv","uv",uv);
10.pscale, Cd, Nなどを必要に応じて設定する

手順6の際のResampleでcurveuを設定してその後のAttribute Remapでcurveuを元にpscaleを作成し、

PolywireのWire Radius @pscale を設定しています。




以上の内容はhttps://godofsuama.hatenablog.com/entry/2019/12/30/203000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14