2025年8月8日(現地時間)- Blender のジオメトリノードの新しいソケット形状についての情報が共有されたので、その内容を紹介したいと思います。
はじめに
Blender 5.0では、既存のノードソケット形状の意味が変更され、新しい形状が導入されます。
この記事では、開発チームが抱えていた課題、新しい形状の意図、そして今後の活用方法についてを紹介したいと思います。
ノードソケット形状の変更は、予想を超える大きなトレードオフの存在があり、設計プロセスは当初の想定以上に難航しました。しかし、この課題を解決することはジオメトリノードの機能拡張に不可欠なため、避けて通れない道であったとのことです。このトピックは、2024年5月および10月のジオメトリノードワークショップで議論され、最終的に合意に至りました。
問題点
この変更の背景を理解するために、まず従来のソケット形状がどのように使用されていたかを振り返ります。
従来のソケット形状
過去数年間、ジオメトリノードでは3つの異なるソケット形状が使用されていました。
- 円: 入力が単一の値を期待するか、出力が単一の値を生成することを示します。
- 菱形: ソケットにフィールドが含まれる可能性があることを示します。
- 点付きの菱形: 入力はフィールドに接続できますが、現在はソケットが単一の値を持っていることを示します。
さらに、これらの形状はリンクの接続状態に応じて動的に変化し、Blenderが把握しているデータ構造をリアルタイムに反映する仕組みでした。

旧バージョンのSet Positionノードに見られるソケット形状。
限界
従来の設計は、単一の値とフィールドという限られたデータ型では機能していましたが、開発中のリストやボリュームグリッドといった新しいデータ構造にはうまく対応できませんでした。また、多くのユーザーにとって各形状の意味、特に「点付きの菱形」が示す状態は、直感的に理解しにくいという問題がありました。しかし、形状が示す意味は複雑で、以下のような側面がありました。
- ノードが期待、または生成するデータの構造。
- ノードツリー全体の静的解析から推測される、ソケットが持ちうるデータの構造。
- 直前の評価結果に基づく、ソケットが実際に持っているデータの構造(この情報は改良されたツールチップでも確認できます)。
これらはすべて有用な情報ですが、残念ながらソケットの形状だけでは、そのすべてを視覚的に伝えることはできません。過去には最初の2つのアプローチの組み合わせが使用されていましたが、考えられるすべての組み合わせを表示するには非常に多くのソケット形状が必要になり、かえって分かりにくくなってしまいます。
そのため、たとえ以前は表示されていた情報の一部が失われるとしても、最も重要度の高い情報に絞って伝えるという判断が必要になりました。何が最も重要かについては開発者間でも意見が分かれ、ノードツリーの使われ方によってもその判断は変わるため、合意形成は非常に難しいものとなりました。
新しい設計方針
議論の結果、「ソケットの形状は、その使用方法に関わらず、ノードが期待または生成するデータの種類を伝える」というアプローチで合意に至りました。具体的には、新しいソケット形状は以下の意味を持ちます。
- 縦棒:常に単一の値を扱います。
- 菱形:フィールドを扱います。
- 円:入力に応じてデータ構造が変化する、動的なソケットです。
- グリッド/リスト形状:これらの機能は本稿執筆時点ではまだ開発中ですが、フィールドの菱形と同様に、特定のデータ構造を静的に示します。
従来使用されていた「点付きの菱形」は今後使用されなくなります。
適用例
以下はこの変更が既存のノードに与える影響の例です。
- Mathノード: シェーダーやコンポジターと同様に、円形ソケットを持ちます。これはデータ構造が動的であることを意味します。単一の値、フィールド、リストなどで動作し、出力の型は接続された入力に依存します。
- Triangulateノード: いくつかの単一値入力があり、選択範囲はフィールドとして評価されます。
- Set Positionノード: 単一のジオメトリと複数のフィールドを入力として求めます。全てのフィールド入力が同じ菱形になっている点が重要です。これにより、「フィールドを期待する」というノードの仕様が明確になります。ソケット形状に関しては、「フィールドを期待する」と「現在フィールドである」の間に違いはなくなりました。ただし、リンクの描画は、何かがフィールドである可能性を示す場合があります。
- Cubeノード: 入力は全て単一の値ですが、出力の一つはフィールドを生成します。

新しいソケット形状の使用例。
ノードグループにおける例外
例外として、グループの入力・出力ノードのソケット形状は、内部の接続状態に応じて自動的に変化する場合があります。多くの場合、Blenderが最適な形状を推測しますが、意図と異なる結果になることもあります。
例えば、ノードグループの作者が単一の値を想定している入力が、内部の接続によってフィールド対応と推測されてしまう場合などです。このようなケースでは、ユーザーが意図した形状を上書きすることができます。

グループ入力の形状を手動で指定する様子。
リンクの表示
データフローにフィールドが含まれる可能性を示す「破線リンク」の機能は維持されます。
以前はソケット形状と情報が重複していましたが、新しい設計では、静的なソケット形状を補完する動的な情報として、より重要な役割を担います。

フィールドを含む可能性のあるリンクは、引き続き破線で表示されます。
開発中の新しい形状
単一の値を示す「縦棒」に加え、グリッドやリストのための新しい形状も導入されます。これらはまだ開発段階にあり、今後変更される可能性があります。
例えば、Sample Gridノードはグリッドを入力として受け取り、指定された位置でサンプリングを行います。この「位置」入力は円形ソケットになっており、単一の値、フィールド、リストなど、様々なデータ構造を受け入れます。そして、その入力に応じて出力のデータ構造も変化します。

グリッドとリストのための実験的なソケット形状。
失われた情報
この新しい設計により、以前は可視化されていた一部の情報が表示されなくなります。
- 単一値の要求伝播:以前は、ソケットが単一の値でなければならないという要件が右から左へ伝播していました。つまり、その情報がノードツリーを遡って伝播し、他のソケット形状も変化しました。内部的にはこの伝播はまだ行われますが、グループ入力の形状を自動設定するためにのみ使用されます。単一の値ではないものを単一の値に接続した場合のリンク警告は引き続き表示されます。
- フィールドの可能性の伝播:同様に、ソケットがフィールドを含む可能性があるという情報も左から右へ(ノードの下流へ)伝播していました。これもグループ出力の形状を自動設定するために内部的に行われます。現在、この情報は、ソケット形状の代わりに破線リンクによって示されることになります。
- デフォルト値の表示:以前は、Set Positionノードなどの一部のノードには複数のフィールド入力があり、そのうちの一部だけがソケット形状に点を持っていました。これは、ソケットがデフォルトでフィールド値を持っているかどうかを確認するのに役立ちましたが、今後はすべての入力は同じ形状となります。ソケットのデフォルト値は、ノードが評価されていなくても、マウスをホバーすることで確認できます。

ツールチップでデフォルトのフィールド値を確認できます。
オプションのオーバーレイやツールチップなど失われた情報を別の形で提供する方法も模索中ですが、大多数のユーザーにとって長期的に有用でないにもかかわらず、過去の情報を維持するためだけの機能追加になるため慎重に扱われています。
まずは新しい設計にユーザーが慣れるための時間を設け、その上で本当に不足している情報が何かを見極めるのが最善だと考えられており、例えば、フィールドがどのコンテキストで評価されるかを、より明確に可視化する必要があることは既に分かっています。
ジオメトリノード以外の領域へ
円形以外のソケット形状は、これまでジオメトリノードに限定されていましたが、今後は他のノードシステムにもメリットがあると考えられています。データ構造が動的なソケットを「円」に統一したことで、既存のノードシステムの見た目を大きく変えることなく、拡張を進めることができます。
最初の適用例として、コンポジターが挙げられます。単一の値のみを受け付ける入力を明示することで、誤って画像データを接続するミスを防ぎます。将来的には、画像データ専用のソケット形状を導入したり、コンポジターでフィールドをサポートしたりすることも検討されています。

新しいソケット形状が適用されたコンポジターのGlareノード
シェーダーノードへの適用は当面の計画にはありませんが、中期的にはImage Textureノードの画像指定など、一部のプロパティを単一値ソケットとして公開することが望ましいと考えられています。
新機能開発の促進
ボリュームグリッドやリストといった重要な新機能の開発は、旧来のソケット形状の設計によって長らく停滞していました。
今回の設計更新によって、この障壁が取り除かれ、、ボリュームグリッドをリリースし、リストに関する開発を本格的に進める準備が整いました。
結論
ソケット形状の意味を変更することは、ジオメトリノードを使用するすべての人に影響を与えます。可能であれば避けたかった変更ですが、将来の発展のために過去の設計に固執することはできなかったようです。
一部の情報が失われることは残念ですが、この変更によって得られる新たな可能性は、それを補って余りあるものになると考えられています。
開発をサポート
このプロジェクトは初期段階にあり、目標を達成するためには専門のデザインおよび開発リソースが必要になります。開発基金にメンバーとして参加するか、一度の寄付でサポートすることができます。

























コメント