LoginSignup
1
0

Spiral Node [Mardini2024]

Last updated at Posted at 2024-03-16

これはMardini2024のDay1 SpiralNodeの動画を視聴してまとめたものです。

動画
スクリーンショット 2024-03-16 13.43.58.png

公式のサンプルファイル

Day1 Spiral Node | Day2 Topo build Node

要約

image.png

  • Spiralノードは、Geometryレベルのノードで、螺旋状のカーブを生成する

  • Helixノードは、螺旋状のヘリックス構造を作成する

    • ヘリックス構造:らせん状に巻きついたタンパク質の二次構造の共通モチーフの1つ
    • SOPのノードとしては同じSpiralノードでHeightにデフォルトで1が入っているものです
  • Spiralノードでは、Height Rampを有効にして、カーブに沿った高さを調整できる

    • image.png
  • SpiralノードのSpiral Countを増やすと、複数の螺旋が作成される

  • Sweepノードと組み合わせることで、螺旋状のチューブを作成できる

    • SweepのSurface ShapeがデフォルトのSecond Input Cross Sectionsだと機能しないので、Round Tubeに変更します
    • image.png
    • image.png
  • Helixノードは、DNAのような構造を作成するのに適している

  • Polyframeノードと組み合わせることで、カーブに沿った方向を取得できる

    • PolyFrameノードのNormalNameをオフに、Tangent NameをtangentuからNに変更します
    • image.png
  • 取得した方向(@v)を使って、シミュレーションに活用できます

    • image.png

サンプルファイル

image.png

DNAのらせん構造作成と、煙生成のサンプルが含まれています。

HELIX_DNA

image.png

  • 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

image.png

image.png

  • 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とする

image.png

  • billowy smoke のプリセットにより、煙シミュレーションを素早くセットアップできます
    • image.png
  • デフォルトでは、ソース元の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をオフ
    • Shape
      • Buoyancy オン
      • Wind Speedを0.1に
  • 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に

以上の手順で、HoudiniでSpiralノードとHelixノードを使った螺旋状のジオメトリを作成し、様々な効果を生成できます。これらのノードは、アニメーションやシミュレーションなどにも活用できます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0