すあまの備忘録

誰得内容の自分のための非営利目的備忘録ブログ(筆者がわかっても内緒にしてください)

Vellum Grains メモ


Houdini Vellum Grains Test

Constraintとかをする場合は圧倒的にVellum Grainsのほうが速い。つまり…ほぼVellum Grainsのほうが良い。

注意メモ

pscale

Pointに、float型のpscale必須。「Points from Volume」などでPointにした場合は、Point Separationの半分をpscaleにする。

「Vellum Configure Grains」をアトリビュートの設定だけで使用するとpscaleも上書きされるので注意が必要。

Scatterなどで生成した場合は、pscale設定後にOverlapを回避する処理が必要。

isgrain

Pointに、int型のisgrainが必須。絶対に忘れてはいけない。「Vellum Configure Grains」を使えば設定される。

「Vellum Solver」内の以下の部分でisgrainがあるかないか、で処理が変わる。

f:id:godofsuama:20210221214931p:plain

mass

Vellum Solverでデフォルトが適応されるが設定しておいたほうが無難。

Vellum Solver

Substepsを上げるとより良いコンストレインになる。最低でも5から始める。大体25とかあると結構良い崩れ具合になってくる(気がする)

Pointの作成

「Vellum Configure Grains」のCreate Points from Volumeだと、グリッド状のPoint配置しかできないため、「Grain Source」を使用してPointを作るほうが良い。

注意にあるように「Vellum Configure Grains」で必要なアトリビュートだけ作成するのはありだが、Grain Source段階とpscaleを合わせるのが手間。

pscaleとmassは「Grain Source」でも設定できるので、以下画像のようにisgrainだけ別途設定するほうが無難。

f:id:godofsuama:20210222143947p:plain

「Grains Source」ではpscaleは自動で設定され、massはCompute Massにチェックを入れることで計算される。

さらにJitter Scaleでグリッド状の配置をずらせるので使い勝手が良い。

Clusterの作成

Point化する前にVoronoiで割ってピースごとPoint化して…でもできなくはないが、重いのでPoint化後にCluster Attributeだけ作成するほうが軽い。

画像のように「Cluster Points」ノードで作成してもいいが、処理も重く細かいコントロールができないのでVOPなどで作成したほうが良い。

f:id:godofsuama:20210222224903p:plain

VOP

Point VOP内で以下のように組む。Voronoi Noiseのposの間に更にノイズを追加したりするのもあり。

このとき作成する__clusterは実際の@clusterを作成する前の仕込み。

f:id:godofsuama:20210222224955p:plain

その後、Enumrateを以下のようのに設定し、int型のcluster Attributeを作成する。

Enumerate Piecesモードは多分18.5から追加されたモードのはずなので注意

f:id:godofsuama:20210222225315p:plain

Voronoi NoizeのSeedアウトプットは、ハッシュ値のような使いづらい値になっているため、Enumrateを使用して使いやすい整数に直している。

f:id:godofsuama:20210222225523p:plain
Point VOPの場合
f:id:godofsuama:20210222224903p:plain
Cluster Pointsの場合

この方法は他の用途でも使えるので覚えておくと便利。

ノイズを追加した場合

posにノイズを挟んで上げると以下のように手軽に複雑なclusterが作成できる。

f:id:godofsuama:20210222225945p:plain

f:id:godofsuama:20210222230004p:plain

二重にする場合

作例動画の場合は、ノイズは足していないがclusterとclusterを更に細分化したpieceの2つを作成している。

f:id:godofsuama:20210222230206p:plain

f:id:godofsuama:20210222230234p:plain
cluster

f:id:godofsuama:20210222230319p:plain
piece

Constraintの作成

f:id:godofsuama:20210222230520p:plain

まず「Vellum Constraint」のGlueで各ポイント間にコンストレインを作成。

f:id:godofsuama:20210222230626p:plain
設定例

先ほど作成したcluster間とpiece間で強度を変更するためにPrimitive Wrangleで直接breakthresholdを書き換える。

Constraint Geometryの方にはclusterpieceがないのでAttribute Transferで転送し、

f:id:godofsuama:20210222230801p:plain

異なるpiece間の値を上書き。

f:id:godofsuama:20210222230836p:plain

同様に異なるcluster間も上書き

f:id:godofsuama:20210222230904p:plain

breakthresholdをVisualizeすると画像のようになる。赤が強く、青が弱い。

f:id:godofsuama:20210222230953p:plain

これにより、シムした際に最初にclusterが分離し、さらにpieceごとに分離するっぽくなる。

色付けするとなんとなくわかると思う。

f:id:godofsuama:20210222232218p:plain
cluster

f:id:godofsuama:20210222232115p:plain
piece

Upres

POP GrainsのUp Resと同じ方法でも良いが、せっかくなので別手法でupres

丸いだまになりがち。

simする前にNを適当に作成する。(Grainは回転しないので後で作っても一応問題はない。)

f:id:godofsuama:20210222232531p:plain

ポイント番号からnameを作成

f:id:godofsuama:20210222232719p:plain

Timeshiftで止めたものに対してPoint Replicateをする。

f:id:godofsuama:20210222232823p:plain

ShapeをSphereにし、程よいUniform Scaleとちょっとのノイズを追加。アトリビュートの転送も忘れない。

f:id:godofsuama:20210222232904p:plain

これをTransform Piecesで動かす。

f:id:godofsuama:20210222232938p:plain

pscaleはお好みで程よい値に変更する。

f:id:godofsuama:20210222233133p:plain
Replicate前

f:id:godofsuama:20210222233206p:plain
Replicate後

ちょっとスポンジっぽくも見えるが、Replicateのおかげで断面にも少しディテールが出る。

f:id:godofsuama:20210222233421p:plain
終結