Skip to content

20240430_notes

Takanobu INAFUKU edited this page May 13, 2024 · 4 revisions

第3回 Blender / Geometry Nodes 導入

Geometry Nodes とは?

  • Blender ver 2.92から導入された、プロシージャルモデリングを行うための仕組みです。
  • 「Node(ノード)」と呼ばれるジオメトリデータに対して何らかの処理をするボックスをツリー状に接続していくことでモデリングを行います。
  • Blenderには Geometry Nodes 以外にもNodeベースなエディターが存在します。
    • Shader Nodes
    • Composite Nodes
    • Texture Nodes
  • Blender自体のバージョンアップに伴い、新しいノードの追加や仕様変更などが現在も頻繁に行われています。

画面・操作方法の説明

デフォルトのワークスペース

Spreadsheet

fig1

選択中オブジェクトの属性値を閲覧できます。

エディター内の各領域

fig2

  • ヘッダー(赤)
  • フッター(黄)
  • メイン領域(緑)
  • データセット領域(青)
  • サイドバー(ピンク)

Geometry Node Editor

fig3

エディター内の各領域

fig4

  • ヘッダー(赤)
  • メイン領域(キャンバス、緑)
  • サイドバー(ピンク)
  • ツールバー(青)

新規ノードツリーの作成

fig5

  • ヘッダーにある + New ボタンで作成、アクティブな Modifiers として選択済みのオブジェクトに対して適用します。
  • 作成されたノードツリー内で、ノードを接続してルートにある Group Output に処理結果を出力するのが基本。

キャンバス(メイン領域)内の移動

fig6

  • マウスの操作は 3D Viewport の操作を基本的に踏襲しています。
  • [ Home ] キーで配置されている全ノードが画面内に収まるようにズームアウトします。

ノードの追加

fig7

  • ヘッダーの Add メニュー
  • ショートカット [Shift + A]
    • ノード追加のためのコンテキストメニューが開き、検索も行えます。
  • ノード自体の選択・移動・削除などの操作も 3D Viewport の操作を大体踏襲しています。

ノードのユーザーインターフェース

  • ヘッダー

    fig9

    • ノード名の表示
      • リネーム(ラベルの追加)が可能
    • 折り畳み
    • ステータスの表示
    • ヘッダーのカラーはノードの分類で色分けされています。
  • ソケット
    • ノードのインプットとアウトプット
    • アウトプットからインプット(もしくは未接続のインプットからアプトプット)にドラッグしてノード間を接続、接続済みのインプットソケット(一部例外を除く)からドラッグして切り離せます。

      fig10

      • 接続先のソケットが無い所でドラッグを離すと、新しくノードを追加して接続するためのコンテキストメニューが開きます。

      fig11

      • 既に接続済みのノード間に対して別のノードをドラッグすると、間に挟むようにして接続させることができます。

      fig12

      • 切り離しは、ツールバーの Links Cut ツールを使って一括で切り離すこともできます。

      fig13

    • ソケットは形状と色によって入出力の性質が分類されています。
      • 形状
        • 丸形

          fig14

          • 入力ソケットでは、単一の値のみを受け付けます。出力ソケットでは、そのノードは常に単一の値を出力します。
        • ひし形

          fig15 fig16

          • ドット付き
            • 入力ソケットでは、単一の値、もしくは Field(フィールド) のいずれかを受け付けます。 ドットがついている状態では単一の値であり、 フィールド を入力した場合、ドット無しに変化します。
            • 出力ソケットでは、基本的には単一の値を出力しますが、入力ソケットの接続状況(いずれかの入力ソケットに フィールド が入力されている場合など)によってドット無し(= フィールド の出力)に変化することがあります。
          • ドット無し
            • 基本的に フィールド の入出力が行われます。単一の実数値を入力することもできますが、その場合単一の値で フィールド のデータが埋められるため、予期しない動作になることがあります。

            例) fig17

        • ソケット間で フィールド としてデータが扱われている接続は、破線で表示されます。
        • 入力または出力されるデータ型によって分類されています。
          • Geometry(ライトグリーン)
          • String(ライトブルー)
          • Object(オレンジ)
          • Collection(ホワイト)
          • Material(ライトレッド)
          • Float(グレー)
          • Integer(グリーン)
          • Vector(パープル)
          • Boolean(ピンク)
          • Color(イエロー)
          • Rotation(ピンク)
      • 異なるデータ型(色)や形状の異なるソケット同士を接続すると..
        • 変換可能なデータ型の場合は暗黙的に変換・補完されます(線の色が途中で変化)。
        • 変換できないデータ型の場合や、丸形の入力ソケットに対し フィールド を接続しようとすると、エラー扱いとなります(赤線に変化)。
  • その他
    • ノードの端の部分をドラッグすることで横方向にリサイズできます。
    • ノードによっては、操作・変更可能なボタンやセレクトボックス、数値入力エリアなどを持つものがあり、ノードを新しく追加した状態ではデフォルト値が入っています。
      • これらには入力ソケットに関連付けられているもの(入力ソケットのデフォルト値)とそうでないもの(ノード自体のオプション)があり、関連付けられているものは別のノードからの出力を接続すると非表示になります。

その他 - Reroute / Frame / Group

  • 基本的に複雑化したノードツリーの整理用途で使用します。
  • Reroute
    • 接続されたノード間の途中に分岐用のソケットを設置できます。
  • Frame
    • 複数のノードをまとめてフレームで囲います。
    • フレームにラベルを付けたり、フレームの部分をドラッグすることで複数のノードをまとめて移動したりできます。
  • Group
    • ノードのような見た目で、エディターの中で階層構造を作れる特殊な要素です。
    • 複数のノードを選択して、グループ化することで、新たに Group InputGroup Output (と選択したノード)を持つ子階層を作成できます。

(いくつかの) Node のウォークスルー

特殊なもの

  • Group
    • 前述の説明を参照
  • Repeat Zone
    • 次回以降の講義で解説
  • Simulation Zone
    • 次回以降の講義で解説
  • Viewer
    • 次回以降の講義で解説
  • Bake
    • 次回以降の講義で解説