これはMardini2024のDay1 SpiralNodeの動画を視聴してまとめたものです。
Day1 Spiral Node | Day2 Topo build Node
要約
-
Spiralノードは、Geometryレベルのノードで、螺旋状のカーブを生成する
-
Helixノードは、螺旋状のヘリックス構造を作成する
- ヘリックス構造:らせん状に巻きついたタンパク質の二次構造の共通モチーフの1つ
- SOPのノードとしては同じSpiralノードでHeightにデフォルトで1が入っているものです
-
Spiralノードでは、Height Rampを有効にして、カーブに沿った高さを調整できる
-
SpiralノードのSpiral Countを増やすと、複数の螺旋が作成される
-
Sweepノードと組み合わせることで、螺旋状のチューブを作成できる
-
Helixノードは、DNAのような構造を作成するのに適している
-
Polyframeノードと組み合わせることで、カーブに沿った方向を取得できる
-
取得した方向(@v)を使って、シミュレーションに活用できます
サンプルファイル
DNAのらせん構造作成と、煙生成のサンプルが含まれています。
HELIX_DNA
- SpiralノードまたはHelixノードを作成
- Heightを1、Turnを1.69に
- Spiral Countを2に増やして、複数のヘリックスを作成
- Increase per Turnを0に
- For-Each Connected Pieceでループを追加
- ループ内にWrangleを追加
@id = @ptnum;
- Connectivity TypeはPrimitive
- Addノードを追加
- Polygonsタブ内ののBy Groupタブ、Add By Attributeで「id」を指定
- Sweepノードを追加
- Surface ShapeをRound Tubeに変更
- Radiusを0.004に
SPIRAL_SMOKE
- Sprialノードを追加
- RadiusScaleを3に
- polyframeを作成、TangentをNに
- scatterノード(Count:36000)・restノード・PointJitterノード(Scale:0.4、UpdateNormalをオフ)を追加し、スパイラル付近にいくつかの点を散在させます
- Wrangelを追加
- スパイラル位置に近いほど高い値を見つける処理を追加
float mult = fit(distance(v@P, v@rest),0,0.4,1,0);
v@v = -v@N*mult;
- VolumeRasterizeAttributesノードを追加
- Attributeはvを追加
- Filter
- VoxelSizeは0.1から0.02
- ParticleScaleは1から0.2
- 参照しやすいようにNullノードを追加。名前をvelとする
- billowy smoke のプリセットにより、煙シミュレーションを素早くセットアップできます
- デフォルトでは、ソース元のsmoke_baseがTorusなので、すこし平べったいSphereに差し替え
- Pyro SourceノードからDensityのみ残して、TemperatureのAttributeを削除
- デフォルトでは、Attribute Adjust Vector でvelocityが付与されています。今回はvelocityを螺旋状態に変えたいので、attribadjustvector_velocityノードを削除します。
- 上流のTemperatureとvelocityを削除したので、Volume Rasterize Attributesの参照するAttributeからDensityのみ残して、temperatureと vを削除
- PyroSolverノード
- Setup
- VoxelSizeは0.1から0.05に
- Sourceing
- temperatureを削除
- Fields
- Density
- DisspationをDissipation:0.1
- ControlFieldをtemperatureからdensityに
- ControlRangeを0〜1から0〜10に
- Rampを好みに
- Flameをオフ
- Density
- Shape
- Buoyancy オン
- Wind Speedを0.1に
- Setup
- PyroSolverノード内
- VolumeSourceを作成し、SOP Pathに先ほどのNull(vel)を参照
- OperationsにVectorのFieldを追加
- SourceVolumeをv
- TargetFieldをvel
- Source Scaleを0.2
- OUTPUT#2のsources_outputに接続
- PyroBakeVolumeノード(pyrolook_billowy_smoke)で煙の色を上書き
- Smoke
- DensityScaleを5から30に
- Smoke
以上の手順で、HoudiniでSpiralノードとHelixノードを使った螺旋状のジオメトリを作成し、様々な効果を生成できます。これらのノードは、アニメーションやシミュレーションなどにも活用できます。