Blender Sverchok 柱を作る

Sverchok

はじめに

Sverchokを勉強したての時に発見した動画。

頑張ってノードに起こしてみたのと後学の為にまとめてみた。

柱のイメージ

柱の各部位

名称は参照元となる動画に従う

  • 一番上の部分 Top Cap
  • 柱の部分 Pillar
  • 一番下の部分 Bottom Cap

そして Bottom → Top → Pillar の順で作っていく

作成手順

1. Bottom Cap を作成

  • Bottom Cap はこのような構造となっている
  • ここではわかりやすくするため最小限の細分化数としている

少し見づらいが、この順番(赤い印)の順で頂点を作成しすべてをつなげる事でBottomCapを完成させる

  1. 最初の3つの頂点の基礎となるノードを配置
    • Generator → Generator Extended → Ring
      • Curcular Section は2
      • Exteriorにする
  2. Number → A Number を2つ配置

    • 1つ目
      • Ringノードの Interior Radius(内部半径)に接続
      • Float にして数値は0.6辺りを入れておく
      • ※Exterior Radius の数値よりも小さくしておく
    • 2つ目
      • RingノードのRadial Sectionsに接続
      • これはどれだけの辺を持つ柱を作るかの数値となる
      • 3が最低値。
      • ※黄色枠の部分にLabelを入力するとノードのLabelとなる
      • ※ここではわかりやすさの為最初のノード名をInterior Radiud、2番めをSubdivisionsとしている
  3. Viz → Viewer Draw Mk3 を配置
    • Ringの各出力を接続。これは参照用で以降接続を変えながら結果を確認していく
  4. 配置したRingの内不要な頂点を削除する
    • Modifiers → Modifier Change → Vector Vertices を検索→クリックして配置する
    • 内側の頂点以外が消えている事がわかる
  5. Bottom Capの高さ分頂点を上げる
    • Number → A Numberを配置
      • Floatにする
      • 適当に高さを入力。ここでは0.48を入力
      • Label名をここでは Cap Heightとしている
    • VectorVector In を配置
      • Cap Heightを Z に接続する
    • Transforms → Moveを配置
      • Mask Vertices の Verticesを上に接続
      • Movement の方に先程配置した Vector In を接続
  6. 2番目・3番目の頂点を作成する
    • Generator → Circleを配置
      • Num Verts にSubdivisionsを接続
    • Number → A Number を配置
      • Labelを Exterior Radius にする
      • Circle の Radius に接続
    • Transforms → Moveを配置
      • Circle の Vertices を上に接続
      • Movement の方に先程配置した Vector In を接続
  7. すべての頂点を接続する
    • RingをMask VerticesでマスクしCap Height分上げた頂点
    • Circle をCap height分上げた頂点
    • Circle の頂点
    • 上記3つをすべて接続するため、Modifiers → Modifier Make → UV Connectionを配置
  8. 底がないため底を追加する
    • List → List Main → List Joinを2つ追加する
      • 1つは頂点結合用でUv Connection のVerticesとCircleのVerticesを接続
      • 1つは面の結合用でUv Connection のdata と CircleのPlygonsを接続する
    • 頂点と面を結合する為、Modifiers → Modifier Change → Mesh Joinを配置

Bottom Cap 完成

管理しやすくするためフレームを作成する

2. Top Capを作成する

Bottom CapとTop Capの構造上の違いは、Bottom Capは上に Pillar が来るため上の面に穴が空いているが、Top Capは下にPillarが来る為下に穴が空いているという点のみ。

という事でBottom Capを全部コピーして一部を修正し作業を終える。

  1. Bottom Capをすべて選択
  2. Shift + d でコピー
  3. g → ドラッグで上に移動させる
  4. Label名をTop Capにする
  5. 各種変数と接続する
    • Ring の Interior Radius と Interior Radius を接続
    • Ring の Radial Sections と Subdivisions を接続
    • Circle の num Verts と Subdivisions を接続
    • Vector In の Z と Cap Heightを接続
    • Circle の Radius と Exterior Radius を接続
  6. Bottom CapではRing + Circleの頂点を Cap Height分上に上げたが、柱のてっぺんとなる Circleのみ上に上げてるように変更する

    • UV Connection の接続順に注意
      • 1番上は Mask Vertices した後のままの頂点を接続
      • 2番目にはCircleの頂点をそのまま接続
      • 3番目にはCircleの頂点を Cap Height分足した頂点を接続
    • 頂点のList Joinの2番めの接続は Cap Height分足した頂点を接続

Top Cap 完成

3. Pillar を作成

  1. Pillarの本体となるGenerator → Cylinderを配置
    • 蓋は要らないため Cap T/Cap B を無効化
    • Center を無効化
    • Medians に Subdivisionを接続
    • Radius T と Radius B に Interior Radius を接続
    • Number → A Number を配置
      • Labelは Pillar heightとする
      • Float
      • Height へ接続
  2. 各種パーツの配置場所を定めるGenerator → Line を配置
    • Size と Pillar Heightを接続
    • Z axisにする
    • Num Vertsは2のままにする
  3. それぞれの位置を取得するため List → List Struct → List Sliceを配置
    • Data と Line の Verts を接続
    • Level は1にする

Cylinder、LineとList Sliceに Frameを作成しラベルを Pillarとする

Pillar 完了

4. すべてを組み合わせる

・Pillar はCap Height 分上げる必要がある
・Top Cap はCap Height + Pillar 分上げる必要がある

  1. VectorVector In を配置し Z と Cap Height を接続する
  2. Transforms → Moveを2つ配置
    • 1つ目
      • Cylinder の Vertsを上に接続
      • Movementに先程配置したVector Inを接続
    • 2つ目
      • Top Capの最後のMesh JoinのVerticesを接続
      • Movementに先程配置したVector Inを接続
  3. Pillarの配置を確定させる為、Matrix → Matrix Applyを配置
    • Verticesには Cylinderの頂点を Move の結果を接続
    • Faces にはCylinderのPolygons を接続
    • Matrix には Pillar にある List Sliceの Sliceを接続
  4. Top Capの配置を確定させる為、Matrix → Matrix Applyを配置
    • VerticesにはTop Capの Mesh Join の頂点を Move した結果を接続
    • Faces には Top CapのMesh JoinのPolygonsを接続
    • Matrixには Pillar にある List Sliceの Other を接続
  5. Bottom Capの配置を確定させる為、Matrix → Matrix Applyを配置
    • Vertices にはBottom CapのMesh Joinの頂点を接続
    • Faces にはBottom CapのMesh JoinのPolygonsを接続
    • Matrix にはPillar にある List Sliceの Slice を接続
  6. Bottom Cap、Top Cap、Pillarそれぞれのデータを結合する為、List → List Main → List Join を2つ配置
    • 1つ目
      • それぞれのMatrix Applyの頂点を接続
    • 2つ目
      • それぞれのMatrix ApplyのFacesを接続
  7. 頂点と面を結合する為、Modifiers → Modifier Change → Mesh Joinを配置
    • 頂点を結合したList Joinの出力を Verticesに接続
    • 面を結合したList Joinの出力を PolyEdgeに接続
  8. 重複した頂点を削除する為、Modifiers → Modifier Change → Remove Doublesを配置
    • Verticesに Mesh JoinのVerticesを接続
    • PolyEdgeに Mesh JoinのPolyEdgeを接続
  9. 法線を再計算する為Modifiers → Modifier Change → Recalc Normalsを配置
    • VerticesにRemove DoublesのVerticesを接続
    • Edges にRemove DoublesのEdgesを接続
    • Polygons にRemove DoublesのPolygonsを接続
  10. 結果を確認する為、Viz → BV Alphaを配置
    • Recalc Normalsの各出力を接続

完成!

ノード全体図

最後に

Sverchokはパズルみたいで楽しい

タイトルとURLをコピーしました