元記事:Geometry Nodes - Blender Developer Documentation

物理演算

このリリースでは、新しい実験的な物理演算システムを、最初はヘアーとクロスに対象を絞って導入します。物理演算リリースノートもチェックしてみてください。

ジオメトリバンドル

Blender 5.0で導入された Bundle(バンドル)が、ジオメトリに付加できるようになりました。これによりジオメトリとともに好きなデータを、モディファイアーやオブジェクトを越えて渡すことができるようになります。Field(フィールド)と Closure(クロージャ)にもこれらのバンドルを格納できます。

これは複数のオブジェクトをまたぐセットアップの 宣言システム(英文)の構築に向けた大きな一歩です。(428c9987f5)

多くの新しい可能性を開くのに必要なノードはたった二つです。

  • Set Geometry Bundle(ジオメトリバンドル設定)ノードは、ジオメトリ内に格納されたバンドルを更新します。すでに古いバンドルがあれば破棄されます。

  • Get Geometry Bundle(ジオメトリバンドル取得)ノードは、ジオメトリ内のバンドルを取り出します。オプションで削除も可能です。

    ジオメトリバンドル取得・設定ノード
    ジオメトリバンドル取得・設定ノード
次の例では一つのオブジェクトにバンドルを含む追加のジオメトリを作成する方法と、他のオブジェクトから取り出す方法を見せています。


ジオメトリに添付されたデータはスプレッドシートに表示可能です。

ジオメトリバンドルを表示するスプレッドシート
ジオメトリバンドルを表示するスプレッドシート

リスト

Lists(リスト)は任意の長さ数列や文字列のシーケンスを格納できます。これは既存の単一値やフィールド、ボリュームグリッドに続く、新しいコアデータタイプの一つです。(273ee80a02)

Blender 5.2でリストを処理できるのは、いくつかのコアノードのみです。将来的には拡張されると思われます。

リストの作成

リストを作成する方法は主に二つああります。

  • Field to List(フィールドのリスト化)ノードで、Index(インデックス)ノードに依存したフィールド評価により与えられた長さの新規リストを作成します。これはフィールドに対応するすべてのタイプで使用可能で、一般的に最も効果のあるリスト作成方法です。

    Field to List(フィールドのリスト化)ノード
    Field to List(フィールドのリスト化)ノード
  • Closure to List(クロージャのリスト化)ノードで、インデックス入力を持つクロージャによる評価により与えられた長さの新規リストを作成します。これも好きなタイプのリストを作成できますが、大きなリストの作成時はパフォーマンスが顕著に下がります。(e7e84d4460)

    Closure to List(クロージャのリスト化)ノード
    Closure to List(クロージャのリスト化)ノード

リストのアクセス

リストの変更

リストは Math(数式)ノードのように、直接多数のノードから操作できます。例えば、Math(数式)ノードはリストの各要素に値を加算できます。二つのリストで、短い方のリストを長い方のリストの長さに合わせて繰り返し加算することもできます。

リストでの数値演算
リストでの数値演算

さらに、それぞれ truefalse のブーリアンで断定(※predicade)できる場合では、すべてのアイテムから新しいリストを作成する Filter List(リスト絞り込み)ノードを使用することもできます。

この断定(※predicade)はブーリアンリストまたはフィールドにできます。(207d331f70)

※訳注:Predicade はモダンプログラミング言語の構文の一つ。bool値を返す

Filter List(リスト絞り込み)ノード
Filter List(リスト絞り込み)ノード

最後に、Sort List(リストソート)ノードでカスタムウェイトに基づいた値のソートができます。(a62bcf847a)

Sort List(リストソート)ノード
Sort List(リストソート)ノード

コレクション

リストの導入により、新しい設計が広がる新しいノード、Collection Children(子コレクション)も利用可能になりました。これは子オブジェクトと子コレクションにリスト形式でアクセスでき、オプションで再帰にも対応しています。

Collection Children(子コレクション)ノード
Collection Children(子コレクション)ノード


音声

新しい Sample Sound Frequencies(音声周波数サンプル)ノードは、インポートした音声のアニメーションやシミュレーションをコントロールできます。
音声全体の中の指定の時間、またはサンプル周波数範囲での単一の振幅値を取得し、スペクトルのアニメーションができます。(ccedfb3357)

Sample Sound Frequencies(音声周波数サンプル)ノード
Sample Sound Frequencies(音声周波数サンプル)ノード

また、このノードは新しい Sound(音声)ソケットタイプを使用しています。音声は直接ジオメトリノードから開くことができます。しかし、再生中の音声を聞くには、ビデオシーケンスエディターにも追加してください。
音声とアニメーションのずれを防ぐため、再生の設定で _Sync to Audio(音声に同期)_を有効にするのをお忘れなく。


エンプティオブジェクト

Empty(エンプティ)オブジェクトにジオメトリノードモディファイアーを付加できるようになりました。これにより、カスタムフォースの実装にエンプティが最適になりました。また、オリジナルデータを持たない、完全にジオメトリ生成のみの場合にも適しています。(301fceb1d31504d9d586)

エンプティには入力ジオメトリがないため、最初のモディファイアーはデフォルトではジオメトリ入力を持っていないことに注意してください。


これにより、コレクションインスタンスにもジオメトリノードが利用可能になりました。


ポイントのマージ

_Merge by Distance(距離でマージ)_ノードが、ポイントのより正確なマージのため、もっと小さい単位の要素から構築可能になりました。これを達成するため、三つの新しいノードが追加されました。(7588add7cb)

  • Merge Points(ポイントマージ)は、ポイントやメッシュ頂点を同じ入力グループ ID で統合します。
  • Cluster by Distance(距離でクラスター化)は、近いポイント群のグループ ID を生成します。
  • Cluster by Connected(つながりでクラスター化)は、メッシュ用のみだった _Merge by Distance(距離でマージ)_ノードや _Weld(溶接)_モディファイアーの既存の "Connected"(接続)モードの実装です。


メッシュベベル

待望の Mesh Bevel(メッシュベベル)ノードが利用できるようになりました。辺や頂点のベベル方法が細かく調整できます。(c53b03f46a)


属性

  • Capture Attribute(属性キャプチャ)ノードが選択に対応しました。これにより、要素群の一部の属性値のみが必要な時の効率が改善します。
    未選択の要素はすべて一般的には0のデフォルト値になります。(7fd7e77af3)

    Capture Attribute(属性キャプチャ)ノードの選択
    Capture Attribute(属性キャプチャ)ノードの選択

  • 新しい Rename Attribute(属性リネーム)ノードは、単一属性または指定の接頭辞を持つ属性すべてを簡単にリネームできます。(24f3c4aad2)

    Rename Attribute(属性リネーム)ノード
    Rename Attribute(属性リネーム)ノード
  • Get Attribute Names(属性名取得)ノードは、一つのジオメトリ内の属性名のリストを出力します。オプションでドメインやデータタイプで絞り込みできます。(eae8e8569d)

    Get Attribute Names(属性名取得)ノード
    Get Attribute Names(属性名取得)ノード
  • Transfer Attributes(属性転送)ノードは、一つのジオメトリから別のジオメトリに(すべてを含む)任意の数の属性を転送できます。デフォルトでは、インデックスに基づいた割り当てを使用しますが、各ドメイン用のカスタム ID による提供も可能です。(155e0363e5)

    Transfer Attributes(属性転送)ノード
    Transfer Attributes(属性転送)ノード
  • 属性を 4D float ベクトルとして格納可能に。ただし現時点ではジオメトリノードはまだ 3D ベクトルでの演算しかできません。(73f95d6785)

カーブ

新しい Set NURBS Order(NURBS階数設定)ノードと、Set NURBS Weight(NURBSウェイト設定)ノードは、最終カーブの計算方法に影響を与えるビルトイン属性に簡単にアクセスできるようにします。(52062edb6ffa4492cdf6)


文字列

ノードグループ入力

  • 新しい Scene Frame(シーンフレーム) デフォルト入力タイプ。(51b4bbce89)


  • オブジェクトソケットのグループ入力でのデフォルト値が、オブジェクト自体になりました。(af602ba283).

同梱アセット

  • 空間の変換と投影用の新しいノード。(a4ce6f378b)

    • 3D to Screen Space(3Dのスクリーン空間化)は、ワールドの3D座標を正規化カメラ空間に変換します。
    • Screen to 3D Space(スクリーンの3D空間化)は、深度と正規化 2D ベクトルを指定すると、3D 空間の 3D 座標を計算します。これは上記の3Dのスクリーン空間化の逆変換です。
    • Transform and Project(変換と投影)は、3Dのスクリーン空間化ノードの汎用低レベルバージョンです。スクリーン空間の 2D 座標の計算にカメラオブジェクトを取る代わりに、Transform(トランスフォーム)と Projection(投影)を入力に取ります。
    • Project with Depth(深度で投影)は、スクリーンの3D空間化ノードの汎用低レベルバージョンです。例えば、ビューポート 3D 空間の座標をスクリーン空間に変換し、Viewport Transform(ビューポート変換)ノードを使用して戻すなどです。
      ビューポート 3D 空間の座標をスクリーン空間に変換
      ビューポート 3D 空間の座標をスクリーン空間に変換
  • 新しい主成分分析(PCA: Principal Component Analysis)用ノード。(40c0786af9)

    主成分分析(PCA: Principal Component Analysis)用ノード
    主成分分析(PCA: Principal Component Analysis)用ノード

その他

  • 新ノード:

    • 新しい Instance Reference(インスタンス参照)ノードは、何のジオメトリがインスタンス化されたかを示す内部属性へのアクセスを提供します。(f7fb4b71de)
    Instance Reference(インスタンス参照)ノード
    Instance Reference(インスタンス参照)ノード
    • 新しい Get Geometry Component(ジオメトリ成分取得)ノードは、ジオメトリの単一成分を存在していれば抽出します。もっと複雑な可能性のあるジオメトリの単一成分だけの編集も単純化します。(c9d606b747)
    Get Geometry Component(ジオメトリ成分取得)ノード
    Get Geometry Component(ジオメトリ成分取得)ノード
  • Closure (クロージャ):

    • クロージャを上限ありで再帰的に呼べるように。(c800cc31b9)
    • 新しい Geometry Nodes Stack Limit(ジオメトリノードスタック上限)設定。プリファレンスでジオメトリノードの呼び出しスタック深度を設定できます。(1e0f70ab99)
  • ノードツール:

    • ノードツールの入力がオペレーター呼び出し間も記憶されるように(1561c1ea4a)
  • パフォーマンス:

    • 内部フィールドが評価用に複製されるように。これは特に共通のサブフィールドがある時、例えば Sample UV Surface(UVサーフェスサンプル)ノードを複数回使用している時にフィールド評価が高速化します。(413bf5d935)
    • 一部のサンプリングコードで、フィールドがもっとシンプルなドメインを使用しているかどうかによって、面コーナードメインへの変換が回避可能な時のパフォーマンスが改善。(abdb70bee1)
  • Viewer(ビューアー)ノードがデータブロック名を表示可能に。(1958047f88)

    Viewer(ビューアー)ノードでのデータブロック名表示
    Viewer(ビューアー)ノードでのデータブロック名表示
  • データブロックソケット(オブジェクト、コレクションなど)をお互いや、None と比較できるように。(e6ee7af701)

    データブロックの比較
    データブロックの比較
  • _Bone Info(ボーン情報)_ノードに "Exists"(既存)出力が追加。(4c0c494f69)

    Bone Info(ボーン情報)ノードの Exists(既存)出力
    Bone Info(ボーン情報)ノードの Exists(既存)出力
  • ジオメトリノードモディファイアーのプロパティにアクセスする Python API が変わりました。詳細は Python API のページを参照してください。(1561c1ea4a)


Blender Foundation の文書を翻訳、ライセンスは CC-BY-SA 4.0 Int にて公開